From kde-core-devel Wed Aug 19 22:20:42 2009 From: "Dawit A." Date: Wed, 19 Aug 2009 22:20:42 +0000 To: kde-core-devel Subject: Re: Konqueror and empty window title... Message-Id: <200908191820.42803.adawit () kde ! org> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=125072047819849 On Wednesday 19 August 2009 17:29:38 Dawit A. wrote: > On Wednesday 19 August 2009 10:57:08 David Faure wrote: > > On Wednesday 19 August 2009, Dawit A. wrote: > > > Is there any good reason why empty titles are not allowed in > > > Konqueror's title bar ? Both of the setCaption member functions in > > > KonqMainWindow.cpp (@ 4351) and KonqView.cpp (@ 700) reject an empty > > > caption. > > > > > > I am in the process of fixing the history navigation issues when using > > > the webkitpart and I have ironed out all the issues except when no > > > title is present in the document being displayed. In other words a > > > missing tag in the document which is affected by the issue > > > above. > > > > > > What happens in webkitpart is that whenever QtWebKit emits the > > > titleChanged signal the parts setWindowCaption signal is invoked. > > > However, QtWebkit always first clears the title everytime the url > > > changes by emitting titleChanged with an empty/null strings and sets is > > > to the current title after it parses the <TITLE> tag in the new > > > document. However, because of the restrictions imposed by Konqueror in > > > the above two functions, the title from the previous document remains > > > displayed if the current document does not provide a title. This is > > > always the case if the user clicks on a link to a text document in > > > webkitpart for example. The result is the entries in the history > > > navigation buttons > > > (forward/backward) will contain show the wrong text (previous title). > > > > An empty title looks very bad; what if you had 5 such konqueror windows, > > how would you differenciate between them? I recommend that kdewebkit part > > does like khtml: if no title, then emit the URL as caption. > > > > (from DocumentImpl::setTitle in khtml/xml/dom_docimpl.cpp) > > > > if (titleStr.isEmpty()) { > > // empty title... set window caption as the URL > > KUrl url = m_url; > > url.setRef(QString()); > > url.setQuery(QString()); > > titleStr = url.prettyUrl(); > > } > > > > emit view()->part()->setWindowCaption( KStringHandler::csqueeze( > > titleStr, 128 ) ); > > Hmm... It is a little more complicated in the webkitpart as simply doing > that will cause way to many updates to the title bar two or more per every > single request, but I will try to find a better solution. Anyhow, the only > time this is an issue is when the link is redirected to another location... Actually a variant of the above approach with some safe guards will work fine in the webkitpart as well...