[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita/video-export-rebased] libs/ui: Pass the override export configuration down
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2016-06-30 19:30:27
Message-ID: E1bIhfP-0000oy-It () code ! kde ! org
[Download RAW message or body]

Git commit 44c9f399d8ad473248b0986d9facdcf20e2da7ff by Boudewijn Rempt.
Committed on 30/06/2016 at 19:29.
Pushed by rempt into branch 'video-export-rebased'.

Pass the override export configuration down

All the way down to the import/export filter... It needs to have
a better name, though.

M  +8    -8    libs/ui/KisDocument.cpp
M  +5    -4    libs/ui/KisDocument.h
M  +5    -0    libs/ui/KisFilterChain.cpp
M  +1    -0    libs/ui/KisFilterChain.h
M  +1    -1    libs/ui/KisFilterChainLink.cpp
M  +2    -1    libs/ui/KisImportExportManager.cpp
M  +19   -5    libs/ui/KisImportExportManager.h
M  +3    -5    libs/ui/kis_animation_exporter.cpp

http://commits.kde.org/krita/44c9f399d8ad473248b0986d9facdcf20e2da7ff

diff --git a/libs/ui/KisDocument.cpp b/libs/ui/KisDocument.cpp
index 9f4c502..afbe2ec 100644
--- a/libs/ui/KisDocument.cpp
+++ b/libs/ui/KisDocument.cpp
@@ -601,7 +601,7 @@ bool KisDocument::reload()
     return false;
 }
 
-bool KisDocument::exportDocument(const QUrl &_url)
+bool KisDocument::exportDocument(const QUrl &_url, KisPropertiesConfigurationSP \
exportConfiguration)  {
     bool ret;
 
@@ -622,7 +622,7 @@ bool KisDocument::exportDocument(const QUrl &_url)
     QByteArray oldMimeType = mimeType();
 
     // save...
-    ret = saveAs(_url);
+    ret = saveAs(_url, exportConfiguration);
 
 
     //
@@ -649,7 +649,7 @@ bool KisDocument::exportDocument(const QUrl &_url)
     return ret;
 }
 
-bool KisDocument::saveFile()
+bool KisDocument::saveFile(KisPropertiesConfigurationSP exportConfiguration)
 {
     dbgUI << "doc=" << url().url();
 
@@ -681,7 +681,7 @@ bool KisDocument::saveFile()
 
         Private::SafeSavingLocker locker(d);
         if (locker.successfullyLocked()) {
-            status = d->filterManager->exportDocument(localFilePath(), \
outputMimeType); +            status = \
d->filterManager->exportDocument(localFilePath(), outputMimeType, \
exportConfiguration);  } else {
             status = KisImportExportFilter::UsageError;
         }
@@ -2096,7 +2096,7 @@ bool KisDocument::closeUrl(bool promptToSave)
 }
 
 
