Make page container hug edges of dialog <3
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
@@ -76,7 +76,7 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget* parent) : QMainWin
|
||||
{
|
||||
auto horizontalLayout = new QHBoxLayout(this);
|
||||
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
|
||||
horizontalLayout->setContentsMargins(6, -1, 6, -1);
|
||||
horizontalLayout->setContentsMargins(0, 0, 6, 6);
|
||||
|
||||
auto btnHelp = new QPushButton(this);
|
||||
btnHelp->setText(tr("Help"));
|
||||
|
||||
@@ -92,11 +92,13 @@ InstallLoaderDialog::InstallLoaderDialog(std::shared_ptr<PackProfile> profile, c
|
||||
: QDialog(parent), profile(std::move(profile)), container(new PageContainer(this, QString(), this)), buttons(new QDialogButtonBox(this))
|
||||
{
|
||||
auto layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
container->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||
layout->addWidget(container);
|
||||
|
||||
auto buttonLayout = new QHBoxLayout(this);
|
||||
buttonLayout->setContentsMargins(0, 0, 6, 6);
|
||||
|
||||
auto refreshButton = new QPushButton(tr("&Refresh"), this);
|
||||
connect(refreshButton, &QPushButton::clicked, this, [this] { pageCast(container->selectedPage())->loadList(); });
|
||||
@@ -110,7 +112,7 @@ InstallLoaderDialog::InstallLoaderDialog(std::shared_ptr<PackProfile> profile, c
|
||||
connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||
buttonLayout->addWidget(buttons);
|
||||
|
||||
layout->addLayout(buttonLayout);
|
||||
container->addButtons(buttonLayout);
|
||||
|
||||
setWindowTitle(dialogTitle());
|
||||
setWindowModality(Qt::WindowModal);
|
||||
@@ -167,4 +169,4 @@ void InstallLoaderDialog::done(int result)
|
||||
|
||||
QDialog::done(result);
|
||||
}
|
||||
#include "InstallLoaderDialog.moc"
|
||||
#include "InstallLoaderDialog.moc"
|
||||
|
||||
@@ -95,6 +95,7 @@ NewInstanceDialog::NewInstanceDialog(const QString& initialGroup,
|
||||
m_buttons = new QDialogButtonBox(QDialogButtonBox::Help | QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
|
||||
|
||||
m_container = new PageContainer(this, {}, this);
|
||||
m_container->useSidebarStyle(false);
|
||||
m_container->setSizePolicy(QSizePolicy::Policy::Preferred, QSizePolicy::Policy::Expanding);
|
||||
m_container->layout()->setContentsMargins(0, 0, 0, 0);
|
||||
ui->verticalLayout->insertWidget(2, m_container);
|
||||
|
||||
@@ -61,6 +61,8 @@ ResourceDownloadDialog::ResourceDownloadDialog(QWidget* parent, const std::share
|
||||
|
||||
setWindowIcon(QIcon::fromTheme("new"));
|
||||
|
||||
m_buttons.setContentsMargins(0, 0, 6, 6);
|
||||
|
||||
// Bonk Qt over its stupid head and make sure it understands which button is the default one...
|
||||
// See: https://stackoverflow.com/questions/24556831/qbuttonbox-set-default-button
|
||||
auto OkButton = m_buttons.button(QDialogButtonBox::Ok);
|
||||
@@ -114,6 +116,8 @@ void ResourceDownloadDialog::reject()
|
||||
// won't work with subclasses if we put it in this ctor.
|
||||
void ResourceDownloadDialog::initializeContainer()
|
||||
{
|
||||
layout()->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
m_container = new PageContainer(this, {}, this);
|
||||
m_container->setSizePolicy(QSizePolicy::Policy::Preferred, QSizePolicy::Policy::Expanding);
|
||||
m_container->layout()->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
@@ -187,11 +187,14 @@ InstallDialog::InstallDialog(const QString& uid, BaseInstance* instance, QWidget
|
||||
: QDialog(parent), container(new PageContainer(this, QString(), this)), buttons(new QDialogButtonBox(this))
|
||||
{
|
||||
auto layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
container->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||
layout->addWidget(container);
|
||||
|
||||
auto buttonLayout = new QHBoxLayout(this);
|
||||
buttonLayout->setContentsMargins(0, 0, 6, 6);
|
||||
|
||||
auto refreshLayout = new QHBoxLayout(this);
|
||||
|
||||
auto refreshButton = new QPushButton(tr("&Refresh"), this);
|
||||
@@ -217,7 +220,7 @@ InstallDialog::InstallDialog(const QString& uid, BaseInstance* instance, QWidget
|
||||
connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||
buttonLayout->addWidget(buttons);
|
||||
|
||||
layout->addLayout(buttonLayout);
|
||||
container->addButtons(buttonLayout);
|
||||
|
||||
setWindowTitle(dialogTitle());
|
||||
setWindowModality(Qt::WindowModal);
|
||||
|
||||
@@ -46,7 +46,7 @@ PageDialog::PageDialog(BasePageProvider* pageProvider, QString defaultId, QWidge
|
||||
buttons->button(QDialogButtonBox::Ok)->setText(tr("&OK"));
|
||||
buttons->button(QDialogButtonBox::Cancel)->setText(tr("&Cancel"));
|
||||
buttons->button(QDialogButtonBox::Help)->setText(tr("Help"));
|
||||
buttons->setContentsMargins(6, 0, 6, 0);
|
||||
buttons->setContentsMargins(0, 0, 6, 6);
|
||||
m_container->addButtons(buttons);
|
||||
|
||||
connect(buttons->button(QDialogButtonBox::Ok), &QPushButton::clicked, this, &PageDialog::accept);
|
||||
|
||||
@@ -77,6 +77,8 @@ class PageEntryFilterModel : public QSortFilterProxyModel {
|
||||
PageContainer::PageContainer(BasePageProvider* pageProvider, QString defaultId, QWidget* parent) : QWidget(parent)
|
||||
{
|
||||
createUI();
|
||||
useSidebarStyle(true);
|
||||
|
||||
m_model = new PageModel(this);
|
||||
m_proxyModel = new PageEntryFilterModel(this);
|
||||
int counter = 0;
|
||||
@@ -179,10 +181,10 @@ void PageContainer::createUI()
|
||||
|
||||
m_layout = new QGridLayout;
|
||||
m_layout->addLayout(headerHLayout, 0, 1, 1, 1);
|
||||
m_layout->addWidget(m_pageList, 0, 0, 2, 1);
|
||||
m_layout->addWidget(m_pageList, 0, 0, 3, 1);
|
||||
m_layout->addLayout(m_pageStack, 1, 1, 1, 1);
|
||||
m_layout->setColumnStretch(1, 4);
|
||||
m_layout->setContentsMargins(0, 0, 0, 6);
|
||||
m_layout->setContentsMargins(0, 0, 0, 0);
|
||||
setLayout(m_layout);
|
||||
}
|
||||
|
||||
@@ -197,12 +199,16 @@ void PageContainer::retranslate()
|
||||
|
||||
void PageContainer::addButtons(QWidget* buttons)
|
||||
{
|
||||
m_layout->addWidget(buttons, 2, 0, 1, 2);
|
||||
m_layout->addWidget(buttons, 2, 1, 1, 2);
|
||||
}
|
||||
|
||||
void PageContainer::addButtons(QLayout* buttons)
|
||||
{
|
||||
m_layout->addLayout(buttons, 2, 0, 1, 2);
|
||||
m_layout->addLayout(buttons, 2, 1, 1, 2);
|
||||
}
|
||||
|
||||
void PageContainer::useSidebarStyle(bool sidebar) {
|
||||
m_pageList->setProperty("_kde_side_panel_view", sidebar);
|
||||
}
|
||||
|
||||
void PageContainer::showPage(int row)
|
||||
|
||||
@@ -61,6 +61,9 @@ class PageContainer : public QWidget, public BasePageContainer {
|
||||
|
||||
void addButtons(QWidget* buttons);
|
||||
void addButtons(QLayout* buttons);
|
||||
|
||||
void useSidebarStyle(bool sidebar);
|
||||
|
||||
/*
|
||||
* Save any unsaved state and prepare to be closed.
|
||||
* @return true if everything can be saved, false if there is something that requires attention
|
||||
|
||||
@@ -89,8 +89,6 @@ class PageView : public QListView {
|
||||
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
|
||||
setItemDelegate(new PageViewDelegate(this));
|
||||
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
// Adjust margins when using Breeze theme
|
||||
setProperty("_kde_side_panel_view", true);
|
||||
}
|
||||
|
||||
virtual QSize sizeHint() const
|
||||
|
||||
Reference in New Issue
Block a user