X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=1541a5678afbda06e88747237005cc995e0be766;hp=e7390ea5194b02dac8d6b2179385e6472410df3f;hb=77397f5e999830077fee13187c6a1ee044d92545;hpb=034708a59ca1ee3195263a90941a2b145c520fef diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index e7390ea5..1541a567 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -23,6 +23,7 @@ #include "action.h" #include "actioncollection.h" #include "buffermodel.h" +#include "bufferview.h" #include "bufferviewmanager.h" #include "bufferwidget.h" #include "channellistdlg.h" @@ -35,6 +36,7 @@ #include "coreinfodlg.h" #include "coreconnectdlg.h" #include "debuglogwidget.h" +#include "debugmessagemodelfilter.h" #include "iconloader.h" #include "inputwidget.h" #include "inputline.h" @@ -54,13 +56,18 @@ #ifdef HAVE_DBUS # include "desktopnotificationbackend.h" #endif +#ifdef HAVE_PHONON +# include "phononnotificationbackend.h" +#endif #include "systraynotificationbackend.h" #include "taskbarnotificationbackend.h" #include "settingspages/aliasessettingspage.h" #include "settingspages/appearancesettingspage.h" +#include "settingspages/backlogsettingspage.h" #include "settingspages/bufferviewsettingspage.h" #include "settingspages/colorsettingspage.h" +#include "settingspages/chatmonitorsettingspage.h" #include "settingspages/fontssettingspage.h" #include "settingspages/generalsettingspage.h" #include "settingspages/highlightsettingspage.h" @@ -82,6 +89,8 @@ MainWin::MainWin(QWidget *parent) QApplication::setStyle(style); } + QApplication::setQuitOnLastWindowClosed(false); + setWindowTitle("Quassel IRC"); setWindowIconText("Quassel IRC"); updateIcon(); @@ -90,6 +99,9 @@ MainWin::MainWin(QWidget *parent) QtUi::registerNotificationBackend(new TaskbarNotificationBackend(this)); QtUi::registerNotificationBackend(new SystrayNotificationBackend(this)); +#ifdef HAVE_PHONON + QtUi::registerNotificationBackend(new PhononNotificationBackend(this)); +#endif #ifdef HAVE_DBUS QtUi::registerNotificationBackend(new DesktopNotificationBackend(this)); #endif @@ -109,6 +121,7 @@ void MainWin::init() { connect(QApplication::instance(), SIGNAL(aboutToQuit()), SLOT(saveLayout())); connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), SLOT(clientNetworkCreated(NetworkId))); connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), SLOT(clientNetworkRemoved(NetworkId))); + connect(Client::mainUi()->actionProvider(), SIGNAL(showChannelList(NetworkId)), SLOT(showChannelList(NetworkId))); // Setup Dock Areas setDockNestingEnabled(true); @@ -139,7 +152,6 @@ void MainWin::init() { setDisconnectedState(); // Disable menus and stuff show(); - showCoreConnectionDlg(true); // autoconnect if appropriate } @@ -194,10 +206,12 @@ void MainWin::setupActions() { // Help coll->addAction("AboutQuassel", new Action(SmallIcon("quassel"), tr("&About Quassel..."), coll, this, SLOT(showAboutDlg()))); - coll->addAction("AboutQt", new Action(tr("About &Qt..."), coll, + coll->addAction("AboutQt", new Action(QIcon(":/pics/qt-logo.png"), tr("About &Qt..."), coll, qApp, SLOT(aboutQt()))); coll->addAction("DebugNetworkModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &NetworkModel"), coll, this, SLOT(on_actionDebugNetworkModel_triggered()))); + coll->addAction("DebugMessageModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &MessageModel"), coll, + this, SLOT(on_actionDebugMessageModel_triggered()))); coll->addAction("DebugLog", new Action(SmallIcon("tools-report-bug"), tr("Debug &Log"), coll, this, SLOT(on_actionDebugLog_triggered()))); } @@ -234,6 +248,7 @@ void MainWin::setupMenus() { _helpMenu->addSeparator(); _helpDebugMenu = _helpMenu->addMenu(SmallIcon("tools-report-bug"), tr("Debug")); _helpDebugMenu->addAction(coll->action("DebugNetworkModel")); + _helpDebugMenu->addAction(coll->action("DebugMessageModel")); _helpDebugMenu->addAction(coll->action("DebugLog")); } @@ -264,8 +279,6 @@ void MainWin::addBufferView(BufferViewConfig *config) { view->setFilteredModel(Client::bufferModel(), config); view->show(); - connect(&view->showChannelList, SIGNAL(triggered()), this, SLOT(showChannelList())); - Client::bufferModel()->synchronizeView(view); dock->setWidget(view); @@ -274,7 +287,7 @@ void MainWin::addBufferView(BufferViewConfig *config) { addDockWidget(Qt::LeftDockWidgetArea, dock); _bufferViewsMenu->addAction(dock->toggleViewAction()); - _netViews.append(dock); + _bufferViews.append(dock); } void MainWin::removeBufferView(int bufferViewConfigId) { @@ -293,6 +306,13 @@ void MainWin::removeBufferView(int bufferViewConfigId) { } } +BufferView *MainWin::allBuffersView() const { + // "All Buffers" is always the first dock created + if(_bufferViews.count() > 0) + return _bufferViews[0]->bufferView(); + return 0; +} + void MainWin::on_actionEditNetworks_triggered() { SettingsPageDlg dlg(new NetworksSettingsPage(this), this); dlg.exec(); @@ -470,7 +490,6 @@ void MainWin::connectedToCore() { connect(Client::bufferViewManager(), SIGNAL(initDone()), this, SLOT(loadLayout())); setConnectedState(); - Client::backlogManager()->requestInitialBacklog(); } void MainWin::setConnectedState() { @@ -572,9 +591,11 @@ void MainWin::showSettingsDlg() { dlg->registerSettingsPage(new AppearanceSettingsPage(dlg)); //General //Category: Behaviour dlg->registerSettingsPage(new GeneralSettingsPage(dlg)); + dlg->registerSettingsPage(new BacklogSettingsPage(dlg)); dlg->registerSettingsPage(new HighlightSettingsPage(dlg)); dlg->registerSettingsPage(new AliasesSettingsPage(dlg)); dlg->registerSettingsPage(new NotificationsSettingsPage(dlg)); + dlg->registerSettingsPage(new ChatMonitorSettingsPage(dlg)); //Category: General dlg->registerSettingsPage(new IdentitiesSettingsPage(dlg)); dlg->registerSettingsPage(new NetworksSettingsPage(dlg)); @@ -594,6 +615,7 @@ void MainWin::closeEvent(QCloseEvent *event) { event->ignore(); } else { event->accept(); + QApplication::quit(); } } @@ -737,6 +759,17 @@ void MainWin::on_actionDebugNetworkModel_triggered() { view->show(); } +void MainWin::on_actionDebugMessageModel_triggered() { + QTableView *view = new QTableView(0); + DebugMessageModelFilter *filter = new DebugMessageModelFilter(view); + filter->setSourceModel(Client::messageModel()); + view->setModel(filter); + view->setAttribute(Qt::WA_DeleteOnClose, true); + view->verticalHeader()->hide(); + view->horizontalHeader()->setStretchLastSection(true); + view->show(); +} + void MainWin::on_actionDebugLog_triggered() { DebugLogWidget *logWidget = new DebugLogWidget(0); logWidget->show();