summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Badea <catalin.badea392@gmail.com>2012-07-09 19:35:27 (GMT)
committerCatalin Badea <catalin.badea392@gmail.com>2012-07-09 19:35:27 (GMT)
commitb629b5c198020e0992ee6cf01669b7a5191e23ef (patch)
treeef351a65acedcfd9bf77d72a2fc9b7ffc3ac7e59 /Swift/QtUI/QtChatView.cpp
parent40dc0541e60549cc2db83005f45b51f93d42cc00 (diff)
downloadswift-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.cpp12
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();
+}
+
}