MessengerWindow

- cleaned include files
- changed menu for set the tree is decorated
- new check for sort rows by state
- saved the state of sort order, hide offline, sort by state and decorated state

PopupChatWindow:
- when setting "Grab Focus when chat arrives" not checked, the new chat window is opened minimized and flashed in taskbar

reworked start private chat and message to friend from PeersDialog and MessengerWindow:
- moved method for starting a private chat from PeersDialog and MessengerWindow to PopupChatDialog
- moved method for sending a message to a friend from PeersDialog to MessageComposer
- removed signal startChat

fixed bug in MessengerWindow:
- when peer is not online and private chat is not available, the message was send to the wrong peer (the current peer in PeersDialog)


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3154 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-06-17 17:39:32 +00:00
parent 95c5c4b1a1
commit e282a55164
11 changed files with 764 additions and 770 deletions

View file

@ -21,139 +21,128 @@
#ifndef _MESSENGERWINDOW_H
#define _MESSENGERWINDOW_H
#include <QFileDialog>
#include "mainpage.h"
#include "ui_MessengerWindow.h"
#include <gui/common/rwindow.h>
#include "chat/PopupChatDialog.h"
#include "RsAutoUpdatePage.h"
class LogoBar;
class PeersDialog;
class PopupChatDialog;
class MessengerWindow : public RWindow
{
Q_OBJECT
Q_OBJECT
public:
public:
QPixmap picture;
PopupChatDialog *getPrivateChat(std::string id, std::string name, uint chatflags);
QPixmap picture;
static MessengerWindow* getInstance();
static void releaseInstance();
static MessengerWindow* getInstance();
static void releaseInstance();
public slots:
/** Called when this dialog is to be displayed */
void show();
void updateMessengerDisplay() ;
void updatePeersAvatar(const QString& peer_id);
void updateAvatar();
void loadmystatusmessage();
void loadOwnStatus();
void checkAndSetIdle(int idleTime);
/** Called when this dialog is to be displayed */
void show();
void updateMessengerDisplay() ;
void updatePeersAvatar(const QString& peer_id);
void updateAvatar();
void loadmystatusmessage();
void loadOwnStatus();
void checkAndSetIdle(int idleTime);
LogoBar & getLogoBar() const;
LogoBar & getLogoBar() const;
protected:
void closeEvent (QCloseEvent * event);
/** Default Constructor */
MessengerWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
/** Default Constructor */
MessengerWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
/** Default Destructor */
~MessengerWindow();
void closeEvent (QCloseEvent * event);
private slots:
/** Create the context popup menu and it's submenus */
void messengertreeWidgetCostumPopupMenu( QPoint point );
/** Create the context popup menu and it's submenus */
void messengertreeWidgetCostumPopupMenu( QPoint point );
/** Add a new friend */
void addFriend();
/** Export friend */
void exportfriend();
/** Remove friend */
void removefriend();
/** start a chat with a friend **/
void chatfriend();
/** start Messages Composer **/
void sendMessage();
/** start to connect to a friend **/
void connectfriend();
/** show peers details for each friend **/
void configurefriend();
/** Add a new friend */
void addFriend();
/** Export friend */
void exportfriend();
/** Remove friend */
void removefriend();
/** start a chat with a friend **/
void chatfriend(QTreeWidgetItem *pPeer);
void chatfriendproxy();
/** start Messages Composer **/
void sendMessage();
/** start to connect to a friend **/
void connectfriend();
/** show peers details for each friend **/
void configurefriend();
/** Open Shared Manager **/
void openShareManager();
/** get own last stored Avatar**/
void getAvatar();
void changeAvatarClicked();
void savestatusmessage();
/** Open Shared Manager **/
void openShareManager();
void on_actionSort_Peers_Descending_Order_activated();
void on_actionSort_Peers_Ascending_Order_activated();
void on_actionRoot_is_decorated_activated();
void on_actionRoot_isnot_decorated_activated();
void displayMenu();
void filterRegExpChanged();
void clearFilter();
/** get own last stored Avatar**/
void getAvatar();
void changeAvatarClicked();
void savestatusmessage();
void on_actionSort_Peers_Descending_Order_activated();
void on_actionSort_Peers_Ascending_Order_activated();
void on_actionRoot_is_decorated_activated();
void displayMenu();
void filterRegExpChanged();
void clearFilter();
signals:
void friendsUpdated() ;
void startChat(QTreeWidgetItem* );
void friendsUpdated() ;
private:
static MessengerWindow *mv;
static MessengerWindow *mv;
/* Worker Functions */
/* (1) Update Display */
void processSettings(bool bLoad);
/* (2) Utility Fns */
QTreeWidgetItem *getCurrentPeer();
void savestatus();
void insertPeers();
// idle function
void setIdle(bool Idle);
bool isIdle;
const unsigned long maxTimeBeforeIdle;
void FilterItems();
bool FilterItem(QTreeWidgetItem *pItem, QString &sPattern);
/* Worker Functions */
/* (1) Update Display */
std::map<std::string, PopupChatDialog *> chatDialogs;
/* (2) Utility Fns */
QTreeWidgetItem *getCurrentPeer();
void savestatus();
void insertPeers();
// idle function
void setIdle(bool Idle);
bool isIdle;
const unsigned long maxTimeBeforeIdle;
class QLabel *iconLabel, *textLabel;
class QWidget *widget;
class QWidgetAction *widgetAction;
class QSpacerItem *spacerItem;
void FilterItems();
bool FilterItem(QTreeWidgetItem *pItem, QString &sPattern);
/** Defines the actions for the context menu */
QAction* chatAct;
QAction* sendMessageAct;
QAction* connectfriendAct;
QAction* configurefriendAct;
QAction* exportfriendAct;
QAction* removefriendAct;
class QLabel *iconLabel, *textLabel;
class QWidget *widget;
class QWidgetAction *widgetAction;
class QSpacerItem *spacerItem;
QTreeView *messengertreeWidget;
/** Defines the actions for the context menu */
QAction* chatAct;
QAction* sendMessageAct;
QAction* connectfriendAct;
QAction* configurefriendAct;
QAction* exportfriendAct;
QAction* removefriendAct;
LogoBar * _rsLogoBarmessenger;
QFont itemFont;
/** Qt Designer generated object */
Ui::MessengerWindow ui;
QTreeView *messengertreeWidget;
LogoBar * _rsLogoBarmessenger;
QFont itemFont;
/** Qt Designer generated object */
Ui::MessengerWindow ui;
};
#endif