Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_file_name_requester.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
8#include "ui_wdg_file_name_requester.h"
9
10#include <QStandardPaths>
11#include <QDebug>
12
13#include "KoIcon.h"
14#include <KisFileUtils.h>
15
17 : QWidget(parent)
18 , m_ui(new Ui::WdgFileNameRequester)
19 , m_mode(KoFileDialog::OpenFile)
20 , m_name("OpenDocument")
21{
22 m_ui->setupUi(this);
23
24 m_ui->btnSelectFile->setIcon(kisIcon("folder"));
25
26 connect(m_ui->btnSelectFile, SIGNAL(clicked()), SLOT(slotSelectFile()));
27 connect(m_ui->txtFileName, SIGNAL(textChanged(QString)), SIGNAL(textChanged(QString)));
28}
29
33
34void KisFileNameRequester::setStartDir(const QString &path)
35{
36 m_basePath = path;
37}
38
40{
41 m_name = name;
42}
43
44void KisFileNameRequester::setFileName(const QString &path)
45{
46 m_ui->txtFileName->setText(path);
47 Q_EMIT fileSelected(path);
48}
49
51{
52 return m_ui->txtFileName->text();
53}
54
59
64
66{
67 m_ui->txtFileName->setReadOnly(readonly);
68}
69
70void KisFileNameRequester::setMimeTypeFilters(const QStringList &filterList, QString defaultFilter)
71{
72 m_mime_filter_list = filterList;
73 m_mime_default_filter = defaultFilter;
74}
75
76void KisFileNameRequester::setValidator(QValidator *validator)
77{
78 m_ui->txtFileName->setValidator(validator);
79}
80
82{
83 KoFileDialog dialog(this, m_mode, m_name);
85 {
86 dialog.setCaption(i18n("Select a file to load..."));
87 }
89 {
90 dialog.setCaption(i18n("Select a directory to load..."));
91 }
92
93 const QString basePath =
94 KritaUtils::resolveAbsoluteFilePath(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation),
96
97 const QString filePath =
98 KritaUtils::resolveAbsoluteFilePath(basePath, m_ui->txtFileName->text());
99
100 dialog.setDefaultDir(filePath, true);
101 dialog.setMimeTypeFilters(m_mime_filter_list, m_mime_default_filter);
102
103 QString newFileName = dialog.filename();
104
105 if (!newFileName.isEmpty()) {
106 setFileName(newFileName);
107 }
108}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KisFileNameRequester(QWidget *parent=0)
void textChanged(const QString &fileName)
void setConfigurationName(const QString &name)
Set the name used to store the last-used directory in the settings.
QScopedPointer< Ui::WdgFileNameRequester > m_ui
KoFileDialog::DialogType m_mode
void setStartDir(const QString &path)
void fileSelected(const QString &fileName)
void setMimeTypeFilters(const QStringList &filterList, QString defaultFilter=QString())
void setMode(KoFileDialog::DialogType mode)
void setValidator(QValidator *validator)
void setReadOnlyText(bool readonly)
void setFileName(const QString &path)
KoFileDialog::DialogType mode() const
#define kisIcon(name)
Definition kis_icon.h:26
QString resolveAbsoluteFilePath(const QString &baseDir, const QString &fileName)
Resolve absolute file path from a file path and base dir.