Krita Source Code Documentation
Loading...
Searching...
No Matches
recorder_profile_settings.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Dmitrii Utkin <loentar@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only
5 */
6
9#include "ui_recorder_profile_settings.h"
10
11#include <klocalizedstring.h>
12#include <kstandardguiitem.h>
13#include <kis_icon_utils.h>
14
15namespace
16{
17enum ArgumentsPageIndex
18{
19 PageEdit,
20 PagePreview
21};
22}
23
24
26 : QDialog(parent)
28{
29 ui->setupUi(this);
30
31 KGuiItem::assign(ui->buttonBox->button(QDialogButtonBox::Ok), KStandardGuiItem::ok());
32 KGuiItem::assign(ui->buttonBox->button(QDialogButtonBox::Cancel), KStandardGuiItem::cancel());
33
34 ui->buttonPresetRevert->setIcon(KisIconUtils::loadIcon("edit-undo"));
35 ui->stackedWidget->setCurrentIndex(ArgumentsPageIndex::PageEdit);
36
37 connect(ui->labelSupportedVariables, SIGNAL(linkActivated(QString)), this, SLOT(onLinkActivated(QString)));
38 connect(ui->checkPreview, SIGNAL(toggled(bool)), this, SLOT(onPreviewToggled(bool)));
39}
40
45
47{
48 fillProfile(*profile);
49
50 disconnect(ui->buttonPresetRevert);
51 connect(ui->buttonPresetRevert, &QPushButton::clicked, [&] { fillProfile(defaultProfile); });
52
53 if (exec() != QDialog::Accepted)
54 return false;
55
56 profile->name = ui->editProfileName->text();
57 profile->extension = ui->editFileExtension->text();
58 profile->arguments = ui->editFfmpegArguments->toPlainText();
59
60 return true;
61}
62
63void RecorderProfileSettings::setPreview(const QString &preview)
64{
65 ui->editPreview->setPlainText(preview);
66}
67
69{
70 const QString &name = ui->editProfileName->text();
71 const QString &extension = ui->editFileExtension->text();
72 const QString &arguments = ui->editFfmpegArguments->toPlainText();
73
74 bool isValid = (!name.isEmpty()) && (!extension.isEmpty()) && (!arguments.isEmpty());
75 ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(isValid);
76}
77
79{
80 ui->editFfmpegArguments->insertPlainText(link);
81 ui->editFfmpegArguments->setFocus();
82}
83
85{
86 if (checked)
87 Q_EMIT requestPreview(ui->editFfmpegArguments->toPlainText());
88
89 ui->stackedWidget->setCurrentIndex(checked ? ArgumentsPageIndex::PagePreview : ArgumentsPageIndex::PageEdit);
90}
91
93{
94 ui->editProfileName->setText(profile.name);
95 ui->editFileExtension->setText(profile.extension);
96 ui->editFfmpegArguments->setPlainText(profile.arguments);
97}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
bool editProfile(RecorderProfile *profile, const RecorderProfile &defaultProfile)
void onLinkActivated(const QString &link)
void fillProfile(const RecorderProfile &profile)
Ui::RecorderProfileSettings * ui
void setPreview(const QString &preview)
RecorderProfileSettings(QWidget *parent=nullptr)
void requestPreview(QString arguments)
QIcon loadIcon(const QString &name)