From ba19e37620aaa3c5eea06d05c144ae31bd00021e Mon Sep 17 00:00:00 2001 From: RickyRister Date: Fri, 27 Dec 2024 20:37:20 -0800 Subject: [PATCH] right align button while still centering the main toolbar --- .../src/client/tabs/tab_deck_storage.cpp | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/cockatrice/src/client/tabs/tab_deck_storage.cpp b/cockatrice/src/client/tabs/tab_deck_storage.cpp index cb98a700d..2957b5ec4 100644 --- a/cockatrice/src/client/tabs/tab_deck_storage.cpp +++ b/cockatrice/src/client/tabs/tab_deck_storage.cpp @@ -49,13 +49,26 @@ TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor, AbstractClient *_c connect(localDirView, &QTreeView::doubleClicked, this, &TabDeckStorage::actLocalDoubleClick); // Left side layout - leftToolBar = new QToolBar; + /* put an invisible dummy QToolBar in the leftmost column so that the main toolbar is centered. + * Really ugly workaround, but I couldn't figure out the proper way to make it centered */ + QToolBar *dummyToolBar = new QToolBar(this); + QSizePolicy sizePolicy = dummyToolBar->sizePolicy(); + sizePolicy.setRetainSizeWhenHidden(true); + dummyToolBar->setSizePolicy(sizePolicy); + dummyToolBar->setVisible(false); + + leftToolBar = new QToolBar(this); leftToolBar->setOrientation(Qt::Horizontal); leftToolBar->setIconSize(QSize(32, 32)); - QHBoxLayout *leftToolBarLayout = new QHBoxLayout; - leftToolBarLayout->addStretch(); - leftToolBarLayout->addWidget(leftToolBar); - leftToolBarLayout->addStretch(); + + QToolBar *leftRightmostToolBar = new QToolBar(this); + leftRightmostToolBar->setOrientation(Qt::Horizontal); + leftRightmostToolBar->setIconSize(QSize(32, 32)); + + QGridLayout *leftToolBarLayout = new QGridLayout; + leftToolBarLayout->addWidget(dummyToolBar, 0, 0, Qt::AlignLeft); + leftToolBarLayout->addWidget(leftToolBar, 0, 1, Qt::AlignHCenter); + leftToolBarLayout->addWidget(leftRightmostToolBar, 0, 2, Qt::AlignRight); QVBoxLayout *leftVbox = new QVBoxLayout; leftVbox->addWidget(localDirView); @@ -125,7 +138,7 @@ TabDeckStorage::TabDeckStorage(TabSupervisor *_tabSupervisor, AbstractClient *_c leftToolBar->addAction(aNewLocalFolder); leftToolBar->addAction(aDeleteLocalDeck); - leftToolBar->addAction(aOpenDecksFolder); + leftRightmostToolBar->addAction(aOpenDecksFolder); rightToolBar->addAction(aOpenRemoteDeck); rightToolBar->addAction(aDownload);