libkdepim Library API Documentation

prefsmodule.cpp

00001 
00022 #include "prefsmodule.h"
00023 
00024 #include <kaboutdata.h>
00025 #include <kdebug.h>
00026 #include <kcombobox.h>
00027 #include <klocale.h>
00028 #include <ktrader.h>
00029 
00030 #include <qlayout.h>
00031 #include <qlabel.h>
00032 #include <qbuttongroup.h>
00033 
00034 extern "C"
00035 {
00036   KCModule *create_komposerconfig( QWidget *parent, const char * ) {
00037     return new Komposer::PrefsModule( parent, "komposerprefs" );
00038   }
00039 }
00040 using namespace Komposer;
00041 
00042 PrefsModule::PrefsModule( QWidget *parent, const char *name )
00043   : KPrefsModule( Komposer::Prefs::self(), parent, name )
00044 {
00045   QVBoxLayout *topLayout = new QVBoxLayout( this );
00046 
00047   EditorSelection *editors = new EditorSelection( i18n( "Editors" ),
00048                                                   Komposer::Prefs::self()->m_activeEditor,
00049                                                   this );
00050   topLayout->addWidget( editors->groupBox() );
00051 
00052   addWid( editors );
00053 
00054   load();
00055 }
00056 
00057 const KAboutData*
00058 PrefsModule::aboutData() const
00059 {
00060   KAboutData *about = new KAboutData( I18N_NOOP( "komposerconfig" ),
00061                                       I18N_NOOP( "KDE Komposer" ),
00062                                       0, 0, KAboutData::License_LGPL,
00063                                       I18N_NOOP( "(c), 2003 Zack Rusin" ) );
00064 
00065   about->addAuthor( "Zack Rusin", 0, "zack@kde.org" );;
00066 
00067   return about;
00068 }
00069 
00070 
00071 EditorSelection::EditorSelection( const QString& text, QString& reference,
00072                                   QWidget *parent )
00073   : m_reference( reference )
00074 {
00075   m_box = new QGroupBox( 0, Qt::Vertical, text, parent );
00076   QVBoxLayout *boxLayout = new QVBoxLayout( m_box->layout() );
00077   boxLayout->setAlignment( Qt::AlignTop );
00078 
00079   m_editorsCombo = new KComboBox( m_box );
00080   boxLayout->addWidget( m_editorsCombo );
00081 
00082   connect( m_editorsCombo, SIGNAL(activated(const QString&)),
00083            SLOT(slotActivated(const QString&)) );
00084 }
00085 
00086 EditorSelection::~EditorSelection()
00087 {
00088 }
00089 
00090 QGroupBox*
00091 EditorSelection::groupBox()  const
00092 {
00093   return m_box;
00094 }
00095 
00096 void
00097 EditorSelection::readConfig()
00098 {
00099   m_editorsCombo->clear();
00100 
00101   KTrader::OfferList editors = KTrader::self()->query( QString::fromLatin1( "Komposer/Editor" ) );
00102   KTrader::OfferList::ConstIterator it;
00103   int i = 0;
00104   for ( it = editors.begin(); it != editors.end(); ++it, ++i ) {
00105     if ( !(*it)->hasServiceType( QString::fromLatin1( "Komposer/Editor" ) ) )
00106       continue;
00107 
00108     QString name = (*it)->property( "X-KDE-KomposerIdentifier" ).toString();
00109     m_editorsCombo->insertItem( name );
00110     if ( m_reference.contains( name ) )
00111       m_editorsCombo->setCurrentItem( i );
00112   }
00113 }
00114 
00115 void EditorSelection::writeConfig()
00116 {
00117   m_reference =  m_services[ m_editorsCombo->currentText()]->
00118                  property( "X-KDE-KomposerIdentifier" ).toString();
00119 }
00120 
00121 void
00122 EditorSelection::slotActivated( const QString& editor )
00123 {
00124   if ( !editor.isEmpty() )
00125     emit changed();
00126 }
00127 
00128 void
00129 EditorSelection::setItem( const QString& str )
00130 {
00131   for ( int i = 0; i < m_editorsCombo->count(); ++i ) {
00132     if ( m_editorsCombo->text( i ) == str ) {
00133       m_editorsCombo->setCurrentItem( i );
00134       break;
00135     }
00136   }
00137 }
00138 
00139 #include "prefsmodule.moc"
KDE Logo
This file is part of the documentation for libkdepim Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Oct 4 14:40:45 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003