[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