diff options
| author | Don Sanders <don.sanders@nokia.com> | 2010-06-30 21:02:04 +1000 |
|---|---|---|
| committer | Don Sanders <don.sanders@nokia.com> | 2010-06-30 21:02:40 +1000 |
| commit | 973692d5fd589d61a7cc09814fb145e9c8c30667 (patch) | |
| tree | fa40b379b8ee2c6cb75ba6e648707ee6653ab21b /examples/qtmail/app/messagelistview.cpp | |
| parent | d6557ab61c7446a226ba34aa56bc40dffe196939 (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.cpp | 35 |
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; |