-bool KisDocument::saveAs(const QUrl &kurl)
+bool KisDocument::saveAs(const QUrl &kurl, KisPropertiesConfigurationSP \
exportConfiguration)  {
     if (!kurl.isValid())
     {
@@ -2108,7 +2108,7 @@ bool KisDocument::saveAs(const QUrl &kurl)
     d->m_originalFilePath = d->m_file;
     d->m_url = kurl; // Store where to upload in saveToURL
     d->prepareSaving();
-    bool result = save(); // Save local file and upload local file
+    bool result = save(exportConfiguration); // Save local file and upload local \
file  if (!result) {
         d->m_url = d->m_originalURL;
         d->m_file = d->m_originalFilePath;
@@ -2123,7 +2123,7 @@ bool KisDocument::saveAs(const QUrl &kurl)
 
 
 
-bool KisDocument::save()
+bool KisDocument::save(KisPropertiesConfigurationSP exportConfiguration)
 {
     d->m_saveOk = false;
     if ( d->m_file.isEmpty() ) { // document was created empty
@@ -2135,7 +2135,7 @@ bool KisDocument::save()
     d->document->setFileProgressProxy();
     d->document->setUrl(url());
 
-    bool ok = d->document->saveFile();
+    bool ok = d->document->saveFile(exportConfiguration);
 
     d->document->clearFileProgressProxy();
 
diff --git a/libs/ui/KisDocument.h b/libs/ui/KisDocument.h
index c0ec301..efdc514 100644
--- a/libs/ui/KisDocument.h
+++ b/libs/ui/KisDocument.h
@@ -31,6 +31,7 @@
 #include <KoDocumentBase.h>
 #include <kundo2stack.h>
 
+#include <kis_properties_configuration.h>
 #include <kis_types.h>
 #include <kis_painting_assistant.h>
 #include <kis_debug.h>
@@ -132,7 +133,7 @@ public:
      *       from an ordinary Save operation (in any reimplementation of
      *       saveFile()) call isExporting().
      */
-    bool exportDocument(const QUrl &url);
+    bool exportDocument(const QUrl &url, KisPropertiesConfigurationSP \
exportConfiguration = 0);  
     /**
      * @brief Sets whether the document can be edited or is read only.
@@ -631,7 +632,7 @@ private:
      *  Applies a filter if necessary, and calls saveNativeFormat in any case
      *  You should not have to reimplement, except for very special cases.
      */
-    bool saveFile();
+    bool saveFile(KisPropertiesConfigurationSP exportConfiguration = 0);
 
     /**
      *  Overload this function if you have to load additional files
@@ -692,11 +693,11 @@ public:
 
     bool closeUrl(bool promptToSave = true);
 
-    bool saveAs( const QUrl &url );
+    bool saveAs(const QUrl &url, KisPropertiesConfigurationSP exportConfigration = \
0);  
 public Q_SLOTS:
 
-    bool save();
+    bool save(KisPropertiesConfigurationSP exportConfiguration = 0);
     bool waitSaveComplete();
 
 Q_SIGNALS:
diff --git a/libs/ui/KisFilterChain.cpp b/libs/ui/KisFilterChain.cpp
index 3ac53f7..92cb913 100644
--- a/libs/ui/KisFilterChain.cpp
+++ b/libs/ui/KisFilterChain.cpp
@@ -194,6 +194,11 @@ KisDocument* KisFilterChain::outputDocument()
     return m_outputDocument;
 }
 
+KisPropertiesConfigurationSP KisFilterChain::filterManagerExportConfiguration() \
const +{
+    return m_manager->exportConfiguration();
+}
+
 void KisFilterChain::prependChainLink(KisFilterEntrySP filterEntry, const \
QByteArray& from, const QByteArray& to)  {
     m_chainLinks.prepend(new ChainLink(this, filterEntry, from, to));
diff --git a/libs/ui/KisFilterChain.h b/libs/ui/KisFilterChain.h
index a77380d..cabbd5f 100644
--- a/libs/ui/KisFilterChain.h
+++ b/libs/ui/KisFilterChain.h
@@ -109,6 +109,7 @@ public:
      */
     KisDocument* outputDocument();
 
+    KisPropertiesConfigurationSP filterManagerExportConfiguration() const;
 
     /// returns the amount of filters this chain contains representing the weight
     int weight() const;
diff --git a/libs/ui/KisFilterChainLink.cpp b/libs/ui/KisFilterChainLink.cpp
index f21717e..a10ee55 100644
--- a/libs/ui/KisFilterChainLink.cpp
+++ b/libs/ui/KisFilterChainLink.cpp
@@ -79,7 +79,7 @@ namespace CalligraFilter {
             m_filter->setUpdater(m_updater);
         }
 
-        KisImportExportFilter::ConversionStatus status = m_filter->convert(m_from, \
m_to, 0); +        KisImportExportFilter::ConversionStatus status = \
m_filter->convert(m_from, m_to, m_chain->filterManagerExportConfiguration());  delete \
m_filter;  m_filter = 0;
         if (m_updater) {
diff --git a/libs/ui/KisImportExportManager.cpp b/libs/ui/KisImportExportManager.cpp
index 80c7f4f..226d4d3 100644
--- a/libs/ui/KisImportExportManager.cpp
+++ b/libs/ui/KisImportExportManager.cpp
@@ -164,7 +164,7 @@ QString KisImportExportManager::importDocument(const QString& \
location,  return QString();
 }
 
-KisImportExportFilter::ConversionStatus KisImportExportManager::exportDocument(const \
QString& location, QByteArray& mimeType) +KisImportExportFilter::ConversionStatus \
KisImportExportManager::exportDocument(const QString& location, QByteArray& mimeType, \
KisPropertiesConfigurationSP exportConfiguration)  {
     bool userCancelled = false;
 
@@ -172,6 +172,7 @@ KisImportExportFilter::ConversionStatus \
                KisImportExportManager::exportDocument(c
     // file manager and to the correct URL if we have an embedded manager)
     m_direction = Export; // vital information!
     m_exportFileName = location;
+    m_exportConfiguration = exportConfiguration;
 
     KisFilterChainSP chain;
 
diff --git a/libs/ui/KisImportExportManager.h b/libs/ui/KisImportExportManager.h
index 72049b3..bb2b3c0 100644
--- a/libs/ui/KisImportExportManager.h
+++ b/libs/ui/KisImportExportManager.h
@@ -101,7 +101,7 @@ public:
      * and when the method returns @p mimeType contains this mimetype.
      * Oh, well, export is a C++ keyword ;)
      */
-    KisImportExportFilter::ConversionStatus exportDocument(const QString& location, \
QByteArray& mimeType); +    KisImportExportFilter::ConversionStatus \
exportDocument(const QString& location, QByteArray& mimeType, \
KisPropertiesConfigurationSP exportConfiguration = 0);  
     ///@name Static API
     //@{
@@ -148,22 +148,35 @@ private:
     // just forward calls to the methods here. Should be
     // pretty safe.
     friend QString KisFilterChain::filterManagerImportFile() const;
-    QString importFile() const {
+    QString importFile() const
+    {
         return m_importFileName;
     }
+
     friend QString KisFilterChain::filterManagerExportFile() const;
-    QString exportFile() const {
+    QString exportFile() const
+    {
         return m_exportFileName;
     }
+
     friend KisDocument *KisFilterChain::filterManagerKisDocument() const;
-    KisDocument *document() const {
+    KisDocument *document() const
+    {
         return m_document;
     }
+
     friend int KisFilterChain::filterManagerDirection() const;
-    int direction() const {
+    int direction() const
+    {
         return static_cast<int>(m_direction);
     }
 
+    friend KisPropertiesConfigurationSP \
KisFilterChain::filterManagerExportConfiguration() const; +    \
KisPropertiesConfigurationSP exportConfiguration() const +    {
+        return m_exportConfiguration;
+    }
+
     // Private API
     KisImportExportManager(const KisImportExportManager& rhs);
     KisImportExportManager &operator=(const KisImportExportManager& rhs);
@@ -178,6 +191,7 @@ private:
     QString m_exportFileName;
     CalligraFilter::Graph m_graph;
     Direction m_direction;
+    KisPropertiesConfigurationSP m_exportConfiguration;
 
     /// A static cache for the availability checks of filters
     static QStringList m_importMimeTypes;
diff --git a/libs/ui/kis_animation_exporter.cpp b/libs/ui/kis_animation_exporter.cpp
index 1b04cf6..7012cea 100644
--- a/libs/ui/kis_animation_exporter.cpp
+++ b/libs/ui/kis_animation_exporter.cpp
@@ -288,7 +288,6 @@ struct KisAnimationExportSaver::Private
 KisAnimationExportSaver::KisAnimationExportSaver(KisDocument *document, const \
                QString &baseFilename, int fromTime, int toTime, int \
                sequenceNumberingOffset)
     : m_d(new Private(document, fromTime, toTime, sequenceNumberingOffset))
 {
-    qDebug() << "Rendering" << baseFilename << "from" << fromTime << "to" << toTime \
<< "start" << sequenceNumberingOffset;  int baseLength = \
baseFilename.lastIndexOf(".");  if (baseLength > -1) {
         m_d->filenamePrefix = baseFilename.left(baseLength);
@@ -317,16 +316,15 @@ KisImportExportFilter::ConversionStatus \
KisAnimationExportSaver::exportAnimation  
 KisImportExportFilter::ConversionStatus \
KisAnimationExportSaver::saveFrameCallback(int time, KisPaintDeviceSP frame, \
KisPropertiesConfigurationSP exportConfiguration)  {
-    KisImportExportFilter::ConversionStatus status =
-        KisImportExportFilter::OK;
+    KisImportExportFilter::ConversionStatus status = KisImportExportFilter::OK;
 
     QString frameNumber = QString("%1").arg(time + m_d->sequenceNumberingOffset, 4, \
                10, QChar('0'));
-    QString filename = m_d->filenamePrefix + frameNumber    + m_d->filenameSuffix;
+    QString filename = m_d->filenamePrefix + frameNumber + m_d->filenameSuffix;
 
     QRect rc = m_d->image->bounds();
     KisPainter::copyAreaOptimized(rc.topLeft(), frame, m_d->tmpDevice, rc);
 
-    if (!m_d->tmpDoc->exportDocument(QUrl::fromLocalFile(filename))) {
+    if (!m_d->tmpDoc->exportDocument(QUrl::fromLocalFile(filename)), \
exportConfiguration) {  status = KisImportExportFilter::InternalError;
     }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic