Removed tabs in chat lobbies:

- unsubscribed lobbies display complete info in a blank page, with some additional help
- double click to subscribe.
- added unsubscribe button to ChatLobbyDialog. Needs a more appropriate icon (e.g. An open door with a leaving arrow)
- the lobby list is now used to display typing status. It could be used to show all sorts of info, the exact same way, such as joining/leaving peers, etc, using various different icons.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6142 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2013-02-24 22:44:14 +00:00
parent 6e9d1beda9
commit 170c0c533d
5 changed files with 260 additions and 36 deletions

View file

@ -1,11 +1,14 @@
#pragma once
#include <QTreeWidget>
#include <retroshare/rsmsgs.h>
#include "ui_ChatLobbyWidget.h"
#include "RsAutoUpdatePage.h"
class RSTreeWidgetItemCompareRole;
class ChatTabWidget ;
class ChatLobbyDialog ;
class QTextBrowser ;
class ChatLobbyWidget : public RsAutoUpdatePage, Ui::ChatLobbyWidget
{
@ -20,22 +23,36 @@ public:
virtual void updateDisplay();
static ChatTabWidget *getTabWidget() ;
void setCurrentChatPage(ChatLobbyDialog *) ; // used by ChatLobbyDialog to raise.
void addChatPage(ChatLobbyDialog *) ;
protected slots:
void lobbyChanged();
void lobbyTreeWidgetCostumPopupMenu();
void lobbyTreeWidgetCustomPopupMenu(QPoint);
void createChatLobby();
void subscribeItem();
void unsubscribeItem();
void itemDoubleClicked(QTreeWidgetItem *item, int column);
void updateCurrentLobby() ;
void displayChatLobbyEvent(qulonglong lobby_id, int event_type, const QString& nickname, const QString& str);
void readChatLobbyInvites();
void showLobby(QTreeWidgetItem *lobby_item) ;
void showBlankPage(ChatLobbyId id) ;
void unsubscribeChatLobby(ChatLobbyId id) ;
void updateTypingStatus(ChatLobbyId id) ;
void resetLobbyTreeIcons() ;
private:
RSTreeWidgetItemCompareRole *compareRole;
QTreeWidgetItem *privateLobbyItem;
QTreeWidgetItem *publicLobbyItem;
QTreeWidgetItem *getTreeWidgetItem(ChatLobbyId);
ChatTabWidget *tabWidget ;
QTreeWidget *lobbyTreeWidget ;
std::map<ChatLobbyId,ChatLobbyDialog*> _lobby_dialogs ;
QTextBrowser *_lobby_blank_page ;
std::map<QTreeWidgetItem*,time_t> _icon_changed_map ;
};