qfiledialog.sip 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. // qfiledialog.sip generated by MetaSIP
  2. //
  3. // This file is part of the QtWidgets Python extension module.
  4. //
  5. // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
  6. //
  7. // This file is part of PyQt6.
  8. //
  9. // This file may be used under the terms of the GNU General Public License
  10. // version 3.0 as published by the Free Software Foundation and appearing in
  11. // the file LICENSE included in the packaging of this file. Please review the
  12. // following information to ensure the GNU General Public License version 3.0
  13. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  14. //
  15. // If you do not wish to use this file under the terms of the GPL version 3.0
  16. // then you may purchase a commercial license. For more information contact
  17. // info@riverbankcomputing.com.
  18. //
  19. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  20. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  21. class QFileDialog : public QDialog
  22. {
  23. %TypeHeaderCode
  24. #include <qfiledialog.h>
  25. %End
  26. public:
  27. enum ViewMode
  28. {
  29. Detail,
  30. List,
  31. };
  32. enum FileMode
  33. {
  34. AnyFile,
  35. ExistingFile,
  36. Directory,
  37. ExistingFiles,
  38. };
  39. enum AcceptMode
  40. {
  41. AcceptOpen,
  42. AcceptSave,
  43. };
  44. enum DialogLabel
  45. {
  46. LookIn,
  47. FileName,
  48. FileType,
  49. Accept,
  50. Reject,
  51. };
  52. enum Option /BaseType=Flag/
  53. {
  54. ShowDirsOnly,
  55. DontResolveSymlinks,
  56. DontConfirmOverwrite,
  57. DontUseNativeDialog,
  58. ReadOnly,
  59. HideNameFilterDetails,
  60. DontUseCustomDirectoryIcons,
  61. };
  62. typedef QFlags<QFileDialog::Option> Options;
  63. QFileDialog(QWidget *parent /TransferThis/, Qt::WindowFlags f);
  64. QFileDialog(QWidget *parent /TransferThis/ = 0, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString());
  65. virtual ~QFileDialog();
  66. void setDirectory(const QString &directory);
  67. void setDirectory(const QDir &adirectory);
  68. QDir directory() const;
  69. void selectFile(const QString &filename);
  70. QStringList selectedFiles() const;
  71. void setViewMode(QFileDialog::ViewMode mode);
  72. QFileDialog::ViewMode viewMode() const;
  73. void setFileMode(QFileDialog::FileMode mode);
  74. QFileDialog::FileMode fileMode() const;
  75. void setAcceptMode(QFileDialog::AcceptMode mode);
  76. QFileDialog::AcceptMode acceptMode() const;
  77. void setDefaultSuffix(const QString &suffix);
  78. QString defaultSuffix() const;
  79. void setHistory(const QStringList &paths);
  80. QStringList history() const;
  81. void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/);
  82. QAbstractItemDelegate *itemDelegate() const;
  83. void setIconProvider(QAbstractFileIconProvider *provider /KeepReference/);
  84. QAbstractFileIconProvider *iconProvider() const;
  85. void setLabelText(QFileDialog::DialogLabel label, const QString &text);
  86. QString labelText(QFileDialog::DialogLabel label) const;
  87. signals:
  88. void currentChanged(const QString &path);
  89. void directoryEntered(const QString &directory);
  90. void filesSelected(const QStringList &files);
  91. void filterSelected(const QString &filter);
  92. void fileSelected(const QString &file);
  93. public:
  94. static QString getExistingDirectory(QWidget *parent = 0, const QString &caption = QString(), const QString &directory = QString(), QFileDialog::Options options = QFileDialog::ShowDirsOnly) /ReleaseGIL/;
  95. static QUrl getExistingDirectoryUrl(QWidget *parent = 0, const QString &caption = QString(), const QUrl &directory = QUrl(), QFileDialog::Options options = QFileDialog::ShowDirsOnly, const QStringList &supportedSchemes = QStringList()) /ReleaseGIL/;
  96. static SIP_PYTUPLE getOpenFileName(QWidget *parent = 0, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString(), const QString &initialFilter = QString(), Options options = QFileDialog::Options()) /TypeHint="Tuple[QString, QString]", ReleaseGIL/;
  97. %MethodCode
  98. QString *name;
  99. QString *filter = new QString(*a4);
  100. Py_BEGIN_ALLOW_THREADS
  101. name = new QString(QFileDialog::getOpenFileName(a0, *a1, *a2, *a3, filter, *a5));
  102. Py_END_ALLOW_THREADS
  103. PyObject *name_obj = sipConvertFromNewType(name, sipType_QString, NULL);
  104. PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL);
  105. if (name_obj && filter_obj)
  106. sipRes = PyTuple_Pack(2, name_obj, filter_obj);
  107. Py_XDECREF(name_obj);
  108. Py_XDECREF(filter_obj);
  109. %End
  110. static SIP_PYTUPLE getOpenFileNames(QWidget *parent = 0, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString(), const QString &initialFilter = QString(), Options options = QFileDialog::Options()) /TypeHint="Tuple[QStringList, QString]", ReleaseGIL/;
  111. %MethodCode
  112. QStringList *names;
  113. QString *filter = new QString(*a4);
  114. Py_BEGIN_ALLOW_THREADS
  115. names = new QStringList(QFileDialog::getOpenFileNames(a0, *a1, *a2, *a3, filter, *a5));
  116. Py_END_ALLOW_THREADS
  117. PyObject *names_obj = sipConvertFromNewType(names, sipType_QStringList, NULL);
  118. PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL);
  119. if (names_obj && filter_obj)
  120. sipRes = PyTuple_Pack(2, names_obj, filter_obj);
  121. Py_XDECREF(names_obj);
  122. Py_XDECREF(filter_obj);
  123. %End
  124. static SIP_PYTUPLE getSaveFileName(QWidget *parent = 0, const QString &caption = QString(), const QString &directory = QString(), const QString &filter = QString(), const QString &initialFilter = QString(), Options options = QFileDialog::Options()) /TypeHint="Tuple[QString, QString]", ReleaseGIL/;
  125. %MethodCode
  126. QString *name;
  127. QString *filter = new QString(*a4);
  128. Py_BEGIN_ALLOW_THREADS
  129. name = new QString(QFileDialog::getSaveFileName(a0, *a1, *a2, *a3, filter, *a5));
  130. Py_END_ALLOW_THREADS
  131. PyObject *name_obj = sipConvertFromNewType(name, sipType_QString, NULL);
  132. PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL);
  133. if (name_obj && filter_obj)
  134. sipRes = PyTuple_Pack(2, name_obj, filter_obj);
  135. Py_XDECREF(name_obj);
  136. Py_XDECREF(filter_obj);
  137. %End
  138. protected:
  139. virtual void done(int result);
  140. virtual void accept();
  141. virtual void changeEvent(QEvent *e);
  142. public:
  143. void setSidebarUrls(const QList<QUrl> &urls);
  144. QList<QUrl> sidebarUrls() const;
  145. QByteArray saveState() const;
  146. bool restoreState(const QByteArray &state);
  147. void setProxyModel(QAbstractProxyModel *model /Transfer/);
  148. QAbstractProxyModel *proxyModel() const;
  149. void setNameFilter(const QString &filter);
  150. void setNameFilters(const QStringList &filters);
  151. QStringList nameFilters() const;
  152. void selectNameFilter(const QString &filter);
  153. QString selectedNameFilter() const;
  154. QDir::Filters filter() const;
  155. void setFilter(QDir::Filters filters);
  156. void setOption(QFileDialog::Option option, bool on = true);
  157. bool testOption(QFileDialog::Option option) const;
  158. void setOptions(QFileDialog::Options options);
  159. QFileDialog::Options options() const;
  160. virtual void open();
  161. void open(SIP_PYOBJECT slot /TypeHint="PYQT_SLOT"/);
  162. %MethodCode
  163. QObject *receiver;
  164. QByteArray slot_signature;
  165. if ((sipError = pyqt6_qtwidgets_get_connection_parts(a0, sipCpp, "()", false, &receiver, slot_signature)) == sipErrorNone)
  166. {
  167. sipCpp->open(receiver, slot_signature.constData());
  168. }
  169. else if (sipError == sipErrorContinue)
  170. {
  171. sipError = sipBadCallableArg(0, a0);
  172. }
  173. %End
  174. virtual void setVisible(bool visible);
  175. void setDirectoryUrl(const QUrl &directory);
  176. QUrl directoryUrl() const;
  177. void selectUrl(const QUrl &url);
  178. QList<QUrl> selectedUrls() const;
  179. void setMimeTypeFilters(const QStringList &filters);
  180. QStringList mimeTypeFilters() const;
  181. void selectMimeTypeFilter(const QString &filter);
  182. signals:
  183. void urlSelected(const QUrl &url);
  184. void urlsSelected(const QList<QUrl> &urls);
  185. void currentUrlChanged(const QUrl &url);
  186. void directoryUrlEntered(const QUrl &directory);
  187. public:
  188. static SIP_PYTUPLE getOpenFileUrl(QWidget *parent = 0, const QString &caption = QString(), const QUrl &directory = QUrl(), const QString &filter = QString(), const QString &initialFilter = QString(), Options options = QFileDialog::Options(), const QStringList &supportedSchemes = QStringList()) /TypeHint="Tuple[QUrl, QString]", ReleaseGIL/;
  189. %MethodCode
  190. QUrl *url;
  191. QString *filter = new QString(*a4);
  192. Py_BEGIN_ALLOW_THREADS
  193. url = new QUrl(QFileDialog::getOpenFileUrl(a0, *a1, *a2, *a3, filter, *a5, *a6));
  194. Py_END_ALLOW_THREADS
  195. PyObject *url_obj = sipConvertFromNewType(url, sipType_QUrl, NULL);
  196. PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL);
  197. if (url_obj && filter_obj)
  198. sipRes = PyTuple_Pack(2, url_obj, filter_obj);
  199. Py_XDECREF(url_obj);
  200. Py_XDECREF(filter_obj);
  201. %End
  202. static SIP_PYTUPLE getOpenFileUrls(QWidget *parent = 0, const QString &caption = QString(), const QUrl &directory = QUrl(), const QString &filter = QString(), const QString &initialFilter = QString(), Options options = QFileDialog::Options(), const QStringList &supportedSchemes = QStringList()) /TypeHint="Tuple[List[QUrl], QString]", ReleaseGIL/;
  203. %MethodCode
  204. QList<QUrl> url_list;
  205. QString *filter = new QString(*a4);
  206. Py_BEGIN_ALLOW_THREADS
  207. url_list = QFileDialog::getOpenFileUrls(a0, *a1, *a2, *a3, filter, *a5, *a6);
  208. Py_END_ALLOW_THREADS
  209. PyObject *url_list_obj = PyList_New(url_list.size());
  210. if (url_list_obj)
  211. {
  212. for (int i = 0; i < url_list.size(); ++i)
  213. {
  214. QUrl *url = new QUrl(url_list.at(i));
  215. PyObject *url_obj = sipConvertFromNewType(url, sipType_QUrl, NULL);
  216. if (!url_obj)
  217. {
  218. delete url;
  219. Py_DECREF(url_list_obj);
  220. url_list_obj = 0;
  221. break;
  222. }
  223. PyList_SetItem(url_list_obj, i, url_obj);
  224. }
  225. }
  226. PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL);
  227. if (url_list_obj && filter_obj)
  228. sipRes = PyTuple_Pack(2, url_list_obj, filter_obj);
  229. Py_XDECREF(url_list_obj);
  230. Py_XDECREF(filter_obj);
  231. %End
  232. static SIP_PYTUPLE getSaveFileUrl(QWidget *parent = 0, const QString &caption = QString(), const QUrl &directory = QUrl(), const QString &filter = QString(), const QString &initialFilter = QString(), Options options = QFileDialog::Options(), const QStringList &supportedSchemes = QStringList()) /TypeHint="Tuple[QUrl, QString]", ReleaseGIL/;
  233. %MethodCode
  234. QUrl *url;
  235. QString *filter = new QString(*a4);
  236. Py_BEGIN_ALLOW_THREADS
  237. url = new QUrl(QFileDialog::getSaveFileUrl(a0, *a1, *a2, *a3, filter, *a5, *a6));
  238. Py_END_ALLOW_THREADS
  239. PyObject *url_obj = sipConvertFromNewType(url, sipType_QUrl, NULL);
  240. PyObject *filter_obj = sipConvertFromNewType(filter, sipType_QString, NULL);
  241. if (url_obj && filter_obj)
  242. sipRes = PyTuple_Pack(2, url_obj, filter_obj);
  243. Py_XDECREF(url_obj);
  244. Py_XDECREF(filter_obj);
  245. %End
  246. void setSupportedSchemes(const QStringList &schemes);
  247. QStringList supportedSchemes() const;
  248. QString selectedMimeTypeFilter() const;
  249. static void saveFileContent(const QByteArray &fileContent, const QString &fileNameHint = QString()) /ReleaseGIL/;
  250. %If (Qt_6_7_0 -)
  251. static void saveFileContent(const QByteArray &fileContent, const QString &fileNameHint, QWidget *parent = 0);
  252. %End
  253. };