Mercurial > minori
view src/gui/sidebar.cpp @ 36:2743011a6042
*: mass update
formatted all source files, converted ALL instances of setStyleSheet() to
palettes and fonts (stylesheets suck), and I changed the clang-format file because
it wasn't working on my laptop for some reason.
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Thu, 21 Sep 2023 15:17:47 -0400 |
parents | cde8f67a7c7d |
children | 9ae9365dd4ea |
line wrap: on
line source
#include "gui/sidebar.h" #include <QFrame> #include <QListWidget> #include <QListWidgetItem> #include <QMessageBox> #include <QMouseEvent> SideBar::SideBar(QWidget* parent) : QListWidget(parent) { setObjectName("sidebar"); setFrameShape(QFrame::NoFrame); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setSelectionMode(QAbstractItemView::SingleSelection); setSelectionBehavior(QAbstractItemView::SelectItems); setMouseTracking(true); viewport()->setAutoFillBackground(false); QFont font; font.setPointSize(9); setFont(font); connect(this, &QListWidget::currentRowChanged, this, [this](int index) { emit CurrentItemChanged(RemoveSeparatorsFromIndex(index)); }); } 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) { QPixmap pixmap(file, "PNG"); QIcon result; result.addPixmap(pixmap, QIcon::Normal); result.addPixmap(pixmap, QIcon::Selected); return result; } QListWidgetItem* SideBar::AddSeparator() { QListWidgetItem* item = new QListWidgetItem(this); QFrame* line = new QFrame(this); line->setFrameShape(QFrame::HLine); line->setFrameShadow(QFrame::Sunken); line->setMouseTracking(true); line->setEnabled(false); QPalette pal; pal.setColor(QPalette::Window, QColor(0, 0, 0, 0)); line->setPalette(pal); setItemWidget(item, line); item->setFlags(Qt::NoItemFlags); return item; } int SideBar::RemoveSeparatorsFromIndex(int index) { int i, j; for (i = 0, j = 0; i < index; i++) { if (!IndexIsSeparator(indexFromItem(item(i)))) j++; } return j; } bool SideBar::IndexIsSeparator(QModelIndex index) const { return !(index.isValid() && index.flags() & Qt::ItemIsEnabled); } QItemSelectionModel::SelectionFlags SideBar::selectionCommand(const QModelIndex& index, const QEvent*) const { if (IndexIsSeparator(index)) return QItemSelectionModel::NoUpdate; return QItemSelectionModel::ClearAndSelect; } void SideBar::mouseMoveEvent(QMouseEvent* event) { if (!IndexIsSeparator(indexAt(event->pos()))) setCursor(Qt::PointingHandCursor); else unsetCursor(); QListView::mouseMoveEvent(event); } #include "gui/moc_sidebar.cpp"