X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=829fa98ffd0292e096f3cedaad00aa05adfb0eb8;hp=d16916df37d64cd45d3bad2126529bb494fc43ee;hb=08c978e60cf143eeda3eff9fd81cda434b92578b;hpb=da28b86876edea39e97ffdd4cc5602072c001f93 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index d16916df..829fa98f 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -61,10 +61,12 @@ #include "global.h" #include "qtuistyle.h" + MainWin::MainWin(QtUi *_gui, QWidget *parent) : QMainWindow(parent), gui(_gui), sslLabel(new QLabel()), + _titleSetter(this), systray(new QSystemTrayIcon(this)), activeTrayIcon(":/icons/quassel-icon-active.png"), onlineTrayIcon(":/icons/quassel-icon.png"), @@ -100,8 +102,7 @@ void MainWin::init() { Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant))); - // let's hope here that nothing in disconnectedFromCore() needs user interaction/event loop... - connect(QApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(disconnectedFromCore())); + connect(QApplication::instance(), SIGNAL(aboutToQuit()), this, SLOT(saveLayout())); connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), this, SLOT(clientNetworkCreated(NetworkId))); connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), this, SLOT(clientNetworkRemoved(NetworkId))); @@ -141,6 +142,8 @@ void MainWin::init() { ui.bufferWidget->setModel(Client::bufferModel()); ui.bufferWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); + _titleSetter.setModel(Client::bufferModel()); + _titleSetter.setSelectionModel(Client::bufferModel()->standardSelectionModel()); } MainWin::~MainWin() { @@ -425,6 +428,12 @@ void MainWin::loadLayout() { restoreState(s.value(QString("MainWinState-%1").arg(accountId)).toByteArray(), accountId); } +void MainWin::saveLayout() { + QtUiSettings s; + int accountId = Client::currentCoreAccount().toInt(); + if(accountId > 0) s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId)); +} + void MainWin::securedConnection() { // todo: make status bar entry qDebug() << "secured the connection"; @@ -434,9 +443,7 @@ void MainWin::securedConnection() { void MainWin::disconnectedFromCore() { // save core specific layout and remove bufferviews; - QtUiSettings s; - int accountId = Client::currentCoreAccount().toInt(); - s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId)); + saveLayout(); QVariant actionData; BufferViewDock *dock; foreach(QAction *action, ui.menuViews->actions()) { @@ -453,6 +460,7 @@ void MainWin::disconnectedFromCore() { dock->deleteLater(); } } + QtUiSettings s; restoreState(s.value("MainWinState").toByteArray()); setDisconnectedState(); } @@ -602,6 +610,7 @@ void MainWin::makeTrayIconBlink() { } + void MainWin::clientNetworkCreated(NetworkId id) { const Network *net = Client::network(id); QAction *act = new QAction(net->networkName(), this);