From: Alexander von Renteln Date: Fri, 15 Feb 2008 01:49:18 +0000 (+0000) Subject: added colorsettingspage X-Git-Tag: 0.2.0-alpha1~58 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=1aef6bf0d3d2a7ef469b9a9f68ceb891cc8a896c;hp=e8313fd543561e6ee24439d6cc14d26395128622 added colorsettingspage changed generalpage for mac os x set kickban inactive in user context menu --- diff --git a/Quassel.kdevelop.filelist b/Quassel.kdevelop.filelist index b3cad7bd..b74b8086 100644 --- a/Quassel.kdevelop.filelist +++ b/Quassel.kdevelop.filelist @@ -1,4 +1,5 @@ # KDevelop Custom Project File List +Makefile build build/buildconf.pri build/contrib @@ -138,8 +139,6 @@ src/qtopia/ui/editcoreacctdlg.ui src/qtopia/ui/mainwidget.ui src/qtopia/ui/nicklistwidget.ui src/qtui -src/qtui/aboutdlg.cpp -src/qtui/aboutdlg.h src/qtui/bufferwidget.cpp src/qtui/bufferwidget.h src/qtui/chatitem.cpp @@ -156,14 +155,10 @@ src/qtui/chatwidget.cpp src/qtui/chatwidget.h src/qtui/configwizard.cpp src/qtui/configwizard.h -src/qtui/coreconfigwizard.cpp -src/qtui/coreconfigwizard.h src/qtui/coreconnectdlg.cpp src/qtui/coreconnectdlg.h src/qtui/debugconsole.cpp src/qtui/debugconsole.h -src/qtui/inputwidget.cpp -src/qtui/inputwidget.h src/qtui/mainwin.cpp src/qtui/mainwin.h src/qtui/nicklistwidget.cpp @@ -171,27 +166,28 @@ src/qtui/nicklistwidget.h src/qtui/qtui.cpp src/qtui/qtui.h src/qtui/qtui.pri +src/qtui/qtuisettings.cpp +src/qtui/qtuisettings.h src/qtui/qtuistyle.cpp src/qtui/qtuistyle.h src/qtui/settingsdlg.cpp src/qtui/settingsdlg.h -src/qtui/settingspagedlg.cpp -src/qtui/settingspagedlg.h src/qtui/settingspages +src/qtui/settingspages/colorsettingspage.cpp +src/qtui/settingspages/colorsettingspage.h src/qtui/settingspages/createidentitydlg.ui src/qtui/settingspages/fontssettingspage.cpp src/qtui/settingspages/fontssettingspage.h src/qtui/settingspages/fontssettingspage.ui +src/qtui/settingspages/generalsettingspage.cpp +src/qtui/settingspages/generalsettingspage.h src/qtui/settingspages/identitiessettingspage.cpp src/qtui/settingspages/identitiessettingspage.h src/qtui/settingspages/identitiessettingspage.ui -src/qtui/settingspages/networkeditdlg.ui src/qtui/settingspages/networkssettingspage.cpp src/qtui/settingspages/networkssettingspage.h src/qtui/settingspages/networkssettingspage.ui -src/qtui/settingspages/nickeditdlg.ui src/qtui/settingspages/saveidentitiesdlg.ui -src/qtui/settingspages/servereditdlg.ui src/qtui/settingspages/settingspages.pri src/qtui/topicwidget.cpp src/qtui/topicwidget.h @@ -205,23 +201,17 @@ src/qtui/ui/mainwin.ui src/qtui/ui/nicklistwidget.ui src/qtui/ui/settingsdlg.ui src/qtui/ui/topicwidget.ui -src/qtui/verticaldock.cpp -src/qtui/verticaldock.h src/uisupport -src/uisupport/action.cpp -src/uisupport/action.h -src/uisupport/actioncollection.cpp -src/uisupport/actioncollection.h src/uisupport/bufferview.cpp src/uisupport/bufferview.h src/uisupport/bufferviewfilter.cpp src/uisupport/bufferviewfilter.h +src/uisupport/colorbutton.cpp +src/uisupport/colorbutton.h src/uisupport/inputline.cpp src/uisupport/inputline.h src/uisupport/nickview.cpp src/uisupport/nickview.h -src/uisupport/nickviewfilter.cpp -src/uisupport/nickviewfilter.h src/uisupport/settingspage.cpp src/uisupport/settingspage.h src/uisupport/tabcompleter.cpp diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 81dc224b..1b738041 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -43,10 +43,12 @@ #include "selectionmodelsynchronizer.h" #include "mappedselectionmodel.h" +#include "settingspages/colorsettingspage.h" #include "settingspages/fontssettingspage.h" +#include "settingspages/generalsettingspage.h" #include "settingspages/identitiessettingspage.h" #include "settingspages/networkssettingspage.h" -#include "settingspages/generalsettingspage.h" + #include "debugconsole.h" @@ -174,12 +176,16 @@ QDockWidget *MainWin::addBufferView(const QString &viewname, QAbstractItemModel } void MainWin::setupSettingsDlg() { - + //Category: Appearance + settingsDlg->registerSettingsPage(new ColorSettingsPage(settingsDlg)); settingsDlg->registerSettingsPage(new FontsSettingsPage(settingsDlg)); + //Category: Behaviour + settingsDlg->registerSettingsPage(new GeneralSettingsPage(settingsDlg)); + //Category: General settingsDlg->registerSettingsPage(new IdentitiesSettingsPage(settingsDlg)); settingsDlg->registerSettingsPage(new NetworksSettingsPage(settingsDlg)); - settingsDlg->registerSettingsPage(new GeneralSettingsPage(settingsDlg)); - + + #ifdef SPUTDEV connect(settingsDlg, SIGNAL(finished(int)), QApplication::instance(), SLOT(quit())); // FIXME #endif @@ -368,19 +374,25 @@ void MainWin::systrayActivated( QSystemTrayIcon::ActivationReason activationReas } void MainWin::toggleVisibility() { - if(isHidden()) { + if(isHidden() || !isActiveWindow()) { show(); - if(isMinimized()) { - if(isMaximized()) { + if(isMinimized()) + if (isMaximized()) showMaximized(); - } else { + else showNormal(); - } - } + raise(); activateWindow(); } else { - hide(); + if(systray->isSystemTrayAvailable ()) { + hide(); + if(!systray->isVisible()) { + systray->show(); + } + } else { + lower(); + } } } diff --git a/src/qtui/settingspages/colorsettingspage.cpp b/src/qtui/settingspages/colorsettingspage.cpp new file mode 100644 index 00000000..475d57c8 --- /dev/null +++ b/src/qtui/settingspages/colorsettingspage.cpp @@ -0,0 +1,550 @@ +/*************************************************************************** + * 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 "colorsettingspage.h" + +#include "qtui.h" +#include "qtuisettings.h" +#include "colorbutton.h" + +#include +#include + +ColorSettingsPage::ColorSettingsPage(QWidget *parent) + : SettingsPage(tr("Appearance"), tr("Color settings"), parent) { + ui.setupUi(this); + + mapper = new QSignalMapper(this); + //Bufferview tab: + connect(ui.inactiveActivity, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.noActivity, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.highlightActivity, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.newMessageActivity, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.otherActivity, SIGNAL(clicked()), mapper, SLOT(map())); + + mapper->setMapping(ui.inactiveActivity, ui.inactiveActivity); + mapper->setMapping(ui.noActivity, ui.noActivity); + mapper->setMapping(ui.highlightActivity, ui.highlightActivity); + mapper->setMapping(ui.newMessageActivity, ui.newMessageActivity); + mapper->setMapping(ui.otherActivity, ui.otherActivity); + + //Chatview tab: + connect(ui.errorMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.errorMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.noticeMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.noticeMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.plainMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.plainMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.serverMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.serverMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.actionMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.actionMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.joinMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.joinMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.kickMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.kickMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.modeMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.modeMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.partMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.partMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.quitMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.quitMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.renameMessageFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.renameMessageBG, SIGNAL(clicked()), mapper, SLOT(map())); + + mapper->setMapping(ui.errorMessageFG, ui.errorMessageFG); + mapper->setMapping(ui.errorMessageBG, ui.errorMessageBG); + mapper->setMapping(ui.noticeMessageFG, ui.noticeMessageFG); + mapper->setMapping(ui.noticeMessageBG, ui.noticeMessageBG); + mapper->setMapping(ui.plainMessageFG, ui.plainMessageFG); + mapper->setMapping(ui.plainMessageBG, ui.plainMessageBG); + mapper->setMapping(ui.serverMessageFG, ui.serverMessageFG); + mapper->setMapping(ui.serverMessageBG, ui.serverMessageBG); + mapper->setMapping(ui.actionMessageFG, ui.actionMessageFG); + mapper->setMapping(ui.actionMessageBG, ui.actionMessageBG); + mapper->setMapping(ui.joinMessageFG, ui.joinMessageFG); + mapper->setMapping(ui.joinMessageBG, ui.joinMessageBG); + mapper->setMapping(ui.kickMessageFG, ui.kickMessageFG); + mapper->setMapping(ui.kickMessageBG, ui.kickMessageBG); + mapper->setMapping(ui.modeMessageFG, ui.modeMessageFG); + mapper->setMapping(ui.modeMessageBG, ui.modeMessageBG); + mapper->setMapping(ui.partMessageFG, ui.partMessageFG); + mapper->setMapping(ui.partMessageBG, ui.partMessageBG); + mapper->setMapping(ui.quitMessageFG, ui.quitMessageFG); + mapper->setMapping(ui.quitMessageBG, ui.quitMessageBG); + mapper->setMapping(ui.renameMessageFG, ui.renameMessageFG); + mapper->setMapping(ui.renameMessageBG, ui.renameMessageBG); + + //Message Layout tab: + connect(ui.timestampFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.timestampBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.senderFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.senderBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.nickFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.nickBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.hostmaskFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.hostmaskBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.channelnameFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.channelnameBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.modeFlagsFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.modeFlagsBG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.urlFG, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.urlBG, SIGNAL(clicked()), mapper, SLOT(map())); + + mapper->setMapping(ui.timestampFG, ui.timestampFG); + mapper->setMapping(ui.timestampBG, ui.timestampBG); + mapper->setMapping(ui.senderFG, ui.senderFG); + mapper->setMapping(ui.senderBG, ui.senderBG); + mapper->setMapping(ui.nickFG, ui.nickFG); + mapper->setMapping(ui.nickBG, ui.nickBG); + mapper->setMapping(ui.hostmaskFG, ui.hostmaskFG); + mapper->setMapping(ui.hostmaskBG, ui.hostmaskBG); + mapper->setMapping(ui.channelnameFG, ui.channelnameFG); + mapper->setMapping(ui.channelnameBG, ui.channelnameBG); + mapper->setMapping(ui.modeFlagsFG, ui.modeFlagsFG); + mapper->setMapping(ui.modeFlagsBG, ui.modeFlagsBG); + mapper->setMapping(ui.urlFG, ui.urlFG); + mapper->setMapping(ui.urlBG, ui.urlBG); + + //Mirc Color Codes tab: + connect(ui.color0, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color1, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color2, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color3, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color4, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color5, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color6, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color7, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color8, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color9, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color10, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color11, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color12, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color13, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color14, SIGNAL(clicked()), mapper, SLOT(map())); + connect(ui.color15, SIGNAL(clicked()), mapper, SLOT(map())); + + mapper->setMapping(ui.color0, ui.color0); + mapper->setMapping(ui.color1, ui.color1); + mapper->setMapping(ui.color2, ui.color2); + mapper->setMapping(ui.color3, ui.color3); + mapper->setMapping(ui.color4, ui.color4); + mapper->setMapping(ui.color5, ui.color5); + mapper->setMapping(ui.color6, ui.color6); + mapper->setMapping(ui.color7, ui.color7); + mapper->setMapping(ui.color8, ui.color8); + mapper->setMapping(ui.color9, ui.color9); + mapper->setMapping(ui.color10, ui.color10); + mapper->setMapping(ui.color11, ui.color11); + mapper->setMapping(ui.color12, ui.color12); + mapper->setMapping(ui.color13, ui.color13); + mapper->setMapping(ui.color14, ui.color14); + mapper->setMapping(ui.color15, ui.color15); + + connect(mapper, SIGNAL(mapped(QWidget *)), this, SLOT(chooseColor(QWidget *))); +} + +bool ColorSettingsPage::hasDefaults() const { + return true; +} + +void ColorSettingsPage::defaults() { + ui.inactiveActivity->setColor(QColor(Qt::gray)); + ui.noActivity->setColor(QColor(Qt::black)); + ui.highlightActivity->setColor(QColor(Qt::magenta)); + ui.newMessageActivity->setColor(QColor(Qt::green)); + ui.otherActivity->setColor(QColor(Qt::darkGreen)); + + ui.errorMessageFG->setColor(QColor("red")); + ui.errorMessageBG->setColor(QColor("white")); + ui.noticeMessageFG->setColor(QColor("navy")); + ui.noticeMessageBG->setColor(QColor("white")); + ui.plainMessageFG->setColor(QColor("black")); + ui.plainMessageBG->setColor(QColor("white")); + ui.serverMessageFG->setColor(QColor("navy")); + ui.serverMessageBG->setColor(QColor("white")); + ui.actionMessageFG->setColor(QColor("darkmagenta")); + ui.actionMessageBG->setColor(QColor("white")); + ui.joinMessageFG->setColor(QColor("green")); + ui.joinMessageBG->setColor(QColor("white")); + ui.kickMessageFG->setColor(QColor("black")); + ui.kickMessageBG->setColor(QColor("white")); + ui.modeMessageFG->setColor(QColor("steelblue")); + ui.modeMessageBG->setColor(QColor("white")); + ui.partMessageFG->setColor(QColor("indianred")); + ui.partMessageBG->setColor(QColor("white")); + ui.quitMessageFG->setColor(QColor("indianred")); + ui.quitMessageBG->setColor(QColor("white")); + ui.renameMessageFG->setColor(QColor("magenta")); + ui.renameMessageBG->setColor(QColor("white")); + + ui.timestampFG->setColor(QColor("grey")); + ui.timestampBG->setColor(QColor("white")); + ui.senderFG->setColor(QColor("navy")); + ui.senderBG->setColor(QColor("white")); + ui.nickFG->setColor(QColor("black")); + ui.nickBG->setColor(QColor("white")); + ui.hostmaskFG->setColor(QColor("black")); + ui.hostmaskBG->setColor(QColor("white")); + ui.channelnameFG->setColor(QColor("black")); + ui.channelnameBG->setColor(QColor("white")); + ui.modeFlagsFG->setColor(QColor("black")); + ui.modeFlagsBG->setColor(QColor("white")); + ui.urlFG->setColor(QColor("black")); + ui.urlBG->setColor(QColor("white")); + + + ui.color0->setColor(QColor("#ffffff")); + ui.color1->setColor(QColor("#000000")); + ui.color2->setColor(QColor("#000080")); + ui.color3->setColor(QColor("#008000")); + ui.color4->setColor(QColor("#ff0000")); + ui.color5->setColor(QColor("#800000")); + ui.color6->setColor(QColor("#800080")); + ui.color7->setColor(QColor("#ffa500")); + ui.color8->setColor(QColor("#ffff00")); + ui.color9->setColor(QColor("#00ff00")); + ui.color10->setColor(QColor("#008080")); + ui.color11->setColor(QColor("#00ffff")); + ui.color12->setColor(QColor("#4169E1")); + ui.color13->setColor(QColor("#ff00ff")); + ui.color14->setColor(QColor("#808080")); + ui.color15->setColor(QColor("#c0c0c0")); + + widgetHasChanged(); + bufferviewPreview(); + chatviewPreview(); +} + +void ColorSettingsPage::load() { + QtUiSettings s("QtUi/Colors"); + settings["InactiveActivity"] = s.value("inactiveActivity", QVariant(QColor(Qt::gray))); + ui.inactiveActivity->setColor(settings["InactiveActivity"].value()); + settings["NoActivity"] = s.value("noActivity", QVariant(QColor(Qt::black))); + ui.noActivity->setColor(settings["NoActivity"].value()); + settings["HighlightActivity"] = s.value("highlightActivity", QVariant(QColor(Qt::magenta))); + ui.highlightActivity->setColor(settings["HighlightActivity"].value()); + settings["NewMessageActivity"] = s.value("newMessageActivity", QVariant(QColor(Qt::green))); + ui.newMessageActivity->setColor(settings["NewMessageActivity"].value()); + settings["OtherActivity"] = s.value("otherActivity", QVariant(QColor(Qt::darkGreen))); + ui.otherActivity->setColor(settings["OtherActivity"].value()); + + settings["ErrorMessageFG"] = s.value("errorMessageFG", QVariant(QColor("red"))); + ui.errorMessageFG->setColor(settings["ErrorMessageFG"].value()); + settings["ErrorMessageBG"] = s.value("errorMessageBG", QVariant(QColor("white"))); + ui.errorMessageBG->setColor(settings["ErrorMessageBG"].value()); + settings["NoticeMessageFG"] = s.value("noticeMessageFG", QVariant(QColor("navy"))); + ui.noticeMessageFG->setColor(settings["NoticeMessageFG"].value()); + settings["NoticeMessageBG"] = s.value("noticeMessageBG", QVariant(QColor("white"))); + ui.noticeMessageBG->setColor(settings["NoticeMessageBG"].value()); + settings["PlainMessageFG"] = s.value("plainMessageFG", QVariant(QColor("black"))); + ui.plainMessageFG->setColor(settings["PlainMessageFG"].value()); + settings["PlainMessageBG"] = s.value("plainMessageBG", QVariant(QColor("white"))); + ui.plainMessageBG->setColor(settings["PlainMessageBG"].value()); + settings["ServerMessageFG"] = s.value("serverMessageFG", QVariant(QColor("navy"))); + ui.serverMessageFG->setColor(settings["ServerMessageFG"].value()); + settings["ServerMessageBG"] = s.value("serverMessageBG", QVariant(QColor("white"))); + ui.serverMessageBG->setColor(settings["ServerMessageBG"].value()); + settings["ActionMessageFG"] = s.value("actionMessageFG", QVariant(QColor("darkmagenta"))); + ui.actionMessageFG->setColor(settings["ActionMessageFG"].value()); + settings["ActionMessageBG"] = s.value("actionMessageBG", QVariant(QColor("white"))); + ui.actionMessageBG->setColor(settings["ActionMessageBG"].value()); + settings["JoinMessageFG"] = s.value("joinMessageFG", QVariant(QColor("green"))); + ui.joinMessageFG->setColor(settings["JoinMessageFG"].value()); + settings["JoinMessageBG"] = s.value("joinMessageBG", QVariant(QColor("white"))); + ui.joinMessageBG->setColor(settings["JoinMessageBG"].value()); + settings["KickMessageFG"] = s.value("kickMessageFG", QVariant(QColor("black"))); + ui.kickMessageFG->setColor(settings["KickMessageFG"].value()); + settings["KickMessageBG"] = s.value("kickMessageBG", QVariant(QColor("white"))); + ui.kickMessageBG->setColor(settings["KickMessageBG"].value()); + settings["ModeMessageFG"] = s.value("modeMessageFG", QVariant(QColor("steelblue"))); + ui.modeMessageFG->setColor(settings["ModeMessageFG"].value()); + settings["ModeMessageBG"] = s.value("modeMessageBG", QVariant(QColor("white"))); + ui.modeMessageBG->setColor(settings["ModeMessageBG"].value()); + settings["PartMessageFG"] = s.value("partMessageFG", QVariant(QColor("indianred"))); + ui.partMessageFG->setColor(settings["PartMessageFG"].value()); + settings["PartMessageBG"] = s.value("partMessageBG", QVariant(QColor("white"))); + ui.partMessageBG->setColor(settings["PartMessageBG"].value()); + settings["QuitMessageFG"] = s.value("quitMessageFG", QVariant(QColor("indianred"))); + ui.quitMessageFG->setColor(settings["QuitMessageFG"].value()); + settings["QuitMessageBG"] = s.value("quitMessageBG", QVariant(QColor("white"))); + ui.quitMessageBG->setColor(settings["QuitMessageBG"].value()); + settings["RenameMessageFG"] = s.value("renameMessageFG", QVariant(QColor("magenta"))); + ui.renameMessageFG->setColor(settings["RenameMessageFG"].value()); + settings["RenameMessageBG"] = s.value("renameMessageBG", QVariant(QColor("white"))); + ui.renameMessageBG->setColor(settings["RenameMessageBG"].value()); + + settings["TimestampFG"] = s.value("timestampFG", QVariant(QColor("grey"))); + ui.timestampFG->setColor(settings["TimestampFG"].value()); + settings["TimestampBG"] = s.value("timestampBG", QVariant(QColor("white"))); + ui.timestampBG->setColor(settings["TimestampBG"].value()); + settings["SenderFG"] = s.value("senderFG", QVariant(QColor("navy"))); + ui.senderFG->setColor(settings["SenderFG"].value()); + settings["SenderBG"] = s.value("senderBG", QVariant(QColor("white"))); + ui.senderBG->setColor(settings["SenderBG"].value()); + settings["NickFG"] = s.value("nickFG", QVariant(QColor("black"))); + ui.nickFG->setColor(settings["NickFG"].value()); + settings["NickBG"] = s.value("nickBG", QVariant(QColor("white"))); + ui.nickBG->setColor(settings["NickBG"].value()); + settings["HostmaskFG"] = s.value("hostmaskFG", QVariant(QColor("black"))); + ui.hostmaskFG->setColor(settings["HostmaskFG"].value()); + settings["HostmaskBG"] = s.value("hostmaskBG", QVariant(QColor("white"))); + ui.hostmaskBG->setColor(settings["HostmaskBG"].value()); + settings["ChannelnameFG"] = s.value("channelnameFG", QVariant(QColor("black"))); + ui.channelnameFG->setColor(settings["ChannelnameFG"].value()); + settings["ChannelnameBG"] = s.value("channelnameBG", QVariant(QColor("white"))); + ui.channelnameBG->setColor(settings["ChannelnameBG"].value()); + settings["ModeFlagsFG"] = s.value("modeFlagsFG", QVariant(QColor("black"))); + ui.modeFlagsFG->setColor(settings["ModeFlagsFG"].value()); + settings["ModeFlagsBG"] = s.value("modeFlagsBG", QVariant(QColor("white"))); + ui.modeFlagsBG->setColor(settings["ModeFlagsBG"].value()); + settings["UrlFG"] = s.value("urlFG", QVariant(QColor("black"))); + ui.urlFG->setColor(settings["UrlFG"].value()); + settings["UrlBG"] = s.value("urlBG", QVariant(QColor("white"))); + ui.urlBG->setColor(settings["UrlBG"].value()); + + settings["Color0"] = s.value("color0", QVariant(QColor("#ffffff"))); + ui.color0->setColor(settings["Color0"].value()); + settings["Color1"] = s.value("color1", QVariant(QColor("#000000"))); + ui.color1->setColor(settings["Color1"].value()); + settings["Color2"] = s.value("color2", QVariant(QColor("#000080"))); + ui.color2->setColor(settings["Color2"].value()); + settings["Color3"] = s.value("color3", QVariant(QColor("#008000"))); + ui.color3->setColor(settings["Color3"].value()); + settings["Color4"] = s.value("color4", QVariant(QColor("#ff0000"))); + ui.color4->setColor(settings["Color4"].value()); + settings["Color5"] = s.value("color5", QVariant(QColor("#800000"))); + ui.color5->setColor(settings["Color5"].value()); + settings["Color6"] = s.value("color6", QVariant(QColor("#800080"))); + ui.color6->setColor(settings["Color6"].value()); + settings["Color7"] = s.value("color7", QVariant(QColor("#ffa500"))); + ui.color7->setColor(settings["Color7"].value()); + settings["Color8"] = s.value("color8", QVariant(QColor("#ffff00"))); + ui.color8->setColor(settings["Color8"].value()); + settings["Color9"] = s.value("color9", QVariant(QColor("#00ff00"))); + ui.color9->setColor(settings["Color9"].value()); + settings["Color10"] = s.value("color10", QVariant(QColor("#008080"))); + ui.color10->setColor(settings["Color10"].value()); + settings["Color11"] = s.value("color11", QVariant(QColor("#00ffff"))); + ui.color11->setColor(settings["Color11"].value()); + settings["Color12"] = s.value("color12", QVariant(QColor("#4169E1"))); + ui.color12->setColor(settings["Color12"].value()); + settings["Color13"] = s.value("color13", QVariant(QColor("#ff00ff"))); + ui.color13->setColor(settings["Color13"].value()); + settings["Color14"] = s.value("color14", QVariant(QColor("#808080"))); + ui.color14->setColor(settings["Color14"].value()); + settings["Color15"] = s.value("color15", QVariant(QColor("#c0c0c0"))); + ui.color15->setColor(settings["Color15"].value()); + + setChangedState(false); + + bufferviewPreview(); + chatviewPreview(); +} + +void ColorSettingsPage::save() { + QtUiSettings s("QtUi/Colors"); + s.setValue("inactiveActivity", ui.inactiveActivity->color()); + s.setValue("noActivity", ui.noActivity->color()); + s.setValue("highlightActivity", ui.highlightActivity->color()); + s.setValue("newMessageActivity", ui.newMessageActivity->color()); + s.setValue("otherActivity", ui.otherActivity->color()); + + s.setValue("errorMessageFG", ui.errorMessageFG->color()); + s.setValue("errorMessageBG", ui.errorMessageBG->color()); + s.setValue("noticeMessageFG", ui.noticeMessageFG->color()); + s.setValue("noticeMessageBG", ui.noticeMessageBG->color()); + s.setValue("plainMessageFG", ui.plainMessageFG->color()); + s.setValue("plainMessageBG", ui.plainMessageBG->color()); + s.setValue("serverMessageFG", ui.serverMessageFG->color()); + s.setValue("serverMessageBG", ui.serverMessageBG->color()); + s.setValue("actionMessageFG", ui.actionMessageFG->color()); + s.setValue("actionMessageBG", ui.actionMessageBG->color()); + s.setValue("joinMessageFG", ui.joinMessageFG->color()); + s.setValue("joinMessageBG", ui.joinMessageBG->color()); + s.setValue("kickMessageFG", ui.kickMessageFG->color()); + s.setValue("kickMessageBG", ui.kickMessageBG->color()); + s.setValue("modeMessageFG", ui.modeMessageFG->color()); + s.setValue("modeMessageBG", ui.modeMessageBG->color()); + s.setValue("partMessageFG", ui.partMessageFG->color()); + s.setValue("partMessageBG", ui.partMessageBG->color()); + s.setValue("quitMessageFG", ui.quitMessageFG->color()); + s.setValue("quitMessageBG", ui.quitMessageBG->color()); + s.setValue("renameMessageFG", ui.renameMessageFG->color()); + s.setValue("renameMessageBG", ui.renameMessageBG->color()); + + s.setValue("timestampFG", ui.timestampFG->color()); + s.setValue("timestampBG", ui.timestampBG->color()); + s.setValue("senderFG", ui.senderFG->color()); + s.setValue("senderBG", ui.senderBG->color()); + s.setValue("nickFG", ui.nickFG->color()); + s.setValue("nickBG", ui.nickBG->color()); + s.setValue("hostmaskFG", ui.hostmaskFG->color()); + s.setValue("hostmaskBG", ui.hostmaskBG->color()); + s.setValue("channelnameFG", ui.channelnameFG->color()); + s.setValue("channelnameBG", ui.channelnameBG->color()); + s.setValue("modeFlagsFG", ui.modeFlagsFG->color()); + s.setValue("modeFlagsBG", ui.modeFlagsBG->color()); + s.setValue("urlFG", ui.urlFG->color()); + s.setValue("urlBG", ui.urlBG->color()); + + + s.setValue("color0", ui.color0->color()); + s.setValue("color1", ui.color1->color()); + s.setValue("color2", ui.color2->color()); + s.setValue("color3", ui.color3->color()); + s.setValue("color4", ui.color4->color()); + s.setValue("color5", ui.color5->color()); + s.setValue("color6", ui.color6->color()); + s.setValue("color7", ui.color7->color()); + s.setValue("color8", ui.color8->color()); + s.setValue("color9", ui.color9->color()); + s.setValue("color10", ui.color10->color()); + s.setValue("color11", ui.color11->color()); + s.setValue("color12", ui.color12->color()); + s.setValue("color13", ui.color13->color()); + s.setValue("color14", ui.color14->color()); + s.setValue("color15", ui.color15->color()); + + load(); + setChangedState(false); +} + +void ColorSettingsPage::widgetHasChanged() { + bool changed = testHasChanged(); + if(changed != hasChanged()) setChangedState(changed); +} + +bool ColorSettingsPage::testHasChanged() { + if(settings["InactiveActivity"].value() != ui.inactiveActivity->color()) return true; + if(settings["NoActivity"].value() != ui.noActivity->color()) return true; + if(settings["HighlightActivity"].value() != ui.highlightActivity->color()) return true; + if(settings["NewMessageActivity"].value() != ui.newMessageActivity->color()) return true; + if(settings["OtherActivity"].value() != ui.otherActivity->color()) return true; + + if(settings["ErrorMessageFG"].value() != ui.errorMessageFG->color()) return true; + if(settings["ErrorMessageBG"].value() != ui.errorMessageBG->color()) return true; + if(settings["NoticeMessageFG"].value() != ui.noticeMessageFG->color()) return true; + if(settings["NoticeMessageBG"].value() != ui.noticeMessageBG->color()) return true; + if(settings["PlainMessageFG"].value() != ui.plainMessageFG->color()) return true; + if(settings["PlainMessageBG"].value() != ui.plainMessageBG->color()) return true; + if(settings["ServerMessageFG"].value() != ui.serverMessageFG->color()) return true; + if(settings["ServerMessageBG"].value() != ui.serverMessageBG->color()) return true; + if(settings["ActionMessageFG"].value() != ui.actionMessageFG->color()) return true; + if(settings["ActionMessageBG"].value() != ui.actionMessageBG->color()) return true; + if(settings["JoinMessageFG"].value() != ui.joinMessageFG->color()) return true; + if(settings["JoinMessageBG"].value() != ui.joinMessageBG->color()) return true; + if(settings["KickMessageFG"].value() != ui.kickMessageFG->color()) return true; + if(settings["KickMessageBG"].value() != ui.kickMessageBG->color()) return true; + if(settings["ModeMessageFG"].value() != ui.modeMessageFG->color()) return true; + if(settings["ModeMessageBG"].value() != ui.modeMessageBG->color()) return true; + if(settings["PartMessageFG"].value() != ui.partMessageFG->color()) return true; + if(settings["PartMessageBG"].value() != ui.partMessageBG->color()) return true; + if(settings["QuitMessageFG"].value() != ui.quitMessageFG->color()) return true; + if(settings["QuitMessageBG"].value() != ui.quitMessageBG->color()) return true; + if(settings["RenameMessageFG"].value() != ui.renameMessageFG->color()) return true; + if(settings["RenameMessageBG"].value() != ui.renameMessageBG->color()) return true; + + if(settings["TimestampFG"].value() != ui.timestampFG->color()) return true; + if(settings["TimestampBG"].value() != ui.timestampBG->color()) return true; + if(settings["SenderFG"].value() != ui.senderFG->color()) return true; + if(settings["SenderBG"].value() != ui.senderBG->color()) return true; + if(settings["NickFG"].value() != ui.nickFG->color()) return true; + if(settings["NickBG"].value() != ui.nickBG->color()) return true; + if(settings["HostmaskFG"].value() != ui.hostmaskFG->color()) return true; + if(settings["HostmaskBG"].value() != ui.hostmaskBG->color()) return true; + if(settings["ChannelnameFG"].value() != ui.channelnameFG->color()) return true; + if(settings["ChannelnameBG"].value() != ui.channelnameBG->color()) return true; + if(settings["ModeFlagsFG"].value() != ui.modeFlagsFG->color()) return true; + if(settings["ModeFlagsBG"].value() != ui.modeFlagsBG->color()) return true; + if(settings["UrlFG"].value() != ui.urlFG->color()) return true; + if(settings["UrlBG"].value() != ui.urlBG->color()) return true; + + if(settings["Color0"].value() != ui.color0->color()) return true; + if(settings["Color1"].value() != ui.color1->color()) return true; + if(settings["Color2"].value() != ui.color2->color()) return true; + if(settings["Color3"].value() != ui.color3->color()) return true; + if(settings["Color4"].value() != ui.color4->color()) return true; + if(settings["Color5"].value() != ui.color5->color()) return true; + if(settings["Color6"].value() != ui.color6->color()) return true; + if(settings["Color7"].value() != ui.color7->color()) return true; + if(settings["Color8"].value() != ui.color8->color()) return true; + if(settings["Color9"].value() != ui.color9->color()) return true; + if(settings["Color10"].value() != ui.color10->color()) return true; + if(settings["Color11"].value() != ui.color11->color()) return true; + if(settings["Color12"].value() != ui.color12->color()) return true; + if(settings["Color13"].value() != ui.color13->color()) return true; + if(settings["Color14"].value() != ui.color14->color()) return true; + if(settings["Color15"].value() != ui.color15->color()) return true; + + return false; +} + +void ColorSettingsPage::chooseColor(QWidget *widget) { + ColorButton *button = qobject_cast(widget); + Q_ASSERT(button); + QColor color = QColorDialog::getColor(button->color(), this); + if(color.isValid()) { + button->setColor(color); + } + widgetHasChanged(); + bufferviewPreview(); + chatviewPreview(); +} + +void ColorSettingsPage::chatviewPreview() { + //TODO: update chatviewPreview +} + +void ColorSettingsPage::bufferviewPreview() { + ui.bufferviewPreview->clear(); + ui.bufferviewPreview->setColumnCount(1); + ui.bufferviewPreview->setHeaderLabels(QStringList("Buffers")); + + QTreeWidgetItem *topLevelItem = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("network"))); + ui.bufferviewPreview->insertTopLevelItem(0, topLevelItem); + + QList items; + items.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("Status Buffer")))); + + QTreeWidgetItem *inactive = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#inactive channel"))); + items.append(inactive); + inactive->setForeground(0, QBrush(ui.inactiveActivity->color())); + + QTreeWidgetItem *noActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with no activity"))); + items.append(noActivity); + noActivity->setForeground(0, QBrush(ui.noActivity->color())); + + QTreeWidgetItem *highlightActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with highlight"))); + items.append(highlightActivity); + highlightActivity->setForeground(0, QBrush(ui.highlightActivity->color())); + + QTreeWidgetItem *newMessageActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with new message"))); + items.append(newMessageActivity); + newMessageActivity->setForeground(0, QBrush(ui.newMessageActivity->color())); + + QTreeWidgetItem *otherActivity = new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("#channel with other activity"))); + items.append(otherActivity); + otherActivity->setForeground(0, QBrush(ui.otherActivity->color())); + + topLevelItem->insertChildren(0, items); + ui.bufferviewPreview->expandItem(topLevelItem); +} + diff --git a/src/qtui/settingspages/colorsettingspage.h b/src/qtui/settingspages/colorsettingspage.h new file mode 100644 index 00000000..7e7aa42b --- /dev/null +++ b/src/qtui/settingspages/colorsettingspage.h @@ -0,0 +1,59 @@ +/*************************************************************************** + * 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 _COLORSETTINGSPAGE_H_ +#define _COLORSETTINGSPAGE_H_ + +#include + +#include "settingspage.h" +#include "ui_colorsettingspage.h" + +class QSignalMapper; +class ColorButton; + +class ColorSettingsPage : public SettingsPage { + Q_OBJECT + + public: + ColorSettingsPage(QWidget *parent = 0); + + bool hasDefaults() const; + + public slots: + void save(); + void load(); + void defaults(); + + private slots: + void widgetHasChanged(); + void chooseColor(QWidget *button); + + private: + Ui::ColorSettingsPage ui; + QHash settings; + QSignalMapper *mapper; + + bool testHasChanged(); + void chatviewPreview(); + void bufferviewPreview(); +}; + +#endif diff --git a/src/qtui/settingspages/colorsettingspage.ui b/src/qtui/settingspages/colorsettingspage.ui new file mode 100644 index 00000000..cec8cd81 --- /dev/null +++ b/src/qtui/settingspages/colorsettingspage.ui @@ -0,0 +1,939 @@ + + ColorSettingsPage + + + + 0 + 0 + 448 + 532 + + + + + 0 + 0 + + + + Form + + + + + + 0 + + + + Bufferview + + + + + + Activities: + + + + + + Inactive: + + + + + + + + + + + + + + No Activity: + + + + + + + + + + + + + + Highlight: + + + + + + + + + + + + + + New Message: + + + + + + + + + + + + + + Other Activity: + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + Preview: + + + + + + + 1 + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + Chatview + + + + + + + 0 + 0 + + + + 0 + + + + Server Activity + + + + + + Error Message: + + + + + + + + + + + + + + + + + + + + + Notice Message: + + + + + + + + + + + + + + + + + + + + + Plain Message: + + + + + + + + + + + + + + + + + + + + + Server Message: + + + + + + + + + + + + + + + + + + + + + Foreground + + + Qt::AlignCenter + + + + + + + Background + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + User Activity + + + + + + Foreground + + + Qt::AlignCenter + + + + + + + Background + + + Qt::AlignCenter + + + + + + + Action Message: + + + + + + + + + + + + + + + + + + + + + Join Message: + + + + + + + + + + + + + + + + + + + + + Kick Message: + + + + + + + + + + + + + + + + + + + + + Mode Message: + + + + + + + + + + + + + + + + + + + + + Part Message: + + + + + + + + + + + + + + + + + + + + + Quit Message: + + + + + + + + + + + + + + + + + + + + + Rename Message: + + + + + + + + + + + + + + + + + + + + + + Message + + + + + + Foreground + + + Qt::AlignCenter + + + + + + + Background + + + Qt::AlignCenter + + + + + + + Timestamp: + + + + + + + + + + + + + + + + + + + + + Sender: + + + + + + + + + + + + + + + + + + + + + Nick: + + + + + + + + + + + + + + + + + + + + + Hostmask: + + + + + + + + + + + + + + + + + + + + + Channelname: + + + + + + + + + + + + + + + + + + + + + Mode flags: + + + + + + + + + + + + + + + + + + + + + Url: + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + + + + Preview: + + + + + + + + + + + + + Mirc Color Codes + + + + + + + 0 + 0 + + + + Color Codes + + + + + + Color 0: + + + + + + + + + + + + + + + + + + + + + Color 1: + + + + + + + + + + + + + + + + + + + + + Color 2: + + + + + + + + + + + + + + + + + + + + + Color 3: + + + + + + + + + + + + + + + + + + + + + Color 4: + + + + + + + + + + + + + + + + + + + + + Color 5: + + + + + + + + + + + + + + + + + + + + + Color 6: + + + + + + + + + + + + + + + + + + + + + Color 7: + + + + + + + + + + + + + + + + + + + + + Color 8: + + + + + + + Color 14: + + + + + + + Color 15: + + + + + + + Color 13: + + + + + + + Color 12: + + + + + + + Color 11: + + + + + + + Color 10: + + + + + + + Color 9: + + + + + + + + + + Qt::Vertical + + + + 140 + 291 + + + + + + + + + + + + + ColorButton + QPushButton +
colorbutton.h
+
+
+ + +
diff --git a/src/qtui/settingspages/generalsettingspage.cpp b/src/qtui/settingspages/generalsettingspage.cpp index 5341511b..aa793d7a 100644 --- a/src/qtui/settingspages/generalsettingspage.cpp +++ b/src/qtui/settingspages/generalsettingspage.cpp @@ -27,7 +27,14 @@ GeneralSettingsPage::GeneralSettingsPage(QWidget *parent) : SettingsPage(tr("Behaviour"), tr("General"), parent) { ui.setupUi(this); +#ifdef Q_WS_MAC + ui.useSystemTrayIcon->hide(); +#else + ui.macOnly->hide(); +#endif + connect(ui.useSystemTrayIcon, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); + connect(ui.showSystemTrayIcon, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.minimizeOnMinimize, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.minimizeOnClose, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); @@ -43,6 +50,7 @@ bool GeneralSettingsPage::hasDefaults() const { void GeneralSettingsPage::defaults() { qDebug() << "defaults in generalsettingspage"; ui.useSystemTrayIcon->setChecked(true); + ui.showSystemTrayIcon->setChecked(true); ui.minimizeOnMinimize->setChecked(false); ui.minimizeOnClose->setChecked(false); @@ -55,22 +63,23 @@ void GeneralSettingsPage::defaults() { void GeneralSettingsPage::load() { QtUiSettings s; - settings["UseSystemTrayIcon"] = s.value("UseSystemTrayIcon"); + settings["UseSystemTrayIcon"] = s.value("UseSystemTrayIcon", QVariant(true)); ui.useSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool()); + ui.showSystemTrayIcon->setChecked(settings["UseSystemTrayIcon"].toBool()); - settings["MinimizeOnMinimize"] = s.value("MinimizeOnMinimize"); + settings["MinimizeOnMinimize"] = s.value("MinimizeOnMinimize", QVariant(false)); ui.minimizeOnMinimize->setChecked(settings["MinimizeOnMinimize"].toBool()); - settings["MinimizeOnClose"] = s.value("MinimizeOnClose"); + settings["MinimizeOnClose"] = s.value("MinimizeOnClose", QVariant(false)); ui.minimizeOnClose->setChecked(settings["MinimizeOnClose"].toBool()); - settings["UserMessagesInStatusBuffer"] = s.value("UserMessagesInStatusBuffer"); + settings["UserMessagesInStatusBuffer"] = s.value("UserMessagesInStatusBuffer", QVariant(true)); ui.userMessagesInStatusBuffer->setChecked(settings["UserMessagesInStatusBuffer"].toBool()); - settings["UserMessagesInQueryBuffer"] = s.value("UserMessagesInQueryBuffer"); + settings["UserMessagesInQueryBuffer"] = s.value("UserMessagesInQueryBuffer", QVariant(false)); ui.userMessagesInQueryBuffer->setChecked(settings["UserMessagesInQueryBuffer"].toBool()); - settings["UserMessagesInCurrentBuffer"] = s.value("UserMessagesInCurrentBuffer"); + settings["UserMessagesInCurrentBuffer"] = s.value("UserMessagesInCurrentBuffer", QVariant(false)); ui.userMessagesInCurrentBuffer->setChecked(settings["UserMessagesInCurrentBuffer"].toBool()); setChangedState(false); @@ -86,6 +95,7 @@ void GeneralSettingsPage::save() { s.setValue("UserMessagesInQueryBuffer", ui.userMessagesInQueryBuffer->isChecked()); s.setValue("UserMessagesInCurrentBuffer", ui.userMessagesInCurrentBuffer->isChecked()); + load(); setChangedState(false); } @@ -95,12 +105,12 @@ void GeneralSettingsPage::widgetHasChanged() { } bool GeneralSettingsPage::testHasChanged() { - if(settings["UseSystemTrayIcon"] != ui.useSystemTrayIcon->isChecked()) return true; - if(settings["MinimizeOnMinimize"] != ui.minimizeOnMinimize->isChecked()) return true; - if(settings["MinimizeOnClose"] != ui.minimizeOnClose->isChecked()) return true; - if(settings["UserMessagesInStatusBuffer"] != ui.userMessagesInStatusBuffer->isChecked()) return true; - if(settings["UserMessagesInQueryBuffer"] != ui.userMessagesInQueryBuffer->isChecked()) return true; - if(settings["UserMessagesInCurrentBuffer"] != ui.userMessagesInCurrentBuffer->isChecked()) return true; + 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; return false; } diff --git a/src/qtui/settingspages/generalsettingspage.ui b/src/qtui/settingspages/generalsettingspage.ui index 340faafa..359401c5 100644 --- a/src/qtui/settingspages/generalsettingspage.ui +++ b/src/qtui/settingspages/generalsettingspage.ui @@ -39,6 +39,25 @@ + + + + Tray icon: + + + + + + Show system tray icon + + + true + + + + + + @@ -47,6 +66,9 @@ + + false + in status buffer @@ -57,6 +79,9 @@ + + false + in query buffer (if exists) @@ -64,6 +89,9 @@ + + false + in current buffer @@ -79,8 +107,8 @@ - 20 - 40 + 457 + 51 @@ -88,5 +116,38 @@ - + + + showSystemTrayIcon + clicked(bool) + useSystemTrayIcon + setChecked(bool) + + + 237 + 139 + + + 237 + 49 + + + + + useSystemTrayIcon + clicked(bool) + showSystemTrayIcon + setChecked(bool) + + + 237 + 49 + + + 237 + 139 + + + + diff --git a/src/qtui/settingspages/settingspages.pri b/src/qtui/settingspages/settingspages.pri index 84cec579..82256f93 100644 --- a/src/qtui/settingspages/settingspages.pri +++ b/src/qtui/settingspages/settingspages.pri @@ -1,6 +1,6 @@ # Putting $FOO in SETTINGSPAGES automatically includes # $FOOsettingspage.cpp, $FOOsettingspage.h and $FOOsettingspage.ui -SETTINGSPAGES = fonts identities networks general +SETTINGSPAGES = color fonts general identities networks # Specify additional files (e.g. for subdialogs) here! SP_SRCS = diff --git a/src/uisupport/colorbutton.cpp b/src/uisupport/colorbutton.cpp new file mode 100644 index 00000000..61e6c14d --- /dev/null +++ b/src/uisupport/colorbutton.cpp @@ -0,0 +1,63 @@ +/*************************************************************************** + * 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 "colorbutton.h" + +#include +#include +#include +#include +#include +#include + +ColorButton::ColorButton(QWidget *parent) : + QPushButton(parent), + _color(QColor()) //default is white; + { + +} + +void ColorButton::setColor(const QColor &color) { + _color = color; + update(); +} + +QColor ColorButton::color() const { + return _color; +} + +void ColorButton::paintEvent(QPaintEvent *event) { + QPushButton::paintEvent(event); + QPainter painter(this); + int border = QApplication::style()->pixelMetric(QStyle::PM_ButtonMargin); + painter.fillRect(rect().adjusted(border+1, border+1, -border-1, -border-1), QBrush(_color)); + QStyleOptionFrame option; + option.state = QStyle::State_Sunken; + option.rect = rect().adjusted(border, border, -border, -border); + //TODO: setBackground instead of the fillRect() + //painter.setBackground(_color); + //painter.setBackgroundMode(Qt::OpaqueMode); + //painter.fillRect(QApplication::style()->subElementRect(QStyle::SE_FrameContents, &option), QBrush(_color)); + //qDebug() << option << QApplication::style()->subElementRect(QStyle::SE_PushButtonContents, &option); + QApplication::style()->drawPrimitive(QStyle::PE_Frame, &option, &painter); + //painter.fillRect(QApplication::style()->subElementRect(QStyle::SE_FrameContents, &option), QBrush(_color)); + //border += QStyle::PM_DefaultFrameWidth; + //painter.fillRect(rect().adjusted(border, border, -border, -border), QBrush(_color)); +} diff --git a/src/uisupport/colorbutton.h b/src/uisupport/colorbutton.h new file mode 100644 index 00000000..83758587 --- /dev/null +++ b/src/uisupport/colorbutton.h @@ -0,0 +1,41 @@ +/*************************************************************************** + * 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 _COLORBUTTON_H_ +#define _COLORBUTTON_H_ + +#include + +class ColorButton : public QPushButton { + Q_OBJECT + + public: + ColorButton(QWidget *parent = 0); + void setColor(const QColor &color); + QColor color() const; + + protected: + void paintEvent(QPaintEvent *event); + + private: + QColor _color; +}; + +#endif diff --git a/src/uisupport/nickview.cpp b/src/uisupport/nickview.cpp index 1a97514f..3153ba8b 100644 --- a/src/uisupport/nickview.cpp +++ b/src/uisupport/nickview.cpp @@ -81,6 +81,8 @@ BufferInfo NickView::bufferInfoFromModelIndex(const QModelIndex & index) { void NickView::showContextMenu(const QPoint & pos ) { QModelIndex index = indexAt(pos); + if(index.data(NetworkModel::ItemTypeRole) != NetworkModel::IrcUserItemType) return; + QString nick = nickFromModelIndex(index); QMenu nickContextMenu(this); @@ -98,8 +100,10 @@ void NickView::showContextMenu(const QPoint & pos ) { QAction *deVoiceAction = modeMenu->addAction(tr("Devoice %1").arg(nick)); QMenu *kickBanMenu = nickContextMenu.addMenu(tr("Kick/Ban")); + //TODO: add kick message from network identity (kick reason) QAction *kickAction = kickBanMenu->addAction(tr("Kick %1").arg(nick)); QAction *kickBanAction = kickBanMenu->addAction(tr("Kickban %1").arg(nick)); + kickBanMenu->setEnabled(false); QAction *ignoreAction = nickContextMenu.addAction(tr("Ignore")); ignoreAction->setEnabled(false); diff --git a/src/uisupport/uisupport.pri b/src/uisupport/uisupport.pri index 984822eb..6e68378b 100644 --- a/src/uisupport/uisupport.pri +++ b/src/uisupport/uisupport.pri @@ -1,8 +1,8 @@ DEPMOD = common client QT_MOD = core gui network -SRCS += bufferview.cpp bufferviewfilter.cpp nickviewfilter.cpp inputline.cpp nickview.cpp settingspage.cpp tabcompleter.cpp uisettings.cpp uistyle.cpp uistylesettings.cpp -HDRS += bufferview.h bufferviewfilter.h nickviewfilter.h inputline.h nickview.h settingspage.h tabcompleter.h uisettings.h uistyle.h uistylesettings.h +SRCS += bufferview.cpp bufferviewfilter.cpp colorbutton.cpp nickviewfilter.cpp inputline.cpp nickview.cpp settingspage.cpp tabcompleter.cpp uisettings.cpp uistyle.cpp uistylesettings.cpp +HDRS += bufferview.h bufferviewfilter.h colorbutton.h nickviewfilter.h inputline.h nickview.h settingspage.h tabcompleter.h uisettings.h uistyle.h uistylesettings.h FORMNAMES = diff --git a/version.inc b/version.inc index 2a71fa91..a7cabe9c 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-pre"; quasselDate = "2008-02-14"; - quasselBuild = 520; + quasselBuild = 522; //! Minimum client build number the core needs clientBuildNeeded = 519;