• Skip to content
  • Skip to link menu
KDE 4.6 API Reference
  • KDE API Reference
  • kdelibs
  • KDE Home
  • Contact Us
 

KDEUI

configwidget.cpp

Go to the documentation of this file.
00001 
00021 #include "configwidget.h"
00022 #include "ui_configui.h"
00023 
00024 #include "loader_p.h"
00025 #include "settings_p.h"
00026 
00027 #include <keditlistbox.h>
00028 #include <kcombobox.h>
00029 #include <kconfig.h>
00030 #include <klocale.h>
00031 
00032 #include <QtGui/QCheckBox>
00033 #include <QtGui/QLayout>
00034 
00035 using namespace Sonnet;
00036 
00037 class ConfigWidget::Private
00038 {
00039 public:
00040     Loader *loader;
00041     Ui_SonnetConfigUI ui;
00042     QWidget *wdg;
00043     KConfig *config;
00044 };
00045 
00046 ConfigWidget::ConfigWidget(KConfig *config, QWidget *parent)
00047     : QWidget(parent),
00048       d(new Private)
00049 {
00050     init(config);
00051 }
00052 
00053 ConfigWidget::~ConfigWidget()
00054 {
00055     delete d;
00056 }
00057 
00058 void ConfigWidget::init(KConfig *config)
00059 {
00060     d->loader = Loader::openLoader();
00061     d->loader->settings()->restore(config);
00062     d->config = config;
00063 
00064     QVBoxLayout *layout = new QVBoxLayout( this );
00065     layout->setMargin( 0 );
00066     layout->setObjectName( "SonnetConfigUILayout" );
00067     d->wdg = new QWidget( this );
00068     d->ui.setupUi( d->wdg );
00069 
00070     //QStringList clients = d->loader->clients();
00071     d->ui.m_langCombo->setCurrentByDictionary( d->loader->settings()->defaultLanguage() );
00072     //d->ui->m_clientCombo->insertStringList( clients );
00073     d->ui.m_skipUpperCB->setChecked( !d->loader->settings()->checkUppercase() );
00074     d->ui.m_skipRunTogetherCB->setChecked( d->loader->settings()->skipRunTogether() );
00075     d->ui.m_checkerEnabledByDefaultCB->setChecked( d->loader->settings()->checkerEnabledByDefault() );
00076     QStringList ignoreList = d->loader->settings()->currentIgnoreList();
00077     ignoreList.sort();
00078     d->ui.m_ignoreListBox->insertStringList( ignoreList );
00079     d->ui.m_bgSpellCB->setChecked( d->loader->settings()->backgroundCheckerEnabled() );
00080     d->ui.m_bgSpellCB->hide();//hidden by default
00081     connect( d->ui.m_ignoreListBox, SIGNAL(changed()), SLOT(slotChanged()) );
00082 
00083     layout->addWidget( d->wdg );
00084     connect(d->ui.m_langCombo, SIGNAL(dictionaryChanged(QString)), this, SIGNAL(configChanged()));
00085     connect(d->ui.m_bgSpellCB, SIGNAL(clicked(bool)),this,SIGNAL(configChanged()));
00086     connect(d->ui.m_skipUpperCB, SIGNAL(clicked(bool)), this, SIGNAL(configChanged()));
00087     connect(d->ui.m_skipRunTogetherCB, SIGNAL(clicked(bool)), this, SIGNAL(configChanged()));
00088     connect(d->ui.m_checkerEnabledByDefaultCB, SIGNAL(clicked(bool)), this, SIGNAL(configChanged()));
00089     connect(d->ui.m_ignoreListBox, SIGNAL(changed()), this, SIGNAL(configChanged()));
00090 }
00091 
00092 void ConfigWidget::save()
00093 {
00094     setFromGui();
00095     d->loader->settings()->save(d->config);
00096 }
00097 
00098 void ConfigWidget::setFromGui()
00099 {
00100     if (d->ui.m_langCombo->count() ) {
00101         d->loader->settings()->setDefaultLanguage( d->ui.m_langCombo->currentDictionary() );
00102     }
00103     d->loader->settings()->setCheckUppercase(
00104         !d->ui.m_skipUpperCB->isChecked() );
00105     d->loader->settings()->setSkipRunTogether(
00106         d->ui.m_skipRunTogetherCB->isChecked() );
00107     d->loader->settings()->setBackgroundCheckerEnabled(
00108         d->ui.m_bgSpellCB->isChecked() );
00109     d->loader->settings()->setCheckerEnabledByDefault(
00110         d->ui.m_checkerEnabledByDefaultCB->isChecked() );
00111 }
00112 
00113 void ConfigWidget::slotChanged()
00114 {
00115     d->loader->settings()->setCurrentIgnoreList(
00116         d->ui.m_ignoreListBox->items() );
00117 }
00118 
00119 void ConfigWidget::setCorrectLanguage( const QStringList& )
00120 {
00121     // can be removed in KDE5.
00122 }
00123 
00124 void ConfigWidget::setBackgroundCheckingButtonShown( bool b )
00125 {
00126     d->ui.m_bgSpellCB->setVisible( b );
00127 }
00128 
00129 bool ConfigWidget::backgroundCheckingButtonShown() const
00130 {
00131     return !d->ui.m_bgSpellCB->isHidden();
00132 }
00133 
00134 void ConfigWidget::slotDefault()
00135 {
00136     d->ui.m_skipUpperCB->setChecked( false );
00137     d->ui.m_skipRunTogetherCB->setChecked( false );
00138     d->ui.m_checkerEnabledByDefaultCB->setChecked( false );
00139     d->ui.m_bgSpellCB->setChecked( true );
00140     d->ui.m_ignoreListBox->clear();
00141 }
00142 
00143 void ConfigWidget::setLanguage( const QString &language )
00144 {
00145     d->ui.m_langCombo->setCurrentByDictionary( language );
00146 }
00147 
00148 QString ConfigWidget::language() const
00149 {
00150     if ( d->ui.m_langCombo->count() ) {
00151         return d->ui.m_langCombo->currentDictionary();
00152     } else {
00153         return QString();
00154     }
00155 }
00156 
00157 #include "configwidget.moc"

KDEUI

Skip menu "KDEUI"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.3
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal