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

List:       kde-commits
Subject:    koffice/kexi
From:       Jarosław Staniek <staniek () kde ! org>
Date:       2010-06-03 19:52:07
Message-ID: 20100603195207.C6421AC8C8 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1134266 by staniek:

Migration
*When source filename is preselected (e.g. when opening mdb file with Kexi), do not \
                display the source name selection page
*Append proper extension is not present, e.g. .kexi (regression in 2.x)



 M  +4 -0      doc/dev/CHANGELOG-Kexi-js  
 M  +27 -0     main/startup/KexiStartupFileWidget.cpp  
 M  +17 -11    migration/importwizard.cpp  
 M  +3 -0      migration/importwizard.h  


--- trunk/koffice/kexi/doc/dev/CHANGELOG-Kexi-js #1134265:1134266
@@ -99,6 +99,10 @@
 
 ~~~~~~~~~~~~~~~~ 2.3 alpha 1 ~~~~~~~~~~~~~~~~
 
+Migration
+*When source filename is preselected (e.g. when opening mdb file with Kexi), do not \
display the source name selection page +*Append proper extension is not present, e.g. \
.kexi (regression in 2.x) +
 **** TODO: setting "enabled" property to false does not work
 Forms
 *Image Box widget:
--- trunk/koffice/kexi/main/startup/KexiStartupFileWidget.cpp #1134265:1134266
@@ -339,6 +339,33 @@
         return false;
     }
 
+    if (!currentFilter().isEmpty()) {
+        if (d->mode & SavingFileBasedDB) {
+            const QStringList filters( currentFilter().split(" ") );
+            QString path = highlightedFile();
+            kDebug()<< "filter:" << filters << "path:" << path;
+            QString ext( QFileInfo(path).suffix() );
+            bool hasExtension = false;
+            foreach (const QString& filter, filters) {
+                const QString f( filter.trimmed() );
+                hasExtension = !f.mid(2).isEmpty() && ext==f.mid(2);
+                if (hasExtension)
+                break;
+            }
+            if (!hasExtension) {
+                //no extension: add one
+                QString defaultExtension( d->defaultExtension );
+                if (defaultExtension.isEmpty()) {
+                    defaultExtension = filters.first().trimmed().mid(2); //first one
+                }
+                path += (QLatin1String(".")+defaultExtension);
+                kDebug() << "appended extension" << path;
+                setSelection( path );
+                d->highlightedUrl = KUrl(path);
+            }
+        }
+    }
+
     kDebug() << "KexiStartupFileWidget::checkURL() path: " << d->highlightedUrl;
 // kDebug() << "KexiStartupFileWidget::checkURL() fname: " << url.fileName();
 //todo if ( url.isLocalFile() ) {
--- trunk/koffice/kexi/migration/importwizard.cpp #1134265:1134266
@@ -103,6 +103,8 @@
 //  m_srcTypeCombo->setCurrentText( driverName );
 
 //  showPage( m_srcConnPage );
+        setAppropriate(m_srcConnPageItem, false);
+        setAppropriate(m_srcDBPageItem, false);
         m_srcConn->showSimpleConn();
         m_srcConn->setSelectedFileName(m_predefinedDatabaseName);
 
@@ -145,6 +147,14 @@
     m_args->clear();
 }
 
+QString ImportWizard::selectedSourceFileName() const
+{
+    if (m_predefinedDatabaseName.isEmpty())
+        return m_srcConn->selectedFileName();
+
+    return m_predefinedDatabaseName;
+}
+
 //===========================================================
 //
 void ImportWizard::setupIntro()
@@ -484,11 +494,7 @@
 void ImportWizard::arriveDstTitlePage()
 {
     if (fileBasedSrcSelected()) {
-        QString fname;
-        if (m_predefinedDatabaseName.isEmpty())
-            fname = m_srcConn->selectedFileName();
-        else
-            fname = m_predefinedDatabaseName;
+        const QString fname(selectedSourceFileName());
         QString suggestedDBName(QFileInfo(fname).fileName());
         const QFileInfo fi(suggestedDBName);
         suggestedDBName = suggestedDBName.left(suggestedDBName.length()
@@ -607,12 +613,12 @@
 QString ImportWizard::driverNameForSelectedSource()
 {
     if (fileBasedSrcSelected()) {
-        KMimeType::Ptr ptr = \
KMimeType::findByFileContent(m_srcConn->selectedFileName()); +        KMimeType::Ptr \
ptr = KMimeType::findByFileContent(selectedSourceFileName());  if (!ptr
                 || ptr.data()->name() == "application/octet-stream"
                 || ptr.data()->name() == "text/plain") {
             //try by URL:
-            ptr = KMimeType::findByUrl(m_srcConn->selectedFileName());
+            ptr = KMimeType::findByUrl(selectedSourceFileName());
         }
         return ptr ? m_migrateManager.driverForMimeType(ptr.data()->name()) : \
QString();  }
@@ -743,7 +749,7 @@
         md->destination = new KexiProjectData(*cdata, dbname);
         if (fileBasedSrcSelected()) {
             KexiDB::ConnectionData* conn_data = new KexiDB::ConnectionData();
-            conn_data->setFileName(m_srcConn->selectedFileName());
+            conn_data->setFileName(selectedSourceFileName());
             md->source = conn_data;
             md->sourceName.clear();
         } else {
@@ -855,7 +861,7 @@
 {
     if (currentPage() == m_srcConnPageItem) {
         if (fileBasedSrcSelected()
-                && /*! @todo use KUrl? \
*/!QFileInfo(m_srcConn->selectedFileName()).isFile()) { +                && /*! @todo \
use KUrl? */!QFileInfo(selectedSourceFileName()).isFile()) {  
             KMessageBox::sorry(this, i18n("Select source database filename."));
             return;
@@ -870,7 +876,7 @@
         if (!import || m_migrateManager.error()) {
             QString dbname;
             if (fileBasedSrcSelected())
-                dbname = m_srcConn->selectedFileName();
+                dbname = selectedSourceFileName();
             else
                 dbname = m_srcConn->selectedConnectionData()
                          ? m_srcConn->selectedConnectionData()->serverInfoString() : \
QString(); @@ -978,7 +984,7 @@
 
 void ImportWizard::slotOptionsButtonClicked()
 {
-    QPointer<OptionsDialog> dlg = new OptionsDialog(m_srcConn->selectedFileName(), \
m_sourceDBEncoding, this); +    QPointer<OptionsDialog> dlg = new \
OptionsDialog(selectedSourceFileName(), m_sourceDBEncoding, this);  if \
                (QDialog::Accepted == dlg->exec()) {
         if (m_sourceDBEncoding != dlg->encodingComboBox()->selectedEncoding()) {
             m_sourceDBEncoding = dlg->encodingComboBox()->selectedEncoding();
--- trunk/koffice/kexi/migration/importwizard.h #1134265:1134266
@@ -119,6 +119,9 @@
     void arriveFinishPage();
     void arriveImportingPage();
 
+    //! @return source filename selected by user or preselected one (if present)
+    QString selectedSourceFileName() const;
+
     QWidget *m_introPageWidget, *m_srcConnPageWidget, *m_srcDBPageWidget,
     *m_dstTypePageWidget, *m_dstPageWidget, *m_importTypePageWidget, \
*m_importingPageWidget, *m_finishPageWidget;  


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

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