View / model fixes / improvements

* allow upfront checking of formatter roles
* selection mode menus adjusted (data approach no longer worked with CSlot)
* removed unused style sheet parts
* minor View/Model tweaks/formatting
This commit is contained in:
Klaus Basan
2016-06-13 23:04:44 +02:00
parent 85d8d14a48
commit 993a0ebbe9
9 changed files with 83 additions and 63 deletions

View File

@@ -303,20 +303,17 @@ namespace BlackGui
{
if (sm != MultiSelection)
{
QAction *a = menuActions.addAction("Switch to multi selection", CMenuAction::pathViewSelection(), nullptr, { this, &CViewBaseNonTemplate::ps_toggleSelectionMode });
a->setData(MultiSelection);
menuActions.addAction("Switch to multi selection", CMenuAction::pathViewSelection(), nullptr, { this, &CViewBaseNonTemplate::ps_setMultiSelection });
}
if (sm != ExtendedSelection)
{
QAction *a = menuActions.addAction("Switch to extended selection", CMenuAction::pathViewSelection(), nullptr, { this, &CViewBaseNonTemplate::ps_toggleSelectionMode });
a->setData(ExtendedSelection);
menuActions.addAction("Switch to extended selection", CMenuAction::pathViewSelection(), nullptr, { this, &CViewBaseNonTemplate::ps_setExtendedSelection });
}
if (sm != SingleSelection)
{
QAction *a = menuActions.addAction("Switch to single selection", CMenuAction::pathViewSelection(), nullptr, { this, &CViewBaseNonTemplate::ps_toggleSelectionMode });
a->setData(SingleSelection);
menuActions.addAction("Switch to single selection", CMenuAction::pathViewSelection(), nullptr, { this, &CViewBaseNonTemplate::ps_setSingleSelection });
}
}
@@ -628,20 +625,28 @@ namespace BlackGui
this->m_displayAutomatically = a->isChecked();
}
void CViewBaseNonTemplate::ps_toggleSelectionMode()
void CViewBaseNonTemplate::ps_setSingleSelection()
{
if (this->m_originalSelectionMode == ExtendedSelection || this->m_originalSelectionMode == MultiSelection)
{
QAction *action = qobject_cast<QAction *>(sender());
if (action && action->data().isValid() && action->data().canConvert<int>())
{
SelectionMode sm = static_cast<SelectionMode>(action->data().toInt());
this->setSelectionMode(sm);
}
else
{
this->setSelectionMode(this->m_originalSelectionMode);
}
this->setSelectionMode(SingleSelection);
}
}
void CViewBaseNonTemplate::ps_setExtendedSelection()
{
if (this->m_originalSelectionMode == ExtendedSelection || this->m_originalSelectionMode == MultiSelection)
{
this->setSelectionMode(ExtendedSelection);
}
}
void CViewBaseNonTemplate::ps_setMultiSelection()
{
if (this->m_originalSelectionMode == ExtendedSelection || this->m_originalSelectionMode == MultiSelection)
{
this->setSelectionMode(MultiSelection);
}
}
@@ -962,7 +967,7 @@ namespace BlackGui
// see model for implementing logic of drag
this->viewport()->setAcceptDrops(allowDrop);
this->setDragEnabled(allowDrag);
this->setDropIndicatorShown(allowDrop);
this->setDropIndicatorShown(allowDrag || allowDrop);
this->m_model->allowDrop(allowDrop);
}

View File

@@ -437,8 +437,12 @@ namespace BlackGui
//! Toggle auto display flag
void ps_toggleAutoDisplay();
//! Toogle between single and multi selection
void ps_toggleSelectionMode();
//! \name Change selection modes
//! @{
void ps_setMultiSelection();
void ps_setExtendedSelection();
void ps_setSingleSelection();
//! @}
//! Clear the model
virtual void ps_clear() { this->clear(); }

View File

@@ -104,8 +104,8 @@ namespace BlackGui
private:
QList<QAction *> m_menuActions;
QLineEdit *m_leOrder = nullptr;
QFrame *m_frame = nullptr;
QLineEdit *m_leOrder = nullptr;
QFrame *m_frame = nullptr;
QIntValidator *m_validator = nullptr;
};
} // namespace