|
|
@@ -7,16 +7,25 @@ using namespace craftlab::ui;
|
|
|
Breadcrumb::Breadcrumb(QWidget* parent): QWidget(parent), inner(std::make_unique<QListWidget>(this))
|
|
|
{
|
|
|
new QVBoxLayout(this);
|
|
|
- const auto _layout = layout();
|
|
|
- inner->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
|
|
layout()->setContentsMargins(0, 0, 0, 0);
|
|
|
layout()->addWidget(inner.get());
|
|
|
+ inner->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
|
|
inner->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
|
|
inner->setSelectionMode(QAbstractItemView::SingleSelection);
|
|
|
inner->setFlow(QListView::Flow::LeftToRight);
|
|
|
inner->setSizePolicy(QSizePolicy(QSizePolicy::Policy::Expanding, QSizePolicy::Policy::Fixed));
|
|
|
inner->setSizeAdjustPolicy(QAbstractScrollArea::SizeAdjustPolicy::AdjustToContentsOnFirstShow);
|
|
|
inner->setUniformItemSizes(false);
|
|
|
+ connect(inner.get(), &QListWidget::itemSelectionChanged, this, [this]()
|
|
|
+ {
|
|
|
+ QList<QListWidgetItem*> selection = inner->selectedItems();
|
|
|
+ if (!selection.isEmpty())
|
|
|
+ {
|
|
|
+ QModelIndex index = inner->indexFromItem(selection.first());
|
|
|
+ if (index.isValid())
|
|
|
+ emit SelectionChanged(index.row());
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
void Breadcrumb::addItem(const QString& label)
|