diff --git a/part.cpp b/part.cpp index f9c409f46..59c74e453 100644 --- a/part.cpp +++ b/part.cpp @@ -914,6 +914,7 @@ void Part::slotDoFileDirty() // store the current toolbox pane m_dirtyToolboxIndex = m_sidebar->currentIndex(); + m_wasSidebarVisible = m_sidebar->isSidebarVisible(); // store if presentation view was open m_wasPresentationOpen = ((PresentationWidget*)m_presentationWidget != 0); @@ -934,6 +935,10 @@ void Part::slotDoFileDirty() { m_sidebar->setCurrentIndex( m_dirtyToolboxIndex ); } + if ( m_sidebar->isSidebarVisible() != m_wasSidebarVisible ) + { + m_sidebar->setCurrentIndex( m_sidebar->currentIndex() ); + } if (m_wasPresentationOpen) slotShowPresentation(); emit enablePrintAction(true); } diff --git a/part.h b/part.h index 91020590c..e3434ca11 100644 --- a/part.h +++ b/part.h @@ -196,6 +196,7 @@ class Part : public KParts::ReadOnlyPart, public Okular::DocumentObserver, publi Okular::DocumentViewport m_viewportDirty; bool m_wasPresentationOpen; int m_dirtyToolboxIndex; + bool m_wasSidebarVisible; // Remember the search history QStringList m_searchHistory; diff --git a/ui/sidebar.cpp b/ui/sidebar.cpp index 5f12d7967..d046080dc 100644 --- a/ui/sidebar.cpp +++ b/ui/sidebar.cpp @@ -510,6 +510,11 @@ void Sidebar::setSidebarVisibility( bool visible ) } } +bool Sidebar::isSidebarVisible() const +{ + return d->sideContainer->isVisible(); +} + void Sidebar::itemClicked( QListWidgetItem *item ) { if ( !item ) diff --git a/ui/sidebar.h b/ui/sidebar.h index 184dd7538..3eb9c25ae 100644 --- a/ui/sidebar.h +++ b/ui/sidebar.h @@ -34,6 +34,7 @@ class Sidebar : public QWidget int currentIndex() const; void setSidebarVisibility( bool visible ); + bool isSidebarVisible() const; private slots: void itemClicked( QListWidgetItem *item );