1 #ifndef _KVI_FILEDIALOG_H_
2 #define _KVI_FILEDIALOG_H_
3 //=============================================================================
4 //
5 //   File : KviFileDialog.h
6 //   Creation date : Mon Nov 20 2000 03:52:12 CEST by Szymon Stefanek
7 //
8 //   This file is part of the KVIrc IRC client distribution
9 //   Copyright (C) 2000-2010 Szymon Stefanek (pragma at kvirc dot net)
10 //
11 //   This program is FREE software. You can redistribute it and/or
12 //   modify it under the terms of the GNU General Public License
13 //   as published by the Free Software Foundation; either version 2
14 //   of the License, or (at your option) any later version.
15 //
16 //   This program is distributed in the HOPE that it will be USEFUL,
17 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
18 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19 //   See the GNU General Public License for more details.
20 //
21 //   You should have received a copy of the GNU General Public License
22 //   along with this program. If not, write to the Free Software Foundation,
23 //   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24 //
25 //=============================================================================
26 
27 /**
28 * \file KviFileDialog.h
29 * \author Szymon Stefanek
30 * \brief File dialog helpers
31 */
32 
33 #ifdef Unsorted
34 #undef Unsorted
35 #endif
36 
37 #include "kvi_settings.h"
38 #include "KviCString.h"
39 #include "KviTalFileDialog.h"
40 
41 #include <QStringList>
42 
43 /**
44 * \class KviFileDialog
45 * \brief File dialog class
46 */
47 class KVIRC_API KviFileDialog : public KviTalFileDialog
48 {
49 	Q_OBJECT
50 public:
51 	/**
52 	* \brief Constructs the file dialog object
53 	* \param szDirName The directory where to use the dialog
54 	* \param szFilter The filter to use
55 	* \param pParent The parent widget
56 	* \param name The name of the dialog
57 	* \param bModal Whether to have a modal behaviour
58 	* \return KviFileDialog
59 	*/
60 	KviFileDialog(const QString & szDirName, const QString & szFilter = QString(), QWidget * pParent = nullptr, const char * name = nullptr, bool bModal = false);
61 
62 	/**
63 	* \brief Destroys the file dialog object
64 	*/
65 	~KviFileDialog();
66 
67 public:
68 	/**
69 	* \param szBuffer The buffer where to store the data
70 	* \param szCaption The caption of the dialog
71 	* \param szInitial The initial directory
72 	* \param szFilter The filter to use
73 	* \param bShowHidden Whether to show hidden files
74 	* \param bShowNative Whether to show native dialogs
75 	* \param pParent The parent widget
76 	* \return bool
77 	*/
78 	static bool askForOpenFileName(QString & szBuffer, const QString & szCaption, const QString & szInitial = QString(), const QString & szFilter = QString(), bool bShowHidden = false, bool bShowNative = true, QWidget * pParent = nullptr);
79 
80 	/**
81 	* \param szBuffer The buffer where to store the data
82 	* \param szCaption The caption of the dialog
83 	* \param szInitial The initial directory
84 	* \param szFilter The filter to use
85 	* \param bShowHidden Whether to show hidden files
86 	* \param bConfirmOverwrite Whether to avoid the check for an already existing file being overwritten
87 	* \param bShowNative Whether to show native dialogs
88 	* \param pParent The parent widget
89 	* \return bool
90 	*/
91 	static bool askForSaveFileName(QString & szBuffer, const QString & szCaption, const QString & szInitial = QString(), const QString & szFilter = QString(), bool bShowHidden = false, bool bConfirmOverwrite = false, bool bShowNative = true, QWidget * pParent = nullptr);
92 
93 	/**
94 	* \param szBuffer The buffer where to store the data
95 	* \param szCaption The caption of the dialog
96 	* \param szInitial The initial directory
97 	* \param szFilter The filter to use
98 	* \param bShowHidden Whether to show hidden files
99 	* \param bShowNative Whether to show native dialogs
100 	* \param pParent The parent widget
101 	* \return bool
102 	*/
103 	static bool askForDirectoryName(QString & szBuffer, const QString & szCaption, const QString & szInitial, const QString & szFilter = QString(), bool bShowHidden = false, bool bShowNative = true, QWidget * pParent = nullptr);
104 
105 	/**
106 	* \param szBuffer The buffer where to store the data
107 	* \param szCaption The caption of the dialog
108 	* \param szInitial The initial directory
109 	* \param szFilter The filter to use
110 	* \param bShowHidden Whether to show hidden files
111 	* \param bShowNative Whether to show native dialogs
112 	* \param pParent The parent widget
113 	* \return bool
114 	*/
115 	static bool askForOpenFileNames(QStringList & szBuffer, const QString & szCaption, const QString & szInitial, const QString & szFilter = QString(), bool bShowHidden = false, bool bShowNative = true, QWidget * pParent = nullptr);
116 };
117 
118 #endif //_KVI_FILEDIALOG_H_
119