aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core-utils/lumina-config/ScriptDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/core-utils/lumina-config/ScriptDialog.cpp')
-rw-r--r--src-qt5/core-utils/lumina-config/ScriptDialog.cpp90
1 files changed, 90 insertions, 0 deletions
diff --git a/src-qt5/core-utils/lumina-config/ScriptDialog.cpp b/src-qt5/core-utils/lumina-config/ScriptDialog.cpp
new file mode 100644
index 00000000..2980a3e9
--- /dev/null
+++ b/src-qt5/core-utils/lumina-config/ScriptDialog.cpp
@@ -0,0 +1,90 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2014, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#include "ScriptDialog.h"
+#include "ui_ScriptDialog.h"
+
+//===========
+// PUBLIC
+//===========
+ScriptDialog::ScriptDialog(QWidget *parent) : QDialog(parent), ui(new Ui::ScriptDialog){
+ ui->setupUi(this);
+ ok = false;
+ connect(ui->line_name, SIGNAL(textEdited(QString)), this, SLOT(checkItems()) );
+ connect(ui->line_exec, SIGNAL(textEdited(QString)), this, SLOT(checkItems()) );
+ connect(ui->line_icon, SIGNAL(textEdited(QString)), this, SLOT(checkItems()) );
+ checkItems(true);
+}
+
+ScriptDialog::~ScriptDialog(){
+
+}
+
+//Main interaction functions
+bool ScriptDialog::isValid(){
+ return ok;
+}
+
+QString ScriptDialog::icon(){
+ return ui->line_icon->text();
+}
+
+QString ScriptDialog::name(){
+ return ui->line_name->text();
+}
+
+QString ScriptDialog::command(){
+ return ui->line_exec->text();
+}
+
+//==============
+// PRIVATE SLOTS
+//==============
+void ScriptDialog::on_pushApply_clicked(){
+ ok = true;
+ this->close();
+}
+
+void ScriptDialog::on_pushCancel_clicked(){
+ ok = false;
+ this->close();
+}
+
+void ScriptDialog::on_tool_getexec_clicked(){
+ QString file = QFileDialog::getOpenFileName( this, tr("Select a menu script"), QDir::homePath() );
+ if(file.isEmpty()){ return; } //cancelled
+ ui->line_exec->setText(file);
+ checkItems();
+}
+
+void ScriptDialog::on_tool_geticon_clicked(){
+ QString file = QFileDialog::getOpenFileName( this, tr("Select an icon file"), QDir::homePath() );
+ if(file.isEmpty()){ return; } //cancelled
+ ui->line_icon->setText(file);
+ checkItems();
+}
+
+void ScriptDialog::checkItems(bool firstrun){
+ if(firstrun){
+ ui->line_name->setFocus();
+ ui->label_sample->setPixmap( LXDG::findIcon("text-x-script","").pixmap(32,32) );
+ ui->tool_geticon->setIcon( LXDG::findIcon("system-search","") );
+ ui->tool_getexec->setIcon( LXDG::findIcon("system-search","") );
+ }
+ //Update the icon sample if needed
+ if(icon()!=ui->label_sample->whatsThis()){
+ ui->label_sample->setPixmap( LXDG::findIcon(icon(),"text-x-script").pixmap(32,32) );
+ ui->label_sample->setWhatsThis(icon());
+ }
+ bool good = true;
+ if(name().isEmpty()){ good = false; ui->line_name->setStyleSheet("color: red;"); }
+ else{ ui->line_name->setStyleSheet(""); }
+ QString cmd = command().section(" ",0,0).simplified();
+ if( cmd.isEmpty() || !LUtils::isValidBinary(cmd) ){ good = false; ui->line_exec->setStyleSheet("color: red;"); }
+ else{ ui->line_exec->setStyleSheet(""); }
+
+ ui->pushApply->setEnabled(good);
+}
bgstack15