summaryrefslogtreecommitdiffabout
path: root/microkde
authorulf69 <ulf69>2004-07-09 07:58:23 (UTC)
committer ulf69 <ulf69>2004-07-09 07:58:23 (UTC)
commit82dabc14cc446fb8c0486cd4c32064e3866d2be9 (patch) (unidiff)
tree189f55a1b7184900f7237314bce06121d12ec980 /microkde
parent3729f356c14ecf49bf5484ab2662736e5aa5d53a (diff)
downloadkdepimpi-82dabc14cc446fb8c0486cd4c32064e3866d2be9.zip
kdepimpi-82dabc14cc446fb8c0486cd4c32064e3866d2be9.tar.gz
kdepimpi-82dabc14cc446fb8c0486cd4c32064e3866d2be9.tar.bz2
added support for a persistent readonly flags
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kresources/configdialog.cpp25
-rw-r--r--microkde/kresources/configdialog.h3
-rw-r--r--microkde/kresources/configwidget.h2
3 files changed, 26 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
@@ -1,137 +1,154 @@
1/* 1/*
2 This file is part of libkresources. 2 This file is part of libkresources.
3 3
4 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> 4 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org>
5 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org> 5 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org>
6 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org> 6 Copyright (c) 2003 Cornelius Schumacher <schumacher@kde.org>
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
11 version 2 of the License, or (at your option) any later version. 11 version 2 of the License, or (at your option) any later version.
12 12
13 This library is distributed in the hope that it will be useful, 13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Library General Public License for more details. 16 Library General Public License for more details.
17 17
18 You should have received a copy of the GNU Library General Public License 18 You should have received a copy of the GNU Library General Public License
19 along with this library; see the file COPYING.LIB. If not, write to 19 along with this library; see the file COPYING.LIB. If not, write to
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 Boston, MA 02111-1307, USA. 21 Boston, MA 02111-1307, USA.
22*/ 22*/
23 23
24#include <klocale.h> 24#include <klocale.h>
25#include <kglobal.h> 25#include <kglobal.h>
26#include <kmessagebox.h> 26#include <kmessagebox.h>
27 27
28#include <qgroupbox.h> 28#include <qgroupbox.h>
29#include <qlabel.h> 29#include <qlabel.h>
30#include <qlayout.h> 30#include <qlayout.h>
31#include <qpushbutton.h> 31#include <qpushbutton.h>
32 32
33#include <qcheckbox.h> 33#include <qcheckbox.h>
34 34
35#include <kbuttonbox.h> 35#include <kbuttonbox.h>
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 );
61 generalGroupBox->layout()->setSpacing( spacingHint() ); 61 generalGroupBox->layout()->setSpacing( spacingHint() );
62 generalGroupBox->setTitle( i18n( "General Settings" ) ); 62 generalGroupBox->setTitle( i18n( "General Settings" ) );
63 63
64 new QLabel( i18n( "Name:" ), generalGroupBox ); 64 new QLabel( i18n( "Name:" ), generalGroupBox );
65 65
66 mName = new KLineEdit( generalGroupBox ); 66 mName = new KLineEdit( generalGroupBox );
67 67
68 mReadOnly = new QCheckBox( i18n( "Read-only" ), generalGroupBox ); 68 mReadOnly = new QCheckBox( i18n( "Read-only" ), generalGroupBox );
69 69
70 mName->setText( mResource->resourceName() ); 70 mName->setText( mResource->resourceName() );
71 mReadOnly->setChecked( mResource->readOnly() ); 71 mReadOnly->setChecked( mResource->readOnly() );
72 72
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
102void ConfigDialog::setInEditMode( bool value ) 105void 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
128 if ( mConfigWidget ) { 145 if ( mConfigWidget ) {
129 // First save generic information 146 // First save generic information
130 // Also save setting of specific resource type 147 // Also save setting of specific resource type
131 mConfigWidget->saveSettings( mResource ); 148 mConfigWidget->saveSettings( mResource );
132 } 149 }
133 150
134 KDialog::accept(); 151 KDialog::accept();
135} 152}
136 153
137//US #include "configdialog.moc" 154//US #include "configdialog.moc"
diff --git a/microkde/kresources/configdialog.h b/microkde/kresources/configdialog.h
index 6acc5d9..ba66f8e 100644
--- a/microkde/kresources/configdialog.h
+++ b/microkde/kresources/configdialog.h
@@ -1,60 +1,63 @@
1/* 1/*
2 This file is part of libkresources. 2 This file is part of libkresources.
3 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org> 3 Copyright (c) 2002 Tobias Koenig <tokoe@kde.org>
4 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org> 4 Copyright (c) 2002 Jan-Pascal van Best <janpascal@vanbest.org>
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22#ifndef KRESOURCES_CONFIGDIALOG_H 22#ifndef KRESOURCES_CONFIGDIALOG_H
23#define KRESOURCES_CONFIGDIALOG_H 23#define KRESOURCES_CONFIGDIALOG_H
24 24
25#include <kdialogbase.h> 25#include <kdialogbase.h>
26 26
27class KLineEdit; 27class KLineEdit;
28class QCheckBox; 28class QCheckBox;
29class KButtonBox; 29class KButtonBox;
30 30
31namespace KRES { 31namespace KRES {
32 class Resource; 32 class Resource;
33 class ConfigWidget; 33 class ConfigWidget;
34 34
35class ConfigDialog : public KDialogBase 35class ConfigDialog : public KDialogBase
36{ 36{
37 Q_OBJECT 37 Q_OBJECT
38 public: 38 public:
39 // Resource=0: create new resource 39 // Resource=0: create new resource
40 ConfigDialog( QWidget *parent, const QString& resourceFamily, 40 ConfigDialog( QWidget *parent, const QString& resourceFamily,
41 Resource* resource, const char *name = 0); 41 Resource* resource, const char *name = 0);
42 42
43 void setInEditMode( bool value ); 43 void setInEditMode( bool value );
44 44
45 protected slots: 45 protected slots:
46 void accept(); 46 void accept();
47 void setReadOnly( bool value ); 47 void setReadOnly( bool value );
48 void setPersistentReadOnly( bool value );
48 void slotNameChanged( const QString &text); 49 void slotNameChanged( const QString &text);
49 50
50 private: 51 private:
51 ConfigWidget *mConfigWidget; 52 ConfigWidget *mConfigWidget;
52 Resource* mResource; 53 Resource* mResource;
53 54
54 KLineEdit *mName; 55 KLineEdit *mName;
55 QCheckBox *mReadOnly; 56 QCheckBox *mReadOnly;
57//US add a persistent readonly flag. We need that for opie and qtopia addressbooks.
58 bool mPersistentReadOnly;
56}; 59};
57 60
58} 61}
59 62
60#endif 63#endif
diff --git a/microkde/kresources/configwidget.h b/microkde/kresources/configwidget.h
index 04dd696..b97e278 100644
--- a/microkde/kresources/configwidget.h
+++ b/microkde/kresources/configwidget.h
@@ -5,55 +5,57 @@
5 5
6 This library is free software; you can redistribute it and/or 6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public 7 modify it under the terms of the GNU Library General Public
8 License as published by the Free Software Foundation; either 8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version. 9 version 2 of the License, or (at your option) any later version.
10 10
11 This library is distributed in the hope that it will be useful, 11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details. 14 Library General Public License for more details.
15 15
16 You should have received a copy of the GNU Library General Public License 16 You should have received a copy of the GNU Library General Public License
17 along with this library; see the file COPYING.LIB. If not, write to 17 along with this library; see the file COPYING.LIB. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. 19 Boston, MA 02111-1307, USA.
20*/ 20*/
21 21
22#ifndef KRESOURCES_CONFIGWIDGET_H 22#ifndef KRESOURCES_CONFIGWIDGET_H
23#define KRESOURCES_CONFIGWIDGET_H 23#define KRESOURCES_CONFIGWIDGET_H
24 24
25#include <qwidget.h> 25#include <qwidget.h>
26 26
27#include <kconfig.h> 27#include <kconfig.h>
28 28
29#include "resource.h" 29#include "resource.h"
30 30
31namespace KRES { 31namespace KRES {
32 32
33class ConfigWidget : public QWidget 33class ConfigWidget : public QWidget
34{ 34{
35 Q_OBJECT 35 Q_OBJECT
36 36
37public: 37public:
38 ConfigWidget( QWidget *parent = 0, const char *name = 0 ); 38 ConfigWidget( QWidget *parent = 0, const char *name = 0 );
39 39
40 /** 40 /**
41 Sets the widget to 'edit' mode. Reimplement this method if you are 41 Sets the widget to 'edit' mode. Reimplement this method if you are
42 interested in the mode change (to disable some GUI element for 42 interested in the mode change (to disable some GUI element for
43 example). By default the widget is in 'create new' mode. 43 example). By default the widget is in 'create new' mode.
44 */ 44 */
45 virtual void setInEditMode( bool value ); 45 virtual void setInEditMode( bool value );
46 46
47public slots: 47public slots:
48 virtual void loadSettings( Resource *resource ); 48 virtual void loadSettings( Resource *resource );
49 virtual void saveSettings( Resource *resource ); 49 virtual void saveSettings( Resource *resource );
50 50
51signals: 51signals:
52 void setReadOnly( bool value ); 52 void setReadOnly( bool value );
53 void setPersistentReadOnly( bool value );
54
53 55
54protected: 56protected:
55 Resource* mResource; 57 Resource* mResource;
56}; 58};
57 59
58} 60}
59#endif 61#endif