From f9fd64d90f971ff702bb532b3753f88cbfd122c2 Mon Sep 17 00:00:00 2001 From: taynpg Date: Fri, 17 May 2024 22:46:33 +0800 Subject: [PATCH] =?UTF-8?q?func=EF=BC=9A=E6=B7=BB=E5=8A=A0=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD=E5=B9=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt.user | 257 +++++++ MainWidget.cpp | 58 +- MainWidget.h | 4 +- MainWidget.ui | 281 ++++--- flatgray.qrc | 24 + public_def.cpp | 10 +- public_def.h | 3 +- qss/lightblue.css | 694 ++++++++++++++++++ qss/lightblue/add_bottom.png | Bin 0 -> 348 bytes qss/lightblue/add_left.png | Bin 0 -> 383 bytes qss/lightblue/add_right.png | Bin 0 -> 364 bytes qss/lightblue/add_top.png | Bin 0 -> 367 bytes qss/lightblue/arrow_bottom.png | Bin 0 -> 348 bytes qss/lightblue/arrow_left.png | Bin 0 -> 383 bytes qss/lightblue/arrow_right.png | Bin 0 -> 364 bytes qss/lightblue/arrow_top.png | Bin 0 -> 361 bytes qss/lightblue/branch_close.png | Bin 0 -> 269 bytes qss/lightblue/branch_open.png | Bin 0 -> 462 bytes qss/lightblue/calendar_nextmonth.png | Bin 0 -> 670 bytes qss/lightblue/calendar_prevmonth.png | Bin 0 -> 758 bytes qss/lightblue/checkbox_checked.png | Bin 0 -> 636 bytes qss/lightblue/checkbox_checked_disable.png | Bin 0 -> 664 bytes qss/lightblue/checkbox_parcial.png | Bin 0 -> 351 bytes qss/lightblue/checkbox_parcial_disable.png | Bin 0 -> 344 bytes qss/lightblue/checkbox_unchecked.png | Bin 0 -> 613 bytes qss/lightblue/checkbox_unchecked_disable.png | Bin 0 -> 648 bytes qss/lightblue/menu_checked.png | Bin 0 -> 554 bytes qss/lightblue/radiobutton_checked.png | Bin 0 -> 1516 bytes qss/lightblue/radiobutton_checked_disable.png | Bin 0 -> 1645 bytes qss/lightblue/radiobutton_unchecked.png | Bin 0 -> 1298 bytes .../radiobutton_unchecked_disable.png | Bin 0 -> 1385 bytes src/config.cpp | 10 +- src/config.h | 3 +- src/xml_opr.h | 3 +- 34 files changed, 1220 insertions(+), 127 deletions(-) create mode 100644 CMakeLists.txt.user create mode 100644 qss/lightblue.css create mode 100644 qss/lightblue/add_bottom.png create mode 100644 qss/lightblue/add_left.png create mode 100644 qss/lightblue/add_right.png create mode 100644 qss/lightblue/add_top.png create mode 100644 qss/lightblue/arrow_bottom.png create mode 100644 qss/lightblue/arrow_left.png create mode 100644 qss/lightblue/arrow_right.png create mode 100644 qss/lightblue/arrow_top.png create mode 100644 qss/lightblue/branch_close.png create mode 100644 qss/lightblue/branch_open.png create mode 100644 qss/lightblue/calendar_nextmonth.png create mode 100644 qss/lightblue/calendar_prevmonth.png create mode 100644 qss/lightblue/checkbox_checked.png create mode 100644 qss/lightblue/checkbox_checked_disable.png create mode 100644 qss/lightblue/checkbox_parcial.png create mode 100644 qss/lightblue/checkbox_parcial_disable.png create mode 100644 qss/lightblue/checkbox_unchecked.png create mode 100644 qss/lightblue/checkbox_unchecked_disable.png create mode 100644 qss/lightblue/menu_checked.png create mode 100644 qss/lightblue/radiobutton_checked.png create mode 100644 qss/lightblue/radiobutton_checked_disable.png create mode 100644 qss/lightblue/radiobutton_unchecked.png create mode 100644 qss/lightblue/radiobutton_unchecked_disable.png diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user new file mode 100644 index 0000000..260949c --- /dev/null +++ b/CMakeLists.txt.user @@ -0,0 +1,257 @@ + + + + + + EnvironmentId + {ba65acc4-67f8-4483-9557-68f8d8f20560} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + 0 + false + true + false + 2 + true + true + 0 + 8 + true + false + 1 + true + true + true + *.md, *.MD, Makefile + false + true + true + + + + ProjectExplorer.Project.PluginSettings + + + true + false + true + true + true + true + + + 0 + true + + true + true + Builtin.DefaultTidyAndClazy + 6 + true + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + vc64 + vc64 + {244185d3-0e22-42f6-99cc-1b986ffe29c6} + 0 + 0 + 0 + + Debug + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Debug +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + 0 + E:\code\OneLevelXmlOpr\build\vc64-Debug + + + + + all + + false + + true + 构建 + CMakeProjectManager.MakeStep + + 1 + 构建 + 构建 + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + 构建 + CMakeProjectManager.MakeStep + + 1 + 清除 + 清除 + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Debug + CMakeProjectManager.CMakeBuildConfiguration + + + Release + 2 + false + + -DCMAKE_GENERATOR:STRING=Ninja +-DCMAKE_BUILD_TYPE:STRING=Release +-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake +-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable} +-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX} +-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C} +-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} +-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} + E:\code\OneLevelXmlOpr\build\vc64-Release + + + + + all + + false + + true + CMakeProjectManager.MakeStep + + 1 + 构建 + 构建 + ProjectExplorer.BuildSteps.Build + + + + + + clean + + false + + true + CMakeProjectManager.MakeStep + + 1 + 清除 + 清除 + ProjectExplorer.BuildSteps.Clean + + 2 + false + + false + + Release + CMakeProjectManager.CMakeBuildConfiguration + + 2 + + + 0 + 部署 + 部署 + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + true + true + 0 + true + + 2 + + false + -e cpu-cycles --call-graph "dwarf,4096" -F 250 + OneLevelXmlOpr + CMakeProjectManager.CMakeRunConfiguration.OneLevelXmlOpr + OneLevelXmlOpr + false + true + true + true + E:/code/OneLevelXmlOpr/build/vc64-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/MainWidget.cpp b/MainWidget.cpp index 69bac61..14a08b4 100644 --- a/MainWidget.cpp +++ b/MainWidget.cpp @@ -11,7 +11,7 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget { ui->setupUi(this); - setWindowTitle(u8"OneLevelXmlOpr v1.2.6"); + setWindowTitle(u8"OneLevelXmlOpr v1.2.7"); setWindowIcon(QIcon("://resource/xml.ico")); setMinimumWidth(900); @@ -24,13 +24,20 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget attri_edit_ = new CAttributeEdit(); - ui->edStatus->setEnabled(false); + ui->edStatus->setReadOnly(true); ui->btnSave->setEnabled(false); ui->edAllPage->setEnabled(false); ui->cbCaseSensitive->setChecked(false); - connect(ui->btnRead, &QPushButton::clicked, this, [&]() { read(); }); + connect(ui->btnSelectFile, &QPushButton::clicked, this, [&]() { + QString file = CUtil::select_file(this, u8"请选择xml文件", u8"XML(*.xml);;所有文件 (*)"); + if (file.isEmpty()) { + return; + } + read(file); + }); connect(ui->btnSearch, &QPushButton::clicked, this, [&]() { search(); }); + connect(ui->btnRead, &QPushButton::clicked, this, [&]() { read(ui->edStatus->text().trimmed()); }); connect(ui->btnSave, &QPushButton::clicked, this, [&]() { save(); }); connect(ui->btnExit, &QPushButton::clicked, this, [&]() { QApplication::exit(0); }); connect(ui->btnReset, &QPushButton::clicked, this, &MainWidget::reset); @@ -52,12 +59,17 @@ MainWidget::MainWidget(QWidget* parent) : QWidget(parent), ui(new Ui::MainWidget restoreGeometry(settings.value("geometry").toByteArray()); settings.endGroup(); + //QFile qss_file("://qss/lightblue.css"); QFile qss_file("://qss/flatgray.css"); if (qss_file.open(QFile::ReadOnly)) { qApp->setStyleSheet(qss_file.readAll()); } init_menu(); + + ini_.set_work_exe(exe_path_); + base_ = ini_.get_config(); + ui->edStatus->setText(QString::fromLocal8Bit(base_.xml_path.c_str())); } void MainWidget::copy_key() @@ -104,12 +116,24 @@ void MainWidget::set_work_exe(char* path) exe_path_.append(path); } +void MainWidget::show_custom_menu() +{ + if (tab_widget_ == nullptr) { + return; + } + QModelIndexList indexList = tab_widget_->selectionModel()->selectedRows(); + + if (indexList.size() == 1) { + context_menu_->exec(QCursor::pos()); + } +} + void MainWidget::generate_table_widget() { tab_widget_ = new QTableWidget(); tab_widget_->setContextMenuPolicy(Qt::CustomContextMenu); connect(tab_widget_, &QTableWidget::itemChanged, this, [&](QTableWidgetItem* item) { item_changed_handle(item); }); - connect(tab_widget_, &QTableWidget::customContextMenuRequested, this, [&]() { context_menu_->exec(QCursor::pos()); }); + connect(tab_widget_, &QTableWidget::customContextMenuRequested, this, &MainWidget::show_custom_menu); auto config = ini_.get_config(); auto keys = splitString(config.purpose, ","); keys_.clear(); @@ -125,7 +149,7 @@ void MainWidget::generate_table_widget() tab_widget_->setColumnCount(list.size()); tab_widget_->setHorizontalHeaderLabels(list); tab_widget_->setSelectionBehavior(QAbstractItemView::SelectRows); - tab_widget_->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection); + //tab_widget_->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection); for (auto i = 0; i < keys.size(); ++i) { tab_widget_->setColumnWidth(i, width_[i]); @@ -193,19 +217,18 @@ void MainWidget::judge_btn_page() } } -void MainWidget::read() +void MainWidget::read(const QString& file_path) { - if (!ini_.set_work_exe(exe_path_)) { + ini_.set_xml_path(file_path.toStdString()); + ui->edStatus->setText(file_path); + + if (!xml_.open(base_.xml_path)) { + CUtil::msg(this, u8"打开xml失败。"); return; } - OprBase base = ini_.get_config(); - if (!xml_.open(base.xml_path)) { - QString status = u8"Open【" + QString::fromStdString(base.xml_path.c_str()) + u8"】Failed."; - return; - } - xml_.set_baseinfo(base); + xml_.set_baseinfo(base_); if (!xml_.parse_xml(vec_)) { - QString status = u8"parse_xml【" + QString::fromStdString(base.xml_path.c_str()) + u8"】Failed."; + CUtil::msg(this, u8"解析xml失败。"); return; } @@ -215,11 +238,10 @@ void MainWidget::read() current_ = vec_; auto_add_ = false; - QString status = u8"Open And Parse【" + QString::fromLocal8Bit(base.xml_path.c_str()) + u8"】Success."; - ui->edStatus->setText(status); - + ui->edStatus->setText(file_path); ui->btnRead->setEnabled(false); ui->btnSave->setEnabled(true); + ui->btnSelectFile->setEnabled(false); } void MainWidget::search() @@ -411,6 +433,8 @@ void MainWidget::insert_one_line(Element_t* ele, int row) if (i == 0) { wgItem->setFlags(wgItem->flags() & ~Qt::ItemIsEditable); + //wgItem->setFlags(wgItem->flags() | Qt::ItemIsUserCheckable); + //wgItem->setCheckState(Qt::Checked); } wgItem->setText(QString(data)); diff --git a/MainWidget.h b/MainWidget.h index cd1f357..9f69df3 100644 --- a/MainWidget.h +++ b/MainWidget.h @@ -30,7 +30,7 @@ public: void push_content(const std::vector& eles, std::size_t page = 1); private: - void read(); + void read(const QString& file_path); void search(); void item_changed_handle(QTableWidgetItem* item); void save(); @@ -43,6 +43,7 @@ private: bool edit_property(Element_t* target, int row); void init_menu(); void ele_update_gui(Element_t* target, int row); + void show_custom_menu(); protected: void closeEvent(QCloseEvent* event); @@ -72,5 +73,6 @@ private: std::size_t cur_page_{1}; std::size_t all_page_{1}; CAttributeEdit* attri_edit_{}; + OprBase base_{}; }; #endif // MAINWIDGET_H diff --git a/MainWidget.ui b/MainWidget.ui index 5bb7175..e84a98c 100644 --- a/MainWidget.ui +++ b/MainWidget.ui @@ -6,16 +6,190 @@ 0 0 - 790 - 847 + 985 + 805 MainWidget - + - + + + 1基本信息 + + + + + + 选择文件 + + + + + + + + + + 加载 + + + + + + + 备份快照 + + + + + + + 保存 + + + + + + + 退出 + + + + + + + + + + 2.操作 + + + + + + 导出选择行 + + + + + + + 导入行 + + + + + + + Qt::Vertical + + + + + + + 仅替换所选 + + + + + + + + + + 替换为 + + + + + + + + + + Qt::Vertical + + + + + + + 搜索区分大小写 + + + + + + + + 0 + 0 + + + + + + + + 搜索 + + + + + + + 重置 + + + + + + + 重新排序 + + + + + + + + + + 3.数据 + + + + + + + 0 + 0 + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -83,105 +257,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - 0 - 0 - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - - - - 区分大小写 - - - - - - - 搜索 - - - - - - - 重置 - - - - - - - - - - - - - - 加载文件 - - - - - - - 保存 - - - - - - - 退出 - - - diff --git a/flatgray.qrc b/flatgray.qrc index 35a2567..85fac3e 100644 --- a/flatgray.qrc +++ b/flatgray.qrc @@ -24,5 +24,29 @@ qss/flatgray/radiobutton_unchecked.png qss/flatgray/radiobutton_unchecked_disable.png qss/flatgray.css + qss/lightblue/add_bottom.png + qss/lightblue/add_left.png + qss/lightblue/add_right.png + qss/lightblue/add_top.png + qss/lightblue/arrow_bottom.png + qss/lightblue/arrow_left.png + qss/lightblue/arrow_right.png + qss/lightblue/arrow_top.png + qss/lightblue/branch_close.png + qss/lightblue/branch_open.png + qss/lightblue/calendar_nextmonth.png + qss/lightblue/calendar_prevmonth.png + qss/lightblue/checkbox_checked.png + qss/lightblue/checkbox_checked_disable.png + qss/lightblue/checkbox_parcial.png + qss/lightblue/checkbox_parcial_disable.png + qss/lightblue/checkbox_unchecked.png + qss/lightblue/checkbox_unchecked_disable.png + qss/lightblue/menu_checked.png + qss/lightblue/radiobutton_checked.png + qss/lightblue/radiobutton_checked_disable.png + qss/lightblue/radiobutton_unchecked.png + qss/lightblue/radiobutton_unchecked_disable.png + qss/lightblue.css diff --git a/public_def.cpp b/public_def.cpp index d28bb52..97086ee 100644 --- a/public_def.cpp +++ b/public_def.cpp @@ -1,5 +1,6 @@ #include "public_def.h" #include +#include std::vector splitString(const std::string& input, const std::string& delimiter) { @@ -37,4 +38,11 @@ bool CUtil::affirm(QWidget* parent, const QString& titile, const QString& conten } else { return true; } -} \ No newline at end of file +} + +QString CUtil::select_file(QWidget* parent, const QString& info, const QString& filter) +{ + QString filePath = + QFileDialog::getOpenFileName(parent, info, QDir::homePath(), filter); + return filePath; +} diff --git a/public_def.h b/public_def.h index 5adc864..c959de7 100644 --- a/public_def.h +++ b/public_def.h @@ -22,6 +22,7 @@ public: public: static void msg(QWidget* parent, const QString& content); static bool affirm(QWidget* parent, const QString& titile, const QString& content); + static QString select_file(QWidget* parent, const QString& info, const QString& filter); }; -#endif \ No newline at end of file +#endif diff --git a/qss/lightblue.css b/qss/lightblue.css new file mode 100644 index 0000000..4928ebd --- /dev/null +++ b/qss/lightblue.css @@ -0,0 +1,694 @@ +QPalette{background:#EAF7FF;}*{outline:0px;color:#386487;} + +QGraphicsView{ +border:1px solid #C0DCF2; +qproperty-backgroundBrush:#EAF7FF; +} + +QWidget[form="true"],QLabel[frameShape="1"],QGraphicsView{ +border:1px solid #C0DCF2; +border-radius:0px; +} + +QWidget[form="bottom"]{ +background:#DEF0FE; +} + +QWidget[form="bottom"] .QFrame{ +border:1px solid #386487; +} + +QWidget[form="bottom"] QLabel,QWidget[form="title"] QLabel{ +border-radius:0px; +color:#386487; +background:none; +border-style:none; +} + +QWidget[form="title"],QWidget[nav="left"],QWidget[nav="top"] QAbstractButton{ +border-style:none; +border-radius:0px; +padding:5px; +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QWidget[nav="top"] QAbstractButton:hover,QWidget[nav="top"] QAbstractButton:pressed,QWidget[nav="top"] QAbstractButton:checked{ +border-style:solid; +border-width:0px 0px 2px 0px; +padding:4px 4px 2px 4px; +border-color:#386488; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QWidget[nav="left"] QAbstractButton{ +border-radius:0px; +color:#386487; +background:none; +border-style:none; +} + +QWidget[nav="left"] QAbstractButton:hover{ +color:#FFFFFF; +background-color:#386488; +} + +QWidget[nav="left"] QAbstractButton:checked,QWidget[nav="left"] QAbstractButton:pressed{ +color:#386487; +border-style:solid; +border-width:0px 0px 0px 2px; +padding:4px 4px 4px 2px; +border-color:#386488; +background-color:#EAF7FF; +} + +QWidget[video="true"] QLabel{ +color:#386487; +border:1px solid #C0DCF2; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QWidget[video="true"] QLabel:focus{ +border:1px solid #386488; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QLineEdit:read-only{ +background-color:#DEF0FE; +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +border:1px solid #C0DCF2; +border-radius:3px; +padding:2px; +background:none; +selection-background-color:#386488; +selection-color:#FFFFFF; +} + +QLineEdit:focus,QTextEdit:focus,QPlainTextEdit:focus,QSpinBox:focus,QDoubleSpinBox:focus,QComboBox:focus,QDateEdit:focus,QTimeEdit:focus,QDateTimeEdit:focus,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QSpinBox:hover,QDoubleSpinBox:hover,QComboBox:hover,QDateEdit:hover,QTimeEdit:hover,QDateTimeEdit:hover{ +border:1px solid #C0DCF2; +} + +QLineEdit[echoMode="2"]{ +lineedit-password-character:9679; +} + +.QFrame{ +border:1px solid #C0DCF2; +border-radius:3px; +} + +.QGroupBox{ +border:1px solid #C0DCF2; +border-radius:5px; +margin-top:9px; +} + +.QGroupBox::title{ +subcontrol-origin:margin; +position:relative; +left:10px; +} + +.QPushButton,.QToolButton{ +border-style:none; +border:1px solid #C0DCF2; +color:#386487; +padding:5px; +min-height:15px; +border-radius:5px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +.QPushButton:hover,.QToolButton:hover{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +.QPushButton:pressed,.QToolButton:pressed{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +.QToolButton::menu-indicator{ +image:None; +} + +QToolButton#btnMenu,QPushButton#btnMenu_Min,QPushButton#btnMenu_Max,QPushButton#btnMenu_Close{ +border-radius:3px; +color:#386487; +padding:3px; +margin:0px; +background:none; +border-style:none; +} + +QToolButton#btnMenu:hover,QPushButton#btnMenu_Min:hover,QPushButton#btnMenu_Max:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(51,127,209,230); +} + +QPushButton#btnMenu_Close:hover{ +color:#FFFFFF; +margin:1px 1px 2px 1px; +background-color:rgba(238,0,0,128); +} + +QRadioButton::indicator{ +width:15px; +height:15px; +} + +QRadioButton::indicator::unchecked{ +image:url(:/qss/lightblue/radiobutton_unchecked.png); +} + +QRadioButton::indicator::unchecked:disabled{ +image:url(:/qss/lightblue/radiobutton_unchecked_disable.png); +} + +QRadioButton::indicator::checked{ +image:url(:/qss/lightblue/radiobutton_checked.png); +} + +QRadioButton::indicator::checked:disabled{ +image:url(:/qss/lightblue/radiobutton_checked_disable.png); +} + +QGroupBox::indicator,QTreeView::indicator,QListView::indicator,QTableView::indicator{ +padding:0px 0px 0px 0px; +} + +QCheckBox::indicator,QGroupBox::indicator,QTreeView::indicator,QListView::indicator,QTableView::indicator{ +width:13px; +height:13px; +} + +QCheckBox::indicator:unchecked,QGroupBox::indicator:unchecked,QTreeView::indicator:unchecked,QListView::indicator:unchecked,QTableView::indicator:unchecked{ +image:url(:/qss/lightblue/checkbox_unchecked.png); +} + +QCheckBox::indicator:unchecked:disabled,QGroupBox::indicator:unchecked:disabled,QTreeView::indicator:unchecked:disabled,QListView::indicator:unchecked:disabled,QTableView::indicator:unchecked:disabled{ +image:url(:/qss/lightblue/checkbox_unchecked_disable.png); +} + +QCheckBox::indicator:checked,QGroupBox::indicator:checked,QTreeView::indicator:checked,QListView::indicator:checked,QTableView::indicator:checked{ +image:url(:/qss/lightblue/checkbox_checked.png); +} + +QCheckBox::indicator:checked:disabled,QGroupBox::indicator:checked:disabled,QTreeView::indicator:checked:disabled,QListView::indicator:checked:disabled,QTableView::indicator:checked:disabled{ +image:url(:/qss/lightblue/checkbox_checked_disable.png); +} + +QCheckBox::indicator:indeterminate,QGroupBox::indicator:indeterminate,QTreeView::indicator:indeterminate,QListView::indicator:indeterminate,QTableView::indicator:indeterminate{ +image:url(:/qss/lightblue/checkbox_parcial.png); +} + +QCheckBox::indicator:indeterminate:disabled,QGroupBox::indicator:indeterminate:disabled,QTreeView::indicator:indeterminate:disabled,QListView::indicator:indeterminate:disabled,QTableView::indicator:indeterminate:disabled{ +image:url(:/qss/lightblue/checkbox_parcial_disable.png); +} + +QTimeEdit::up-button,QDateEdit::up-button,QDateTimeEdit::up-button,QDoubleSpinBox::up-button,QSpinBox::up-button{ +image:url(:/qss/lightblue/add_top.png); +width:10px; +height:10px; +padding:2px 5px 0px 0px; +} + +QTimeEdit::down-button,QDateEdit::down-button,QDateTimeEdit::down-button,QDoubleSpinBox::down-button,QSpinBox::down-button{ +image:url(:/qss/lightblue/add_bottom.png); +width:10px; +height:10px; +padding:0px 5px 2px 0px; +} + +QTimeEdit::up-button:pressed,QDateEdit::up-button:pressed,QDateTimeEdit::up-button:pressed,QDoubleSpinBox::up-button:pressed,QSpinBox::up-button:pressed{ +top:-2px; +} + +QTimeEdit::down-button:pressed,QDateEdit::down-button:pressed,QDateTimeEdit::down-button:pressed,QDoubleSpinBox::down-button:pressed,QSpinBox::down-button:pressed,QSpinBox::down-button:pressed{ +bottom:-2px; +} + +QComboBox::down-arrow,QDateEdit[calendarPopup="true"]::down-arrow,QTimeEdit[calendarPopup="true"]::down-arrow,QDateTimeEdit[calendarPopup="true"]::down-arrow{ +image:url(:/qss/lightblue/add_bottom.png); +width:10px; +height:10px; +right:2px; +} + +QComboBox::drop-down,QDateEdit::drop-down,QTimeEdit::drop-down,QDateTimeEdit::drop-down{ +subcontrol-origin:padding; +subcontrol-position:top right; +width:15px; +border-left-width:0px; +border-left-style:solid; +border-top-right-radius:3px; +border-bottom-right-radius:3px; +border-left-color:#C0DCF2; +} + +QComboBox::drop-down:on{ +top:1px; +} + +QMenuBar::item{ +color:#386487; +background-color:#DEF0FE; +margin:0px; +padding:3px 10px; +} + +QMenu,QMenuBar,QMenu:disabled,QMenuBar:disabled{ +color:#386487; +background-color:#DEF0FE; +border:1px solid #C0DCF2; +margin:0px; +} + +QMenu::item{ +padding:3px 20px; +} + +QMenu::indicator{ +width:20px; +height:13px; +} + +QMenu::indicator::checked{ +image:url(:/qss/lightblue/menu_checked.png); +} + +QMenu::right-arrow{ +image:url(:/qss/lightblue/arrow_right.png); +width:13px; +height:13px; +padding:0px 3px 0px 0px; +} + +QMenu::item:selected,QMenuBar::item:selected{ +color:#386487; +border:0px solid #C0DCF2; +background:#F2F9FF; +} + +QMenu::separator{ +height:1px; +background:#C0DCF2; +} + +QProgressBar{ +min-height:10px; +background:#DEF0FE; +border-radius:5px; +text-align:center; +border:1px solid #DEF0FE; +} + +QProgressBar:chunk{ +border-radius:5px; +background-color:#C0DCF2; +} + +QSlider::groove:horizontal{ +height:8px; +border-radius:4px; +background:#DEF0FE; +} + +QSlider::add-page:horizontal{ +height:8px; +border-radius:4px; +background:#DEF0FE; +} + +QSlider::sub-page:horizontal{ +height:8px; +border-radius:4px; +background:#C0DCF2; +} + +QSlider::handle:horizontal{ +width:13px; +margin-top:-3px; +margin-bottom:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #EAF7FF,stop:0.8 #C0DCF2); +} + +QSlider::groove:vertical{ +width:8px; +border-radius:4px; +background:#DEF0FE; +} + +QSlider::add-page:vertical{ +width:8px; +border-radius:4px; +background:#C0DCF2; +} + +QSlider::sub-page:vertical{ +width:8px; +border-radius:4px; +background:#DEF0FE; +} + +QSlider::handle:vertical{ +height:14px; +margin-left:-3px; +margin-right:-3px; +border-radius:6px; +background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.6 #EAF7FF,stop:0.8 #C0DCF2); +} + +QScrollBar:horizontal{ +background:#DEF0FE; +padding:0px; +border-radius:6px; +max-height:12px; +} + +QScrollBar::handle:horizontal{ +background:#C0DCF2; +min-width:50px; +border-radius:6px; +} + +QScrollBar::handle:horizontal:hover{ +background:#386488; +} + +QScrollBar::handle:horizontal:pressed{ +background:#386488; +} + +QScrollBar::add-page:horizontal{ +background:none; +} + +QScrollBar::sub-page:horizontal{ +background:none; +} + +QScrollBar::add-line:horizontal{ +background:none; +} + +QScrollBar::sub-line:horizontal{ +background:none; +} + +QScrollBar:vertical{ +background:#DEF0FE; +padding:0px; +border-radius:6px; +max-width:12px; +} + +QScrollBar::handle:vertical{ +background:#C0DCF2; +min-height:50px; +border-radius:6px; +} + +QScrollBar::handle:vertical:hover{ +background:#386488; +} + +QScrollBar::handle:vertical:pressed{ +background:#386488; +} + +QScrollBar::add-page:vertical{ +background:none; +} + +QScrollBar::sub-page:vertical{ +background:none; +} + +QScrollBar::add-line:vertical{ +background:none; +} + +QScrollBar::sub-line:vertical{ +background:none; +} + +QScrollArea{ +border:0px; +} + +QTreeView,QListView,QTableView,QTabWidget::pane{ +border:1px solid #C0DCF2; +selection-background-color:#F2F9FF; +selection-color:#386487; +alternate-background-color:#DAEFFF; +gridline-color:#C0DCF2; +} + +QTreeView::branch:closed:has-children{ +margin:4px; +border-image:url(:/qss/lightblue/branch_open.png); +} + +QTreeView::branch:open:has-children{ +margin:4px; +border-image:url(:/qss/lightblue/branch_close.png); +} + +QTreeView,QListView,QTableView,QSplitter::handle,QTreeView::branch{ +background:#EAF7FF; +} + +QTableView::item:selected,QListView::item:selected,QTreeView::item:selected{ +color:#386487; +background:#C0DEF6; +} + +QTableView::item:hover,QListView::item:hover,QTreeView::item:hover,QHeaderView,QHeaderView::section,QTableCornerButton:section{ +color:#386487; +background:#DAEFFF; +} + +QTableView::item,QListView::item,QTreeView::item{ +padding:1px; +margin:0px; +border:0px; +} + +QHeaderView::section,QTableCornerButton:section{ +padding:3px; +margin:0px; +border:1px solid #C0DCF2; +border-left-width:0px; +border-right-width:1px; +border-top-width:0px; +border-bottom-width:1px; +} + +QTabBar::tab{ +border:1px solid #C0DCF2; +color:#386487; +margin:0px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QTabBar::tab:selected{ +border-style:solid; +border-color:#386488; +background:#EAF7FF; +} + +QTabBar::tab:top,QTabBar::tab:bottom{ +padding:3px 8px 3px 8px; +} + +QTabBar::tab:left,QTabBar::tab:right{ +padding:8px 3px 8px 3px; +} + +QTabBar::tab:top:selected{ +border-width:2px 0px 0px 0px; +} + +QTabBar::tab:right:selected{ +border-width:0px 0px 0px 2px; +} + +QTabBar::tab:bottom:selected{ +border-width:0px 0px 2px 0px; +} + +QTabBar::tab:left:selected{ +border-width:0px 2px 0px 0px; +} + +QTabBar::tab:first:top:selected,QTabBar::tab:first:bottom:selected{ +border-left-width:1px; +border-left-color:#C0DCF2; +} + +QTabBar::tab:first:left:selected,QTabBar::tab:first:right:selected{ +border-top-width:1px; +border-top-color:#C0DCF2; +} + +QTabBar::tab:last:top:selected,QTabBar::tab:last:bottom:selected{ +border-right-width:1px; +border-right-color:#C0DCF2; +} + +QTabBar::tab:last:left:selected,QTabBar::tab:last:right:selected{ +border-bottom-width:1px; +border-bottom-color:#C0DCF2; +} + +QStatusBar::item{ +border:0px solid #DEF0FE; +border-radius:3px; +} + +QToolBox::tab,QWidget[form="panel"]{ +padding:3px; +border-radius:5px; +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QWidget[flag="paneltitle"]{ +border-bottom-left-radius:0px; +border-bottom-right-radius:0px; +} + +QWidget[flag="panelcontrol"]{ +border-top-width:0px; +border-top-left-radius:0px; +border-top-right-radius:0px; +} + +QToolTip{ +border:0px solid #386487; +padding:1px; +color:#386487; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QToolBox::tab:selected{ +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #F2F9FF,stop:1 #DAEFFF); +} + +QPrintPreviewDialog QToolButton{ +border:0px solid #386487; +border-radius:0px; +margin:0px; +padding:3px; +background:none; +} + +QColorDialog QPushButton,QFileDialog QPushButton{ +min-width:80px; +} + +QToolButton#qt_calendar_prevmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/lightblue/calendar_prevmonth.png); +} + +QToolButton#qt_calendar_nextmonth{ +icon-size:0px; +min-width:20px; +image:url(:/qss/lightblue/calendar_nextmonth.png); +} + +QToolButton#qt_calendar_prevmonth,QToolButton#qt_calendar_nextmonth,QToolButton#qt_calendar_monthbutton,QToolButton#qt_calendar_yearbutton{ +border:0px solid #386487; +border-radius:3px; +margin:3px 3px 3px 3px; +padding:3px; +background:none; +} + +QToolButton#qt_calendar_prevmonth:hover,QToolButton#qt_calendar_nextmonth:hover,QToolButton#qt_calendar_monthbutton:hover,QToolButton#qt_calendar_yearbutton:hover,QToolButton#qt_calendar_prevmonth:pressed,QToolButton#qt_calendar_nextmonth:pressed,QToolButton#qt_calendar_monthbutton:pressed,QToolButton#qt_calendar_yearbutton:pressed{ +border:1px solid #C0DCF2; +} + +QCalendarWidget QSpinBox#qt_calendar_yearedit{ +margin:2px; +} + +QCalendarWidget QToolButton::menu-indicator{ +image:None; +} + +QCalendarWidget QTableView{ +border-width:0px; +} + +QCalendarWidget QWidget#qt_calendar_navigationbar{ +border:1px solid #C0DCF2; +border-width:1px 1px 0px 1px; +background:qlineargradient(spread:pad,x1:0,y1:0,x2:0,y2:1,stop:0 #DEF0FE,stop:1 #C0DEF6); +} + +QTableView[model="true"]::item{ +padding:0px; +margin:0px; +} + +QTableView QLineEdit,QTableView QComboBox,QTableView QSpinBox,QTableView QDoubleSpinBox,QTableView QDateEdit,QTableView QTimeEdit,QTableView QDateTimeEdit{ +border-width:0px; +border-radius:0px; +} + +QTableView QLineEdit:focus,QTableView QComboBox:focus,QTableView QSpinBox:focus,QTableView QDoubleSpinBox:focus,QTableView QDateEdit:focus,QTableView QTimeEdit:focus,QTableView QDateTimeEdit:focus{ +border-width:0px; +border-radius:0px; +} + +QLineEdit,QTextEdit,QPlainTextEdit,QSpinBox,QDoubleSpinBox,QComboBox,QDateEdit,QTimeEdit,QDateTimeEdit{ +background:#EAF7FF; +} + +QTabWidget::pane:top{top:-1px;} +QTabWidget::pane:bottom{bottom:-1px;} +QTabWidget::pane:left{right:-1px;} +QTabWidget::pane:right{left:-1px;} + +QDialog,QDial,#QUIWidgetMain{ +background-color:#EAF7FF; +color:#386487; +} + +QDialogButtonBox>QPushButton{ +min-width:50px; +} + +QListView[noborder="true"],QTreeView[noborder="true"],QTabWidget[noborder="true"]::pane{ +border-width:0px; +} + +QToolBar>*,QStatusBar>*{ +margin:2px; +} + +*:disabled,QMenu::item:disabled,QTabBar:tab:disabled,QHeaderView::section:disabled{ +background:#EAF7FF; +border-color:#DEF0FE; +color:#C0DCF2; +} + +QLabel:disabled{ +background:none; +} + +/*TextColor:#386487*/ +/*PanelColor:#EAF7FF*/ +/*BorderColor:#C0DCF2*/ +/*NormalColorStart:#DEF0FE*/ +/*NormalColorEnd:#C0DEF6*/ +/*DarkColorStart:#F2F9FF*/ +/*DarkColorEnd:#DAEFFF*/ +/*HighColor:#386488*/ \ No newline at end of file diff --git a/qss/lightblue/add_bottom.png b/qss/lightblue/add_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..99eadb9d4be435c331abbb1e72e6849868be17ed GIT binary patch literal 348 zcmV-i0i*tjP)$5BqXFo>|ij2edYaColnk;_~qq+Wm%SGS=NrkwV1EoCjxiCabd$s zTDfdS!{@GL)ir#0TK6lsr92McR4cu9Ejxi1%jR30p`oMLDf5$sc@B@_JcdC2U8JI*U?TO6hnI9zyk=`k={7)1VT1s z5Do%>kc;SVw!4l)4& u7B70Z{rWf;^tGvv9&_L<%d#wM5BdfXK749cAL0D~0000rWvbZ5${9EpVU&w8DV`&=Lndfz~+a0rbE@CeRB98NmDJW{V^j9yrJVu2t_J z0xuSrwsZ#W4~NST;~7vJczz^n4<76do~js+a6o3CVlQN`|DXr5_f2ArRJn^Sk!sb9 z6;ibxv_Ps?)Y?dso?~*b;c0fX@ah(9*UW~O zCwq@7*s4~}^1`bd-~#;2J>A_uzn_a-zhwb24*tA)DcMAg%me;Uj;sp=F){)OLSz&W zM94@W2$0c02u3P^5QtO(Aqc4iLI6??gqp}EfB?N^;>z8#J}1x|5OZc`=DBx`01c*I zrR#NW+eZKoExEZz$|Uid-N;M@7RKP=qMC04*h)fm_hf z(B=l*AV@)6zy-n`5)?Q^exxWM_^4K)@W#9AUD3?jjy3bRSU}S>P17_@13*$H)nfng zb+#LG?@o**Wyx$@&2PWJ_s_MwjjP!ONr|z$^OCY;_L0qRAaaGx53dEhJUJ{zBEo+I zT5zT)$Y5X#&eRzh1a!oiIw8G*o;Xu5(hC@fGX)`?fgN!sZ=@4263*m>Yz0QfnVgYZ zfr)S?C!`ga7-wolHXbG^b#Hl{7zY43A$Jee^4#`8bqP3uTpL%n-6Y^6FA z%t~Ry6I5HX=HSsbR<^_S?c=@?8T|ncU|?u>T%#3ue=&L!cqnK3Q47ZUdf)(pn5D&! zeGHeSRNuA0&q2L0ozE9m5!OoKX3cm4VuFEC6zPTg6$nL;-Z(EH zWJLzyyn&Df8H@`8LJ~3x7Yu|bWHc@c2tmjsTr?28kjc0tAao+L;F5u0MP|c6$9F5V udhcYJ*Y{09Uan8acR6sHrfHh?5BdV>AE&9- z32870-U5ec2pU0O0fHbc&>a+ptYByFnLsi}ZZb2UnAy2^ASWm1f5%cRQuI&vgK=iG z9yUG~$G2Cbm*0+UDPaJ`VB8C4*I+w=&|S9I59*AU0*k@87vK`;e18krW}P`?z$#o! zBtS152!NhAa0Ytgz!9jxffG=L0|%fI2MvL095eu?z(FK16%HbRMgM#&zzGR(5CME& zdtCs}0!w9T1Me?JZ>y3c2u}*o&qVFP*>pHxmA01x8GVXVAshV%Qy?4PBxwZRNJ&rPiIjD9UPx(QT!H*Bc&syr{AFP_9nP&??pk1iad@}Ayiu>2 dlauq8@&%GBmpnMGK-2&L002ovPDHLkV1gC@lsy0d literal 0 HcmV?d00001 diff --git a/qss/lightblue/arrow_right.png b/qss/lightblue/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..604def67731f59c53bb0ca0eb531b3a676044ac0 GIT binary patch literal 364 zcmV-y0h9iTP);#Z z5F)*RAVPWqL4foIf-_P91V^L_2u?^P5FC(dAS5E20Kx`21dDo3pgAC5?+`5Zswv>S ztiG@JIcx$rFRRsH_B8s~=U5F)!hsf;i~}9e1qT|S8xH(|t~l@oy5qnPD8YdbP=!0dn!!;0000< KMNUMnLSTXnW0C6s literal 0 HcmV?d00001 diff --git a/qss/lightblue/arrow_top.png b/qss/lightblue/arrow_top.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0223187fbcf0917c5444e4a853595ba3a7ac64 GIT binary patch literal 361 zcmV-v0ha!WP)dTM&Ib@nU&2zW6d{DTX)+kZ_4dzPK$vg2v&?>)g99WtH9d9?w53a3>V@b6$EF_h}1W+#kz7*8+de&b6N{8+a2A<%e-{Vg%WDwARqgasM zz!V%6jPwFp;;0~`Gtd!7c_W>Go;b=2X$=g-QO-y!AQO&qLZ$+lag;UkA}}KyWrZ{X zGsaP=NW;TgC6#!PF%AG?4Lz+tjXI_aXCJ?Rd@TWJndZ#J(1)gJcowjl_urMq8-VYu zRDaq<2P{m(iyz6|!?28EvCMBe7A5)pdfa3Cf0QIilK#0L-yd+r>*i6c00000NkvXX Hu0mjf*SD6p literal 0 HcmV?d00001 diff --git a/qss/lightblue/branch_close.png b/qss/lightblue/branch_close.png new file mode 100644 index 0000000000000000000000000000000000000000..73492b3e8fa95df8e649a7791daa5a73ec2e77d2 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9EWz97u_dHRv%K*9Z< zE{-7)t#8j6avd^|IQnsV(2CeyRc!2qWtX`tSk1-x6}p@c9JS_9%Ij-l7r1g%*rJ-L zn@=~%j(xhxE>Wk}@3%h*osd^hQd0VreoFRMb7gQ(4ugqJnFL4K*6@4x*MB*?kK>KA z`)dKWw0V#1WV!b0^t9aq=`;CjZkHV;h?H zFKUX>ytym+1z*3(d^OJ!!Pa&2^%xw|6kdN$s$o%++ph|=QAz71?}IJc8AbvwwLq^h Nc)I$ztaD0e0suy!ViN!W literal 0 HcmV?d00001 diff --git a/qss/lightblue/branch_open.png b/qss/lightblue/branch_open.png new file mode 100644 index 0000000000000000000000000000000000000000..9abd65c4f9fe78e0088ded3d1e50005cd913b0af GIT binary patch literal 462 zcmV;<0WtoGP)f^JY6#kzg94Yf zAfyNq8gy%o3W>Jbf~H6a%zpg^O%1Iz_)4CmF&uOAyb6t@xpg)wo+gtyTQp8^>3&_jc9 z5vo_0uaA?3=7wVjXOc+^ns+^xYj_YAD^_r=wb4ZFB^+j8&^s>|gh_YF_h--uO7WK< z!*-V(g859M$Ux3JBL`I?K6e*e9+M@zx*drGpO`S)Es=pC0;a!NQUj0$@YW@&qQNJR zhnqLRmZKs1lf+h2OH4THxPb7^tmYq%68F8%@Yfk^gAtTs1f>{3DgRqg6PMArE!ski zazN3mWQItvWPe@(ybqw>rd?#>o!f(rXUPnM!SL7l0(CxMZa7OY82|tP07*qoM6N<$ Ef?(&ut^fc4 literal 0 HcmV?d00001 diff --git a/qss/lightblue/calendar_nextmonth.png b/qss/lightblue/calendar_nextmonth.png new file mode 100644 index 0000000000000000000000000000000000000000..36a453bc0d77f120e646e5d0bdce44ec58981865 GIT binary patch literal 670 zcmV;P0%84$P) zwzdW2Xocsqf{g7xS?sc>t;PyyjMO7!e$(azX$6Fpm#Vyp(U=%%1)Lr|_f}L3z>-_1?p5$Oa7{*caq;0O65 zFbspX+05p&Nn71Afoi9UUIOY}Aio2)7m5ds1Xl&!V1u(vMPwP+);qK*W0vm&Emfm^ z%`cJVJ(xBhw;(iC*Hundkg+|5Vn?)Ky{J7Ti^%cl;aUQM&=@^hOTcAO#-oR2U@DMz zqP(xJsT?CPFqvDr7A=%_-K)oU7jmr+)&re5Uf?ls=O=SZAz^5u#Rx=YXV2i)K-ppY zHi2f)e&Q|ainyNulVxx3K=X>xTfjCKIB*E`fdfZCUpR08^ofInK;Jk>0IUWMEdMNY zoEU5{=nY_(PaIfYbt?gR6}HD{O@sr#cX47ISOU|A8Bv~AXmNrAOW?$nvx})fx`Agt zao~Q&#;5aDd5+$jyf%eUCuY1@5oNC+n~;2mk?owEzGB07*qoM6N<$ Ef{{%rzW@LL literal 0 HcmV?d00001 diff --git a/qss/lightblue/calendar_prevmonth.png b/qss/lightblue/calendar_prevmonth.png new file mode 100644 index 0000000000000000000000000000000000000000..cce673fe979082d1bc214b934535162d4e682673 GIT binary patch literal 758 zcmV6&p#fryI}bIO-V1;wxCj3dhu9ZYPFuN!0^!Mah=!$0uKVv zIN{oIsVe7FvLag3Wf!h5HhL07Ndf}DhZq47kIyXyL(%DCA+3qjWwzl!69D|H>k}~S z4|qoaE;L&$PjLg>%6uk{NOpYWt=0N1{et0GVgR5=Xp930KAl*XNDpCPIF=aTz!-py zO<(4CC#jV;B7KB_mT;QBN7<5}ypU$F%2G!C!;bOHyM1UiKS zOaPt40Zo7wao<2R$T?+1ASzR}Tz73AvaFi|TEy8E!wjtXKj;t+0J?NWw-29@gY^Le z@IWkagcI(d^SF9;erHlo{lNfa;6vcp+*#9#5QrGue>{d4XhTOqO|r%s3u!GFicWicZi#>}+HkOH5REvl&yK~P)d&9CeD^8Y zvnk-cLclQ0ZOi5f{HhMNAga>|FX!%EEC9rt0tJy7UE%$+5941%k*m}2R3|Xq+sQ?T zy7wG?`tkMiO51_!0cq-7>?G3k!QCmOrJDsoWTa~IOt`tOi zw0!+mETpwSC_3f!xwZnd55_e)<5R0Avg2~u5g^bInb8$~Y$kd6t7vVTcPg9?4kr3E o#!dssF~4Urd+UNNpS*ROpK_KsEA==<=>Px#07*qoM6N<$f}sgjAOHXW literal 0 HcmV?d00001 diff --git a/qss/lightblue/checkbox_checked.png b/qss/lightblue/checkbox_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..524d243aaecc59a6452ebba3455f303b12d3aa73 GIT binary patch literal 636 zcmV-?0)zdDP)l8I|3s+I}F1b1!kGqH6el*_r4d$<+-+50D- zoa8*`Igju+rE+Uc2=+l9lWe~IGU->Jk6!-(5P;Iw?z*V#ChPhiMSV@BUJN=lPl}ax zL9T-L0_mh-<56Lly%=p66I|`wH5`B_IX|7P8&sYqjhT^kleEB=d*Gr;1gOFngj0n} z+q+BOy(*mayN!K-Vx?WcQsS1ng5x-VL8s0(MTce@pabTvY`RX;e1ER|bpuI4+T zg*s{!{VvFpxImLxxTAK7gZs(C;-x-odtS00zhP^W4Lg=W6t0l#!ULDC&#I+svx}vUjlU1N;WV W+didecXk&50000Pt7)xvD@y%a0W zIR%?QDr!|vRm*Xfm4X-ie>i}QE!HyyT#Q=cn&>43oQT?C=#+|D;MFm(PY#-0giVki zUOyf;&;eeiTZ#EXCb{aMmw|7l1>*!B;Pw-bb2(`NEM}7>2Uaj3#|8Wc*Ubw#4xlTp z+hR6Z0-pDK7BIR`xI_skElEXaLC-W~pF;5gH;Vgw45v}Iq-XA|q` zUlS{6z3u}U7|sY3C^?pWb73Y`2gv25m2M>;cpwACxdMA}-8_(ix5}h53&;$4nVdlP2K1FFG}e<*UnAuniiMKI$n!63e&C0tuSyVpl_s~MmhJG zwwW`IBX4&08kdKsjfMm7jd~mYXn?Q+}v!>?HPwk1Q+dw61)SrZ%cAHxZGpV`) y$Y&-#wxx3kcm?c7NUH-6@nrzMC4B`h^Bla-Jo{9AETi0O7!{+&K=D|mz z7G35J2GSaAiyIRjg#PGrG`~AX%CCa+c{!_pU5kJ3wFGYsKZk1`uRofmuz!Evex8Bp zLdN&mi!S-!{_1*h#nMafe!R(0`ug{=Z=}d|rpQ+t-iOS1mcMzfK$mO&%|{F_E05{C zXA3b4I{s&&WRUou8!V$Qgi^Xbo=1&2&Z&-hzKt~{#ExMDlo zR)@lkEbafBUpSkt-{OAQkB8y$>36}UTQ{wB%olyOa+gT2Qc+Y~fA!)-b*4Sc)dyTY UPPS2P1%?=dr>mdKI;Vst02P>%-~a#s literal 0 HcmV?d00001 diff --git a/qss/lightblue/checkbox_parcial_disable.png b/qss/lightblue/checkbox_parcial_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd377903dd668dfa2e2e1f347396cbfc43921d2 GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEoCO|{#S9EWz97u_dHRv%3=E81 zo-U3d5v^~}8R|PHiZnd@KF3?vq&E3$ zT<6>+duQLd_gk{VWAe3vw)KZAx0P47%I`I~&vAiuT8GDk=ZPBr-){B3+1(gtX2I*2 z*RXR&as3`)i#wUu=RdJKYc87CnD%D1U}R9}?^OjSzno><;^nC)64702G_9qNY4b*V zwTLS>*#CcY)Ry1!2_IpiC2}G;-si(ImYvRA!uWF zML_gUA$Cf{i-p_Bn%2Ul_iMJL86w%fqVxfh?1#Wen*W$8!duPyM*!7Be zs+srumU(vADRu-yl6;G85i=* zfvHoSjrG-cX_^emwcsKl^}%PjNn$f+v)uymvH`*Qu-Ry(f+x=hhkhw}-fuvx9DU{G zgN1g^a;W&e+uhhPCs4B)!Ovq8(b<;o#|i*qS5*h!z`0a}900U@KMtD)pedszD1Tm9DFC40OA=_M z_7&-rg}~8tEQo>R$DMeSc4?ljob&e-Emyh_Obd~2j%fWl6(seGv;eq~>)kC<@pcTxZ_ivj5HkYIOf*G_mLG9}<$*Ik?Is=GM;vc@gC;4Q-8 zxZN*SiDOqsJD<`@Ra+UWD~^Y1G_-mQ3}bKJxidGvJ?*+DM^j=L|7W|ibUT9X%|2SxB;zKUB>&9pA<$AI) zUO4k5CvWTdGrt(bcO^)kIGTNFpKtzZh09O-#NG$8TA1yviMnJkflEx6(N^~Cy$LGz ze)qc1Z`-|L+Uw~rSj!j^_L$CJ_vYf2a(0E4>CDUboQyrOB)GZoF~hC?7wKwmV_A1c zN_GjKTPb{C@2ofqP#%eCY@Ky&3|&aiiO24#vV_Z**FU*6rKD zrZbIw5?^Sj*q2YIPsJ(3O8$sqFG%NGK8>eZJnFWs;qFUOsq(K`cQrnKdcUog(ZVxr zS^I&if_Dx4-{<>0UHwhPeR;8L+dBs9=8NI-^*l{?*Ixhpxpeis5F_X5GOQ@y4< zymoBor1;CK75iMb2t5juU|*;naqi5WA7@@!p4`u7#adrBGwF@A!JFA^R?&M-&Uim{ d%imwTuN<~q3SM^cEHG&?c)I$ztaD0e0su)rDTn|7 literal 0 HcmV?d00001 diff --git a/qss/lightblue/menu_checked.png b/qss/lightblue/menu_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..bb52701c9794a4831b572ecc2b39e31f9f3a4600 GIT binary patch literal 554 zcmV+_0@eMAP)Mdad8m*5B$;Y zU0NUN{5*DYEvOGJ9lO*`(9IvMAc#|GwG`T+;OZdsx$98V#y&}N$#eGzlFt%yTyifi z$>n=crc9YKUL$uk@aTN4f|88@x{Q(P(dP1YQolO^jxD|#F{0lBy*EwQ2#ZJS)i?k4 zRh^|J;s8QmruWg*mv1M#XYu|W1*YJlBqBTZh%<2UTxu;-9~#T20D*s6E*wC&Ql>vT z3H`BtCnpXApN!E5(Yena9_nEB{l?25QA_GOII>iq3@~-zvxNHj;p>&}zHv&c znf=C#kMY(-;Nzv*9LN^%AiB7zW%{^Lz33z^5!j0RdlMU^OI!;u9cPDhjk^ULezH2G zjM)PoX5BOi=>rF`uQ=4El8pn90Tq~?;f4C2waOO`Vlz1LbhYoNHoL%}?I2Ap)1d@C zzHqmI0OJd_F&)S|pvP`7E^m&O{qx~kfKUi&nfy3NSqI%Ci{aoue-d}d;yB1Cx7tUx zhXadxusE`P99R~t`H^mLkfWluN4mp7&XPYH=@thC_9W>@_c$oHX=+9K!9g3ly3zSs sMU*@f!JnC_Oqu(VUwqRt6^xAucmMzZ07*qoM6N<$f|LUQX8-^I literal 0 HcmV?d00001 diff --git a/qss/lightblue/radiobutton_checked.png b/qss/lightblue/radiobutton_checked.png new file mode 100644 index 0000000000000000000000000000000000000000..cd6561d2a1540cc34d244ffe6304e0c0f3a23bb2 GIT binary patch literal 1516 zcmV@VAG;_hFG6WS$qfig0YieJ30(@Pi6&yy1c^M_z&tbw` zFp5Xq{z2fMEyDLM%X2Q?vHq8T4X~;qGK&R;z<8DbcRphnY=FeERFd91d!*^Ndjc4E zCGrST6d}f}LIUK9fwM{B-tukx`rG-~j|mvmb$6n#_zhxyX(C{mV!#wcZSm;F55}@} z1PrdyeTGLn42FNQ;IhR%Uca$6rt7B4LJ3$A-ZRz1=10WvjTr`flZY;W`3?Xuk&hU2 z06drnpx^lRmbMVV8bmBFNy2rG(j=VZVEKup(7Z+T)pz?XCTh~XRRD}Fh% zEe%)`-dhIH!rVbj==Yk5*2#d&gmhVWlL6bJu$b$Ex}Hu_`XR+bwX*DyW$lk0(fgeO zE_!{R_piZ$`Ibxg06-vhqo_Q2-l@KwKGbqG5ZZYZjI4|iP@3rT1_5*q`x+6$3g$Xt z@D1;bp)Z`^sza^I|Ge{ejD^@ojIG4j%Iu0JdcCo#hKOxOGNpME?XoNq(+i`|0sw+* z^inX*v%BC z5LrkTFIDwtM0>Teaku2`B-b5Ci7vLoHX+fTs>`y2S*^qOkAHql)Re=_@X&1Gqbe^i+mBep z=SH71S63&Hy)OcoTiMte=sviyOBP_{n7+EYVf$k&Tq~J*E&ved6qrBh>S(^Af&&2K zdeLGcluF(#ZUbatouHJ+1%!aL4uBMJRPm0@=K*YRvdPu(-=bJcoXZAND>9DVjX$F9 z1Dh_$R~yZ)Zj6Kr37(IPUTvHFpNCJx+VpgV$f|=Di>S;QgF>?7_;@w)!Zv>lm>!|E zXSQV(|@4mV;Q8)&L6x~PS(G6c`HrTcxEtz;H;n4!Q z=_kMq5}N~|ofQvgQ{Gnn$Es8j-ZRx>nOhlnN^ZfIHNRn-LFsR2oqVhRr(|JYsthi*~wjbvk(YHYQeN^tQ#x_E)n4z13%?B zo&&~n0LsT0Z?a3Q=swUSE&7gkGlB4~`LL}0`ChXXDkk)^5NlL$fWv790J_?ndKk0} zgx*P~Bfh956U&_7fIRO9gSze>>h;!Jpt^}>lfi~yio`pbkLP1w&<*R|58hhhaL1yE z#DfIUk!H(;i!L))KVb}eM$1z=3K0TT~0({%wp#ez?sY2P%V`uV@ctA79ib2vt4 SDaC;R0000=tURloyR5l-*_8 z0*OF15|W}uF%qN+0a9a=hKTwFgQAIsNPIy_T8QZvR8lBdcXkV1qmU3wH=(jK+tSje z-EBLanQdox=DEiYGo1`G_nDn;m&6bLzs)`Oob$Wq-sipy{Etf(>Nq~GttVS%K5L9! zugK>?*8tt+uqQ$HtH?i9G!c)5-xU%2p#!R_BqnFp7`2b0Yy{exbj_l=Lqqnb@mTMn z4+U^ImAl5X`i!F20p?@<%+EyS0l-@zSZ&&Kpg$h! z4?j8I)HeitJ$ZV0Q9~~RYZeErF8MC&`QM1gdeaU1xHX*0tTdKgK>s{>e9&VcZy{s= zL?x=|wLp~lm%~`Gz{U-$BBz=LeC?O^N5UkJ5746Jp8u%J72Hh*<|MfdJz;Q&O$4)sU=;QOJ^3G8!^g1e{N zGk4c>S7|tvyT(|%2UuDMr}~@dT;!3U>1{mKcz!Y90OG4J%h`~BUqB^ShOGT&bwdR(F*&maVWYz->G}4Divd@GjP<6) z=oa9N!+ihVLo=Va@FP?qwf0tAQwvWFT-B3mlyK~bcI5M!K`Cu37?IS{+3=f<1~m|i zyfK=}{t;zMjj2xyb^zE3Y^xbtIrETNmSL0Ok}ps&E}?!$ZiqYE+X3% z_D!{APmE4vzNM50eB=xNI&7`c9#(^R&xW@QSVv)FN7}0E%#m`Z9O>A^+2^po3S2r+_~<$!AsM zxp+*R%cZ=7)D|MAs>iDU%>?zwPL~z^Vo+A~{Ko@tCe;$2kLJVA1;!D*g}S9CX|E-8 zxB}SH>c0=XU+ZjCzVha=W3Ek@c&s;FDDY+A<$&C!>sda(Iq1kMpSd^Jk4fM5Cp)Jq zfHz*zeOgq8>qZARWY2f43jkols>rFK{_yP>20?cMhkzvTJ8R7KL;aCW@zs~*g8XgK zzXRy2YZu)Uk4v!xTh{Qq*&!pmW+z{(oaabNAg z`YU^qP&N0FCD}K?jyYnj^;_Dv1f8b~(fGKwhSWakfCJ^_bt}3nx2Fo=7nUtMry{=u zW@}uGs&3nx%6x4x;8azn+jHAcT=Ax@XMR=vocQ3^^Imwj!k-+DZK~$CqZ8ThUP>iP zkEh&Ys``Vv+@&5*$74(OSGUw9o9D@C6}A_p`0y?LA31w5aDPvo`IKk9r-9pCa6wN` zXElZ=GHVUI2=oTzORMk%`TSFjzEXh1!OT)Z`Xf>E?SOkDK+?1JR@covaJoj4XYWDH z?;8XK@KFwk@Heaa?+*kvay`nOl(vyZXZ{%rcdlCzac=qz*VAb7?3Yw!2f>xRR2?-& z?;7mu{#Q_khX0!k^>@EyRBi&s7n@9ApYMlmXara8H^0V?Xh&f#w^fy`^Gta&N{jHl z!M^ab&HU?nQCmjhU}mX!@)+p7)L)V2)07IoXy(IOFyIBLsu@XTZ#1f3S7ZPr=BVsh rkfaEI6_FPPVoMGz^ndFA>r(Vzu8V{&QEuFw00000NkvXXu0mjf4Xif@ literal 0 HcmV?d00001 diff --git a/qss/lightblue/radiobutton_unchecked.png b/qss/lightblue/radiobutton_unchecked.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0b4fc9e3d974e8c133507dc8cc51a8c98cc789 GIT binary patch literal 1298 zcmV+t1?~EYP)4txAOlS+MiYUE!3eDyK+^?; zd7U@!bHNm*@7*^uZD))NztzjR=brnU^X8s+?*abfl8H_@1L^Lz-~Khgg=%A-R}v5a zP9N&H48c*~dO&?v8Dn_O|x?em(1n6`M$yVHO?prZ4TZf2m9g?a3ad+EVPX&#zW_N z24hVvvjw{Dfta%%f9|ir@4vn{SvW!x0mDbqU2l9-Xz(3Sjcn$9GW?#9IQ@UCzdu zFkqn;C3ZYUhL%vc0K{}3u<#ZsR~2}QiYL!>Zk<&9{9hB*KPsZqJCh#AfdBvi07*qo IM6N<$f{No|vH$=8 literal 0 HcmV?d00001 diff --git a/qss/lightblue/radiobutton_unchecked_disable.png b/qss/lightblue/radiobutton_unchecked_disable.png new file mode 100644 index 0000000000000000000000000000000000000000..57c0eb3d1afd574191d8ebe5020d6ba1d6357cb2 GIT binary patch literal 1385 zcmV-v1(y1WP)M6cZz`1a#{_U_>^c>pB=~ z@BRCsTP=N_c4KQ3KluOFd(J)Q*K_Z4?{gmDKQ0;T#I`n;o-66UT`9AWkb3~u0q_ll zJqPeGMSi9*913{;6cJN&K#~&f?5|TaFM(JAplp;=`#^4|%e)Z^_)ioCusIT+Z5e({ z@Gb!AT9RbQ0NA6IUb8UhKUomK)>ACMG8lVPD9-_~#t4?3_7cF?8mc^7Mq2v3fCoA* zOi$9a6F^;Iz--BP8B0GN3izXWe4N!BiPb2BT>z>^$fE&v0rDFJF#r%sCBZuZRAS`q z(3(tO#iE(s^P>j*@sDUwE44QdoPqE#jC#Ftu;T05S{ZbVb294JN$X*NFM;z^qWUZ}({706;`cLzVXvtzCBraM1Z*U{#Mhw#v?(q2@?@ zwlby(z+@X7`9bBN_k~=`Ia-C=&Q+*V_cjVvI+%|qm1Fb063F9Sy3MRwX17FvEYX8+y&X=0v^$w6S~uYb8qoo5K42l zBY`=6mn#~J1!$6b8GxW|T-X!}$-jFL05tGbs@u9sWkPH?aI8Cf6OUU>k@yV&*28|1 zoHd3!hkvAv-idvO0MqIaYo0D~uN%I+3!%0)mbz%R0I0DUiSHV#ed)KSG~m5cr(UAS zI{>a^O;IE_wnSo&76Oi>^tj_2K{&AqbI-Y4`#O3b z0o6x&f&zdBaa07~8}j$70xP*2#B!vLk$iXlMFT8vtoAy#qj~q!{*K-UNZF3ul^m~5 zE5()bgT7yKIpqCr(op65R#EN;&{k+N0S;>Inv)N1$Zuq|o?>}oFusArh7p#0G>VE~ z{rsS3+i1SJUel2gJ|3GamTUsJ8unMDk}OABcvXXfJ0?_ r0qGFIHzKm5J}~j #include #include -#include #include "../public_def.h" struct SKeyValue { @@ -43,4 +42,4 @@ private: std::vector keys_{}; }; -#endif \ No newline at end of file +#endif