aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/desktop-utils')
-rw-r--r--src-qt5/desktop-utils/lumina-xdg-entry/lumina-xdg-entry.pro22
-rw-r--r--src-qt5/desktop-utils/lumina-xdg-entry/main.cpp16
-rw-r--r--src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp138
-rw-r--r--src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.h40
-rw-r--r--src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.ui344
5 files changed, 560 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-xdg-entry/lumina-xdg-entry.pro b/src-qt5/desktop-utils/lumina-xdg-entry/lumina-xdg-entry.pro
new file mode 100644
index 00000000..c146a687
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-xdg-entry/lumina-xdg-entry.pro
@@ -0,0 +1,22 @@
+#===========================================
+# Copyright (c) 2017, q5sys (JT)
+# Available under the MIT license
+# See the LICENSE file for full details
+#===========================================
+
+
+QT += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+TARGET = lumina-xdg-entry
+TEMPLATE = app
+
+DEFINES += QT_DEPRECATED_WARNINGS
+
+SOURCES += main.cpp\
+ mainwindow.cpp
+
+HEADERS += mainwindow.h
+
+FORMS += mainwindow.ui
diff --git a/src-qt5/desktop-utils/lumina-xdg-entry/main.cpp b/src-qt5/desktop-utils/lumina-xdg-entry/main.cpp
new file mode 100644
index 00000000..dc117447
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-xdg-entry/main.cpp
@@ -0,0 +1,16 @@
+//===========================================
+// Copyright (c) 2017, q5sys (JT)
+// Available under the MIT license
+// See the LICENSE file for full details
+//===========================================
+#include "mainwindow.h"
+#include <QApplication>
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ MainWindow w;
+ w.show();
+
+ return a.exec();
+}
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..ce9d63d3
--- /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();
+}
diff --git a/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.h b/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.h
new file mode 100644
index 00000000..1aad8325
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.h
@@ -0,0 +1,40 @@
+//===========================================
+// Copyright (c) 2017, q5sys (JT)
+// Available under the MIT license
+// See the LICENSE file for full details
+//===========================================
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+
+namespace Ui {
+class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ explicit MainWindow(QWidget *parent = 0);
+ ~MainWindow();
+
+ QString name, genericname, comment, icon, executable, terminal, keywords, catList, categories, iconpath, execpath;
+ QString namefield, genericnamefield, commentfield, iconfield, terminalfield,execfield, categoriesfield, keywordfield;
+
+public slots:
+ void setIcon();
+ void setExec();
+ void setCategories();
+ void setOtherValues();
+ void setDesktopFields();
+ void save();
+
+
+private:
+ Ui::MainWindow *ui;
+};
+
+#endif // MAINWINDOW_H
diff --git a/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.ui b/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.ui
new file mode 100644
index 00000000..928ce30a
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.ui
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>564</width>
+ <height>492</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout_6">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="label_name">
+ <property name="text">
+ <string>Name</string>
+ </property>
+ <property name="buddy">
+ <cstring>lineEdit_name</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit_name"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <widget class="QLabel" name="label_genericname">
+ <property name="text">
+ <string>Generic Name</string>
+ </property>
+ <property name="buddy">
+ <cstring>lineEdit_genericname</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit_genericname"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="QLabel" name="label_comment">
+ <property name="toolTip">
+ <string/>
+ </property>
+ <property name="text">
+ <string>Comment</string>
+ </property>
+ <property name="buddy">
+ <cstring>lineEdit_comment</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit_comment"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_7">
+ <item>
+ <widget class="QLabel" name="label_keywords">
+ <property name="toolTip">
+ <string>Values seperated by semicolon (no spaces) </string>
+ </property>
+ <property name="toolTipDuration">
+ <number>3</number>
+ </property>
+ <property name="text">
+ <string>Keywords</string>
+ </property>
+ <property name="buddy">
+ <cstring>lineEdit_keywords</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit_keywords">
+ <property name="placeholderText">
+ <string>Keywords separated by semicolons with no spaces</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="QLabel" name="label_executable">
+ <property name="text">
+ <string>Executable</string>
+ </property>
+ <property name="buddy">
+ <cstring>lineEdit_executable</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit_executable"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButton_executable">
+ <property name="text">
+ <string>Select</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_icon">
+ <property name="text">
+ <string>Icon</string>
+ </property>
+ <property name="buddy">
+ <cstring>lineEdit_icon</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="lineEdit_icon"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButton_icon">
+ <property name="text">
+ <string>Select</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label__categories">
+ <property name="text">
+ <string>Categories</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="checkBox_audio">
+ <property name="text">
+ <string>Audio</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_video">
+ <property name="text">
+ <string>Video</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_development">
+ <property name="text">
+ <string>Development</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QCheckBox" name="checkBox_education">
+ <property name="text">
+ <string>Education</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_game">
+ <property name="text">
+ <string>Game</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_graphics">
+ <property name="text">
+ <string>Graphics</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <widget class="QCheckBox" name="checkBox_network">
+ <property name="text">
+ <string>Network</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_office">
+ <property name="text">
+ <string>Office</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_science">
+ <property name="text">
+ <string>Science</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_5">
+ <item>
+ <widget class="QCheckBox" name="checkBox_settings">
+ <property name="text">
+ <string>Settings</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_system">
+ <property name="text">
+ <string>System</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBox_utility">
+ <property name="text">
+ <string>Utility</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="Line" name="line_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_8">
+ <item>
+ <widget class="QCheckBox" name="checkBox_terminal">
+ <property name="layoutDirection">
+ <enum>Qt::RightToLeft</enum>
+ </property>
+ <property name="text">
+ <string>Run in Terminal</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pushButton_save">
+ <property name="text">
+ <string>Save</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>564</width>
+ <height>27</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuMenu">
+ <property name="title">
+ <string>Menu</string>
+ </property>
+ <addaction name="actionSave"/>
+ <addaction name="actionClose"/>
+ </widget>
+ <addaction name="menuMenu"/>
+ </widget>
+ <action name="actionClose">
+ <property name="text">
+ <string>Close</string>
+ </property>
+ </action>
+ <action name="actionSave">
+ <property name="text">
+ <string>Save</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>
bgstack15