Krita Source Code Documentation
Loading...
Searching...
No Matches
DlgResourceTypeForFile.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021 Agata Cacko cacko.azh@gmail.com
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
7
8
9#include <QRadioButton>
10#include <QButtonGroup>
11#include <QDebug>
12
13#include <kis_assert.h>
14
16#include <KisResourceTypes.h>
17
18DlgResourceTypeForFile::DlgResourceTypeForFile(QWidget *parent, QMap<QString, QStringList> resourceTypesForMimetype)
19 : KoDialog(parent)
20{
21 setCaption(i18n("Set the resource type for files"));
22
23 QVBoxLayout* layout = new QVBoxLayout(parent);
24
26
27 QStringList keys = resourceTypesForMimetype.keys();
28
29 for (int i = 0; i < keys.size(); i++) {
30 QLabel* label;
31 label = new QLabel(parent);
32 if (keys[i] == "image/png") {
33 label->setText(i18nc("Question in a dialog so the user can choose which resource type the PNG files belong to: brush tips or patterns",
34 "What resource do you want to import these PNG files as?"));
35 } else if (keys[i] == "image/svg+xml") {
36 label->setText(i18nc("Question in a dialog so the user can choose which resource type the SVG files belong to: brush tips or patterns or symbols",
37 "What resource do you want to import these SVG files as?"));
38 } else {
39 label->setText(i18nc("Question in a dialog so the user can choose which resource type the files of type %1 belongs to; % will be rather untranslatable noun (a mimetype)",
40 "What resource do you want to import these %1 files as?", keys[i]));
41 }
42 layout->addWidget(label);
43
44 QButtonGroup* buttonGroup = new QButtonGroup(parent);
45 m_buttonGroupForMimetype.insert(keys[i], buttonGroup);
46
47 QStringList resourceTypes = resourceTypesForMimetype[keys[i]];
48 for (int j = 0; j < resourceTypes.size(); j++)
49 {
50 QString resourceName = ResourceName::resourceTypeToName(resourceTypes[j]);
51 QRadioButton* button = new QRadioButton(resourceName, parent);
52 button->setProperty("resourceType", resourceTypes[j]);
53 buttonGroup->addButton(button);
54 layout->addWidget(button);
55 }
56 }
57
58
59 QWidget* widget = new QWidget(parent);
60 widget->setLayout(layout);
61 this->setMainWidget(widget);
62
63
64}
65
67{
69
70 QButtonGroup* group = m_buttonGroupForMimetype[mimetype];
71
73
74 QList<QAbstractButton*> buttons = group->buttons();
75 for (int i = 0; i < buttons.size(); i++) {
76 if (buttons[i]->isChecked()) {
77 QString resourceType = buttons[i]->property(m_propertyName.toStdString().c_str()).toString();
78 return resourceType;
79 }
80 }
82 return "";
83}
84
85
QString getResourceTypeForMimetype(QString mimetype)
DlgResourceTypeForFile(QWidget *parent, QMap< QString, QStringList > resourceTypesForMimetype)
QMap< QString, QButtonGroup * > m_buttonGroupForMimetype
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
QPushButton * button(ButtonCode id) const
Definition KoDialog.cpp:591
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:354
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:498
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
Definition kis_assert.h:129
QString buttons(const T &ev)
KRITARESOURCES_EXPORT QString resourceTypeToName(const QString &resourceType)