1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-21 11:57:44 +00:00

sagasu: Use splitter, improve margins everywhere

This commit is contained in:
Joshua Goins 2024-02-04 14:38:42 -05:00
parent 9f48b89c2e
commit 2bd232f40e
2 changed files with 19 additions and 14 deletions

View file

@ -16,29 +16,32 @@ FileTreeWindow::FileTreeWindow(HashDatabase &database, const QString &gamePath,
{ {
auto layout = new QVBoxLayout(); auto layout = new QVBoxLayout();
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
setLayout(layout); setLayout(layout);
m_searchModel = new QSortFilterProxyModel(); m_searchModel = new QSortFilterProxyModel();
m_searchModel->setRecursiveFilteringEnabled(true); m_searchModel->setRecursiveFilteringEnabled(true);
m_searchModel->setFilterCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive); m_searchModel->setFilterCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
auto searchLayout = new QHBoxLayout(); /*auto searchLayout = new QHBoxLayout();
layout->addLayout(searchLayout); layout->addLayout(searchLayout);*/
auto searchEdit = new QLineEdit(); auto searchEdit = new QLineEdit();
searchEdit->setPlaceholderText(QStringLiteral("Search...")); searchEdit->setPlaceholderText(QStringLiteral("Search..."));
searchEdit->setClearButtonEnabled(true); searchEdit->setClearButtonEnabled(true);
searchEdit->setProperty("_breeze_borders_sides", QVariant::fromValue(QFlags{Qt::BottomEdge}));
connect(searchEdit, &QLineEdit::textChanged, this, [this](const QString &text) { connect(searchEdit, &QLineEdit::textChanged, this, [this](const QString &text) {
m_searchModel->setFilterRegularExpression(text); m_searchModel->setFilterRegularExpression(text);
}); });
searchLayout->addWidget(searchEdit); layout->addWidget(searchEdit);
m_unknownCheckbox = new QCheckBox(); // TODO Restore as an action, later. it's currently pretty useless as-is as it's a "please slow down and crash" checkbox
/*m_unknownCheckbox = new QCheckBox();
m_unknownCheckbox->setToolTip(QStringLiteral("Show unknown files and folders.")); m_unknownCheckbox->setToolTip(QStringLiteral("Show unknown files and folders."));
connect(m_unknownCheckbox, &QCheckBox::clicked, this, [this] { connect(m_unknownCheckbox, &QCheckBox::clicked, this, [this] {
refreshModel(); refreshModel();
}); });
searchLayout->addWidget(m_unknownCheckbox); searchLayout->addWidget(m_unknownCheckbox);*/
auto treeWidget = new QTreeView(); auto treeWidget = new QTreeView();
treeWidget->setModel(m_searchModel); treeWidget->setModel(m_searchModel);
@ -76,7 +79,7 @@ FileTreeWindow::FileTreeWindow(HashDatabase &database, const QString &gamePath,
void FileTreeWindow::refreshModel() void FileTreeWindow::refreshModel()
{ {
// TODO: this should really be handled by the proxy // TODO: this should really be handled by the proxy
m_fileModel = new FileTreeModel(m_database, m_unknownCheckbox->isChecked(), m_gamePath, data); m_fileModel = new FileTreeModel(m_database, false, m_gamePath, data);
m_searchModel->setSourceModel(m_fileModel); m_searchModel->setSourceModel(m_fileModel);
} }

View file

@ -12,6 +12,7 @@
#include <QMenuBar> #include <QMenuBar>
#include <QMessageBox> #include <QMessageBox>
#include <QNetworkReply> #include <QNetworkReply>
#include <QSplitter>
#include <QTemporaryDir> #include <QTemporaryDir>
#include "cmppart.h" #include "cmppart.h"
@ -30,15 +31,14 @@ MainWindow::MainWindow(const QString &gamePath, GameData *data)
, fileCache(*data) , fileCache(*data)
{ {
setupMenubar(); setupMenubar();
setMinimumSize(1280, 720);
m_mgr = new QNetworkAccessManager(this); m_mgr = new QNetworkAccessManager(this);
auto dummyWidget = new QWidget(); auto dummyWidget = new QSplitter();
dummyWidget->setChildrenCollapsible(false);
setCentralWidget(dummyWidget); setCentralWidget(dummyWidget);
auto layout = new QHBoxLayout();
dummyWidget->setLayout(layout);
m_tree = new FileTreeWindow(m_database, gamePath, data); m_tree = new FileTreeWindow(m_database, gamePath, data);
connect(m_tree, &FileTreeWindow::extractFile, this, [this, data](const QString &path) { connect(m_tree, &FileTreeWindow::extractFile, this, [this, data](const QString &path) {
const QFileInfo info(path); const QFileInfo info(path);
@ -58,13 +58,13 @@ MainWindow::MainWindow(const QString &gamePath, GameData *data)
connect(m_tree, &FileTreeWindow::pathSelected, this, [this](const QString &path) { connect(m_tree, &FileTreeWindow::pathSelected, this, [this](const QString &path) {
refreshParts(path); refreshParts(path);
}); });
m_tree->setMaximumWidth(200); m_tree->setMaximumWidth(300);
layout->addWidget(m_tree); dummyWidget->addWidget(m_tree);
partHolder = new QTabWidget(); partHolder = new QTabWidget();
partHolder->setMinimumWidth(800); partHolder->setDocumentMode(true); // hide borders
partHolder->setMinimumHeight(720); partHolder->setMinimumHeight(720);
layout->addWidget(partHolder); dummyWidget->addWidget(partHolder);
refreshParts({}); refreshParts({});
} }
@ -120,6 +120,8 @@ void MainWindow::refreshParts(const QString &path)
auto propertiesWidget = new FilePropertiesWindow(path, file); auto propertiesWidget = new FilePropertiesWindow(path, file);
partHolder->addTab(propertiesWidget, QStringLiteral("Properties")); partHolder->addTab(propertiesWidget, QStringLiteral("Properties"));
partHolder->tabBar()->setExpanding(true);
} }
void MainWindow::setupFileMenu(QMenu *menu) void MainWindow::setupFileMenu(QMenu *menu)