/*************************************************************************** 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 #include #include #include #include #include #include #include #include #include #include "texteffectprefs.h" #include "texteffectpreferences.h" #include "texteffectconfig.h" typedef KGenericFactory 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; fmColorsListBox->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"