refs #661, info in context menu when force reload is unavailable

(KB/RW slack discussion)
This commit is contained in:
Klaus Basan
2016-05-24 18:21:30 +02:00
parent 54b1234f7f
commit 0ff7791532
3 changed files with 32 additions and 0 deletions

View File

@@ -233,6 +233,7 @@ namespace BlackGui
}
// with models loaded I allow a refresh reload
// I need those models because I want to merge with DM data in the loader
if (sGui->getWebDataServices() && sGui->getWebDataServices()->getModelsCount() > 0)
{
if (this->m_reloadActions.isEmpty()) { this->m_reloadActions = QList<QAction *>({nullptr, nullptr, nullptr, nullptr}); }
@@ -290,6 +291,12 @@ namespace BlackGui
menuActions.addAction(this->m_reloadActions[3], CMenuAction::pathSimulatorModelsReload());
}
}
else
{
// dummy action grayed out
CMenuAction a = menuActions.addAction(CIcons::refresh16(), "Force model reload impossible, no DB data", CMenuAction::pathSimulator());
a.setActionEnabled(false); // gray out
}
}
this->nestedCustomMenu(menuActions);
}

View File

@@ -48,6 +48,17 @@ namespace BlackGui
if (this->m_action) { m_action->setChecked(checked); }
}
bool CMenuAction::isActionEnabled() const
{
if (!this->m_action) { return false; }
return this->m_action->isEnabled();
}
void CMenuAction::setActionEnabled(bool enabled)
{
if (this->m_action) { m_action->setEnabled(enabled); }
}
bool CMenuAction::hasNoPathWithSeparator() const
{
return this->m_separator && this->hasNoPath();
@@ -244,6 +255,11 @@ namespace BlackGui
return action;
}
CMenuAction CMenuActions::addAction(const QIcon &actionIcon, const QString &text, const QString &path)
{
return this->addAction(actionIcon, text, path, nullptr);
}
CMenuAction CMenuActions::addAction(const QIcon &actionIcon, const QString &text, const QString &path, const BlackMisc::CSlot<void ()> &slot, const QKeySequence &shortcut)
{
return this->addAction(actionIcon, text, path, slot.object(), slot, shortcut);

View File

@@ -60,6 +60,12 @@ namespace BlackGui
//! Set a checkable action, QAction::setChecked
void setActionChecked(bool checked);
//! Enabled action?
bool isActionEnabled() const;
//! Enable action (allow gray out)
void setActionEnabled(bool enabled);
//! Path
const QString &getPath() const { return m_path; }
@@ -241,6 +247,9 @@ namespace BlackGui
//! Add action
CMenuAction addAction(const QIcon &actionIcon, const QString &text, const QString &path, QObject *actionOwner, const BlackMisc::CSlot<void()> &slot, const QKeySequence &shortcut = 0);
//! Add action without slot
CMenuAction addAction(const QIcon &actionIcon, const QString &text, const QString &path);
//! Add action
CMenuAction addAction(const QIcon &actionIcon, const QString &text, const QString &path, const BlackMisc::CSlot<void()> &slot, const QKeySequence &shortcut = 0);