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>
pull/122/head
Mavridis Philippe 12 months ago
parent c7c1795c81
commit 982cdfa5ad
No known key found for this signature in database
GPG Key ID: F8D2D7E2F989A494

@ -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

@ -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);

@ -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"

@ -115,6 +115,7 @@ namespace KPDF
void slotMoveTabLeft();
void slotMoveTabRight();
void slotRemoveOtherTabs();
void slotSetTabCaption(const TQString &caption);
signals:
void restoreDocument(TDEConfig* config);

Loading…
Cancel
Save