On 07/10/12 18:10, Thomas Lübking wrote:
No problem. I used to prefer 0 (or rather 0L) anyway, but and
FYI the /current/ talk around KDE is to use NULL because it can easily
be sed'ed into nullptr later on - what has a valid point to it.
Thanks for letting me know, that's what I was suspecting about the
motivation. I'll have a look at it, the first thing which come across my
mind is "#define nullptr (0)", but I have to assume someone's already
tried that -- so I'll definitely take a look at that.
state, but if you're touching this part, I'd prefer to have this one
fixed, too, preferably in a separate patch.
Done. You gained access to somebody who's probably read all QWidget
sources ;-)
That's awesome! Thanks a lot!
I see that you've apparently read QWebView's sources as well, because
you've managed to fix my long-standing issue with its size hints [1]. I
owe you a beer for that, and I'm impressed.
There are a few bugs, though:
- Starting in the wide layout, going to compact, the message widget gets
wider. That's correct as it has to fill up space which is suddenly
bigger. However, going back to wide, its "big width" remains and one has
to scroll even though it isn't really required. That'd be nice to get
rid of.
- When I disable "show trojita's homepage on startup", the viewer shows
a small black bar at the top of the page when I launch Trojita. Just a
cosmetic issue.
- With a certain HTML message which I won't post to the ML (but can
forward to you if you cannot reproduce that, it's some marketing crap),
the viewer segfaults on my machine, probably due to the infinite
recursion -- see the attached backtrace snippet. Switching wide ->
compact -> wide views makes it happen with more messages here. That is a
critical issue (could crash Trojita at any time), so I haven't merged
the first patch in yet.
- The MessageView takes too much vertical space; opening up your e-mail
(the one to which I'm replying) shows a rather big white space between
the two attachments and the last line of your message. Not a regression,
just something which annoys me and would be cool to somehow mitigate it.
I also managed to introduce a very
embarrassing bug with OR in that code, so I don't really see people
using that too much) -- it's an excellent idea for now.
Braces, ie "(or from jan to jan) since 1-July-2012" will currently not
work.
The reason is (is?) that ::requestingSearch() expects a stringlist of
keys or parameters - and braces are neither.
I've not looked at the backend so far, but would have expected it'd just
pass a string to the server (and then ran into having perform quoted
whitespace splits ;-)
See below, my API sucks.
"advanced users", why not simply return a single-element QStringList()
<< foo.text()?
Tried, failed. Don't know why.
"BAD Could not parse command"
And no, i don't like the parser either. See above.
All right, my bad, this is because the searching API will try to treat
the passed data as something which has to be transmitted using the
generic IMAP's rules, and the search condition 'subject foobar' will be
sent as "subject foobar", *including the quotes* (similar to
parentheses, they'd be enclosed in quotes as well).
This actually makes sense from a certain point of view, it's reasonable
to defer the search criteria serialization to the lower layers; the API
"just" abused the fact that all "special keywords" which are used in
IMAP can be fed to the same function which decides about how to encode
and transmit arbitrary data.
I've added an ugly hack which will send the data as-is, without any
fancy escaping, in case the QStringList has just a single item. This
works because the old code would never produce a single-item list, and
feels better than moving the convert-this-to-the-IMAP's-encoding all the
way up to the MsgListWidget. A proper fix would be to change the API to
accept a "reasonable" data structure capable of conveying complex search
criteria; however, this is something which I really don't want to do
right now due to time constraints. Redmine #528 [2].
If you feel like doing the complex search feature, this should probably
be done in a pretty straightforward, albeit far from trivial way --
patches welcome.
- Not sure if the "flat" presentation of the message parts is better --
I see that the old look is probably pretty cluttered up, but the new one
looks weird on my style -- see the attached screenshot.
Oxygen is "special" here, but i can override it's assumptions (as long
as Hugo doesn't want to start a race on this =)
Cool, thanks -- the tab boxes look great now.
- Do you really like the buttons-right-from-the-qlineedit?
No. This kind of search is very limiting compared to IMAP capabilities
(first time I logged in with the generic ssl client was some kind of
epiphany regarding what -most- mail clients so far hided from users)
The major defect is that you must know the query keys and also the
"strange" polish (prefix operators) syntax.
Acked, it is limiting. What I wanted to suggest is that I've grown used
to Thunderbird's UI which puts the buttons to the bottom of the input
widget, and that looks like a more straightforward place for me. Your
patch moves them to the right, reducing the space for the input box --
do you really want to do that?
In future, I'd like to have a full-blown searching dialog -- no doubts
about this one, I agree, absolutely. I think that it can be separate
from how the quick search works, though.
Therefore i'd suggest a syntax clicker, ie. a popup (behind a toolbutton
with a nifty icon, takes little space) to assist the user in generating
valid IMAP queries.
Basically you select "From:" and the lineedit is completed by "FROM
<string>" and "<string>" is selected (so you overide it by typing), OR
and AND are provided as "Match any" and "Match all" subgroups injecting
"(OR <search>)", "<search>" being selected and replaced as soon as you
click (eg.) "From" from the popup.
Before we pass the string, we'd just do a quick check whether it looks
like a valid query at all and otherwise perform a default simple search
in Subject & Sender.
-> Thoughts?
Yes, a GUI for building that query is a must for normal users, I agree.
I'm not convinced that it has to support actually parsing the raw user
input in the IMAP format; if it was just a GUI capable of generating the
query, it'd be perfectly acceptable for me. I suspect that it'd lead to
much simpler code as well -- you'd just design and populate a dedicated
data structure based on some widgets and their contents instead of
having to parse yet another data format.
That said, if you feel like having support for entering the raw query
directly *and* having it parsed in the GUI at the same time is the way
to go, please go ahead, patches welcome -- it's just that I'm not (yet)
convinced about usefulness of that, so I won't write it myself. I'll not
object to such a patch at all, though.
Well, the multiaccount support is going to be a rather big change --
doable, but intrusive into many parts of Trojitá.
I was afraid of large rewrites and stuff about 10 years ago (really, i
sometimes thought "that's never gonna compile again ever" ;-) but no
longer.
I'll just try.
I know that feeling :). The biggest problem which I can imagine is that
the Imap::Mailbox::Model::realTreeItem (and a few other functions, I'm
afraid) assumes that if you have a QModelIndex, you can check whether it
belongs to a QAbstractProxyModel and if it does, just recursively check
their sourceModel()s until you hit a real IMAP Model.
When you add multiple accounts, this will have to change somehow; the
most straightforward implementation is to have some kind of a "merging"
model putting a few of the existing Models together. I haven't thought
about that too much, though, so I suspect there might be a few gotchas
in there.
If you hit an issue or aren't sure about how to proceed or just stumble
upon something "weird" in there, please don't hesitate to write a mail.
PS: would you mind removing the sort action popup and instead make the
header sorting (as much as possible, ie. if there's no sort extension on
the server you can just swap order by clicking anywhere)
Afaik there's either sorting or not (not "sort by date and subject but
nothing else) so one could in absence of the sort extension even present
the header as a unique section (with several items)
I'm a bit confused here -- the sort-by-click-on-the-header is
implemented and should work; the menu control is there just to make sure
users can notice that functionality. Is that what you're referring to?
It has to be activated in a rather wild mode
(MainWindow::slotSortingPreferenceChanged and
MainWindow::slotSortingConfirmed) because the IMAP code has to "confirm"
that the requested sorting can be actually applied. I haven't found a
way to do that by just manipulating the view; it seems to me that
sorting at the level of the view would not reach the underlying model at
all and would instead try to perform a client-side sort.
Finally, without the explicit menu, it might be problematic to "undo"
the sorting; users would have to click on the "Seen" column to revert
back to "no sorting, use the mailbox order".
Anyway, right now Trojita will only do a server-side sorting; doing that
on client would have rather big implications on data consumption (you'll
essentially have to fetch metadata for all messages in a mailbox, which
is a pretty expensive operation). At the same time, this server-side
thing has a few issues as well; it will obviously not work when offline
and unless the server supports CONTEXT=SORT (no server supports that
AFAIK), a newly arriving message leads to another request for complete
sorting, which leads to "at least" 280kB of data to be downloaded on a
mailbox with 50k messages [2]. In addition to that, servers which
already support THREAD=REFS (which is unfortunately only Dovecot for
now) already sort in a reasonable order when threading is active (by the
date of the most recent message in a thread).
All of that makes me feel that the GUI shall "hint" the user that they
don't really want to activate sorting, unless they really do -- and this
means that the menu is required to be able to easily revert back to "no
sorting". This might be a view which is totally disconnected from
reality, though.
As a last thing, if you'd like to contribute to Trojita, please consider
subscribing to the mailing list, it's pretty low traffic and I'd much
prefer all relevant people in there. If it doesn't suite you for some
reason, that's also fine -- and there's also the "nomail" variant which
will at least prevent the delay due to moderation of all mails from
non-members.
Thanks for your patches again, and please keep up the good work.
Cheers,
Jan
[1] https://projects.flaska.net/issues/68
[2] Python: len(",".join(str(x) for x in range(50000)))
[3] https://projects.flaska.net/issues/528
--
Trojita, a fast e-mail client -- http://trojita.flaska.net/
(gdb) bt
#0 0x00007ffff6cc8b74 in WebCore::RenderBlock::marginValuesForChild
(this=0x7fffe6e7d490, child=0x7fffe6e7d548) at rendering/RenderBlock.cpp:6265
#1 0x00007ffff6cc8e96 in WebCore::RenderBlock::collapseMargins
(this=0x7fffe6e7d490, child=0x7fffe6e7d548, marginInfo=...) at
rendering/RenderBlock.cpp:1601
#2 0x00007ffff6cd32d7 in WebCore::RenderBlock::layoutBlockChild
(this=0x7fffe6e7d490, child=0x7fffe6e7d548, marginInfo=...,
previousFloatLogicalBottom=<optimized out>,
maxFloatLogicalBottom=@0x7fffff7ff36c) at rendering/RenderBlock.cpp:2007
#3 0x00007ffff6cd3b7f in WebCore::RenderBlock::layoutBlockChildren
(this=0x7fffe6e7d490, relayoutChildren=false,
maxFloatLogicalBottom=@0x7fffff7ff36c) at rendering/RenderBlock.cpp:1938
#4 0x00007ffff6cda387 in WebCore::RenderBlock::layoutBlock
(this=0x7fffe6e7d490, relayoutChildren=false, pageLogicalHeight=0) at
rendering/RenderBlock.cpp:1262
#5 0x00007ffff6cb98f1 in WebCore::RenderBlock::layout (this=0x7fffe6e7d490) at
rendering/RenderBlock.cpp:1158
#6 0x00007ffff6cd32bf in WebCore::RenderBlock::layoutBlockChild
(this=0x7fffe6e7d298, child=0x7fffe6e7d490, marginInfo=...,
previousFloatLogicalBottom=@0x7fffff7ff4c4,
maxFloatLogicalBottom=@0x7fffff7ff60c) at rendering/RenderBlock.cpp:2000
#7 0x00007ffff6cd3b7f in WebCore::RenderBlock::layoutBlockChildren
(this=0x7fffe6e7d298, relayoutChildren=false,
maxFloatLogicalBottom=@0x7fffff7ff60c) at rendering/RenderBlock.cpp:1938
#8 0x00007ffff6cda387 in WebCore::RenderBlock::layoutBlock
(this=0x7fffe6e7d298, relayoutChildren=false, pageLogicalHeight=0) at
rendering/RenderBlock.cpp:1262
#9 0x00007ffff6cb98f1 in WebCore::RenderBlock::layout (this=0x7fffe6e7d298) at
rendering/RenderBlock.cpp:1158
#10 0x00007ffff6cd32bf in WebCore::RenderBlock::layoutBlockChild
(this=0x7fffe6e7d020, child=0x7fffe6e7d298, marginInfo=...,
previousFloatLogicalBottom=@0x7fffff7ff764,
maxFloatLogicalBottom=@0x7fffff7ff8ac) at rendering/RenderBlock.cpp:2000
#11 0x00007ffff6cd3b7f in WebCore::RenderBlock::layoutBlockChildren
(this=0x7fffe6e7d020, relayoutChildren=false,
maxFloatLogicalBottom=@0x7fffff7ff8ac) at rendering/RenderBlock.cpp:1938
#12 0x00007ffff6cda387 in WebCore::RenderBlock::layoutBlock
(this=0x7fffe6e7d020, relayoutChildren=false, pageLogicalHeight=0) at
rendering/RenderBlock.cpp:1262
#13 0x00007ffff6cb98f1 in WebCore::RenderBlock::layout (this=0x7fffe6e7d020) at
rendering/RenderBlock.cpp:1158
#14 0x00007ffff6dad4e8 in WebCore::RenderView::layout (this=0x7fffe6e7d020) at
rendering/RenderView.cpp:130
#15 0x00007ffff6bfd1c3 in WebCore::FrameView::layout (this=0x7fffde8b0600,
allowSubtree=<optimized out>) at page/FrameView.cpp:964
#16 0x00007ffff6bfea65 in WebCore::FrameView::visibleContentsResized
(this=0x7fffde8b0600) at page/FrameView.cpp:1564
#17 0x00007ffff6c7f64e in WebCore::ScrollView::updateScrollbars
(this=0x7fffde8b0600, desiredOffset=...) at platform/ScrollView.cpp:456
#18 0x00007ffff6c802af in WebCore::ScrollView::setBoundsSize
(this=0x7fffde8b0600, newSize=...) at platform/ScrollView.cpp:838
#19 0x00007ffff67521c8 in resize (s=..., this=0x7fffde8b0600) at
../../WebCore/platform/Widget.h:161
#20 QWebPage::setViewportSize (this=<optimized out>, size=<optimized out>) at
Api/qwebpage.cpp:2474
#21 0x000000000043dc48 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff800700) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:107
#22 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff800700)
at kernel/qwidget.cpp:8516
#23 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff800700) at
Api/qwebview.cpp:865
#24 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff800700) at kernel/qapplication.cpp:4554
#25 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff800700) at kernel/qapplication.cpp:4415
#26 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff800700) at
kernel/qcoreapplication.cpp:876
#27 0x00007ffff509e0b3 in sendEvent (event=0x7fffff800700, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#28 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#29 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#30 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#31 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140882) at
kernel/qwidget.cpp:4000
#32 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140882) at
kernel/qwidget.cpp:4233
#33 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff8012e0) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#34 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff8012e0)
at kernel/qwidget.cpp:8516
#35 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff8012e0) at
Api/qwebview.cpp:865
#36 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff8012e0) at kernel/qapplication.cpp:4554
#37 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff8012e0) at kernel/qapplication.cpp:4415
#38 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff8012e0) at
kernel/qcoreapplication.cpp:876
#39 0x00007ffff509e0b3 in sendEvent (event=0x7fffff8012e0, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#40 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#41 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#42 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#43 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140831) at
kernel/qwidget.cpp:4000
#44 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140831) at
kernel/qwidget.cpp:4233
#45 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff801ec0) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#46 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff801ec0)
at kernel/qwidget.cpp:8516
#47 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff801ec0) at
Api/qwebview.cpp:865
#48 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff801ec0) at kernel/qapplication.cpp:4554
#49 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff801ec0) at kernel/qapplication.cpp:4415
#50 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff801ec0) at
kernel/qcoreapplication.cpp:876
#51 0x00007ffff509e0b3 in sendEvent (event=0x7fffff801ec0, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#52 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#53 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#54 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#55 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140780) at
kernel/qwidget.cpp:4000
#56 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140780) at
kernel/qwidget.cpp:4233
#57 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff802aa0) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#58 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff802aa0)
at kernel/qwidget.cpp:8516
#59 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff802aa0) at
Api/qwebview.cpp:865
#60 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff802aa0) at kernel/qapplication.cpp:4554
#61 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff802aa0) at kernel/qapplication.cpp:4415
#62 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff802aa0) at
kernel/qcoreapplication.cpp:876
#63 0x00007ffff509e0b3 in sendEvent (event=0x7fffff802aa0, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#64 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#65 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#66 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#67 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140729) at
kernel/qwidget.cpp:4000
#68 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140729) at
kernel/qwidget.cpp:4233
#69 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff803680) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#70 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff803680)
at kernel/qwidget.cpp:8516
#71 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff803680) at
Api/qwebview.cpp:865
#72 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff803680) at kernel/qapplication.cpp:4554
#73 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff803680) at kernel/qapplication.cpp:4415
#74 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff803680) at
kernel/qcoreapplication.cpp:876
#75 0x00007ffff509e0b3 in sendEvent (event=0x7fffff803680, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#76 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#77 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#78 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#79 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140678) at
kernel/qwidget.cpp:4000
#80 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140678) at
kernel/qwidget.cpp:4233
#81 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff804260) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#82 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff804260)
at kernel/qwidget.cpp:8516
#83 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff804260) at
Api/qwebview.cpp:865
#84 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff804260) at kernel/qapplication.cpp:4554
#85 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff804260) at kernel/qapplication.cpp:4415
#86 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff804260) at
kernel/qcoreapplication.cpp:876
#87 0x00007ffff509e0b3 in sendEvent (event=0x7fffff804260, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#88 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#89 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#90 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#91 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140627) at
kernel/qwidget.cpp:4000
#92 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140627) at
kernel/qwidget.cpp:4233
#93 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff804e40) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#94 0x00007ffff504bbe3 in QWidget::event (this=0x1338900, event=0x7fffff804e40)
at kernel/qwidget.cpp:8516
#95 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff804e40) at
Api/qwebview.cpp:865
#96 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff804e40) at kernel/qapplication.cpp:4554
#97 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff804e40) at kernel/qapplication.cpp:4415
#98 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff804e40) at
kernel/qcoreapplication.cpp:876
#99 0x00007ffff509e0b3 in sendEvent (event=0x7fffff804e40, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#100 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#101 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#102 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#103 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140576) at
kernel/qwidget.cpp:4000
#104 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140576)
at kernel/qwidget.cpp:4233
#105 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff805a20) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#106 0x00007ffff504bbe3 in QWidget::event (this=0x1338900,
event=0x7fffff805a20) at kernel/qwidget.cpp:8516
#107 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff805a20)
at Api/qwebview.cpp:865
#108 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff805a20) at kernel/qapplication.cpp:4554
#109 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff805a20) at kernel/qapplication.cpp:4415
#110 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff805a20) at
kernel/qcoreapplication.cpp:876
#111 0x00007ffff509e0b3 in sendEvent (event=0x7fffff805a20, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#112 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#113 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#114 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#115 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140525) at
kernel/qwidget.cpp:4000
#116 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140525)
at kernel/qwidget.cpp:4233
#117 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffff806600) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#118 0x00007ffff504bbe3 in QWidget::event (this=0x1338900,
event=0x7fffff806600) at kernel/qwidget.cpp:8516
#119 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffff806600)
at Api/qwebview.cpp:865
#120 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffff806600) at kernel/qapplication.cpp:4554
#121 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffff806600) at kernel/qapplication.cpp:4415
#122 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffff806600) at
kernel/qcoreapplication.cpp:876
#123 0x00007ffff509e0b3 in sendEvent (event=0x7fffff806600, receiver=0x1338900)
at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#124 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#125 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#126 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#127 QWidget::setMinimumSize (this=0x1338900, minw=1389, minh=140474) at
kernel/qwidget.cpp:4000
#128 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=140474)
at kernel/qwidget.cpp:4233
...
#33000 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffffff7f80) at kernel/qapplication.cpp:4554
#33001 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffffff7f80) at kernel/qapplication.cpp:4415
#33002 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffffff7f80) at
kernel/qcoreapplication.cpp:876
#33003 0x00007ffff509e0b3 in sendEvent (event=0x7fffffff7f80,
receiver=0x1338900) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33004 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#33005 0x00007ffff50460ed in QWidget::resize (this=0x1338900, s=...) at
kernel/qwidget.cpp:6944
#33006 0x00007ffff5048c5a in resize (h=<optimized out>, w=<optimized out>,
this=0x1338900) at ../../include/QtGui/../../src/gui/kernel/qwidget.h:1012
#33007 QWidget::setMinimumSize (this=0x1338900, minw=734, minh=734) at
kernel/qwidget.cpp:4000
#33008 0x00007ffff5048dc5 in QWidget::setFixedHeight (this=0x1338900, h=734) at
kernel/qwidget.cpp:4233
#33009 0x000000000043dca0 in Gui::EmbeddedWebView::resizeEvent (this=0x1338900,
re=0x7fffffff8b60) at ../../../../trojita/src/Gui/EmbeddedWebView.cpp:110
#33010 0x00007ffff504bbe3 in QWidget::event (this=0x1338900,
event=0x7fffffff8b60) at kernel/qwidget.cpp:8516
#33011 0x00007ffff675cc4e in QWebView::event (this=0x1338900, e=0x7fffffff8b60)
at Api/qwebview.cpp:865
#33012 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x1338900, e=0x7fffffff8b60) at kernel/qapplication.cpp:4554
#33013 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x1338900, e=0x7fffffff8b60) at kernel/qapplication.cpp:4415
#33014 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x1338900, event=0x7fffffff8b60) at
kernel/qcoreapplication.cpp:876
#33015 0x00007ffff509e0b3 in sendEvent (event=0x7fffffff8b60,
receiver=0x1338900) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33016 QWidgetPrivate::setGeometry_sys (this=0x13c85e0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=true) at
kernel/qwidget_x11.cpp:2656
#33017 0x00007ffff5045f85 in QWidget::setGeometry (this=0x1338900, r=...) at
kernel/qwidget.cpp:6960
#33018 0x00007ffff5020135 in setGeometry (ah=683, aw=1389, ay=<optimized out>,
ax=<optimized out>, this=<optimized out>) at
../../include/QtGui/../../src/gui/kernel/qwidget.h:1015
#33019 QWidgetItem::setGeometry (this=0x1469b60, rect=<optimized out>) at
kernel/qlayoutitem.cpp:490
#33020 0x00007ffff4ffa54c in QBoxLayout::setGeometry (this=0x186eb80, r=...) at
kernel/qboxlayout.cpp:868
#33021 0x00007ffff501bb5e in QLayoutPrivate::doResize (this=0x145fa60, r=...)
at kernel/qlayout.cpp:681
#33022 0x00007ffff4fe9b2b in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0x13d5b70, e=0x7fffffff95c0) at kernel/qapplication.cpp:4545
#33023 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0x13d5b70, e=0x7fffffff95c0) at kernel/qapplication.cpp:4415
#33024 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0x13d5b70, event=0x7fffffff95c0) at
kernel/qcoreapplication.cpp:876
#33025 0x00007ffff509e0b3 in sendEvent (event=0x7fffffff95c0,
receiver=0x13d5b70) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33026 QWidgetPrivate::setGeometry_sys (this=0x14a32f0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=true) at
kernel/qwidget_x11.cpp:2656
#33027 0x00007ffff5045f85 in QWidget::setGeometry (this=0x13d5b70, r=...) at
kernel/qwidget.cpp:6960
#33028 0x00007ffff5020135 in setGeometry (ah=720, aw=1403, ay=<optimized out>,
ax=<optimized out>, this=<optimized out>) at
../../include/QtGui/../../src/gui/kernel/qwidget.h:1015
#33029 QWidgetItem::setGeometry (this=0x17e0360, rect=<optimized out>) at
kernel/qlayoutitem.cpp:490
#33030 0x00007ffff4ffa4c3 in QBoxLayout::setGeometry (this=0xad5f00, r=...) at
kernel/qboxlayout.cpp:861
#33031 0x00007ffff4ffa54c in QBoxLayout::setGeometry (this=0xad62b0, r=...) at
kernel/qboxlayout.cpp:868
#33032 0x00007ffff501bb5e in QLayoutPrivate::doResize (this=0x9544c0, r=...) at
kernel/qlayout.cpp:681
#33033 0x00007ffff4fe9b2b in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0xa08e10, e=0x7fffffffa180) at kernel/qapplication.cpp:4545
#33034 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0xa08e10, e=0x7fffffffa180) at kernel/qapplication.cpp:4415
#33035 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0xa08e10, event=0x7fffffffa180) at
kernel/qcoreapplication.cpp:876
#33036 0x00007ffff509e0b3 in sendEvent (event=0x7fffffffa180,
receiver=0xa08e10) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33037 QWidgetPrivate::setGeometry_sys (this=0xacd0f0, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=false) at
kernel/qwidget_x11.cpp:2656
#33038 0x00007ffff50460ed in QWidget::resize (this=0xa08e10, s=...) at
kernel/qwidget.cpp:6944
#33039 0x00007ffff54f6570 in QScrollAreaPrivate::updateScrollBars
(this=0xade050) at widgets/qscrollarea.cpp:212
#33040 0x00007ffff504bbe3 in QWidget::event (this=0xa672e0,
event=0x7fffffffacf0) at kernel/qwidget.cpp:8516
#33041 0x00007ffff5458696 in QFrame::event (this=0xa672e0, e=0x7fffffffacf0) at
widgets/qframe.cpp:557
#33042 0x00007ffff450cce6 in
QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<optimized out>,
receiver=0xab8070, event=0x7fffffffacf0) at kernel/qcoreapplication.cpp:986
#33043 0x00007ffff4fe9b39 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0xab8070, e=0x7fffffffacf0) at kernel/qapplication.cpp:4550
#33044 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0xab8070, e=0x7fffffffacf0) at kernel/qapplication.cpp:4415
#33045 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0xab8070, event=0x7fffffffacf0) at
kernel/qcoreapplication.cpp:876
#33046 0x00007ffff509e0b3 in sendEvent (event=0x7fffffffacf0,
receiver=0xab8070) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33047 QWidgetPrivate::setGeometry_sys (this=0x911930, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=true) at
kernel/qwidget_x11.cpp:2656
#33048 0x00007ffff5045f85 in QWidget::setGeometry (this=0xab8070, r=...) at
kernel/qwidget.cpp:6960
#33049 0x00007ffff54f1b46 in QAbstractScrollAreaPrivate::layoutChildren
(this=0xade050) at widgets/qabstractscrollarea.cpp:480
#33050 0x00007ffff54f2f4e in QAbstractScrollArea::event (this=0xa672e0,
e=<optimized out>) at widgets/qabstractscrollarea.cpp:924
#33051 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0xa672e0, e=0x7fffffffb7d0) at kernel/qapplication.cpp:4554
#33052 0x00007ffff4feee44 in QApplication::notify (this=<optimized out>,
receiver=0xa672e0, e=0x7fffffffb7d0) at kernel/qapplication.cpp:4415
#33053 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0xa672e0, event=0x7fffffffb7d0) at
kernel/qcoreapplication.cpp:876
#33054 0x00007ffff509e0b3 in sendEvent (event=0x7fffffffb7d0,
receiver=0xa672e0) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33055 QWidgetPrivate::setGeometry_sys (this=0xade050, x=<optimized out>,
y=<optimized out>, w=<optimized out>, h=<optimized out>, isMove=true) at
kernel/qwidget_x11.cpp:2656
#33056 0x00007ffff5045f85 in QWidget::setGeometry (this=0xa672e0, r=...) at
kernel/qwidget.cpp:6960
#33057 0x00007ffff54be588 in QSplitterPrivate::setGeo (this=0xa85410,
sls=0xa89c10, p=226, s=696, allowCollapse=false) at widgets/qsplitter.cpp:750
#33058 0x00007ffff54c1407 in QSplitterPrivate::doResize (this=0xa85410) at
widgets/qsplitter.cpp:549
#33059 0x00007ffff54c1b9c in QSplitterPrivate::recalc (this=0xa85410,
update=true) at widgets/qsplitter.cpp:463
#33060 0x00007ffff54c2037 in QSplitterPrivate::insertWidget_helper
(this=0xa85410, index=1, widget=0xa672e0, show=<optimized out>) at
widgets/qsplitter.cpp:913
#33061 0x0000000000459b0f in Gui::MainWindow::slotLayoutCompact
(this=0x7fffffffd7e8) at ../../../../trojita/src/Gui/Window.cpp:1604
#33062 0x0000000000485a74 in Gui::MainWindow::qt_static_metacall
(_o=0x7fffffffd7e8, _c=QMetaObject::InvokeMetaMethod, _id=54,
_a=0x7fffffffbf20) at moc_Window.cpp:203
#33063 0x00007ffff4526592 in QMetaObject::activate (sender=0xa419e0,
m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffffffbf20) at
kernel/qobject.cpp:3547
#33064 0x00007ffff4fe15e2 in QAction::triggered (this=<optimized out>,
_t1=true) at .moc/release-shared/moc_qaction.cpp:277
#33065 0x00007ffff4fe18c3 in QAction::activate (this=0xa419e0, event=<optimized
out>) at kernel/qaction.cpp:1257
#33066 0x00007ffff549cd1b in QMenuPrivate::activateCausedStack (this=0xadaed0,
causedStack=QList<QPointer<QWidget>> = {...}, action=0xa419e0,
action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1028
#33067 0x00007ffff54a3e36 in QMenuPrivate::activateAction (this=0xadaed0,
action=0xa419e0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1120
#33068 0x00007ffff504ba0a in QWidget::event (this=0xac5f00,
event=0x7fffffffcac0) at kernel/qwidget.cpp:8362
#33069 0x00007ffff54a51cb in QMenu::event (this=0xac5f00, e=0x7fffffffcac0) at
widgets/qmenu.cpp:2469
#33070 0x00007ffff4fe9b84 in QApplicationPrivate::notify_helper (this=0x86b020,
receiver=0xac5f00, e=0x7fffffffcac0) at kernel/qapplication.cpp:4554
#33071 0x00007ffff4fef8e8 in QApplication::notify (this=<optimized out>,
receiver=0xac5f00, e=0x7fffffffcac0) at kernel/qapplication.cpp:4097
#33072 0x00007ffff450cb2c in QCoreApplication::notifyInternal
(this=0x7fffffffda70, receiver=0xac5f00, event=0x7fffffffcac0) at
kernel/qcoreapplication.cpp:876
#33073 0x00007ffff4feaca5 in sendEvent (event=<optimized out>,
receiver=<optimized out>) at
../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33074 QApplicationPrivate::sendMouseEvent (receiver=0xac5f00,
event=0x7fffffffcac0, alienWidget=0x0, nativeWidget=0xac5f00,
buttonDown=0x7ffff5be1458, lastMouseReceiver=..., spontaneous=true) at
kernel/qapplication.cpp:3165
#33075 0x00007ffff507efd4 in QETWidget::translateMouseEvent (this=0xac5f00,
event=<optimized out>) at kernel/qapplication_x11.cpp:4436
#33076 0x00007ffff507d449 in QApplication::x11ProcessEvent
(this=0x7fffffffda70, event=0x7fffffffd410) at kernel/qapplication_x11.cpp:3625
#33077 0x00007ffff50a985a in x11EventSourceDispatch (s=0x86ff40, callback=0,
user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#33078 0x00007ffff3c6732f in g_main_dispatch (context=0x86ec40) at gmain.c:2441
#33079 g_main_context_dispatch (context=0x86ec40) at gmain.c:3011
#33080 0x00007ffff3c67b78 in g_main_context_iterate (context=0x86ec40, block=1,
dispatch=1, self=<optimized out>) at gmain.c:3089
#33081 0x00007ffff3c67da1 in g_main_context_iteration (context=0x86ec40,
may_block=1) at gmain.c:3152
#33082 0x00007ffff454395f in QEventDispatcherGlib::processEvents
(this=0x86c390, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#33083 0x00007ffff50a9456 in QGuiEventDispatcherGlib::processEvents
(this=<optimized out>, flags=<optimized out>) at
kernel/qguieventdispatcher_glib.cpp:204
#33084 0x00007ffff450b602 in QEventLoop::processEvents (this=<optimized out>,
flags=...) at kernel/qeventloop.cpp:149
#33085 0x00007ffff450b9ed in QEventLoop::exec (this=0x7fffffffd760, flags=...)
at kernel/qeventloop.cpp:204
#33086 0x00007ffff4510edb in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1148
#33087 0x00000000004369eb in main (argc=2, argv=0x7fffffffdb78) at
../../../../trojita/src/Gui/main.cpp:35