RetroShare/retroshare-gui/src/gui/MessengerWindow.h
thunder2 e282a55164 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
2010-06-17 17:39:32 +00:00

150 lines
3.8 KiB
C++

/****************************************************************
* RetroShare is distributed under the following license:
*
* Copyright (C) 2007, RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef _MESSENGERWINDOW_H
#define _MESSENGERWINDOW_H
#include "ui_MessengerWindow.h"
#include <gui/common/rwindow.h>
class LogoBar;
class PeersDialog;
class PopupChatDialog;
class MessengerWindow : public RWindow
{
Q_OBJECT
public:
QPixmap picture;
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);
LogoBar & getLogoBar() const;
protected:
/** 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 );
/** 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();
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() ;
private:
static MessengerWindow *mv;
void processSettings(bool bLoad);
/* Worker Functions */
/* (1) Update Display */
/* (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);
class QLabel *iconLabel, *textLabel;
class QWidget *widget;
class QWidgetAction *widgetAction;
class QSpacerItem *spacerItem;
/** Defines the actions for the context menu */
QAction* chatAct;
QAction* sendMessageAct;
QAction* connectfriendAct;
QAction* configurefriendAct;
QAction* exportfriendAct;
QAction* removefriendAct;
QTreeView *messengertreeWidget;
LogoBar * _rsLogoBarmessenger;
QFont itemFont;
/** Qt Designer generated object */
Ui::MessengerWindow ui;
};
#endif