00001
00042 #include "aiconfiggenerator.hpp"
00043
00044 using namespace AiFractals;
00045
00046 AiConfigGenerator::AiConfigGenerator(QWidget * parent)
00047 :QWidget( parent )
00048 {
00049
00050 QLabel * threadsLabel = new QLabel( tr("Number of threads") );
00051 QSpinBox * threadsNumber = new QSpinBox(this);
00052
00053 QLabel * firstCompositionModeLabel = new QLabel( tr("First thread composition mode") );
00054 QComboBox * firstCompositionModeCbx = new QComboBox(this);
00055 QLabel * othersCompositionModeLabel = new QLabel( tr("Other threads composition mode") );
00056 QComboBox * otherstCompositionModeCbx = new QComboBox(this);
00057
00058 QPushButton * runButton = new QPushButton( tr("Run") );
00059 QPushButton * stopButton = new QPushButton( tr("Stop") );
00060
00061 QVBoxLayout * layout = new QVBoxLayout();
00062
00063
00064 threadsNumber->setObjectName("threadsNumber");
00065 threadsNumber->setRange(1,99);
00066 runButton->setIcon( QIcon( tr(":/png/run") ) ) ;
00067 stopButton->setIcon( QIcon( tr(":/png/stop") ) );
00068
00069 this->connect(threadsNumber, SIGNAL(valueChanged(int)), this, SIGNAL(currentThreads(int)));
00070 this->connect(firstCompositionModeCbx,SIGNAL(currentIndexChanged(int)), SIGNAL(firstCompositionMode(int)));
00071 this->connect(otherstCompositionModeCbx,SIGNAL(currentIndexChanged(int)), SIGNAL(othersCompositionMode(int)));
00072 this->connect(runButton, SIGNAL(clicked()), this, SIGNAL(runGenerator()));
00073 this->connect(stopButton, SIGNAL(clicked()), this, SIGNAL(stopGenerator()));
00074
00075
00076 {
00077 firstCompositionModeCbx->addItem( "Clear" , QPainter::CompositionMode_Clear );
00078 firstCompositionModeCbx->addItem( "ColorBurn" , QPainter::CompositionMode_ColorBurn );
00079 firstCompositionModeCbx->addItem( "ColorDodge" , QPainter::CompositionMode_ColorDodge );
00080 firstCompositionModeCbx->addItem( "Darken" , QPainter::CompositionMode_Darken );
00081 firstCompositionModeCbx->addItem( "Destination" , QPainter::CompositionMode_Destination );
00082 firstCompositionModeCbx->addItem( "DestinationAtop" , QPainter::CompositionMode_DestinationAtop );
00083 firstCompositionModeCbx->addItem( "DestinationIn" , QPainter::CompositionMode_DestinationIn );
00084 firstCompositionModeCbx->addItem( "DestinationOut" , QPainter::CompositionMode_DestinationOut );
00085 firstCompositionModeCbx->addItem( "DestinationOver" , QPainter::CompositionMode_DestinationOver );
00086 firstCompositionModeCbx->addItem( "Difference" , QPainter::CompositionMode_Difference );
00087 firstCompositionModeCbx->addItem( "Exclusion" , QPainter::CompositionMode_Exclusion );
00088 firstCompositionModeCbx->addItem( "HardLight" , QPainter::CompositionMode_HardLight );
00089 firstCompositionModeCbx->addItem( "Lighten" , QPainter::CompositionMode_Lighten );
00090 firstCompositionModeCbx->addItem( "Multiply" , QPainter::CompositionMode_Multiply );
00091 firstCompositionModeCbx->addItem( "Overlay" , QPainter::CompositionMode_Overlay );
00092 firstCompositionModeCbx->addItem( "Plus" , QPainter::CompositionMode_Plus );
00093 firstCompositionModeCbx->addItem( "Screen" , QPainter::CompositionMode_Screen );
00094 firstCompositionModeCbx->addItem( "SoftLight" , QPainter::CompositionMode_SoftLight );
00095 firstCompositionModeCbx->addItem( "Source" , QPainter::CompositionMode_Source );
00096 firstCompositionModeCbx->addItem( "SourceAtop" , QPainter::CompositionMode_SourceAtop );
00097 firstCompositionModeCbx->addItem( "SourceIn" , QPainter::CompositionMode_SourceIn );
00098 firstCompositionModeCbx->addItem( "SourceOut" , QPainter::CompositionMode_SourceOut );
00099 firstCompositionModeCbx->addItem( "SourceOver" , QPainter::CompositionMode_SourceOver );
00100 firstCompositionModeCbx->addItem( "Xor" , QPainter::CompositionMode_Xor );
00101
00102 otherstCompositionModeCbx->addItem( "Clear" , QPainter::CompositionMode_Clear );
00103 otherstCompositionModeCbx->addItem( "ColorBurn" , QPainter::CompositionMode_ColorBurn );
00104 otherstCompositionModeCbx->addItem( "ColorDodge" , QPainter::CompositionMode_ColorDodge );
00105 otherstCompositionModeCbx->addItem( "Darken" , QPainter::CompositionMode_Darken );
00106 otherstCompositionModeCbx->addItem( "Destination" , QPainter::CompositionMode_Destination );
00107 otherstCompositionModeCbx->addItem( "DestinationAtop" , QPainter::CompositionMode_DestinationAtop );
00108 otherstCompositionModeCbx->addItem( "DestinationIn" , QPainter::CompositionMode_DestinationIn );
00109 otherstCompositionModeCbx->addItem( "DestinationOut" , QPainter::CompositionMode_DestinationOut );
00110 otherstCompositionModeCbx->addItem( "DestinationOver" , QPainter::CompositionMode_DestinationOver );
00111 otherstCompositionModeCbx->addItem( "Difference" , QPainter::CompositionMode_Difference );
00112 otherstCompositionModeCbx->addItem( "Exclusion" , QPainter::CompositionMode_Exclusion );
00113 otherstCompositionModeCbx->addItem( "HardLight" , QPainter::CompositionMode_HardLight );
00114 otherstCompositionModeCbx->addItem( "Lighten" , QPainter::CompositionMode_Lighten );
00115 otherstCompositionModeCbx->addItem( "Multiply" , QPainter::CompositionMode_Multiply );
00116 otherstCompositionModeCbx->addItem( "Overlay" , QPainter::CompositionMode_Overlay );
00117 otherstCompositionModeCbx->addItem( "Plus" , QPainter::CompositionMode_Plus );
00118 otherstCompositionModeCbx->addItem( "Screen" , QPainter::CompositionMode_Screen );
00119 otherstCompositionModeCbx->addItem( "SoftLight" , QPainter::CompositionMode_SoftLight );
00120 otherstCompositionModeCbx->addItem( "Source" , QPainter::CompositionMode_Source );
00121 otherstCompositionModeCbx->addItem( "SourceAtop" , QPainter::CompositionMode_SourceAtop );
00122 otherstCompositionModeCbx->addItem( "SourceIn" , QPainter::CompositionMode_SourceIn );
00123 otherstCompositionModeCbx->addItem( "SourceOut" , QPainter::CompositionMode_SourceOut );
00124 otherstCompositionModeCbx->addItem( "SourceOver" , QPainter::CompositionMode_SourceOver );
00125 otherstCompositionModeCbx->addItem( "Xor" , QPainter::CompositionMode_Xor );
00126
00127 }
00128
00129
00130 firstCompositionModeCbx->setCurrentIndex( 18 );
00131 otherstCompositionModeCbx->setCurrentIndex( 16 );
00132
00133 layout->addWidget( threadsLabel,0,Qt::AlignTop );
00134 layout->addWidget( threadsNumber,1,Qt::AlignTop );
00135
00136 layout->addWidget( firstCompositionModeLabel, 2,Qt::AlignTop );
00137 layout->addWidget( firstCompositionModeCbx, 3,Qt::AlignTop );
00138 layout->addWidget( othersCompositionModeLabel, 4,Qt::AlignTop );
00139 layout->addWidget( otherstCompositionModeCbx , 5,Qt::AlignTop );
00140
00141 layout->addWidget( runButton, 6,Qt::AlignTop );
00142 layout->addWidget( stopButton,60,Qt::AlignTop );
00143
00144 this->setLayout( layout );
00145 }
00146
00147 void AiConfigGenerator::setThreadsNumber(int n)
00148 {
00149 QSpinBox * threadsNumber = this->findChild< QSpinBox * >( "threadsNumber" );
00150 threadsNumber->setValue( n );
00151 }