Krita Source Code Documentation
Loading...
Searching...
No Matches
FileDialog.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2013-2014 Yue Liu <yue.liu@mail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5*/
6
7#include "FileDialog.h"
8
9#include "KoFileDialog.h"
10
16
17FileDialog::FileDialog(QWidget *parent,
19 const QString &dialogName)
20 : QDialog(parent)
21 , d(new Private)
22{
23 d->dialog = new KoFileDialog(this, (KoFileDialog::DialogType) type, dialogName);
24}
25
29
30void FileDialog::setCaption(const QString &caption)
31{
32 d->dialog->setCaption(caption);
33}
34
35void FileDialog::setDefaultDir(const QString &defaultDir, bool force)
36{
37 d->dialog->setDefaultDir(defaultDir, force);
38}
39
40void FileDialog::setDirectoryUrl(const QUrl &defaultUri)
41{
42 d->dialog->setDirectoryUrl(defaultUri);
43}
44
46{
47 d->dialog->setImageFilters();
48}
49
51{
52 return d->dialog->selectedNameFilter();
53}
54
56{
57 return d->dialog->selectedMimeType();
58}
59
60void FileDialog::setNameFilter(const QString &filter)
61{
62 d->dialog->setNameFilter(filter);
63}
64
65void FileDialog::selectNameFilter(const QString &filter)
66{
67 d->dialog->selectNameFilter(filter);
68}
69
71{
72 return d->dialog->filename();
73}
74
76{
77 return d->dialog->filenames();
78}
79
80void FileDialog::setMimeTypeFilters(const QStringList &mimeTypeList, QString defaultMimeType)
81{
82 d->dialog->setMimeTypeFilters(mimeTypeList, defaultMimeType);
83}
84
85KoFileDialog* createDialog(QWidget *parent, QString caption, QString defaultDir, QString filter, QString selectedFilter, QString dialogName, KoFileDialog::DialogType type)
86{
87 KoFileDialog *dialog = new KoFileDialog(parent, type, dialogName);
88 if (!caption.isEmpty()) dialog->setCaption(caption);
89 if (!defaultDir.isEmpty()) dialog->setDefaultDir(defaultDir);
90 if (!filter.isEmpty()) dialog->setNameFilter(filter);
91 if (!selectedFilter.isEmpty()) dialog->selectNameFilter(filter);
92
93 return dialog;
94}
95
96QString FileDialog::getOpenFileName(QWidget *parent, const QString &caption, const QString &directory, const QString &filter, const QString &selectedFilter, const QString &dialogName)
97{
98 return createDialog(parent, caption, directory, filter, selectedFilter, dialogName, KoFileDialog::OpenFile)->filename();
99}
100
101QStringList FileDialog::getOpenFileNames(QWidget *parent, const QString &caption, const QString &directory, const QString &filter, const QString &selectedFilter, const QString &dialogName)
102{
103 return createDialog(parent, caption, directory, filter, selectedFilter, dialogName, KoFileDialog::OpenFile)->filenames();
104}
105
106QString FileDialog::getExistingDirectory(QWidget *parent, const QString &caption, const QString &directory, const QString &dialogName)
107{
108 return createDialog(parent, caption, directory, QString(), QString(), dialogName, KoFileDialog::OpenDirectory)->filename();
109}
110
111QString FileDialog::getSaveFileName(QWidget *parent, const QString &caption, const QString &directory, const QString &filter, const QString &selectedFilter, const QString &dialogName)
112{
113 return createDialog(parent, caption, directory, filter, selectedFilter, dialogName, KoFileDialog::SaveFile)->filename();
114}
115
116void FileDialog::onFilterSelected(const QString &filter)
117{
118 d->dialog->onFilterSelected(filter);
119}
KoFileDialog * createDialog(QWidget *parent, QString caption, QString defaultDir, QString filter, QString selectedFilter, QString dialogName, KoFileDialog::DialogType type)
void setCaption(const QString &caption)
void onFilterSelected(const QString &filter)
~FileDialog() override
QStringList filenames()
Show the file dialog and return multiple file names the user selected.
void setDefaultDir(const QString &defaultDir, bool force=false)
setDefaultDir set the default directory to defaultDir.
void setMimeTypeFilters(const QStringList &mimeTypeList, QString defaultMimeType=QString())
setMimeTypeFilters Update the list of file filters from mime types.
QString selectedMimeType() const
void setDirectoryUrl(const QUrl &defaultUri)
setDirectoryUrl set the default URI to defaultUri.
QString selectedNameFilter() const
selectedNameFilter returns the name filter the user selected, either directory or by clicking on it.
QString filename()
Show the file dialog and return the file name the user selected.
static QString getExistingDirectory(QWidget *parent=nullptr, const QString &caption=QString(), const QString &directory=QString(), const QString &dialogName=QString())
Create and show a file dialog and return the name of an existing directory selected by the user.
void selectNameFilter(const QString &filter)
void setImageFilters()
setImageFilters sets the name filters for the file dialog to all image formats Qt's QImageReader supp...
QScopedPointer< Private > const d
Definition FileDialog.h:168
static QString getSaveFileName(QWidget *parent=nullptr, const QString &caption=QString(), const QString &directory=QString(), const QString &filter=QString(), const QString &selectedFilter=QString(), const QString &dialogName=QString())
Create and show a file dialog and return the name of a file to save to selected by the user.
void setNameFilter(const QString &filter)
static QString getOpenFileName(QWidget *parent=nullptr, const QString &caption=QString(), const QString &directory=QString(), const QString &filter=QString(), const QString &selectedFilter=QString(), const QString &dialogName=QString())
Create and show a file dialog and return the name of an existing file selected by the user.
FileDialog(QWidget *parent=nullptr, const FileDialog::DialogType=DialogType::OpenFile, const QString &dialogName="")
constructor
static QStringList getOpenFileNames(QWidget *parent=nullptr, const QString &caption=QString(), const QString &directory=QString(), const QString &filter=QString(), const QString &selectedFilter=QString(), const QString &dialogName=QString())
Create and show a file dialog and return the name of multiple existing files selected by the user.
QString filename()
Get the file name the user selected in the file dialog.
QStringList filenames()
Get the file names the user selected in the file dialog.