refs #720, finetuning

* show menus even if DB is not present
* avoid selection of too big data set (which takes to long to handle)
* remaining renamings
* show all sims in menu, even if not intalled
This commit is contained in:
Klaus Basan
2016-08-09 02:39:25 +02:00
committed by Mathew Sutcliffe
parent ecfe4ab1fc
commit 227262c2cc
3 changed files with 14 additions and 9 deletions

View File

@@ -853,9 +853,6 @@ namespace BlackGui
{ {
CDbMappingComponent *mapComp = mappingComponent(); CDbMappingComponent *mapComp = mappingComponent();
Q_ASSERT_X(mapComp, Q_FUNC_INFO, "no mapping component"); Q_ASSERT_X(mapComp, Q_FUNC_INFO, "no mapping component");
const bool canConnectDb = sGui->getWebDataServices()->canConnectSwiftDb();
if (!canConnectDb) { this->nestedCustomMenu(menuActions); return; }
if (!mapComp->currentModelView()->isEmpty() && mapComp->currentModelView()->getMenu().testFlag(CViewBaseNonTemplate::MenuCanStashModels)) if (!mapComp->currentModelView()->isEmpty() && mapComp->currentModelView()->getMenu().testFlag(CViewBaseNonTemplate::MenuCanStashModels))
{ {
menuActions.addMenuStash(); menuActions.addMenuStash();

View File

@@ -58,7 +58,7 @@ namespace BlackGui
ui->tvp_OwnModelSet->addFilterDialog(); ui->tvp_OwnModelSet->addFilterDialog();
ui->tvp_OwnModelSet->setJsonLoad(CAircraftModelView::AllowOnlySingleSimulator | CAircraftModelView::ReduceToOneSimulator); ui->tvp_OwnModelSet->setJsonLoad(CAircraftModelView::AllowOnlySingleSimulator | CAircraftModelView::ReduceToOneSimulator);
ui->tvp_OwnModelSet->setCustomMenu(new CLoadModelsMenu(this)); ui->tvp_OwnModelSet->setCustomMenu(new CLoadModelsMenu(this));
ui->tvp_OwnModelSet->setCustomMenu(new CMergeWithDbDataMenu(ui->tvp_OwnModelSet, this, true)); ui->tvp_OwnModelSet->setCustomMenu(new CConsolidateWithDbDataMenu(ui->tvp_OwnModelSet, this, true));
ui->tvp_OwnModelSet->menuAddItems(CAircraftModelView::MenuOrderable); ui->tvp_OwnModelSet->menuAddItems(CAircraftModelView::MenuOrderable);
ui->tvp_OwnModelSet->setSorting(CAircraftModel::IndexOrderString); ui->tvp_OwnModelSet->setSorting(CAircraftModel::IndexOrderString);
ui->tvp_OwnModelSet->initAsOrderable(); ui->tvp_OwnModelSet->initAsOrderable();
@@ -332,7 +332,8 @@ namespace BlackGui
void CDbOwnModelSetComponent::CLoadModelsMenu::customMenu(CMenuActions &menuActions) void CDbOwnModelSetComponent::CLoadModelsMenu::customMenu(CMenuActions &menuActions)
{ {
const CSimulatorInfo sims = CSimulatorInfo::getLocallyInstalledSimulators(); // for the moment I use all sims, I could restrict to CSimulatorInfo::getLocallyInstalledSimulators();
const CSimulatorInfo sims = CSimulatorInfo::allSimulators();
const bool noSims = sims.isNoSimulator() || sims.isUnspecified(); const bool noSims = sims.isNoSimulator() || sims.isUnspecified();
if (!noSims) if (!noSims)
{ {

View File

@@ -155,7 +155,7 @@ namespace BlackGui
int CAircraftModelView::removeModelsWithModelString(const CAircraftModelList &models, Qt::CaseSensitivity sensitivity) int CAircraftModelView::removeModelsWithModelString(const CAircraftModelList &models, Qt::CaseSensitivity sensitivity)
{ {
return this->removeModelsWithModelString(models.getModelStrings(), sensitivity); return this->removeModelsWithModelString(models.getModelStringList(), sensitivity);
} }
int CAircraftModelView::replaceOrAddModelsWithString(const CAircraftModelList &models, Qt::CaseSensitivity sensitivity) int CAircraftModelView::replaceOrAddModelsWithString(const CAircraftModelList &models, Qt::CaseSensitivity sensitivity)
@@ -294,12 +294,19 @@ namespace BlackGui
if (!this->m_menuFlagActions.contains(MenuCanStashModels)) if (!this->m_menuFlagActions.contains(MenuCanStashModels))
{ {
CMenuActions ma; CMenuActions ma;
ma.addAction(CIcons::appDbStash16(), "Stash selectied", CMenuAction::pathStash(), { this, &CAircraftModelView::ps_requestStash }); ma.addAction(CIcons::appDbStash16(), "Stash selected", CMenuAction::pathStash(), { this, &CAircraftModelView::ps_requestStash });
QAction *added = ma.addAction(CIcons::appDbStash16(), "Stashing clears selection (on/off)", CMenuAction::pathStash(), { this, &CAircraftModelView::ps_stashingClearsSelection }); QAction *added = ma.addAction(CIcons::appDbStash16(), "Stashing clears selection (on/off)", CMenuAction::pathStash(), { this, &CAircraftModelView::ps_stashingClearsSelection });
added->setCheckable(true); added->setCheckable(true);
this->m_menuFlagActions.insert(MenuCanStashModels, ma); this->m_menuFlagActions.insert(MenuCanStashModels, ma);
} }
QAction *a = menuActions.addActions(initMenuActions(MenuCanStashModels)).last();
// modify menu items
const int selected = this->selectedRowCount();
const bool tooMany = selected > 500;
const bool canStash = selected > 0 && !tooMany;
QAction *a = menuActions.addActions(initMenuActions(MenuCanStashModels)).first();
a->setEnabled(canStash);
a = menuActions.addActions(initMenuActions(MenuCanStashModels)).last();
a->setChecked(m_stashingClearsSelection); a->setChecked(m_stashingClearsSelection);
used = true; used = true;
} }
@@ -409,7 +416,7 @@ namespace BlackGui
{ {
this->clearSelection(); this->clearSelection();
} }
sGui->displayInStatusBar(CStatusMessage(CStatusMessage::SeverityInfo, "Stashed " + models.getModelStrings(true).join(" "))); sGui->displayInStatusBar(CStatusMessage(CStatusMessage::SeverityInfo, "Stashed " + models.getModelStringList(true).join(" ")));
} }
} // namespace } // namespace
} // namespace } // namespace