[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [calligra/calligra/2.9] krita/plugins/formats/tiff: Add a Save Profile checkbox to the tiff export f
From: Boudewijn Rempt <boud () valdyas ! org>
Date: 2015-09-19 8:54:52
Message-ID: E1ZdDv2-00073K-4n () scm ! kde ! org
[Download RAW message or body]
Git commit 55be1fd496d31d250863766c2eca5c0d5c11c3da by Boudewijn Rempt.
Committed on 19/09/2015 at 08:53.
Pushed by rempt into branch 'calligra/2.9'.
Add a Save Profile checkbox to the tiff export filter
Also a few cleanups, use constData(), add a note to a ten-year
old todo, remove some code commented out since 2006
M +3 -10 krita/plugins/formats/tiff/kis_dlg_options_tiff.cpp
M +1 -0 krita/plugins/formats/tiff/kis_tiff_converter.h
M +12 -12 krita/plugins/formats/tiff/kis_tiff_export.cc
M +11 -14 krita/plugins/formats/tiff/kis_tiff_writer_visitor.cpp
M +0 -1 krita/plugins/formats/tiff/kis_tiff_writer_visitor.h
M +21 -65 krita/plugins/formats/tiff/kis_wdg_options_tiff.ui
http://commits.kde.org/calligra/55be1fd496d31d250863766c2eca5c0d5c11c3da
diff --git a/krita/plugins/formats/tiff/kis_dlg_options_tiff.cpp \
b/krita/plugins/formats/tiff/kis_dlg_options_tiff.cpp index c3392c4..cdff3a4 100644
--- a/krita/plugins/formats/tiff/kis_dlg_options_tiff.cpp
+++ b/krita/plugins/formats/tiff/kis_dlg_options_tiff.cpp
@@ -62,6 +62,7 @@ KisDlgOptionsTIFF::KisDlgOptionsTIFF(QWidget *parent)
optionswdg->compressionLevelDeflate->setValue(cfg.getInt("deflate", 6));
optionswdg->kComboBoxFaxMode->setCurrentIndex(cfg.getInt("faxmode", 0));
optionswdg->compressionLevelPixarLog->setValue(cfg.getInt("pixarlog", 6));
+ optionswdg->chkSaveProfile->setChecked(cfg.getBool("saveProfile", true));
}
KisDlgOptionsTIFF::~KisDlgOptionsTIFF()
@@ -71,26 +72,18 @@ KisDlgOptionsTIFF::~KisDlgOptionsTIFF()
void KisDlgOptionsTIFF::activated(int index)
{
- /* optionswdg->groupBoxJPEG->hide();
- optionswdg->groupBoxDeflate->hide();
- optionswdg->groupBoxCCITGroupCCITG3->hide();
- optionswdg->groupBoxPixarLog->hide();*/
switch (index) {
case 1:
optionswdg->codecsOptionsStack->setCurrentIndex(1);
-// optionswdg->groupBoxJPEG->show();
break;
case 2:
optionswdg->codecsOptionsStack->setCurrentIndex(2);
-// optionswdg->groupBoxDeflate->show();
break;
case 6:
optionswdg->codecsOptionsStack->setCurrentIndex(3);
-// optionswdg->groupBoxCCITGroupCCITG3->show();
break;
case 8:
optionswdg->codecsOptionsStack->setCurrentIndex(4);
-// optionswdg->groupBoxPixarLog->show();
break;
default:
optionswdg->codecsOptionsStack->setCurrentIndex(0);
@@ -147,8 +140,7 @@ KisTIFFOptions KisDlgOptionsTIFF::options()
options.deflateCompress = optionswdg->compressionLevelDeflate->value();
options.faxMode = optionswdg->kComboBoxFaxMode->currentIndex() + 1;
options.pixarLogCompress = optionswdg->compressionLevelPixarLog->value();
-
- qDebug() << options.compressionType << options.predictor << options.alpha << \
options.jpegQuality << options.deflateCompress << options.faxMode << \
options.pixarLogCompress; + options.saveProfile = \
optionswdg->chkSaveProfile->isChecked();
KisPropertiesConfiguration cfg;
cfg.setProperty("compressiontype", \
optionswdg->kComboBoxCompressionType->currentIndex()); @@ -159,6 +151,7 @@ \
KisTIFFOptions KisDlgOptionsTIFF::options() cfg.setProperty("deflate", \
options.deflateCompress); cfg.setProperty("faxmode", options.faxMode - 1);
cfg.setProperty("pixarlog", options.pixarLogCompress);
+ cfg.setProperty("saveProfile", options.saveProfile);
KisConfig().setExportConfiguration("TIFF", cfg);
diff --git a/krita/plugins/formats/tiff/kis_tiff_converter.h \
b/krita/plugins/formats/tiff/kis_tiff_converter.h index 140b3bb..8a84214 100644
--- a/krita/plugins/formats/tiff/kis_tiff_converter.h
+++ b/krita/plugins/formats/tiff/kis_tiff_converter.h
@@ -59,6 +59,7 @@ struct KisTIFFOptions {
quint16 deflateCompress;
quint16 faxMode;
quint16 pixarLogCompress;
+ bool saveProfile;
};
class KisTIFFConverter : public QObject
diff --git a/krita/plugins/formats/tiff/kis_tiff_export.cc \
b/krita/plugins/formats/tiff/kis_tiff_export.cc index 196a7d3..0a68ecd 100644
--- a/krita/plugins/formats/tiff/kis_tiff_export.cc
+++ b/krita/plugins/formats/tiff/kis_tiff_export.cc
@@ -59,27 +59,28 @@ KisImportExportFilter::ConversionStatus \
KisTIFFExport::convert(const QByteArray& if (from != "application/x-krita")
return KisImportExportFilter::NotImplemented;
-
- KisDlgOptionsTIFF* kdb = new KisDlgOptionsTIFF(0);
-
KisDocument *input = m_chain->inputDocument();
- if (!input)
+ if (!input) {
return KisImportExportFilter::NoDocumentCreated;
+ }
+ KisDlgOptionsTIFF dlg;
const KoColorSpace* cs = input->image()->colorSpace();
KoChannelInfo::enumChannelValueType type = \
cs->channels()[0]->channelValueType(); +
if (type == KoChannelInfo::FLOAT16 || type == KoChannelInfo::FLOAT32) {
- kdb->optionswdg->kComboBoxPredictor->removeItem(1);
+ dlg.optionswdg->kComboBoxPredictor->removeItem(1);
} else {
- kdb->optionswdg->kComboBoxPredictor->removeItem(2);
+ dlg.optionswdg->kComboBoxPredictor->removeItem(2);
}
if (cs->colorModelId() == CMYKAColorModelID) {
- kdb->optionswdg->alpha->setChecked(false);
- kdb->optionswdg->alpha->setEnabled(false);
+ dlg.optionswdg->alpha->setChecked(false);
+ dlg.optionswdg->alpha->setEnabled(false);
}
+
if (!m_chain->manager()->getBatchMode()) {
- if (kdb->exec() == QDialog::Rejected) {
+ if (dlg.exec() == QDialog::Rejected) {
return KisImportExportFilter::UserCancelled;
}
}
@@ -89,12 +90,11 @@ KisImportExportFilter::ConversionStatus \
KisTIFFExport::convert(const QByteArray& }
input->image()->waitForDone();
- KisTIFFOptions options = kdb->options();
+ KisTIFFOptions options = dlg.options();
- if ((type == KoChannelInfo::FLOAT16 || type == KoChannelInfo::FLOAT32) && \
options.predictor == 2) { // FIXME THIS IS AN HACK FIX THAT IN 2.0 !! + if ((type \
== KoChannelInfo::FLOAT16 || type == KoChannelInfo::FLOAT32) && options.predictor == \
2) { // FIXME THIS IS AN HACK FIX THAT IN 2.0 !! \
(62456a7b47636548c6507593df3e2bdf440f7544, BUG:135649) options.predictor = 3;
}
- delete kdb;
QString filename = m_chain->outputFile();
diff --git a/krita/plugins/formats/tiff/kis_tiff_writer_visitor.cpp \
b/krita/plugins/formats/tiff/kis_tiff_writer_visitor.cpp index e5dbb1b..92a5989 \
100644
--- a/krita/plugins/formats/tiff/kis_tiff_writer_visitor.cpp
+++ b/krita/plugins/formats/tiff/kis_tiff_writer_visitor.cpp
@@ -86,11 +86,6 @@ KisTIFFWriterVisitor::~KisTIFFWriterVisitor()
{
}
-bool KisTIFFWriterVisitor::saveAlpha()
-{
- return m_options->alpha;
-}
-
bool KisTIFFWriterVisitor::copyDataToStrips(KisHLineConstIteratorSP it, tdata_t \
buff, uint8 depth, uint16 sample_format, uint8 nbcolorssamples, quint8* poses) {
if (depth == 32) {
@@ -102,7 +97,7 @@ bool \
KisTIFFWriterVisitor::copyDataToStrips(KisHLineConstIteratorSP it, tdata_t for (i = \
0; i < nbcolorssamples; i++) {
*(dst++) = d[poses[i]];
}
- if (saveAlpha()) *(dst++) = d[poses[i]];
+ if (m_options->alpha) *(dst++) = d[poses[i]];
} while (it->nextPixel());
return true;
}
@@ -116,7 +111,7 @@ bool \
KisTIFFWriterVisitor::copyDataToStrips(KisHLineConstIteratorSP it, tdata_t for (i = \
0; i < nbcolorssamples; i++) {
*(dst++) = d[poses[i]];
}
- if (saveAlpha()) *(dst++) = d[poses[i]];
+ if (m_options->alpha) *(dst++) = d[poses[i]];
} while (it->nextPixel());
return true;
@@ -130,7 +125,7 @@ bool \
KisTIFFWriterVisitor::copyDataToStrips(KisHLineConstIteratorSP it, tdata_t for (i = \
0; i < nbcolorssamples; i++) {
*(dst++) = d[poses[i]];
}
- if (saveAlpha()) *(dst++) = d[poses[i]];
+ if (m_options->alpha) *(dst++) = d[poses[i]];
} while (it->nextPixel());
return true;
@@ -144,7 +139,7 @@ bool \
KisTIFFWriterVisitor::copyDataToStrips(KisHLineConstIteratorSP it, tdata_t for (i = \
0; i < nbcolorssamples; i++) {
*(dst++) = d[poses[i]];
}
- if (saveAlpha()) *(dst++) = d[poses[i]];
+ if (m_options->alpha) *(dst++) = d[poses[i]];
} while (it->nextPixel());
return true;
@@ -187,7 +182,7 @@ bool KisTIFFWriterVisitor::saveLayerProjection(KisLayer * layer)
int depth = 8 * pd->pixelSize() / pd->channelCount();
TIFFSetField(image(), TIFFTAG_BITSPERSAMPLE, depth);
// Save number of samples
- if (saveAlpha()) {
+ if (m_options->alpha) {
TIFFSetField(image(), TIFFTAG_SAMPLESPERPIXEL, pd->channelCount());
uint16 sampleinfo[1] = { EXTRASAMPLE_UNASSALPHA };
TIFFSetField(image(), TIFFTAG_EXTRASAMPLES, 1, sampleinfo);
@@ -222,10 +217,12 @@ bool KisTIFFWriterVisitor::saveLayerProjection(KisLayer * \
layer) TIFFSetField(image(), TIFFTAG_ROWSPERSTRIP, 8);
// Save profile
- const KoColorProfile* profile = pd->colorSpace()->profile();
- if (profile && profile->type() == "icc" && !profile->rawData().isEmpty()) {
- QByteArray ba = profile->rawData();
- TIFFSetField(image(), TIFFTAG_ICCPROFILE, ba.size(), ba.data());
+ if (m_options->saveProfile) {
+ const KoColorProfile* profile = pd->colorSpace()->profile();
+ if (profile && profile->type() == "icc" && !profile->rawData().isEmpty()) {
+ QByteArray ba = profile->rawData();
+ TIFFSetField(image(), TIFFTAG_ICCPROFILE, ba.size(), ba.constData());
+ }
}
tsize_t stripsize = TIFFStripSize(image());
tdata_t buff = _TIFFmalloc(stripsize);
diff --git a/krita/plugins/formats/tiff/kis_tiff_writer_visitor.h \
b/krita/plugins/formats/tiff/kis_tiff_writer_visitor.h index 539d0af..b227b0f 100644
--- a/krita/plugins/formats/tiff/kis_tiff_writer_visitor.h
+++ b/krita/plugins/formats/tiff/kis_tiff_writer_visitor.h
@@ -72,7 +72,6 @@ private:
inline TIFF* image() {
return m_image;
}
- inline bool saveAlpha();
bool copyDataToStrips(KisHLineConstIteratorSP it, tdata_t buff, uint8 depth, \
uint16 sample_format, uint8 nbcolorssamples, quint8* poses); bool \
saveLayerProjection(KisLayer *); private:
diff --git a/krita/plugins/formats/tiff/kis_wdg_options_tiff.ui \
b/krita/plugins/formats/tiff/kis_wdg_options_tiff.ui index ddda0f4..2207843 100644
--- a/krita/plugins/formats/tiff/kis_wdg_options_tiff.ui
+++ b/krita/plugins/formats/tiff/kis_wdg_options_tiff.ui
@@ -20,16 +20,7 @@
<string>TIFF Options</string>
</property>
<layout class="QVBoxLayout">
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
@@ -188,6 +179,16 @@ You can uncheck the box if you are not using transparency and \
you want to make t </property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="chkSaveProfile">
+ <property name="text">
+ <string>Save ICC Profile</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
@@ -196,21 +197,12 @@ You can uncheck the box if you are not using transparency and \
you want to make t <property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
- <widget class="QWidget">
+ <widget class="QWidget" name="widget">
<layout class="QHBoxLayout">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
@@ -225,21 +217,12 @@ You can uncheck the box if you are not using transparency and \
you want to make t </item>
</layout>
</widget>
- <widget class="QWidget">
+ <widget class="QWidget" name="widget">
<layout class="QHBoxLayout">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
@@ -334,21 +317,12 @@ You can uncheck the box if you are not using transparency and \
you want to make t </item>
</layout>
</widget>
- <widget class="QWidget">
+ <widget class="QWidget" name="widget">
<layout class="QHBoxLayout">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
@@ -456,21 +430,12 @@ You can uncheck the box if you are not using transparency and \
you want to make t </item>
</layout>
</widget>
- <widget class="QWidget">
+ <widget class="QWidget" name="widget">
<layout class="QHBoxLayout">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
@@ -519,21 +484,12 @@ You can uncheck the box if you are not using transparency and \
you want to make t </item>
</layout>
</widget>
- <widget class="QWidget">
+ <widget class="QWidget" name="widget">
<layout class="QHBoxLayout">
<property name="spacing">
<number>0</number>
</property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>0</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
+ <property name="margin">
<number>0</number>
</property>
<item>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic