[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