1 //=========================================== 2 // Lumina-DE source code 3 // Copyright (c) 2013, Ken Moore 4 // Available under the 3-clause BSD license 5 // See the LICENSE file for full details 6 //=========================================== 7 #ifndef _LUMINA_OPEN_FILE_DIALOG_H 8 #define _LUMINA_OPEN_FILE_DIALOG_H 9 10 #include <QSettings> 11 #include <QDialog> 12 #include <QString> 13 #include <QStringList> 14 #include <QIcon> 15 #include <QFileDialog> 16 #include <QDir> 17 #include <QFile> 18 #include <QFileInfo> 19 #include <QSettings> 20 #include <QTextStream> 21 #include <QTreeWidgetItem> 22 #include <QAction> 23 24 #include <LuminaXDG.h> //From libLuminaUtils 25 #include <LUtils.h> 26 27 namespace Ui{ 28 class LFileDialog; 29 }; 30 31 class LFileDialog : public QDialog{ 32 Q_OBJECT 33 public: 34 LFileDialog(QWidget *parent = 0); 35 ~LFileDialog(); 36 37 //inputs 38 void setFileInfo(QString filename, QString extension, bool isFile = true); 39 40 //outputs 41 bool appSelected, setDefault; 42 QString appExec; 43 QString appPath; 44 QString appFile; 45 46 //static functions 47 static QString getDefaultApp(QString extension); 48 static void setDefaultApp(QString extension, QString appFile); 49 50 private: 51 Ui::LFileDialog *ui; 52 QString fileEXT, filePath; 53 QSettings *settings; 54 QStringList PREFAPPS; 55 56 //DB set/get 57 QStringList getPreferredApplications(); 58 void setPreferredApplication(QString); 59 60 QString translateCat(QString); 61 62 private slots: 63 void updateUI(); 64 void generateAppList(bool shownetwork = false); 65 //Internal UI slots 66 void radioChanged(); 67 //void on_group_binary_toggled(bool checked); 68 void on_tool_ok_clicked(); 69 void on_tool_cancel_clicked(); 70 void on_tool_findBin_clicked(); 71 void on_line_bin_textChanged(); 72 73 }; 74 75 #endif 76