fixed auto-raise of pages that are not in the top level

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6141 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2013-02-23 14:29:36 +00:00
parent 718314af75
commit 6e9d1beda9
6 changed files with 69 additions and 29 deletions

View File

@ -228,6 +228,19 @@ FriendsDialog::~FriendsDialog ()
} }
} }
void FriendsDialog::activatePage(FriendsDialog::Page page)
{
switch(page)
{
case FriendsDialog::NetworkTab: ui.tabWidget->setCurrentWidget(networkDialog) ;
break ;
case FriendsDialog::BroadcastTab: ui.tabWidget->setCurrentWidget(networkDialog) ;
break ;
case FriendsDialog::NetworkViewTab: ui.tabWidget->setCurrentWidget(networkView) ;
break ;
}
}
UserNotify *FriendsDialog::getUserNotify(QObject *parent) UserNotify *FriendsDialog::getUserNotify(QObject *parent)
{ {
return new ChatUserNotify(parent); return new ChatUserNotify(parent);

View File

@ -40,6 +40,13 @@ class FriendsDialog : public RsAutoUpdatePage
Q_OBJECT Q_OBJECT
public: public:
enum Page {
/* Fixed numbers for load and save the last page */
NetworkTab = 0, /** Network page. */
NetworkViewTab = 1, /** Network new graph. */
BroadcastTab = 2 /** Old group chat page. */
};
/** Default Constructor */ /** Default Constructor */
FriendsDialog(QWidget *parent = 0); FriendsDialog(QWidget *parent = 0);
/** Default Destructor */ /** Default Destructor */
@ -52,6 +59,8 @@ public:
static bool isGroupChatActive(); static bool isGroupChatActive();
static void groupChatActivate(); static void groupChatActivate();
void activatePage(FriendsDialog::Page page) ;
NetworkDialog *networkDialog ; NetworkDialog *networkDialog ;
NetworkView *networkView ; NetworkView *networkView ;
public slots: public slots:

View File

@ -786,49 +786,47 @@ void SetForegroundWindowInternal(HWND hWnd)
return false; return false;
} }
MainPage *Page = NULL;
switch (page) { switch (page) {
// case Network: case Search:
// Page = _instance->networkDialog; _instance->ui->stackPages->setCurrentPage( _instance->transfersDialog );
// break; _instance->transfersDialog->activatePage(TransfersDialog::SearchTab) ;
break ;
case Network:
_instance->ui->stackPages->setCurrentPage( _instance->friendsDialog );
_instance->friendsDialog->activatePage(FriendsDialog::NetworkTab) ;
break;
case Friends: case Friends:
Page = _instance->friendsDialog; _instance->ui->stackPages->setCurrentPage( _instance->friendsDialog );
break; break;
case ChatLobby: case ChatLobby:
Page = _instance->chatLobbyDialog; _instance->ui->stackPages->setCurrentPage( _instance->chatLobbyDialog );
break; break;
case Transfers: case Transfers:
Page = _instance->transfersDialog; _instance->ui->stackPages->setCurrentPage( _instance->transfersDialog );
break; break;
// case SharedDirectories: case SharedDirectories:
// Page = _instance->sharedfilesDialog; _instance->ui->stackPages->setCurrentPage( _instance->transfersDialog );
_instance->transfersDialog->activatePage(TransfersDialog::LocalSharedFilesTab) ;
break; break;
case Messages: case Messages:
Page = _instance->messagesDialog; _instance->ui->stackPages->setCurrentPage( _instance->messagesDialog );
break; break;
case Channels: case Channels:
Page = _instance->channelFeed; _instance->ui->stackPages->setCurrentPage( _instance->channelFeed );
break; return true ;
case Forums: case Forums:
Page = _instance->forumsDialog; _instance->ui->stackPages->setCurrentPage( _instance->forumsDialog );
break; return true ;
#ifdef BLOGS #ifdef BLOGS
case Blogs: case Blogs:
Page = _instance->blogsFeed; Page = _instance->blogsFeed;
break; return true ;
#endif #endif
default: default:
std::cerr << "Show page called on value that is not handled yet. Please code it! (value = " << Page << ")" << std::endl; std::cerr << "Show page called on value that is not handled yet. Please code it! (value = " << page << ")" << std::endl;
} }
if (Page) { return false ;
/* Set the focus to the specified page. */
_instance->ui->stackPages->setCurrentPage(Page);
return true;
}
return false;
} }
/** Get the active page. */ /** Get the active page. */

