***************************************************************************/
#include "spectrum.h"
+#include <klocale.h>
#include <kglobal.h>
#include <kstandarddirs.h>
m_realWidth = 360;
m_realHeight = 200;
- QString spectrumpix = KGlobal::dirs()->findResourceDir("data", "kalzium/data/" );
- spectrumpix += "kalzium/data/spektrum.png";
-
- ref_image = QImage( spectrumpix );
-
m_stretch = 1;
}
{
QPainter p;
p.begin( this );
- p.fillRect( 0, 0, width(), height(), paletteBackgroundColor() );
- p.drawRect( 0,0, width(), height() );
+ p.fillRect( 0, 0, width(), m_realHeight, Qt::black );
drawLines( &p );
}
//580 green
//500 light blue
//400 dark blue
-
int i = 0;
for ( QValueList<double>::Iterator it = m_spectra.begin();
int temp = 0; // every second item will have a little offset
if ( i%2 )
- temp = 55;
+ temp = 35;
else
temp = 0;
p->setPen(linecolor( *it ));
- p->drawLine( x,0,x, m_realHeight+10+temp );
+ p->drawLine( x,0,x, m_realHeight );
+ p->setPen( Qt::black );
+ p->drawLine( x,m_realHeight,x, m_realHeight+10+temp );
p->save();
p->translate(x, m_realHeight+10+15+temp);
p->rotate(-90);
p->setPen( Qt::black );
- p->drawText(0, 0, QString::number( *it ));
+ QString text = QString::number( *it );
+ p->drawText(0, 0, text);
p->restore();
i++;
}
- for ( double va = 400; va <= 770 ; va += 3.1 )
- {
- int x = xPos( va );
- p->setPen(linecolor( va ));
- p->drawLine( x,0,x, m_realHeight+10 );
- }
+//To test the widget uncomment this code.
+//X for ( double va = startValue; va <= endValue ; va += 0.7 )
+//X {
+//X int x = xPos( va );
+//X p->setPen(linecolor( va ));
+//X p->drawLine( x,0,x, m_realHeight+10 );
+//X }
}
void SpectrumWidget::wavelengthToRGB( double wavelength, int& r, int& g, int& b )
red = -( wavelength-440 ) / ( 440-380 );
green = 0.0;
blue = 1.0;
- kdDebug() << "RGB on wavelength " << wavelength << " (1): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
+// kdDebug() << "RGB on wavelength " << wavelength << " (1): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
}
if ( wavelength_ > 440 && wavelength_ < 489 )
red = 0.0;
green = ( wavelength-440 ) / ( 490-440 );
blue = 1.0;
- kdDebug() << "RGB on wavelength " << wavelength << " (2): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
+// kdDebug() << "RGB on wavelength " << wavelength << " (2): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
}
if ( wavelength_ > 490 && wavelength_ < 509 )
{
red = 0.0;
green = 1.0;
blue = -( wavelength-510 ) / ( 510-490 );
- kdDebug() << "RGB on wavelength " << wavelength << " (3): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
+// kdDebug() << "RGB on wavelength " << wavelength << " (3): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
}
if ( wavelength_ > 510 && wavelength_ < 579 )
{
red = ( wavelength-510 ) / ( 580-510 );
green = 1.0;
blue = 0.0;
- kdDebug() << "RGB on wavelength " << wavelength << " (4): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
+// kdDebug() << "RGB on wavelength " << wavelength << " (4): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
}
if ( wavelength_ > 580 && wavelength_ < 644 )
{
red = 1.0;
green = -( wavelength-645 ) / ( 645-580 );
blue = 0.0;
- kdDebug() << "RGB on wavelength " << wavelength << "(5): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
+// kdDebug() << "RGB on wavelength " << wavelength << "(5): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
}
if ( wavelength_ > 645 && wavelength_ < 780 )
{
red = 1.0;
green = 0.0;
blue = 0.0;
- kdDebug() << "RGB on wavelength " << wavelength << " (6): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
+// kdDebug() << "RGB on wavelength " << wavelength << " (6): " << red << " :: " << green << " :: " << blue << " Factor: " << factor << endl;
}
if ( wavelength_ > 380 && wavelength_ < 419 )
factor = 0.3 + 0.7*( wavelength - 380 ) / ( 420 - 380 );
int SpectrumWidget::xPos( double value )
{
-/*
- double var = ( endValue-startValue );
- double coeff = ( value - startValue )/var;
-
- return coeff * m_realWidth;
-*/
int proportion = width() * ( value - startValue ) / ( endValue - startValue );
return proportion;
}