X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=fb610e0623dd4fb566bd61ff69f4c1842378f7ab;hp=36d709690bc569687e5ce30e696edf2d50f6b8fb;hb=1736d7414b96efc1189e56f22bd0407989c3a7c9;hpb=997a62b68d7469a93f373476dd955c44eb051be0 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 36d70969..fb610e06 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -25,8 +25,11 @@ #include "bufferviewconfig.h" #include "bufferviewfilter.h" #include "bufferviewmanager.h" -#include "chatline.h" -#include "chatline-old.h" +#ifdef SPUTDEV +# include "chatline.h" +#else +# include "chatline-old.h" +#endif #include "client.h" #include "clientbacklogmanager.h" #include "coreconnectdlg.h" @@ -62,10 +65,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"), @@ -101,6 +106,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(); @@ -132,20 +139,15 @@ 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 ui.bufferWidget->setModel(Client::bufferModel()); ui.bufferWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); - if(Global::SPUTDEV) { - //showSettingsDlg(); - //showAboutDlg(); - //showNetworkDlg(); - //exit(1); - } - + _titleSetter.setModel(Client::bufferModel()); + _titleSetter.setSelectionModel(Client::bufferModel()->standardSelectionModel()); } MainWin::~MainWin() { @@ -225,7 +227,7 @@ void MainWin::removeBufferView(int bufferViewConfigId) { break; dock = qobject_cast(action->parent()); - if(dock && actionData.toInt() != bufferViewConfigId) { + if(dock && actionData.toInt() == bufferViewConfigId) { removeAction(action); dock->deleteLater(); } @@ -267,7 +269,8 @@ void MainWin::setupNickWidget() { addDockWidget(Qt::RightDockWidgetArea, nickDock); ui.menuViews->addAction(nickDock->toggleViewAction()); - connect(nickDock->toggleViewAction(), SIGNAL(triggered(bool)), nickListWidget, SLOT(showWidget(bool))); + // See NickListDock::NickListDock(); + // connect(nickDock->toggleViewAction(), SIGNAL(triggered(bool)), nickListWidget, SLOT(showWidget(bool))); // attach the NickListWidget to the BufferModel and the default selection nickListWidget->setModel(Client::bufferModel()); @@ -275,6 +278,7 @@ void MainWin::setupNickWidget() { } void MainWin::setupChatMonitor() { +#ifndef SPUTDEV VerticalDock *dock = new VerticalDock(tr("Chat Monitor"), this); dock->setObjectName("ChatMonitorDock"); @@ -293,6 +297,7 @@ void MainWin::setupChatMonitor() { addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical); ui.menuViews->addAction(dock->toggleViewAction()); +#endif /* SPUTDEV */ } void MainWin::setupInputWidget() { @@ -407,7 +412,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); @@ -427,6 +435,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"; @@ -436,9 +450,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()) { @@ -455,7 +467,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); @@ -470,8 +487,12 @@ void MainWin::disconnectedFromCore() { } AbstractUiMsg *MainWin::layoutMsg(const Message &msg) { - if(Global::SPUTDEV) return new ChatLine(msg); +#ifdef SPUTDEV + //return new ChatLine(msg); + return 0; +#else return new ChatLineOld(msg); +#endif } void MainWin::showCoreConnectionDlg(bool autoConnect) { @@ -601,6 +622,7 @@ void MainWin::makeTrayIconBlink() { } + void MainWin::clientNetworkCreated(NetworkId id) { const Network *net = Client::network(id); QAction *act = new QAction(net->networkName(), this);