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

List:       kde-commits
Subject:    branches/extragear/graphics/digikam/utilities/imageeditor/editor
From:       Marcel Wiesweg <marcel.wiesweg () gmx ! de>
Date:       2010-12-02 20:57:42
Message-ID: 20101202205742.2C534AC8A4 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1202949 by mwiesweg:

- apply enabling/disabling of non-destructive editing in setup
- add apply/cancel to toolbar when tool is active
  TODO: improved tool selection UI
- some factorization
  TODO: good UI solution to offer in-collection "save as" with format selection etc.



 M  +4 -0      digikamimagewindowui.rc  
 M  +2 -0      editortooliface.cpp  
 M  +38 -19    editorwindow.cpp  
 M  +6 -0      editorwindow.h  
 M  +5 -2      imagewindow.cpp  


--- branches/extragear/graphics/digikam/utilities/imageeditor/editor/digikamimagewindowui.rc \
#1202948:1202949 @@ -118,9 +118,13 @@
      <Action name="editorwindow_redo" />
      <Action name="editorwindow_revert" />
      <Separator/>
+     <Action name="editorwindow_applytool" />
+     <Action name="editorwindow_closetool" />
+     <!--
      <Action name="editorwindow_rotate_left" />
      <Action name="editorwindow_rotate_right" />
      <Action name="editorwindow_crop" />
+     -->
      <Merge />
      <WeakSeparator/>
      <Action name="logo_action" />
--- branches/extragear/graphics/digikam/utilities/imageeditor/editor/editortooliface.cpp \
#1202948:1202949 @@ -99,6 +99,7 @@
     d->editor->rightSideBar()->appendTab(d->tool->toolSettings(), \
d->tool->toolIcon(), d->tool->toolName());  \
d->editor->rightSideBar()->setActiveTab(d->tool->toolSettings());  \
d->editor->toggleActions(false); +    d->editor->toggleToolActions(true);
 
     // If editor tool has zoomable preview, switch on zoom actions.
     if (d->editor->editorStackView()->previewWidget())
@@ -159,6 +160,7 @@
     d->editor->editorStackView()->setToolView(0);
     d->editor->rightSideBar()->deleteTab(d->tool->toolSettings());
     d->editor->toggleActions(true);
+    d->editor->toggleToolActions(false);
     d->editor->setPreviewModeMask(PreviewToolBar::NoPreviewMode);
 
     // To restore canvas zoom level in zoom combobox.
--- branches/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp \
#1202948:1202949 @@ -179,6 +179,8 @@
     m_backwardAction         = 0;
     m_firstAction            = 0;
     m_lastAction             = 0;
+    m_applyToolAction        = 0;
+    m_closeToolAction        = 0;
     m_undoAction             = 0;
     m_redoAction             = 0;
     m_showBarAction          = 0;
@@ -400,9 +402,10 @@
     m_saveAsAction = KStandardAction::saveAs(this, SLOT(slotSaveAs()), this);
     actionCollection()->addAction("editorwindow_saveas", m_saveAsAction);
 
-    m_exportAction = new KAction(KIcon("document-save-as"),//"document-export"),
+    // This also triggers slotSaveAs, but in the context of non-destructive we want \
a slightly different appearance +    m_exportAction = new \
KAction(KIcon("document-export"),//"document-save-as"),  i18nc("@action", "Export"), \
                this);
-    m_exportAction->setToolTip(i18nc("@info:tooltip", "Save the file outside your \
collection")); +    m_exportAction->setToolTip(i18nc("@info:tooltip", "Save the file \
                in a folder outside your collection"));
     connect(m_exportAction, SIGNAL(triggered()), this, SLOT(slotSaveAs()));
     actionCollection()->addAction("editorwindow_export", m_exportAction);
 
@@ -640,25 +643,29 @@
 
     // -- Keyboard-only actions added to <MainWindow> ------------------------------
 
-    KAction* closeToolAction = new KAction(i18n("Close Tool"), this);
-    actionCollection()->addAction("editorwindow_closetool", closeToolAction);
-    closeToolAction->setShortcut(KShortcut(Qt::Key_Escape) );
-    connect(closeToolAction, SIGNAL(triggered()), this, SLOT(slotCloseTool()));
-
     KAction* altBackwardAction = new KAction(i18n("Previous Image"), this);
     actionCollection()->addAction("editorwindow_backward_shift_space", \
altBackwardAction);  altBackwardAction->setShortcut( \
                KShortcut(Qt::SHIFT+Qt::Key_Space) );
     connect(altBackwardAction, SIGNAL(triggered()), this, SLOT(slotBackward()));
 
-    KAction* applyToolAction = new KAction(i18n("Apply Tool"), this);
-    actionCollection()->addAction("editorwindow_apply_enter", applyToolAction);
-    applyToolAction->setShortcut( KShortcut(Qt::Key_Return) );
-    connect(applyToolAction, SIGNAL(triggered()), this, SLOT(slotApplyTool()));
+    // -- Tool control actions ------------------------------
 
+    m_applyToolAction = new KAction(KStandardGuiItem::ok().icon(), i18n("Ok"), \
this); +    actionCollection()->addAction("editorwindow_applytool", \
m_applyToolAction); +    m_applyToolAction->setShortcut( KShortcut(Qt::Key_Return) );
+    connect(m_applyToolAction, SIGNAL(triggered()), this, SLOT(slotApplyTool()));
+
+    m_closeToolAction = new KAction(KStandardGuiItem::cancel().icon(), \
i18n("Cancel"), this); +    actionCollection()->addAction("editorwindow_closetool", \
m_closeToolAction); +    m_closeToolAction->setShortcut(KShortcut(Qt::Key_Escape) );
+    connect(m_closeToolAction, SIGNAL(triggered()), this, SLOT(slotCloseTool()));
+
+
     m_animLogo = new DLogoAction(this);
     actionCollection()->addAction("logo_action", m_animLogo);
 
     toggleNonDestructiveActions();
+    toggleToolActions(false);
 }
 
 void EditorWindow::setupStatusBar()
