test_sdk/gui/gtl_gui_scr_options_widget.cpp

78 lines
2.1 KiB
C++
Raw Normal View History

#include "gtl_gui_scr_options_widget.h"
#include "ui_gtl_gui_scr_options_widget.h"
#include <QFileDialog>
#include "script/gtl_scr_engine.h"
namespace gtl
{
namespace gui
{
scr_options_widget::scr_options_widget(QWidget *parent) :
gtl::gui::group_options_widget(parent),
ui(new Ui::scr_options_widget)
{
ui->setupUi(this);
connect(ui->add, &QToolButton::clicked, this, &scr_options_widget::add_path);
connect(ui->remove, &QToolButton::clicked, this, &scr_options_widget::remove_path);
}
scr_options_widget::~scr_options_widget()
{
delete ui;
}
void scr_options_widget::apply()
{
gtl::scr::engine::import_paths.clear();
for(int i = 0; i < ui->paths->count(); i++)
gtl::scr::engine::import_paths.push_back(ui->paths->item(i)->text());
}
void scr_options_widget::discard()
{
ui->paths->clear();
for(auto it : gtl::scr::engine::import_paths)
ui->paths->addItem(it);
}
void scr_options_widget::save(QSettings *settings)
{
QList<QVariant> paths;
for(int i = 0; i < ui->paths->count(); i++)
paths.push_back(ui->paths->item(i)->text());
settings->setValue("options/script/paths", QVariant(paths));
}
void scr_options_widget::restore(QSettings *settings)
{
QList<QVariant> paths = settings->value("options/script/paths").toList();
ui->paths->clear();
for(auto it : paths)
ui->paths->addItem(it.toString());
apply();
}
void scr_options_widget::add_path()
{
QString path = QFileDialog::getExistingDirectory(this, "Select import direcotry");
if(path.isEmpty())
return;
ui->paths->addItem(path);
}
void scr_options_widget::remove_path()
{
if(ui->paths->currentItem())
delete ui->paths->currentItem();
}
}
}