Work on disabling actions.
This commit is contained in:
parent
b52e0e7027
commit
37f4ad4cfe
3 changed files with 30 additions and 4 deletions
|
@ -64,8 +64,8 @@ FeedMessageViewer::FeedMessageViewer(QWidget *parent)
|
||||||
m_messagesView(new MessagesView(this)),
|
m_messagesView(new MessagesView(this)),
|
||||||
m_feedsView(new FeedsView(this)),
|
m_feedsView(new FeedsView(this)),
|
||||||
m_messagesBrowser(new WebBrowser(this)),
|
m_messagesBrowser(new WebBrowser(this)),
|
||||||
m_dbCleanerThread(NULL),
|
|
||||||
m_feedDownloaderThread(NULL),
|
m_feedDownloaderThread(NULL),
|
||||||
|
m_dbCleanerThread(NULL),
|
||||||
m_feedDownloader(NULL),
|
m_feedDownloader(NULL),
|
||||||
m_dbCleaner(NULL) {
|
m_dbCleaner(NULL) {
|
||||||
initialize();
|
initialize();
|
||||||
|
@ -261,6 +261,26 @@ void FeedMessageViewer::switchFeedComponentVisibility() {
|
||||||
m_feedsWidget->setVisible(!m_feedsWidget->isVisible());
|
m_feedsWidget->setVisible(!m_feedsWidget->isVisible());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FeedMessageViewer::updateMessageButtonsAvailability() {
|
||||||
|
bool one_message_selected = m_messagesView->selectionModel()->selectedRows().size() == 1;
|
||||||
|
bool atleast_one_message_selected = m_messagesView->selectionModel()->selectedRows().size() >= 1;
|
||||||
|
bool recycle_bin_selected = m_messagesView->sourceModel()->loadedSelection().mode() == FeedsSelection::MessagesFromRecycleBin;
|
||||||
|
FormMain *form_main = qApp->mainForm();
|
||||||
|
|
||||||
|
form_main->m_ui->m_actionDeleteSelectedMessages->setEnabled(atleast_one_message_selected);
|
||||||
|
form_main->m_ui->m_actionMarkSelectedMessagesAsRead->setEnabled(atleast_one_message_selected);
|
||||||
|
form_main->m_ui->m_actionMarkSelectedMessagesAsUnread->setEnabled(atleast_one_message_selected);
|
||||||
|
form_main->m_ui->m_actionOpenSelectedMessagesInternally->setEnabled(atleast_one_message_selected);
|
||||||
|
form_main->m_ui->m_actionOpenSelectedSourceArticlesExternally->setEnabled(atleast_one_message_selected);
|
||||||
|
form_main->m_ui->m_actionOpenSelectedSourceArticlesInternally->setEnabled(atleast_one_message_selected);
|
||||||
|
form_main->m_ui->m_actionSendMessageViaEmail->setEnabled(one_message_selected);
|
||||||
|
form_main->m_ui->m_actionSwitchImportanceOfSelectedMessages->setEnabled(atleast_one_message_selected);
|
||||||
|
|
||||||
|
form_main->m_ui->m_actionRestoreSelectedMessagesFromRecycleBin->setEnabled(recycle_bin_selected && atleast_one_message_selected);
|
||||||
|
|
||||||
|
// TODO: To samo udělat s feedy, řešit pouze buttony, které se týkají výběru, ale také vzít v potaz, zda zrovna běží update.
|
||||||
|
}
|
||||||
|
|
||||||
void FeedMessageViewer::createConnections() {
|
void FeedMessageViewer::createConnections() {
|
||||||
FormMain *form_main = qApp->mainForm();
|
FormMain *form_main = qApp->mainForm();
|
||||||
|
|
||||||
|
@ -271,6 +291,8 @@ void FeedMessageViewer::createConnections() {
|
||||||
// Message changers.
|
// Message changers.
|
||||||
connect(m_messagesView, SIGNAL(currentMessagesRemoved()), m_messagesBrowser, SLOT(clear()));
|
connect(m_messagesView, SIGNAL(currentMessagesRemoved()), m_messagesBrowser, SLOT(clear()));
|
||||||
connect(m_messagesView, SIGNAL(currentMessagesChanged(QList<Message>)), m_messagesBrowser, SLOT(navigateToMessages(QList<Message>)));
|
connect(m_messagesView, SIGNAL(currentMessagesChanged(QList<Message>)), m_messagesBrowser, SLOT(navigateToMessages(QList<Message>)));
|
||||||
|
connect(m_messagesView, SIGNAL(currentMessagesRemoved()), this, SLOT(updateMessageButtonsAvailability()));
|
||||||
|
connect(m_messagesView, SIGNAL(currentMessagesChanged(QList<Message>)), this, SLOT(updateMessageButtonsAvailability()));
|
||||||
|
|
||||||
// If user selects feeds, load their messages.
|
// If user selects feeds, load their messages.
|
||||||
connect(m_feedsView, SIGNAL(feedsSelected(FeedsSelection)), m_messagesView, SLOT(loadFeeds(FeedsSelection)));
|
connect(m_feedsView, SIGNAL(feedsSelected(FeedsSelection)), m_messagesView, SLOT(loadFeeds(FeedsSelection)));
|
||||||
|
@ -437,6 +459,8 @@ void FeedMessageViewer::initializeViews() {
|
||||||
setTabOrder(m_messagesView, m_toolBarFeeds);
|
setTabOrder(m_messagesView, m_toolBarFeeds);
|
||||||
setTabOrder(m_toolBarFeeds, m_toolBarMessages);
|
setTabOrder(m_toolBarFeeds, m_toolBarMessages);
|
||||||
setTabOrder(m_toolBarMessages, m_messagesBrowser);
|
setTabOrder(m_toolBarMessages, m_messagesBrowser);
|
||||||
|
|
||||||
|
updateMessageButtonsAvailability();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FeedMessageViewer::showDbCleanupAssistant() {
|
void FeedMessageViewer::showDbCleanupAssistant() {
|
||||||
|
|
|
@ -103,7 +103,7 @@ class FeedMessageViewer : public TabContent {
|
||||||
|
|
||||||
void updateFeeds(QList<FeedsModelFeed*> feeds);
|
void updateFeeds(QList<FeedsModelFeed*> feeds);
|
||||||
|
|
||||||
protected slots:
|
private slots:
|
||||||
// Updates counts of messages for example in tray icon.
|
// Updates counts of messages for example in tray icon.
|
||||||
void updateTrayIconStatus(int unread_messages, int total_messages, bool any_unread_messages);
|
void updateTrayIconStatus(int unread_messages, int total_messages, bool any_unread_messages);
|
||||||
|
|
||||||
|
@ -116,6 +116,8 @@ class FeedMessageViewer : public TabContent {
|
||||||
// toolbar.
|
// toolbar.
|
||||||
void switchFeedComponentVisibility();
|
void switchFeedComponentVisibility();
|
||||||
|
|
||||||
|
void updateMessageButtonsAvailability();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Initializes some properties of the widget.
|
// Initializes some properties of the widget.
|
||||||
void initialize();
|
void initialize();
|
||||||
|
|
|
@ -34,7 +34,7 @@ void Mutex::lock() {
|
||||||
bool Mutex::tryLock() {
|
bool Mutex::tryLock() {
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
if (result = m_mutex->tryLock()) {
|
if ((result = m_mutex->tryLock())) {
|
||||||
setLocked();
|
setLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ bool Mutex::tryLock() {
|
||||||
bool Mutex::tryLock(int timeout) {
|
bool Mutex::tryLock(int timeout) {
|
||||||
bool result;
|
bool result;
|
||||||
|
|
||||||
if (result = m_mutex->tryLock(timeout)) {
|
if ((result = m_mutex->tryLock(timeout))) {
|
||||||
setLocked();
|
setLocked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue