[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 66958] Reload does not reload the current page in web sites with
From: Germain Garand <germain () ebooksfrance ! com>
Date: 2007-07-23 0:58:40
Message-ID: 20070723005840.15071.qmail () ktown ! kde ! org
[Download RAW message or body]
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
http://bugs.kde.org/show_bug.cgi?id=66958
------- Additional Comments From germain ebooksfrance com 2007-07-23 02:58 -------
SVN commit 691143 by ggarand:
reinstating patch by Hasso Tepper that was once reverted for BIC problems,
then forgotten.
(kdelibs part)
CCBUG: 66958
M +22 -2 khtml/khtml_part.cpp
M +2 -0 kparts/browserextension.cpp
M +7 -0 kparts/browserextension.h
--- trunk/KDE/kdelibs/khtml/khtml_part.cpp #691142:691143
@ -632,6 +632,26 @
isFrameSet = htmlDoc->body() && (htmlDoc->body()->id() == ID_FRAMESET);
}
+ if (isFrameSet && urlcmp( url.url(), this->url().url(), \
KUrl::CompareWithoutTrailingSlash | KUrl::CompareWithoutFragment ) + \
&& args.softReload) + {
+ QList<khtml::ChildFrame*>::Iterator it = d->m_frames.begin();
+ const QList<khtml::ChildFrame*>::Iterator end = d->m_frames.end();
+ for (; it != end; ++it) {
+ KHTMLPart* const part = qobject_cast<KHTMLPart *>( (*it)->m_part );
+ if (part)
+ {
+ // We are reloading frames to make them jump into offsets.
+ KParts::URLArgs partargs( part->d->m_extension->urlArgs() );
+ partargs.reload = true;
+ part->d->m_extension->setUrlArgs(partargs);
+
+ part->openUrl( part->url() );
+ }
+ }/*next it*/
+ return true;
+ }
+
if ( url.hasRef() && !isFrameSet )
{
bool noReloadForced = !args.reload && !args.redirectedRequest() && \
!args.doPost(); @ -2594,8 +2614,8 @
QList<khtml::ChildFrame*>::Iterator it = m_frames.begin();
const QList<khtml::ChildFrame*>::Iterator itEnd = m_frames.end();
for (; it != itEnd; ++it) {
- KHTMLPart* const part = static_cast<KHTMLPart *>((KParts::ReadOnlyPart \
*)(*it)->m_part);
- if (part->inherits("KHTMLPart"))
+ KHTMLPart* const part = qobject_cast<KHTMLPart *>( (*it)->m_part );
+ if (part)
part->d->setFlagRecursively(flag, value);
}/*next it*/
}
--- trunk/KDE/kdelibs/kparts/browserextension.cpp #691142:691143
@ -118,6 +118,7 @
URLArgs::URLArgs()
{
reload = false;
+ softReload = false;
xOffset = 0;
yOffset = 0;
trustedSource = false;
@ -147,6 +148,7 @
delete d; d= 0;
reload = args.reload;
+ softReload = args.softReload;
xOffset = args.xOffset;
yOffset = args.yOffset;
serviceType = args.serviceType;
--- trunk/KDE/kdelibs/kparts/browserextension.h #691142:691143
@ -81,6 +81,13 @
*/
bool reload;
/**
+ * p softReload is set when user just hits reload button. It's used
+ * currently for two different frameset reload strategies. In case of
+ * soft reload individual frames are reloaded instead of reloading whole
+ * frameset.
+ */
+ bool softReload;
+ /**
* p xOffset is the horizontal scrolling of the part's widget
* (in case it's a scrollview). This is saved into the history
* and restored when going back in the history.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic