You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
233 lines
7.0 KiB
233 lines
7.0 KiB
/***************************************************************************
|
|
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"
|