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.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 1 15:18:55 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003