Fix theming support when tdmdistrc file is in use

Provide graphical fedback when theming is not available
pull/1/head
Timothy Pearson 11 years ago
parent 85bc59b826
commit 8cd17f9262

@ -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 );

@ -56,6 +56,7 @@ class TDMThemeWidget : public TDECModule {
TQPushButton *bInstallTheme;
TQPushButton *bRemoveTheme;
TQCheckBox *cUseTheme;
TQLabel *sakWarning;
ThemeData *defaultTheme;
TQString themeDir;

Loading…
Cancel
Save