summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2025-04-09 15:51:42 +0300
committerMavridis Philippe <mavridisf@gmail.com>2025-04-14 19:09:53 +0300
commit4c0b40a916e69640fde5784471469723a0d7a9ae (patch)
treef19690db6a7c6906cdf0ed88590a9b2661629a0d
parent0599e57edd9b4998aa99b0a14f4d83c2b9390b29 (diff)
downloadtdegraphics-4c0b40a9.tar.gz
tdegraphics-4c0b40a9.zip
KPDF Shell: Fix bugs related to tabbing
* Update tab caption when user opens another document * Fix activation event setting window/tab title to full URL * Add tooltip with full path to tabs Resolves #119. Signed-off-by: Mavridis Philippe <mavridisf@gmail.com> (cherry picked from commit 982cdfa5adaefa4f0d9dbba77a2853ef0a63a9e7)
-rw-r--r--kpdf/part.cpp8
-rw-r--r--kpdf/part.h6
-rw-r--r--kpdf/shell/shell.cpp20
-rw-r--r--kpdf/shell/shell.h1
4 files changed, 33 insertions, 2 deletions
diff --git a/kpdf/part.cpp b/kpdf/part.cpp
index 97f1b5b4..fb56e58a 100644
--- a/kpdf/part.cpp
+++ b/kpdf/part.cpp
@@ -536,6 +536,14 @@ void Part::readMimeType(TDEIO::Job *, const TQString &mime)
m_jobMime = mime;
}
+void Part::guiActivateEvent(KParts::GUIActivateEvent *e)
+{
+ if (e->activated())
+ {
+ emitWindowCaption();
+ }
+}
+
void Part::emitWindowCaption()
{
// these setWindowCaption call only works for remote files
diff --git a/kpdf/part.h b/kpdf/part.h
index aa3b6659..7a5b2739 100644
--- a/kpdf/part.h
+++ b/kpdf/part.h
@@ -17,6 +17,7 @@
#define _KPDF_PART_H_
#include <tdeparts/browserextension.h>
+#include <tdeparts/event.h>
#include <tdeparts/part.h>
#include <tqguardedptr.h>
#include "core/document.h"
@@ -89,8 +90,9 @@ protected:
bool openFile();
bool openURL(const KURL &url);
bool closeURL();
- // filter that watches for splitter size changes
- bool eventFilter( TQObject * watched, TQEvent * e );
+ void guiActivateEvent(KParts::GUIActivateEvent *e);
+ // filter that watches for splitter size changes
+ bool eventFilter( TQObject * watched, TQEvent * e );
protected slots:
void openURLFromDocument(const KURL &url);
diff --git a/kpdf/shell/shell.cpp b/kpdf/shell/shell.cpp
index 27b3e37e..d948b68a 100644
--- a/kpdf/shell/shell.cpp
+++ b/kpdf/shell/shell.cpp
@@ -146,6 +146,7 @@ void Shell::openURL( const KURL & url )
if (url.isValid())
{
m_tabs->changeTab(part->widget(), url.filename());
+ m_tabs->setTabToolTip(part->widget(), url.prettyURL());
bool openOk = part->openURL(url);
if (openOk)
{
@@ -346,6 +347,8 @@ KParts::ReadOnlyPart* Shell::createTab()
part, TQ_SLOT(saveDocumentRestoreInfo(TDEConfig*)));
connect(part, TQ_SIGNAL(enablePrintAction(bool)),
m_printAction, TQ_SLOT(setEnabled(bool)));
+ connect(part, TQ_SIGNAL(setWindowCaption(const TQString&)),
+ this, TQ_SLOT(slotSetTabCaption(const TQString&)));
part->widget()->show();
m_manager->addPart(part, true);
@@ -608,4 +611,21 @@ void Shell::slotRemoveOtherTabs()
}
}
+void Shell::slotSetTabCaption(const TQString &caption)
+{
+ KParts::ReadOnlyPart *part = const_cast<KParts::ReadOnlyPart*>
+ (static_cast<const KParts::ReadOnlyPart*>(TQObject::sender()));
+ if (!part) return;
+
+ m_tabs->changeTab(part->widget(), caption.isEmpty() ? i18n("No file") : caption);
+ if (caption.isEmpty())
+ {
+ m_tabs->removeTabToolTip(part->widget());
+ }
+ else
+ {
+ m_tabs->setTabToolTip(part->widget(), part->url().pathOrURL());
+ }
+}
+
#include "shell.moc"
diff --git a/kpdf/shell/shell.h b/kpdf/shell/shell.h
index 28be65e3..6b4eb48b 100644
--- a/kpdf/shell/shell.h
+++ b/kpdf/shell/shell.h
@@ -115,6 +115,7 @@ namespace KPDF
void slotMoveTabLeft();
void slotMoveTabRight();
void slotRemoveOtherTabs();
+ void slotSetTabCaption(const TQString &caption);
signals:
void restoreDocument(TDEConfig* config);