00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "ColourDialog.hpp"
00024
00025 #include "FrameColored.hpp"
00026
00027 #include <QGridLayout>
00028 #include <QFrame>
00029 #include <QSpinBox>
00030 #include <QPushButton>
00031 #include <QColorDialog>
00032
00033 #ifndef QT_NO_DEBUG
00034 #include <iostream>
00035 #endif
00036
00037 ColourDialog :: ColourDialog(const QVector<QRgb>& table, QWidget* parent )
00038 :QDialog(parent),
00039 table(table),
00040 pMainGrid(NULL),
00041 pColourBox(NULL),
00042 pColourSelector(NULL),
00043 pColourButton(NULL),
00044 pCancelButton(NULL),
00045 pApplyButton(NULL),
00046 pValidateButton(NULL)
00047 {
00048 pMainGrid = new QGridLayout(this);
00049
00050 pColourBox = new FrameColored(table[0],this);
00051 pMainGrid->addWidget(pColourBox, 0, 0);
00052
00053 pColourSelector = new QSpinBox(this);
00054 pColourSelector->setMaximum(255);
00055 pColourSelector->setValue(0);
00056
00057 pMainGrid->addWidget(pColourSelector, 0, 1);
00058
00059 connect(pColourSelector, SIGNAL(valueChanged(int)), this, SLOT(changeFrameColour(int)));
00060
00061 pColourButton = new QPushButton(tr("Change"), this);
00062
00063 pMainGrid->addWidget(pColourButton, 0, 2);
00064
00065 pCancelButton = new QPushButton(tr("Cancel"), this);
00066
00067 pMainGrid->addWidget(pCancelButton, 1, 0);
00068
00069 pApplyButton = new QPushButton(tr("Apply"), this);
00070
00071 pMainGrid->addWidget(pApplyButton, 1, 1);
00072
00073 pValidateButton = new QPushButton(tr("Ok"), this);
00074
00075 pMainGrid->addWidget(pValidateButton, 1, 2);
00076
00077 connect(pColourButton, SIGNAL(clicked()), this, SLOT(changeColour()));
00078 connect(pCancelButton, SIGNAL(clicked()), this, SLOT(cancel()));
00079 connect(pApplyButton, SIGNAL(clicked()), this, SLOT(apply()));
00080 connect(pValidateButton, SIGNAL(clicked()), this, SLOT(validate()));
00081
00082
00083
00084
00085 #ifndef QT_NO_DEBUG
00086 std::cout << "ColourDialog created" << std::endl;
00087 #endif
00088 }
00089
00090 void ColourDialog :: changeFrameColour(int index)
00091 {
00092 pColourBox->setColor(table[index]);
00093 pColourBox->repaint();
00094 }
00095
00096 void ColourDialog :: changeColour(void)
00097 {
00098 QColor colourSelected = QColorDialog::getColor(table[pColourSelector->value()], this, tr("Select the new colour to use"));
00099
00100 if ( colourSelected.isValid() )
00101 {
00102 table[pColourSelector->value()] = colourSelected.rgb();
00103
00104
00105 pColourBox->setColor(colourSelected);
00106 pColourBox->repaint();
00107 }
00108
00109 #ifndef QT_NO_DEBUG
00110 std::cout << "SLOT: ColourDialog :: changeColour" << std::endl;
00111 #endif
00112 }
00113
00114 void ColourDialog :: cancel(void)
00115 {
00116 this->done(1);
00117
00118 #ifndef QT_NO_DEBUG
00119 std::cout << "SLOT: ColourDialog :: cancel" << std::endl;
00120 #endif
00121 }
00122
00123 void ColourDialog :: apply(void)
00124 {
00125 emit needsApply(table);
00126
00127 #ifndef QT_NO_DEBUG
00128 std::cout << "SLOT: ColourDialog :: apply" << std::endl;
00129 #endif
00130 }
00131
00132 void ColourDialog :: validate(void)
00133 {
00134 this->done(0);
00135
00136 #ifndef QT_NO_DEBUG
00137 std::cout << "SLOT: ColourDialog :: validate" << std::endl;
00138 #endif
00139 }
00140
00141
00142
00143 ColourDialog :: ~ColourDialog(void)
00144 {
00145 delete pValidateButton;
00146 delete pApplyButton;
00147 delete pCancelButton;
00148 delete pColourButton;
00149
00150 delete pColourSelector;
00151
00152 delete pColourBox;
00153
00154 delete pMainGrid;
00155
00156 #ifndef QT_NO_DEBUG
00157 std::cout << "ColourDialog deleted" << std::endl;
00158 #endif
00159 }