summaryrefslogtreecommitdiffabout
path: root/microkde/kresources/configdialog.cpp
Unidiff
Diffstat (limited to 'microkde/kresources/configdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kresources/configdialog.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/microkde/kresources/configdialog.cpp b/microkde/kresources/configdialog.cpp
index 48d9137..0fc199c 100644
--- a/microkde/kresources/configdialog.cpp
+++ b/microkde/kresources/configdialog.cpp
@@ -36,25 +36,25 @@
36#include <kdialog.h> 36#include <kdialog.h>
37#include <klineedit.h> 37#include <klineedit.h>
38 38
39#include "factory.h" 39#include "factory.h"
40#include "configwidget.h" 40#include "configwidget.h"
41#include "configdialog.h" 41#include "configdialog.h"
42 42
43using namespace KRES; 43using namespace KRES;
44 44
45ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily, 45ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
46 /*const QString& type,*/ Resource* resource, /*KConfig *config, */const char *name ) 46 /*const QString& type,*/ Resource* resource, /*KConfig *config, */const char *name )
47 : KDialogBase( parent, name, true, i18n( "Resource Configuration" ), 47 : KDialogBase( parent, name, true, i18n( "Resource Configuration" ),
48 Ok|Cancel, Ok, true )/*, mConfig( config )*/, mResource( resource ) 48 Ok|Cancel, Ok, true )/*, mConfig( config )*/, mResource( resource ), mPersistentReadOnly(false)
49{ 49{
50 Factory *factory = Factory::self( resourceFamily ); 50 Factory *factory = Factory::self( resourceFamily );
51 51
52//US resize( 250, 240 ); 52//US resize( 250, 240 );
53 resize( KMIN(KGlobal::getDesktopWidth(), 250), KMIN(KGlobal::getDesktopHeight(), 240)); 53 resize( KMIN(KGlobal::getDesktopWidth(), 250), KMIN(KGlobal::getDesktopHeight(), 240));
54 54
55//US QFrame *main = makeMainWidget(); 55//US QFrame *main = makeMainWidget();
56 QFrame *main = plainPage(); 56 QFrame *main = plainPage();
57 57
58 QVBoxLayout *mainLayout = new QVBoxLayout( main, 0, spacingHint() ); 58 QVBoxLayout *mainLayout = new QVBoxLayout( main, 0, spacingHint() );
59 59
60 QGroupBox *generalGroupBox = new QGroupBox( 2, Qt::Horizontal, main ); 60 QGroupBox *generalGroupBox = new QGroupBox( 2, Qt::Horizontal, main );
@@ -73,29 +73,32 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
73 mainLayout->addWidget( generalGroupBox ); 73 mainLayout->addWidget( generalGroupBox );
74 74
75 QGroupBox *resourceGroupBox = new QGroupBox( 2, Qt::Horizontal, main ); 75 QGroupBox *resourceGroupBox = new QGroupBox( 2, Qt::Horizontal, main );
76 resourceGroupBox->layout()->setSpacing( spacingHint()); 76 resourceGroupBox->layout()->setSpacing( spacingHint());
77 resourceGroupBox->setTitle( i18n( "%1 Resource Settings" ) 77 resourceGroupBox->setTitle( i18n( "%1 Resource Settings" )
78 .arg( factory->typeName( resource->type() ) ) ); 78 .arg( factory->typeName( resource->type() ) ) );
79 mainLayout->addWidget( resourceGroupBox ); 79 mainLayout->addWidget( resourceGroupBox );
80 80
81 mainLayout->addStretch(); 81 mainLayout->addStretch();
82 82
83 mConfigWidget = factory->configWidget( resource->type(), resourceGroupBox ); 83 mConfigWidget = factory->configWidget( resource->type(), resourceGroupBox );
84 if ( mConfigWidget ) { 84 if ( mConfigWidget ) {
85 connect( mConfigWidget, SIGNAL( setReadOnly( bool ) ),
86 SLOT( setReadOnly( bool ) ) );
87 connect( mConfigWidget, SIGNAL( setPersistentReadOnly( bool ) ),
88 SLOT( setPersistentReadOnly( bool ) ) );
85 mConfigWidget->setInEditMode( false ); 89 mConfigWidget->setInEditMode( false );
86 mConfigWidget->loadSettings( mResource ); 90 mConfigWidget->loadSettings( mResource );
87 mConfigWidget->show(); 91 mConfigWidget->show();
88 connect( mConfigWidget, SIGNAL( setReadOnly( bool ) ), 92
89 SLOT( setReadOnly( bool ) ) );
90 } 93 }
91 94
92 connect( mName, SIGNAL( textChanged(const QString &)), 95 connect( mName, SIGNAL( textChanged(const QString &)),
93 SLOT( slotNameChanged(const QString &))); 96 SLOT( slotNameChanged(const QString &)));
94 97
95 slotNameChanged( mName->text() ); 98 slotNameChanged( mName->text() );
96 99
97//US setMinimumSize( 400, 250 ); 100//US setMinimumSize( 400, 250 );
98 setMinimumSize( KMIN(KGlobal::getDesktopWidth(), 400), KMIN(KGlobal::getDesktopHeight(), 250)); 101 setMinimumSize( KMIN(KGlobal::getDesktopWidth(), 400), KMIN(KGlobal::getDesktopHeight(), 250));
99 102
100} 103}
101 104
@@ -103,25 +106,39 @@ void ConfigDialog::setInEditMode( bool value )
103{ 106{
104 if ( mConfigWidget ) 107 if ( mConfigWidget )
105 mConfigWidget->setInEditMode( value ); 108 mConfigWidget->setInEditMode( value );
106} 109}
107 110
108void ConfigDialog::slotNameChanged( const QString &text) 111void ConfigDialog::slotNameChanged( const QString &text)
109{ 112{
110 enableButtonOK( !text.isEmpty() ); 113 enableButtonOK( !text.isEmpty() );
111} 114}
112 115
113void ConfigDialog::setReadOnly( bool value ) 116void ConfigDialog::setReadOnly( bool value )
114{ 117{
115 mReadOnly->setChecked( value ); 118 if (mPersistentReadOnly == false)
119 mReadOnly->setChecked( value );
120 else
121 mReadOnly->setChecked( true );
122}
123
124void ConfigDialog::setPersistentReadOnly( bool value )
125{
126 mPersistentReadOnly = value;
127
128 if (value == true)
129 setReadOnly( true );
130
131 mReadOnly->setEnabled( !value );
132
116} 133}
117 134
118void ConfigDialog::accept() 135void ConfigDialog::accept()
119{ 136{
120 if ( mName->text().isEmpty() ) { 137 if ( mName->text().isEmpty() ) {
121 KMessageBox::sorry( this, i18n( "Please enter a resource name" ) ); 138 KMessageBox::sorry( this, i18n( "Please enter a resource name" ) );
122 return; 139 return;
123 } 140 }
124 141
125 mResource->setResourceName( mName->text() ); 142 mResource->setResourceName( mName->text() );
126 mResource->setReadOnly( mReadOnly->isChecked() ); 143 mResource->setReadOnly( mReadOnly->isChecked() );
127 144