@@ -1109,6 +1116,7 @@
     d->filePrintAction->setEnabled(val);
     m_fileDeleteAction->setEnabled(val);
     m_saveAsAction->setEnabled(val);
+    m_exportAction->setEnabled(val);
     d->selectAllAction->setEnabled(val);
     d->selectNoneAction->setEnabled(val);
     d->slideShowAction->setEnabled(val);
@@ -1124,10 +1132,12 @@
     }
     else
     {
+        m_openVersionAction->setEnabled(false);
         m_revertAction->setEnabled(false);
         m_saveAction->setEnabled(false);
         m_saveCurrentVersionAction->setEnabled(false);
         m_saveNewVersionAction->setEnabled(false);
+        m_discardChangesAction->setEnabled(false);
         m_undoAction->setEnabled(false);
         m_redoAction->setEnabled(false);
     }
@@ -1156,6 +1166,12 @@
     m_discardChangesAction->setVisible(m_nonDestructive);
 }
 
+void EditorWindow::toggleToolActions(bool hasTool)
+{
+    m_applyToolAction->setVisible(hasTool);
+    m_closeToolAction->setVisible(hasTool);
+}
+
 void EditorWindow::slotToggleFullScreen()
 {
     if (m_fullScreen) // out of fullscreen
@@ -2426,6 +2442,16 @@
     return startingSaveVersion(url, true);
 }
 
+VersionFileOperation EditorWindow::savingVersionFileInfo(const KUrl& url, bool fork)
+{
+    DImageHistory resolvedHistory = \
m_canvas->interface()->getResolvedInitialHistory(); +    DImageHistory history = \
m_canvas->interface()->getImageHistory(); +
+    VersionFileInfo currentName(url.directory(), url.fileName(), \
m_canvas->currentImageFileFormat()); +    return versionManager()->operation(fork ? \
VersionManager::NewVersionName : VersionManager::CurrentVersionName, +                \
currentName, resolvedHistory, history); +}
+
 bool EditorWindow::startingSaveVersion(const KUrl& url, bool fork)
 {
     kDebug() << "Saving image non-destructive, new version:" << fork;
@@ -2436,15 +2462,8 @@
     }
 
     m_savingContext = SavingContextContainer();
+    m_savingContext.versionFileOperation = savingVersionFileInfo(url, fork);
 
-    DImageHistory resolvedHistory = \
                m_canvas->interface()->getResolvedInitialHistory();
-    DImageHistory history = m_canvas->interface()->getImageHistory();
-
-    VersionFileInfo currentName(url.directory(), url.fileName(), \
                m_canvas->currentImageFileFormat());
-    m_savingContext.versionFileOperation
-    = versionManager()->operation(fork ? VersionManager::NewVersionName : \
                VersionManager::CurrentVersionName,
-                                  currentName, resolvedHistory, history);
-
     KUrl newURL = KUrl::fromPath(m_savingContext.versionFileOperation.saveFile.path);
                
     newURL.addPath(m_savingContext.versionFileOperation.saveFile.fileName);
 
--- branches/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.h \
#1202948:1202949 @@ -72,6 +72,7 @@
 class StatusProgressBar;
 class ThumbBarView;
 class VersionManager;
+class VersionFileOperation;
 
 class DIGIKAM_EXPORT EditorWindow : public KXmlGuiWindow
 {
@@ -128,6 +129,9 @@
     KAction*                 m_lastAction;
     KAction*                 m_firstAction;
 
+    KAction*                 m_applyToolAction;
+    KAction*                 m_closeToolAction;
+
     KSelectAction*           m_themeMenuAction;
 
     KToggleAction*           m_showBarAction;
@@ -162,6 +166,7 @@
     void toggleStandardActions(bool val);
     void toggleZoomActions(bool val);
     void toggleNonDestructiveActions();
+    void toggleToolActions(bool val);
 
     void printImage(const KUrl& url);
 
@@ -220,6 +225,7 @@
     virtual bool saveCurrentVersion()=0;
 
     virtual VersionManager* versionManager();
+    VersionFileOperation savingVersionFileInfo(const KUrl& url, bool fork);
 
     /**
      * Hook method that subclasses must implement to return the destination url
--- branches/extragear/graphics/digikam/utilities/imageeditor/editor/imagewindow.cpp \
#1202948:1202949 @@ -536,13 +536,16 @@
 void ImageWindow::slotSetupChanged()
 {
     applyStandardSettings();
-    toggleNonDestructiveActions();
 
     MetadataSettingsContainer writeSettings = \
                MetadataSettings::instance()->settings();
     m_setExifOrientationTag                 = writeSettings.exifSetOrientation;
     m_canvas->setExifOrient(writeSettings.exifRotate);
-    d->versionManager.setSettings(AlbumSettings::instance()->getVersionManagerSettings());
  
+    VersionManagerSettings versionSettings = \
AlbumSettings::instance()->getVersionManagerSettings(); +    \
d->versionManager.setSettings(versionSettings); +    m_nonDestructive = \
versionSettings.enabled; +    toggleNonDestructiveActions();
+
     d->thumbBar->applySettings();
     d->rightSideBar->setStyle(AlbumSettings::instance()->getSidebarTitleStyle());
     d->rightSideBar->applySettings();


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

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