X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=d943bfacf88cd5236cc39c66d5a392b284a6f083;hp=2e1ae409956d0ebb221263c1014fece77145da92;hb=e7d1bc1fa02e1233f140e4b04d99ab8f4685bce5;hpb=2cdbd53254371cd538a1437c39d22422249fea1a diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 2e1ae409..d943bfac 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -70,6 +70,7 @@ #include "irclistmodel.h" #include "ircconnectionwizard.h" #include "jumpkeyhandler.h" +#include "legacysystemtray.h" #include "msgprocessorstatuswidget.h" #include "nicklistwidget.h" #include "qtuiapplication.h" @@ -78,7 +79,6 @@ #include "qtuistyle.h" #include "settingsdlg.h" #include "settingspagedlg.h" -#include "systemtray.h" #include "toolbaractionprovider.h" #include "topicwidget.h" #include "verticaldock.h" @@ -112,6 +112,7 @@ #include "settingspages/chatviewsettingspage.h" #include "settingspages/connectionsettingspage.h" #include "settingspages/coreaccountsettingspage.h" +#include "settingspages/coreconnectionsettingspage.h" #include "settingspages/highlightsettingspage.h" #include "settingspages/identitiessettingspage.h" #include "settingspages/ignorelistsettingspage.h" @@ -182,9 +183,9 @@ void MainWin::init() { setupBufferWidget(); setupMenus(); setupTopicWidget(); - setupChatMonitor(); setupNickWidget(); setupInputWidget(); + setupChatMonitor(); setupStatusBar(); setupToolBars(); setupSystray(); @@ -193,7 +194,9 @@ void MainWin::init() { #ifndef HAVE_KDE QtUi::registerNotificationBackend(new TaskbarNotificationBackend(this)); +# ifndef QT_NO_SYSTEMTRAYICON QtUi::registerNotificationBackend(new SystrayNotificationBackend(this)); +# endif # ifdef HAVE_PHONON QtUi::registerNotificationBackend(new PhononNotificationBackend(this)); # endif @@ -584,9 +587,10 @@ void MainWin::setupChatMonitor() { dock->setObjectName("ChatMonitorDock"); ChatMonitorFilter *filter = new ChatMonitorFilter(Client::messageModel(), this); - ChatMonitorView *chatView = new ChatMonitorView(filter, this); - chatView->show(); - dock->setWidget(chatView); + _chatMonitorView = new ChatMonitorView(filter, this); + _chatMonitorView->setFocusProxy(_inputWidget); + _chatMonitorView->show(); + dock->setWidget(_chatMonitorView); dock->hide(); addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical); @@ -612,17 +616,19 @@ void MainWin::setupInputWidget() { _bufferWidget->setFocusProxy(_inputWidget); _inputWidget->inputLine()->installEventFilter(_bufferWidget); + + connect(_topicWidget, SIGNAL(switchedPlain()), _bufferWidget, SLOT(setFocus())); } void MainWin::setupTopicWidget() { VerticalDock *dock = new VerticalDock(tr("Topic"), this); dock->setObjectName("TopicDock"); - TopicWidget *topicwidget = new TopicWidget(dock); + _topicWidget = new TopicWidget(dock); - dock->setWidget(topicwidget); + dock->setWidget(_topicWidget); - topicwidget->setModel(Client::bufferModel()); - topicwidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); + _topicWidget->setModel(Client::bufferModel()); + _topicWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical); @@ -674,7 +680,12 @@ void MainWin::saveStatusBarStatus(bool enabled) { } void MainWin::setupSystray() { - _systemTray = new SystemTray(this); +#ifndef QT_NO_SYSTEMTRAYICON + _systemTray = new LegacySystemTray(this); +#else + _systemTray = new SystemTray(this); // dummy +#endif + _systemTray->init(); } void MainWin::setupToolBars() { @@ -738,7 +749,9 @@ void MainWin::setConnectedState() { _coreConnectionStatusWidget->setVisible(!Client::internalCore()); updateIcon(); +#ifndef QT_NO_SYSTEMTRAYICON systemTray()->setState(SystemTray::Active); +#endif if(Client::networkIds().isEmpty()) { IrcConnectionWizard *wizard = new IrcConnectionWizard(this, Qt::Sheet); @@ -804,7 +817,7 @@ void MainWin::setDisconnectedState() { if(_msgProcessorStatusWidget) _msgProcessorStatusWidget->setProgress(0, 0); updateIcon(); - systemTray()->setState(SystemTray::Inactive); + systemTray()->setState(SystemTray::Passive); } void MainWin::userAuthenticationRequired(CoreAccount *account, bool *valid, const QString &errorMessage) { @@ -956,6 +969,7 @@ void MainWin::showSettingsDlg() { // Category: Remote Cores if(Quassel::runMode() != Quassel::Monolithic) { dlg->registerSettingsPage(new CoreAccountSettingsPage(dlg)); + dlg->registerSettingsPage(new CoreConnectionSettingsPage(dlg)); } dlg->show(); @@ -997,6 +1011,7 @@ void MainWin::resizeEvent(QResizeEvent *event) { } void MainWin::closeEvent(QCloseEvent *event) { +#ifndef QT_NO_SYSTEMTRAYICON QtUiSettings s; QtUiApplication* app = qobject_cast qApp; Q_ASSERT(app); @@ -1007,6 +1022,10 @@ void MainWin::closeEvent(QCloseEvent *event) { event->accept(); quit(); } +#else + event->accept(); + quit(); +#endif } void MainWin::changeEvent(QEvent *event) { @@ -1024,7 +1043,7 @@ void MainWin::hideToTray() { return; } hide(); - systemTray()->setIconVisible(); + systemTray()->setVisible(); } void MainWin::toggleMinimizedToTray() {