X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=925c64f71a7da5e155a80e390039a8757c58ffef;hp=1b503efa9dba67206fa1a939a637c61750807923;hb=d1b2699b8a77947f1b7dd67841c6ecb4ea1fce1e;hpb=ef450b6502abfcad52fec7581a3d807a5386512f diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 1b503efa..925c64f7 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -25,7 +25,6 @@ #include "bufferviewconfig.h" #include "bufferviewfilter.h" #include "bufferviewmanager.h" -#include "chatline-old.h" #include "client.h" #include "clientbacklogmanager.h" #include "coreconnectdlg.h" @@ -61,10 +60,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"), @@ -77,6 +78,7 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) ui.setupUi(this); setWindowTitle("Quassel IRC"); setWindowIcon(offlineTrayIcon); + qApp->setWindowIcon(offlineTrayIcon); systray->setIcon(offlineTrayIcon); setWindowIconText("Quassel IRC"); @@ -100,6 +102,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(); @@ -138,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() { @@ -259,7 +265,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()); @@ -267,6 +274,7 @@ void MainWin::setupNickWidget() { } void MainWin::setupChatMonitor() { +#ifndef SPUTDEV VerticalDock *dock = new VerticalDock(tr("Chat Monitor"), this); dock->setObjectName("ChatMonitorDock"); @@ -285,6 +293,7 @@ void MainWin::setupChatMonitor() { addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical); ui.menuViews->addAction(dock->toggleViewAction()); +#endif /* SPUTDEV */ } void MainWin::setupInputWidget() { @@ -411,6 +420,7 @@ void MainWin::setConnectedState() { ui.bufferWidget->show(); statusBar()->showMessage(tr("Connected to core.")); setWindowIcon(onlineTrayIcon); + qApp->setWindowIcon(onlineTrayIcon); systray->setIcon(onlineTrayIcon); if(sslLabel->width() == 0) sslLabel->setPixmap(QPixmap::fromImage(QImage(":/16x16/status/no-ssl"))); @@ -422,6 +432,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"; @@ -431,9 +447,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()) { @@ -450,6 +464,7 @@ void MainWin::disconnectedFromCore() { dock->deleteLater(); } } + QtUiSettings s; restoreState(s.value("MainWinState").toByteArray()); setDisconnectedState(); } @@ -464,14 +479,11 @@ void MainWin::setDisconnectedState() { // nickListWidget->reset(); statusBar()->showMessage(tr("Not connected to core.")); setWindowIcon(offlineTrayIcon); + qApp->setWindowIcon(offlineTrayIcon); systray->setIcon(offlineTrayIcon); sslLabel->setPixmap(QPixmap()); } -AbstractUiMsg *MainWin::layoutMsg(const Message &msg) { - return new ChatLineOld(msg); -} - void MainWin::showCoreConnectionDlg(bool autoConnect) { coreConnectDlg = new CoreConnectDlg(this, autoConnect); connect(coreConnectDlg, SIGNAL(finished(int)), this, SLOT(coreConnectionDlgFinished(int))); @@ -508,7 +520,7 @@ void MainWin::closeEvent(QCloseEvent *event) { } void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReason) { - if (activationReason == QSystemTrayIcon::Trigger) { + if(activationReason == QSystemTrayIcon::Trigger) { toggleVisibility(); } } @@ -516,11 +528,12 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas void MainWin::toggleVisibility() { if(isHidden() /*|| !isActiveWindow()*/) { show(); - if(isMinimized()) - if (isMaximized()) + if(isMinimized()) { + if(isMaximized()) showMaximized(); else showNormal(); + } raise(); activateWindow(); @@ -555,12 +568,13 @@ void MainWin::receiveMessage(const Message &msg) { UiSettings uiSettings; +#ifndef SPUTDEV if(uiSettings.value("DisplayPopupMessages", QVariant(true)).toBool()) { // FIXME don't invoke style engine for this! - QString text = QtUi::style()->styleString(Message::mircToInternal(msg.text())).text; + QString text = QtUi::style()->styleString(Message::mircToInternal(msg.contents())).plainText; displayTrayIconMessage(title, text); } - +#endif if(uiSettings.value("AnimateTrayIcon", QVariant(true)).toBool()) { QApplication::alert(this); setTrayIconActivity(true); @@ -599,6 +613,7 @@ void MainWin::makeTrayIconBlink() { } + void MainWin::clientNetworkCreated(NetworkId id) { const Network *net = Client::network(id); QAction *act = new QAction(net->networkName(), this);