Mercurial > minori
diff src/gui/widgets/sidebar.cc @ 370:ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 10:22:04 -0400 |
parents | 91ac90a34003 |
children |
line wrap: on
line diff
--- a/src/gui/widgets/sidebar.cc Fri Jul 25 10:16:02 2025 -0400 +++ b/src/gui/widgets/sidebar.cc Fri Jul 25 10:22:04 2025 -0400 @@ -4,7 +4,8 @@ #include <QListWidgetItem> #include <QMouseEvent> -SideBar::SideBar(QWidget* parent) : QListWidget(parent) { +SideBar::SideBar(QWidget *parent) : QListWidget(parent) +{ setFrameShape(QFrame::NoFrame); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -20,27 +21,32 @@ [this](int index) { emit CurrentItemChanged(RemoveSeparatorsFromIndex(index)); }); } -void SideBar::SetCurrentItem(int index) { +void SideBar::SetCurrentItem(int index) +{ setCurrentRow(AddSeparatorsToIndex(index)); } -int SideBar::GetCurrentItem() { +int SideBar::GetCurrentItem() +{ return RemoveSeparatorsFromIndex(currentRow()); } -void SideBar::SetBackgroundTransparent(bool yes) { +void SideBar::SetBackgroundTransparent(bool yes) +{ viewport()->setAutoFillBackground(!yes); } -QListWidgetItem* SideBar::AddItem(QString name, QIcon icon) { - QListWidgetItem* item = new QListWidgetItem(this); +QListWidgetItem *SideBar::AddItem(QString name, QIcon icon) +{ + QListWidgetItem *item = new QListWidgetItem(this); item->setText(name); if (!icon.isNull()) item->setIcon(icon); return item; } -QIcon SideBar::CreateIcon(const char* file) { +QIcon SideBar::CreateIcon(const char *file) +{ QPixmap pixmap(file, "PNG"); QIcon result; result.addPixmap(pixmap, QIcon::Normal); @@ -48,9 +54,10 @@ return result; } -QListWidgetItem* SideBar::AddSeparator() { - QListWidgetItem* item = new QListWidgetItem(this); - QFrame* line = new QFrame(this); +QListWidgetItem *SideBar::AddSeparator() +{ + QListWidgetItem *item = new QListWidgetItem(this); + QFrame *line = new QFrame(this); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); line->setMouseTracking(true); @@ -62,7 +69,8 @@ return item; } -int SideBar::AddSeparatorsToIndex(int index) { +int SideBar::AddSeparatorsToIndex(int index) +{ int separators = 0, items = 0; for (; items <= index;) { @@ -76,7 +84,8 @@ return index + separators; } -int SideBar::RemoveSeparatorsFromIndex(int index) { +int SideBar::RemoveSeparatorsFromIndex(int index) +{ int i = 0, items = 0; for (; i < index; i++) { if (!IndexIsSeparator(indexFromItem(item(i)))) @@ -85,17 +94,20 @@ return items; } -bool SideBar::IndexIsSeparator(QModelIndex index) const { +bool SideBar::IndexIsSeparator(QModelIndex index) const +{ return !index.isValid() || !(index.flags() & Qt::ItemIsEnabled); } -QItemSelectionModel::SelectionFlags SideBar::selectionCommand(const QModelIndex& index, const QEvent*) const { +QItemSelectionModel::SelectionFlags SideBar::selectionCommand(const QModelIndex &index, const QEvent *) const +{ if (IndexIsSeparator(index)) return QItemSelectionModel::NoUpdate; return QItemSelectionModel::ClearAndSelect; } -void SideBar::mouseMoveEvent(QMouseEvent* event) { +void SideBar::mouseMoveEvent(QMouseEvent *event) +{ if (!IndexIsSeparator(indexAt(event->pos()))) setCursor(Qt::PointingHandCursor); else