Reworked the layout of "edit sets" window

This commit is contained in:
Fabio Bas 2015-05-14 13:12:24 +02:00
parent 58a5834f34
commit 44800df89c
7 changed files with 3234 additions and 49 deletions

View file

@ -10,10 +10,48 @@
#include <QGroupBox>
#include <QDialogButtonBox>
#include <QVBoxLayout>
#include <QToolBar>
#include <QAction>
#include <QLabel>
WndSets::WndSets(QWidget *parent)
: QMainWindow(parent)
{
// left toolbar
QToolBar *setsEditToolBar = new QToolBar;
setsEditToolBar->setOrientation(Qt::Vertical);
setsEditToolBar->setIconSize(QSize(24, 24));
setsEditToolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
aTop = new QAction(QString(), this);
aTop->setIcon(QIcon(":/resources/arrow_top_green.svg"));
aTop->setToolTip(tr("Move selected set to top"));
aTop->setEnabled(false);
connect(aTop, SIGNAL(triggered()), this, SLOT(actTop()));
setsEditToolBar->addAction(aTop);
aUp = new QAction(QString(), this);
aUp->setIcon(QIcon(":/resources/arrow_up_green.svg"));
aUp->setToolTip(tr("Move selected set up"));
aUp->setEnabled(false);
connect(aUp, SIGNAL(triggered()), this, SLOT(actUp()));
setsEditToolBar->addAction(aUp);
aDown = new QAction(QString(), this);
aDown->setIcon(QIcon(":/resources/arrow_down_green.svg"));
aDown->setToolTip(tr("Move selected set down"));
aDown->setEnabled(false);
connect(aDown, SIGNAL(triggered()), this, SLOT(actDown()));
setsEditToolBar->addAction(aDown);
aBottom = new QAction(QString(), this);
aBottom->setIcon(QIcon(":/resources/arrow_bottom_green.svg"));
aBottom->setToolTip(tr("Move selected set to bottom"));
aBottom->setEnabled(false);
connect(aBottom, SIGNAL(triggered()), this, SLOT(actBottom()));
setsEditToolBar->addAction(aBottom);
// view
model = new SetsModel(db, this);
view = new QTreeView;
view->setModel(model);
@ -43,59 +81,32 @@ WndSets::WndSets(QWidget *parent)
view->setColumnHidden(SetsModel::IsKnownCol, true);
view->setRootIsDecorated(false);
enableButton = new QPushButton(tr("Enable set"));
connect(enableButton, SIGNAL(clicked()), this, SLOT(actEnable()));
disableButton = new QPushButton(tr("Disable set"));
connect(disableButton, SIGNAL(clicked()), this, SLOT(actDisable()));
connect(view->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
this, SLOT(actToggleButtons(const QItemSelection &, const QItemSelection &)));
// bottom buttons
enableAllButton = new QPushButton(tr("Enable all sets"));
connect(enableAllButton, SIGNAL(clicked()), this, SLOT(actEnableAll()));
disableAllButton = new QPushButton(tr("Disable all sets"));
connect(disableAllButton, SIGNAL(clicked()), this, SLOT(actDisableAll()));
upButton = new QPushButton(tr("Move selected set up"));
connect(upButton, SIGNAL(clicked()), this, SLOT(actUp()));
downButton = new QPushButton(tr("Move selected set down"));
connect(downButton, SIGNAL(clicked()), this, SLOT(actDown()));
topButton = new QPushButton(tr("Move selected set to top"));
connect(topButton, SIGNAL(clicked()), this, SLOT(actTop()));
bottomButton = new QPushButton(tr("Move selected set to bottom"));
connect(bottomButton, SIGNAL(clicked()), this, SLOT(actBottom()));
enableButton->setDisabled(true);
disableButton->setDisabled(true);
upButton->setDisabled(true);
downButton->setDisabled(true);
topButton->setDisabled(true);
bottomButton->setDisabled(true);
connect(view->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
this, SLOT(actToggleButtons(const QItemSelection &, const QItemSelection &)));
QGroupBox *toggleFrame = new QGroupBox(tr("Enable sets"));
QVBoxLayout *toggleVBox = new QVBoxLayout;
toggleVBox->addWidget(enableButton);
toggleVBox->addWidget(disableButton);
toggleVBox->addWidget(enableAllButton);
toggleVBox->addWidget(disableAllButton);
toggleFrame->setLayout(toggleVBox);
QGroupBox *sortFrame = new QGroupBox(tr("Sort sets"));
QVBoxLayout *sortVBox = new QVBoxLayout;
sortVBox->addWidget(upButton);
sortVBox->addWidget(downButton);
sortVBox->addWidget(topButton);
sortVBox->addWidget(bottomButton);
sortFrame->setLayout(sortVBox);
QLabel *labNotes = new QLabel;
labNotes->setText("Enable the sets that you want to have available in the deck editor.\nMove sets around to change their order, or click on a column header to sort sets on that field.\nSets order decides the source that will be used when loading images for a specific card.\nDisabled sets will still be used for loading images.");
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(actSave()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(actRestore()));
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(view, 0, 0, 1, 2);
mainLayout->addWidget(toggleFrame, 1, 0, 1, 1);
mainLayout->addWidget(sortFrame, 1, 1, 1, 1);
mainLayout->addWidget(buttonBox, 2, 0, 1, 2);
mainLayout->addWidget(setsEditToolBar, 0, 0, 1, 1);
mainLayout->addWidget(view, 0, 1, 1, 2);
mainLayout->addWidget(enableAllButton, 1, 1, 1, 1);
mainLayout->addWidget(disableAllButton, 1, 2, 1, 1);
mainLayout->addWidget(labNotes, 2, 1, 1, 2);
mainLayout->addWidget(buttonBox, 3, 1, 1, 2);
mainLayout->setColumnStretch(1, 1);
mainLayout->setColumnStretch(2, 1);
QWidget *centralWidget = new QWidget;
centralWidget->setLayout(mainLayout);
@ -125,12 +136,10 @@ void WndSets::actRestore()
void WndSets::actToggleButtons(const QItemSelection & selected, const QItemSelection &)
{
bool disabled = selected.empty();
upButton->setDisabled(disabled);
downButton->setDisabled(disabled);
topButton->setDisabled(disabled);
bottomButton->setDisabled(disabled);
enableButton->setDisabled(disabled);
disableButton->setDisabled(disabled);
aTop->setDisabled(disabled);
aUp->setDisabled(disabled);
aDown->setDisabled(disabled);
aBottom->setDisabled(disabled);
}
void WndSets::selectRow(int row)