[Uml-devel] branches/work/soc-umbrello/umbrello

Andi Fischer andi.fischer at hispeed.ch
Sun Aug 16 14:08:00 UTC 2009


SVN commit 1011973 by fischer:

Select directory not a file in exportallviewsdialog, fixing crash in umlviewimageexporter.

 M  +2 -0      dialogs/exportallviewsdialog.cpp  
 M  +1 -2      umlscene.cpp  
 M  +13 -9     umlviewimageexporter.cpp  
 M  +3 -6      umlviewimageexporter.h  


--- branches/work/soc-umbrello/umbrello/dialogs/exportallviewsdialog.cpp #1011972:1011973
@@ -65,6 +65,8 @@
 
     // reload the strings so the m_imageType tooltip is added
     languageChange();
+    
+    m_kURL->setMode(KFile::Directory | KFile::ExistingOnly);
 }
 
 /**
--- branches/work/soc-umbrello/umbrello/umlscene.cpp #1011972:1011973
@@ -132,8 +132,7 @@
     m_pIDChangesLog = 0;
     m_pMenu = 0;
 
-    // [PORT] Port ImageExporter properly
-    m_pImageExporter = new UMLViewImageExporter(this->activeView());
+    m_pImageExporter = new UMLViewImageExporter();
 
     //setup signals
     connect(this, SIGNAL(sigRemovePopupMenu()), this, SLOT(slotRemovePopupMenu()));
--- branches/work/soc-umbrello/umbrello/umlviewimageexporter.cpp #1011972:1011973
@@ -33,9 +33,8 @@
 /**
  * Constructor for UMLViewImageExporter.
  */
-UMLViewImageExporter::UMLViewImageExporter(UMLView* view)
+UMLViewImageExporter::UMLViewImageExporter()
 {
-    m_view = view;
     m_imageMimeType = UMLApp::app()->getImageMimeType();
 }
 
@@ -66,11 +65,11 @@
         return;
     }
 
-    UMLApp *app = UMLApp::app();
+    UMLApp* app = UMLApp::app();
 
     // export the view
     app->getDocument()->writeToStatusBar(i18n("Exporting view..."));
-    QString error = UMLViewImageExporterModel().exportView(m_view,
+    QString error = UMLViewImageExporterModel().exportView(app->getCurrentView(),
                             UMLViewImageExporterModel::mimeTypeToImageType(m_imageMimeType), m_imageURL);
     if (!error.isNull()) {
         KMessageBox::error(app, i18n("An error happened when exporting the image:\n") + error);
@@ -124,9 +123,11 @@
 {
     bool success = true;
 
+    UMLApp *app = UMLApp::app();
+
     // configure & show the file dialog
     KUrl url;
-    QPointer<KFileDialog> dialog = new KFileDialog(url, QString(), m_view);
+    QPointer<KFileDialog> dialog = new KFileDialog(url, QString(), app->getCurrentView());
     prepareFileDialog(dialog);
     dialog->exec();
 
@@ -134,11 +135,12 @@
         success = false;
     }
     else {
-        m_view->umlScene()->clearSelected();   // Thanks to Peter Soetens for the idea
+        UMLScene* scene = app->getCurrentView()->umlScene();
+        scene->clearSelected();   // Thanks to Peter Soetens for the idea
 
         // update image url and mime type
         m_imageMimeType = dialog->currentMimeFilter();
-        UMLApp::app()->setImageMimeType(m_imageMimeType);
+        app->setImageMimeType(m_imageMimeType);
         m_imageURL = dialog->selectedUrl();
 
         // check if the extension is the extension of the mime type
@@ -173,9 +175,11 @@
         KUrl docURL = UMLApp::app()->getDocument()->url();
         KUrl directory = docURL;
         directory.setPath(docURL.directory());
+        fileDialog->setUrl(directory);
 
-        fileDialog->setUrl(directory);
-        fileDialog->setSelection(m_view->umlScene()->getName() + '.' + UMLViewImageExporterModel::mimeTypeToImageType(m_imageMimeType));
+        UMLApp *app = UMLApp::app();
+        QString sceneName = app->getCurrentView()->umlScene()->getName();
+        fileDialog->setSelection(sceneName + '.' + UMLViewImageExporterModel::mimeTypeToImageType(m_imageMimeType));
     } else {
         fileDialog->setUrl(m_imageURL);
         fileDialog->setSelection(m_imageURL.fileName());
--- branches/work/soc-umbrello/umbrello/umlviewimageexporter.h #1011972:1011973
@@ -26,25 +26,22 @@
 {
 public:
 
-    UMLViewImageExporter(UMLView* view);
+    UMLViewImageExporter();
     virtual ~UMLViewImageExporter();
 
     void exportView();
 
-    KUrl getImageURL() const { return m_imageURL; }
-
+    KUrl    getImageURL() const { return m_imageURL; }
     QString getImageMimeType() const { return m_imageMimeType; }
 
 private:
 
-    UMLView* m_view;           ///< The view to export.
     KUrl     m_imageURL;       ///< The URL used to save the image.
     QString  m_imageMimeType;  ///< The mime type used to save the image.
 
-    bool prepareExportView();
-
     bool getParametersFromUser();
 
+    bool prepareExportView();
     void prepareFileDialog(KFileDialog *fileDialog);
 
 };




More information about the umbrello-devel mailing list