X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=2a63fcb243d9154545a2754506f132d04fadf093;hb=af3b5761f118a0be37f9713e529efd874bf8e11e;hp=f1eefc5441f2f49d3932df77e4264675d9c93bb1;hpb=6c8d44d3c5adbcb2bb2c1c733e96bb1104e45ff9;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index f1eefc54..2a63fcb2 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -140,6 +140,7 @@ #include "settingspages/bufferviewsettingspage.h" #include "settingspages/chatmonitorsettingspage.h" #include "settingspages/chatviewsettingspage.h" +#include "settingspages/chatviewcolorsettingspage.h" #include "settingspages/connectionsettingspage.h" #include "settingspages/coreaccountsettingspage.h" #include "settingspages/coreconnectionsettingspage.h" @@ -172,7 +173,8 @@ MainWin::MainWin(QWidget *parent) _titleSetter(this), _awayLog(0), _layoutLoaded(false), - _activeBufferViewIndex(-1) + _activeBufferViewIndex(-1), + _aboutToQuit(false) { setAttribute(Qt::WA_DeleteOnClose, false); // we delete the mainwin manually @@ -379,9 +381,9 @@ void MainWin::setupActions() { ActionCollection *coll = QtUi::actionCollection("General", tr("General")); // File - coll->addAction("ConnectCore", new Action(QIcon::fromTheme("network-connect"), tr("&Connect to Core..."), coll, + coll->addAction("ConnectCore", new Action(QIcon(":/icons/quassel-128.png"), tr("&Connect to Core..."), coll, this, SLOT(showCoreConnectionDlg()))); - coll->addAction("DisconnectCore", new Action(QIcon::fromTheme("network-disconnect"), tr("&Disconnect from Core"), coll, + coll->addAction("DisconnectCore", new Action(QIcon(":/icons/quassel-disconnect.png"), tr("&Disconnect from Core"), coll, Client::instance(), SLOT(disconnectFromCore()))); coll->addAction("ChangePassword", new Action(QIcon::fromTheme("dialog-password"), tr("Change &Password..."), coll, this, SLOT(showPasswordChangeDlg()))); @@ -406,7 +408,7 @@ void MainWin::setupActions() coll->addAction("ShowAwayLog", new Action(tr("Show Away Log"), coll, this, SLOT(showAwayLog()))); coll->addAction("ToggleMenuBar", new Action(QIcon::fromTheme("show-menu"), tr("Show &Menubar"), coll, - 0, 0, QKeySequence(Qt::CTRL + Qt::Key_M)))->setCheckable(true); + 0, 0))->setCheckable(true); coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll, 0, 0))->setCheckable(true); @@ -1059,6 +1061,12 @@ void MainWin::setupToolBars() _mainToolBar->setWindowTitle(tr("Main Toolbar")); addToolBar(_mainToolBar); + if (Quassel::runMode() != Quassel::Monolithic) { + ActionCollection *coll = QtUi::actionCollection("General"); + _mainToolBar->addAction(coll->action("ConnectCore")); + _mainToolBar->addAction(coll->action("DisconnectCore")); + } + QtUi::toolBarActionProvider()->addActions(_mainToolBar, ToolBarActionProvider::MainToolBar); _toolbarMenu->addAction(_mainToolBar->toggleViewAction()); @@ -1384,6 +1392,7 @@ void MainWin::showSettingsDlg() //Category: Interface dlg->registerSettingsPage(new AppearanceSettingsPage(dlg)); dlg->registerSettingsPage(new ChatViewSettingsPage(dlg)); + dlg->registerSettingsPage(new ChatViewColorSettingsPage(dlg)); dlg->registerSettingsPage(new ChatMonitorSettingsPage(dlg)); dlg->registerSettingsPage(new ItemViewSettingsPage(dlg)); dlg->registerSettingsPage(new BufferViewSettingsPage(dlg)); @@ -1507,14 +1516,21 @@ void MainWin::closeEvent(QCloseEvent *event) QtUiSettings s; QtUiApplication *app = qobject_cast qApp; Q_ASSERT(app); - if (!app->isAboutToQuit() && QtUi::haveSystemTray() && s.value("MinimizeOnClose").toBool()) { + // On OSX it can happen that the closeEvent occurs twice. (Especially if packaged with Frameworks) + // This messes up MainWinState/MainWinHidden save/restore. + // It's a bug in Qt: https://bugreports.qt.io/browse/QTBUG-43344 + if (!_aboutToQuit && !app->isAboutToQuit() && QtUi::haveSystemTray() && s.value("MinimizeOnClose").toBool()) { QtUi::hideMainWidget(); event->ignore(); } - else { + else if(!_aboutToQuit) { + _aboutToQuit = true; event->accept(); quit(); } + else { + event->ignore(); + } }