Author: jghali
Date: Sun Oct 21 12:24:39 2018
New Revision: 22739

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22739
Log:
#15457: Incorrect rendering of LaTeX Render Frames after toggling color 
management

Modified:
    trunk/Scribus/scribus/pageitem.h
    trunk/Scribus/scribus/pageitem_latexframe.cpp
    trunk/Scribus/scribus/pageitem_latexframe.h

Modified: trunk/Scribus/scribus/pageitem.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22739&path=/trunk/Scribus/scribus/pageitem.h
==============================================================================
--- trunk/Scribus/scribus/pageitem.h    (original)
+++ trunk/Scribus/scribus/pageitem.h    Sun Oct 21 12:24:39 2018
@@ -1191,7 +1191,7 @@
         * @brief Load an image into an image frame, moved from ScribusView
         * @return True if load succeeded
         */
-       bool loadImage(const QString& filename, const bool reload, const int 
gsResolution=-1, bool showMsg = false);
+       virtual bool loadImage(const QString& filename, const bool reload, 
const int gsResolution=-1, bool showMsg = false);
 
 
        /**

Modified: trunk/Scribus/scribus/pageitem_latexframe.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22739&path=/trunk/Scribus/scribus/pageitem_latexframe.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_latexframe.cpp       (original)
+++ trunk/Scribus/scribus/pageitem_latexframe.cpp       Sun Oct 21 12:24:39 2018
@@ -156,6 +156,40 @@
                //Just pass it to ImageFrame
                PageItem_ImageFrame::DrawObj_Item(p, e);
        }
+}
+
+bool PageItem_LatexFrame::loadImage(const QString & filename, const bool 
reload, const int gsResolution, bool showMsg)
+{
+       //Save state and restore afterwards
+       double xres, yres;
+       if (imageIsAvailable)
+       {
+               xres = pixm.imgInfo.xres;
+               yres = pixm.imgInfo.yres;
+       }
+       else
+       {
+               xres = yres = realDpi();
+       }
+       double scaleX = m_imageXScale * xres;
+       double scaleY = m_imageYScale * yres;
+       double offX = m_imageXOffset / xres;
+       double offY = m_imageYOffset / yres;
+
+       bool imageLoaded = PageItem_ImageFrame::loadImage(imageFile, true, 
realDpi(), showMsg);
+       if (PrefsManager::instance()->latexForceDpi())
+       {
+               pixm.imgInfo.xres = pixm.imgInfo.yres = realDpi();
+       }
+       m_lastDpi = realDpi();
+
+       //Restore parameters, account for dpi changes
+       m_imageXScale = scaleX / pixm.imgInfo.xres;
+       m_imageYScale = scaleY / pixm.imgInfo.yres;
+       m_imageXOffset = offX  * pixm.imgInfo.xres;
+       m_imageYOffset = offY  * pixm.imgInfo.yres;
+
+       return imageLoaded;
 }
 
 void PageItem_LatexFrame::updateImage(int exitCode, QProcess::ExitStatus 
exitStatus)
@@ -200,33 +234,8 @@
        firstWarning = true;
        m_imgValid = true;
 
-       //Save state and restore afterwards
-       double xres, yres;
-       if (imageIsAvailable)
-       {
-               xres = pixm.imgInfo.xres;
-               yres = pixm.imgInfo.yres;
-       }
-       else
-       {
-               xres = yres = realDpi();
-       }
-       double scaleX = m_imageXScale * xres;
-       double scaleY = m_imageYScale * yres;
-       double offX   = m_imageXOffset / xres;
-       double offY   = m_imageYOffset / yres;
-       PageItem_ImageFrame::loadImage(imageFile, true, realDpi());
-       if (PrefsManager::instance()->latexForceDpi()) 
-       {
-               pixm.imgInfo.xres = pixm.imgInfo.yres = realDpi();
-       }
-       m_lastDpi = realDpi();
-       
-       //Restore parameters, account for dpi changes
-       m_imageXScale = scaleX / pixm.imgInfo.xres;
-       m_imageYScale = scaleY / pixm.imgInfo.yres;
-       m_imageXOffset = offX  * pixm.imgInfo.xres;
-       m_imageYOffset = offY  * pixm.imgInfo.yres;
+       loadImage(imageFile, true, realDpi(), false);
+
        //emit imageOffsetScale(LocalScX, LocalScY, LocalX, LocalY);
        update();
 }

Modified: trunk/Scribus/scribus/pageitem_latexframe.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22739&path=/trunk/Scribus/scribus/pageitem_latexframe.h
==============================================================================
--- trunk/Scribus/scribus/pageitem_latexframe.h (original)
+++ trunk/Scribus/scribus/pageitem_latexframe.h Sun Oct 21 12:24:39 2018
@@ -56,6 +56,12 @@
                virtual void applicableActions(QStringList& actionList);
                virtual QString infoDescription() const;
                void layout();
+
+               /**
+               * @brief Load an image into an image frame, moved from 
ScribusView
+               * @return True if load succeeded
+               */
+               bool loadImage(const QString& filename, const bool reload, 
const int gsResolution = -1, bool showMsg = false) override;
                
                /** @brief Perform undo/redo action */
                void restore(UndoState *state, bool isUndo);
@@ -91,6 +97,7 @@
                int error() const { return m_err; }
 
                QMap<QString,QString> editorProperties;
+
        protected:
                virtual void DrawObj_Item(ScPainter *p, QRectF e);
                double m_lastWidth, m_lastHeight, m_lastDpi;
@@ -113,14 +120,17 @@
                bool m_imgValid;
                bool m_usePreamble;
                bool m_killed;
+
        signals:
                void formulaAutoUpdate(QString oldText, QString newText);
                void latexFinished();
                void stateChanged(QProcess::ProcessState state);
                void applicationChanged();
+
        protected slots:
                void updateImage(int exitCode, QProcess::ExitStatus exitStatus);
                void latexError(QProcess::ProcessError error);
+
        public slots:
                void killProcess();
                void setDpi(int dpi);


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to