summaryrefslogtreecommitdiffstats
path: root/examples/qtmail/app/messagelistview.cpp
diff options
context:
space:
mode:
authorDon Sanders <don.sanders@nokia.com>2010-06-30 21:02:04 +1000
committerDon Sanders <don.sanders@nokia.com>2010-06-30 21:02:40 +1000
commit973692d5fd589d61a7cc09814fb145e9c8c30667 (patch)
treefa40b379b8ee2c6cb75ba6e648707ee6653ab21b /examples/qtmail/app/messagelistview.cpp
parentd6557ab61c7446a226ba34aa56bc40dffe196939 (diff)
Fix a bug with 'get more messages' not being shown after clearing
the quick search bar.
Diffstat (limited to 'examples/qtmail/app/messagelistview.cpp')
-rw-r--r--examples/qtmail/app/messagelistview.cpp35
1 files changed, 32 insertions, 3 deletions
diff --git a/examples/qtmail/app/messagelistview.cpp b/examples/qtmail/app/messagelistview.cpp
index 72c663df..4f43c405 100644
--- a/examples/qtmail/app/messagelistview.cpp
+++ b/examples/qtmail/app/messagelistview.cpp
@@ -80,6 +80,7 @@ public slots:
signals:
void quickSearchRequested(const QMailMessageKey& key);
+ void quickSearchReset();
void fullSearchRequested();
private slots:
@@ -146,6 +147,8 @@ void QuickSearchWidget::searchTermsChanged()
{
m_key = buildSearchKey();
emit quickSearchRequested(m_key);
+ if (m_searchTerms->text().isEmpty() && m_statusCombo->currentIndex() == 0)
+ emit quickSearchReset();
}
QMailMessageKey QuickSearchWidget::buildSearchKey() const
@@ -478,7 +481,8 @@ MessageListView::MessageListView(QWidget* parent)
mSelectedRowsRemoved(false),
mQuickSearchWidget(0),
mShowMoreButton(false),
- mThreaded(true)
+ mThreaded(true),
+ mQuickSearchIsEmpty(true)
{
init();
showQuickSearch(true);
@@ -531,8 +535,20 @@ QMailFolderId MessageListView::folderId() const
void MessageListView::setFolderId(const QMailFolderId& folderId)
{
- mFolderId = folderId;
- setMoreButtonVisible(mFolderId.isValid());
+ // We need to see if the folder status has changed
+ QMailFolder folder;
+ if (folderId.isValid()) {
+ folder = QMailFolder(folderId);
+
+ // Are there more messages to be retrieved for this folder?
+ if ((folder.status() & QMailFolder::PartialContent) == 0) {
+ // No more messages to retrieve
+ folder = QMailFolder();
+ }
+ }
+
+ mFolderId = folder.id();
+ updateActions();
}
void MessageListView::init()
@@ -543,6 +559,7 @@ void MessageListView::init()
mQuickSearchWidget = new QuickSearchWidget(this);
connect(mQuickSearchWidget,SIGNAL(quickSearchRequested(QMailMessageKey)),this,SLOT(quickSearch(QMailMessageKey)));
+ connect(mQuickSearchWidget,SIGNAL(quickSearchReset()),this,SLOT(quickSearchReset()));
connect(mQuickSearchWidget,SIGNAL(fullSearchRequested()),this,SIGNAL(fullSearchRequested()));
reset();
@@ -583,6 +600,11 @@ void MessageListView::init()
setFocusProxy(mMessageList);
}
+void MessageListView::updateActions()
+{
+ setMoreButtonVisible(mFolderId.isValid() && mQuickSearchIsEmpty);
+}
+
QMailMessageId MessageListView::current() const
{
return mMessageList->currentIndex().data(QMailMessageModelBase::MessageIdRole).value<QMailMessageId>();
@@ -900,6 +922,7 @@ void MessageListView::scrollTimeout()
void MessageListView::quickSearch(const QMailMessageKey& key)
{
+ mQuickSearchIsEmpty = false;
if (current().isValid())
mPreviousCurrent = current();
@@ -916,6 +939,12 @@ void MessageListView::quickSearch(const QMailMessageKey& key)
mExpandAllTimer.start(0);
}
+void MessageListView::quickSearchReset()
+{
+ mQuickSearchIsEmpty = true;
+ updateActions();
+}
+
QMailMessageIdList MessageListView::visibleMessagesIds(bool buffer) const
{
QMailMessageIdList visibleIds;