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