diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.cpp b/retroshare-gui/src/gui/ChatLobbyWidget.cpp index 23c522948..85037a8bf 100644 --- a/retroshare-gui/src/gui/ChatLobbyWidget.cpp +++ b/retroshare-gui/src/gui/ChatLobbyWidget.cpp @@ -3,6 +3,7 @@ #include #include "ChatLobbyWidget.h" #include "chat/CreateLobbyDialog.h" +#include "chat/ChatTabWidget.h" #include "common/RSTreeWidgetItem.h" #include "notifyqt.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(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(itemDoubleClicked(QTreeWidgetItem*,int)), this, SLOT(itemDoubleClicked(QTreeWidgetItem*,int))); @@ -349,6 +356,13 @@ void ChatLobbyWidget::itemDoubleClicked(QTreeWidgetItem *item, int /*column*/) 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) { std::cerr << "Received displayChatLobbyEvent()!" << std::endl; diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.h b/retroshare-gui/src/gui/ChatLobbyWidget.h index f4f17484b..fbd337805 100644 --- a/retroshare-gui/src/gui/ChatLobbyWidget.h +++ b/retroshare-gui/src/gui/ChatLobbyWidget.h @@ -1,9 +1,11 @@ #pragma once +#include #include "ui_ChatLobbyWidget.h" #include "RsAutoUpdatePage.h" class RSTreeWidgetItemCompareRole; +class ChatTabWidget ; class ChatLobbyWidget : public RsAutoUpdatePage, Ui::ChatLobbyWidget { @@ -18,6 +20,7 @@ public: virtual void updateDisplay(); + static ChatTabWidget *getTabWidget() ; protected slots: void lobbyChanged(); void lobbyTreeWidgetCostumPopupMenu(); @@ -32,4 +35,7 @@ private: RSTreeWidgetItemCompareRole *compareRole; QTreeWidgetItem *privateLobbyItem; QTreeWidgetItem *publicLobbyItem; + + ChatTabWidget *tabWidget ; + QTreeWidget *lobbyTreeWidget ; }; diff --git a/retroshare-gui/src/gui/ChatLobbyWidget.ui b/retroshare-gui/src/gui/ChatLobbyWidget.ui index 05aa549b4..6ad06bb08 100644 --- a/retroshare-gui/src/gui/ChatLobbyWidget.ui +++ b/retroshare-gui/src/gui/ChatLobbyWidget.ui @@ -7,7 +7,7 @@ 0 0 608 - 397 + 188 @@ -89,40 +89,6 @@ - - - - - 0 - 0 - - - - Qt::CustomContextMenu - - - QAbstractItemView::NoEditTriggers - - - false - - - false - - - true - - - true - - - false - - - 0 - - - diff --git a/retroshare-gui/src/gui/FriendsDialog.cpp b/retroshare-gui/src/gui/FriendsDialog.cpp index c9e0e5378..5e79479d0 100644 --- a/retroshare-gui/src/gui/FriendsDialog.cpp +++ b/retroshare-gui/src/gui/FriendsDialog.cpp @@ -42,7 +42,6 @@ #include "im_history/ImHistoryBrowser.h" #include "MainWindow.h" #include "NewsFeed.h" -#include "ChatLobbyWidget.h" #include "notifyqt.h" #include "profile/ProfileWidget.h" #include "profile/StatusMessage.h" @@ -51,7 +50,6 @@ #include "util/misc.h" #include "util/HandleRichText.h" #include "util/DateTime.h" -#include "chat/CreateLobbyDialog.h" #include "FriendRecommendDialog.h" #include "FriendsDialog.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.addfileButton, SIGNAL(clicked() ), this , SLOT(addExtraFile())); 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.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->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(new ChatLobbyWidget(), tr("Chat lobbies")); + //ui.tabWidget->addTab(new ProfileWidget(), tr("Profile")); //newsFeed = new NewsFeed(); //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 friends; - CreateLobbyDialog(friends).exec(); -} - void FriendsDialog::recommendFriends() { FriendRecommendDialog::showYourself(); @@ -890,11 +881,6 @@ void FriendsDialog::servicePermission() dlg.exec(); } -/*static*/ ChatTabWidget *FriendsDialog::getTabWidget() -{ - return instance ? instance->ui.tabWidget : NULL; -} - /*static*/ bool FriendsDialog::isGroupChatActive() { FriendsDialog *friendsDialog = dynamic_cast(MainWindow::getPage(MainWindow::Friends)); diff --git a/retroshare-gui/src/gui/FriendsDialog.h b/retroshare-gui/src/gui/FriendsDialog.h index 593fad6a9..4029f887c 100644 --- a/retroshare-gui/src/gui/FriendsDialog.h +++ b/retroshare-gui/src/gui/FriendsDialog.h @@ -49,7 +49,6 @@ public: virtual void updateDisplay() ; // overloaded from RsAutoUpdatePage - static ChatTabWidget *getTabWidget(); static bool isGroupChatActive(); static void groupChatActivate(); @@ -117,7 +116,6 @@ private slots: //void newsFeedChanged(int count); - void createChatLobby(); void recommendFriends(); void servicePermission(); diff --git a/retroshare-gui/src/gui/MainWindow.cpp b/retroshare-gui/src/gui/MainWindow.cpp index 8ae3ec0f3..4f954fc4b 100644 --- a/retroshare-gui/src/gui/MainWindow.cpp +++ b/retroshare-gui/src/gui/MainWindow.cpp @@ -50,6 +50,7 @@ #include "NetworkView.h" #include "ForumsDialog.h" #include "FriendsDialog.h" +#include "ChatLobbyWidget.h" #include "HelpDialog.h" #include "AboutDialog.h" #include "QuickStartWizard.h" @@ -255,8 +256,9 @@ MainWindow::MainWindow(QWidget* parent, Qt::WFlags flags) action = createPageAction(QIcon(IMAGE_TRANSFERS), tr("Transfers"), grp)); notify.push_back(QPair(transfersDialog, action)); -// ui->stackPages->add(sharedfilesDialog = new SharedFilesDialog(ui->stackPages), -// createPageAction(QIcon(IMAGE_FILES), tr("Files"), grp)); + ui->stackPages->add(chatLobbyDialog = new ChatLobbyWidget(ui->stackPages), + action = createPageAction(QIcon(IMAGE_CHAT), tr("Chat Lobbies"), grp)); + notify.push_back(QPair(chatLobbyDialog, action)); ui->stackPages->add(messagesDialog = new MessagesDialog(ui->stackPages), action = createPageAction(QIcon(IMAGE_MESSAGES), tr("Messages"), grp)); @@ -787,37 +789,39 @@ void SetForegroundWindowInternal(HWND hWnd) MainPage *Page = NULL; - switch (page) { -// case Network: -// Page = _instance->networkDialog; -// break; - case Friends: - Page = _instance->friendsDialog; - break; -// case Search: -// Page = _instance->searchDialog; -// break; - case Transfers: - Page = _instance->transfersDialog; - break; -// case SharedDirectories: -// Page = _instance->sharedfilesDialog; - break; - case Messages: - Page = _instance->messagesDialog; - break; - case Channels: - Page = _instance->channelFeed; - break; - case Forums: - Page = _instance->forumsDialog; - break; + switch (page) { + // case Network: + // Page = _instance->networkDialog; + // break; + case Friends: + Page = _instance->friendsDialog; + break; + case ChatLobby: + Page = _instance->chatLobbyDialog; + break; + case Transfers: + Page = _instance->transfersDialog; + break; + // case SharedDirectories: + // Page = _instance->sharedfilesDialog; + break; + case Messages: + Page = _instance->messagesDialog; + break; + case Channels: + Page = _instance->channelFeed; + break; + case Forums: + Page = _instance->forumsDialog; + break; #ifdef BLOGS - case Blogs: - Page = _instance->blogsFeed; - break; + case Blogs: + Page = _instance->blogsFeed; + break; #endif - } + default: + std::cerr << "Show page called on value that is not handled yet. Please code it! (value = " << Page << ")" << std::endl; + } if (Page) { /* Set the focus to the specified page. */ @@ -843,9 +847,9 @@ void SetForegroundWindowInternal(HWND hWnd) if (page == _instance->friendsDialog) { return Friends; } -// if (page == _instance->searchDialog) { -// return Search; -// } + if (page == _instance->chatLobbyDialog) { + return ChatLobby; + } if (page == _instance->transfersDialog) { return Transfers; } @@ -887,8 +891,8 @@ void SetForegroundWindowInternal(HWND hWnd) // return _instance->networkDialog; case Friends: return _instance->friendsDialog; -// case Search: -// return _instance->searchDialog; + case ChatLobby: + return _instance->chatLobbyDialog; case Transfers: return _instance->transfersDialog; // case SharedDirectories: diff --git a/retroshare-gui/src/gui/MainWindow.h b/retroshare-gui/src/gui/MainWindow.h index 9176dfbcd..8ada1f06f 100644 --- a/retroshare-gui/src/gui/MainWindow.h +++ b/retroshare-gui/src/gui/MainWindow.h @@ -43,6 +43,7 @@ class DHTStatus; class HashingStatus; class ForumsDialog; class FriendsDialog; +class ChatLobbyWidget; class ChatDialog; class NetworkDialog; class SearchDialog; @@ -79,17 +80,18 @@ public: /* Fixed numbers for load and save the last page */ Network = 0, /** Network page. */ Friends = 1, /** Friends page. */ - Search = 2, /** Search page. */ + ChatLobby = 2, /** Chat Lobby page. */ Transfers = 3, /** Transfers page. */ SharedDirectories = 4, /** Shared Directories page. */ Messages = 5, /** Messages page. */ Channels = 6, /** Channels page. */ Forums = 7, /** Forums page. */ + Search = 8, /** Search page. */ #ifdef BLOGS - Blogs = 8, /** Blogs page. */ + Blogs = 9, /** Blogs page. */ #endif #ifdef RS_USE_LINKS - Links = 9, /** Links page. */ + Links = 10, /** Links page. */ #endif }; @@ -124,6 +126,7 @@ public: NewsFeed *newsFeed; FriendsDialog *friendsDialog; TransfersDialog *transfersDialog; + ChatLobbyWidget *chatLobbyDialog; MessagesDialog *messagesDialog; SharedFilesDialog *sharedfilesDialog; ForumsDialog *forumsDialog; diff --git a/retroshare-gui/src/gui/NetworkView.cpp b/retroshare-gui/src/gui/NetworkView.cpp index bffc68758..ba2708978 100644 --- a/retroshare-gui/src/gui/NetworkView.cpp +++ b/retroshare-gui/src/gui/NetworkView.cpp @@ -118,9 +118,9 @@ void NetworkView::updateDisplay() /* add all friends */ std::string ownGPGId = rsPeers->getGPGOwnId(); -#ifdef DEBUG_NETWORKVIEW +//#ifdef DEBUG_NETWORKVIEW std::cerr << "NetworkView::updateDisplay()" << std::endl; -#endif +//#endif std::deque nodes_to_treat ; // list of nodes to be treated. Used as a queue. The int is the level of friendness std::set nodes_considered ; // list of nodes already considered. Eases lookup. diff --git a/retroshare-gui/src/gui/RemoteDirModel.cpp b/retroshare-gui/src/gui/RemoteDirModel.cpp index 075fe414f..f27c31bef 100644 --- a/retroshare-gui/src/gui/RemoteDirModel.cpp +++ b/retroshare-gui/src/gui/RemoteDirModel.cpp @@ -619,7 +619,7 @@ QVariant TreeStyle_RDM::headerData(int section, Qt::Orientation orientation, int if (RemoteMode) return tr("Friend"); else - return tr("Share Type"); + return tr("Share Flags"); case 4: if (RemoteMode) return tr("What's new"); @@ -665,7 +665,7 @@ QVariant FlatStyle_RDM::headerData(int section, Qt::Orientation orientation, int if(RemoteMode) return tr("Friend"); else - return tr("Share Type"); + return tr("Share Flags"); case 4: return tr("Directory"); } diff --git a/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp b/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp index e3453f294..04916709e 100644 --- a/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp +++ b/retroshare-gui/src/gui/chat/ChatLobbyDialog.cpp @@ -25,6 +25,7 @@ #include #include "ChatLobbyDialog.h" +#include "gui/ChatLobbyWidget.h" #include "ChatTabWidget.h" #include "gui/settings/rsharesettings.h" #include "gui/settings/RsharePeerSettings.h" @@ -123,7 +124,8 @@ void ChatLobbyDialog::init(const std::string &peerId, const QString &title) showParticipantsFrame(PeerSettings->getShowParticipantsFrame(peerId)); // add to window - ChatTabWidget *tabWidget = FriendsDialog::getTabWidget(); + ChatTabWidget *tabWidget = ChatLobbyWidget::getTabWidget(); + if (tabWidget) { tabWidget->addDialog(this); } @@ -455,8 +457,8 @@ bool ChatLobbyDialog::canClose() void ChatLobbyDialog::showDialog(uint chatflags) { if (chatflags & RS_CHAT_FOCUS) { - MainWindow::showWindow(MainWindow::Friends); - ChatTabWidget *tabWidget = FriendsDialog::getTabWidget(); + MainWindow::showWindow(MainWindow::ChatLobby); + ChatTabWidget *tabWidget = ChatLobbyWidget::getTabWidget(); if (tabWidget) { tabWidget->setCurrentWidget(this); }