summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kpdf/part.cpp30
-rw-r--r--kpdf/part.h3
-rw-r--r--kpdf/shell/shell.cpp18
-rw-r--r--kpdf/shell/shell.h2
4 files changed, 42 insertions, 11 deletions
diff --git a/kpdf/part.cpp b/kpdf/part.cpp
index 697a5cf9..14db779a 100644
--- a/kpdf/part.cpp
+++ b/kpdf/part.cpp
@@ -117,7 +117,7 @@ Part::Part(TQWidget *parentWidget, const char *widgetName,
TQObject *parent, const char *name,
const TQStringList & /*args*/ )
: DCOPObject("kpdf"), KParts::ReadOnlyPart(parent, name), m_showMenuBarAction(0), m_showFullScreenAction(0),
- m_actionsSearched(false), m_searchStarted(false)
+ m_actionsSearched(false), m_searchStarted(false), m_printable(false)
{
// connect the started signal to tell the job the mimetypes we like
connect(this, TQ_SIGNAL(started(TDEIO::Job *)), this, TQ_SLOT(setMimeTypes(TDEIO::Job *)));
@@ -524,7 +524,7 @@ bool Part::openURL(const KURL &url)
m_viewportDirty.pageNumber = -1;
emit setWindowCaption(url.filename());
}
- emit enablePrintAction(b);
+ setPrintable(b);
return b;
}
@@ -539,15 +539,16 @@ void Part::setMimeTypes(TDEIO::Job *job)
void Part::readMimeType(TDEIO::Job *, const TQString &mime)
{
- m_jobMime = mime;
+ m_jobMime = mime;
}
void Part::guiActivateEvent(KParts::GUIActivateEvent *e)
{
- if (e->activated())
- {
- emitWindowCaption();
- }
+ if (e->activated())
+ {
+ emitWindowCaption();
+ emit enablePrintAction(m_printable);
+ }
}
void Part::emitWindowCaption()
@@ -573,7 +574,7 @@ bool Part::closeURL()
m_showProperties->setEnabled( false );
m_showPresentation->setEnabled( false );
emit setWindowCaption("");
- emit enablePrintAction(false);
+ setPrintable(false);
m_searchStarted = false;
if (!m_file.isEmpty()) m_watcher->removeFile(m_file);
m_document->closeDocument();
@@ -636,7 +637,7 @@ void Part::slotDoFileDirty()
m_toolBox->setCurrentIndex( m_dirtyToolboxIndex );
}
if (m_wasPresentationOpen) slotShowPresentation();
- emit enablePrintAction(true);
+ setPrintable(true);
emit setWindowCaption(url().filename());
}
else
@@ -655,6 +656,17 @@ void Part::close()
else KMessageBox::information(widget(), i18n("This link points to a close document action that does not work when using the embedded viewer."), TQString(), "warnNoCloseIfNotInKPDF");
}
+void Part::setPrintable(bool printable)
+{
+ m_printable = printable;
+ emit enablePrintAction(printable);
+}
+
+bool Part::printable()
+{
+ return m_printable;
+}
+
void Part::updateViewActions()
{
bool opened = m_document->pages() > 0;
diff --git a/kpdf/part.h b/kpdf/part.h
index bfa24506..067f9316 100644
--- a/kpdf/part.h
+++ b/kpdf/part.h
@@ -83,6 +83,7 @@ public:
KURL currentDocument();
bool isKPDFShell();
+ bool printable();
signals:
void enablePrintAction(bool enable);
@@ -127,6 +128,7 @@ protected slots:
void saveSplitterSize();
void setMimeTypes(TDEIO::Job *job);
void readMimeType(TDEIO::Job *job, const TQString &mime);
+ void setPrintable(bool printable);
void emitWindowCaption();
public slots:
@@ -194,6 +196,7 @@ private:
TDEToggleAction* m_showFullScreenAction;
bool m_actionsSearched;
bool m_searchStarted;
+ bool m_printable;
BrowserExtension *m_bExtension;
};
diff --git a/kpdf/shell/shell.cpp b/kpdf/shell/shell.cpp
index ed9f27cb..b1f60bd7 100644
--- a/kpdf/shell/shell.cpp
+++ b/kpdf/shell/shell.cpp
@@ -203,7 +203,7 @@ void Shell::setupActions()
m_recent = KStdAction::openRecent( this, TQ_SLOT(openURL(const KURL&)), actionCollection());
connect(m_recent, TQ_SIGNAL(activated()), openAction, TQ_SLOT( activate()));
m_recent->setWhatsThis(i18n("<b>Click</b> to open a file or <b>Click and hold</b> to select a recent file"));
- m_printAction = KStdAction::print(m_manager->activePart(), TQ_SLOT(slotPrint()), actionCollection());
+ m_printAction = KStdAction::print(this, TQ_SLOT(slotPrint()), actionCollection());
m_printAction->setEnabled(false);
KStdAction::quit(this, TQ_SLOT(slotQuit()), actionCollection());
@@ -299,6 +299,20 @@ void Shell::applyNewToolbarConfig()
applyMainWindowSettings(TDEGlobal::config(), "MainWindow");
}
+void Shell::slotSetPrintActionEnabled(bool enabled)
+{
+ const KParts::Part *part = static_cast<const KParts::Part*>(TQObject::sender());
+ if (part == m_manager->activePart())
+ {
+ m_printAction->setEnabled(enabled);
+ }
+}
+
+void Shell::slotPrint()
+{
+ TQTimer::singleShot(0, m_manager->activePart(), TQ_SLOT(slotPrint()));
+}
+
void Shell::slotQuit()
{
kapp->closeAllWindows();
@@ -364,7 +378,7 @@ KParts::ReadOnlyPart* Shell::createTab()
connect(this, TQ_SIGNAL(saveDocumentRestoreInfo(TDEConfig*)),
part, TQ_SLOT(saveDocumentRestoreInfo(TDEConfig*)));
connect(part, TQ_SIGNAL(enablePrintAction(bool)),
- m_printAction, TQ_SLOT(setEnabled(bool)));
+ this, TQ_SLOT(slotSetPrintActionEnabled(bool)));
connect(part, TQ_SIGNAL(setWindowCaption(const TQString&)),
this, TQ_SLOT(slotSetTabCaption(const TQString&)));
diff --git a/kpdf/shell/shell.h b/kpdf/shell/shell.h
index 6198aa4c..d1ace108 100644
--- a/kpdf/shell/shell.h
+++ b/kpdf/shell/shell.h
@@ -100,6 +100,7 @@ namespace KPDF
void addTab();
void removeTab();
+ void slotPrint();
void slotQuit();
private slots:
@@ -122,6 +123,7 @@ namespace KPDF
void slotMoveTabRight();
void slotRemoveOtherTabs();
void slotSetTabCaption(const TQString &caption);
+ void slotSetPrintActionEnabled(bool enabled);
signals:
void restoreDocument(TDEConfig* config);