[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/extragear/graphics/digikam/1.0-databaseext/libs
From:       Holger Foerster <hamsi2k () freenet ! de>
Date:       2010-02-04 19:56:25
Message-ID: 1265313385.432960.29566.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1085286 by foerster:

Improved database migration dialog.
Let the database widget return all database parameters.

 M  +17 -5     database/databasecopymanager.cpp  
 M  +1 -1      database/databasecopymanager.h  
 M  +14 -30    dialogs/migrationdlg.cpp  
 M  +3 -3      dialogs/migrationdlg.h  
 M  +34 -17    widgets/common/databasewidget.cpp  
 M  +2 -0      widgets/common/databasewidget.h  


--- branches/extragear/graphics/digikam/1.0-databaseext/libs/database/databasecopymanager.cpp \
#1085285:1085286 @@ -37,15 +37,25 @@
 
 namespace Digikam
 {
-    void DatabaseCopyManager::copyDatabases(DatabaseParameters *fromDBParameters, \
DatabaseParameters *toDBParameters) +    void \
DatabaseCopyManager::copyDatabases(DatabaseParameters fromDBParameters, \
DatabaseParameters toDBParameters)  {
         DatabaseLocking toLocking;
         DatabaseBackend toDBbackend(&toLocking, "MigrationToDatabase");
-        toDBbackend.open(*toDBParameters);
 
+        if (!toDBbackend.open(toDBParameters))
+        {
+            emit finishedFailure(i18n("Error while opening the target database."));
+            return;
+        }
+
+
         DatabaseLocking fromLocking;
         DatabaseBackend fromDBbackend(&fromLocking, "MigrationFromDatabase");
-        fromDBbackend.open(*fromDBParameters);
+        if (!fromDBbackend.open(fromDBParameters))
+        {
+            emit finishedFailure(i18n("Error while opening the source database."));
+            return;
+        }
 
 
         QMap<QString, QVariant> bindingMap;
@@ -55,11 +65,13 @@
 
         // then create the schema
         AlbumDB       albumDB(&toDBbackend);
-        SchemaUpdater updater(&albumDB, &toDBbackend, *toDBParameters);
+        SchemaUpdater updater(&albumDB, &toDBbackend, toDBParameters);
 
+        emit stepStarted(i18n("Create Schema..."));
         if (!updater.update())
         {
-            emit finishedFailure(i18n("Error while converting the database."));
+            emit finishedFailure(i18n("Error while creating the database schema."));
+            return;
         }
 
         emit stepStarted(i18n("Copy AlbumRoots..."));
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/database/databasecopymanager.h \
#1085285:1085286 @@ -37,7 +37,7 @@
         Q_OBJECT
 
         public:
-            void copyDatabases(DatabaseParameters *fromDBParameters, \
DatabaseParameters *toDBParameters); +            void \
copyDatabases(DatabaseParameters fromDBParameters, DatabaseParameters \
toDBParameters);  
         Q_SIGNALS:
             void stepStarted(QString stepName);
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/dialogs/migrationdlg.cpp \
#1085285:1085286 @@ -56,13 +56,13 @@
 
     void DatabaseCopyThread::run()
     {
-        copyManager.copyDatabases(fromDatabaseWidget, toDatabaseWidget);
+        copyManager.copyDatabases(fromDatabaseParameters, toDatabaseParameters);
     }
 
-    void DatabaseCopyThread::init(DatabaseParameters *fromDatabaseWidget, \
DatabaseParameters *toDatabaseWidget) +    void \
DatabaseCopyThread::init(DatabaseParameters fromDatabaseParameters, \
DatabaseParameters toDatabaseParameters)  {
-        this->fromDatabaseWidget=fromDatabaseWidget;
-        this->toDatabaseWidget=toDatabaseWidget;
+        this->fromDatabaseParameters=fromDatabaseParameters;
+        this->toDatabaseParameters=toDatabaseParameters;
     }
 
     MigrationDlg::MigrationDlg(QWidget* parent): KDialog(parent)
@@ -83,7 +83,7 @@
         migrateButton                   = new QPushButton(i18n("Migrate ->"), this);
         progressBar                     = new QProgressBar();
         progressBar->setTextVisible(true);
-        progressBar->setRange(0,14);
+        progressBar->setRange(0,13);
 
         QWidget *mainWidget     = new QWidget;
         QGridLayout *layout     = new QGridLayout;
@@ -98,37 +98,21 @@
         dataInit();
 
         connect(migrateButton, SIGNAL(clicked()), this, SLOT(performCopy()));
-    }
 
-    void MigrationDlg::performCopy()
-    {
-        DatabaseParameters *toDBParameters = new DatabaseParameters();
-        toDBParameters->readConfig();
-        toDBParameters->connectOptions = \
                toDatabaseWidget->connectionOptions->text();
-        toDBParameters->databaseName   = toDatabaseWidget->databaseName->text();
-        toDBParameters->databaseType   = \
                toDatabaseWidget->databaseType->currentText();
-        toDBParameters->hostName       = toDatabaseWidget->hostName->text();
-        toDBParameters->password       = toDatabaseWidget->password->text();
-        toDBParameters->port           = toDatabaseWidget->hostPort->text().toInt();
-        toDBParameters->userName       = toDatabaseWidget->userName->text();
 
-        DatabaseParameters *fromDBParameters = new DatabaseParameters();
-        fromDBParameters->readConfig();
-        fromDBParameters->connectOptions = \
                fromDatabaseWidget->connectionOptions->text();
-        fromDBParameters->databaseName   = fromDatabaseWidget->databaseName->text();
-        fromDBParameters->databaseType   = \
                fromDatabaseWidget->databaseType->currentText();
-        fromDBParameters->hostName       = fromDatabaseWidget->hostName->text();
-        fromDBParameters->password       = fromDatabaseWidget->password->text();
-        fromDBParameters->port           = \
                fromDatabaseWidget->hostPort->text().toInt();
-        fromDBParameters->userName       = fromDatabaseWidget->userName->text();
-
-        thread->init(fromDBParameters, toDBParameters);
-
-        // connect signal handlers
+        // connect signal handlers for copy thread
         this->connect(&(thread->copyManager), SIGNAL(finishedSuccessfully()), \
                SLOT(handleSuccessfullyFinish()));
         this->connect(&(thread->copyManager), SIGNAL(finishedFailure(QString)), \
                SLOT(handleFailureFinish(QString)));
         this->connect(&(thread->copyManager), SIGNAL(stepStarted(QString)), \
SLOT(handleStepStarted(QString)));  
+    }
+
+    void MigrationDlg::performCopy()
+    {
+        DatabaseParameters toDBParameters = \
toDatabaseWidget->getDatabaseParameters(); +        DatabaseParameters \
fromDBParameters = fromDatabaseWidget->getDatabaseParameters(); +        \
thread->init(fromDBParameters, toDBParameters); +
         lockInputFields();
         thread->start();
     }
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/dialogs/migrationdlg.h \
#1085285:1085286 @@ -49,12 +49,12 @@
             bool stop;
             void run();
 
-            void init(DatabaseParameters *fromDatabaseWidget, DatabaseParameters \
*toDatabaseWidget); +            void init(DatabaseParameters fromDatabaseWidget, \
DatabaseParameters toDatabaseWidget);  DatabaseCopyManager copyManager;
 
         private:
-            DatabaseParameters *fromDatabaseWidget;
-            DatabaseParameters *toDatabaseWidget;
+            DatabaseParameters fromDatabaseParameters;
+            DatabaseParameters toDatabaseParameters;
 };
 
 
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/widgets/common/databasewidget.cpp \
#1085285:1085286 @@ -220,23 +220,12 @@
         QString databaseID("ConnectionTest");
         QSqlDatabase testDatabase = \
QSqlDatabase::addDatabase(databaseType->currentText(), databaseID);  
-        if (internalServer->isChecked())
-        {
-           DatabaseParameters internalServerParameters = \
                DatabaseParameters::parametersFromConfig(databaseType->currentText());
                
-           testDatabase.setHostName(internalServerParameters.hostName);
-           testDatabase.setPort(internalServerParameters.port);
-           testDatabase.setUserName(internalServerParameters.userName);
-           testDatabase.setPassword(internalServerParameters.password);
-           testDatabase.setConnectOptions(internalServerParameters.connectOptions);
-           DatabaseServerStarter::startServerManagerProcess(databaseType->currentText());
                
-        }else
-        {
-            testDatabase.setHostName(hostName->text());
-            testDatabase.setPort(hostPort->text().toInt());
-            testDatabase.setUserName(userName->text());
-            testDatabase.setPassword(password->text());
-            testDatabase.setConnectOptions(connectionOptions->text());
-        }
+        DatabaseParameters parameters = getDatabaseParameters();
+        testDatabase.setHostName(parameters.hostName);
+        testDatabase.setPort(parameters.port);
+        testDatabase.setUserName(parameters.userName);
+        testDatabase.setPassword(parameters.password);
+        testDatabase.setConnectOptions(parameters.connectOptions);
 
         bool result = testDatabase.open();
         if (result == true){
@@ -291,4 +280,32 @@
             }
         }
     }
