diff options
author | Catalin Badea <catalin.badea392@gmail.com> | 2012-07-09 19:35:27 (GMT) |
---|---|---|
committer | Catalin Badea <catalin.badea392@gmail.com> | 2012-07-09 19:35:27 (GMT) |
commit | b629b5c198020e0992ee6cf01669b7a5191e23ef (patch) | |
tree | ef351a65acedcfd9bf77d72a2fc9b7ffc3ac7e59 /Swift/QtUI/QtChatView.cpp | |
parent | 40dc0541e60549cc2db83005f45b51f93d42cc00 (diff) | |
download | swift-contrib-b629b5c198020e0992ee6cf01669b7a5191e23ef.zip swift-contrib-b629b5c198020e0992ee6cf01669b7a5191e23ef.tar.bz2 |
Calendar widget follows the currently viewed message
Diffstat (limited to 'Swift/QtUI/QtChatView.cpp')
-rw-r--r-- | Swift/QtUI/QtChatView.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Swift/QtUI/QtChatView.cpp b/Swift/QtUI/QtChatView.cpp index a55161f..153e3f9 100644 --- a/Swift/QtUI/QtChatView.cpp +++ b/Swift/QtUI/QtChatView.cpp @@ -61,6 +61,7 @@ QtChatView::QtChatView(QtChatTheme* theme, QWidget* parent) : QWidget(parent), f //webPage_->settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); webView_->setPage(webPage_); connect(webPage_, SIGNAL(selectionChanged()), SLOT(copySelectionToClipboard())); + connect(webPage_, SIGNAL(scrollRequested(int, int, const QRect&)), SLOT(handleScrollRequested(int, int, const QRect&))); viewReady_ = false; isAtBottom_ = true; @@ -384,4 +385,15 @@ void QtChatView::setMUCInvitationJoined(QString id) { } } +void QtChatView::handleScrollRequested(int, int dy, const QRect&) { + int pos = webPage_->mainFrame()->scrollBarValue(Qt::Vertical); + emit scrollRequested(pos - dy); +} + +int QtChatView::getSnippetPositionByDate(const QDate& date) { + QWebElement message = webPage_->mainFrame()->documentElement().findFirst(".date" + date.toString(Qt::ISODate)); + + return message.geometry().top(); +} + } |