X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=027f7de0b931eb6f7531ff5cc6ce1cd6ca33ba11;hb=c55bd7dc80547563d8c9cc70d54aa3d24ff03166;hp=d874a2156422058e1afcb86041db872b55d63ab6;hpb=dd10a98793d8c158417a8830194ca9b5d1302424;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index d874a215..027f7de0 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -20,12 +20,13 @@ #include "mainwin.h" #include "aboutdlg.h" -#include "chatwidget.h" #include "bufferview.h" #include "bufferviewconfig.h" #include "bufferviewfilter.h" #include "bufferviewmanager.h" #include "channellistdlg.h" +#include "chatmonitorfilter.h" +#include "chatview.h" #include "client.h" #include "clientbacklogmanager.h" #include "coreinfodlg.h" @@ -45,8 +46,6 @@ #include "qtuisettings.h" #include "jumpkeyhandler.h" -#include "uisettings.h" - #include "selectionmodelsynchronizer.h" #include "mappedselectionmodel.h" @@ -59,7 +58,7 @@ #include "settingspages/highlightsettingspage.h" #include "settingspages/identitiessettingspage.h" #include "settingspages/networkssettingspage.h" - +#include "settingspages/notificationssettingspage.h" #include "debugconsole.h" #include "global.h" @@ -83,12 +82,12 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) { UiSettings uiSettings; loadTranslation(uiSettings.value("Locale", QLocale::system()).value()); - + QString style = uiSettings.value("Style", QString("")).toString(); if(style != "") { QApplication::setStyle(style); } - + ui.setupUi(this); setWindowTitle("Quassel IRC"); setWindowIcon(offlineTrayIcon); @@ -100,12 +99,6 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) installEventFilter(new JumpKeyHandler(this)); - UiSettings uiSettings; - QString style = uiSettings.value("Style", QString("")).toString(); - if(style != "") { - QApplication::setStyle(style); - } - #ifdef HAVE_DBUS desktopNotifications = new org::freedesktop::Notifications( "org.freedesktop.Notifications", @@ -158,9 +151,9 @@ void MainWin::init() { // restore mainwin state restoreState(s.value("MainWinState").toByteArray()); - // restore locked state of docks + // restore locked state of docks ui.actionLockDockPositions->setChecked(s.value("LockDocks", false).toBool()); - + setDisconnectedState(); // Disable menus and stuff showCoreConnectionDlg(true); // autoconnect if appropriate @@ -212,7 +205,7 @@ void MainWin::addBufferView(BufferViewConfig *config) { view->show(); connect(&view->showChannelList, SIGNAL(triggered()), this, SLOT(showChannelList())); - + Client::bufferModel()->synchronizeView(view); dock->setWidget(view); @@ -249,6 +242,7 @@ void MainWin::setupSettingsDlg() { settingsDlg->registerSettingsPage(new GeneralSettingsPage(settingsDlg)); settingsDlg->registerSettingsPage(new HighlightSettingsPage(settingsDlg)); settingsDlg->registerSettingsPage(new AliasesSettingsPage(settingsDlg)); + settingsDlg->registerSettingsPage(new NotificationsSettingsPage(settingsDlg)); //Category: General settingsDlg->registerSettingsPage(new IdentitiesSettingsPage(settingsDlg)); settingsDlg->registerSettingsPage(new NetworksSettingsPage(settingsDlg)); @@ -293,26 +287,17 @@ void MainWin::setupNickWidget() { } void MainWin::setupChatMonitor() { -#ifndef SPUTDEV VerticalDock *dock = new VerticalDock(tr("Chat Monitor"), this); dock->setObjectName("ChatMonitorDock"); - ChatWidget *chatWidget = new ChatWidget(0, this); - chatWidget->show(); - dock->setWidget(chatWidget); + ChatMonitorFilter *filter = new ChatMonitorFilter(Client::messageModel(), this); + ChatView *chatView = new ChatView(filter, this); + chatView->show(); + dock->setWidget(chatView); dock->show(); - Buffer *buf = Client::monitorBuffer(); - if(!buf) - return; - - chatWidget->setContents(buf->contents()); - connect(buf, SIGNAL(msgAppended(AbstractUiMsg *)), chatWidget, SLOT(appendMsg(AbstractUiMsg *))); - connect(buf, SIGNAL(msgPrepended(AbstractUiMsg *)), chatWidget, SLOT(prependMsg(AbstractUiMsg *))); - addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical); ui.menuViews->addAction(dock->toggleViewAction()); -#endif /* SPUTDEV */ } void MainWin::setupInputWidget() { @@ -607,21 +592,21 @@ void MainWin::receiveMessage(const Message &msg) { UiSettings uiSettings; -#ifndef SPUTDEV bool displayBubble = uiSettings.value("NotificationBubble", QVariant(true)).toBool(); bool displayDesktop = uiSettings.value("NotificationDesktop", QVariant(true)).toBool(); if(displayBubble || displayDesktop) { - // FIXME don't invoke style engine for this! - QString text = QtUi::style()->styleString(Message::mircToInternal(msg.contents())).plainText; - if(displayBubble) displayTrayIconMessage(title, text); + if(uiSettings.value("DisplayPopupMessages", QVariant(true)).toBool()) { + // FIXME don't invoke style engine for this! + QString text = QtUi::style()->styleString(msg.contents()).plainText; + if(displayBubble) displayTrayIconMessage(title, text); # ifdef HAVE_DBUS - if(displayDesktop) sendDesktopNotification(title, text); + if(displayDesktop) sendDesktopNotification(title, text); # endif - } -#endif - if(uiSettings.value("AnimateTrayIcon", QVariant(true)).toBool()) { - QApplication::alert(this); - setTrayIconActivity(true); + } + if(uiSettings.value("AnimateTrayIcon", QVariant(true)).toBool()) { + QApplication::alert(this); + setTrayIconActivity(true); + } } } } @@ -659,29 +644,29 @@ void MainWin::sendDesktopNotification(const QString &title, const QString &messa uiSettings.value("NotificationDesktopTimeout", QVariant(5000)).toInt() // Timeout in milliseconds ); - if (!reply.isValid()) - { - /* ERROR */ - qDebug() << "Error on sending notification..."; - return; - } + if(!reply.isValid()) { + /* ERROR */ + // could also happen if no notification service runs, so... whatever :) + //qDebug() << "Error on sending notification..." << reply.error(); + return; + } - notificationId = reply.value(); + notificationId = reply.value(); - qDebug() << "ID: " << notificationId << " Time: " << QTime::currentTime().toString(); + // qDebug() << "ID: " << notificationId << " Time: " << QTime::currentTime().toString(); } -void MainWin::desktopNotificationClosed(uint id, uint reason) -{ - qDebug() << "OID: " << notificationId << " ID: " << id << " Reason: " << reason << " Time: " << QTime::currentTime().toString(); - notificationId = 0; +void MainWin::desktopNotificationClosed(uint id, uint reason) { + Q_UNUSED(id); Q_UNUSED(reason); + // qDebug() << "OID: " << notificationId << " ID: " << id << " Reason: " << reason << " Time: " << QTime::currentTime().toString(); + notificationId = 0; } -void MainWin::desktopNotificationInvoked(uint id, const QString & action) -{ - qDebug() << "OID: " << notificationId << " ID: " << id << " Action: " << action << " Time: " << QTime::currentTime().toString(); +void MainWin::desktopNotificationInvoked(uint id, const QString & action) { + Q_UNUSED(id); Q_UNUSED(action); + // qDebug() << "OID: " << notificationId << " ID: " << id << " Action: " << action << " Time: " << QTime::currentTime().toString(); } #endif /* HAVE_DBUS */ @@ -760,7 +745,7 @@ void MainWin::clientNetworkRemoved(NetworkId id) { QAction *action = findChild(QString("NetworkAction-%1").arg(id.toInt())); if(!action) return; - + action->deleteLater(); } @@ -773,3 +758,16 @@ void MainWin::connectOrDisconnectFromNet() { else net->requestDisconnect(); } + + +void MainWin::on_actionDebugNetworkModel_triggered(bool) { + QTreeView *view = new QTreeView; + view->setAttribute(Qt::WA_DeleteOnClose); + view->setWindowTitle("Debug NetworkModel View"); + view->setModel(Client::networkModel()); + view->setColumnWidth(0, 250); + view->setColumnWidth(1, 250); + view->setColumnWidth(2, 80); + view->resize(610, 300); + view->show(); +}