X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=f01640ad3ac744d66322dad885fca073175f89c0;hb=e190d576540cf5dfb2e63d33a69662083f3db210;hp=a4a33b8f948c4243fcd9643e027c6a9a2981f580;hpb=8db1c0298b0b9baf3af072a5ef368b2f2d14169d;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index a4a33b8f..f01640ad 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -100,6 +100,8 @@ void MainWin::init() { Client::signalProxy()->attachSignal(this, SIGNAL(requestBacklog(BufferInfo, QVariant, QVariant))); + 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))); //ui.bufferWidget->init(); @@ -131,7 +133,7 @@ void MainWin::init() { // restore mainwin state restoreState(s.value("MainWinState").toByteArray()); - disconnectedFromCore(); // Disable menus and stuff + setDisconnectedState(); // Disable menus and stuff showCoreConnectionDlg(true); // autoconnect if appropriate // attach the BufferWidget to the BufferModel and the default selection @@ -399,7 +401,10 @@ void MainWin::connectedToCore() { foreach(BufferInfo id, Client::allBufferInfos()) { Client::backlogManager()->requestBacklog(id.bufferId(), 500, -1); } + setConnectedState(); +} +void MainWin::setConnectedState() { ui.menuViews->setEnabled(true); //ui.menuCore->setEnabled(true); ui.actionConnectCore->setEnabled(false); @@ -419,6 +424,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"; @@ -428,9 +439,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()) { @@ -447,7 +456,12 @@ void MainWin::disconnectedFromCore() { dock->deleteLater(); } } + QtUiSettings s; + restoreState(s.value("MainWinState").toByteArray()); + setDisconnectedState(); +} +void MainWin::setDisconnectedState() { ui.menuViews->setEnabled(false); //ui.menuCore->setEnabled(false); ui.actionDisconnectCore->setEnabled(false);