View File

@ -45,7 +45,7 @@
#include <retroshare/rsforums.h> #include <retroshare/rsforums.h>
#include <retroshare/rschannels.h> #include <retroshare/rschannels.h>
#define DEBUG_RSLINK 1 //#define DEBUG_RSLINK 1
#define HOST_FILE "file" #define HOST_FILE "file"
#define HOST_EXTRAFILE "extra" #define HOST_EXTRAFILE "extra"
@ -1212,8 +1212,6 @@ static void processList(const QStringList &list, const QString &textSingular, co
#ifdef DEBUG_RSLINK #ifdef DEBUG_RSLINK
std::cerr << " RetroShareLink::process SearchRequest : string : " << link.name().toStdString() << std::endl; std::cerr << " RetroShareLink::process SearchRequest : string : " << link.name().toStdString() << std::endl;
#endif #endif
MainWindow::showWindow(MainWindow::Search);
SearchDialog *searchDialog = dynamic_cast<SearchDialog*>(MainWindow::getPage(MainWindow::Search)); SearchDialog *searchDialog = dynamic_cast<SearchDialog*>(MainWindow::getPage(MainWindow::Search));
if (!searchDialog) if (!searchDialog)
{ {
@ -1221,6 +1219,7 @@ static void processList(const QStringList &list, const QString &textSingular, co
break; break;
} }
MainWindow::showWindow(MainWindow::Search);
searchDialog->searchKeywords(link.name()); searchDialog->searchKeywords(link.name());
searchStarted.append(link.name()); searchStarted.append(link.name());
break; break;

View File

@ -408,6 +408,19 @@ TransfersDialog::~TransfersDialog()
processSettings(false); processSettings(false);
} }
void TransfersDialog::activatePage(TransfersDialog::Page page)
{
switch(page)
{
case TransfersDialog::SearchTab: ui.tabWidget->setCurrentWidget(searchDialog) ;
break ;
case TransfersDialog::LocalSharedFilesTab: ui.tabWidget->setCurrentWidget(localSharedFiles) ;
break ;
case TransfersDialog::RemoteSharedFilesTab: ui.tabWidget->setCurrentWidget(remoteSharedFiles) ;
break ;
}
}
UserNotify *TransfersDialog::getUserNotify(QObject *parent) UserNotify *TransfersDialog::getUserNotify(QObject *parent)
{ {
return new TransferUserNotify(parent); return new TransferUserNotify(parent);

View File

@ -45,14 +45,22 @@ class TransfersDialog : public RsAutoUpdatePage
Q_OBJECT Q_OBJECT
public: public:
enum Page {
/* Fixed numbers for load and save the last page */
SearchTab = 0, /** Network page. */
LocalSharedFilesTab = 1, /** Network new graph. */
RemoteSharedFilesTab = 2 /** Old group chat page. */
};
/** Default Constructor */ /** Default Constructor */
TransfersDialog(QWidget *parent = 0); TransfersDialog(QWidget *parent = 0);
~TransfersDialog(); ~TransfersDialog();
virtual UserNotify *getUserNotify(QObject *parent); virtual UserNotify *getUserNotify(QObject *parent);
// replaced by shortcut void activatePage(TransfersDialog::Page page) ;
// virtual void keyPressEvent(QKeyEvent *) ;
virtual void updateDisplay() ; // derived from RsAutoUpdateWidget virtual void updateDisplay() ; // derived from RsAutoUpdateWidget
static DetailsDialog *detailsDialog() ; static DetailsDialog *detailsDialog() ;