diff options
Diffstat (limited to 'src-qt5')
-rw-r--r-- | src-qt5/desktop-utils/lumina-xdg-entry/lumina-xdg-entry.pro | 22 | ||||
-rw-r--r-- | src-qt5/desktop-utils/lumina-xdg-entry/main.cpp | 16 | ||||
-rw-r--r-- | src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.cpp | 138 | ||||
-rw-r--r-- | src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.h | 40 | ||||
-rw-r--r-- | src-qt5/desktop-utils/lumina-xdg-entry/mainwindow.ui | 344 |
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> |