From 8cd17f9262dfdace115ce709db21d8d145f2919d Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 5 May 2013 03:06:23 -0500 Subject: [PATCH] Fix theming support when tdmdistrc file is in use Provide graphical fedback when theming is not available --- src/tdmtheme.cpp | 41 ++++++++++++++++++++++++++++++++++++++--- src/tdmtheme.h | 1 + 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/tdmtheme.cpp b/src/tdmtheme.cpp index 071216b..8451810 100644 --- a/src/tdmtheme.cpp +++ b/src/tdmtheme.cpp @@ -67,13 +67,18 @@ TDMThemeWidget::TDMThemeWidget( TQWidget *parent, const char *name, const TQStri ml->setSpacing( KDialog::spacingHint() ); ml->setMargin( KDialog::marginHint() ); + sakWarning = new TQLabel( this ); + sakWarning->setText( i18n( "Theming is not available due to enabled Secure Attention Key (SAK) support" ) ); + ml->addMultiCellWidget( sakWarning, 0, 0, 0, 2 ); + sakWarning->hide(); + cUseTheme = new TQCheckBox( this ); cUseTheme->setText( i18n( "En&able TDM Themes" ) ); ml->addMultiCellWidget( cUseTheme, 0, 0, 0, 2 ); themeWidget = new TQListView( this ); - themeWidget->addColumn( i18n( "Theme" ) ); - themeWidget->addColumn( i18n( "Author" ) ); + themeWidget->addColumn( i18n( "Theme" ) ); + themeWidget->addColumn( i18n( "Author" ) ); themeWidget->setAllColumnsShowFocus( true ); themeWidget->setShowSortIndicator( true ); themeWidget->setRootIsDecorated( false ); @@ -147,7 +152,10 @@ void TDMThemeWidget::selectTheme( const TQString &path ) void TDMThemeWidget::load() { - TQString tdmrc = TDEGlobal::dirs()->findResource("config", "tdm/tdmrc"); + TQString tdmrc = TDEGlobal::dirs()->findResource("config", "tdm/tdmdistrc"); + if ( tdmrc.isEmpty() ) { + tdmrc = TDEGlobal::dirs()->findResource("config", "tdm/tdmrc"); + } if ( tdmrc.isEmpty() ) { kdError() << "Failed to find tdm resource file tdmrc!" << endl; @@ -161,6 +169,30 @@ void TDMThemeWidget::load() delete config; config = new TDEConfig( tdmrc ); + + config->setGroup( "X-*-Greeter" ); + bool sakEnabled = config->readBoolEntry( "UseSAK", true ); + if (sakEnabled) { + // FIXME + // Integrate KDE_BINDIR with Autotools and use this line instead of the one below it... + // if (system(KDE_BINDIR "/tsak checkdeps") != 0) { + if (system("tsak checkdeps") != 0) { + sakEnabled = false; + } + } + if (sakEnabled) { + cUseTheme->hide(); + sakWarning->show(); + cUseTheme->setEnabled(false); + setReadOnly(true); + } + else { + sakWarning->hide(); + cUseTheme->show(); + cUseTheme->setEnabled(true); + setReadOnly(false); + } + config->setGroup( "X-*-Greeter" ); cUseTheme->setChecked( config->readBoolEntry( "UseTheme", false ) ); @@ -190,6 +222,9 @@ void TDMThemeWidget::toggleUseTheme(bool useTheme) { void TDMThemeWidget::setReadOnly(bool ro) { + if (!cUseTheme->isEnabled()) { + ro = true; + } themeWidget->setEnabled( ro ); bInstallTheme->setEnabled( ro ); bRemoveTheme->setEnabled( ro ); diff --git a/src/tdmtheme.h b/src/tdmtheme.h index 6bfdeb8..b04006a 100644 --- a/src/tdmtheme.h +++ b/src/tdmtheme.h @@ -56,6 +56,7 @@ class TDMThemeWidget : public TDECModule { TQPushButton *bInstallTheme; TQPushButton *bRemoveTheme; TQCheckBox *cUseTheme; + TQLabel *sakWarning; ThemeData *defaultTheme; TQString themeDir;