From: Alexander von Renteln Date: Mon, 25 Feb 2008 15:19:22 +0000 (+0000) Subject: created buffersettings to access options concerning buffers X-Git-Tag: 0.2.0-alpha2~20 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=620882e248fafe97a736e545d8e3eb72569a078b created buffersettings to access options concerning buffers buffer tooltip can now be configured (with or without topic) change buffers with mouse scrolling is now optional (default enabled) --- diff --git a/src/client/buffersettings.cpp b/src/client/buffersettings.cpp new file mode 100644 index 00000000..c586471a --- /dev/null +++ b/src/client/buffersettings.cpp @@ -0,0 +1,33 @@ +/*************************************************************************** + * Copyright (C) 2005-08 by the Quassel IRC Team * + * devel@quassel-irc.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) version 3. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include "buffersettings.h" + +BufferSettings::BufferSettings(const QString &group) : ClientSettings(group) { + +} + +void BufferSettings::setValue(const QString &key, const QVariant &data) { + setLocalValue(key, data); +} + +QVariant BufferSettings::value(const QString &key, const QVariant &def) { + return localValue(key, def); +} \ No newline at end of file diff --git a/src/client/buffersettings.h b/src/client/buffersettings.h new file mode 100644 index 00000000..f4266a5d --- /dev/null +++ b/src/client/buffersettings.h @@ -0,0 +1,38 @@ +/*************************************************************************** + * Copyright (C) 2005-08 by the Quassel IRC Team * + * devel@quassel-irc.org * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) version 3. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef _BUFFERSETTINGS_H_ +#define _BUFFERSETTINGS_H_ + +#include "clientsettings.h" + +class BufferSettings : public ClientSettings { + + public: + BufferSettings(const QString &group = "Buffer"); + + void setValue(const QString &key, const QVariant &data); + QVariant value(const QString &key, const QVariant &def = QVariant()); + + +}; + + +#endif diff --git a/src/client/client.pri b/src/client/client.pri index a6b81f4a..cf6586c8 100644 --- a/src/client/client.pri +++ b/src/client/client.pri @@ -1,6 +1,6 @@ DEPMOD = common QT_MOD = core network gui -SRCS += buffer.cpp treemodel.cpp networkmodel.cpp buffermodel.cpp client.cpp clientsettings.cpp clientsyncer.cpp \ +SRCS += buffer.cpp buffersettings.cpp treemodel.cpp networkmodel.cpp buffermodel.cpp client.cpp clientsettings.cpp clientsyncer.cpp \ mappedselectionmodel.cpp modelpropertymapper.cpp selectionmodelsynchronizer.cpp -HDRS += buffer.h treemodel.h networkmodel.h buffermodel.h client.h clientsettings.h clientsyncer.h quasselui.h \ +HDRS += buffer.h buffersettings.h treemodel.h networkmodel.h buffermodel.h client.h clientsettings.h clientsyncer.h quasselui.h \ mappedselectionmodel.h modelpropertymapper.h selectionmodelsynchronizer.h diff --git a/src/client/clientsettings.cpp b/src/client/clientsettings.cpp index 7cccac6d..f35420d0 100644 --- a/src/client/clientsettings.cpp +++ b/src/client/clientsettings.cpp @@ -104,20 +104,4 @@ void CoreAccountSettings::removeAccount(AccountId id) { removeLocalKey(QString("%1").arg(id.toInt())); } -/***********************************************************************************************/ - -BufferSettings::BufferSettings(BufferId bufferId) - : CoreAccountSettings(QString("Buffers/%1").arg(bufferId.toInt())) -{ -} - -void BufferSettings::setLastSeen(QDateTime seenDate) { - setAccountValue("LastSeen", seenDate); -} - -QDateTime BufferSettings::lastSeen() { - return accountValue("LastSeen", QDateTime()).value(); -} - -/***********************************************************************************************/ diff --git a/src/client/clientsettings.h b/src/client/clientsettings.h index 20dc9188..919084e8 100644 --- a/src/client/clientsettings.h +++ b/src/client/clientsettings.h @@ -68,12 +68,4 @@ class CoreAccountSettings : public ClientSettings { QString _subgroup; }; -class BufferSettings : public CoreAccountSettings { -public: - BufferSettings(BufferId bufferId); - - void setLastSeen(QDateTime); - QDateTime lastSeen(); -}; - #endif diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index a72b71e9..94d90b8d 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -29,8 +29,12 @@ #include "ircchannel.h" #include "ircuser.h" +#include "buffersettings.h" + #include "util.h" // get rid of this (needed for isChannelName) +// #define PHONDEV + /***************************************** * Fancy Buffer Items *****************************************/ @@ -293,10 +297,22 @@ QString BufferItem::toolTip(int column) const { break; } case BufferInfo::ChannelBuffer: - toolTip.append(QString("Channel %1").arg(bufferName())); + toolTip.append(QString("

Channel %1

").arg(bufferName())); if(isActive()) { - toolTip.append(QString("Topic: %1").arg(topic())); - toolTip.append(QString("Users: %1").arg(nickCount())); + //TODO: add channel modes + toolTip.append(QString("Users: %1").arg(nickCount())); + + BufferSettings s; + bool showTopic = s.value("DisplayTopicInTooltip", QVariant(false)).toBool(); + if(showTopic) { + QString _topic = topic(); + if(_topic != "") { + _topic.replace(QString("<"), QString("<")); + _topic.replace(QString(">"), QString(">")); + toolTip.append(QString(" ")); + toolTip.append(QString("Topic: %1").arg(_topic)); + } + } } else { toolTip.append(QString("Not active
Double-click to join")); } diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 7ccd5336..32a59dff 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -281,7 +281,7 @@ void MainWin::setupSystray() { systray->setContextMenu(systrayMenu); - QtUiSettings s; + UiSettings s; if(s.value("UseSystemTrayIcon", QVariant(true)).toBool()) { systray->show(); } @@ -296,7 +296,7 @@ void MainWin::setupSystray() { void MainWin::changeEvent(QEvent *event) { if(event->type() == QEvent::WindowStateChange) { if(windowState() & Qt::WindowMinimized) { - QtUiSettings s; + UiSettings s; if(s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnMinimize").toBool()) { toggleVisibility(); event->ignore(); @@ -368,7 +368,7 @@ void MainWin::showAboutDlg() { } void MainWin::closeEvent(QCloseEvent *event) { - QtUiSettings s; + UiSettings s; if(s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) { toggleVisibility(); event->ignore(); diff --git a/src/qtui/settingspages/colorsettingspage.ui b/src/qtui/settingspages/colorsettingspage.ui index 112fe37c..8fbc33dd 100644 --- a/src/qtui/settingspages/colorsettingspage.ui +++ b/src/qtui/settingspages/colorsettingspage.ui @@ -74,6 +74,12 @@ + + + 0 + 0 + + @@ -84,6 +90,12 @@ false + + + 0 + 0 + + diff --git a/src/qtui/settingspages/generalsettingspage.cpp b/src/qtui/settingspages/generalsettingspage.cpp index e18e436b..e8e6bfbb 100644 --- a/src/qtui/settingspages/generalsettingspage.cpp +++ b/src/qtui/settingspages/generalsettingspage.cpp @@ -21,7 +21,8 @@ #include "generalsettingspage.h" #include "qtui.h" -#include "qtuisettings.h" +#include "uisettings.h" +#include "buffersettings.h" GeneralSettingsPage::GeneralSettingsPage(QWidget *parent) : SettingsPage(tr("Behaviour"), tr("General"), parent) { @@ -45,6 +46,13 @@ GeneralSettingsPage::GeneralSettingsPage(QWidget *parent) connect(ui.userMessagesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.userMessagesInQueryBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.userMessagesInCurrentBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); + + connect(ui.displayTopicInTooltip, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); + connect(ui.mouseWheelChangesBuffers, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); + + ui.userMessagesInStatusBuffer->setEnabled(false); + ui.userMessagesInQueryBuffer->setEnabled(false); + ui.userMessagesInCurrentBuffer->setEnabled(false); } bool GeneralSettingsPage::hasDefaults() const { @@ -62,42 +70,58 @@ void GeneralSettingsPage::defaults() { ui.userMessagesInQueryBuffer->setChecked(false); ui.userMessagesInCurrentBuffer->setChecked(false); + ui.displayTopicInTooltip->setChecked(false); + ui.mouseWheelChangesBuffers->setChecked(true); + widgetHasChanged(); } void GeneralSettingsPage::load() { - QtUiSettings s; - settings["UseSystemTrayIcon"] = s.value("UseSystemTrayIcon", QVariant(true)); + // uiSettings: + UiSettings uiSettings("Ui"); + settings["UseSystemTrayIcon"] = uiSettings.value("UseSystemTrayIcon", QVariant(true)); ui.useSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool()); ui.showSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool()); - settings["MinimizeOnMinimize"] = s.value("MinimizeOnMinimize", QVariant(false)); + settings["MinimizeOnMinimize"] = uiSettings.value("MinimizeOnMinimize", QVariant(false)); ui.minimizeOnMinimize->setChecked(settings["MinimizeOnMinimize"].toBool()); - settings["MinimizeOnClose"] = s.value("MinimizeOnClose", QVariant(false)); + settings["MinimizeOnClose"] = uiSettings.value("MinimizeOnClose", QVariant(false)); ui.minimizeOnClose->setChecked(settings["MinimizeOnClose"].toBool()); - settings["UserMessagesInStatusBuffer"] = s.value("UserMessagesInStatusBuffer", QVariant(true)); + settings["MouseWheelChangesBuffers"] = uiSettings.value("mouseWheelChangesBuffers", QVariant(true)); + ui.mouseWheelChangesBuffers->setChecked(settings["MouseWheelChangesBuffers"].toBool()); + + // bufferSettings: + BufferSettings bufferSettings; + settings["UserMessagesInStatusBuffer"] = bufferSettings.value("UserMessagesInStatusBuffer", QVariant(true)); ui.userMessagesInStatusBuffer->setChecked(settings["UserMessagesInStatusBuffer"].toBool()); - settings["UserMessagesInQueryBuffer"] = s.value("UserMessagesInQueryBuffer", QVariant(false)); + settings["UserMessagesInQueryBuffer"] = bufferSettings.value("UserMessagesInQueryBuffer", QVariant(false)); ui.userMessagesInQueryBuffer->setChecked(settings["UserMessagesInQueryBuffer"].toBool()); - settings["UserMessagesInCurrentBuffer"] = s.value("UserMessagesInCurrentBuffer", QVariant(false)); + settings["UserMessagesInCurrentBuffer"] = bufferSettings.value("UserMessagesInCurrentBuffer", QVariant(false)); ui.userMessagesInCurrentBuffer->setChecked(settings["UserMessagesInCurrentBuffer"].toBool()); + settings["DisplayTopicInTooltip"] = bufferSettings.value("DisplayTopicInTooltip", QVariant(false)); + ui.displayTopicInTooltip->setChecked(settings["DisplayTopicInTooltip"].toBool()); + setChangedState(false); } void GeneralSettingsPage::save() { - QtUiSettings s; - s.setValue("UseSystemTrayIcon", ui.useSystemTrayIcon->isChecked()); - s.setValue("MinimizeOnMinimize", ui.minimizeOnMinimize->isChecked()); - s.setValue("MinimizeOnClose", ui.minimizeOnClose->isChecked()); + UiSettings uiSettings("Ui"); + uiSettings.setValue("UseSystemTrayIcon", ui.useSystemTrayIcon->isChecked()); + uiSettings.setValue("MinimizeOnMinimize", ui.minimizeOnMinimize->isChecked()); + uiSettings.setValue("MinimizeOnClose", ui.minimizeOnClose->isChecked()); + uiSettings.setValue("MouseWheelChangesBuffers", ui.mouseWheelChangesBuffers->isChecked()); + + BufferSettings bufferSettings; + bufferSettings.setValue("UserMessagesInStatusBuffer", ui.userMessagesInStatusBuffer->isChecked()); + bufferSettings.setValue("UserMessagesInQueryBuffer", ui.userMessagesInQueryBuffer->isChecked()); + bufferSettings.setValue("UserMessagesInCurrentBuffer", ui.userMessagesInCurrentBuffer->isChecked()); - s.setValue("UserMessagesInStatusBuffer", ui.userMessagesInStatusBuffer->isChecked()); - s.setValue("UserMessagesInQueryBuffer", ui.userMessagesInQueryBuffer->isChecked()); - s.setValue("UserMessagesInCurrentBuffer", ui.userMessagesInCurrentBuffer->isChecked()); + bufferSettings.setValue("DisplayTopicInTooltip", ui.displayTopicInTooltip->isChecked()); load(); setChangedState(false); @@ -112,10 +136,14 @@ bool GeneralSettingsPage::testHasChanged() { if(settings["UseSystemTrayIcon"].toBool() != ui.useSystemTrayIcon->isChecked()) return true; if(settings["MinimizeOnMinimize"].toBool() != ui.minimizeOnMinimize->isChecked()) return true; if(settings["MinimizeOnClose"].toBool() != ui.minimizeOnClose->isChecked()) return true; + if(settings["UserMessagesInStatusBuffer"].toBool() != ui.userMessagesInStatusBuffer->isChecked()) return true; if(settings["UserMessagesInQueryBuffer"].toBool() != ui.userMessagesInQueryBuffer->isChecked()) return true; if(settings["UserMessagesInCurrentBuffer"].toBool() != ui.userMessagesInCurrentBuffer->isChecked()) return true; + if(settings["DisplayTopicInTooltip"].toBool() != ui.displayTopicInTooltip->isChecked()) return true; + if(settings["MouseWheelChangesBuffers"].toBool() != ui.mouseWheelChangesBuffers->isChecked()) return true; + return false; } diff --git a/src/qtui/settingspages/generalsettingspage.ui b/src/qtui/settingspages/generalsettingspage.ui index 51cece6c..4a4784e1 100644 --- a/src/qtui/settingspages/generalsettingspage.ui +++ b/src/qtui/settingspages/generalsettingspage.ui @@ -5,8 +5,8 @@ 0 0 - 475 - 366 + 448 + 480 @@ -67,7 +67,7 @@ - false + true in status buffer @@ -80,7 +80,7 @@ - false + true in query buffer (if exists) @@ -90,7 +90,7 @@ - false + true in current buffer @@ -100,15 +100,41 @@ + + + + Buffer view: + + + + + + Display topic in tooltip + + + + + + + Mouse wheel changes displayed buffers + + + true + + + + + + Qt::Vertical - + - 457 - 51 + 20 + 40 @@ -116,38 +142,5 @@ - - - showSystemTrayIcon - clicked(bool) - useSystemTrayIcon - setChecked(bool) - - - 237 - 139 - - - 237 - 49 - - - - - useSystemTrayIcon - clicked(bool) - showSystemTrayIcon - setChecked(bool) - - - 237 - 49 - - - 237 - 139 - - - - + diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 380828d3..0ebfdea0 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -24,6 +24,8 @@ #include "networkmodel.h" #include "network.h" +#include "uisettings.h" + /***************************************** * The TreeView showing the Buffers *****************************************/ @@ -222,6 +224,8 @@ void BufferView::showContextMenu(const QPoint &pos) { void BufferView::wheelEvent(QWheelEvent* event) { + UiSettings s; + if(s.value("MouseWheelChangesBuffers",QVariant(true)).toBool()) { int rowDelta = ( event->delta() > 0 ) ? -1 : 1; QModelIndex currentIndex = selectionModel()->currentIndex(); QModelIndex resultingIndex; @@ -242,5 +246,8 @@ void BufferView::wheelEvent(QWheelEvent* event) } selectionModel()->setCurrentIndex( resultingIndex, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows ); selectionModel()->select( resultingIndex, QItemSelectionModel::ClearAndSelect ); + } else { + QAbstractScrollArea::wheelEvent(event); + } } diff --git a/version.inc b/version.inc index a6827464..96e2b8ad 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-alpha1"; quasselDate = "2008-02-24"; - quasselBuild = 584; + quasselBuild = 585; //! Minimum client build number the core needs clientBuildNeeded = 563;