X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=043146883b6554dfd6476ec8c67535b2c8eaee7f;hb=a9b26b47ffb2d3422c5efb96c7f9868f2ee2a102;hp=59ad97fa39be36400e028e35b7ef819d78961f4d;hpb=be5b9feef292531c3b92f9f115bd5a55f436bc97;p=quassel.git diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 59ad97fa..04314688 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -54,6 +54,7 @@ #include "clientbacklogmanager.h" #include "clientbufferviewconfig.h" #include "clientbufferviewmanager.h" +#include "clientignorelistmanager.h" #include "coreinfodlg.h" #include "coreconnectdlg.h" #include "contextmenuactionprovider.h" @@ -63,7 +64,6 @@ #include "flatproxymodel.h" #include "iconloader.h" #include "inputwidget.h" -#include "inputline.h" #include "irclistmodel.h" #include "ircconnectionwizard.h" #include "jumpkeyhandler.h" @@ -103,9 +103,12 @@ #include "settingspages/generalsettingspage.h" #include "settingspages/highlightsettingspage.h" #include "settingspages/identitiessettingspage.h" +#include "settingspages/ignorelistsettingspage.h" +#include "settingspages/inputwidgetsettingspage.h" #include "settingspages/itemviewsettingspage.h" #include "settingspages/networkssettingspage.h" #include "settingspages/notificationssettingspage.h" +#include "settingspages/topicwidgetsettingspage.h" MainWin::MainWin(QWidget *parent) #ifdef HAVE_KDE @@ -298,8 +301,11 @@ void MainWin::setupActions() { 0, 0, QKeySequence::Find))->setCheckable(true); coll->addAction("ShowAwayLog", new Action(tr("Show Away Log"), coll, this, SLOT(showAwayLog()))); + coll->addAction("ToggleMenuBar", new Action(SmallIcon("show-menu"), tr("Show &Menubar"), coll, + 0, 0, tr("Ctrl+M")))->setCheckable(true); + coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll, - 0, 0))->setCheckable(true); + 0, 0))->setCheckable(true); // Settings coll->addAction("ConfigureQuassel", new Action(SmallIcon("configure"), tr("&Configure Quassel..."), coll, @@ -355,20 +361,22 @@ void MainWin::setupMenus() { _bufferViewsMenu->addAction(coll->action("ConfigureBufferViews")); _toolbarMenu = _viewMenu->addMenu(tr("&Toolbars")); _viewMenu->addSeparator(); + + _viewMenu->addAction(coll->action("ToggleMenuBar")); + _viewMenu->addAction(coll->action("ToggleStatusBar")); _viewMenu->addAction(coll->action("ToggleSearchBar")); coreAction = coll->action("ShowAwayLog"); flagRemoteCoreOnly(coreAction); _viewMenu->addAction(coreAction); - _viewMenu->addAction(coll->action("ToggleStatusBar")); _viewMenu->addSeparator(); _viewMenu->addAction(coll->action("LockLayout")); _settingsMenu = menuBar()->addMenu(tr("&Settings")); #ifdef HAVE_KDE - _settingsMenu->addAction(KStandardAction::keyBindings(this, SLOT(showShortcutsDlg()), this)); _settingsMenu->addAction(KStandardAction::configureNotifications(this, SLOT(showNotificationsDlg()), this)); + _settingsMenu->addAction(KStandardAction::keyBindings(this, SLOT(showShortcutsDlg()), this)); #endif _settingsMenu->addAction(coll->action("ConfigureQuassel")); @@ -388,6 +396,17 @@ void MainWin::setupMenus() { _helpDebugMenu->addAction(coll->action("DebugLog")); _helpDebugMenu->addSeparator(); _helpDebugMenu->addAction(coll->action("ReloadStyle")); + + // Toggle visibility + QAction *showMenuBar = QtUi::actionCollection("General")->action("ToggleMenuBar"); + + QtUiSettings uiSettings; + bool enabled = uiSettings.value("ShowMenuBar", QVariant(true)).toBool(); + showMenuBar->setChecked(enabled); + enabled ? menuBar()->show() : menuBar()->hide(); + + connect(showMenuBar, SIGNAL(toggled(bool)), menuBar(), SLOT(setVisible(bool))); + connect(showMenuBar, SIGNAL(toggled(bool)), this, SLOT(saveMenuBarStatus(bool))); } void MainWin::setupBufferWidget() { @@ -411,7 +430,7 @@ void MainWin::addBufferView(ClientBufferViewConfig *config) { //create the view and initialize it's filter BufferView *view = new BufferView(dock); view->setFilteredModel(Client::bufferModel(), config); - view->installEventFilter(_inputWidget->inputLine()); // for key presses + view->installEventFilter(_inputWidget); // for key presses view->show(); Client::bufferModel()->synchronizeView(view); @@ -616,6 +635,11 @@ void MainWin::setupHotList() { _bufferHotList = new BufferHotListFilter(flatProxy); } +void MainWin::saveMenuBarStatus(bool enabled) { + QtUiSettings uiSettings; + uiSettings.setValue("ShowMenuBar", enabled); +} + void MainWin::saveStatusBarStatus(bool enabled) { QtUiSettings uiSettings; uiSettings.setValue("ShowStatusBar", enabled); @@ -808,10 +832,12 @@ void MainWin::awayLogDestroyed() { void MainWin::showSettingsDlg() { SettingsDlg *dlg = new SettingsDlg(); - //Category: Appearance + //Category: Interface dlg->registerSettingsPage(new AppearanceSettingsPage(dlg)); dlg->registerSettingsPage(new ChatViewSettingsPage(dlg)); dlg->registerSettingsPage(new ItemViewSettingsPage(dlg)); + dlg->registerSettingsPage(new InputWidgetSettingsPage(dlg)); + dlg->registerSettingsPage(new TopicWidgetSettingsPage(dlg)); dlg->registerSettingsPage(new HighlightSettingsPage(dlg)); dlg->registerSettingsPage(new NotificationsSettingsPage(dlg)); dlg->registerSettingsPage(new BacklogSettingsPage(dlg)); @@ -824,6 +850,7 @@ void MainWin::showSettingsDlg() { dlg->registerSettingsPage(new IdentitiesSettingsPage(dlg)); dlg->registerSettingsPage(new NetworksSettingsPage(dlg)); dlg->registerSettingsPage(new AliasesSettingsPage(dlg)); + dlg->registerSettingsPage(new IgnoreListSettingsPage(dlg)); dlg->show(); } @@ -953,7 +980,10 @@ void MainWin::messagesInserted(const QModelIndex &parent, int start, int end) { if(hasFocus && bufId == _bufferWidget->currentBuffer()) continue; - if(flags & Message::Highlight || bufType == BufferInfo::QueryBuffer) { + if((flags & Message::Highlight || bufType == BufferInfo::QueryBuffer) + && !(Client::ignoreListManager() && Client::ignoreListManager()->match(idx.data(MessageModel::MessageRole).value(), + Client::networkModel()->networkName(bufId)))) + { QModelIndex senderIdx = Client::messageModel()->index(i, ChatLineModel::SenderColumn); QString sender = senderIdx.data(ChatLineModel::EditRole).toString(); QString contents = idx.data(ChatLineModel::DisplayRole).toString();