[Okular-devel] Epub - webkit, getting text bounds

Albert Astals Cid aacid at kde.org
Sat Jun 15 14:08:03 UTC 2013


El Dimecres, 12 de juny de 2013, a les 13:19:31, Jaydeep Solanki va escriure:
> On Wed, Jun 12, 2013 at 2:57 AM, Albert Astals Cid <aacid at kde.org> wrote:
> > El Dimecres, 12 de juny de 2013, a les 01:57:45, Jaydeep Solanki va
> > 
> > escriure:
> > > It would be great if you could suggest me something because I'm out of
> > > ideas.
> > 
> > What's the problem? QtWebKit only working on Qt5? Well 4.8 has a QtWebKit
> > too.
> > Or where you planning to add new API?
> 
> Yes, because subclassing wasn't helping.
> In QWebView, there's a method findText(...), which marks all the found
> occurrences of the given string, but they do it through private classes,
> which cannot be accessed by a subclass.

Are they QObjects? If so maybe you can get them through findChild in their 
parent (hackish but...)

Cheers,
  Albert

> 
> > Cheers,
> > 
> >   Albert
> >   
> > > On Tue, Jun 11, 2013 at 11:44 PM, Albert Astals Cid <aacid at kde.org>
> > 
> > wrote:
> > > > El Dimarts, 11 de juny de 2013, a les 16:26:07, Jaydeep Solanki va
> > > > 
> > > > escriure:
> > > > > The current version of QtWebkit works only with Qt5, will that be a
> > > > 
> > > > problem
> > > > 
> > > > > ?
> > > > 
> > > > Yes, closest estimate for Qt5 based Okular is at least 1 year from
> > > > now,
> > > > i'd
> > > > prefer if we have something that works on current Okular.
> > > > 
> > > > Cheers,
> > > > 
> > > >   Albert
> > > >   
> > > > > Cheers,
> > > > > Jaydeep
> > > > > 
> > > > > On Mon, Jun 10, 2013 at 1:02 PM, Jaydeep Solanki <jaydp17 at gmail.com>
> > > > 
> > > > wrote:
> > > > > > On Sat, Jun 8, 2013 at 9:28 PM, Albert Astals Cid <aacid at kde.org>
> > > > 
> > > > wrote:
> > > > > >> El Divendres, 7 de juny de 2013, a les 23:35:41, Jaydeep Solanki
> > 
> > va
> > 
> > > > > >> escriure:
> > > > > >> > Will it be a good idea to look for something in QtWebkit source
> > > > > >> > that
> > > > > >> > can
> > > > > >> > get us bounding rects ?
> > > > > >> 
> > > > > >> Makes sense, there is *something* in there that can select text,
> > 
> > so
> > 
> > > > there
> > > > 
> > > > > >> is
> > > > > >> information of where the text is.
> > > > > >> 
> > > > > >> Working on it.
> > > > > >> 
> > > > > >> Cheers,
> > > > > >> 
> > > > > >>   Albert
> > > > > >>   
> > > > > >> > Cheers,
> > > > > >> > Jaydeep
> > > > > >> > 
> > > > > >> > On Fri, Jun 7, 2013 at 3:41 AM, Jaydeep Solanki <
> > 
> > jaydp17 at gmail.com>
> > 
> > > > > >> wrote:
> > > > > >> > > But it will give the bounding rect of the HTML element, not
> > 
> > the
> > 
> > > > text.
> > > > 
> > > > > >> We
> > > > > >> 
> > > > > >> > > can use the box of the HTML element to predict the bounding
> > 
> > box
> > 
> > > > > >> > > of
> > > > > >> 
> > > > > >> text
> > > > > >> 
> > > > > >> > > with the help of font metrics, but it will fail in situations
> > > > 
> > > > with an
> > > > 
> > > > > >> > > image
> > > > > >> > > or a floating element between text.
> > > > > >> > > Example: image <
> > > > > >> 
> > > > > >> http://s11.postimg.org/5ysz1z79v/wrapp_all_arround.png>
> > > > > >> 
> > > > > >> > > Cheers,
> > > > > >> > > Jaydeep
> > > > > >> > > 
> > > > > >> > > On Fri, Jun 7, 2013 at 2:41 AM, Albert Astals Cid <
> > 
> > aacid at kde.org>
> > 
> > > > > >> wrote:
> > > > > >> > >> El Dimarts, 4 de juny de 2013, a les 20:00:51, Jaydeep
> > 
> > Solanki
> > 
> > > > > >> > >> va
> > > > > >> > >> 
> > > > > >> > >> escriure:
> > > > > >> > >> > On Mon, Jun 3, 2013 at 2:43 AM, Albert Astals Cid <
> > > > 
> > > > aacid at kde.org>
> > > > 
> > > > > >> > >> wrote:
> > > > > >> > >> > > El Dilluns, 3 de juny de 2013, a les 01:52:04, Jaydeep
> > > > 
> > > > Solanki
> > > > 
> > > > > >> > >> > > va
> > > > > >> > >> 
> > > > > >> > >> escriure:
> > > > > >> > >> > > > Hi,
> > > > > >> > >> > > > While working on getting text bounds work I discovered
> > > > > >> > >> > > > that
> > > > > >> > >> > > > QWebFrame::hitTestContent(QPoint()) hits the outermost
> > > > > >> > >> > > > element,
> > > > > >> > >> 
> > > > > >> > >> inside
> > > > > >> > >> 
> > > > > >> > >> > > body.
> > > > > >> > >> > > 
> > > > > >> > >> > > > Consider the below HTML,
> > > > > >> > >> > > > 
> > > > > >> > >> > > > <section>
> > > > > >> > >> > > > <p id="p1">some text...</p>
> > > > > >> > >> > > > <div>...</div>
> > > > > >> > >> > > > <p id="p2">some other text..</p>
> > > > > >> > >> > > > </section>
> > > > > >> > >> > > > 
> > > > > >> > >> > > > Now we have two QPoints;
> > > > > >> > >> > > > QPoint pt1 => which points somewhere within p1
> > > > > >> > >> > > > QPoint pt2 => which points somewhere within p2
> > > > > >> > >> > > > 
> > > > > >> > >> > > > var ht1 = QWebFrame::hitTestContent(pt1);
> > > > > >> > >> > > > var ht2 = QWebFrame::hitTestContent(pt2);
> > > > > >> > >> > > 
> > > > > >> > >> > > Why are you using hitTestContent to get the data? Isn't
> > > > > >> > >> > > there
> > > > > >> > >> 
> > > > > >> > >> something
> > > > > >> > >> 
> > > > > >> > >> > > better? What's your plan? call hitTestContent for all
> > > > > >> > >> > > the
> > > > 
> > > > points
> > > > 
> > > > > >> or?
> > > > > >> 
> > > > > >> > >> > Yes, I agree traversing the DOM is a better idea.
> > > > > >> > >> > 
> > > > > >> > >> > I googled a bit & found that we cannot get the bounding
> > 
> > rect
> > 
> > > > > >> > >> > of
> > > > > >> 
> > > > > >> text
> > > > > >> 
> > > > > >> > >> from
> > > > > >> > >> 
> > > > > >> > >> > webkit
> > > > > >> > >> > (source<
> > > > > >> 
> > > > > >> http://comments.gmane.org/gmane.os.opendarwin.webkit.qt/1130>),
> > > > > >> 
> > > > > >> > >> but
> > > > > >> > >> 
> > > > > >> > >> > we can get the bounding box of the HTML element. I don't
> > 
> > get
> > 
> > > > it,
> > > > 
> > > > > >> why it
> > > > > >> 
> > > > > >> > >> > isn't possible, because in QWebView when we select any
> > 
> > text,
> > 
> > > > > >> > >> > it
> > > > > >> 
> > > > > >> gets
> > > > > >> 
> > > > > >> > >> > highlighted, which is basically filling color in the
> > 
> > bounding
> > 
> > > > box
> > > > 
> > > > > >> of
> > > > > >> 
> > > > > >> > >> > the
> > > > > >> > >> > text, which indirectly means that Webview knows the
> > 
> > bounding
> > 
> > > > > >> rects. Do
> > > > > >> 
> > > > > >> > >> > I
> > > > > >> > >> > make sense ?
> > > > > >> > >> > Please comment on this.
> > > > > >> > >> 
> > > > > >> > >> What about the suggestion in that very same url of using
> > > > > >> > >> qwebelement?
> > > > > >> > >> 
> > > > > >> > >> Cheers,
> > > > > >> > >> 
> > > > > >> > >>   Albert
> > > > > >> > >>   
> > > > > >> > >> > & if everything fails, QFontMetrics may be of some use. We
> > 
> > can
> > 
> > > > get
> > > > 
> > > > > >> the
> > > > > >> 
> > > > > >> > >> font
> > > > > >> > >> 
> > > > > >> > >> > metrics, & using it + the bounding box of the HTML
> > 
> > element, we
> > 
> > > > can
> > > > 
> > > > > >> > >> predict
> > > > > >> > >> 
> > > > > >> > >> > the bounding rects.
> > > > > >> > >> > 
> > > > > >> > >> > Cheers,
> > > > > >> > >> > Jaydeep
> > > > > >> > >> > 
> > > > > >> > >> > > Cheers,
> > > > > >> > >> > > 
> > > > > >> > >> > >   Albert
> > > > > >> > >> > >   
> > > > > >> > >> > > > Analysing ht1 & ht2 turns out that both of them point
> > 
> > to
> > 
> > > > the
> > > > 
> > > > > >> > >> > > > section
> > > > > >> > >> > > > element, which seems to be a little problem. I'm
> > 
> > searching
> > 
> > > > for
> > > > 
> > > > > >> > >> > > > other
> > > > > >> > >> > > > ways
> > > > > >> > >> > > > to do it. If you have any idea to get it work, please
> > > > 
> > > > share.
> > > > 
> > > > > >> > >> > > > Cheers,
> > > > > >> > >> > > > Jaydeep
> > > > > >> > >> > > 
> > > > > >> > >> > > _______________________________________________
> > > > > >> > >> > > Okular-devel mailing list
> > > > > >> > >> > > Okular-devel at kde.org
> > > > > >> > >> > > https://mail.kde.org/mailman/listinfo/okular-devel
> > > > > >> > >> 
> > > > > >> > >> _______________________________________________
> > > > > >> > >> Okular-devel mailing list
> > > > > >> > >> Okular-devel at kde.org
> > > > > >> > >> https://mail.kde.org/mailman/listinfo/okular-devel
> > > > > >> 
> > > > > >> _______________________________________________
> > > > > >> Okular-devel mailing list
> > > > > >> Okular-devel at kde.org
> > > > > >> https://mail.kde.org/mailman/listinfo/okular-devel
> > > > 
> > > > _______________________________________________
> > > > Okular-devel mailing list
> > > > Okular-devel at kde.org
> > > > https://mail.kde.org/mailman/listinfo/okular-devel
> > 
> > _______________________________________________
> > Okular-devel mailing list
> > Okular-devel at kde.org
> > https://mail.kde.org/mailman/listinfo/okular-devel


More information about the Okular-devel mailing list