From af5ff1296572ff55e86a5867b9e841014871123b Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Mon, 12 Sep 2022 11:48:39 -0400 Subject: mingui adjustments. Fix image item rendering. Always remove scrollbar dimensions from viewport. Elide filenames if needed. Use a splitter in the main widget instead of a fixed layout. --- mingui/mingui.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'mingui/mingui.cpp') diff --git a/mingui/mingui.cpp b/mingui/mingui.cpp index 192b491..8a9fa57 100644 --- a/mingui/mingui.cpp +++ b/mingui/mingui.cpp @@ -8,7 +8,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -51,25 +53,31 @@ MinGuiWidget::MinGuiWidget() this->setFont(QFontDatabase::systemFont(QFontDatabase::SystemFont::FixedFont)); this->setWindowTitle("deduper minigui"); this->setLayout(new QVBoxLayout(this)); - QWidget *everything_except_statusbar = new QWidget(this); sb = new QStatusBar(this); sb->addPermanentWidget(permamsg = new QLabel()); QLabel *opm = new QLabel(); - opm->setText("z: previous group, m: next group, x: mark all for deletion, c: unmark all, click: toggle, shift+click: open, shift+return: save list"); + opm->setText("placeholder status bar text"); sb->addWidget(opm); - this->layout()->addWidget(everything_except_statusbar); + l = new QSplitter(Qt::Orientation::Horizontal, this); + l->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + this->layout()->addWidget(l); this->layout()->addWidget(sb); - l = new QHBoxLayout(everything_except_statusbar); - everything_except_statusbar->setLayout(l); infopanel = new QTextEdit(this); infopanel->setReadOnly(true); + infopanel->setMinimumWidth(80); lw = new QListView(this); im = new QStandardItemModel(this); lw->setModel(im); + lw->setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn); + lw->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn); id = new ImageItemDelegate(); + id->setScrollbarMargins(lw->verticalScrollBar()->width(), + lw->horizontalScrollBar()->height()); lw->setItemDelegate(id); lw->setSelectionMode(QAbstractItemView::SelectionMode::NoSelection); lw->setResizeMode(QListView::ResizeMode::Adjust); + lw->setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded); + lw->setHorizontalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAsNeeded); for (size_t i = 0; i < keys.size(); ++i) { @@ -144,6 +152,8 @@ MinGuiWidget::MinGuiWidget() }); l->addWidget(lw); l->addWidget(infopanel); + l->setStretchFactor(0, 3); + l->setStretchFactor(1, 1); marked.clear(); infopanel->setText("bleh"); infopanel->setSizePolicy(QSizePolicy::Policy::Minimum, QSizePolicy::Policy::Minimum); -- cgit v1.2.3