[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