[SCM] ktp-text-ui packaging branch, master, updated. debian/15.12.1-1-1918-gdf4b0ec

Maximiliano Curia maxy at moszumanska.debian.org
Sat May 28 00:23:36 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-text-ui.git;a=commitdiff;h=d641de9

The following commit has been merged in the master branch:
commit d641de956eafa0208749d785c0c2fc4f374ecaef
Author: David Edmundson <kde at davidedmundson.co.uk>
Date:   Fri Mar 15 01:40:39 2013 +0000

    Allow seperate config for group chats
    
    Split AppearanceConfig into tabs
    Make showPresenceMode a boolean now that we have separate configgroups for single and group modes
    
    REVIEW: 108571
    BUG: 295843
---
 app/chat-window.cpp                                |   5 +-
 config/CMakeLists.txt                              |   2 +-
 ...arance-config.cpp => appearance-config-tab.cpp} | 269 +++++++++----------
 ...appearance-config.h => appearance-config-tab.h} |  49 ++--
 config/appearance-config.cpp                       | 287 ++-------------------
 config/appearance-config.h                         |  29 +--
 config/appearance-config.ui                        |  33 +--
 lib/adium-theme-view.cpp                           |  22 +-
 lib/adium-theme-view.h                             |  12 +-
 lib/chat-widget.cpp                                |   3 +-
 10 files changed, 215 insertions(+), 496 deletions(-)

diff --git a/app/chat-window.cpp b/app/chat-window.cpp
index 9a014e3..01fe5a0 100644
--- a/app/chat-window.cpp
+++ b/app/chat-window.cpp
@@ -38,6 +38,7 @@
 #include <KColorScheme>
 #include <KTabBar>
 #include <KSettings/Dialog>
+#include <kcmodulecontainer.h>
 #include <KNotification>
 #include <KNotifyConfigWidget>
 #include <KMenuBar>
@@ -425,7 +426,7 @@ void ChatWindow::onNextTabActionTriggered()
     if (m_tabWidget->count() == 1) {
         return;
     }
