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

List:       kde-commits
Subject:    kdesdk/kbabel/kbabel
From:       Stanislav Višňovský <visnovsky () nenya ! ms ! mff ! cuni ! cz
Date:       2005-01-20 12:13:44
Message-ID: 20050120121344.0A0B21CEB6 () office ! kde ! org
[Download RAW message or body]

CVS commit by nanulo: 

"save special" works again


  M +39 -20    kbabelview.cpp   1.269


--- kdesdk/kbabel/kbabel/kbabelview.cpp  #1.268:1.269
@@ -49,4 +49,5 @@
 #include <kcharsets.h>
 #include <kcmenumngr.h>
+#include <kconfigdialog.h>
 #include <kdatatool.h>
 #include <kglobal.h>
@@ -61,4 +62,5 @@
 #include <kio/netaccess.h>
 #include <knotifyclient.h>
+#include <ktempfile.h>
 #include <kspell.h>
 #include <kwin.h>
@@ -81,4 +83,5 @@
 #include "projectprefwidgets.h"
 #include "kbabel.h"
+#include "kbprojectmanager.h"
 
 #include "commentview.h"
@@ -1518,29 +1521,45 @@ bool KBabelView::saveFileAs(KURL url, bo
 bool KBabelView::saveFileSpecial()
 {
-    KDialogBase *_prefDialog = new KDialogBase( this, 0, true,
-        i18n("Special Save Settings"), KDialogBase::Cancel|KDialogBase::Ok|KDialogBase::Help);
+    QString tmpname;
+    bool result = false;
+    
+    {
+        // generate temporary name
+        KTempFile tmp;
+        tmp.setAutoDelete (true);
+        tmpname = tmp.name ();
+    }
+    
+    {
+        // make sure the project is freed (pointer going out of scope)
+        KBabel::Project::Ptr project = KBabel::ProjectManager::open (tmpname);
+    
+        project->setSettings( _catalog->saveSettings() );
+        KConfigDialog *_prefDialog = new KConfigDialog(this, "project dialog", project->settings(),
+                  KDialogBase::IconList, KDialogBase::Cancel|KDialogBase::Ok|KDialogBase::Help);
+
+        _prefDialog->setCaption( i18n("Special Save Settings") );
     _prefDialog->setHelp("preferences_save");
 
     SavePreferences* _prefWidget = new SavePreferences(_prefDialog);
     _prefWidget->setAutoSaveVisible(false);
-    _prefDialog->setMainWidget(_prefWidget);
-
-//    _prefWidget->setSettings( _catalog->saveSettings() );
-#warning SaveSpecial does not work
+        _prefDialog->addPage(_prefWidget, i18n("title of page in preferences dialog","Save")
+            , "filesave"
+            , i18n("Options for File Saving"));
 
     if( _prefDialog->exec() == QDialog::Accepted )
     {
-        SaveSettings settings;
-//      _prefWidget->mergeSettings(settings);
+            SaveSettings settings = project->saveSettings();
         SaveSettings originalSettings = _catalog->saveSettings();
         _catalog->setSettings(settings);
-        bool result = saveFileAs();
+            result = saveFileAs();
 
         _catalog->setSettings(originalSettings);
-
-        return result;
+        }
     }
 
-    return false;
+    unlink(tmpname.local8Bit());
+
+    return result;
 }
 


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

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