mirror of
https://github.com/YACReader/yacreader
synced 2025-05-25 09:50:33 -04:00
84 lines
2.9 KiB
C++
84 lines
2.9 KiB
C++
#include "add_label_dialog.h"
|
|
|
|
AddLabelDialog::AddLabelDialog(QWidget *parent)
|
|
: QDialog(parent)
|
|
{
|
|
auto layout = new QVBoxLayout;
|
|
|
|
layout->addWidget(new QLabel(tr("Label name:")));
|
|
layout->addWidget(edit = new QLineEdit());
|
|
|
|
layout->addWidget(new QLabel(tr("Choose a color:")));
|
|
layout->addWidget(list = new QListWidget());
|
|
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_red.svg"), tr("red")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_orange.svg"), tr("orange")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_yellow.svg"), tr("yellow")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_green.svg"), tr("green")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_cyan.svg"), tr("cyan")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_blue.svg"), tr("blue")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_violet.svg"), tr("violet")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_purple.svg"), tr("purple")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_pink.svg"), tr("pink")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_white.svg"), tr("white")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_light.svg"), tr("light")));
|
|
list->addItem(new QListWidgetItem(QIcon(":/images/lists/label_dark.svg"), tr("dark")));
|
|
|
|
QColor backgroundColor = this->palette().window().color();
|
|
list->setStyleSheet(QString("QListWidget {border : none; background-color: rgb(%1,%2,%3);}").arg(backgroundColor.red()).arg(backgroundColor.green()).arg(backgroundColor.blue()));
|
|
list->setMinimumHeight(225);
|
|
|
|
setModal(true);
|
|
|
|
setMinimumHeight(340);
|
|
|
|
// buttons
|
|
acceptButton = new QPushButton(tr("accept"), this);
|
|
cancelButton = new QPushButton(tr("cancel"), this);
|
|
|
|
auto buttons = new QHBoxLayout;
|
|
buttons->addStretch();
|
|
buttons->addWidget(acceptButton);
|
|
buttons->addWidget(cancelButton);
|
|
|
|
layout->addStretch();
|
|
layout->addLayout(buttons);
|
|
|
|
setLayout(layout);
|
|
|
|
// connections
|
|
connect(edit, &QLineEdit::textChanged, this, &AddLabelDialog::validateName);
|
|
connect(cancelButton, &QAbstractButton::clicked, this, &QWidget::close);
|
|
connect(acceptButton, &QAbstractButton::clicked, this, &QDialog::accept);
|
|
}
|
|
|
|
YACReader::LabelColors AddLabelDialog::selectedColor()
|
|
{
|
|
return YACReader::LabelColors(list->currentRow() + 1);
|
|
}
|
|
|
|
QString AddLabelDialog::name()
|
|
{
|
|
return edit->text();
|
|
}
|
|
|
|
int AddLabelDialog::exec()
|
|
{
|
|
edit->clear();
|
|
list->clearSelection();
|
|
|
|
acceptButton->setDisabled(true);
|
|
|
|
list->setCurrentRow(0);
|
|
|
|
return QDialog::exec();
|
|
}
|
|
|
|
void AddLabelDialog::validateName(const QString &name)
|
|
{
|
|
if (name.isEmpty())
|
|
acceptButton->setDisabled(true);
|
|
else
|
|
acceptButton->setEnabled(true);
|
|
}
|