78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
|
#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();
|
||
|
}
|
||
|
}
|
||
|
}
|