From 7c8cc68a8c55abd523848adde7ea5aa69b3a6c19 Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Sun, 6 May 2007 11:23:26 +0000 Subject: [PATCH] Add a Reload menu item to manually reload a document. Useful for example when not using the watching file features. Implements KPDF bug #136820. svn path=/trunk/KDE/kdegraphics/okular/; revision=661681 --- part.cpp | 21 +++++++++++++++++++++ part.h | 2 ++ part.rc | 1 + 3 files changed, 24 insertions(+) diff --git a/part.cpp b/part.cpp index ef6a4bd78..e000b7d4a 100644 --- a/part.cpp +++ b/part.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -405,6 +406,14 @@ m_searchStarted(false), m_cliPresentation(false) m_aboutBackend->setText(i18n("About backend...")); connect(m_aboutBackend, SIGNAL(triggered()), this, SLOT(slotAboutBackend())); + KAction *reload = ac->add( "file_reload" ); + reload->setText( i18n( "Reloa&d" ) ); + reload->setIcon( KIcon( "view-refresh" ) ); + reload->setWhatsThis( i18n( "Reload the current document from disk." ) ); + connect( reload, SIGNAL(triggered()), this, SLOT(slotReload()) ); + reload->setShortcut( KStandardShortcut::reload() ); + m_reload = reload; + KAction *closeFindBar = new KAction( i18n( "Close &Find Bar" ), ac ); ac->addAction("close_find_bar", closeFindBar); connect(closeFindBar, SIGNAL(triggered()), this, SLOT(slotHideFindBar())); @@ -933,6 +942,7 @@ void Part::updateViewActions() m_nextPage->setEnabled( !atEnd ); m_historyBack->setEnabled( !m_document->historyAtBegin() ); m_historyNext->setEnabled( !m_document->historyAtEnd() ); + m_reload->setEnabled( true ); } else { @@ -943,6 +953,7 @@ void Part::updateViewActions() m_nextPage->setEnabled( false ); m_historyBack->setEnabled( false ); m_historyNext->setEnabled( false ); + m_reload->setEnabled( false ); } updateBookmarksActions(); } @@ -1410,6 +1421,16 @@ void Part::slotExportAs(QAction * act) } +void Part::slotReload() +{ + // stop the dirty handler timer, otherwise we may conflict with the + // auto-refresh system + m_dirtyHandler->stop(); + + slotDoFileDirty(); +} + + void Part::slotPrint() { if (m_document->pages() == 0) return; diff --git a/part.h b/part.h index ca9ee1350..e90fe8dab 100644 --- a/part.h +++ b/part.h @@ -140,6 +140,7 @@ class Part : public KParts::ReadOnlyPart, public Okular::DocumentObserver, publi void slotExportAs(QAction *); bool slotImportPSFile(); void slotAboutBackend(); + void slotReload(); void close(); void cannotQuit(); void splitterMoved( int pos, int index ); @@ -227,6 +228,7 @@ class Part : public KParts::ReadOnlyPart, public Okular::DocumentObserver, publi KToggleAction* m_showLeftPanel; KToggleFullScreenAction* m_showFullScreenAction; QAction *m_aboutBackend; + QAction *m_reload; bool m_actionsSearched; bool m_searchStarted; diff --git a/part.rc b/part.rc index 80f17adc2..fe736055e 100644 --- a/part.rc +++ b/part.rc @@ -5,6 +5,7 @@ +