moved chat lobbies into a separate tab

git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-ImprovedGUI@6124 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2013-02-13 19:51:24 +00:00
parent c7aa08f03f
commit 205828bc7d
10 changed files with 78 additions and 99 deletions

View file

@ -3,6 +3,7 @@
#include <QMessageBox> #include <QMessageBox>
#include "ChatLobbyWidget.h" #include "ChatLobbyWidget.h"
#include "chat/CreateLobbyDialog.h" #include "chat/CreateLobbyDialog.h"
#include "chat/ChatTabWidget.h"
#include "common/RSTreeWidgetItem.h" #include "common/RSTreeWidgetItem.h"
#include "notifyqt.h" #include "notifyqt.h"
#include "chat/ChatLobbyDialog.h" #include "chat/ChatLobbyDialog.h"
@ -40,6 +41,12 @@ ChatLobbyWidget::ChatLobbyWidget(QWidget *parent, Qt::WFlags flags)
QObject::connect(NotifyQt::getInstance(), SIGNAL(chatLobbyEvent(qulonglong,int,const QString&,const QString&)), this, SLOT(displayChatLobbyEvent(qulonglong,int,const QString&,const QString&))); QObject::connect(NotifyQt::getInstance(), SIGNAL(chatLobbyEvent(qulonglong,int,const QString&,const QString&)), this, SLOT(displayChatLobbyEvent(qulonglong,int,const QString&,const QString&)));
QObject::connect(NotifyQt::getInstance(), SIGNAL(chatLobbyInviteReceived()), this, SLOT(readChatLobbyInvites())); QObject::connect(NotifyQt::getInstance(), SIGNAL(chatLobbyInviteReceived()), this, SLOT(readChatLobbyInvites()));
lobbyTreeWidget = new QTreeWidget ;
getTabWidget()->addTab(lobbyTreeWidget,tr("Lobby list")) ;
layout()->addWidget( getTabWidget() ) ;
layout()->update() ;
QObject::connect(lobbyTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(lobbyTreeWidgetCostumPopupMenu())); QObject::connect(lobbyTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(lobbyTreeWidgetCostumPopupMenu()));
QObject::connect(lobbyTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(itemDoubleClicked(QTreeWidgetItem*,int))); QObject::connect(lobbyTreeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(itemDoubleClicked(QTreeWidgetItem*,int)));
@ -349,6 +356,13 @@ void ChatLobbyWidget::itemDoubleClicked(QTreeWidgetItem *item, int /*column*/)
subscribeLobby(item); subscribeLobby(item);
} }
ChatTabWidget *ChatLobbyWidget::getTabWidget()
{
static ChatTabWidget *instance = new ChatTabWidget() ;
return instance ;
}
void ChatLobbyWidget::displayChatLobbyEvent(qulonglong lobby_id, int event_type, const QString& nickname, const QString& str) void ChatLobbyWidget::displayChatLobbyEvent(qulonglong lobby_id, int event_type, const QString& nickname, const QString& str)
{ {
std::cerr << "Received displayChatLobbyEvent()!" << std::endl; std::cerr << "Received displayChatLobbyEvent()!" << std::endl;

View file

@ -1,9 +1,11 @@
#pragma once #pragma once
#include <QTreeWidget>
#include "ui_ChatLobbyWidget.h" #include "ui_ChatLobbyWidget.h"
#include "RsAutoUpdatePage.h" #include "RsAutoUpdatePage.h"
class RSTreeWidgetItemCompareRole; class RSTreeWidgetItemCompareRole;
class ChatTabWidget ;
class ChatLobbyWidget : public RsAutoUpdatePage, Ui::ChatLobbyWidget class ChatLobbyWidget : public RsAutoUpdatePage, Ui::ChatLobbyWidget
{ {
@ -18,6 +20,7 @@ public:
virtual void updateDisplay(); virtual void updateDisplay();
static ChatTabWidget *getTabWidget() ;
protected slots: protected slots:
void lobbyChanged(); void lobbyChanged();
void lobbyTreeWidgetCostumPopupMenu(); void lobbyTreeWidgetCostumPopupMenu();
@ -32,4 +35,7 @@ private:
RSTreeWidgetItemCompareRole *compareRole; RSTreeWidgetItemCompareRole *compareRole;
QTreeWidgetItem *privateLobbyItem; QTreeWidgetItem *privateLobbyItem;
QTreeWidgetItem *publicLobbyItem; QTreeWidgetItem *publicLobbyItem;
ChatTabWidget *tabWidget ;
QTreeWidget *lobbyTreeWidget ;
}; };

View file

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>608</width> <width>608</width>
<height>397</height> <height>188</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
@ -89,40 +89,6 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="0">
<widget class="QTreeWidget" name="lobbyTreeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="itemsExpandable">
<bool>false</bool>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<property name="allColumnsShowFocus">
<bool>true</bool>
</property>
<property name="expandsOnDoubleClick">
<bool>false</bool>
</property>
<property name="columnCount">
<number>0</number>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<resources> <resources>

View file

@ -42,7 +42,6 @@
#include "im_history/ImHistoryBrowser.h" #include "im_history/ImHistoryBrowser.h"
#include "MainWindow.h" #include "MainWindow.h"
#include "NewsFeed.h" #include "NewsFeed.h"
#include "ChatLobbyWidget.h"
#include "notifyqt.h" #include "notifyqt.h"
#include "profile/ProfileWidget.h" #include "profile/ProfileWidget.h"
#include "profile/StatusMessage.h" #include "profile/StatusMessage.h"
@ -51,7 +50,6 @@
#include "util/misc.h" #include "util/misc.h"
#include "util/HandleRichText.h" #include "util/HandleRichText.h"
#include "util/DateTime.h" #include "util/DateTime.h"
#include "chat/CreateLobbyDialog.h"
#include "FriendRecommendDialog.h" #include "FriendRecommendDialog.h"
#include "FriendsDialog.h" #include "FriendsDialog.h"
#include "ServicePermissionDialog.h" #include "ServicePermissionDialog.h"
@ -89,8 +87,7 @@ FriendsDialog::FriendsDialog(QWidget *parent)
connect( ui.actionSet_your_Personal_Message, SIGNAL(triggered()), this, SLOT(statusmessage())); connect( ui.actionSet_your_Personal_Message, SIGNAL(triggered()), this, SLOT(statusmessage()));
connect( ui.addfileButton, SIGNAL(clicked() ), this , SLOT(addExtraFile())); connect( ui.addfileButton, SIGNAL(clicked() ), this , SLOT(addExtraFile()));
connect( ui.actionAdd_Friend, SIGNAL(triggered()), this, SLOT(addFriend())); connect( ui.actionAdd_Friend, SIGNAL(triggered()), this, SLOT(addFriend()));
connect( ui.actionCreate_new_Chat_lobby, SIGNAL(triggered()), this, SLOT(createChatLobby())); connect( ui.actionFriendRecommendations, SIGNAL(triggered()), this, SLOT(recommendFriends()));
connect( ui.actionFriendRecommendations, SIGNAL(triggered()), this, SLOT(recommendFriends()));
connect( ui.actionServicePermission, SIGNAL(triggered()), this, SLOT(servicePermission())); connect( ui.actionServicePermission, SIGNAL(triggered()), this, SLOT(servicePermission()));
connect( ui.filter_lineEdit, SIGNAL(textChanged(QString)), ui.friendList, SLOT(filterItems(QString))); connect( ui.filter_lineEdit, SIGNAL(textChanged(QString)), ui.friendList, SLOT(filterItems(QString)));
@ -103,7 +100,7 @@ FriendsDialog::FriendsDialog(QWidget *parent)
ui.tabWidget->setTabPosition(QTabWidget::North); ui.tabWidget->setTabPosition(QTabWidget::North);
ui.tabWidget->addTab(networkView = new NetworkView(),QIcon(IMAGE_NETWORK2), tr("Local network")); ui.tabWidget->addTab(networkView = new NetworkView(),QIcon(IMAGE_NETWORK2), tr("Local network"));
ui.tabWidget->addTab(networkDialog = new NetworkDialog(),QIcon(IMAGE_PEERS), tr("Known people")); ui.tabWidget->addTab(networkDialog = new NetworkDialog(),QIcon(IMAGE_PEERS), tr("Known people"));
ui.tabWidget->addTab(new ChatLobbyWidget(), tr("Chat lobbies"));
//ui.tabWidget->addTab(new ProfileWidget(), tr("Profile")); //ui.tabWidget->addTab(new ProfileWidget(), tr("Profile"));
//newsFeed = new NewsFeed(); //newsFeed = new NewsFeed();
//int newsFeedTabIndex = ui.tabWidget->insertTab(0, newsFeed, tr("News Feed")); //int newsFeedTabIndex = ui.tabWidget->insertTab(0, newsFeed, tr("News Feed"));
@ -873,12 +870,6 @@ void FriendsDialog::on_actionAdd_Group_activated()
// } // }
// } // }
void FriendsDialog::createChatLobby()
{
std::list<std::string> friends;
CreateLobbyDialog(friends).exec();
}
void FriendsDialog::recommendFriends() void FriendsDialog::recommendFriends()
{ {
FriendRecommendDialog::showYourself(); FriendRecommendDialog::showYourself();
@ -890,11 +881,6 @@ void FriendsDialog::servicePermission()
dlg.exec(); dlg.exec();
} }
/*static*/ ChatTabWidget *FriendsDialog::getTabWidget()
{
return instance ? instance->ui.tabWidget : NULL;
}
/*static*/ bool FriendsDialog::isGroupChatActive() /*static*/ bool FriendsDialog::isGroupChatActive()
{ {
FriendsDialog *friendsDialog = dynamic_cast<FriendsDialog*>(MainWindow::getPage(MainWindow::Friends)); FriendsDialog *friendsDialog = dynamic_cast<FriendsDialog*>(MainWindow::getPage(MainWindow::Friends));

View file

@ -49,7 +49,6 @@ public:
virtual void updateDisplay() ; // overloaded from RsAutoUpdatePage virtual void updateDisplay() ; // overloaded from RsAutoUpdatePage
static ChatTabWidget *getTabWidget();
static bool isGroupChatActive(); static bool isGroupChatActive();
static void groupChatActivate(); static void groupChatActivate();
@ -117,7 +116,6 @@ private slots:
//void newsFeedChanged(int count); //void newsFeedChanged(int count);
void createChatLobby();
void recommendFriends(); void recommendFriends();
void servicePermission(); void servicePermission();

View file

@ -50,6 +50,7 @@
#include "NetworkView.h" #include "NetworkView.h"
#include "ForumsDialog.h" #include "ForumsDialog.h"
#include "FriendsDialog.h" #include "FriendsDialog.h"
#include "ChatLobbyWidget.h"
#include "HelpDialog.h" #include "HelpDialog.h"
#include "AboutDialog.h" #include "AboutDialog.h"
#include "QuickStartWizard.h" #include "QuickStartWizard.h"
@ -255,8 +256,9 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags)
action = createPageAction(QIcon(IMAGE_TRANSFERS), tr("Transfers"), grp)); action = createPageAction(QIcon(IMAGE_TRANSFERS), tr("Transfers"), grp));
notify.push_back(QPair<MainPage*, QAction*>(transfersDialog, action)); notify.push_back(QPair<MainPage*, QAction*>(transfersDialog, action));
// ui->stackPages->add(sharedfilesDialog = new SharedFilesDialog(ui->stackPages), ui->stackPages->add(chatLobbyDialog = new ChatLobbyWidget(ui->stackPages),
// createPageAction(QIcon(IMAGE_FILES), tr("Files"), grp)); action = createPageAction(QIcon(IMAGE_CHAT), tr("Chat Lobbies"), grp));
notify.push_back(QPair<MainPage*, QAction*>(chatLobbyDialog, action));
ui->stackPages->add(messagesDialog = new MessagesDialog(ui->stackPages), ui->stackPages->add(messagesDialog = new MessagesDialog(ui->stackPages),
action = createPageAction(QIcon(IMAGE_MESSAGES), tr("Messages"), grp)); action = createPageAction(QIcon(IMAGE_MESSAGES), tr("Messages"), grp));
@ -787,37 +789,39 @@ void SetForegroundWindowInternal(HWND hWnd)
MainPage *Page = NULL; MainPage *Page = NULL;
switch (page) { switch (page) {
// case Network: // case Network:
// Page = _instance->networkDialog; // Page = _instance->networkDialog;
// break; // break;
case Friends: case Friends:
Page = _instance->friendsDialog; Page = _instance->friendsDialog;
break; break;
// case Search: case ChatLobby:
// Page = _instance->searchDialog; Page = _instance->chatLobbyDialog;
// break; break;
case Transfers: case Transfers:
Page = _instance->transfersDialog; Page = _instance->transfersDialog;
break; break;
// case SharedDirectories: // case SharedDirectories:
// Page = _instance->sharedfilesDialog; // Page = _instance->sharedfilesDialog;
break; break;
case Messages: case Messages:
Page = _instance->messagesDialog; Page = _instance->messagesDialog;
break; break;
case Channels: case Channels:
Page = _instance->channelFeed; Page = _instance->channelFeed;
break; break;
case Forums: case Forums:
Page = _instance->forumsDialog; Page = _instance->forumsDialog;
break; break;
#ifdef BLOGS #ifdef BLOGS
case Blogs: case Blogs:
Page = _instance->blogsFeed; Page = _instance->blogsFeed;
break; break;
#endif #endif
} default:
std::cerr << "Show page called on value that is not handled yet. Please code it! (value = " << Page << ")" << std::endl;
}
if (Page) { if (Page) {
/* Set the focus to the specified page. */ /* Set the focus to the specified page. */
@ -843,9 +847,9 @@ void SetForegroundWindowInternal(HWND hWnd)
if (page == _instance->friendsDialog) { if (page == _instance->friendsDialog) {
return Friends; return Friends;
} }
// if (page == _instance->searchDialog) { if (page == _instance->chatLobbyDialog) {
// return Search; return ChatLobby;
// } }
if (page == _instance->transfersDialog) { if (page == _instance->transfersDialog) {
return Transfers; return Transfers;
} }
@ -887,8 +891,8 @@ void SetForegroundWindowInternal(HWND hWnd)
// return _instance->networkDialog; // return _instance->networkDialog;
case Friends: case Friends:
return _instance->friendsDialog; return _instance->friendsDialog;
// case Search: case ChatLobby:
// return _instance->searchDialog; return _instance->chatLobbyDialog;
case Transfers: case Transfers:
return _instance->transfersDialog; return _instance->transfersDialog;
// case SharedDirectories: // case SharedDirectories:

View file

@ -43,6 +43,7 @@ class DHTStatus;
class HashingStatus; class HashingStatus;
class ForumsDialog; class ForumsDialog;
class FriendsDialog; class FriendsDialog;
class ChatLobbyWidget;
class ChatDialog; class ChatDialog;
class NetworkDialog; class NetworkDialog;
class SearchDialog; class SearchDialog;
@ -79,17 +80,18 @@ public:
/* Fixed numbers for load and save the last page */ /* Fixed numbers for load and save the last page */
Network = 0, /** Network page. */ Network = 0, /** Network page. */
Friends = 1, /** Friends page. */ Friends = 1, /** Friends page. */
Search = 2, /** Search page. */ ChatLobby = 2, /** Chat Lobby page. */
Transfers = 3, /** Transfers page. */ Transfers = 3, /** Transfers page. */
SharedDirectories = 4, /** Shared Directories page. */ SharedDirectories = 4, /** Shared Directories page. */
Messages = 5, /** Messages page. */ Messages = 5, /** Messages page. */
Channels = 6, /** Channels page. */ Channels = 6, /** Channels page. */
Forums = 7, /** Forums page. */ Forums = 7, /** Forums page. */
Search = 8, /** Search page. */
#ifdef BLOGS #ifdef BLOGS
Blogs = 8, /** Blogs page. */ Blogs = 9, /** Blogs page. */
#endif #endif
#ifdef RS_USE_LINKS #ifdef RS_USE_LINKS
Links = 9, /** Links page. */ Links = 10, /** Links page. */
#endif #endif
}; };
@ -124,6 +126,7 @@ public:
NewsFeed *newsFeed; NewsFeed *newsFeed;
FriendsDialog *friendsDialog; FriendsDialog *friendsDialog;
TransfersDialog *transfersDialog; TransfersDialog *transfersDialog;
ChatLobbyWidget *chatLobbyDialog;
MessagesDialog *messagesDialog; MessagesDialog *messagesDialog;
SharedFilesDialog *sharedfilesDialog; SharedFilesDialog *sharedfilesDialog;
ForumsDialog *forumsDialog; ForumsDialog *forumsDialog;

View file

@ -118,9 +118,9 @@ void NetworkView::updateDisplay()
/* add all friends */ /* add all friends */
std::string ownGPGId = rsPeers->getGPGOwnId(); std::string ownGPGId = rsPeers->getGPGOwnId();
#ifdef DEBUG_NETWORKVIEW //#ifdef DEBUG_NETWORKVIEW
std::cerr << "NetworkView::updateDisplay()" << std::endl; std::cerr << "NetworkView::updateDisplay()" << std::endl;
#endif //#endif
std::deque<NodeInfo> nodes_to_treat ; // list of nodes to be treated. Used as a queue. The int is the level of friendness std::deque<NodeInfo> nodes_to_treat ; // list of nodes to be treated. Used as a queue. The int is the level of friendness
std::set<std::string> nodes_considered ; // list of nodes already considered. Eases lookup. std::set<std::string> nodes_considered ; // list of nodes already considered. Eases lookup.

View file

@ -619,7 +619,7 @@ QVariant TreeStyle_RDM::headerData(int section, Qt::Orientation orientation, int
if (RemoteMode) if (RemoteMode)
return tr("Friend"); return tr("Friend");
else else
return tr("Share Type"); return tr("Share Flags");
case 4: case 4:
if (RemoteMode) if (RemoteMode)
return tr("What's new"); return tr("What's new");
@ -665,7 +665,7 @@ QVariant FlatStyle_RDM::headerData(int section, Qt::Orientation orientation, int
if(RemoteMode) if(RemoteMode)
return tr("Friend"); return tr("Friend");
else else
return tr("Share Type"); return tr("Share Flags");
case 4: case 4:
return tr("Directory"); return tr("Directory");
} }

View file

@ -25,6 +25,7 @@
#include <QMenu> #include <QMenu>
#include "ChatLobbyDialog.h" #include "ChatLobbyDialog.h"
#include "gui/ChatLobbyWidget.h"
#include "ChatTabWidget.h" #include "ChatTabWidget.h"
#include "gui/settings/rsharesettings.h" #include "gui/settings/rsharesettings.h"
#include "gui/settings/RsharePeerSettings.h" #include "gui/settings/RsharePeerSettings.h"
@ -123,7 +124,8 @@ void ChatLobbyDialog::init(const std::string &peerId, const QString &title)
showParticipantsFrame(PeerSettings->getShowParticipantsFrame(peerId)); showParticipantsFrame(PeerSettings->getShowParticipantsFrame(peerId));
// add to window // add to window
ChatTabWidget *tabWidget = FriendsDialog::getTabWidget(); ChatTabWidget *tabWidget = ChatLobbyWidget::getTabWidget();
if (tabWidget) { if (tabWidget) {
tabWidget->addDialog(this); tabWidget->addDialog(this);
} }
@ -455,8 +457,8 @@ bool ChatLobbyDialog::canClose()
void ChatLobbyDialog::showDialog(uint chatflags) void ChatLobbyDialog::showDialog(uint chatflags)
{ {
if (chatflags & RS_CHAT_FOCUS) { if (chatflags & RS_CHAT_FOCUS) {
MainWindow::showWindow(MainWindow::Friends); MainWindow::showWindow(MainWindow::ChatLobby);
ChatTabWidget *tabWidget = FriendsDialog::getTabWidget(); ChatTabWidget *tabWidget = ChatLobbyWidget::getTabWidget();
if (tabWidget) { if (tabWidget) {
tabWidget->setCurrentWidget(this); tabWidget->setCurrentWidget(this);
} }