+
+    DatabaseParameters DatabaseWidget::getDatabaseParameters()
+    {
+        DatabaseParameters parameters;
+        if (internalServer->isChecked())
+        {
+           parameters = \
DatabaseParameters::parametersFromConfig(databaseType->currentText()); +           \
DatabaseServerStarter::startServerManagerProcess(databaseType->currentText()); +      \
}else +        {
+            parameters.connectOptions = connectionOptions->text();
+            parameters.databaseType   = databaseType->currentText();
+            parameters.hostName       = hostName->text();
+            parameters.password       = password->text();
+            parameters.port           = hostPort->text().toInt();
+            parameters.userName       = userName->text();
+
+            if (parameters.databaseType == "QSQLITE")
+            {
+                parameters.databaseName = QDir::cleanPath(databaseName->text() + '/' \
+ "digikam4.db"); +            }else
+            {
+                parameters.databaseName   = databaseName->text();
+            }
+        }
+        parameters.readConfig();
+        return parameters;
+    }
 }
--- branches/extragear/graphics/digikam/1.0-databaseext/libs/widgets/common/databasewidget.h \
#1085285:1085286 @@ -41,6 +41,7 @@
 // Local includes
 #include "digikam_export.h"
 #include "albumsettings.h"
+#include "databaseparameters.h"
 
 namespace Digikam
 {
@@ -75,6 +76,7 @@
 
 public:
     void setParametersFromSettings(const AlbumSettings *settings);
+    DatabaseParameters getDatabaseParameters();
 
 public Q_SLOTS:
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic