From kde-commits Thu Jan 20 12:13:44 2005 From: =?utf-8?q?Stanislav=20Vi=C5=A1=C5=88ovsk=C3=BD?= X-MARC-Message: https://marc.info/?l=kde-commits&m=110622323805797 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 #include +#include #include #include @@ -61,4 +62,5 @@ #include #include +#include #include #include @@ -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; }