#include "gtl_gui_scr_options_widget.h" #include "ui_gtl_gui_scr_options_widget.h" #include #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 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 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(); } } }