Krita Source Code Documentation
Loading...
Searching...
No Matches
VideoHDRMetadataOptionsDialog.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2019 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
8#include "ui_VideoHDRMetadataOptionsDialog.h"
9
11
12#include <kstandardguiitem.h>
13
15 : KoDialog(parent),
17{
20
21 QWidget *page = new QWidget(this);
22 ui->setupUi(page);
23 setMainWidget(page);
24
25 ui->cmbMasterDisplay->addItem(i18n("Rec. 2100 PQ"), "p2100-pq");
26 ui->cmbMasterDisplay->addItem(i18n("DCI-P3 D65"), "dci-p3-d65");
27 ui->cmbMasterDisplay->addItem(i18n("Custom"), "custom");
28
29 connect(ui->cmbMasterDisplay, SIGNAL(currentIndexChanged(int)), SLOT(slotPredefinedDisplayIdChanged()));
30}
31
36
38{
39 ui->dblRedX->setValue(options.redX);
40 ui->dblRedY->setValue(options.redY);
41
42 ui->dblGreenX->setValue(options.greenX);
43 ui->dblGreenY->setValue(options.greenY);
44
45 ui->dblBlueX->setValue(options.blueX);
46 ui->dblBlueY->setValue(options.blueY);
47
48 ui->dblWhiteX->setValue(options.whiteX);
49 ui->dblWhiteY->setValue(options.whiteY);
50
51 ui->dblMinLuminance->setValue(options.minLuminance);
52 ui->dblMaxLuminance->setValue(options.maxLuminance);
53
54 ui->intMaxCLL->setValue(options.maxCLL);
55 ui->intMaxFALL->setValue(options.maxFALL);
56
57 int index = ui->cmbMasterDisplay->findData(options.predefinedMasterDisplayId);
58 if (index < 0) {
59 index = ui->cmbMasterDisplay->findData("custom");
60 }
61 ui->cmbMasterDisplay->setCurrentIndex(index);
62
64}
65
67{
69
70 ui->dblRedX->setValue(options.redX);
71 options.redY = ui->dblRedY->value();
72
73 options.greenX = ui->dblGreenX->value();
74 options.greenY = ui->dblGreenY->value();
75
76 options.blueX = ui->dblBlueX->value();
77 options.blueY = ui->dblBlueY->value();
78
79 options.whiteX = ui->dblWhiteX->value();
80 options.whiteY = ui->dblWhiteY->value();
81
82 options.minLuminance = ui->dblMinLuminance->value();
83 options.maxLuminance = ui->dblMaxLuminance->value();
84
85 options.maxCLL = ui->intMaxCLL->value();
86 options.maxFALL = ui->intMaxFALL->value();
87
88 options.predefinedMasterDisplayId = ui->cmbMasterDisplay->currentData().toString();
89
90 return options;
91}
92
94{
95 const QString displayId = ui->cmbMasterDisplay->currentData().toString();
96
97 if (displayId == "p2100-pq") {
98 ui->grpCustomDisplay->setEnabled(false);
99
100 ui->dblRedX->setValue(0.708);
101 ui->dblRedY->setValue(0.292);
102
103 ui->dblGreenX->setValue(0.170);
104 ui->dblGreenY->setValue(0.797);
105
106 ui->dblBlueX->setValue(0.131);
107 ui->dblBlueY->setValue(0.046);
108
109 ui->dblWhiteX->setValue(0.3127);
110 ui->dblWhiteY->setValue(0.3290);
111
112 ui->dblMinLuminance->setValue(0.005);
113 ui->dblMaxLuminance->setValue(1000);
114
115 } else if (displayId == "dci-p3-d65") {
116 ui->grpCustomDisplay->setEnabled(false);
117
118 ui->dblRedX->setValue(0.680);
119 ui->dblRedY->setValue(0.320);
120
121 ui->dblGreenX->setValue(0.265);
122 ui->dblGreenY->setValue(0.690);
123
124 ui->dblBlueX->setValue(0.150);
125 ui->dblBlueY->setValue(0.060);
126
127 ui->dblWhiteX->setValue(0.3127);
128 ui->dblWhiteY->setValue(0.3290);
129
130 ui->dblMinLuminance->setValue(0.005);
131 ui->dblMaxLuminance->setValue(1000);
132
133 } else {
134 ui->grpCustomDisplay->setEnabled(true);
135 }
136
137}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:354
void setButtons(ButtonCodes buttonMask)
Definition KoDialog.cpp:195
void setDefaultButton(ButtonCode id)
Definition KoDialog.cpp:302
@ Ok
Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted)
Definition KoDialog.h:127
@ Cancel
Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected)
Definition KoDialog.h:130
Ui::VideoHDRMetadataOptionsDialog * ui
KisHDRMetadataOptions hdrMetadataOptions() const
void setHDRMetadataOptions(const KisHDRMetadataOptions &options)
VideoHDRMetadataOptionsDialog(QWidget *parent=nullptr)