diff options
Diffstat (limited to 'kopete/plugins/texteffect/texteffectpreferences.cpp')
-rw-r--r-- | kopete/plugins/texteffect/texteffectpreferences.cpp | 232 |
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" |