#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"
#include "qtuisettings.h"
#include "jumpkeyhandler.h"
-#include "uisettings.h"
-
#include "selectionmodelsynchronizer.h"
#include "mappedselectionmodel.h"
#include "settingspages/highlightsettingspage.h"
#include "settingspages/identitiessettingspage.h"
#include "settingspages/networkssettingspage.h"
-
+#include "settingspages/notificationssettingspage.h"
#include "debugconsole.h"
#include "global.h"
{
UiSettings uiSettings;
loadTranslation(uiSettings.value("Locale", QLocale::system()).value<QLocale>());
-
+
QString style = uiSettings.value("Style", QString("")).toString();
if(style != "") {
QApplication::setStyle(style);
}
-
+
ui.setupUi(this);
setWindowTitle("Quassel IRC");
setWindowIcon(offlineTrayIcon);
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",
// 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
view->show();
connect(&view->showChannelList, SIGNAL(triggered()), this, SLOT(showChannelList()));
-
+
Client::bufferModel()->synchronizeView(view);
dock->setWidget(view);
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));
}
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() {
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);
+ }
}
}
}
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 */
QAction *action = findChild<QAction *>(QString("NetworkAction-%1").arg(id.toInt()));
if(!action)
return;
-
+
action->deleteLater();
}
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();
+}