[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kraft] src: SetupAssistant fixes: Button status set, select proper database.
From: Klaas Freitag <freitag () kde ! org>
Date: 2015-05-31 19:18:34
Message-ID: E1Yz8kk-0002GM-II () scm ! kde ! org
[Download RAW message or body]
Git commit 9ada4da81b00e91cf116f7565987a35826f1c6b9 by Klaas Freitag.
Committed on 31/05/2015 at 19:16.
Pushed by freitag into branch 'master'.
SetupAssistant fixes: Button status set, select proper database.
A friendly contribution by Andreas Wuest, thanks!
M +25 -12 src/setupassistant.cpp
M +1 -0 src/setupassistant.h
http://commits.kde.org/kraft/9ada4da81b00e91cf116f7565987a35826f1c6b9
diff --git a/src/setupassistant.cpp b/src/setupassistant.cpp
index 95968b6..909630d 100644
--- a/src/setupassistant.cpp
+++ b/src/setupassistant.cpp
@@ -66,13 +66,23 @@ DbSelectPage::DbSelectPage(QWidget *parent)
QString DbSelectPage::selectedDriver()
{
- QString re = "QSQLITE";
+ QString re("QSQLITE");
if( ui.mRbMySQL->isChecked() ) {
- re = "QMYSQL";
+ re = QLatin1String("QMYSQL");
}
return re;
}
+void DbSelectPage::selectDriver(const QString& selectedDriver)
+{
+ if ( QLatin1String("QMYSQL") == selectedDriver ) {
+ ui.mRbMySQL->setChecked( true );
+ } else {
+ ui.mRbSqlite3->setChecked( true );
+ }
+}
+
+
// ---------------------------------------------------------------------------
SqLiteDetailsPage::SqLiteDetailsPage(QWidget *parent)
@@ -411,6 +421,9 @@ void SetupAssistant::back()
void SetupAssistant::slotCurrentPageChanged( KPageWidgetItem *current, KPageWidgetItem* /* previous */)
{
if( current == mCreateDbPageItem ) {
+ // disable next button by default, and enable it only when actions were successful
+ enableButton( KDialog::User2, false );
+
if( mSqlBackendDriver == QLatin1String("QMYSQL") ) {
if(!KraftDB::self()->dbConnect( QLatin1String("QMYSQL"),
mMysqlDetailsPage->dbName(),
@@ -422,17 +435,21 @@ void SetupAssistant::slotCurrentPageChanged( KPageWidgetItem *current, KPageWidg
}
} else {
if( !KraftDB::self()->dbConnect( QLatin1String("QSQLITE"), mSqLiteDetailsPage->url().pathOrUrl() ) ) {
- mCreateDbPage->setStatusText( i18n("<p>Can't open your database file, check the permissions and such."));
+ mCreateDbPage->setStatusText( i18n("<p>Can't open your database file, check the permissions and such.</p>"));
+ return;
}
}
if( !KraftDB::self()->databaseExists() ) {
kDebug() << "Start to create the database";
+ // reset the status text if we are connected to the db and db does not yet exist!
+ mCreateDbPage->setStatusText( QString() );
startDatabaseCreation();
} else {
kDebug() << "CreateDB-Page: Database already existing";
mCreateDbPage->setStatusText( i18n( "<p>The database is already existing, no action needs to be taken here.</p>"
"<p>Please hit <b>next</b> to proceed.</p>" ) );
+ enableButton( KDialog::User2, true );
}
}
@@ -568,11 +585,6 @@ void SetupAssistant::startDatabaseUpdate()
void SetupAssistant::startDatabaseCreation()
{
- if( ! KraftDB::self()->isOk() ) {
- mCreateDbPage->setStatusText( i18n("The Database can not be connected. Please check the database credentials!"));
- enableButton( KDialog::User2, false );
- return;
- }
enableButton( KDialog::User2, true );
mCreateDbPage->setStatusText( i18n("Parse Create Commands...") );
@@ -619,9 +631,9 @@ void SetupAssistant::startDatabaseCreation()
if( res ) {
mCreateDbPage->setStatusText( i18n( "Successfully finished commands." ) );
+ enableButton( KDialog::User2, true );
} else {
mCreateDbPage->setStatusText( i18n( "Failed to perform all commands." ) );
- // FIXME: Disable next button
}
disconnect( KraftDB::self(), SIGNAL(statusMessage( const QString&)),0 ,0 );
disconnect( KraftDB::self(), SIGNAL(processedSqlCommand(bool)),0 ,0 );
@@ -724,13 +736,14 @@ bool SetupAssistant::init( Mode mode )
if( KraftDB::self()->currentSchemaVersion() != KraftDB::self()->requiredSchemaVersion() ) {
kDebug() << "Need a database schema update.";
startDialog = true;
+ mDbSelectPage->selectDriver(DatabaseSettings::self()->dbDriver());
} else {
kDebug() << "Database Schema is OK. Nothing to do for StartupAssistant";
}
} else {
kDebug() << "The database is not existing. It needs to be recreated.";
startDialog = true;
-
+ mDbSelectPage->selectDriver(DatabaseSettings::self()->dbDriver());
text = i18n( "<p>The database can be opened, but does not contain valid content.</p>"
"<p>A new database can be created automatically from scratch.</p>");
}
@@ -738,13 +751,13 @@ bool SetupAssistant::init( Mode mode )
// unable to connect to the database at all
startDialog = true;
hitNextClosing = false;
- text = i18n( "<p>Kraft could not connect to the configured database.<p>" );
+ text = i18n( "<p>Kraft could not connect to the configured database.</p>" );
if( KraftDB::self()->qtDriver().toUpper() == "QMYSQL" ) {
text += i18n( "<p>Please check the database server setup and restart Kraft to connect." );
} else {
text += i18n("<p>Please check the database file.");
}
- text += " " + i18n( "or create a new database by hitting <b>next</b>.</p>" );
+ text += " " + i18n( "Or create a new database by hitting <b>next</b>.</p>" );
}
}
diff --git a/src/setupassistant.h b/src/setupassistant.h
index 5e431c6..9c5240c 100644
--- a/src/setupassistant.h
+++ b/src/setupassistant.h
@@ -61,6 +61,7 @@ class DbSelectPage:public QWidget
public:
DbSelectPage( QWidget *parent = 0 );
QString selectedDriver();
+ void selectDriver( const QString& );
private:
Ui::dbSelectForm ui;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic