MorphoGraphX  2.0-1-227
ColorEditDlg.hpp
Go to the documentation of this file.
1 //
2 // This file is part of MorphoGraphX - http://www.MorphoGraphX.org
3 // Copyright (C) 2012-2016 Richard S. Smith and collaborators.
4 //
5 // If you use MorphoGraphX in your work, please cite:
6 // http://dx.doi.org/10.7554/eLife.05864
7 //
8 // MorphoGraphX is free software, and is licensed under under the terms of the
9 // GNU General (GPL) Public License version 2.0, http://www.gnu.org/licenses.
10 //
11 #ifndef COLOR_EDIT_DLG_HPP
12 #define COLOR_EDIT_DLG_HPP
13 
14 #include <Config.hpp>
15 
16 #include <Color.hpp>
17 #include <ColorMap.hpp>
18 #include <Misc.hpp>
19 
20 #include <QAbstractListModel>
21 #include <vector>
22 #include <QDialog>
23 
24 class QAbstractButton;
25 class QPoint;
26 
27 class ColorModel : public QAbstractListModel
28 {
29 public:
30  ColorModel(std::vector<mgx::Colorb> &colors, mgx::Point2f &bounds);
31 
32  int rowCount(const QModelIndex& parent = QModelIndex()) const;
33  int columnCount(const QModelIndex& /*parent*/ = QModelIndex()) const { return 1; }
34 
35  Qt::ItemFlags flags(const QModelIndex& index) const;
36 
37  QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
38  bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
39 
40  void apply();
41  void reset();
42 
43  void presetColors(const QString &preset);
44  void loadPresetColors(const QString &preset);
45  void setNbColors(int n);
46  void setBoundsMin(float a) { boundsLocal[0] = a; }
47  void setBoundsMax(float a) { boundsLocal[1] = a; }
48 
49  bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex());
50  bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex());
51 
52 protected:
53  std::vector<mgx::Colorb> &colorsDest;
54  std::vector<mgx::Colorb> colorsLocal;
57 };
58 
59 namespace Ui
60 {
61  class ColorEditDlg;
62 }
63 
64 class mgx_EXPORT ColorEditDlg : public QDialog
65 {
66  Q_OBJECT
67 public:
68  ColorEditDlg(mgx::ColorMap &cMap, QWidget* parent);
69  ~ColorEditDlg();
70 
71 public slots:
72  //void interpolateColor();
73 
74 protected slots:
75  void on_buttonBox_clicked(QAbstractButton* btn);
76  void on_setNbColors_clicked();
77  void on_importColors_clicked();
78  void on_exportColors_clicked();
79  void on_presetColors_currentIndexChanged(QString);
80  void on_colorsView_doubleClicked(const QModelIndex &idx);
81  //void on_colorsView_customContextMenuRequested(const QPoint &pos);
82  void on_minBounds_valueChanged(double d);
83  void on_maxBounds_valueChanged(double d);
84  void changeNbItems();
85 
86 signals:
87  void update();
88 
89 protected:
93  Ui::ColorEditDlg* ui;
95 };
96 
97 #endif
ColorEditDlg::selectedColor
int selectedColor
Definition: ColorEditDlg.hpp:91
ColorModel::reset
void reset()
ColorModel::boundsDest
mgx::Point2f & boundsDest
Definition: ColorEditDlg.hpp:55
ColorEditDlg::colorMap
mgx::ColorMap & colorMap
Definition: ColorEditDlg.hpp:90
ColorModel::rowCount
int rowCount(const QModelIndex &parent=QModelIndex()) const
ColorModel::data
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
ColorModel::setBoundsMax
void setBoundsMax(float a)
Definition: ColorEditDlg.hpp:47
n
#define n
Definition: Eigenvalues.hpp:36
ColorModel::colorsDest
std::vector< mgx::Colorb > & colorsDest
Definition: ColorEditDlg.hpp:53
ColorModel::boundsLocal
mgx::Point2f boundsLocal
Definition: ColorEditDlg.hpp:56
ColorEditDlg
Definition: ColorEditDlg.hpp:64
ColorModel::loadPresetColors
void loadPresetColors(const QString &preset)
ColorModel::removeRows
bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex())
mgx::ColorMap
Definition: ColorMap.hpp:22
mgx::cMap
mgx_EXPORT IntCellMap * cMap
ColorModel::presetColors
void presetColors(const QString &preset)
ColorModel::columnCount
int columnCount(const QModelIndex &=QModelIndex()) const
Definition: ColorEditDlg.hpp:33
ColorModel::setData
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
ColorModel::setBoundsMin
void setBoundsMin(float a)
Definition: ColorEditDlg.hpp:46
ColorModel::colorsLocal
std::vector< mgx::Colorb > colorsLocal
Definition: ColorEditDlg.hpp:54
ColorEditDlg::ui
Ui::ColorEditDlg * ui
Definition: ColorEditDlg.hpp:93
ColorModel::apply
void apply()
ColorModel::setNbColors
void setNbColors(int n)
ColorModel::ColorModel
ColorModel(std::vector< mgx::Colorb > &colors, mgx::Point2f &bounds)
ColorModel
Definition: ColorEditDlg.hpp:27
ColorMap.hpp
Ui
Definition: ColorEditDlg.hpp:59
Misc.hpp
mgx::Vector
Namespace containing all the utility classes.
Definition: Vector.hpp:48
Color.hpp
ColorEditDlg::interpolateAction
QAction * interpolateAction
Definition: ColorEditDlg.hpp:94
ColorEditDlg::model
ColorModel * model
Definition: ColorEditDlg.hpp:92
ColorModel::insertRows
bool insertRows(int row, int count, const QModelIndex &parent=QModelIndex())
ColorModel::flags
Qt::ItemFlags flags(const QModelIndex &index) const