From af5a04abf1e1741847b4c519aa02064a595d8ceb Mon Sep 17 00:00:00 2001 From: Vafthrudnir Date: Sun, 11 Feb 2018 19:49:58 +0100 Subject: [PATCH] "Comment" field made resizable in deck builder window (#3105) * solution with splitter * Made prettier * Useless parameter removed * clangified * c++11 cleanup --- cockatrice/src/tab_deck_editor.cpp | 70 +++++++++++++++++++----------- 1 file changed, 45 insertions(+), 25 deletions(-) diff --git a/cockatrice/src/tab_deck_editor.cpp b/cockatrice/src/tab_deck_editor.cpp index de443671..75d7f22d 100644 --- a/cockatrice/src/tab_deck_editor.cpp +++ b/cockatrice/src/tab_deck_editor.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -83,30 +84,49 @@ void TabDeckEditor::createDeckDock() commentsLabel->setObjectName("commentsLabel"); commentsEdit = new QTextEdit; commentsEdit->setObjectName("commentsEdit"); - commentsEdit->setMaximumHeight(70); commentsLabel->setBuddy(commentsEdit); connect(commentsEdit, SIGNAL(textChanged()), this, SLOT(updateComments())); + auto *upperLayout = new QGridLayout; + upperLayout->setObjectName("upperLayout"); + upperLayout->addWidget(nameLabel, 0, 0); + upperLayout->addWidget(nameEdit, 0, 1); + + upperLayout->addWidget(commentsLabel, 1, 0); + upperLayout->addWidget(commentsEdit, 1, 1); + hashLabel1 = new QLabel(); hashLabel1->setObjectName("hashLabel1"); + auto *hashSizePolicy = new QSizePolicy(); + hashSizePolicy->setHorizontalPolicy(QSizePolicy::Fixed); + hashLabel1->setSizePolicy(*hashSizePolicy); hashLabel = new QLabel; hashLabel->setObjectName("hashLabel"); - QGridLayout *grid = new QGridLayout; - grid->setObjectName("grid"); - grid->addWidget(nameLabel, 0, 0); - grid->addWidget(nameEdit, 0, 1); + auto *lowerLayout = new QGridLayout; + lowerLayout->setObjectName("lowerLayout"); + lowerLayout->addWidget(hashLabel1, 0, 0); + lowerLayout->addWidget(hashLabel, 0, 1); + lowerLayout->addWidget(deckView, 1, 0, 1, 2); - grid->addWidget(commentsLabel, 1, 0); - grid->addWidget(commentsEdit, 1, 1); + // Create widgets for both layouts to make splitter work correctly + QWidget *topWidget = new QWidget; + topWidget->setLayout(upperLayout); + QWidget *bottomWidget = new QWidget; + bottomWidget->setLayout(lowerLayout); - grid->addWidget(hashLabel1, 2, 0); - grid->addWidget(hashLabel, 2, 1); + auto *split = new QSplitter; + split->setObjectName("deckSplitter"); + split->setOrientation(Qt::Vertical); + split->setChildrenCollapsible(false); + split->addWidget(topWidget); + split->addWidget(bottomWidget); + split->setStretchFactor(0, 1); + split->setStretchFactor(1, 4); - QVBoxLayout *rightFrame = new QVBoxLayout; + auto *rightFrame = new QVBoxLayout; rightFrame->setObjectName("rightFrame"); - rightFrame->addLayout(grid); - rightFrame->addWidget(deckView, 10); + rightFrame->addWidget(split); deckDock = new QDockWidget(this); deckDock->setObjectName("deckDock"); @@ -128,7 +148,7 @@ void TabDeckEditor::createCardInfoDock() { cardInfo = new CardFrame(); cardInfo->setObjectName("cardInfo"); - QVBoxLayout *cardInfoFrame = new QVBoxLayout; + auto *cardInfoFrame = new QVBoxLayout; cardInfoFrame->setObjectName("cardInfoFrame"); cardInfoFrame->addWidget(cardInfo); @@ -166,21 +186,21 @@ void TabDeckEditor::createFiltersDock() SLOT(filterViewCustomContextMenu(const QPoint &))); connect(&filterViewKeySignals, SIGNAL(onDelete()), this, SLOT(actClearFilterOne())); - FilterBuilder *filterBuilder = new FilterBuilder; + auto *filterBuilder = new FilterBuilder; filterBuilder->setObjectName("filterBuilder"); connect(filterBuilder, SIGNAL(add(const CardFilter *)), filterModel, SLOT(addFilter(const CardFilter *))); - QToolButton *filterDelOne = new QToolButton(); + auto *filterDelOne = new QToolButton(); filterDelOne->setObjectName("filterDelOne"); filterDelOne->setDefaultAction(aClearFilterOne); filterDelOne->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - QToolButton *filterDelAll = new QToolButton(); + auto *filterDelAll = new QToolButton(); filterDelAll->setObjectName("filterDelAll"); filterDelAll->setDefaultAction(aClearFilterAll); filterDelAll->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - QGridLayout *filterLayout = new QGridLayout; + auto *filterLayout = new QGridLayout; filterLayout->setObjectName("filterLayout"); filterLayout->setContentsMargins(0, 0, 0, 0); filterLayout->addWidget(filterBuilder, 0, 0, 1, 3); @@ -192,7 +212,7 @@ void TabDeckEditor::createFiltersDock() filterBox->setObjectName("filterBox"); filterBox->setLayout(filterLayout); - QVBoxLayout *filterFrame = new QVBoxLayout; + auto *filterFrame = new QVBoxLayout; filterFrame->setObjectName("filterFrame"); filterFrame->addWidget(filterBox); @@ -391,7 +411,7 @@ void TabDeckEditor::createCentralFrame() aDecrement->setIcon(QPixmap("theme:icons/decrement")); connect(aDecrement, SIGNAL(triggered()), this, SLOT(actDecrement())); - QToolBar *deckEditToolBar = new QToolBar; + auto *deckEditToolBar = new QToolBar; deckEditToolBar->setObjectName("deckEditToolBar"); deckEditToolBar->setOrientation(Qt::Horizontal); deckEditToolBar->setIconSize(QSize(24, 24)); @@ -703,7 +723,7 @@ void TabDeckEditor::actLoadDeck() QString fileName = dialog.selectedFiles().at(0); DeckLoader::FileFormat fmt = DeckLoader::getFormatFromName(fileName); - DeckLoader *l = new DeckLoader; + auto *l = new DeckLoader; if (l->loadFromFile(fileName, fmt)) setDeck(l); else @@ -723,7 +743,7 @@ bool TabDeckEditor::actSaveDeck() DeckLoader *const deck = deckModel->getDeckList(); if (deck->getLastRemoteDeckId() != -1) { Command_DeckUpload cmd; - cmd.set_deck_id(deck->getLastRemoteDeckId()); + cmd.set_deck_id(static_cast(deck->getLastRemoteDeckId())); cmd.set_deck_list(deck->writeToString_Native().toStdString()); PendingCommand *pend = AbstractClient::prepareSessionCommand(cmd); @@ -839,15 +859,15 @@ void TabDeckEditor::actExportDeckDecklist() void TabDeckEditor::actAnalyzeDeckDeckstats() { - DeckStatsInterface *interface = new DeckStatsInterface(*databaseModel->getDatabase(), - this); // it deletes itself when done + auto *interface = new DeckStatsInterface(*databaseModel->getDatabase(), + this); // it deletes itself when done interface->analyzeDeck(deckModel->getDeckList()); } void TabDeckEditor::actAnalyzeDeckTappedout() { - TappedOutInterface *interface = new TappedOutInterface(*databaseModel->getDatabase(), - this); // it deletes itself when done + auto *interface = new TappedOutInterface(*databaseModel->getDatabase(), + this); // it deletes itself when done interface->analyzeDeck(deckModel->getDeckList()); }