Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_operation_ui_widget_factory.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2013 Sven Langkamp <sven.langkamp@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7
8
9#ifndef KIS_OPERATION_UI_WIDGET_FACTORY_H
10#define KIS_OPERATION_UI_WIDGET_FACTORY_H
11
12#include <KoDialog.h>
13#include <klocalizedstring.h>
14
17#include "KisViewManager.h"
18
19
24template <class T> class KisOperationUIWidgetFactory : public KisOperationUIFactory
25{
26
27public:
28 KisOperationUIWidgetFactory(const QString &id)
30 , m_configuration(nullptr)
31 {
32 }
33
35 {
36 }
37
45 KoDialog * dialog = new KoDialog(view->mainWindowAsQWidget());
46 Q_CHECK_PTR(dialog);
47
48 T* configWidget = new T(dialog, view, m_configuration ? m_configuration : configuration);
49 dialog->setCaption(configWidget->caption());
50 dialog->setMainWidget(configWidget);
51 bool success = false;
52 if (dialog->exec() == QDialog::Accepted) {
53 configWidget->getConfiguration(configuration);
54 m_configuration = configuration;
55 success = true;
56 }
57 delete dialog;
58
59 return success;
60 }
61
62private:
64};
65
66#endif // KIS_OPERATION_UI_WIDGET_FACTORY_H
bool fetchConfiguration(KisViewManager *view, KisOperationConfigurationSP configuration) override
KisOperationConfigurationSP m_configuration
QWidget * mainWindowAsQWidget() const
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116