Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDlgImageProperties Class Reference

#include <kis_dlg_image_properties.h>

+ Inheritance diagram for KisDlgImageProperties:

Classes

struct  Private
 

Public Member Functions

const KoColorSpacecolorSpace () const
 
bool convertLayerPixels () const
 
virtual int exec () override
 
 KisDlgImageProperties (KisImageWSP image, KisDisplayColorConverter *colorConverter, QWidget *parent=0, const char *name=0)
 
 ~KisDlgImageProperties () override
 
- Public Member Functions inherited from KoDialog
QPushButton * button (ButtonCode id) const
 
QIcon buttonIcon (ButtonCode id) const
 
QString buttonText (ButtonCode id) const
 
QString buttonToolTip (ButtonCode id) const
 
QString buttonWhatsThis (ButtonCode id) const
 
ButtonCode defaultButton () const
 
QString helpLinkText () const
 
void incrementInitialSize (const QSize &size)
 
bool isButtonEnabled (ButtonCode id) const
 
 KoDialog (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
 
QWidget * mainWidget ()
 
QSize minimumSizeHint () const override
 
void setButtonFocus (ButtonCode id)
 
void setButtonGuiItem (ButtonCode id, const KGuiItem &item)
 
void setButtonIcon (ButtonCode id, const QIcon &icon)
 
void setButtons (ButtonCodes buttonMask)
 
void setButtonsOrientation (Qt::Orientation orientation)
 
void setButtonText (ButtonCode id, const QString &text)
 
void setButtonToolTip (ButtonCode id, const QString &text)
 
void setButtonWhatsThis (ButtonCode id, const QString &text)
 
void setDefaultButton (ButtonCode id)
 
void setEscapeButton (ButtonCode id)
 
void setInitialSize (const QSize &size)
 
void setMainWidget (QWidget *widget)
 
void showButton (ButtonCode id, bool state)
 
void showButtonSeparator (bool state)
 
QSize sizeHint () const override
 
 ~KoDialog () override
 

Private Slots

void setAnnotation (const QString &type)
 
void setCurrentColor ()
 
void setProofingConfigToImage ()
 
void slotColorSpaceChanged (const KoColorSpace *)
 
void updateDisplayConfigInfo ()
 

Private Attributes

QScopedPointer< Privated
 
WdgImagePropertiesm_page
 

Additional Inherited Members

- Public Types inherited from KoDialog
enum  ButtonCode {
  None = 0x00000000 , Help = 0x00000001 , Default = 0x00000002 , Ok = 0x00000004 ,
  Apply = 0x00000008 , Try = 0x00000010 , Cancel = 0x00000020 , Close = 0x00000040 ,
  No = 0x00000080 , Yes = 0x00000100 , Reset = 0x00000200 , Details = 0x00000400 ,
  User1 = 0x00001000 , User2 = 0x00002000 , User3 = 0x00004000 , NoDefault = 0x00008000
}
 
enum  ButtonPopupMode { InstantPopup = 0 , DelayedPopup = 1 }
 
enum  CaptionFlag { NoCaptionFlags = 0 , AppNameCaption = 1 , ModifiedCaption = 2 , HIGCompliantCaption = AppNameCaption }
 
- Public Slots inherited from KoDialog
void delayedDestruct ()
 
void enableButton (ButtonCode id, bool state)
 
void enableButtonApply (bool state)
 
void enableButtonCancel (bool state)
 
void enableButtonOk (bool state)
 
void enableLinkedHelp (bool state)
 
bool isDetailsWidgetVisible () const
 
virtual void setCaption (const QString &caption)
 
virtual void setCaption (const QString &caption, bool modified)
 
void setDetailsWidget (QWidget *detailsWidget)
 
void setDetailsWidgetVisible (bool visible)
 
void setHelp (const QString &anchor, const QString &appname=QString())
 
void setHelpLinkText (const QString &text)
 
virtual void setPlainCaption (const QString &caption)
 
- Signals inherited from KoDialog
void aboutToShowDetails ()
 
void applyClicked ()
 
void buttonClicked (KoDialog::ButtonCode button)
 
void cancelClicked ()
 
void closeClicked ()
 
void defaultClicked ()
 
void finished ()
 
void helpClicked ()
 
void hidden ()
 
void layoutHintChanged ()
 
void noClicked ()
 
void okClicked ()
 
void resetClicked ()
 
void tryClicked ()
 
void user1Clicked ()
 
void user2Clicked ()
 
void user3Clicked ()
 
void yesClicked ()
 
- Static Public Member Functions inherited from KoDialog
static int groupSpacingHint ()
 
static QString makeStandardCaption (const QString &userCaption, QWidget *window=0, CaptionFlags flags=HIGCompliantCaption)
 
static int marginHint ()
 
static void resizeLayout (QLayout *lay, int margin, int spacing)
 
static void resizeLayout (QWidget *widget, int margin, int spacing)
 
static int spacingHint ()
 
- Protected Slots inherited from KoDialog
virtual void slotButtonClicked (int button)
 
- Protected Member Functions inherited from KoDialog
void closeEvent (QCloseEvent *e) override
 
void hideEvent (QHideEvent *) override
 
void keyPressEvent (QKeyEvent *) override
 
void showEvent (QShowEvent *e) override
 

Detailed Description

Definition at line 26 of file kis_dlg_image_properties.h.

Constructor & Destructor Documentation

◆ KisDlgImageProperties()

KisDlgImageProperties::KisDlgImageProperties ( KisImageWSP image,
KisDisplayColorConverter * colorConverter,
QWidget * parent = 0,
const char * name = 0 )

Definition at line 42 of file kis_dlg_image_properties.cc.

43 : KoDialog(parent)
44 , d(new Private(colorConverter))
45{
48 setObjectName(name);
49 setCaption(i18n("Image Properties"));
50 m_page = new WdgImageProperties(this);
51
52 d->image = image;
53
55 resize(m_page->sizeHint());
56
57 m_page->lblWidthValue->setText(QString::number(image->width()));
58 m_page->lblHeightValue->setText(QString::number(image->height()));
59 m_page->lblLayerCount->setText(QString::number(image->nChildLayers()));
60
61 m_page->lblResolutionValue->setText(QLocale().toString(image->xRes()*72, 2)); // XXX: separate values for x & y?
62
63 //Set the canvas projection color: backgroundColor
64 KoColor background = d->image->defaultProjectionColor();
65 background.setOpacity(1.0);
66 m_page->bnBackgroundColor->setColor(background);
67 m_page->sldBackgroundColor->setRange(0.0,1.0,2);
68 m_page->sldBackgroundColor->setSingleStep(0.05);
69 m_page->sldBackgroundColor->setValue(d->image->defaultProjectionColor().opacityF());
70
71 connect(m_page->bnBackgroundColor, SIGNAL(changed(KoColor)), &d->compressor, SLOT(start()));
72 connect(m_page->sldBackgroundColor, SIGNAL(valueChanged(qreal)), &d->compressor, SLOT(start()));
73 connect(&d->compressor, SIGNAL(timeout()), this, SLOT(setCurrentColor()));
74
75 //Set the color space
76 m_page->colorSpaceSelector->setCurrentColorSpace(image->colorSpace());
77 m_page->chkConvertLayers->setChecked(KisConfig(true).convertLayerColorSpaceInProperties());
78
79 // fetch the proofing space
80 KisProofingConfigurationSP config = d->image->proofingConfiguration();
81 const bool hasImageLocalConfig = bool(config);
82
83 if (config) {
84 // create a copy of the original config
85 d->originalProofingConfig.reset(new KisProofingConfiguration(*config));
86 } else {
88 }
89
90 // enable proofing config widgets only when the image has its
91 // own config
92 m_page->chkSaveProofing->setChecked(hasImageLocalConfig);
93 connect(m_page->chkSaveProofing, &QCheckBox::toggled,
94 m_page->wdgProofingOptions, &KisProofingOptionsWidget::setEnabled);
95 m_page->wdgProofingOptions->setEnabled(m_page->chkSaveProofing->isChecked());
96
97 // we should reset to the global settings when when the checkbox
98 // is toggled
99 connect(m_page->chkSaveProofing, &QCheckBox::toggled,
101
102 // initialize the proofing configuration widget
103 m_page->wdgProofingOptions->setProofingConfig(config);
104 connect(d->colorConverter, SIGNAL(displayConfigurationChanged()), this, SLOT(updateDisplayConfigInfo()));
106
107 connect(m_page->wdgProofingOptions,
109 this,
111
112 //annotations
113 vKisAnnotationSP_it beginIt = image->beginAnnotations();
114 vKisAnnotationSP_it endIt = image->endAnnotations();
115
116 vKisAnnotationSP_it it = beginIt;
117 while (it != endIt) {
118
119 if (!(*it) || (*it)->type().isEmpty()) {
120 dbgFile << "Warning: empty annotation";
121 it++;
122 continue;
123 }
124
125 m_page->cmbAnnotations->addItem((*it)->type());
126 it++;
127 }
128 connect(m_page->cmbAnnotations, SIGNAL(textActivated(QString)), SLOT(setAnnotation(QString)));
129 setAnnotation(m_page->cmbAnnotations->currentText());
130
131 connect(m_page->colorSpaceSelector,
132 SIGNAL(colorSpaceChanged(const KoColorSpace*)),
133 SLOT(slotColorSpaceChanged(const KoColorSpace*)));
134 slotColorSpaceChanged(d->image->colorSpace());
135}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void slotColorSpaceChanged(const KoColorSpace *)
void setAnnotation(const QString &type)
QScopedPointer< Private > d
KisProofingConfigurationSP defaultProofingconfiguration(bool requestDefault=false)
vKisAnnotationSP_it endAnnotations()
qint32 nChildLayers() const
const KoColorSpace * colorSpace() const
qint32 width() const
double xRes() const
qint32 height() const
vKisAnnotationSP_it beginAnnotations()
The KisProofingConfiguration struct Little struct that stores the proofing configuration for a given ...
void sigProofingConfigChanged(KisProofingConfigurationSP config)
void setOpacity(quint8 alpha)
Definition KoColor.cpp:333
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:354
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:498
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
KoDialog(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
Definition KoDialog.cpp:176
#define dbgFile
Definition kis_debug.h:53
vKisAnnotationSP::iterator vKisAnnotationSP_it
Definition kis_types.h:181
QString toString(const QString &value)

References KisImage::beginAnnotations(), KoDialog::Cancel, KisImage::colorSpace(), connect(), d, dbgFile, KisImageConfig::defaultProofingconfiguration(), KisImage::endAnnotations(), KisImage::height(), m_page, KisImage::nChildLayers(), KoDialog::Ok, setAnnotation(), KoDialog::setButtons(), KoDialog::setCaption(), setCurrentColor(), KoDialog::setDefaultButton(), KoDialog::setMainWidget(), KoColor::setOpacity(), setProofingConfigToImage(), KisProofingOptionsWidget::sigProofingConfigChanged(), slotColorSpaceChanged(), updateDisplayConfigInfo(), KisImage::width(), and KisImage::xRes().

◆ ~KisDlgImageProperties()

KisDlgImageProperties::~KisDlgImageProperties ( )
override

Definition at line 137 of file kis_dlg_image_properties.cc.

138{
139 if (d->compressor.isActive()) {
140 d->compressor.stop();
142 }
143
144 delete m_page;
145}

References d, m_page, and setCurrentColor().

Member Function Documentation

◆ colorSpace()

const KoColorSpace * KisDlgImageProperties::colorSpace ( ) const

Definition at line 174 of file kis_dlg_image_properties.cc.

175{
176 return m_page->colorSpaceSelector->currentColorSpace();
177}

References m_page.

◆ convertLayerPixels()

bool KisDlgImageProperties::convertLayerPixels ( ) const

Definition at line 169 of file kis_dlg_image_properties.cc.

170{
171 return m_page->chkConvertLayers->isChecked();
172}

References m_page.

◆ exec()

int KisDlgImageProperties::exec ( )
overridevirtual

Definition at line 147 of file kis_dlg_image_properties.cc.

148{
149 int resultCode = KoDialog::exec();
150
151 m_page->wdgProofingOptions->stopPendingUpdates();
152
153 if (resultCode == QDialog::Accepted) {
154 if (m_page->chkSaveProofing->isChecked()) {
155 d->image->setProofingConfiguration(m_page->wdgProofingOptions->currentProofingConfig());
156 } else {
157 d->image->setProofingConfiguration(nullptr);
158 }
159 } else {
160 d->image->setProofingConfiguration(d->originalProofingConfig);
161 }
162
163 KisConfig cfg(false);
164 cfg.setConvertLayerColorSpaceInProperties(m_page->chkConvertLayers->isChecked());
165
166 return resultCode;
167}

References d, m_page, and KisConfig::setConvertLayerColorSpaceInProperties().

◆ setAnnotation

void KisDlgImageProperties::setAnnotation ( const QString & type)
privateslot

Definition at line 213 of file kis_dlg_image_properties.cc.

214{
215 KisAnnotationSP annotation = d->image->annotation(type);
216 if (annotation) {
217 m_page->lblDescription->clear();
218 m_page->txtAnnotation->clear();
219 m_page->lblDescription->setText(annotation->description());
220 m_page->txtAnnotation->appendPlainText(annotation->displayText());
221 }
222 else {
223 m_page->lblDescription->clear();
224 m_page->txtAnnotation->clear();
225 }
226}

References d, and m_page.

◆ setCurrentColor

void KisDlgImageProperties::setCurrentColor ( )
privateslot

Definition at line 179 of file kis_dlg_image_properties.cc.

180{
181 KoColor background = m_page->bnBackgroundColor->color();
182 background.setOpacity(m_page->sldBackgroundColor->value());
184}
void changeImageDefaultProjectionColor(KisImageSP image, const KoColor &color)

References KisLayerUtils::changeImageDefaultProjectionColor(), d, m_page, and KoColor::setOpacity().

◆ setProofingConfigToImage

void KisDlgImageProperties::setProofingConfigToImage ( )
privateslot

Definition at line 186 of file kis_dlg_image_properties.cc.

187{
188 if (m_page->chkSaveProofing->isChecked()) {
189 d->image->setProofingConfiguration(m_page->wdgProofingOptions->currentProofingConfig());
190 } else {
191 d->image->setProofingConfiguration(nullptr);
192 }
193}

References d, and m_page.

◆ slotColorSpaceChanged

void KisDlgImageProperties::slotColorSpaceChanged ( const KoColorSpace * cs)
privateslot

Definition at line 200 of file kis_dlg_image_properties.cc.

201{
202 if (*d->image->profile() != *cs->profile() &&
204
205 m_page->wdgWarningNotice->setVisible(true);
206 m_page->wdgWarningNotice->setText(
207 m_page->wdgWarningNotice->changeImageProfileWarningText());
208 } else {
209 m_page->wdgWarningNotice->setVisible(false);
210 }
211}
virtual const KoColorProfile * profile() const =0
bool canChangeImageProfileInvisibly(KisImageSP image)

References KisLayerUtils::canChangeImageProfileInvisibly(), d, m_page, and KoColorSpace::profile().

◆ updateDisplayConfigInfo

void KisDlgImageProperties::updateDisplayConfigInfo ( )
privateslot

Definition at line 195 of file kis_dlg_image_properties.cc.

196{
197 m_page->wdgProofingOptions->setDisplayConfigOptions(d->colorConverter->conversionOptions());
198}

References d, and m_page.

Member Data Documentation

◆ d

QScopedPointer<Private> KisDlgImageProperties::d
private

Definition at line 52 of file kis_dlg_image_properties.h.

◆ m_page

WdgImageProperties* KisDlgImageProperties::m_page
private

Definition at line 53 of file kis_dlg_image_properties.h.


The documentation for this class was generated from the following files: