[digikam] more fixes for bars hiding in fullscreen mode kde#319876
nucleo
nucleo at fedoraproject.org
Fri May 31 13:59:30 UTC 2013
commit 28db91dd8ba886bc58b06b01ca2b7fde49097897
Author: nucleo <nucleo at fedoraproject.org>
Date: Fri May 31 16:59:15 2013 +0300
more fixes for bars hiding in fullscreen mode kde#319876
digikam-3.2.0-fullscreen.patch | 1739 ++++++++++++++++++++++++++++++++++++++++
digikam.spec | 6 +-
2 files changed, 1744 insertions(+), 1 deletions(-)
---
diff --git a/digikam-3.2.0-fullscreen.patch b/digikam-3.2.0-fullscreen.patch
index 9c9817f..e64d649 100644
--- a/digikam-3.2.0-fullscreen.patch
+++ b/digikam-3.2.0-fullscreen.patch
@@ -343,3 +343,1742 @@ index 4b48970..42e01b1 100644
void scrollTo(const QString& folder, const QString& file);
+diff --git a/digikam/main/digikamapp.cpp b/digikam/main/digikamapp.cpp
+index c28014e..0b59ee6 100644
+--- a/digikam/main/digikamapp.cpp
++++ b/digikam/main/digikamapp.cpp
+@@ -530,7 +530,7 @@ void DigikamApp::setupView()
+
+ void DigikamApp::setupViewConnections()
+ {
+- connect(d->view, SIGNAL(signalAlbumSelected(bool)),
++ connect(d->view, SIGNAL(signalAlbumSelected(bool)),
+ this, SLOT(slotAlbumSelected(bool)));
+
+ connect(d->view, SIGNAL(signalTagSelected(bool)),
+@@ -1148,13 +1148,24 @@ void DigikamApp::setupActions()
+
+ // -----------------------------------------------------------
+
++ d->showBarAction = new KToggleAction(KIcon("view-choose"), i18n("Show Thumbbar"), this);
++ d->showBarAction->setShortcut(KShortcut(Qt::CTRL+Qt::Key_T));
++ connect(d->showBarAction, SIGNAL(triggered()), this, SLOT(slotToggleShowBar()));
++ actionCollection()->addAction("showthumbs", d->showBarAction);
++
+ d->showMenuBarAction = KStandardAction::showMenubar(this, SLOT(slotShowMenuBar()), actionCollection());
+-
++
+ KStandardAction::keyBindings(this, SLOT(slotEditKeys()), actionCollection());
+ KStandardAction::configureToolbars(this, SLOT(slotConfToolbars()), actionCollection());
+ KStandardAction::configureNotifications(this, SLOT(slotConfNotifications()), actionCollection());
+ KStandardAction::preferences(this, SLOT(slotSetup()), actionCollection());
+
++ // Provides a menu entry that allows showing/hiding the toolbar(s)
++ setStandardToolBarMenuEnabled(true);
++
++ // Provides a menu entry that allows showing/hiding the statusbar
++ createStandardStatusBarAction();
++
+ // -----------------------------------------------------------
+
+ d->zoomPlusAction = KStandardAction::zoomIn(d->view, SLOT(slotZoomIn()), this);
+@@ -1221,13 +1232,6 @@ void DigikamApp::setupActions()
+ d->slideShowAction->addAction(d->slideShowQmlAction);
+ #endif // USE_PRESENTATION_MODE
+
+- // -----------------------------------------------------------
+-
+- d->showBarAction = new KToggleAction(KIcon("view-choose"), i18n("Show Thumbbar"), this);
+- d->showBarAction->setShortcut(KShortcut(Qt::CTRL+Qt::Key_T));
+- connect(d->showBarAction, SIGNAL(triggered()), this, SLOT(slotToggleShowBar()));
+- actionCollection()->addAction("showthumbs", d->showBarAction);
+-
+ // -----------------------------------------------------------
+
+ d->quitAction = KStandardAction::quit(this, SLOT(slotExit()), this);
+@@ -1306,12 +1310,6 @@ void DigikamApp::setupActions()
+
+ // -----------------------------------------------------------
+
+- // Provides a menu entry that allows showing/hiding the toolbar(s)
+- setStandardToolBarMenuEnabled(true);
+-
+- // Provides a menu entry that allows showing/hiding the statusbar
+- createStandardStatusBarAction();
+-
+ // Load Cameras -- do this before the createGUI so that the cameras
+ // are plugged into the toolbar at startup
+ if (d->splashScreen)
+@@ -1558,36 +1556,6 @@ void DigikamApp::slotSelectionChanged(int selectionCount)
+ }
+ }
+
+-void DigikamApp::slotSwitchedToPreview()
+-{
+- d->imagePreviewAction->setChecked(true);
+- d->zoomBar->setBarMode(DZoomBar::PreviewZoomCtrl);
+- d->showBarAction->setEnabled(true);
+-}
+-
+-void DigikamApp::slotSwitchedToIconView()
+-{
+- d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
+- d->imageIconViewAction->setChecked(true);
+- d->showBarAction->setEnabled(false);
+-}
+-
+-void DigikamApp::slotSwitchedToMapView()
+-{
+- //TODO: Link to map view's zoom actions
+- d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
+- d->imageMapViewAction->setChecked(true);
+- d->showBarAction->setEnabled(false);
+-}
+-
+-void DigikamApp::slotSwitchedToTableView()
+-{
+- d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
+- d->imageTableViewAction->setChecked(true);
+- d->showBarAction->setEnabled(false);
+-}
+-
+-
+ void DigikamApp::slotExit()
+ {
+ close();
+@@ -3023,7 +2991,7 @@ void DigikamApp::showSideBars(bool visible)
+
+ void DigikamApp::showThumbBar(bool visible)
+ {
+- d->view->toggleShowBar(visible);
++ d->view->toggleShowBar(visible & d->showBarAction->isEnabled());
+ }
+
+ bool DigikamApp::thumbbarVisibility() const
+@@ -3031,4 +2999,56 @@ bool DigikamApp::thumbbarVisibility() const
+ return d->showBarAction->isChecked();
+ }
+
++void DigikamApp::slotSwitchedToPreview()
++{
++ d->imagePreviewAction->setChecked(true);
++ d->zoomBar->setBarMode(DZoomBar::PreviewZoomCtrl);
++ toogleShowBar();
++}
++
++void DigikamApp::slotSwitchedToIconView()
++{
++ d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
++ d->imageIconViewAction->setChecked(true);
++ toogleShowBar();
++}
++
++void DigikamApp::slotSwitchedToMapView()
++{
++ //TODO: Link to map view's zoom actions
++ d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
++ d->imageMapViewAction->setChecked(true);
++ toogleShowBar();
++}
++
++void DigikamApp::slotSwitchedToTableView()
++{
++ d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
++ d->imageTableViewAction->setChecked(true);
++ toogleShowBar();
++}
++
++void DigikamApp::customizedFullScreenMode(bool set)
++{
++ statusBarMenuAction()->setEnabled(!set);
++ toolBarMenuAction()->setEnabled(!set);
++ d->showMenuBarAction->setEnabled(!set);
++ set ? d->showBarAction->setEnabled(false)
++ : toogleShowBar();
++}
++
++void DigikamApp::toogleShowBar()
++{
++ switch (d->view->viewMode())
++ {
++ case StackedView::PreviewImageMode:
++ d->showBarAction->setEnabled(true);
++ break;
++
++ default:
++ d->showBarAction->setEnabled(false);
++ break;
++ }
++}
++
+ } // namespace Digikam
+diff --git a/digikam/main/digikamapp.h b/digikam/main/digikamapp.h
+index 037ace7..9495f77 100644
+--- a/digikam/main/digikamapp.h
++++ b/digikam/main/digikamapp.h
+@@ -145,6 +145,8 @@ private:
+ void showThumbBar(bool visible);
+ void showSideBars(bool visible);
+ bool thumbbarVisibility() const;
++ void customizedFullScreenMode(bool set);
++ void toogleShowBar();
+
+ private Q_SLOTS:
+
+diff --git a/digikam/views/digikamview.cpp b/digikam/views/digikamview.cpp
+index 475bfdf..db78ef7 100644
+--- a/digikam/views/digikamview.cpp
++++ b/digikam/views/digikamview.cpp
+@@ -44,7 +44,6 @@
+
+ #include "albumhistory.h"
+ #include "albumsettings.h"
+-#include "stackedview.h"
+ #include "metadatasynchronizer.h"
+ #include "digikamapp.h"
+ #include "digikamimageview.h"
+@@ -255,8 +254,8 @@ DigikamView::DigikamView(QWidget* const parent, DigikamModelCollection* const mo
+ d->dockArea->setCentralWidget(d->stackedview);
+ d->stackedview->setDockArea(d->dockArea);
+
+- d->iconView = d->stackedview->imageIconView();
+- d->mapView = d->stackedview->mapWidgetView();
++ d->iconView = d->stackedview->imageIconView();
++ d->mapView = d->stackedview->mapWidgetView();
+ d->tableView = d->stackedview->tableView();
+
+ d->addPageUpDownActions(this, d->stackedview->imagePreviewView());
+@@ -738,25 +737,25 @@ KUrl::List DigikamView::allUrls() const
+ {
+ /// @todo This functions seems not to be used anywhere right now
+
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- return d->tableView->allUrls();
++ case StackedView::TableViewMode:
++ return d->tableView->allUrls();
+
+- default:
+- return d->iconView->urls();
++ default:
++ return d->iconView->urls();
+ }
+ }
+
+ KUrl::List DigikamView::selectedUrls() const
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- return d->tableView->selectedUrls();
++ case StackedView::TableViewMode:
++ return d->tableView->selectedUrls();
+
+- default:
+- return d->iconView->selectedUrls();
++ default:
++ return d->iconView->selectedUrls();
+ }
+ }
+
+@@ -774,57 +773,57 @@ void DigikamView::hideSideBars()
+
+ void DigikamView::slotFirstItem()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- d->tableView->slotGoToRow(0, false);
+- break;
++ case StackedView::TableViewMode:
++ d->tableView->slotGoToRow(0, false);
++ break;
+
+- default:
+- // all other views are tied to IconView's selection model
+- d->iconView->toFirstIndex();
++ default:
++ // all other views are tied to IconView's selection model
++ d->iconView->toFirstIndex();
+ }
+ }
+
+ void DigikamView::slotPrevItem()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- d->tableView->slotGoToRow(-1, true);
+- break;
++ case StackedView::TableViewMode:
++ d->tableView->slotGoToRow(-1, true);
++ break;
+
+- default:
+- // all other views are tied to IconView's selection model
+- d->iconView->toPreviousIndex();
++ default:
++ // all other views are tied to IconView's selection model
++ d->iconView->toPreviousIndex();
+ }
+ }
+
+ void DigikamView::slotNextItem()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- d->tableView->slotGoToRow(1, true);
+- break;
++ case StackedView::TableViewMode:
++ d->tableView->slotGoToRow(1, true);
++ break;
+
+- default:
+- // all other views are tied to IconView's selection model
+- d->iconView->toNextIndex();
++ default:
++ // all other views are tied to IconView's selection model
++ d->iconView->toNextIndex();
+ }
+ }
+
+ void DigikamView::slotLastItem()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- d->tableView->slotGoToRow(-1, false);
+- break;
++ case StackedView::TableViewMode:
++ d->tableView->slotGoToRow(-1, false);
++ break;
+
+- default:
+- // all other views are tied to IconView's selection model
+- d->iconView->toLastIndex();
++ default:
++ // all other views are tied to IconView's selection model
++ d->iconView->toLastIndex();
+ }
+ }
+
+@@ -1135,7 +1134,7 @@ void DigikamView::slotAlbumSelected(Album* album)
+ }
+ else
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::PreviewImageMode:
+ case StackedView::MediaPlayerMode:
+@@ -1235,7 +1234,7 @@ void DigikamView::slotImageSelected()
+ // delay to slotDispatchImageSelected
+ d->needDispatchSelection = true;
+ d->selectionTimer->start();
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ emit signalSelectionChanged(d->tableView->numberOfSelectedItems());
+@@ -1269,7 +1268,7 @@ void DigikamView::slotDispatchImageSelected()
+ ImageInfo previousInfo;
+ ImageInfo nextInfo;
+
+- if (d->stackedview->viewMode() == StackedView::TableViewMode)
++ if (viewMode() == StackedView::TableViewMode)
+ {
+ previousInfo = d->tableView->previousInfo();
+ nextInfo = d->tableView->nextInfo();
+@@ -1280,9 +1279,9 @@ void DigikamView::slotDispatchImageSelected()
+ nextInfo = d->iconView->nextInfo(list.first());
+ }
+
+- if ((d->stackedview->viewMode() != StackedView::IconViewMode) &&
+- (d->stackedview->viewMode() != StackedView::MapWidgetMode) &&
+- (d->stackedview->viewMode() != StackedView::TableViewMode) )
++ if ((viewMode() != StackedView::IconViewMode) &&
++ (viewMode() != StackedView::MapWidgetMode) &&
++ (viewMode() != StackedView::TableViewMode) )
+ {
+ d->stackedview->setPreviewItem(list.first(), previousInfo, nextInfo);
+ }
+@@ -1317,13 +1316,13 @@ void DigikamView::slotZoomFactorChanged(double zoom)
+
+ void DigikamView::setThumbSize(int size)
+ {
+- if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ if (viewMode() == StackedView::PreviewImageMode)
+ {
+ double z = DZoomBar::zoomFromSize(size, zoomMin(), zoomMax());
+ setZoomFactor(z);
+ }
+- else if ( (d->stackedview->viewMode() == StackedView::IconViewMode)
+- || (d->stackedview->viewMode() == StackedView::TableViewMode) )
++ else if ( (viewMode() == StackedView::IconViewMode)
++ || (viewMode() == StackedView::TableViewMode) )
+ {
+ if (size > ThumbnailSize::Huge)
+ {
+@@ -1355,7 +1354,7 @@ void DigikamView::slotThumbSizeEffect()
+
+ void DigikamView::toggleZoomActions()
+ {
+- if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ if (viewMode() == StackedView::PreviewImageMode)
+ {
+ d->parent->enableZoomMinusAction(true);
+ d->parent->enableZoomPlusAction(true);
+@@ -1370,8 +1369,8 @@ void DigikamView::toggleZoomActions()
+ d->parent->enableZoomMinusAction(false);
+ }
+ }
+- else if ( (d->stackedview->viewMode() == StackedView::IconViewMode)
+- || (d->stackedview->viewMode() == StackedView::TableViewMode) )
++ else if ( (viewMode() == StackedView::IconViewMode)
++ || (viewMode() == StackedView::TableViewMode) )
+ {
+ d->parent->enableZoomMinusAction(true);
+ d->parent->enableZoomPlusAction(true);
+@@ -1395,14 +1394,14 @@ void DigikamView::toggleZoomActions()
+
+ void DigikamView::slotZoomIn()
+ {
+- if ( (d->stackedview->viewMode() == StackedView::IconViewMode)
+- || (d->stackedview->viewMode() == StackedView::TableViewMode) )
++ if ( (viewMode() == StackedView::IconViewMode)
++ || (viewMode() == StackedView::TableViewMode) )
+ {
+ setThumbSize(d->thumbSize + ThumbnailSize::Step);
+ toggleZoomActions();
+ emit signalThumbSizeChanged(d->thumbSize);
+ }
+- else if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ else if (viewMode() == StackedView::PreviewImageMode)
+ {
+ d->stackedview->increaseZoom();
+ }
+@@ -1410,14 +1409,14 @@ void DigikamView::slotZoomIn()
+
+ void DigikamView::slotZoomOut()
+ {
+- if ( (d->stackedview->viewMode() == StackedView::IconViewMode)
+- || (d->stackedview->viewMode() == StackedView::TableViewMode) )
++ if ( (viewMode() == StackedView::IconViewMode)
++ || (viewMode() == StackedView::TableViewMode) )
+ {
+ setThumbSize(d->thumbSize - ThumbnailSize::Step);
+ toggleZoomActions();
+ emit signalThumbSizeChanged(d->thumbSize);
+ }
+- else if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ else if (viewMode() == StackedView::PreviewImageMode)
+ {
+ d->stackedview->decreaseZoom();
+ }
+@@ -1425,7 +1424,7 @@ void DigikamView::slotZoomOut()
+
+ void DigikamView::slotZoomTo100Percents()
+ {
+- if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ if (viewMode() == StackedView::PreviewImageMode)
+ {
+ d->stackedview->toggleFitToWindowOr100();
+ }
+@@ -1433,11 +1432,11 @@ void DigikamView::slotZoomTo100Percents()
+
+ void DigikamView::slotFitToWindow()
+ {
+- if (d->stackedview->viewMode() == StackedView::TableViewMode)
++ if (viewMode() == StackedView::TableViewMode)
+ {
+ /// @todo We should choose an appropriate thumbnail size here
+ }
+- else if (d->stackedview->viewMode() == StackedView::IconViewMode)
++ else if (viewMode() == StackedView::IconViewMode)
+ {
+ int nts = d->iconView->fitToWidthIcons();
+ kDebug() << "new thumb size = " << nts;
+@@ -1445,7 +1444,7 @@ void DigikamView::slotFitToWindow()
+ toggleZoomActions();
+ emit signalThumbSizeChanged(d->thumbSize);
+ }
+- else if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ else if (viewMode() == StackedView::PreviewImageMode)
+ {
+ d->stackedview->fitToWindow();
+ }
+@@ -1500,10 +1499,10 @@ void DigikamView::slotImageReadMetadata()
+
+ void DigikamView::slotEscapePreview()
+ {
+- if (d->stackedview->viewMode() == StackedView::IconViewMode ||
+- d->stackedview->viewMode() == StackedView::MapWidgetMode ||
+- d->stackedview->viewMode() == StackedView::TableViewMode ||
+- d->stackedview->viewMode() == StackedView::WelcomePageMode)
++ if (viewMode() == StackedView::IconViewMode ||
++ viewMode() == StackedView::MapWidgetMode ||
++ viewMode() == StackedView::TableViewMode ||
++ viewMode() == StackedView::WelcomePageMode)
+ {
+ return;
+ }
+@@ -1525,7 +1524,7 @@ void DigikamView::slotTableView()
+
+ void DigikamView::slotIconView()
+ {
+- if (d->stackedview->viewMode() == StackedView::PreviewImageMode)
++ if (viewMode() == StackedView::PreviewImageMode)
+ {
+ emit signalThumbSizeChanged(d->iconView->thumbnailSize().size());
+ }
+@@ -1547,14 +1546,14 @@ void DigikamView::slotImagePreview()
+ */
+ void DigikamView::slotTogglePreviewMode(const ImageInfo& info)
+ {
+- if ( (d->stackedview->viewMode() == StackedView::IconViewMode ||
+- d->stackedview->viewMode() == StackedView::TableViewMode ||
+- d->stackedview->viewMode() == StackedView::MapWidgetMode) &&
++ if ( (viewMode() == StackedView::IconViewMode ||
++ viewMode() == StackedView::TableViewMode ||
++ viewMode() == StackedView::MapWidgetMode) &&
+ !info.isNull() )
+ {
+- d->lastViewMode = d->stackedview->viewMode();
++ d->lastViewMode = viewMode();
+
+- if (d->stackedview->viewMode() == StackedView::IconViewMode)
++ if (viewMode() == StackedView::IconViewMode)
+ {
+ d->stackedview->setPreviewItem(info, d->iconView->previousInfo(info), d->iconView->nextInfo(info));
+ }
+@@ -1577,7 +1576,7 @@ void DigikamView::slotViewModeChanged()
+ {
+ toggleZoomActions();
+
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::IconViewMode:
+ emit signalSwitchedToIconView();
+@@ -1718,7 +1717,7 @@ void DigikamView::slotImageRename()
+
+ void DigikamView::slotImageDelete()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->slotDeleteSelected(ImageViewUtilities::DeleteUseTrash);
+@@ -1731,7 +1730,7 @@ void DigikamView::slotImageDelete()
+
+ void DigikamView::slotImageDeletePermanently()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->slotDeleteSelected(ImageViewUtilities::DeletePermanently);
+@@ -1744,7 +1743,7 @@ void DigikamView::slotImageDeletePermanently()
+
+ void DigikamView::slotImageDeletePermanentlyDirectly()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->slotDeleteSelectedWithoutConfirmation(ImageViewUtilities::DeletePermanently);
+@@ -1757,7 +1756,7 @@ void DigikamView::slotImageDeletePermanentlyDirectly()
+
+ void DigikamView::slotImageTrashDirectly()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->slotDeleteSelectedWithoutConfirmation(ImageViewUtilities::DeleteUseTrash);
+@@ -1770,7 +1769,7 @@ void DigikamView::slotImageTrashDirectly()
+
+ void DigikamView::slotSelectAll()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->selectAll();
+@@ -1783,7 +1782,7 @@ void DigikamView::slotSelectAll()
+
+ void DigikamView::slotSelectNone()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->clearSelection();
+@@ -1796,7 +1795,7 @@ void DigikamView::slotSelectNone()
+
+ void DigikamView::slotSelectInvert()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+ case StackedView::TableViewMode:
+ d->tableView->invertSelection();
+@@ -2061,68 +2060,68 @@ void DigikamView::imageTransform(RotationMatrix::TransformationAction transform)
+
+ ImageInfo DigikamView::currentInfo() const
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- return d->tableView->currentInfo();
++ case StackedView::TableViewMode:
++ return d->tableView->currentInfo();
+
+- case StackedView::MapWidgetMode:
+- return d->mapView->currentImageInfo();
++ case StackedView::MapWidgetMode:
++ return d->mapView->currentImageInfo();
+
+- case StackedView::MediaPlayerMode:
+- case StackedView::PreviewImageMode:
+- case StackedView::IconViewMode:
+- // all of these modes use the same selection model and data as the IconViewMode
+- return d->iconView->currentInfo();
++ case StackedView::MediaPlayerMode:
++ case StackedView::PreviewImageMode:
++ case StackedView::IconViewMode:
++ // all of these modes use the same selection model and data as the IconViewMode
++ return d->iconView->currentInfo();
+
+- default:
+- return ImageInfo();
++ default:
++ return ImageInfo();
+ }
+ }
+
+ QList< ImageInfo > DigikamView::selectedInfoList(const bool currentFirst) const
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- if (currentFirst)
+- {
+- return d->tableView->selectedImageInfosCurrentFirst();
+- }
+- return d->tableView->selectedImageInfos();
+-
+- case StackedView::PreviewImageMode:
+- case StackedView::MediaPlayerMode:
+- case StackedView::MapWidgetMode:
+- case StackedView::IconViewMode:
+- // all of these modes use the same selection model and data as the IconViewMode
+- if (currentFirst)
+- {
+- return d->iconView->selectedImageInfosCurrentFirst();
+- }
+- return d->iconView->selectedImageInfos();
++ case StackedView::TableViewMode:
++ if (currentFirst)
++ {
++ return d->tableView->selectedImageInfosCurrentFirst();
++ }
++ return d->tableView->selectedImageInfos();
+
+- default:
+- return QList<ImageInfo>();
++ case StackedView::PreviewImageMode:
++ case StackedView::MediaPlayerMode:
++ case StackedView::MapWidgetMode:
++ case StackedView::IconViewMode:
++ // all of these modes use the same selection model and data as the IconViewMode
++ if (currentFirst)
++ {
++ return d->iconView->selectedImageInfosCurrentFirst();
++ }
++ return d->iconView->selectedImageInfos();
++
++ default:
++ return QList<ImageInfo>();
+ }
+ }
+
+ ImageInfoList DigikamView::allInfo() const
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- return d->tableView->allInfo();
++ case StackedView::TableViewMode:
++ return d->tableView->allInfo();
+
+- case StackedView::MapWidgetMode:
+- case StackedView::PreviewImageMode:
+- case StackedView::MediaPlayerMode:
+- case StackedView::IconViewMode:
+- // all of these modes use the same selection model and data as the IconViewMode
+- return d->iconView->imageInfos();
++ case StackedView::MapWidgetMode:
++ case StackedView::PreviewImageMode:
++ case StackedView::MediaPlayerMode:
++ case StackedView::IconViewMode:
++ // all of these modes use the same selection model and data as the IconViewMode
++ return d->iconView->imageInfos();
+
+- default:
+- return QList<ImageInfo>();
++ default:
++ return QList<ImageInfo>();
+ }
+ }
+
+@@ -2135,30 +2134,34 @@ KUrl DigikamView::currentUrl() const
+
+ void DigikamView::slotSetCurrentWhenAvailable(const qlonglong id)
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- d->tableView->slotSetCurrentWhenAvailable(id);
+- break;
++ case StackedView::TableViewMode:
++ d->tableView->slotSetCurrentWhenAvailable(id);
++ break;
+
+- default:
+- d->iconView->setCurrentWhenAvailable(id);
++ default:
++ d->iconView->setCurrentWhenAvailable(id);
+ }
+ }
+
+ void DigikamView::slotAwayFromSelection()
+ {
+- switch (d->stackedview->viewMode())
++ switch (viewMode())
+ {
+- case StackedView::TableViewMode:
+- d->tableView->slotAwayFromSelection();
+- break;
++ case StackedView::TableViewMode:
++ d->tableView->slotAwayFromSelection();
++ break;
+
+- default:
+- d->iconView->awayFromSelection();
++ default:
++ d->iconView->awayFromSelection();
+ }
+ }
+
++StackedView::StackedViewMode DigikamView::viewMode() const
++{
++ return d->stackedview->viewMode();
++}
+
+ #ifdef USE_PRESENTATION_MODE
+
+diff --git a/digikam/views/digikamview.h b/digikam/views/digikamview.h
+index 9229fa6..fda66dc 100644
+--- a/digikam/views/digikamview.h
++++ b/digikam/views/digikamview.h
+@@ -49,6 +49,7 @@
+ #include "imageinfo.h"
+ #include "digikammodelcollection.h"
+ #include "sidebarwidget.h"
++#include "stackedview.h"
+
+ using namespace KExiv2Iface;
+
+@@ -98,7 +99,8 @@ public:
+
+ void toggleTag(int tagID);
+ QList<SidebarWidget*> leftSidebarWidgets() const;
+-
++ StackedView::StackedViewMode viewMode() const;
++
+ Q_SIGNALS:
+
+ void signalAlbumSelected(bool val);
+diff --git a/digikam/views/stackedview.h b/digikam/views/stackedview.h
+index 8c11e99..ae6f400 100644
+--- a/digikam/views/stackedview.h
++++ b/digikam/views/stackedview.h
+@@ -8,7 +8,7 @@
+ * or the current image preview.
+ *
+ * Copyright (C) 2006-2011 by Gilles Caulier <caulier dot gilles at gmail dot com>
+- * Copyright (C) 2013 by Michael G. Hansen <mike at mghansen dot de>
++ * Copyright (C) 2013 by Michael G. Hansen <mike at mghansen dot de>
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+@@ -64,13 +64,13 @@ public:
+ enum StackedViewMode
+ {
+ StackedViewModeFirst = 0,
+- IconViewMode = 0,
+- PreviewImageMode = 1,
+- WelcomePageMode = 2,
+- MediaPlayerMode = 3,
+- MapWidgetMode = 4,
+- TableViewMode = 5,
+- StackedViewModeLast = 5
++ IconViewMode = 0,
++ PreviewImageMode = 1,
++ WelcomePageMode = 2,
++ MediaPlayerMode = 3,
++ MapWidgetMode = 4,
++ TableViewMode = 5,
++ StackedViewModeLast = 5
+ };
+
+ public:
+@@ -81,22 +81,22 @@ public:
+ /* Attach the thumbnail dock widget to the specified QMainWindow. */
+ void setDockArea(QMainWindow*);
+
+- ThumbBarDock* thumbBarDock() const;
+- ImageThumbnailBar*thumbBar() const;
+- DigikamImageView* imageIconView() const;
+- ImagePreviewView* imagePreviewView() const;
+- MapWidgetView* mapWidgetView() const;
+- TableView* tableView() const;
+- MediaPlayerView* mediaPlayerView() const;
++ ThumbBarDock* thumbBarDock() const;
++ ImageThumbnailBar* thumbBar() const;
++ DigikamImageView* imageIconView() const;
++ ImagePreviewView* imagePreviewView() const;
++ MapWidgetView* mapWidgetView() const;
++ TableView* tableView() const;
++ MediaPlayerView* mediaPlayerView() const;
+
+ /**
+ * Single-file mode is image preview or media player,
+ * multi-file is icon view or map,
+ * abstract modes do not handle files (welcome page)
+ */
+- bool isInSingleFileMode() const;
++ bool isInSingleFileMode() const;
+ bool isInMultipleFileMode() const;
+- bool isInAbstractMode() const;
++ bool isInAbstractMode() const;
+
+ void setPreviewItem(const ImageInfo& info = ImageInfo(),
+ const ImageInfo& previous = ImageInfo(),
+diff --git a/libs/widgets/common/dxmlguiwindow.cpp b/libs/widgets/common/dxmlguiwindow.cpp
+index b577d68..c30ed2b 100644
+--- a/libs/widgets/common/dxmlguiwindow.cpp
++++ b/libs/widgets/common/dxmlguiwindow.cpp
+@@ -160,7 +160,7 @@ void DXmlGuiWindow::slotToggleFullScreen(bool set)
+ {
+ KToggleFullScreenAction::setFullScreen(this, set);
+
+- showCustomizedView(!set);
++ customizedFullScreenMode(set);
+
+ if (!set)
+ {
+@@ -406,6 +406,19 @@ void DXmlGuiWindow::showToolBars(bool visible)
+ }
+ }
+
++QAction* DXmlGuiWindow::statusBarMenuAction() const
++{
++ QList<QAction*> lst = actionCollection()->actions();
++
++ foreach(QAction* const act, lst)
++ {
++ if (act && QString(act->objectName()) == QString("options_show_statusbar"))
++ return act;
++ }
++
++ return 0;
++}
++
+ void DXmlGuiWindow::showSideBars(bool visible)
+ {
+ Q_UNUSED(visible);
+@@ -416,9 +429,9 @@ void DXmlGuiWindow::showThumbBar(bool visible)
+ Q_UNUSED(visible);
+ }
+
+-void DXmlGuiWindow::showCustomizedView(bool visible)
++void DXmlGuiWindow::customizedFullScreenMode(bool set)
+ {
+- Q_UNUSED(visible);
++ Q_UNUSED(set);
+ }
+
+ bool DXmlGuiWindow::thumbbarVisibility() const
+diff --git a/libs/widgets/common/dxmlguiwindow.h b/libs/widgets/common/dxmlguiwindow.h
+index 750031d..d6d633a 100644
+--- a/libs/widgets/common/dxmlguiwindow.h
++++ b/libs/widgets/common/dxmlguiwindow.h
+@@ -97,6 +97,8 @@ public:
+ /** Return true if managed window is currently in Full Screen Mode
+ */
+ bool fullScreenIsActive() const;
++
++ QAction* statusBarMenuAction() const;
+
+ protected:
+
+@@ -114,9 +116,9 @@ protected:
+ virtual void showThumbBar(bool visible);
+
+ /** Re-implement this method if you want to manage customized view visibility in full-screen mode.
+- * By default this method do nothing.
++ * This method is called by switchWindowToFullScreen(). By default this method do nothing.
+ */
+- virtual void showCustomizedView(bool visible);
++ virtual void customizedFullScreenMode(bool set);
+
+ /** Re-implement this method if managed window has a thumbbar. This must return visibility state of it.
+ */
+diff --git a/showfoto/main/showfoto.cpp b/showfoto/main/showfoto.cpp
+index bcc1855..3372d48 100644
+--- a/showfoto/main/showfoto.cpp
++++ b/showfoto/main/showfoto.cpp
+@@ -487,12 +487,6 @@ void ShowFoto::setupActions()
+ Digikam::ThemeManager::instance()->setThemeMenuAction(new KActionMenu(i18n("&Themes"), this));
+ setupStandardActions();
+
+- // Provides a menu entry that allows showing/hiding the toolbar(s)
+- setStandardToolBarMenuEnabled(true);
+-
+- // Provides a menu entry that allows showing/hiding the statusbar
+- createStandardStatusBarAction();
+-
+ // Extra 'File' menu actions ---------------------------------------------
+
+ d->fileOpenAction = actionCollection()->addAction(KStandardAction::Open, "showfoto_open_file",
+diff --git a/utilities/imageeditor/editor/editorwindow.cpp b/utilities/imageeditor/editor/editorwindow.cpp
+index d3d9665..45649ec 100644
+--- a/utilities/imageeditor/editor/editorwindow.cpp
++++ b/utilities/imageeditor/editor/editorwindow.cpp
+@@ -542,9 +542,6 @@ void EditorWindow::setupStandardActions()
+ connect(d->viewSoftProofAction, SIGNAL(triggered()), this, SLOT(slotUpdateSoftProofingState()));
+ actionCollection()->addAction("editorwindow_softproofview", d->viewSoftProofAction);
+
+- m_showBarAction = thumbBar()->getToggleAction(this);
+- actionCollection()->addAction("editorwindow_showthumbs", m_showBarAction);
+-
+ // -- Standard 'Transform' menu actions ---------------------------------------------
+
+ d->cropAction = new KAction(KIcon("transform-crop-and-resize"), i18nc("@action", "Crop to Selection"), this);
+@@ -591,14 +588,23 @@ void EditorWindow::setupStandardActions()
+
+ // -- Standard 'Configure' menu actions ----------------------------------------
+
++ m_showBarAction = thumbBar()->getToggleAction(this);
++ actionCollection()->addAction("editorwindow_showthumbs", m_showBarAction);
++
+ d->showMenuBarAction = KStandardAction::showMenubar(this, SLOT(slotShowMenuBar()), actionCollection());
+ d->showMenuBarAction->setChecked(!menuBar()->isHidden()); // NOTE: workaround for B.K.O #171080
+
+ KStandardAction::keyBindings(this, SLOT(slotEditKeys()), actionCollection());
+ KStandardAction::configureToolbars(this, SLOT(slotConfToolbars()), actionCollection());
+ KStandardAction::configureNotifications(this, SLOT(slotConfNotifications()), actionCollection());
+- KStandardAction::preferences(this, SLOT(setup()), actionCollection());
+-
++ KStandardAction::preferences(this, SLOT(setup()), actionCollection());
++
++ // Provides a menu entry that allows showing/hiding the toolbar(s)
++ setStandardToolBarMenuEnabled(true);
++
++ // Provides a menu entry that allows showing/hiding the statusbar
++ createStandardStatusBarAction();
++
+ // ---------------------------------------------------------------------------------
+
+ ThemeManager::instance()->registerThemeActions(this);
+@@ -2960,10 +2966,15 @@ bool EditorWindow::thumbbarVisibility() const
+ return thumbBar()->isVisible();
+ }
+
+-void EditorWindow::showCustomizedView(bool visible)
++void EditorWindow::customizedFullScreenMode(bool set)
+ {
+- visible ? m_canvas->setBackgroundColor(QColor(Qt::black))
+- : m_canvas->setBackgroundColor(m_bgColor);
++ set ? m_canvas->setBackgroundColor(QColor(Qt::black))
++ : m_canvas->setBackgroundColor(m_bgColor);
++
++ statusBarMenuAction()->setEnabled(!set);
++ toolBarMenuAction()->setEnabled(!set);
++ d->showMenuBarAction->setEnabled(!set);
++ m_showBarAction->setEnabled(!set);
+ }
+
+ } // namespace Digikam
+diff --git a/utilities/imageeditor/editor/editorwindow.h b/utilities/imageeditor/editor/editorwindow.h
+index bd2b696..d05d65f 100644
+--- a/utilities/imageeditor/editor/editorwindow.h
++++ b/utilities/imageeditor/editor/editorwindow.h
+@@ -329,7 +329,7 @@ private:
+ void quitWaitingLoop();
+ void showSideBars(bool visible);
+ void showThumbBar(bool visible);
+- void showCustomizedView(bool visible);
++ void customizedFullScreenMode(bool set);
+ bool thumbbarVisibility() const;
+ void setColorManagedViewIndicatorToolTip(bool available, bool cmv);
+ void setUnderExposureToolTip(bool uei);
+diff --git a/utilities/imageeditor/main/imagewindow.cpp b/utilities/imageeditor/main/imagewindow.cpp
+index 9a7703b..c3ce534 100644
+--- a/utilities/imageeditor/main/imagewindow.cpp
++++ b/utilities/imageeditor/main/imagewindow.cpp
+@@ -426,12 +426,6 @@ void ImageWindow::setupActions()
+ {
+ setupStandardActions();
+
+- // Provides a menu entry that allows showing/hiding the toolbar(s)
+- setStandardToolBarMenuEnabled(true);
+-
+- // Provides a menu entry that allows showing/hiding the statusbar
+- createStandardStatusBarAction();
+-
+ d->toMainWindowAction = new KAction(KIcon("view-list-icons"),
+ i18nc("@action Finish editing, close editor, back to main window", "Close Editor"), this);
+ connect(d->toMainWindowAction, SIGNAL(triggered()), this, SLOT(slotToMainWindow()));
+diff --git a/utilities/importui/main/importui.cpp b/utilities/importui/main/importui.cpp
+index 03b53bb..708a2c4 100644
+--- a/utilities/importui/main/importui.cpp
++++ b/utilities/importui/main/importui.cpp
+@@ -2386,31 +2386,6 @@ void ImportUI::autoRotateItems()
+ FileActionMngr::instance()->transform(list, KExiv2Iface::RotationMatrix::NoTransformation);
+ }
+
+-#include "../main/importui.h"
+-void ImportUI::slotSwitchedToPreview()
+-{
+- d->camItemPreviewAction->setChecked(true);
+- d->zoomBar->setBarMode(DZoomBar::PreviewZoomCtrl);
+- d->showBarAction->setEnabled(true);
+- d->imageViewSelectionAction->setCurrentAction(d->camItemPreviewAction);
+-}
+-
+-void ImportUI::slotSwitchedToIconView()
+-{
+- d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
+- d->iconViewAction->setChecked(true);
+- d->showBarAction->setEnabled(false);
+- d->imageViewSelectionAction->setCurrentAction(d->iconViewAction);
+-}
+-
+-void ImportUI::slotSwitchedToMapView()
+-{
+- d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
+- d->mapViewAction->setChecked(true);
+- d->showBarAction->setEnabled(false);
+- d->imageViewSelectionAction->setCurrentAction(d->mapViewAction);
+-}
+-
+ bool ImportUI::createAutoAlbum(const KUrl& parentURL, const QString& sub,
+ const QDate& date, QString& errMsg) const
+ {
+@@ -2583,7 +2558,7 @@ void ImportUI::showSideBars(bool visible)
+
+ void ImportUI::showThumbBar(bool visible)
+ {
+- d->view->toggleShowBar(visible);
++ d->view->toggleShowBar(visible & d->showBarAction->isEnabled());
+ }
+
+ bool ImportUI::thumbbarVisibility() const
+@@ -2591,4 +2566,51 @@ bool ImportUI::thumbbarVisibility() const
+ return d->showBarAction->isChecked();
+ }
+
++void ImportUI::slotSwitchedToPreview()
++{
++ d->camItemPreviewAction->setChecked(true);
++ d->zoomBar->setBarMode(DZoomBar::PreviewZoomCtrl);
++ d->imageViewSelectionAction->setCurrentAction(d->camItemPreviewAction);
++ toogleShowBar();
++}
++
++void ImportUI::slotSwitchedToIconView()
++{
++ d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
++ d->iconViewAction->setChecked(true);
++ d->imageViewSelectionAction->setCurrentAction(d->iconViewAction);
++ toogleShowBar();
++}
++
++void ImportUI::slotSwitchedToMapView()
++{
++ d->zoomBar->setBarMode(DZoomBar::ThumbsSizeCtrl);
++ d->mapViewAction->setChecked(true);
++ d->imageViewSelectionAction->setCurrentAction(d->mapViewAction);
++ toogleShowBar();
++}
++
++void ImportUI::customizedFullScreenMode(bool set)
++{
++ statusBarMenuAction()->setEnabled(!set);
++ toolBarMenuAction()->setEnabled(!set);
++ d->showMenuBarAction->setEnabled(!set);
++ set ? d->showBarAction->setEnabled(false)
++ : toogleShowBar();
++}
++
++void ImportUI::toogleShowBar()
++{
++ switch (d->view->viewMode())
++ {
++ case ImportStackedView::PreviewImageMode:
++ d->showBarAction->setEnabled(true);
++ break;
++
++ default:
++ d->showBarAction->setEnabled(false);
++ break;
++ }
++}
++
+ } // namespace Digikam
+diff --git a/utilities/importui/main/importui.h b/utilities/importui/main/importui.h
+index e540a0d..2f386be 100644
+--- a/utilities/importui/main/importui.h
++++ b/utilities/importui/main/importui.h
+@@ -147,6 +147,8 @@ private:
+ void showThumbBar(bool visible);
+ void showSideBars(bool visible);
+ bool thumbbarVisibility() const;
++ void customizedFullScreenMode(bool set);
++ void toogleShowBar();
+
+ private Q_SLOTS:
+
+diff --git a/utilities/importui/views/importstackedview.cpp b/utilities/importui/views/importstackedview.cpp
+index 50af28c..e9cb42b 100644
+--- a/utilities/importui/views/importstackedview.cpp
++++ b/utilities/importui/views/importstackedview.cpp
+@@ -97,7 +97,7 @@ ImportStackedView::ImportStackedView(CameraController* const controller, QWidget
+ insertWidget(MediaPlayerMode, d->mediaPlayerView);
+ insertWidget(MapWidgetMode, d->mapWidgetView);
+
+- setPreviewMode(PreviewCameraMode);
++ setViewMode(PreviewCameraMode);
+ setAttribute(Qt::WA_DeleteOnClose);
+
+ readSettings();
+@@ -211,7 +211,7 @@ ImportThumbnailBar* ImportStackedView::thumbBar() const
+
+ void ImportStackedView::slotEscapePreview()
+ {
+- if (previewMode() == MediaPlayerMode)
++ if (viewMode() == MediaPlayerMode)
+ {
+ d->mediaPlayerView->escapePreview();
+ }
+@@ -251,11 +251,11 @@ void ImportStackedView::setPreviewItem(const CamItemInfo& info, const CamItemInf
+ {
+ if (info.isNull())
+ {
+- if (previewMode() == MediaPlayerMode)
++ if (viewMode() == MediaPlayerMode)
+ {
+ d->mediaPlayerView->setCurrentItem();
+ }
+- else if (previewMode() == PreviewImageMode)
++ else if (viewMode() == PreviewImageMode)
+ {
+ d->importPreviewView->setCamItemInfo();
+ }
+@@ -265,18 +265,18 @@ void ImportStackedView::setPreviewItem(const CamItemInfo& info, const CamItemInf
+ if (identifyCategoryforMime(info.mime) == "audio" || identifyCategoryforMime(info.mime) == "video")
+ {
+ // Stop image viewer
+- if (previewMode() == PreviewImageMode)
++ if (viewMode() == PreviewImageMode)
+ {
+ d->importPreviewView->setCamItemInfo();
+ }
+
+- setPreviewMode(MediaPlayerMode);
++ setViewMode(MediaPlayerMode);
+ d->mediaPlayerView->setCurrentItem(info.url(), !previous.isNull(), !next.isNull());
+ }
+ else
+ {
+ // Stop media player if running...
+- if (previewMode() == MediaPlayerMode)
++ if (viewMode() == MediaPlayerMode)
+ {
+ d->mediaPlayerView->setCurrentItem();
+ }
+@@ -299,12 +299,12 @@ QString ImportStackedView::identifyCategoryforMime(const QString& mime) const
+ return mime.split('/').at(0);
+ }
+
+-int ImportStackedView::previewMode() const
++ImportStackedView::StackedViewMode ImportStackedView::viewMode() const
+ {
+- return indexOf(currentWidget());
++ return (StackedViewMode)(indexOf(currentWidget()));
+ }
+
+-void ImportStackedView::setPreviewMode(const int mode)
++void ImportStackedView::setViewMode(const StackedViewMode mode)
+ {
+ if (mode != PreviewCameraMode && mode != PreviewImageMode &&
+ mode != MediaPlayerMode && mode != MapWidgetMode)
+@@ -407,7 +407,7 @@ void ImportStackedView::previewLoaded()
+
+ void ImportStackedView::slotZoomFactorChanged(double z)
+ {
+- if (previewMode() == PreviewImageMode)
++ if (viewMode() == PreviewImageMode)
+ {
+ emit signalZoomFactorChanged(z);
+ }
+@@ -476,7 +476,7 @@ double ImportStackedView::zoomMax() const
+
+ void ImportStackedView::slotPreviewLoaded(bool)
+ {
+- setPreviewMode(ImportStackedView::PreviewImageMode);
++ setViewMode(ImportStackedView::PreviewImageMode);
+ previewLoaded();
+ }
+
+diff --git a/utilities/importui/views/importstackedview.h b/utilities/importui/views/importstackedview.h
+index 104326e..f87214e 100644
+--- a/utilities/importui/views/importstackedview.h
++++ b/utilities/importui/views/importstackedview.h
+@@ -78,8 +78,8 @@ public:
+ const CamItemInfo& previous = CamItemInfo(),
+ const CamItemInfo& next = CamItemInfo());
+
+- int previewMode() const;
+- void setPreviewMode(const int mode);
++ StackedViewMode viewMode() const;
++ void setViewMode(const StackedViewMode mode);
+ void previewLoaded();
+
+ void increaseZoom();
+diff --git a/utilities/importui/views/importview.cpp b/utilities/importui/views/importview.cpp
+index a15728d..52f62af 100644
+--- a/utilities/importui/views/importview.cpp
++++ b/utilities/importui/views/importview.cpp
+@@ -37,7 +37,6 @@
+
+ #include "importui.h"
+ #include "importiconview.h"
+-#include "importstackedview.h"
+ #include "thumbnailsize.h"
+ #include "fileactionmngr.h"
+ #include "importsettings.h"
+@@ -63,33 +62,33 @@ public:
+ parent(0),
+ iconView(0),
+ mapView(0),
+- StackedView(0),
+- lastPreviewMode(ImportStackedView::PreviewCameraMode)
++ stackedView(0),
++ lastViewMode(ImportStackedView::PreviewCameraMode)
+ //FIXME: filterWidget(0)
+ {
+ }
+
+- void addPageUpDownActions(ImportView* const q, QWidget* const w);
++ void addPageUpDownActions(ImportView* const q, QWidget* const w);
+
+ public:
+
+- bool needDispatchSelection;
++ bool needDispatchSelection;
+
+- int thumbSize;
++ int thumbSize;
+
+- QMainWindow* dockArea;
++ QMainWindow* dockArea;
+
+- SidebarSplitter* splitter;
++ SidebarSplitter* splitter;
+
+- QTimer* selectionTimer;
+- QTimer* thumbSizeTimer;
++ QTimer* selectionTimer;
++ QTimer* thumbSizeTimer;
+
+- ImportUI* parent;
++ ImportUI* parent;
+
+- ImportIconView* iconView;
+- MapWidgetView* mapView;
+- ImportStackedView* StackedView;
+- int lastPreviewMode;
++ ImportIconView* iconView;
++ MapWidgetView* mapView;
++ ImportStackedView* stackedView;
++ ImportStackedView::StackedViewMode lastViewMode;
+
+ //FIXME: FilterSideBarWidget* filterWidget;
+
+@@ -125,16 +124,16 @@ ImportView::ImportView(ImportUI* const ui, QWidget* const parent)
+ // The dock area where the thumbnail bar is allowed to go.
+ d->dockArea = new QMainWindow(this, Qt::Widget);
+ d->splitter->addWidget(d->dockArea);
+- d->StackedView = new ImportStackedView(d->parent->getCameraController(), d->dockArea);
+- d->dockArea->setCentralWidget(d->StackedView);
+- d->StackedView->setDockArea(d->dockArea);
++ d->stackedView = new ImportStackedView(d->parent->getCameraController(), d->dockArea);
++ d->dockArea->setCentralWidget(d->stackedView);
++ d->stackedView->setDockArea(d->dockArea);
+
+- d->iconView = d->StackedView->importIconView();
+- d->mapView = d->StackedView->mapWidgetView();
++ d->iconView = d->stackedView->importIconView();
++ d->mapView = d->stackedView->mapWidgetView();
+
+- d->addPageUpDownActions(this, d->StackedView->importPreviewView());
+- d->addPageUpDownActions(this, d->StackedView->thumbBar());
+- d->addPageUpDownActions(this, d->StackedView->mediaPlayerView());
++ d->addPageUpDownActions(this, d->stackedView->importPreviewView());
++ d->addPageUpDownActions(this, d->stackedView->thumbBar());
++ d->addPageUpDownActions(this, d->stackedView->mediaPlayerView());
+
+ d->selectionTimer = new QTimer(this);
+ d->selectionTimer->setSingleShot(true);
+@@ -172,7 +171,7 @@ void ImportView::setupConnections()
+ this, SLOT(slotEscapePreview()));
+
+ connect(d->parent, SIGNAL(signalEscapePressed()),
+- d->StackedView, SLOT(slotEscapePreview()));
++ d->stackedView, SLOT(slotEscapePreview()));
+
+ // Preview items while download.
+ connect(d->parent, SIGNAL(signalPreviewRequested(CamItemInfo,bool)),
+@@ -203,22 +202,22 @@ void ImportView::setupConnections()
+
+ // -- Preview image widget Connections ------------------------
+
+- connect(d->StackedView, SIGNAL(signalNextItem()),
++ connect(d->stackedView, SIGNAL(signalNextItem()),
+ this, SLOT(slotNextItem()));
+
+- connect(d->StackedView, SIGNAL(signalPrevItem()),
++ connect(d->stackedView, SIGNAL(signalPrevItem()),
+ this, SLOT(slotPrevItem()));
+
+- //connect(d->StackedView, SIGNAL(signalEditItem()),
++ //connect(d->stackedView, SIGNAL(signalEditItem()),
+ //this, SLOT(slotImageEdit()));
+
+- connect(d->StackedView, SIGNAL(signalViewModeChanged()),
++ connect(d->stackedView, SIGNAL(signalViewModeChanged()),
+ this, SLOT(slotViewModeChanged()));
+
+- connect(d->StackedView, SIGNAL(signalEscapePreview()),
++ connect(d->stackedView, SIGNAL(signalEscapePreview()),
+ this, SLOT(slotEscapePreview()));
+
+- connect(d->StackedView, SIGNAL(signalZoomFactorChanged(double)),
++ connect(d->stackedView, SIGNAL(signalZoomFactorChanged(double)),
+ this, SLOT(slotZoomFactorChanged(double)));
+
+ // -- FileActionMngr progress ---------------
+@@ -295,7 +294,7 @@ void ImportView::saveViewState()
+ // needs to be closed explicitly, because when it is floating and visible
+ // (when the user is in image preview mode) when the layout is saved, it
+ // also reappears when restoring the view, while it should always be hidden.
+- d->StackedView->thumbBarDock()->close();
++ d->stackedView->thumbBarDock()->close();
+ group.writeEntry("ThumbbarState", d->dockArea->saveState().toBase64());
+
+ d->mapView->saveState();
+@@ -418,7 +417,7 @@ void ImportView::slotDispatchImageSelected()
+
+ if (list.isEmpty())
+ {
+- d->StackedView->setPreviewItem();
++ d->stackedView->setPreviewItem();
+ emit signalImageSelected(list, false, false, allImages);
+ emit signalNewSelection(false);
+ emit signalNoCurrentItem();
+@@ -428,16 +427,16 @@ void ImportView::slotDispatchImageSelected()
+ CamItemInfo previousInfo;
+ CamItemInfo nextInfo;
+
+- if (d->StackedView->previewMode() != ImportStackedView::MapWidgetMode)
++ if (d->stackedView->viewMode() != ImportStackedView::MapWidgetMode)
+ {
+ previousInfo = d->iconView->previousInfo(list.first());
+ nextInfo = d->iconView->nextInfo(list.first());
+ }
+
+- if ( (d->StackedView->previewMode() != ImportStackedView::PreviewCameraMode)
+- && (d->StackedView->previewMode() != ImportStackedView::MapWidgetMode) )
++ if ( (d->stackedView->viewMode() != ImportStackedView::PreviewCameraMode) &&
++ (d->stackedView->viewMode() != ImportStackedView::MapWidgetMode) )
+ {
+- d->StackedView->setPreviewItem(list.first(), previousInfo, nextInfo);
++ d->stackedView->setPreviewItem(list.first(), previousInfo, nextInfo);
+ }
+
+ emit signalImageSelected(list, !previousInfo.isNull(), !nextInfo.isNull(), allImages);
+@@ -450,17 +449,17 @@ void ImportView::slotDispatchImageSelected()
+
+ double ImportView::zoomMin()
+ {
+- return d->StackedView->zoomMin();
++ return d->stackedView->zoomMin();
+ }
+
+ double ImportView::zoomMax()
+ {
+- return d->StackedView->zoomMax();
++ return d->stackedView->zoomMax();
+ }
+
+ void ImportView::setZoomFactor(double zoom)
+ {
+- d->StackedView->setZoomFactorSnapped(zoom);
++ d->stackedView->setZoomFactorSnapped(zoom);
+ }
+
+ void ImportView::slotZoomFactorChanged(double zoom)
+@@ -471,12 +470,12 @@ void ImportView::slotZoomFactorChanged(double zoom)
+
+ void ImportView::setThumbSize(int size)
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+ double z = DZoomBar::zoomFromSize(size, zoomMin(), zoomMax());
+ setZoomFactor(z);
+ }
+- else if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
++ else if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
+ {
+ if (size > ThumbnailSize::Huge)
+ {
+@@ -512,22 +511,22 @@ void ImportView::slotThumbSizeEffect()
+
+ void ImportView::toggleZoomActions()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+ d->parent->enableZoomMinusAction(true);
+ d->parent->enableZoomPlusAction(true);
+
+- if (d->StackedView->maxZoom())
++ if (d->stackedView->maxZoom())
+ {
+ d->parent->enableZoomPlusAction(false);
+ }
+
+- if (d->StackedView->minZoom())
++ if (d->stackedView->minZoom())
+ {
+ d->parent->enableZoomMinusAction(false);
+ }
+ }
+- else if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
++ else if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
+ {
+ d->parent->enableZoomMinusAction(true);
+ d->parent->enableZoomPlusAction(true);
+@@ -551,59 +550,59 @@ void ImportView::toggleZoomActions()
+
+ void ImportView::slotZoomIn()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
+ {
+ setThumbSize(d->thumbSize + ThumbnailSize::Step);
+ toggleZoomActions();
+ emit signalThumbSizeChanged(d->thumbSize);
+ }
+- else if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ else if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+- d->StackedView->increaseZoom();
++ d->stackedView->increaseZoom();
+ }
+ }
+
+ void ImportView::slotZoomOut()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
+ {
+ setThumbSize(d->thumbSize - ThumbnailSize::Step);
+ toggleZoomActions();
+ emit signalThumbSizeChanged(d->thumbSize);
+ }
+- else if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ else if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+- d->StackedView->decreaseZoom();
++ d->stackedView->decreaseZoom();
+ }
+ }
+
+ void ImportView::slotZoomTo100Percents()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+- d->StackedView->toggleFitToWindowOr100();
++ d->stackedView->toggleFitToWindowOr100();
+ }
+ }
+
+ void ImportView::slotFitToWindow()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
+ {
+ int nts = d->iconView->fitToWidthIcons();
+ setThumbSize(nts);
+ toggleZoomActions();
+ emit signalThumbSizeChanged(d->thumbSize);
+ }
+- else if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ else if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+- d->StackedView->fitToWindow();
++ d->stackedView->fitToWindow();
+ }
+ }
+
+ void ImportView::slotEscapePreview()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
+- //TODO: || d->StackedView->previewMode() == ImportStackedView::WelcomePageMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
++ //TODO: || d->stackedView->viewMode() == ImportStackedView::WelcomePageMode)
+ {
+ return;
+ }
+@@ -615,18 +614,18 @@ void ImportView::slotEscapePreview()
+
+ void ImportView::slotMapWidgetView()
+ {
+- d->StackedView->setPreviewMode(ImportStackedView::MapWidgetMode);
++ d->stackedView->setViewMode(ImportStackedView::MapWidgetMode);
+ }
+
+ void ImportView::slotIconView()
+ {
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewImageMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewImageMode)
+ {
+ emit signalThumbSizeChanged(d->iconView->thumbnailSize().size());
+ }
+
+ // and switch to icon view
+- d->StackedView->setPreviewMode(0);
++ d->stackedView->setViewMode(ImportStackedView::PreviewCameraMode);
+
+ // make sure the next/previous buttons are updated
+ slotImageSelected();
+@@ -634,7 +633,7 @@ void ImportView::slotIconView()
+
+ void ImportView::slotImagePreview()
+ {
+- const int currentPreviewMode = d->StackedView->previewMode();
++ const int currentPreviewMode = d->stackedView->viewMode();
+ CamItemInfo currentInfo;
+
+ if (currentPreviewMode == ImportStackedView::PreviewCameraMode)
+@@ -655,25 +654,25 @@ void ImportView::slotImagePreview()
+ */
+ void ImportView::slotTogglePreviewMode(const CamItemInfo& info, bool downloadPreview)
+ {
+- if ( (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode ||
+- d->StackedView->previewMode() == ImportStackedView::MapWidgetMode || downloadPreview)
++ if ( (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode ||
++ d->stackedView->viewMode() == ImportStackedView::MapWidgetMode || downloadPreview)
+ && !info.isNull() )
+ {
+- d->lastPreviewMode = d->StackedView->previewMode();
++ d->lastViewMode = d->stackedView->viewMode();
+
+- if (d->StackedView->previewMode() == ImportStackedView::PreviewCameraMode)
++ if (d->stackedView->viewMode() == ImportStackedView::PreviewCameraMode)
+ {
+- d->StackedView->setPreviewItem(info, d->iconView->previousInfo(info), d->iconView->nextInfo(info));
++ d->stackedView->setPreviewItem(info, d->iconView->previousInfo(info), d->iconView->nextInfo(info));
+ }
+ else
+ {
+- d->StackedView->setPreviewItem(info, CamItemInfo(), CamItemInfo());
++ d->stackedView->setPreviewItem(info, CamItemInfo(), CamItemInfo());
+ }
+ }
+ else
+ {
+ // go back to either CameraViewMode or MapWidgetMode
+- d->StackedView->setPreviewMode(d->lastPreviewMode);
++ d->stackedView->setViewMode(d->lastViewMode);
+ }
+
+ if(!downloadPreview)
+@@ -687,7 +686,7 @@ void ImportView::slotViewModeChanged()
+ {
+ toggleZoomActions();
+
+- switch (d->StackedView->previewMode())
++ switch (d->stackedView->viewMode())
+ {
+ case ImportStackedView::PreviewCameraMode:
+ emit signalSwitchedToIconView();
+@@ -695,7 +694,7 @@ void ImportView::slotViewModeChanged()
+ break;
+ case ImportStackedView::PreviewImageMode:
+ emit signalSwitchedToPreview();
+- slotZoomFactorChanged(d->StackedView->zoomFactor());
++ slotZoomFactorChanged(d->stackedView->zoomFactor());
+ break;
+ //TODO: case ImportStackedView::WelcomePageMode:
+ //emit signalSwitchedToIconView();
+@@ -772,7 +771,7 @@ void ImportView::slotGroupImages(int categoryMode)
+
+ void ImportView::toggleShowBar(bool b)
+ {
+- d->StackedView->thumbBarDock()->showThumbBar(b);
++ d->stackedView->thumbBarDock()->showThumbBar(b);
+ }
+
+ void ImportView::scrollTo(const QString& folder, const QString& file)
+@@ -807,4 +806,9 @@ void ImportView::slotImageExifOrientation(int orientation)
+ }
+ */
+
++ImportStackedView::StackedViewMode ImportView::viewMode() const
++{
++ return d->stackedView->viewMode();
++}
++
+ } // namespace Digikam
+diff --git a/utilities/importui/views/importview.h b/utilities/importui/views/importview.h
+index 42e01b1..7295960 100644
+--- a/utilities/importui/views/importview.h
++++ b/utilities/importui/views/importview.h
+@@ -34,6 +34,7 @@
+ #include "sidebarwidget.h"
+ #include "importui.h"
+ #include "importmodel.h"
++#include "importstackedview.h"
+
+ namespace Digikam
+ {
+@@ -79,6 +80,7 @@ public:
+ double zoomMax();
+
+ ThumbnailSize thumbnailSize();
++ ImportStackedView::StackedViewMode viewMode() const;
+
+ Q_SIGNALS:
+
+diff --git a/utilities/lighttable/lighttablewindow.cpp b/utilities/lighttable/lighttablewindow.cpp
+index 0cf4c92..8b75995 100644
+--- a/utilities/lighttable/lighttablewindow.cpp
++++ b/utilities/lighttable/lighttablewindow.cpp
+@@ -538,8 +538,8 @@ void LightTableWindow::setupActions()
+ d->clearOnCloseAction->setWhatsThis(i18n("Remove all images from the light table when it is closed"));
+ actionCollection()->addAction("lighttable_clearonclose", d->clearOnCloseAction);
+
+- d->showThumbBarAction = d->barViewDock->getToggleAction(this);
+- actionCollection()->addAction("lighttable_showthumbbar", d->showThumbBarAction);
++ d->showBarAction = d->barViewDock->getToggleAction(this);
++ actionCollection()->addAction("lighttable_showthumbbar", d->showBarAction);
+
+ createFullScreenAction("lighttable_fullscreen");
+
+@@ -1623,4 +1623,12 @@ void LightTableWindow::showSideBars(bool visible)
+ }
+ }
+
++void LightTableWindow::customizedFullScreenMode(bool set)
++{
++ statusBarMenuAction()->setEnabled(!set);
++ toolBarMenuAction()->setEnabled(!set);
++ d->showMenuBarAction->setEnabled(!set);
++ d->showBarAction->setEnabled(!set);
++}
++
+ } // namespace Digikam
+diff --git a/utilities/lighttable/lighttablewindow.h b/utilities/lighttable/lighttablewindow.h
+index 7a3016f..e126e0a 100644
+--- a/utilities/lighttable/lighttablewindow.h
++++ b/utilities/lighttable/lighttablewindow.h
+@@ -80,7 +80,8 @@ protected:
+ void moveEvent(QMoveEvent* e);
+
+ private:
+-
++
++ void customizedFullScreenMode(bool set);
+ void showSideBars(bool visible);
+ void closeEvent(QCloseEvent* e);
+ void showEvent(QShowEvent*);
+diff --git a/utilities/lighttable/lighttablewindow_p.h b/utilities/lighttable/lighttablewindow_p.h
+index e9b5908..554708a 100644
+--- a/utilities/lighttable/lighttablewindow_p.h
++++ b/utilities/lighttable/lighttablewindow_p.h
+@@ -78,7 +78,7 @@ public:
+ lastAction(0),
+ libsInfoAction(0),
+ dbStatAction(0),
+- showThumbBarAction(0),
++ showBarAction(0),
+ syncPreviewAction(0),
+ navigateByPairAction(0),
+ showMenuBarAction(0),
+@@ -129,7 +129,7 @@ public:
+ KAction* libsInfoAction;
+ KAction* dbStatAction;
+
+- KToggleAction* showThumbBarAction;
++ KToggleAction* showBarAction;
+ KToggleAction* syncPreviewAction;
+ KToggleAction* navigateByPairAction;
+ KToggleAction* showMenuBarAction;
+diff --git a/utilities/queuemanager/main/queuemgrwindow.cpp b/utilities/queuemanager/main/queuemgrwindow.cpp
+index 1db3e7f..ebf3ea6 100644
+--- a/utilities/queuemanager/main/queuemgrwindow.cpp
++++ b/utilities/queuemanager/main/queuemgrwindow.cpp
+@@ -1062,4 +1062,11 @@ void QueueMgrWindow::slotSaveWorkflow()
+ }
+ }
+
++void QueueMgrWindow::customizedFullScreenMode(bool set)
++{
++ statusBarMenuAction()->setEnabled(!set);
++ toolBarMenuAction()->setEnabled(!set);
++ d->showMenuBarAction->setEnabled(!set);
++}
++
+ } // namespace Digikam
+diff --git a/utilities/queuemanager/main/queuemgrwindow.h b/utilities/queuemanager/main/queuemgrwindow.h
+index 35d7af5..4d793eb 100644
+--- a/utilities/queuemanager/main/queuemgrwindow.h
++++ b/utilities/queuemanager/main/queuemgrwindow.h
+@@ -95,6 +95,7 @@ public Q_SLOTS:
+
+ private:
+
++ void customizedFullScreenMode(bool set);
+ void closeEvent(QCloseEvent* e);
+ void setupActions();
+ void setupConnections();
diff --git a/digikam.spec b/digikam.spec
index bf3eecc..9e398f3 100644
--- a/digikam.spec
+++ b/digikam.spec
@@ -6,7 +6,7 @@
Name: digikam
Version: 3.2.0
-Release: 4%{?pre}%{?dist}
+Release: 5%{?pre}%{?dist}
Summary: A digital camera accessing & photo management application
License: GPLv2+
@@ -28,6 +28,7 @@ Patch51: digikam-3.1.0-opencv20.patch
# https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/439316380574b6dc8b3c3ed37efa1e74656c342f
# https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/b8f20122e42acb5424cba7aff034101f068c5a90
# https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/4f892fb62241940fd2a0ceeffa1d2302576611d8
+# https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/0cad3cfd24c841acc56eb11f4c548c3bcdc6193e
Patch100: digikam-3.2.0-fullscreen.patch
BuildRequires: eigen3-devel
@@ -535,6 +536,9 @@ update-desktop-database -q &> /dev/null
%changelog
+* Fri May 31 2013 Alexey Kurov <nucleo at fedoraproject.org> - 3.2.0-5
+- more fixes for bars hiding in fullscreen mode kde#319876
+
* Thu May 30 2013 Alexey Kurov <nucleo at fedoraproject.org> - 3.2.0-4
- fix thumbbar visibility after fullscreen mode kde#319876
More information about the scm-commits
mailing list