summaryrefslogtreecommitdiffabout
path: root/microkde
authorulf69 <ulf69>2004-08-04 22:45:22 (UTC)
committer ulf69 <ulf69>2004-08-04 22:45:22 (UTC)
commitc3a704f5acda9cf9fee66e5c0b1b864f3b7dd852 (patch) (side-by-side diff)
treedc59744a6d59ba241e793ce051da485d0bf16d06 /microkde
parentb83866e08ddcc5cb2734801977927f48b53a2e1c (diff)
downloadkdepimpi-c3a704f5acda9cf9fee66e5c0b1b864f3b7dd852.zip
kdepimpi-c3a704f5acda9cf9fee66e5c0b1b864f3b7dd852.tar.gz
kdepimpi-c3a704f5acda9cf9fee66e5c0b1b864f3b7dd852.tar.bz2
final changes for addressbook sync config dialog
Diffstat (limited to 'microkde') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/kresources/configdialog.cpp78
-rw-r--r--microkde/kresources/configdialog.h4
-rw-r--r--microkde/kresources/configpage.cpp15
-rw-r--r--microkde/kresources/factory.cpp4
-rw-r--r--microkde/kresources/factory.h5
-rw-r--r--microkde/kresources/resource.h8
-rw-r--r--microkde/kresources/syncwidget.h10
7 files changed, 97 insertions, 27 deletions
diff --git a/microkde/kresources/configdialog.cpp b/microkde/kresources/configdialog.cpp
index 90febca..f8240f9 100644
--- a/microkde/kresources/configdialog.cpp
+++ b/microkde/kresources/configdialog.cpp
@@ -29,8 +29,10 @@
#include <qlabel.h>
#include <qlayout.h>
#include <qpushbutton.h>
+#include <qvbox.h>
#include <qcheckbox.h>
+#include <qscrollview.h>
#include <kbuttonbox.h>
#include <kdialog.h>
@@ -46,7 +48,7 @@ using namespace KRES;
ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
Resource* resource, const char *name )
: KDialogBase( parent, name, true, resource->isSyncable()?i18n( "Sync Profile Configuration" ):i18n( "Resource Configuration" ),
- Ok|Cancel, Ok, true )/*, mConfig( config )*/, mSyncWidget(0), mResource( resource ), mPersistentReadOnly(false)
+ Ok|Cancel, Ok, true )/*, mConfig( config )*/, mSyncWidget_Settings(0), mSyncWidget_Conflicts(0),mSyncWidget_Remote(0), mResource( resource ), mPersistentReadOnly(false)
{
Factory *factory = Factory::self( resourceFamily );
@@ -54,11 +56,16 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
//US resize( 250, 240 );
resize( KMIN(KGlobal::getDesktopWidth(), 250), KMIN(KGlobal::getDesktopHeight(), 240));
-//US QFrame *main = makeMainWidget();
- QFrame *main = plainPage();
+ QFrame *main;
+
+ if (!mResource->isSyncable())
+ main = plainPage();
+ else
+ main = addPage("Profile");
QVBoxLayout *mainLayout = new QVBoxLayout( main, 0, spacingHint() );
+
QGroupBox *generalGroupBox = new QGroupBox( 2, Qt::Horizontal, main );
generalGroupBox->layout()->setSpacing( spacingHint() );
generalGroupBox->setTitle( i18n( "General Settings" ) );
@@ -98,19 +105,53 @@ ConfigDialog::ConfigDialog( QWidget *parent, const QString& resourceFamily,
if (mResource->isSyncable())
{
- QGroupBox *syncGroupBox = new QGroupBox( 2, Qt::Horizontal, main );
- syncGroupBox->layout()->setSpacing( spacingHint());
- syncGroupBox->setTitle( i18n( "Syncronize Preferences" ) );
- mainLayout->addWidget( syncGroupBox );
+ SyncWidgetContainer* c = factory->syncWidgetContainer( resource->type() );
+
+ QFrame* syncPage = addPage("Settings");
+ QVBoxLayout *syncLayout = new QVBoxLayout( syncPage, 0, spacingHint() );
+ mSyncWidget_Settings = c->generateSettingsTab(syncPage);
+ syncLayout->addWidget( mSyncWidget_Settings );
+
+ syncPage = addPage("Conflicts");
+ syncLayout = new QVBoxLayout( syncPage, 0, spacingHint() );
+ mSyncWidget_Conflicts = c->generateConflictsTab(syncPage);
+ syncLayout->addWidget( mSyncWidget_Conflicts );
+
+ syncPage = addPage("Remote");
+ syncLayout = new QVBoxLayout( syncPage, 0, spacingHint() );
+ mSyncWidget_Remote = c->generateRemoteTab(syncPage);
+ syncLayout->addWidget( mSyncWidget_Remote );
+
- mainLayout->addStretch();
+ mSyncWidget_Settings->setInEditMode( false );
+ mSyncWidget_Settings->loadSettings( mResource );
+ mSyncWidget_Settings->show();
- mSyncWidget = factory->syncWidget( resource->type(), syncGroupBox );
+ mSyncWidget_Conflicts->setInEditMode( false );
+ mSyncWidget_Conflicts->loadSettings( mResource );
+ mSyncWidget_Conflicts->show();
+
+ mSyncWidget_Remote->setInEditMode( false );
+ mSyncWidget_Remote->loadSettings( mResource );
+ mSyncWidget_Remote->show();
+
+ delete c;
+
+// QGroupBox *syncGroupBox = new QGroupBox( 2, Qt::Horizontal, syncPage );
+// syncGroupBox->layout()->setSpacing( spacingHint());
+// syncGroupBox->setTitle( i18n( "Syncronize Preferences" ) );
+// syncLayout->addWidget( syncGroupBox );
+
+// syncLayout->addStretch();
+/*US
+ mSyncWidget = factory->syncWidget( resource->type(), syncPage );
+ syncLayout->addWidget( mSyncWidget );
if ( mSyncWidget ) {
mSyncWidget->setInEditMode( false );
mSyncWidget->loadSettings( mResource );
mSyncWidget->show();
}
+ */
}
@@ -131,8 +172,12 @@ void ConfigDialog::setInEditMode( bool value )
if ( mConfigWidget )
mConfigWidget->setInEditMode( value );
- if ( mSyncWidget )
- mSyncWidget->setInEditMode( value );
+ if ( mSyncWidget_Settings )
+ mSyncWidget_Settings->setInEditMode( value );
+ if ( mSyncWidget_Conflicts )
+ mSyncWidget_Conflicts->setInEditMode( value );
+ if ( mSyncWidget_Remote )
+ mSyncWidget_Remote->setInEditMode( value );
}
@@ -182,11 +227,12 @@ void ConfigDialog::accept()
mConfigWidget->saveSettings( mResource );
}
- if ( mSyncWidget ) {
- // First save generic information
- // Also save setting of specific resource type
- mSyncWidget->saveSettings( mResource );
- }
+ if ( mSyncWidget_Settings )
+ mSyncWidget_Settings->saveSettings( mResource );
+ if ( mSyncWidget_Conflicts )
+ mSyncWidget_Conflicts->saveSettings( mResource );
+ if ( mSyncWidget_Remote )
+ mSyncWidget_Remote->saveSettings( mResource );
KDialog::accept();
diff --git a/microkde/kresources/configdialog.h b/microkde/kresources/configdialog.h
index b629347..63cd4e9 100644
--- a/microkde/kresources/configdialog.h
+++ b/microkde/kresources/configdialog.h
@@ -51,7 +51,9 @@ class ConfigDialog : public KDialogBase
private:
ConfigWidget *mConfigWidget;
- SyncWidget *mSyncWidget;
+ SyncWidget *mSyncWidget_Settings;
+ SyncWidget *mSyncWidget_Conflicts;
+ SyncWidget *mSyncWidget_Remote;
Resource* mResource;
KLineEdit *mName;
diff --git a/microkde/kresources/configpage.cpp b/microkde/kresources/configpage.cpp
index 2fe021d..1a3a22c 100644
--- a/microkde/kresources/configpage.cpp
+++ b/microkde/kresources/configpage.cpp
@@ -205,6 +205,8 @@ void ConfigPage::load()
info.mConfig = new KConfig( locateLocal( "config", "kabcrc" ) );
} else if ( family == "calendar" && QFile::exists( configDir + "/kcalrc" ) ) {
info.mConfig = new KConfig( locateLocal( "config", "kcalrc" ) );
+ } else if ( family == syncfamily && QFile::exists( configDir + "/kabcsyncrc" ) ) {
+ info.mConfig = new KConfig( locateLocal( "config", "kabcsyncrc" ) );
} else {
QString configFile = locateLocal( "config", QString( "kresources/%1/stdrc" ).arg( family ) );
info.mConfig = new KConfig( configFile );
@@ -311,13 +313,13 @@ void ConfigPage::slotAdd()
if (mFamily == syncfamily)
{
desc = QInputDialog::getItem( i18n( "Sync Configuration" ),
- i18n( "Please select resource type for new sync profile:" ), descs, 0,
+ i18n( "Select resource type for the new sync profile:" ), descs, 0,
false, &ok, this );
}
else
{
desc = QInputDialog::getItem( i18n( "Resource Configuration" ),
- i18n( "Please select type of the new resource:" ), descs, 0,
+ i18n( "Select type of the new resource:" ), descs, 0,
false, &ok, this );
}
@@ -334,7 +336,14 @@ void ConfigPage::slotAdd()
return;
}
- resource->setResourceName( type + "-resource" );
+ if (mFamily == syncfamily)
+ {
+ resource->setResourceName( type + "-syncprofile" );
+ }
+ else
+ {
+ resource->setResourceName( type + "-resource" );
+ }
ConfigDialog dlg( this, mFamily, resource, "KRES::ConfigDialog" );
diff --git a/microkde/kresources/factory.cpp b/microkde/kresources/factory.cpp
index 7a5c2f6..e44fce3 100644
--- a/microkde/kresources/factory.cpp
+++ b/microkde/kresources/factory.cpp
@@ -187,7 +187,7 @@ ConfigWidget *Factory::configWidget( const QString& type, QWidget *parent )
}
-SyncWidget *Factory::syncWidget( const QString& type, QWidget *parent )
+SyncWidgetContainer *Factory::syncWidgetContainer( const QString& type )
{
if ( type.isEmpty() || !mTypeMap.contains( type ) )
return 0;
@@ -210,7 +210,7 @@ SyncWidget *Factory::syncWidget( const QString& type, QWidget *parent )
return 0;
}
- SyncWidget *wdg = pluginFactory->syncWidget( parent );
+ SyncWidgetContainer *wdg = pluginFactory->syncWidgetContainer( );
if ( !wdg ) {
//US kdDebug() << "'" << ptr->library() << "' is not a " + mResourceFamily + " plugin." << endl;
qDebug("%s is not a %s plugin.", pi->library.latin1(), mResourceFamily.latin1());
diff --git a/microkde/kresources/factory.h b/microkde/kresources/factory.h
index a265bc8..0e4231b 100644
--- a/microkde/kresources/factory.h
+++ b/microkde/kresources/factory.h
@@ -34,6 +34,9 @@
namespace KRES {
+class SyncWidgetContainer;
+class ConfigWidget;
+
//US
struct PluginInfo
{
@@ -92,7 +95,7 @@ class Factory
* @param resource The resource to be editted.
* @param parent The parent widget
*/
- SyncWidget *syncWidget( const QString& type, QWidget *parent = 0 );
+ SyncWidgetContainer *syncWidgetContainer( const QString& type );
/**
* Returns a pointer to a resource object or a null pointer
diff --git a/microkde/kresources/resource.h b/microkde/kresources/resource.h
index c9202c9..580b5d1 100644
--- a/microkde/kresources/resource.h
+++ b/microkde/kresources/resource.h
@@ -40,7 +40,7 @@ class KConfig;
namespace KRES {
class ConfigWidget;
-class SyncWidget;
+class SyncWidgetContainer;
/**
* @internal
@@ -378,7 +378,7 @@ class PluginFactoryBase : public KLibFactory
virtual ConfigWidget *configWidget( QWidget *parent ) = 0;
- virtual SyncWidget *syncWidget( QWidget *parent ) = 0;
+ virtual SyncWidgetContainer *syncWidgetContainer() = 0;
protected:
virtual QObject* createObject( QObject*, const char*, const char*,
@@ -402,9 +402,9 @@ class PluginFactory : public PluginFactoryBase
return new TC( parent );
}
- virtual SyncWidget *syncWidget( QWidget *parent )
+ SyncWidgetContainer *syncWidgetContainer()
{
- return new TS( parent );
+ return new TS();
}
};
diff --git a/microkde/kresources/syncwidget.h b/microkde/kresources/syncwidget.h
index e94252c..6632b69 100644
--- a/microkde/kresources/syncwidget.h
+++ b/microkde/kresources/syncwidget.h
@@ -58,5 +58,15 @@ protected:
//US Resource* mResource;
};
+class SyncWidgetContainer : public QObject
+{
+ Q_OBJECT
+
+public:
+ virtual SyncWidget* generateSettingsTab(QWidget *parent = 0, const char *name = 0) = 0;
+ virtual SyncWidget* generateConflictsTab(QWidget *parent = 0, const char *name = 0) = 0;
+ virtual SyncWidget* generateRemoteTab(QWidget *parent = 0, const char *name = 0) = 0;
+};
+
}
#endif