Author: jghali
Date: Tue Mar 10 15:45:26 2020
New Revision: 23498

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23498
Log:
Refactor DashPreview class

Modified:
    trunk/Scribus/scribus/ui/dasheditor.cpp
    trunk/Scribus/scribus/ui/dasheditor.h

Modified: trunk/Scribus/scribus/ui/dasheditor.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23498&path=/trunk/Scribus/scribus/ui/dasheditor.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/dasheditor.cpp     (original)
+++ trunk/Scribus/scribus/ui/dasheditor.cpp     Tue Mar 10 15:45:26 2020
@@ -25,7 +25,9 @@
 
 #include <QApplication>
 #include <QCursor>
+#include <QDoubleSpinBox>
 #include <QEvent>
+#include <QLabel>
 #include <QMouseEvent>
 #include <QPaintEvent>
 #include <QPainter>
@@ -46,55 +48,54 @@
        setMinimumSize(QSize(200, 35));
        setMaximumSize(QSize(3000, 35));
        setMouseTracking(true);
-       Mpressed = false;
-       outside = false;
-       onlyselect = true;
-       StopM.clear();
-       ActStop = 0;
-       DashValues.clear();
-       DashValues.append(4.0);
-       DashValues.append(2.0);
+
+       m_dashValues.clear();
+       m_dashValues.append(4.0);
+       m_dashValues.append(2.0);
 } 
 
 void DashPreview::paintEvent(QPaintEvent *e)
 {
-       if (onlyselect)
-               StopM.clear();
-       int pWidth = width()-20;
+       if (m_onlySelect)
+               m_stops.clear();
+
+       int pWidth = width() - 20;
        QImage pixm(pWidth, 10, QImage::Format_ARGB32_Premultiplied);
+
        ScPainter *p = new ScPainter(&pixm, pWidth, 10);
        p->clear(QColor(128, 128, 128));
        double startX = 0.0;
        p->setLineWidth(0);
        p->setFillMode(1);
        p->setBrush(Qt::black);
-       for (int a = 0; a < DashValues.count(); a++)
-       {
-               if (a % 2 == 0)
+       for (int i = 0; i < m_dashValues.count(); i++)
+       {
+               if (i % 2 == 0)
                        p->setBrush(Qt::black);
                else
                        p->setBrush(Qt::white);
-               double w = DashValues[a] * 10;
+               double w = m_dashValues[i] * 10;
                p->drawRect(startX, 0, w, 10);
                startX += w;
-               if (onlyselect)
-                       StopM.append(startX);
+               if (m_onlySelect)
+                       m_stops.append(startX);
        }
        p->setPen(Qt::black, 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
        p->setFillMode(0);
        p->drawRect(0, 0, pWidth, 10);
        p->end();
        delete p;
+
        QPainter pw;
        pw.begin(this);
        pw.drawImage(10, 5, pixm);
-       for (int a = 0; a < StopM.count(); ++a)
-       {
-               double center = StopM[a]+10;
+       for (int i = 0; i < m_stops.count(); ++i)
+       {
+               double center = m_stops[i] + 10;
                pw.setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::FlatCap, 
Qt::MiterJoin));
-               if (ActStop == a)
-               {
-                       emit currStep(DashValues[ActStop]);
+               if (m_currentStop == i)
+               {
+                       emit currStep(m_dashValues[m_currentStop]);
                        pw.setBrush(Qt::red);
                }
                else
@@ -104,25 +105,28 @@
                pw.drawPolygon(cr);
        }
        pw.end();
+
        QFrame::paintEvent(e);
-       onlyselect = true;
+       m_onlySelect = true;
 }
 
 void DashPreview::mousePressEvent(QMouseEvent *m)
 {
        QRect fpo;
        m_moveTimer.start();
-       Mpressed = true;
-       ActStop = -1;
+       m_mousePressed = true;
+       m_currentStop = -1;
+
        m->accept();
        qApp->setOverrideCursor(QCursor(Qt::ArrowCursor));
-       for (int yg = 0; yg < StopM.count(); ++yg)
-       {
-               fpo = QRect(static_cast<int>(StopM[yg]) + 6, 16, 8, 13);
+
+       for (int i = 0; i < m_stops.count(); ++i)
+       {
+               fpo = QRect(static_cast<int>(m_stops[i]) + 6, 16, 8, 13);
                if (fpo.contains(m->pos()))
                {
-                       ActStop = yg;
-                       emit currStep(DashValues[ActStop]);
+                       m_currentStop = i;
+                       emit currStep(m_dashValues[m_currentStop]);
                        repaint();
                        return;
                }
@@ -133,78 +137,79 @@
 {
        m->accept();
        qApp->restoreOverrideCursor();
-       if ((Mpressed) && (StopM.count() > 2) && (outside || m->y() > 30))
-       {
-               StopM.removeAt(ActStop);
-               DashValues.clear();
+       if ((m_mousePressed) && (m_stops.count() > 2) && (m_outside || m->y() > 
30))
+       {
+               m_stops.removeAt(m_currentStop);
+               m_dashValues.clear();
                double startX = 0.0;
-               for (int yg = 0; yg < StopM.count(); ++yg)
-               {
-                       double w = StopM[yg] / 10.0 - startX;
-                       DashValues.append(w);
+               for (int i = 0; i < m_stops.count(); ++i)
+               {
+                       double w = m_stops[i] / 10.0 - startX;
+                       m_dashValues.append(w);
                        startX += w;
                }
-               ActStop = 0;
-               onlyselect = true;
-               Mpressed = false;
+               m_currentStop = 0;
+               m_onlySelect = true;
+               m_mousePressed = false;
                repaint();
-               emit currStep(DashValues[ActStop]);
+               emit currStep(m_dashValues[m_currentStop]);
                emit dashChanged();
                return;
        }
        if ((m->y() < height()) && (m->y() > 16) && (m->x() > 9) && (m->x() < 
width() - 9))
        {
-               if (ActStop != -1)
+               if (m_currentStop != -1)
                {
                        if (m_moveTimer.elapsed() < 250)
                        {
-                               Mpressed = false;
+                               m_mousePressed = false;
                                return;
                        }
-                       StopM[ActStop] = m->x()-10;
-               }
-               else
-               {
-                       if (DashValues.count() < 10)
-                               StopM.append(m->x()-10);
-                       qSort(StopM.begin(), StopM.end());
-                       ActStop = 0;
-                       for (int yg = 0; yg < StopM.count(); ++yg)
+                       m_stops[m_currentStop] = m->x() - 10;
+               }
+               else
+               {
+                       if (m_dashValues.count() < 10)
+                               m_stops.append(m->x() - 10);
+                       qSort(m_stops.begin(), m_stops.end());
+                       m_currentStop = 0;
+                       for (int i = 0; i < m_stops.count(); ++i)
                        {
-                               QRect fpo = QRect(static_cast<int>(StopM[yg]) + 
6, 16, 8, 13);
+                               QRect fpo = QRect(static_cast<int>(m_stops[i]) 
+ 6, 16, 8, 13);
                                if (fpo.contains(m->pos()))
                                {
-                                       ActStop = yg;
+                                       m_currentStop = i;
                                        break;
                                }
                        }
                }
-               DashValues.clear();
+               m_dashValues.clear();
                double startX = 0.0;
-               for (int yg = 0; yg < StopM.count(); ++yg)
-               {
-                       double w = StopM[yg] / 10.0 - startX;
-                       DashValues.append(w);
+               for (int i = 0; i < m_stops.count(); ++i)
+               {
+                       double w = m_stops[i] / 10.0 - startX;
+                       m_dashValues.append(w);
                        startX += w;
                }
-               onlyselect = true;
+               m_onlySelect = true;
                repaint();
-               emit currStep(DashValues[ActStop]);
+               emit currStep(m_dashValues[m_currentStop]);
                emit dashChanged();
        }
-       Mpressed = false;
+       m_mousePressed = false;
 }
 
 void DashPreview::mouseMoveEvent(QMouseEvent *m)
 {
        m->accept();
+
        QRect fpo;
-       if ((!Mpressed) && (m->y() < height()) && (m->y() > 16) && (m->x() > 9) 
&& (m->x() < width()-9) && (DashValues.count() < 10))
+       if ((!m_mousePressed) && (m->y() < height()) && (m->y() > 16) && 
(m->x() > 9) && (m->x() < width() - 9) && (m_dashValues.count() < 10))
        {
                setCursor(IconManager::instance().loadCursor("AddPoint.png", 1, 
1));
-               for (int yg = 0; yg < StopM.count(); ++yg)
-               {
-                       fpo = QRect(static_cast<int>(StopM[yg])+6, 16, 8, 13);
+               for (int i = 0; i < m_stops.count(); ++i)
+               {
+                       fpo = QRect(static_cast<int>(m_stops[i]) + 6, 16, 8, 
13);
                        if (fpo.contains(m->pos()))
                        {
                                setCursor(QCursor(Qt::SizeHorCursor));
@@ -212,80 +217,80 @@
                        }
                }
        }
-       if ((Mpressed) && (m->y() < height()) && (m->y() > 16) && (m->x() > 9) 
&& (m->x() < width()-9) && (ActStop != -1))
+       if ((m_mousePressed) && (m->y() < height()) && (m->y() > 16) && (m->x() 
> 9) && (m->x() < width() - 9) && (m_currentStop != -1))
        {
                qApp->changeOverrideCursor(QCursor(Qt::SizeHorCursor));
-               if (ActStop > 1)
-               {
-                       if (static_cast<int>(StopM[ActStop-1]+10)+2 >= m->x())
+               if (m_currentStop > 1)
+               {
+                       if (static_cast<int>(m_stops[m_currentStop - 1] + 10) + 
2 >= m->x())
                                return;
                }
-               if (ActStop < static_cast<int>(StopM.count()-2))
-               {
-                       if (static_cast<int>(StopM[ActStop+1]+10)-2 < m->x())
+               if (m_currentStop < static_cast<int>(m_stops.count() - 2))
+               {
+                       if (static_cast<int>(m_stops[m_currentStop + 1] + 10) - 
2 < m->x())
                                return;
                }
-               StopM[ActStop] = m->x()-10;
-               DashValues.clear();
+               m_stops[m_currentStop] = m->x() - 10;
+               m_dashValues.clear();
                double startX = 0.0;
-               for (int yg = 0; yg < StopM.count(); ++yg)
-               {
-                       double w = StopM[yg] / 10.0 - startX;
-                       DashValues.append(w);
+               for (int i = 0; i < m_stops.count(); ++i)
+               {
+                       double w = m_stops[i] / 10.0 - startX;
+                       m_dashValues.append(w);
                        startX += w;
                }
-               onlyselect = true;
+               m_onlySelect = true;
                repaint();
                startX = 0.0;
-               for (int yg = 0; yg < ActStop; ++yg)
-               {
-                       startX += StopM[yg] / 10.0 - startX;
-               }
-               emit currStep(StopM[ActStop] / 10.0 - startX);
-       }
-       if ((Mpressed) && (outside || m->y() > 30) && (ActStop >= 0) && 
(StopM.count() > 2))
+               for (int i = 0; i < m_currentStop; ++i)
+               {
+                       startX += m_stops[i] / 10.0 - startX;
+               }
+               emit currStep(m_stops[m_currentStop] / 10.0 - startX);
+       }
+       if ((m_mousePressed) && (m_outside || m->y() > 30) && (m_currentStop >= 
0) && (m_stops.count() > 2))
                
qApp->changeOverrideCursor(IconManager::instance().loadCursor("DelPoint.png", 
1, 1));
 }
 
 void DashPreview::leaveEvent(QEvent*)
 {
-       if (Mpressed)
-       {
-               if ((ActStop >= 0) && (StopM.count() > 2))
+       if (m_mousePressed)
+       {
+               if ((m_currentStop >= 0) && (m_stops.count() > 2))
                        
qApp->changeOverrideCursor(IconManager::instance().loadCursor("DelPoint.png", 
1, 1));
                else
                        qApp->changeOverrideCursor(QCursor(Qt::ArrowCursor));
        }
-       outside = true;
+       m_outside = true;
 }
 
 void DashPreview::enterEvent(QEvent*)
 {
-       outside = false;
+       m_outside = false;
 }
 
 void DashPreview::setActStep(double t)
 {
-       if (ActStop == -1)
+       if (m_currentStop == -1)
                return;
-       DashValues[ActStop] = t;
-       onlyselect = true;
+       m_dashValues[m_currentStop] = t;
+       m_onlySelect = true;
        repaint();
        emit dashChanged();
 }
 
 void DashPreview::setDashValues(const QVector<double>& vals)
 {
-       DashValues = vals;
-       if ((ActStop >= vals.count()) || (ActStop == -1))
-               ActStop = 0;
-       onlyselect = true;
-       if (DashValues.count() != 0)
-       {
-               if ((ActStop >= vals.count()) || (ActStop == -1))
-                       emit currStep(DashValues[0]);
-               else
-                       emit currStep(DashValues[ActStop]);
+       m_dashValues = vals;
+       if ((m_currentStop >= vals.count()) || (m_currentStop == -1))
+               m_currentStop = 0;
+       m_onlySelect = true;
+       if (m_dashValues.count() != 0)
+       {
+               if ((m_currentStop >= vals.count()) || (m_currentStop == -1))
+                       emit currStep(m_dashValues[0]);
+               else
+                       emit currStep(m_dashValues[m_currentStop]);
        }
        update();
 }
@@ -339,11 +344,10 @@
 void DashEditor::setDashValues(QVector<double> vals, double linewidth, double 
offset)
 {
        QVector<double> tmp;
-       for (int a = 0; a < vals.count(); a++)
-       {
-               tmp.append(vals[a] / linewidth);
-       }
+       for (int i = 0; i < vals.count(); i++)
+               tmp.append(vals[i] / linewidth);
        Preview->setDashValues(tmp);
+
        disconnect(Offset, SIGNAL(valueChanged(double)), this, 
SIGNAL(dashChanged()));
        Offset->setValue(offset / linewidth);
        connect(Offset, SIGNAL(valueChanged(double)), this, 
SIGNAL(dashChanged()));
@@ -351,12 +355,10 @@
 
 QVector<double> DashEditor::getDashValues(double linewidth)
 {
-       QVector<double> tmp;
-       for (int a = 0; a < Preview->DashValues.count(); a++)
-       {
-               tmp.append(Preview->DashValues[a] * linewidth);
-       }
-       return tmp;
+       auto dashValues = Preview->dashValues();
+       for (int i = 0; i < dashValues.count(); i++)
+               dashValues[i] *= linewidth;
+       return dashValues;
 }
 
 void DashEditor::changeEvent(QEvent *e)

Modified: trunk/Scribus/scribus/ui/dasheditor.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23498&path=/trunk/Scribus/scribus/ui/dasheditor.h
==============================================================================
--- trunk/Scribus/scribus/ui/dasheditor.h       (original)
+++ trunk/Scribus/scribus/ui/dasheditor.h       Tue Mar 10 15:45:26 2020
@@ -24,18 +24,18 @@
 #ifndef DASHEDITOR_H
 #define DASHEDITOR_H
 
-#include <QLabel>
+#include <QElapsedTimer>
 #include <QFrame>
-#include <QDoubleSpinBox>
+#include <QHBoxLayout>
 #include <QLayout>
 #include <QList>
+#include <QMouseEvent>
 #include <QPaintEvent>
-#include <QMouseEvent>
 #include <QVBoxLayout>
-#include <QHBoxLayout>
-#include <QTime>
 
+class QDoubleSpinBox;
 class QEvent;
+class QLabel;
 
 #include "scribusapi.h"
 #include "vgradient.h"
@@ -47,23 +47,29 @@
 public:
        DashPreview(QWidget *pa);
        ~DashPreview() {};
-       void paintEvent(QPaintEvent *e);
-       void mousePressEvent(QMouseEvent *m);
-       void mouseReleaseEvent(QMouseEvent *);
-       void mouseMoveEvent(QMouseEvent *m);
-       void leaveEvent(QEvent*);
-       void enterEvent(QEvent*);
+
+       void paintEvent(QPaintEvent *e) override;
+       void mousePressEvent(QMouseEvent *m) override;
+       void mouseReleaseEvent(QMouseEvent *) override;
+       void mouseMoveEvent(QMouseEvent *m) override;
+       void leaveEvent(QEvent*) override;
+       void enterEvent(QEvent*) override;
+
+       const QVector<double>& dashValues() const { return m_dashValues; }
        void setDashValues(const QVector<double>& vals);
-       QVector<double> DashValues;
-       QList<double> StopM;
-       bool Mpressed;
-       bool outside;
-       bool onlyselect;
-       int ActStop;
-       QTime m_moveTimer;
 
 public slots:
        void setActStep(double t);
+
+private:
+       bool  m_onlySelect { true };
+       bool  m_outside { false };
+       bool  m_mousePressed { false };
+       int   m_currentStop { 0 };
+       QElapsedTimer m_moveTimer;
+
+       QVector<double> m_dashValues;
+       QList<double>   m_stops;
 
 signals:
        void currStep(double);


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

Reply via email to