aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp')
-rw-r--r--src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp138
1 files changed, 138 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp b/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp
new file mode 100644
index 00000000..9f704d12
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp
@@ -0,0 +1,138 @@
+//===========================================
+// Copyright (c) 2017, q5sys (JT)
+// Available under the MIT license
+// See the LICENSE file for full details
+//===========================================
+
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+#include "QDir"
+#include "QFile"
+#include "QTextStream"
+#include "QImageReader"
+#include "QFileDialog"
+#include "QMessageBox"
+
+
+MainWindow::MainWindow(QWidget *parent) :
+ QMainWindow(parent),
+ ui(new Ui::MainWindow)
+{
+ ui->setupUi(this);
+ connect(ui->pushButton_executable, SIGNAL(clicked()), this, SLOT(setExec()) );
+ connect(ui->pushButton_icon, SIGNAL(clicked()), this, SLOT(setIcon()) );
+ connect(ui->pushButton_save, SIGNAL(clicked()), this, SLOT(save()) );
+ connect(ui->actionSave, SIGNAL(triggered()), this, SLOT(save()) );
+ connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(close()) );
+
+}
+
+MainWindow::~MainWindow()
+{
+ delete ui;
+}
+
+void MainWindow::setIcon(){
+ //Prompt for a new image file
+ QStringList imgformats;
+ QList<QByteArray> fmts = QImageReader::supportedImageFormats();
+ for(int i=0; i<fmts.length(); i++){
+ imgformats << "*."+QString(fmts[i]);
+ }
+ QString iconpath = QFileDialog::getOpenFileName(this, tr("Select an image"), QDir::homePath(), \
+ tr("Images")+" ("+imgformats.join(" ")+")");
+ ui->lineEdit_icon->setText(iconpath);
+ icon = ui->lineEdit_icon->text();
+ }
+
+
+void MainWindow::setExec(){
+ //Prompt for a new executable file
+ QString execpath = QFileDialog::getOpenFileName(this, tr("Select File"), QDir::homePath(), tr("All Files (*)") );
+ ui->lineEdit_executable->setText(execpath);
+ executable = ui->lineEdit_executable->text();
+ }
+
+void MainWindow::setCategories(){
+if(ui->checkBox_audio->isChecked()){
+catList = catList + "Audio;";}
+if(ui->checkBox_video->isChecked()){
+catList = catList + "Video;";}
+if(ui->checkBox_development->isChecked()){
+catList = catList + "Development;";}
+if(ui->checkBox_education->isChecked()){
+catList = catList + "Education;";}
+if(ui->checkBox_game->isChecked()){
+catList = catList + "Game;";}
+if(ui->checkBox_graphics->isChecked()){
+catList = catList + "Graphics;";}
+if(ui->checkBox_network->isChecked()){
+catList = catList + "Network;";}
+if(ui->checkBox_office->isChecked()){
+catList = catList + "Office;";}
+if(ui->checkBox_science->isChecked()){
+catList = catList + "Science;";}
+if(ui->checkBox_settings->isChecked()){
+catList = catList + "Settings;";}
+if(ui->checkBox_system->isChecked()){
+catList = catList + "System;";}
+if(ui->checkBox_utility->isChecked()){
+catList = catList + "Utility;";}
+categories = catList;
+}
+
+void MainWindow::setOtherValues(){
+name = ui->lineEdit_name->text();
+genericname = ui->lineEdit_genericname->text();
+keywords = ui->lineEdit_keywords->text();
+comment = ui->lineEdit_comment->text();
+if(ui->checkBox_terminal->isChecked()){
+terminal = "true";} else{terminal = "false";};
+}
+
+void MainWindow::setDesktopFields(){
+setCategories();
+setOtherValues();
+namefield = "Name=" + name;
+genericnamefield = "GenericName=" + genericname;
+commentfield = "Comment=" + comment;
+iconfield = "Icon=" + icon;
+terminalfield = "Terminal=" + terminal;
+execfield = "Exec=" + executable;
+categoriesfield = "Categories=" + categories;
+keywordfield = "Keywords=" + keywords;
+}
+
+void MainWindow::save(){
+setDesktopFields();
+QString path = QDir::homePath();
+QString filename;
+filename = path + "/" + name + ".desktop";
+
+QFile file(filename);
+file.open(QIODevice::WriteOnly | QIODevice::Text);
+QTextStream stream(&file);
+stream << "{Desktop Entry]" << endl;
+stream << "Type=Application" << endl;
+stream << "Version=1.0" << endl;
+stream << namefield << endl;
+stream << genericnamefield << endl;
+stream << commentfield << endl;
+stream << iconfield << endl;
+stream << terminalfield << endl;
+stream << execfield << endl;
+stream << categoriesfield << endl;
+stream << keywordfield << endl;
+if(file.isOpen()){
+ QMessageBox *messageBox = new QMessageBox;
+ messageBox->setText(tr("File Saved"));
+ QPushButton *pushButtonOk = messageBox->addButton(tr("Ok"), QMessageBox::YesRole);
+ messageBox->QDialog::setWindowTitle(tr("Successful"));
+ messageBox->show();}
+else{ QMessageBox *messageBox = new QMessageBox;
+ messageBox->setText(tr("File Not Saved"));
+ QPushButton *pushButtonOk = messageBox->addButton(tr("Ok"), QMessageBox::YesRole);
+ messageBox->QDialog::setWindowTitle(tr("Unsuccessful"));
+messageBox->show();}
+file.close();
+}
bgstack15