-    
+
     int currIndex = m_tabWidget->currentIndex();
 
     if (currIndex < m_tabWidget->count()-1) {
@@ -440,7 +441,7 @@ void ChatWindow::onPreviousTabActionTriggered()
     if (m_tabWidget->count() == 1) {
         return;
     }
-    
+
     int currIndex = m_tabWidget->currentIndex();
 
     if (currIndex > 0) {
diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt
index 24e9e80..a8e7cd9 100644
--- a/config/CMakeLists.txt
+++ b/config/CMakeLists.txt
@@ -1,6 +1,6 @@
 include_directories(${CMAKE_SOURCE_DIR}/lib)
 
-set(kcm_ktp_chat_appearance_SRCS appearance-config.cpp)
+set(kcm_ktp_chat_appearance_SRCS appearance-config-tab.cpp appearance-config.cpp)
 set(kcm_ktp_chat_behavior_SRCS behavior-config.cpp)
 set(kcm_ktp_chat_messages_SRCS messages-config.cpp)
 
diff --git a/config/appearance-config.cpp b/config/appearance-config-tab.cpp
similarity index 65%
copy from config/appearance-config.cpp
copy to config/appearance-config-tab.cpp
index 247b47d..fadfd47 100644
--- a/config/appearance-config.cpp
+++ b/config/appearance-config-tab.cpp
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011 by David Edmundson <kde at davidedmundson.co.uk>      *
+ *   Copyright (C) 2013 by Huba Nagy <12huba at gmail.com>                    *
  *                                                                         *
  *   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  *
@@ -17,7 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include "appearance-config.h"
+#include "appearance-config-tab.h"
 #include "ui_appearance-config.h"
 
 #include <KTp/ChatWindowStyleManager>
@@ -25,18 +25,14 @@
 #include <KTp/AdiumThemeHeaderInfo>
 #include <KTp/AdiumThemeContentInfo>
 #include <KTp/AdiumThemeStatusInfo>
+#include <KMessageBox>
 
-#include <KDebug>
-#include <KLocalizedString>
-#include <KPluginFactory>
-
-K_PLUGIN_FACTORY(KCMTelepathyChatAppearanceConfigFactory, registerPlugin<AppearanceConfig>();)
-K_EXPORT_PLUGIN(KCMTelepathyChatAppearanceConfigFactory("ktp_chat_appearance", "kcm_ktp_chat_appearance"))
-
-AppearanceConfig::AppearanceConfig(QWidget *parent, const QVariantList& args)
-    : KCModule(KCMTelepathyChatAppearanceConfigFactory::componentData(), parent, args),
-      ui(new Ui::ChatWindowConfig)
+AppearanceConfigTab::AppearanceConfigTab(QWidget *parent, TabMode mode)
+    : QWidget(parent),
+    ui(new Ui::ChatWindowConfig)
 {
+    m_groupChat = mode == GroupChat;
+
     ui->setupUi(this);
 
     m_demoChatHeader.setChatName(i18n("A demo chat"));
@@ -44,13 +40,13 @@ AppearanceConfig::AppearanceConfig(QWidget *parent, const QVariantList& args)
     m_demoChatHeader.setTimeOpened(QDateTime::currentDateTime());
     m_demoChatHeader.setDestinationName(i18nc("Example email", "ted at example.com"));
     m_demoChatHeader.setDestinationDisplayName(i18nc("Example name", "Ted"));
-    m_demoChatHeader.setGroupChat(false);
+    m_demoChatHeader.setGroupChat(m_groupChat);
 
     ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
     connect(manager, SIGNAL(loadStylesFinished()), SLOT(onStylesLoaded()));
 
     //loading theme settings.
-    load();
+    loadTab();
 
     connect(ui->chatView, SIGNAL(loadFinished(bool)), SLOT(sendDemoMessages()));
     connect(ui->styleComboBox, SIGNAL(activated(int)), SLOT(onStyleSelected(int)));
@@ -59,15 +55,17 @@ AppearanceConfig::AppearanceConfig(QWidget *parent, const QVariantList& args)
     connect(ui->customFontBox, SIGNAL(clicked(bool)), SLOT(onFontGroupChanged(bool)));
     connect(ui->fontFamily, SIGNAL(currentFontChanged(QFont)), SLOT(onFontFamilyChanged(QFont)));
     connect(ui->fontSize, SIGNAL(valueChanged(int)), SLOT(onFontSizeChanged(int)));
-    connect(ui->showPresenceModeComboBox, SIGNAL(activated(int)), SLOT(onShowPresenceModeSelected(int)));
+    connect(ui->showPresenceCheckBox, SIGNAL(stateChanged(int)), SLOT(onShowPresenceChangesChanged(int)));
+
+    sendDemoMessages();
 }
 
-AppearanceConfig::~AppearanceConfig()
+AppearanceConfigTab::~AppearanceConfigTab()
 {
     delete ui;
 }
 
-void AppearanceConfig::changeEvent(QEvent *e)
+void AppearanceConfigTab::changeEvent(QEvent* e)
 {
     QWidget::changeEvent(e);
     switch (e->type()) {
@@ -79,43 +77,47 @@ void AppearanceConfig::changeEvent(QEvent *e)
     }
 }
 
-void AppearanceConfig::onStylesLoaded()
+void AppearanceConfigTab::onFontFamilyChanged(const QFont &fontFamily)
 {
-    kDebug();
-
-    QMap<QString, QString> styles = ChatWindowStyleManager::self()->getAvailableStyles();
-    ChatWindowStyle *currentStyle = ui->chatView->chatStyle();
+    ui->chatView->setFontFamily(fontFamily.family());
+    ui->chatView->initialise(m_demoChatHeader);
+    tabChanged();
+}
 
-    ui->styleComboBox->clear();
-    QMap<QString, QString>::const_iterator i = styles.constBegin();
-    while (i != styles.constEnd()) {
-        ui->styleComboBox->addItem(i.value(), i.key());
+void AppearanceConfigTab::onFontGroupChanged(bool useCustomFont)
+{
+    ui->chatView->setUseCustomFont(useCustomFont);
+    ui->chatView->initialise(m_demoChatHeader);
+    tabChanged();
+}
 
-        if (i.key() == currentStyle->id()) {
-            ui->styleComboBox->setCurrentItem(i.value());
-        }
+void AppearanceConfigTab::onFontSizeChanged(int fontSize)
+{
+    ui->chatView->setFontSize(fontSize);
+    ui->chatView->initialise(m_demoChatHeader);
+    tabChanged();
+}
 
-        ++i;
+void AppearanceConfigTab::onShowPresenceChangesChanged(int state)
+{
+    if (state == Qt::Checked) {
+        ui->chatView->setShowPresenceChanges(true);
+    } else {
+        ui->chatView->setShowPresenceChanges(false);
     }
-
-    //ui->styleComboBox->setCurrentItem(currentStyle->getStyleName());
-
-    updateVariantsList();
-    //FIXME call onStyleSelected
+    ui->chatView->initialise(m_demoChatHeader);
+    tabChanged();
 }
 
-void AppearanceConfig::updateVariantsList()
+void AppearanceConfigTab::onShowHeaderChanged(bool showHeader)
 {
-    kDebug();
-    QHash<QString, QString> variants = ui->chatView->chatStyle()->getVariants();
-    ui->variantComboBox->clear();
-    ui->variantComboBox->addItems(variants.keys());
-    ui->variantComboBox->setCurrentItem(ui->chatView->variantName());
+    ui->chatView->setHeaderDisplayed(showHeader);
+    ui->chatView->initialise(m_demoChatHeader);
+    tabChanged();
 }
 
-void AppearanceConfig::onStyleSelected(int index)
+void AppearanceConfigTab::onStyleSelected(int index)
 {
-    kDebug();
     //load the style.
     QString styleId = ui->styleComboBox->itemData(index).toString();
 
@@ -127,69 +129,53 @@ void AppearanceConfig::onStyleSelected(int index)
         ui->showHeader->setEnabled(style->hasHeader());
         ui->chatView->initialise(m_demoChatHeader);
     }
-    changed();
-}
 
-void AppearanceConfig::onVariantSelected(const QString &variant)
-{
-    kDebug();
-    ui->chatView->setVariant(variant);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
+    tabChanged();
 }
 
-void AppearanceConfig::onShowHeaderChanged(bool showHeader)
+void AppearanceConfigTab::onStylesLoaded()
 {
-    ui->chatView->setHeaderDisplayed(showHeader);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
+    QMap<QString, QString> styles = ChatWindowStyleManager::self()->getAvailableStyles();
+    ChatWindowStyle *currentStyle = ui->chatView->chatStyle();
 
-void AppearanceConfig::onFontGroupChanged(bool useCustomFont)
-{
-    kDebug();
-    ui->chatView->setUseCustomFont(useCustomFont);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
+    ui->styleComboBox->clear();
+    QMap<QString, QString>::const_iterator i = styles.constBegin();
+    while (i != styles.constEnd()) {
+        ui->styleComboBox->addItem(i.value(), i.key());
 
-void AppearanceConfig::onFontFamilyChanged(QFont fontFamily)
-{
-    kDebug() << fontFamily.family();
-    ui->chatView->setFontFamily(fontFamily.family());
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
+        if (i.key() == currentStyle->id()) {
+            ui->styleComboBox->setCurrentItem(i.value());
+        }
 
-void AppearanceConfig::onFontSizeChanged(int fontSize)
-{
-    kDebug() << fontSize;
-    ui->chatView->setFontSize(fontSize);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
+        ++i;
+    }
+
+    //ui->styleComboBox->setCurrentItem(currentStyle->getStyleName());
+
+    updateVariantsList();
+    //FIXME call onStyleSelected
 }
 
-void AppearanceConfig::onShowPresenceModeSelected(int showPresenceMode)
+void AppearanceConfigTab::onVariantSelected(const QString &variant)
 {
-    kDebug();
-    ui->chatView->setShowPresenceMode(static_cast<AdiumThemeView::ShowPresenceMode>(showPresenceMode));
+    ui->chatView->setVariant(variant);
     ui->chatView->initialise(m_demoChatHeader);
-    changed();
+    tabChanged();
 }
 
-void AppearanceConfig::sendDemoMessages()
+void AppearanceConfigTab::sendDemoMessages()
 {
     //add a fake message
     AdiumThemeContentInfo message(AdiumThemeMessageInfo::HistoryRemoteToLocal);
     message.setMessage(i18nc("Example message in preview conversation","Ok!"));
     message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
-    message.setService(i18n("Jabber"));
+    message.setService(i18nc("XMPP Protocol name" , "Jabber"));
     message.setTime(QDateTime::currentDateTime());
     ui->chatView->addContentMessage(message);
 
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::HistoryRemoteToLocal);
-    message.setMessage(i18n("Bye Bye"));
+    message.setMessage(i18nc("Example message in preview conversation","Bye Bye"));
     message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
     message.setService(i18n("Jabber"));
@@ -197,7 +183,7 @@ void AppearanceConfig::sendDemoMessages()
     ui->chatView->addContentMessage(message);
 
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::HistoryLocalToRemote);
-    message.setMessage(i18n("Have fun!"));
+    message.setMessage(i18nc("Example message in preview conversation","Have fun!"));
     message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Ted Example"));
     message.setService(i18n("Jabber"));
@@ -205,7 +191,7 @@ void AppearanceConfig::sendDemoMessages()
     ui->chatView->addContentMessage(message);
 
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::HistoryLocalToRemote);
-    message.setMessage(i18n("cya"));
+    message.setMessage(i18nc("Example message in preview conversation","cya"));
     message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Ted Example"));
     message.setService(i18n("Jabber"));
@@ -218,26 +204,24 @@ void AppearanceConfig::sendDemoMessages()
     statusMessage.setService(i18n("Jabber"));
     ui->chatView->addStatusMessage(statusMessage);
 
-    if (ui->chatView->showPresenceMode() != AdiumThemeView::Never) {
-        statusMessage = AdiumThemeStatusInfo(true);
-        statusMessage.setMessage(i18n("Ted Example has left the chat.")); //FIXME sync this with chat text logic.
-        statusMessage.setTime(QDateTime::currentDateTime());
-        statusMessage.setService(i18n("Jabber"));
-        statusMessage.setStatus(QLatin1String("away"));
-        ui->chatView->addStatusMessage(statusMessage);
-    }
+    statusMessage = AdiumThemeStatusInfo(true);
+    statusMessage.setMessage(i18nc("Example message in preview conversation","Ted Example has left the chat.")); //FIXME sync this with chat text logic.
+    statusMessage.setTime(QDateTime::currentDateTime());
+    statusMessage.setService(i18n("Jabber"));
+    statusMessage.setStatus(QLatin1String("away"));
+    ui->chatView->addStatusMessage(statusMessage);
 
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::RemoteToLocal);
-    message.setMessage(i18nc("Example message", "Hello Ted"));
+    message.setMessage(i18nc("Example message in preview conversation","Hello Ted"));
     message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
     message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
     message.appendMessageClass(QLatin1String("mention"));
+    message.setTime(QDateTime::currentDateTime());
     ui->chatView->addContentMessage(message);
 
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::RemoteToLocal);
-    message.setMessage(i18n("What's up?"));
+    message.setMessage(i18nc("Example message in preview conversation","What's up?"));
     message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
     message.setService(i18n("Jabber"));
@@ -245,7 +229,7 @@ void AppearanceConfig::sendDemoMessages()
     ui->chatView->addContentMessage(message);
 
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::LocalToRemote);
-    message.setMessage(i18n("Check out which cool adium themes work "
+    message.setMessage(i18nc("Example message in preview conversation","Check out which cool adium themes work "
                             "<a href=\"http://community.kde.org/KTp/Components/Chat_Window/Themes\">"
                             "here</a>!"));
     message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
@@ -254,24 +238,34 @@ void AppearanceConfig::sendDemoMessages()
     message.setTime(QDateTime::currentDateTime());
     ui->chatView->addContentMessage(message);
 
+    if ( m_groupChat == true) {
+        message = AdiumThemeContentInfo(AdiumThemeMessageInfo::RemoteToLocal);
+        message.setMessage(i18nc("Example message in preview conversation","Hello"));
+        message.setSenderDisplayName(i18nc("Example email", "bob at example.com"));
+        message.setSenderScreenName(i18nc("Example name", "Bob Example"));
+        message.setService(i18n("Jabber"));
+        message.setTime(QDateTime::currentDateTime());
+        ui->chatView->addContentMessage(message);
+    }
+
     message = AdiumThemeContentInfo(AdiumThemeMessageInfo::LocalToRemote);
-    message.setMessage(i18n("A different example message"));
+    message.setMessage(i18nc("Example message in preview conversation","A different example message"));
     message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
     message.setSenderScreenName(i18nc("Example name", "Ted Example"));
     message.setService(i18n("Jabber"));
     message.setTime(QDateTime::currentDateTime());
     ui->chatView->addContentMessage(message);
 
-    if (ui->chatView->showPresenceMode() != AdiumThemeView::Never) {
+    if (ui->chatView->showPresenceChanges()) {
         statusMessage = AdiumThemeStatusInfo();
-        statusMessage.setMessage(i18n("Ted Example is now Away.")); //FIXME sync this with chat text logic.
+        statusMessage.setMessage(i18nc("Example message in preview conversation","Ted Example is now Away.")); //FIXME sync this with chat text logic.
         statusMessage.setTime(QDateTime::currentDateTime());
         statusMessage.setService(i18n("Jabber"));
         statusMessage.setStatus(QLatin1String("away"));
         ui->chatView->addStatusMessage(statusMessage);
 
         statusMessage = AdiumThemeStatusInfo();
-        statusMessage.setMessage(i18n("Ted Example has left the chat.")); //FIXME sync this with chat text logic.
+        statusMessage.setMessage(i18nc("Example message in preview conversations","Ted Example has left the chat.")); //FIXME sync this with chat text logic.
         statusMessage.setTime(QDateTime::currentDateTime());
         statusMessage.setService(i18n("Jabber"));
         statusMessage.setStatus(QLatin1String("away"));
@@ -279,53 +273,66 @@ void AppearanceConfig::sendDemoMessages()
     }
 }
 
-void AppearanceConfig::defaults()
+void AppearanceConfigTab::updateVariantsList()
 {
-    ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
-    manager->loadStyles();
+    QHash<QString, QString> variants = ui->chatView->chatStyle()->getVariants();
+    ui->variantComboBox->clear();
+    ui->variantComboBox->addItems(variants.keys());
+    ui->variantComboBox->setCurrentItem(ui->chatView->variantName());
+}
 
-    onVariantSelected(QLatin1String("renkoo.AdiumMessageStyle"));
-    onStyleSelected(0);
-    ui->showHeader->setChecked(false);
-    ui->customFontBox->setChecked(false);
-    ui->chatView->setUseCustomFont(false);
-    ui->fontFamily->setCurrentFont(KGlobalSettings::generalFont());
-    ui->fontSize->setValue(QWebSettings::DefaultFontSize);
-    onShowPresenceModeSelected(static_cast<int>(AdiumThemeView::Always));
+void AppearanceConfigTab::saveTab(KConfigGroup appearanceConfigGroup)
+{
+    appearanceConfigGroup.writeEntry(QLatin1String("styleName"), ui->styleComboBox->itemData(ui->styleComboBox->currentIndex()).toString());
+    appearanceConfigGroup.writeEntry(QLatin1String("styleVariant"), ui->variantComboBox->currentText());
+    appearanceConfigGroup.writeEntry(QLatin1String("displayHeader"), ui->showHeader->isChecked());
+    appearanceConfigGroup.writeEntry(QLatin1String("useCustomFont"), ui->customFontBox->isChecked());
+    appearanceConfigGroup.writeEntry(QLatin1String("fontFamily"), ui->fontFamily->currentFont().family());
+    appearanceConfigGroup.writeEntry(QLatin1String("fontSize"), ui->fontSize->value());
+    appearanceConfigGroup.writeEntry(QLatin1String("showPresenceChanges"), ui->showPresenceCheckBox->checkState() == Qt::Checked ? true : false);
+
+    appearanceConfigGroup.sync();
 }
 
-void AppearanceConfig::load()
+void AppearanceConfigTab::loadTab()
 {
     ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
     manager->loadStyles();
 
-    ui->chatView->load(AdiumThemeView::SingleUserChat);
+    AdiumThemeView::ChatType chatType;
+
+    if( m_groupChat ) {
+        chatType = AdiumThemeView::GroupChat;
+    } else {
+        chatType = AdiumThemeView::SingleUserChat;
+    }
+
+    ui->chatView->load(chatType);
     ui->chatView->initialise(m_demoChatHeader);
 
     ui->showHeader->setChecked(ui->chatView->isHeaderDisplayed());
     ui->customFontBox->setChecked(ui->chatView->isCustomFont());
     ui->fontFamily->setCurrentFont(QFont(ui->chatView->fontFamily()));
     ui->fontSize->setValue(ui->chatView->fontSize());
-    ui->showPresenceModeComboBox->setCurrentIndex(ui->chatView->showPresenceMode());
+    ui->showPresenceCheckBox->setChecked(ui->chatView->showPresenceChanges());
 }
 
-void AppearanceConfig::save()
+void AppearanceConfigTab::defaultTab()
 {
-    kDebug();
-
-    KSharedConfigPtr config = KSharedConfig::openConfig(QLatin1String("ktelepathyrc"));
-    KConfigGroup appearanceConfig = config->group("Appearance");
-
-    appearanceConfig.writeEntry("styleName", ui->styleComboBox->itemData(ui->styleComboBox->currentIndex()).toString());
-    appearanceConfig.writeEntry("styleVariant", ui->variantComboBox->currentText());
-    appearanceConfig.writeEntry("displayHeader", ui->showHeader->isChecked());
-    appearanceConfig.writeEntry("useCustomFont", ui->customFontBox->isChecked());
-    appearanceConfig.writeEntry("fontFamily", ui->fontFamily->currentFont().family());
-    appearanceConfig.writeEntry("fontSize", ui->fontSize->value());
-    appearanceConfig.writeEntry("showPresenceMode", ui->showPresenceModeComboBox->currentIndex());
+    ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
+    manager->loadStyles();
 
-    appearanceConfig.sync();
-    config->sync();
+    if (m_groupChat) {
+        onVariantSelected(QLatin1String("SimKete.AdiumMessageStyle"));
+    } else {
+        onVariantSelected(QLatin1String("renkoo.AdiumMessageStyle"));
+    }
 
-    KCModule::save();
+    onStyleSelected(0);
+    ui->showHeader->setChecked(false);
+    ui->customFontBox->setChecked(false);
+    ui->chatView->setUseCustomFont(false);
+    ui->fontFamily->setCurrentFont(KGlobalSettings::generalFont());
+    ui->fontSize->setValue(QWebSettings::DefaultFontSize);
+    ui->showPresenceCheckBox->setChecked(true);
 }
diff --git a/config/appearance-config.h b/config/appearance-config-tab.h
similarity index 65%
copy from config/appearance-config.h
copy to config/appearance-config-tab.h
index 48bd67a..9f3022f 100644
--- a/config/appearance-config.h
+++ b/config/appearance-config-tab.h
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2011 by David Edmundson <kde at davidedmundson.co.uk>      *
+ *   Copyright (C) 2013 by Huba Nagy <12huba at gmail.com>                    *
  *                                                                         *
  *   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  *
@@ -17,32 +17,39 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#ifndef APPEARANCE_CONFIG_H
-#define APPEARANCE_CONFIG_H
+#ifndef APPEARANCE_CONFIG_TAB_H
+#define APPEARANCE_CONFIG_TAB_H
 
 #include "adium-theme-header-info.h"
 
-#include <KCModule>
+#include <QWidget>
+#include <KConfigGroup>
 
 namespace Ui
 {
   class ChatWindowConfig;
 }
 
-
-class AppearanceConfig : public KCModule
+class AppearanceConfigTab : public QWidget
 {
     Q_OBJECT
 
 public:
-    explicit AppearanceConfig(QWidget *parent = 0,
-                              const QVariantList& args = QVariantList());
-    ~AppearanceConfig();
+    enum TabMode {
+        NormalChat,
+        GroupChat
+    };
+
+    explicit AppearanceConfigTab(QWidget *parent = 0, TabMode mode = NormalChat);
+
+    virtual ~AppearanceConfigTab();
 
-public Q_SLOTS:
-    virtual void save();
-    virtual void load();
-    virtual void defaults();
+    void saveTab(KConfigGroup appearanceConfigGroup);
+    void loadTab();
+    void defaultTab();
+
+Q_SIGNALS:
+    void tabChanged();
 
 protected:
     void changeEvent(QEvent *e);
@@ -53,17 +60,17 @@ private Q_SLOTS:
     void updateVariantsList();
 
     void onStyleSelected(int index);
-    void onVariantSelected(const QString&);
-    void onShowHeaderChanged(bool);
-    void onFontGroupChanged(bool);
-    void onFontFamilyChanged(QFont);
-    void onFontSizeChanged(int);
-    void onShowPresenceModeSelected(int);
+    void onVariantSelected(const QString &variant);
+    void onShowHeaderChanged(bool showHead);
+    void onFontGroupChanged(bool useCustomFont);
+    void onFontFamilyChanged(const QFont &font);
+    void onFontSizeChanged(int fontSize);
+    void onShowPresenceChangesChanged(int stateChanged);
 
 private:
     Ui::ChatWindowConfig *ui;
     AdiumThemeHeaderInfo m_demoChatHeader;
-
+    bool m_groupChat;
 };
 
-#endif // APPEARANCE_CONFIG_H
+#endif // APPEARANCE_CONFIG_TAB_H
diff --git a/config/appearance-config.cpp b/config/appearance-config.cpp
index 247b47d..f7ebd40 100644
--- a/config/appearance-config.cpp
+++ b/config/appearance-config.cpp
@@ -19,7 +19,9 @@
 
 #include "appearance-config.h"
 #include "ui_appearance-config.h"
+#include "appearance-config-tab.h"
 
+#include <KTabWidget>
 #include <KTp/ChatWindowStyleManager>
 #include <KTp/ChatWindowStyle>
 #include <KTp/AdiumThemeHeaderInfo>
@@ -33,298 +35,53 @@
 K_PLUGIN_FACTORY(KCMTelepathyChatAppearanceConfigFactory, registerPlugin<AppearanceConfig>();)
 K_EXPORT_PLUGIN(KCMTelepathyChatAppearanceConfigFactory("ktp_chat_appearance", "kcm_ktp_chat_appearance"))
 
-AppearanceConfig::AppearanceConfig(QWidget *parent, const QVariantList& args)
-    : KCModule(KCMTelepathyChatAppearanceConfigFactory::componentData(), parent, args),
-      ui(new Ui::ChatWindowConfig)
+AppearanceConfig::AppearanceConfig(QWidget *parent, const QVariantList &args)
+    : KCModule(KCMTelepathyChatAppearanceConfigFactory::componentData(), parent, args)
 {
-    ui->setupUi(this);
+    QVBoxLayout *topLayout = new QVBoxLayout(this);
+    topLayout->setMargin(0);
+    topLayout->setSpacing(KDialog::spacingHint());
 
-    m_demoChatHeader.setChatName(i18n("A demo chat"));
-    m_demoChatHeader.setSourceName(i18n("Jabber"));
-    m_demoChatHeader.setTimeOpened(QDateTime::currentDateTime());
-    m_demoChatHeader.setDestinationName(i18nc("Example email", "ted at example.com"));
-    m_demoChatHeader.setDestinationDisplayName(i18nc("Example name", "Ted"));
-    m_demoChatHeader.setGroupChat(false);
+    KTabWidget *tabWidget = new KTabWidget(this);
 
-    ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
-    connect(manager, SIGNAL(loadStylesFinished()), SLOT(onStylesLoaded()));
+    m_singleTab = new AppearanceConfigTab(this, AppearanceConfigTab::NormalChat);
+    tabWidget->addTab(m_singleTab, KIcon(), i18nc("@title:tab", "Normal Chat"));
+    connect(m_singleTab, SIGNAL(tabChanged()), this, SLOT(changed()));
 
-    //loading theme settings.
-    load();
+    m_groupTab = new AppearanceConfigTab(this, AppearanceConfigTab::GroupChat);
+    tabWidget->addTab(m_groupTab, KIcon(), i18nc("@title:tab", "Group Chat"));
+    connect(m_groupTab, SIGNAL(tabChanged()), this, SLOT(changed()));
 
-    connect(ui->chatView, SIGNAL(loadFinished(bool)), SLOT(sendDemoMessages()));
-    connect(ui->styleComboBox, SIGNAL(activated(int)), SLOT(onStyleSelected(int)));
-    connect(ui->variantComboBox, SIGNAL(activated(QString)), SLOT(onVariantSelected(QString)));
-    connect(ui->showHeader, SIGNAL(clicked(bool)), SLOT(onShowHeaderChanged(bool)));
-    connect(ui->customFontBox, SIGNAL(clicked(bool)), SLOT(onFontGroupChanged(bool)));
-    connect(ui->fontFamily, SIGNAL(currentFontChanged(QFont)), SLOT(onFontFamilyChanged(QFont)));
-    connect(ui->fontSize, SIGNAL(valueChanged(int)), SLOT(onFontSizeChanged(int)));
-    connect(ui->showPresenceModeComboBox, SIGNAL(activated(int)), SLOT(onShowPresenceModeSelected(int)));
+    topLayout->addWidget(tabWidget, 0, 0);
 }
 
 AppearanceConfig::~AppearanceConfig()
 {
-    delete ui;
-}
-
-void AppearanceConfig::changeEvent(QEvent *e)
-{
-    QWidget::changeEvent(e);
-    switch (e->type()) {
-    case QEvent::LanguageChange:
-        ui->retranslateUi(this);
-        break;
-    default:
-        break;
-    }
-}
-
-void AppearanceConfig::onStylesLoaded()
-{
-    kDebug();
-
-    QMap<QString, QString> styles = ChatWindowStyleManager::self()->getAvailableStyles();
-    ChatWindowStyle *currentStyle = ui->chatView->chatStyle();
 
-    ui->styleComboBox->clear();
-    QMap<QString, QString>::const_iterator i = styles.constBegin();
-    while (i != styles.constEnd()) {
-        ui->styleComboBox->addItem(i.value(), i.key());
-
-        if (i.key() == currentStyle->id()) {
-            ui->styleComboBox->setCurrentItem(i.value());
-        }
-
-        ++i;
-    }
-
-    //ui->styleComboBox->setCurrentItem(currentStyle->getStyleName());
-
-    updateVariantsList();
-    //FIXME call onStyleSelected
-}
-
-void AppearanceConfig::updateVariantsList()
-{
-    kDebug();
-    QHash<QString, QString> variants = ui->chatView->chatStyle()->getVariants();
-    ui->variantComboBox->clear();
-    ui->variantComboBox->addItems(variants.keys());
-    ui->variantComboBox->setCurrentItem(ui->chatView->variantName());
-}
-
-void AppearanceConfig::onStyleSelected(int index)
-{
-    kDebug();
-    //load the style.
-    QString styleId = ui->styleComboBox->itemData(index).toString();
-
-    ChatWindowStyle *style = ChatWindowStyleManager::self()->getValidStyleFromPool(styleId);
-
-    if (style) {
-        ui->chatView->setChatStyle(style);
-        updateVariantsList();
-        ui->showHeader->setEnabled(style->hasHeader());
-        ui->chatView->initialise(m_demoChatHeader);
-    }
-    changed();
-}
-
-void AppearanceConfig::onVariantSelected(const QString &variant)
-{
-    kDebug();
-    ui->chatView->setVariant(variant);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
-
-void AppearanceConfig::onShowHeaderChanged(bool showHeader)
-{
-    ui->chatView->setHeaderDisplayed(showHeader);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
-
-void AppearanceConfig::onFontGroupChanged(bool useCustomFont)
-{
-    kDebug();
-    ui->chatView->setUseCustomFont(useCustomFont);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
-
-void AppearanceConfig::onFontFamilyChanged(QFont fontFamily)
-{
-    kDebug() << fontFamily.family();
-    ui->chatView->setFontFamily(fontFamily.family());
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
-
-void AppearanceConfig::onFontSizeChanged(int fontSize)
-{
-    kDebug() << fontSize;
-    ui->chatView->setFontSize(fontSize);
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
-
-void AppearanceConfig::onShowPresenceModeSelected(int showPresenceMode)
-{
-    kDebug();
-    ui->chatView->setShowPresenceMode(static_cast<AdiumThemeView::ShowPresenceMode>(showPresenceMode));
-    ui->chatView->initialise(m_demoChatHeader);
-    changed();
-}
-
-void AppearanceConfig::sendDemoMessages()
-{
-    //add a fake message
-    AdiumThemeContentInfo message(AdiumThemeMessageInfo::HistoryRemoteToLocal);
-    message.setMessage(i18nc("Example message in preview conversation","Ok!"));
-    message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::HistoryRemoteToLocal);
-    message.setMessage(i18n("Bye Bye"));
-    message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::HistoryLocalToRemote);
-    message.setMessage(i18n("Have fun!"));
-    message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Ted Example"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::HistoryLocalToRemote);
-    message.setMessage(i18n("cya"));
-    message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Ted Example"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    AdiumThemeStatusInfo statusMessage(true);
-    statusMessage.setMessage(i18nc("Example message", "Ted Example waves."));
-    statusMessage.setTime(QDateTime::currentDateTime());
-    statusMessage.setService(i18n("Jabber"));
-    ui->chatView->addStatusMessage(statusMessage);
-
-    if (ui->chatView->showPresenceMode() != AdiumThemeView::Never) {
-        statusMessage = AdiumThemeStatusInfo(true);
-        statusMessage.setMessage(i18n("Ted Example has left the chat.")); //FIXME sync this with chat text logic.
-        statusMessage.setTime(QDateTime::currentDateTime());
-        statusMessage.setService(i18n("Jabber"));
-        statusMessage.setStatus(QLatin1String("away"));
-        ui->chatView->addStatusMessage(statusMessage);
-    }
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::RemoteToLocal);
-    message.setMessage(i18nc("Example message", "Hello Ted"));
-    message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    message.appendMessageClass(QLatin1String("mention"));
-    ui->chatView->addContentMessage(message);
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::RemoteToLocal);
-    message.setMessage(i18n("What's up?"));
-    message.setSenderDisplayName(i18nc("Example email", "larry at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Larry Demo"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::LocalToRemote);
-    message.setMessage(i18n("Check out which cool adium themes work "
-                            "<a href=\"http://community.kde.org/KTp/Components/Chat_Window/Themes\">"
-                            "here</a>!"));
-    message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Ted Example"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    message = AdiumThemeContentInfo(AdiumThemeMessageInfo::LocalToRemote);
-    message.setMessage(i18n("A different example message"));
-    message.setSenderDisplayName(i18nc("Example email", "ted at example.com"));
-    message.setSenderScreenName(i18nc("Example name", "Ted Example"));
-    message.setService(i18n("Jabber"));
-    message.setTime(QDateTime::currentDateTime());
-    ui->chatView->addContentMessage(message);
-
-    if (ui->chatView->showPresenceMode() != AdiumThemeView::Never) {
-        statusMessage = AdiumThemeStatusInfo();
-        statusMessage.setMessage(i18n("Ted Example is now Away.")); //FIXME sync this with chat text logic.
-        statusMessage.setTime(QDateTime::currentDateTime());
-        statusMessage.setService(i18n("Jabber"));
-        statusMessage.setStatus(QLatin1String("away"));
-        ui->chatView->addStatusMessage(statusMessage);
-
-        statusMessage = AdiumThemeStatusInfo();
-        statusMessage.setMessage(i18n("Ted Example has left the chat.")); //FIXME sync this with chat text logic.
-        statusMessage.setTime(QDateTime::currentDateTime());
-        statusMessage.setService(i18n("Jabber"));
-        statusMessage.setStatus(QLatin1String("away"));
-        ui->chatView->addStatusMessage(statusMessage);
-    }
 }
 
 void AppearanceConfig::defaults()
 {
-    ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
-    manager->loadStyles();
-
-    onVariantSelected(QLatin1String("renkoo.AdiumMessageStyle"));
-    onStyleSelected(0);
-    ui->showHeader->setChecked(false);
-    ui->customFontBox->setChecked(false);
-    ui->chatView->setUseCustomFont(false);
-    ui->fontFamily->setCurrentFont(KGlobalSettings::generalFont());
-    ui->fontSize->setValue(QWebSettings::DefaultFontSize);
-    onShowPresenceModeSelected(static_cast<int>(AdiumThemeView::Always));
+    m_singleTab->defaultTab();
+    m_groupTab->defaultTab();
 }
 
 void AppearanceConfig::load()
 {
-    ChatWindowStyleManager *manager = ChatWindowStyleManager::self();
-    manager->loadStyles();
-
-    ui->chatView->load(AdiumThemeView::SingleUserChat);
-    ui->chatView->initialise(m_demoChatHeader);
-
-    ui->showHeader->setChecked(ui->chatView->isHeaderDisplayed());
-    ui->customFontBox->setChecked(ui->chatView->isCustomFont());
-    ui->fontFamily->setCurrentFont(QFont(ui->chatView->fontFamily()));
-    ui->fontSize->setValue(ui->chatView->fontSize());
-    ui->showPresenceModeComboBox->setCurrentIndex(ui->chatView->showPresenceMode());
+    m_singleTab->loadTab();
+    m_groupTab->loadTab();
 }
 
+
 void AppearanceConfig::save()
 {
     kDebug();
 
     KSharedConfigPtr config = KSharedConfig::openConfig(QLatin1String("ktelepathyrc"));
-    KConfigGroup appearanceConfig = config->group("Appearance");
 
-    appearanceConfig.writeEntry("styleName", ui->styleComboBox->itemData(ui->styleComboBox->currentIndex()).toString());
-    appearanceConfig.writeEntry("styleVariant", ui->variantComboBox->currentText());
-    appearanceConfig.writeEntry("displayHeader", ui->showHeader->isChecked());
-    appearanceConfig.writeEntry("useCustomFont", ui->customFontBox->isChecked());
-    appearanceConfig.writeEntry("fontFamily", ui->fontFamily->currentFont().family());
-    appearanceConfig.writeEntry("fontSize", ui->fontSize->value());
-    appearanceConfig.writeEntry("showPresenceMode", ui->showPresenceModeComboBox->currentIndex());
+    m_singleTab->saveTab(config->group("Appearance"));
+    m_groupTab->saveTab(config->group("GroupAppearance"));
 
-    appearanceConfig.sync();
     config->sync();
 
     KCModule::save();
diff --git a/config/appearance-config.h b/config/appearance-config.h
index 48bd67a..c0a1e69 100644
--- a/config/appearance-config.h
+++ b/config/appearance-config.h
@@ -21,22 +21,17 @@
 #define APPEARANCE_CONFIG_H
 
 #include "adium-theme-header-info.h"
+#include "appearance-config-tab.h"
 
 #include <KCModule>
 
-namespace Ui
-{
-  class ChatWindowConfig;
-}
-
-
 class AppearanceConfig : public KCModule
 {
     Q_OBJECT
 
 public:
     explicit AppearanceConfig(QWidget *parent = 0,
-                              const QVariantList& args = QVariantList());
+                              const QVariantList &args = QVariantList());
     ~AppearanceConfig();
 
 public Q_SLOTS:
@@ -45,24 +40,8 @@ public Q_SLOTS:
     virtual void defaults();
 
 protected:
-    void changeEvent(QEvent *e);
-
-private Q_SLOTS:
-    void sendDemoMessages();
-    void onStylesLoaded();
-    void updateVariantsList();
-
-    void onStyleSelected(int index);
-    void onVariantSelected(const QString&);
-    void onShowHeaderChanged(bool);
-    void onFontGroupChanged(bool);
-    void onFontFamilyChanged(QFont);
-    void onFontSizeChanged(int);
-    void onShowPresenceModeSelected(int);
-
-private:
-    Ui::ChatWindowConfig *ui;
-    AdiumThemeHeaderInfo m_demoChatHeader;
+    AppearanceConfigTab *m_singleTab;
+    AppearanceConfigTab *m_groupTab;
 
 };
 
diff --git a/config/appearance-config.ui b/config/appearance-config.ui
index a6d55a2..eed54cb 100644
--- a/config/appearance-config.ui
+++ b/config/appearance-config.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>666</width>
+    <width>732</width>
     <height>400</height>
    </rect>
   </property>
@@ -152,36 +152,11 @@
           </property>
          </widget>
         </item>
-        <item row="3" column="0">
-         <widget class="QLabel" name="presenceLabel">
-          <property name="text">
-           <string>Show presence changes:</string>
-          </property>
-         </widget>
-        </item>
         <item row="3" column="1">
-         <widget class="QComboBox" name="showPresenceModeComboBox">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
+         <widget class="QCheckBox" name="showPresenceCheckBox">
+          <property name="text">
+           <string>Show status changes</string>
           </property>
-          <item>
-           <property name="text">
-            <string>Always</string>
-           </property>
-          </item>
-          <item>
-           <property name="text">
-            <string>Never in group chats</string>
-           </property>
-          </item>
-          <item>
-           <property name="text">
-            <string>Never</string>
-           </property>
-          </item>
          </widget>
         </item>
        </layout>
diff --git a/lib/adium-theme-view.cpp b/lib/adium-theme-view.cpp
index f58beb6..9d1888f 100644
--- a/lib/adium-theme-view.cpp
+++ b/lib/adium-theme-view.cpp
@@ -77,22 +77,22 @@ void AdiumThemeView::load(ChatType chatType) {
 
     //determine the chat window style to use
     KSharedConfigPtr config = KSharedConfig::openConfig(QLatin1String("ktelepathyrc"));
-    KConfigGroup appearanceConfig = config->group("Appearance");
+    KConfigGroup appearanceConfig;
 
-    QString chatStyleName;
     if (chatType == AdiumThemeView::SingleUserChat) {
-        chatStyleName = appearanceConfig.readEntry("styleName", "renkoo.AdiumMessageStyle");
+        appearanceConfig = config->group("Appearance");
+        m_chatStyle = ChatWindowStyleManager::self()->getValidStyleFromPool(appearanceConfig.readEntry(QLatin1String("styleName"), "renkoo.AdiumMessageStyle"));
     } else {
-        chatStyleName = QLatin1String("SimKete.AdiumMessageStyle");
+        appearanceConfig = config->group("GroupAppearance");
+        m_chatStyle = ChatWindowStyleManager::self()->getValidStyleFromPool(appearanceConfig.readEntry(QLatin1String("styleName"), "SimKete.AdiumMessageStyle"));
     }
 
-    m_chatStyle = ChatWindowStyleManager::self()->getValidStyleFromPool(chatStyleName);
     if (m_chatStyle == 0 || !m_chatStyle->isValid()) {
         KMessageBox::error(this, i18n("Failed to load a valid theme. Your installation is broken. Check your kde path. "
                                       "Will now crash."));
     }
 
-    QString variant = appearanceConfig.readEntry("styleVariant");
+    QString variant = appearanceConfig.readEntry(QLatin1String("styleVariant"));
     if (!variant.isEmpty()) {
         m_variantName = variant;
         m_variantPath = m_chatStyle->getVariants().value(variant);
@@ -117,7 +117,7 @@ void AdiumThemeView::load(ChatType chatType) {
     m_fontFamily = appearanceConfig.readEntry("fontFamily", QWebSettings::globalSettings()->fontFamily(QWebSettings::StandardFont));
     m_fontSize = appearanceConfig.readEntry("fontSize", QWebSettings::globalSettings()->fontSize(QWebSettings::DefaultFontSize));
 
-    m_showPresenceMode = static_cast<AdiumThemeView::ShowPresenceMode>(appearanceConfig.readEntry("showPresenceMode", (int) AdiumThemeView::Always));
+    m_showPresenceChanges = appearanceConfig.readEntry("showPresenceChanges", true);
 }
 
 
@@ -316,15 +316,15 @@ bool AdiumThemeView::isCustomFont() const
     return m_useCustomFont;
 }
 
-void AdiumThemeView::setShowPresenceMode(ShowPresenceMode showPresenceMode)
+void AdiumThemeView::setShowPresenceChanges(bool showPresenceChanges)
 {
     kDebug();
-    m_showPresenceMode = showPresenceMode;
+    m_showPresenceChanges = showPresenceChanges;
 }
 
-AdiumThemeView::ShowPresenceMode AdiumThemeView::showPresenceMode() const
+bool AdiumThemeView::showPresenceChanges() const
 {
-    return m_showPresenceMode;
+    return m_showPresenceChanges;
 }
 
 bool AdiumThemeView::isHeaderDisplayed() const
diff --git a/lib/adium-theme-view.h b/lib/adium-theme-view.h
index 5775432..70618f6 100644
--- a/lib/adium-theme-view.h
+++ b/lib/adium-theme-view.h
@@ -59,12 +59,6 @@ public:
         ReplaceLastMessage
     };
 
-    enum ShowPresenceMode {
-        Always = 0,
-        NeverInGroupChats = 1,
-        Never = 2
-    };
-
     explicit AdiumThemeView(QWidget *parent = 0);
 
     /** Loads the Theme data*/
@@ -92,8 +86,8 @@ public:
     void setHeaderDisplayed(bool);
     /* .. font, backgrounds, everything else.*/
 
-    void setShowPresenceMode(ShowPresenceMode showPresenceMode);
-    ShowPresenceMode showPresenceMode() const;
+    void setShowPresenceChanges(bool showPresenceChanges);
+    bool showPresenceChanges() const;
 
     void clear();
 
@@ -117,7 +111,7 @@ private:
     bool m_useCustomFont;
     QString m_fontFamily;
     int m_fontSize;
-    ShowPresenceMode m_showPresenceMode;
+    bool m_showPresenceChanges;
 
     QString appendScript(AppendMode mode);
     AppendMode appendMode(const AdiumThemeMessageInfo &message,
diff --git a/lib/chat-widget.cpp b/lib/chat-widget.cpp
index 6cfbce6..1f91b85 100644
--- a/lib/chat-widget.cpp
+++ b/lib/chat-widget.cpp
@@ -793,8 +793,7 @@ void ChatWidget::onContactPresenceChange(const Tp::ContactPtr & contact, const K
     }
 
     if (!message.isNull()) {
-        if ((d->ui.chatArea->showPresenceMode() == AdiumThemeView::Always) ||
-            ((d->ui.chatArea->showPresenceMode() == AdiumThemeView::NeverInGroupChats) && d->isGroupChat)) {
+        if (d->ui.chatArea->showPresenceChanges()) {
             AdiumThemeStatusInfo statusMessage;
             statusMessage.setMessage(message);
             statusMessage.setService(d->channel->connection()->protocolName());

-- 
ktp-text-ui packaging



More information about the pkg-kde-commits mailing list