commit f0400ec7e518e753e0c4ccab4eb2b8b022f91767
Author: Gilles Caulier <caulier.gilles@gmail.com>
Date:   Tue Oct 28 15:58:55 2014 +0100

    apply patch #89156
    BUGS: 337737
    FIXED-IN: 4.5.0

diff --git core/libs/widgets/common/databasewidget.cpp b/libs/widgets/common/databasewidget.cpp
index b04355b..858cf40 100644
--- core/libs/widgets/common/databasewidget.cpp
+++ core/libs/widgets/common/databasewidget.cpp
@@ -172,30 +172,21 @@ void DatabaseWidget::setupMainArea()
                                   "<p><b>MySQL</b> backend is a more robust solution especially for remote and shared database storage. "
                                   "It is also more efficient to manage huge collection sizes. "
                                   "Be careful: this one it is still in experimental stage.</p>"));
-    setDatabaseInputFields(DatabaseParameters::SQLiteDatabaseType());
-
-    // --------------------------------------------------------
 
-    adjustSize();
+    setDatabaseInputFields(DatabaseParameters::SQLiteDatabaseType());
 
     // --------------------------------------------------------
 
-    connect(databasePathEdit, SIGNAL(urlSelected(KUrl)),
-            this, SLOT(slotChangeDatabasePath(KUrl)));
-
-    connect(databasePathEdit, SIGNAL(textChanged(QString)),
-            this, SLOT(slotDatabasePathEditedDelayed()));
-
     connect(databaseType, SIGNAL(currentIndexChanged(int)),
             this, SLOT(slotHandleDBTypeIndexChanged(int)));
 
+    connect(checkDatabaseConnectionButton, SIGNAL(clicked()),
+            this, SLOT(checkDatabaseConnection()));
+    
 #ifdef HAVE_INTERNALMYSQL
     connect(internalServer, SIGNAL(stateChanged(int)),
             this, SLOT(slotHandleInternalServerCheckbox(int)));
 #endif // HAVE_INTERNALMYSQL
-
-    connect(checkDatabaseConnectionButton, SIGNAL(clicked()),
-            this, SLOT(checkDatabaseConnection()));
 }
 
 QString DatabaseWidget::currentDatabaseType() const
@@ -261,12 +252,24 @@ void DatabaseWidget::setDatabaseInputFields(const QString& currentIndexStr)
         d->databasePathLabel->setVisible(true);
         databasePathEdit->setVisible(true);
         d->expertSettings->setVisible(false);
+
+        connect(databasePathEdit, SIGNAL(urlSelected(KUrl)),
+                this, SLOT(slotChangeDatabasePath(KUrl)));
+
+        connect(databasePathEdit, SIGNAL(textChanged(QString)),
+                this, SLOT(slotDatabasePathEditedDelayed()));
     }
     else
     {
         d->databasePathLabel->setVisible(false);
         databasePathEdit->setVisible(false);
         d->expertSettings->setVisible(true);
+        
+        disconnect(databasePathEdit, SIGNAL(urlSelected(KUrl)),
+                   this, SLOT(slotChangeDatabasePath(KUrl)));
+
+        disconnect(databasePathEdit, SIGNAL(textChanged(QString)),
+                   this, SLOT(slotDatabasePathEditedDelayed()));
     }
 
     adjustSize();
@@ -355,9 +358,9 @@ void DatabaseWidget::setParametersFromSettings(const ApplicationSettings* const
 
     password->setText(settings->getDatabasePassword());
 
-    /* Now set the type according the database type from the settings.
-     * If no item is found, ignore the setting.
-     */
+    // Now set the type according the database type from the settings.
+    // If no item is found, ignore the setting.
+
     for (int i=0; i<databaseType->count(); ++i)
     {
         //kDebug(50003) << "Comparing comboboxentry on index ["<< i <<"] [" << databaseType->itemData(i) 
