summaryrefslogtreecommitdiffstats
path: root/kopete/plugins/texteffect/texteffectpreferences.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kopete/plugins/texteffect/texteffectpreferences.cpp')
-rw-r--r--kopete/plugins/texteffect/texteffectpreferences.cpp232
1 files changed, 232 insertions, 0 deletions
diff --git a/kopete/plugins/texteffect/texteffectpreferences.cpp b/kopete/plugins/texteffect/texteffectpreferences.cpp
new file mode 100644
index 00000000..c9f0c03b
--- /dev/null
+++ b/kopete/plugins/texteffect/texteffectpreferences.cpp
@@ -0,0 +1,232 @@
+/***************************************************************************
+ texteffectpreferences.cpp - description
+ -------------------
+ begin : jeu nov 14 2002
+ copyright : (C) 2002 by Olivier Goffart
+ email : ogoffart @ kde.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) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qstring.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+
+#include <klocale.h>
+#include <kcolordialog.h>
+#include <kgenericfactory.h>
+#include <kautoconfig.h>
+#include <kdebug.h>
+
+#include <kdeversion.h>
+
+#include "texteffectprefs.h"
+#include "texteffectpreferences.h"
+#include "texteffectconfig.h"
+
+typedef KGenericFactory<TextEffectPreferences> TextEffectPreferencesFactory;
+K_EXPORT_COMPONENT_FACTORY( kcm_kopete_texteffect, TextEffectPreferencesFactory( "kcm_kopete_texteffect" ) )
+
+TextEffectPreferences::TextEffectPreferences(QWidget *parent,
+ const char* /*name*/,
+ const QStringList &args)
+ : KCModule(TextEffectPreferencesFactory::instance(), parent, args)
+{
+ ( new QVBoxLayout( this ) )->setAutoAdd( true );
+
+ kdDebug( 14310 ) << "Creating preferences dialog" << endl;
+
+ preferencesDialog = new TextEffectPrefs(this);
+
+ kdDebug( 14310 ) << "Creating config object" << endl;
+
+ config = new TextEffectConfig;
+
+ kdDebug( 14310 ) << "Setting up connections" << endl;
+
+ connect(preferencesDialog->mColorsAdd , SIGNAL(pressed()) ,
+ this , SLOT(slotAddPressed()));
+
+ connect(preferencesDialog->mColorsRemove , SIGNAL(pressed()) ,
+ this , SLOT(slotRemovePressed()));
+
+ connect(preferencesDialog->mColorsUp , SIGNAL(pressed()) ,
+ this , SLOT(slotUpPressed()));
+
+ connect(preferencesDialog->mColorsDown , SIGNAL(pressed()) ,
+ this , SLOT(slotDownPressed()));
+
+ // Connect up all the check boxes
+ connect( preferencesDialog->m_lamer, SIGNAL( clicked() ),
+ this, SLOT( slotSettingChanged() ) );
+ connect( preferencesDialog->m_casewaves, SIGNAL( clicked() ),
+ this, SLOT( slotSettingChanged() ) );
+
+ connect( preferencesDialog->m_colorRandom, SIGNAL( clicked() ),
+ this, SLOT( slotSettingChanged() ) );
+ connect( preferencesDialog->m_fg, SIGNAL( clicked() ),
+ this, SLOT( slotSettingChanged() ) );
+ connect( preferencesDialog->m_char, SIGNAL( clicked() ),
+ this, SLOT( slotSettingChanged() ) );
+ connect( preferencesDialog->m_words, SIGNAL( clicked() ),
+ this, SLOT( slotSettingChanged() ) );
+
+ //setMainWidget( preferencesDialog, "Text Effect Plugin" );
+
+ load();
+
+}
+
+TextEffectPreferences::~TextEffectPreferences()
+{
+ delete preferencesDialog;
+ delete config;
+}
+
+
+void TextEffectPreferences::load()
+{
+ kdDebug( 14310 ) << k_funcinfo << "ENTER" << endl;
+
+ config->load();
+
+ preferencesDialog->mColorsListBox->insertStringList(config->colors());
+ preferencesDialog->m_fg->setChecked(config->colorLines());
+ preferencesDialog->m_words->setChecked(config->colorWords());
+ preferencesDialog->m_char->setChecked(config->colorChar());
+ preferencesDialog->m_lamer->setChecked(config->lamer());
+ preferencesDialog->m_casewaves->setChecked(config->waves());
+
+
+ // Call parent's save method
+ KCModule::load();
+
+ // Indicate that we have not changed ^_^
+ emit changed( false );
+
+ kdDebug( 14310 ) << k_funcinfo << "EXIT" << endl;
+
+}
+
+void TextEffectPreferences::save()
+{
+ kdDebug() << k_funcinfo << "ENTER" << endl;
+ // Save the settings
+ config->setColors(colors());
+ config->setColorRandom(preferencesDialog->m_colorRandom->isChecked());
+ config->setColorLines(preferencesDialog->m_fg->isChecked());
+ config->setColorWords(preferencesDialog->m_words->isChecked());
+ config->setColorChar(preferencesDialog->m_char->isChecked());
+
+ config->setLamer(preferencesDialog->m_lamer->isChecked());
+ config->setWaves(preferencesDialog->m_casewaves->isChecked());
+
+ config->save();
+
+ // Notify the plugin that the settings have changed
+ //TextEffectPlugin::plugin()->slotSettingsChanged();
+
+ // Call parent's save method
+ KCModule::save();
+
+ // Indicate that we have not changed ^_^
+ emit changed( false );
+ kdDebug() << k_funcinfo << "EXIT" << endl;
+}
+
+QStringList TextEffectPreferences::colors()
+{
+ QStringList ret;
+ for(unsigned int f=0; f<preferencesDialog->mColorsListBox->count() ; f++)
+ {
+ ret.append(preferencesDialog->mColorsListBox->text(f));
+ }
+ return ret;
+}
+
+void TextEffectPreferences::slotAddPressed()
+{
+ QColor myColor;
+ if( KColorDialog::getColor( myColor ) == KColorDialog::Accepted )
+ {
+ preferencesDialog->mColorsListBox->insertItem(myColor.name());
+ }
+
+ // Indicate that something has changed
+ slotSettingChanged();
+
+}
+void TextEffectPreferences::slotRemovePressed()
+{
+ delete preferencesDialog->mColorsListBox->selectedItem();
+ // Indicate that something has changed
+ slotSettingChanged();
+}
+
+
+void TextEffectPreferences::slotUpPressed()
+{
+ int p=preferencesDialog->mColorsListBox->currentItem();
+ if(p <= 0 )
+ return;
+ QListBoxItem *i=preferencesDialog->mColorsListBox->selectedItem();
+ if(!i)
+ return;
+ preferencesDialog->mColorsListBox->setSelected(i,false);
+ preferencesDialog->mColorsListBox->takeItem(i);
+ preferencesDialog->mColorsListBox->insertItem(i , p-1 );
+ preferencesDialog->mColorsListBox->setSelected(i,true);
+
+ // Indicate that something has changed
+ slotSettingChanged();
+
+}
+void TextEffectPreferences::slotDownPressed()
+{
+ int p=preferencesDialog->mColorsListBox->currentItem();
+ if(p < 0 )
+ return;
+ QListBoxItem *i=preferencesDialog->mColorsListBox->selectedItem();
+ if(!i)
+ return;
+ preferencesDialog->mColorsListBox->setSelected(i,false);
+ preferencesDialog->mColorsListBox->takeItem(i);
+ preferencesDialog->mColorsListBox->insertItem(i , p+1 );
+ preferencesDialog->mColorsListBox->setSelected(i,true);
+
+ // Indicate that something has changed
+ slotSettingChanged();
+}
+
+
+
+void TextEffectPreferences::slotSettingChanged()
+{
+ kdDebug() << k_funcinfo << "Called"
+ << endl;
+ // Indicate that our settings have changed
+ emit changed( true );
+}
+
+void TextEffectPreferences::defaults()
+{
+ preferencesDialog->mColorsListBox->clear();
+ preferencesDialog->mColorsListBox->insertStringList(config->defaultColorList());
+ preferencesDialog->m_fg->setChecked(false);
+ preferencesDialog->m_words->setChecked(false);
+ preferencesDialog->m_char->setChecked(false);
+ preferencesDialog->m_lamer->setChecked(false);
+ preferencesDialog->m_casewaves->setChecked(false);
+ preferencesDialog->m_colorRandom->setChecked( false );
+ emit changed( true );
+}
+
+#include "texteffectpreferences.moc"