1 /* 2 For general Scribus (>=1.3.2) copyright and licensing information please refer 3 to the COPYING file provided with the program. Following this notice may exist 4 a copyright and/or license notice that predates the release of Scribus 1.3.2 5 for which a new license (GPL+exception) is in place. 6 */ 7 #ifndef EFFECTSDIALOG_H 8 #define EFFECTSDIALOG_H 9 10 #include <QDialog> 11 #include <QMap> 12 #include <QElapsedTimer> 13 14 #include "scribusapi.h" 15 #include "scimage.h" 16 17 class QComboBox; 18 class QGridLayout; 19 class QGroupBox; 20 class QHBoxLayout; 21 class QLabel; 22 class QListWidget; 23 class QListWidgetItem; 24 class QMenu; 25 class QPushButton; 26 class QSlider; 27 class QSpacerItem; 28 class QStackedWidget; 29 class QToolButton; 30 class QVBoxLayout; 31 class QWidget; 32 class QWidgetAction; 33 34 class ColorCombo; 35 class CurveWidget; 36 class PageItem; 37 class ScribusDoc; 38 class ScrSpinBox; 39 class ShadeButton; 40 41 class SCRIBUS_API EffectsDialog : public QDialog 42 { 43 Q_OBJECT 44 45 public: 46 EffectsDialog( QWidget* parent, PageItem* item, ScribusDoc* docc ); ~EffectsDialog()47 ~EffectsDialog() {}; 48 void selectEffectHelper(bool final = false); 49 void setItemSelectable(QListWidget* widget, int itemNr, bool enable); 50 51 QLabel* pixmapLabel1; 52 QLabel* textLabel1; 53 QLabel* textLabel2; 54 QLabel* textLabel3; 55 QLabel* textLabel4; 56 QLabel* textLabel5; 57 QLabel* textLabel6; 58 QLabel* textLabel7; 59 QLabel* textLabel8; 60 QLabel* textLabel9; 61 QLabel* textLabel10; 62 QLabel* textLabel11; 63 QLabel* textLabel12; 64 QLabel* textLabel14; 65 QLabel* textLabel15; 66 QStackedWidget* optionStack; 67 QWidget* WStackPage; 68 QWidget* WStackPage_2; 69 ColorCombo* colData; 70 ShadeButton *shade; 71 QWidget* WStackPage_3; 72 QSlider* brightnessSlider; 73 QWidget* WStackPage_4; 74 QSlider* contrastSlider; 75 QWidget* WStackPage_5; 76 ScrSpinBox* shRadius; 77 ScrSpinBox* shValue; 78 QWidget* WStackPage_6; 79 ScrSpinBox* blRadius; 80 QWidget* WStackPage_7; 81 QSlider* solarizeSlider; 82 QWidget* WStackPage_8; 83 QLabel* textLabel1d; 84 ColorCombo* colData1; 85 ShadeButton *shade1; 86 CurveWidget *CurveD1; 87 QToolButton *CurveD1Button; 88 QMenu *CurveD1Pop; 89 QWidgetAction* CurveD1Act; 90 QLabel* textLabel2d; 91 ColorCombo* colData2; 92 ShadeButton *shade2; 93 CurveWidget *CurveD2; 94 QToolButton *CurveD2Button; 95 QMenu *CurveD2Pop; 96 QWidgetAction* CurveD2Act; 97 98 QWidget* WStackPage_9; 99 QLabel* textLabel1t; 100 ColorCombo* colDatat1; 101 ShadeButton *shadet1; 102 CurveWidget *CurveT1; 103 QToolButton *CurveT1Button; 104 QMenu *CurveT1Pop; 105 QWidgetAction* CurveT1Act; 106 QLabel* textLabel2t; 107 ColorCombo* colDatat2; 108 ShadeButton *shadet2; 109 CurveWidget *CurveT2; 110 QToolButton *CurveT2Button; 111 QMenu *CurveT2Pop; 112 QWidgetAction* CurveT2Act; 113 QLabel* textLabel3t; 114 ColorCombo* colDatat3; 115 ShadeButton *shadet3; 116 CurveWidget *CurveT3; 117 QToolButton *CurveT3Button; 118 QMenu *CurveT3Pop; 119 QWidgetAction* CurveT3Act; 120 121 QWidget* WStackPage_10; 122 QLabel* textLabel1q; 123 ColorCombo* colDataq1; 124 ShadeButton *shadeq1; 125 CurveWidget *CurveQ1; 126 QToolButton *CurveQ1Button; 127 QMenu *CurveQ1Pop; 128 QWidgetAction* CurveQ1Act; 129 QLabel* textLabel2q; 130 ColorCombo* colDataq2; 131 ShadeButton *shadeq2; 132 CurveWidget *CurveQ2; 133 QToolButton *CurveQ2Button; 134 QMenu *CurveQ2Pop; 135 QWidgetAction* CurveQ2Act; 136 QLabel* textLabel3q; 137 ColorCombo* colDataqc3; 138 ShadeButton *shadeqc3; 139 CurveWidget *CurveQc3; 140 QToolButton *CurveQc3Button; 141 QMenu *CurveQc3Pop; 142 QWidgetAction* CurveQc3Act; 143 QLabel* textLabel4q; 144 ColorCombo* colDataq4; 145 ShadeButton *shadeq4; 146 CurveWidget *CurveQ4; 147 QToolButton *CurveQ4Button; 148 QMenu *CurveQ4Pop; 149 QWidgetAction* CurveQ4Act; 150 151 QWidget* WStackPage_11; 152 CurveWidget *Kdisplay; 153 154 QListWidget* usedEffects; 155 QPushButton* effectUp; 156 QPushButton* effectDown; 157 QPushButton* toEffects; 158 QPushButton* fromEffects; 159 QListWidget* availableEffects; 160 QPushButton* okButton; 161 QPushButton* cancelButton; 162 QListWidgetItem* currentOptions; 163 164 QGroupBox *groupBox; 165 QSpacerItem* spacer; 166 QSpacerItem* spacer3; 167 168 ScImageEffectList effectsList; 169 170 public slots: 171 virtual void leaveOK(); 172 virtual void updateSolarize(int val); 173 virtual void updateContrast(int val); 174 virtual void updateBright(int val); 175 virtual void createPreview(); 176 virtual void saveValues(bool final); 177 virtual void moveToEffects(); 178 virtual void moveFromEffects(); 179 virtual void moveEffectUp(); 180 virtual void moveEffectDown(); 181 virtual void selectEffect(QListWidgetItem* c); 182 virtual void selectAvailEffect(QListWidgetItem* c); 183 virtual void selectAvailEffectDbl(QListWidgetItem* c); 184 185 protected: 186 ScribusDoc* m_doc {nullptr}; 187 PageItem* m_item {nullptr}; 188 189 ScImage m_image; 190 double m_imageScale; 191 192 QElapsedTimer m_time; 193 QMap<QListWidgetItem*, QString> m_effectValMap; 194 195 QGridLayout* layoutGrid; 196 QVBoxLayout* EffectsDialogLayout; 197 QVBoxLayout* WStackPageLayout; 198 QVBoxLayout* WStackPage3Layout; 199 QHBoxLayout* layout20; 200 QVBoxLayout* WStackPage4Layout; 201 QHBoxLayout* layout21; 202 QVBoxLayout* WStackPage5Layout; 203 QHBoxLayout* layout22; 204 QHBoxLayout* layout23; 205 QVBoxLayout* WStackPage6Layout; 206 QHBoxLayout* layout24; 207 QVBoxLayout* WStackPage7Layout; 208 QGridLayout* WStackPage8Layout; 209 QGridLayout* WStackPage9Layout; 210 QGridLayout* WStackPage10Layout; 211 QVBoxLayout* WStackPage11Layout; 212 QHBoxLayout* layout26; 213 QHBoxLayout* layout17; 214 QHBoxLayout* layout19; 215 QVBoxLayout* layout8; 216 QHBoxLayout* layout7; 217 QHBoxLayout* layoutDialogButtonBox; 218 }; 219 220 #endif // EFFECTSDIALOG_H 221