| Summary: | Problems in the HTML viewer | ||
|---|---|---|---|
| Product: | [Applications] akregator | Reporter: | András Manţia <amantia> |
| Component: | general | Assignee: | kdepim bugs <pim-bugs-null> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | 1.2 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
András Manţia
2006-01-14 09:46:26 UTC
SVN commit 499312 by osterfeld:
Fix handling of binary files in pageviewer. Increase the breakage in the URL handling of Viewer and PageViewer.
Man, I am so happy that this all goes the way of the dodo in trunk.
CCBUG: 120087
M +3 -0 ChangeLog
M +14 -6 src/akregator_view.cpp
M +1 -1 src/akregator_view.h
M +13 -15 src/pageviewer.cpp
M +7 -2 src/viewer.cpp
M +3 -1 src/viewer.h
--- branches/KDE/3.5/kdepim/akregator/ChangeLog #499311:499312
@@ -7,6 +7,9 @@
Bug fixes:
+ 2006/01/17 Do not open binary files in the HTML viewer but externally.
+ Fix Save Link As for binary files (regression introduced after 1.2)
+ (#120087 (partially)) -fo
2006/01/16 Fix article order in Combined View: sort by date (reversed) (#118055) -fo
2006/01/15 Fix parsing of Atom 1.0 feeds with escaped HTML in it: Don't show tags
as text (#112491, #117938) -fo
--- branches/KDE/3.5/kdepim/akregator/src/akregator_view.cpp #499311:499312
@@ -306,8 +306,8 @@
connect(m_searchBar, SIGNAL(signalSearch(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)), m_articleViewer, SLOT(slotSetFilter(const Akregator::Filters::ArticleMatcher&, const Akregator::Filters::ArticleMatcher&)));
- connect( m_articleViewer, SIGNAL(urlClicked(const KURL&, bool)),
- this, SLOT(slotUrlClickedInViewer(const KURL&, bool)) );
+ connect( m_articleViewer, SIGNAL(urlClicked(const KURL&, Viewer*, bool, bool)),
+ this, SLOT(slotUrlClickedInViewer(const KURL&, Viewer*, bool, bool)) );
connect( m_articleViewer->browserExtension(), SIGNAL(mouseOverInfo(const KFileItem *)),
this, SLOT(slotMouseOverInfo(const KFileItem *)) );
@@ -430,8 +430,8 @@
connect( page, SIGNAL(setTabIcon(const QPixmap&)),
this, SLOT(setTabIcon(const QPixmap&)));
- connect( page, SIGNAL(urlClicked(const KURL &,bool)),
- this, SLOT(slotUrlClickedInViewer(const KURL &, bool)) );
+ connect( page, SIGNAL(urlClicked(const KURL &, Viewer*, bool, bool)),
+ this, SLOT(slotUrlClickedInViewer(const KURL &, Viewer*, bool, bool)) );
Frame* frame = new Frame(this, page, page->widget(), i18n("Untitled"));
frame->setAutoDeletePart(true); // delete page viewer when removing the tab
@@ -839,9 +839,17 @@
}
//TODO: KDE4 remove this ugly ugly hack
-void View::slotUrlClickedInViewer(const KURL& url, bool background)
+void View::slotUrlClickedInViewer(const KURL& url, Viewer* viewer, bool newTab, bool background)
{
- slotOpenURL(url, 0L, background ? BrowserRun::NEW_TAB_BACKGROUND : BrowserRun::NEW_TAB_FOREGROUND);
+
+ if (!newTab)
+ {
+ slotOpenURL(url, viewer, BrowserRun::CURRENT_TAB);
+ }
+ else
+ {
+ slotOpenURL(url, 0L, background ? BrowserRun::NEW_TAB_BACKGROUND : BrowserRun::NEW_TAB_FOREGROUND);
+ }
}
//TODO: KDE4 remove this ugly ugly hack
--- branches/KDE/3.5/kdepim/akregator/src/akregator_view.h #499311:499312
@@ -294,7 +294,7 @@
void slotOpenURLReply(const KURL& url, Akregator::Viewer* currentViewer, Akregator::BrowserRun::OpeningMode mode);
/** HACK: part of the url opening hack for 3.5. called when a viewer emits urlClicked(). TODO: Remove for KDE4 */
- void slotUrlClickedInViewer(const KURL& url, bool background);
+ void slotUrlClickedInViewer(const KURL& url, Viewer* viewer, bool newTab, bool background);
void slotOpenURL(const KURL& url, Akregator::Viewer* currentViewer, Akregator::BrowserRun::OpeningMode mode);
--- branches/KDE/3.5/kdepim/akregator/src/pageviewer.cpp #499311:499312
@@ -270,21 +270,6 @@
}
-void PageViewer::urlSelected(const QString &url, int button, int state, const QString &_target, KParts::URLArgs args)
-{
- updateHistoryEntry();
- if (button == MidButton)
- Viewer::urlSelected(url, button, state, _target, args);
- else
- {
- browserExtension()->setURLArgs(args);
- if (_target.lower() == "_blank")
- Viewer::urlSelected(url, button, state, _target, args);
- else
- openURL(completeURL(url) );
- }
-}
-
void PageViewer::slotPopupActivated( int id )
{
QValueList<HistoryEntry>::Iterator it = d->history.begin();
@@ -360,6 +345,19 @@
d->stopAction->setEnabled(false);
}
+void PageViewer::urlSelected(const QString &url, int button, int state, const QString &_target, KParts::URLArgs args)
+{
+ if (button == LeftButton)
+ {
+ m_url = completeURL(url);
+ browserExtension()->setURLArgs(args);
+ slotOpenLinkInThisTab();
+ }
+ else
+ {
+ Viewer::urlSelected(url,button,state,_target,args);
+ }
+}
void PageViewer::slotSetCaption(const QString& cap)
{
--- branches/KDE/3.5/kdepim/akregator/src/viewer.cpp #499311:499312
@@ -232,14 +232,19 @@
void Viewer::slotOpenLinkInForegroundTab()
{
- emit urlClicked(m_url, false);
+ emit urlClicked(m_url, this, true, false);
}
void Viewer::slotOpenLinkInBackgroundTab()
{
- emit urlClicked(m_url, true);
+ emit urlClicked(m_url, this, true, true);
}
+void Viewer::slotOpenLinkInThisTab()
+{
+ emit urlClicked(m_url, this, false, false);
+}
+
void Viewer::slotOpenLinkInBrowser()
{
displayInExternalBrowser(m_url, QString::null);
--- branches/KDE/3.5/kdepim/akregator/src/viewer.h #499311:499312
@@ -66,7 +66,7 @@
signals:
/** This gets emitted when url gets clicked */
- void urlClicked(const KURL& url, bool background=false);
+ void urlClicked(const KURL& url, Viewer* viewer, bool newTab, bool background);
protected: // methods
int pointsToPixel(int points) const;
@@ -100,6 +100,8 @@
/** Opens @c m_url in background tab */
virtual void slotOpenLinkInBackgroundTab();
+
+ virtual void slotOpenLinkInThisTab();
virtual void slotSaveLinkAs();
|