| Summary: | Inconsistent UI in regard to color palette | ||
|---|---|---|---|
| Product: | [Applications] kst | Reporter: | Andrew Walker <arwalker> |
| Component: | general | Assignee: | kst |
| Status: | RESOLVED FIXED | ||
| Severity: | wishlist | ||
| Priority: | NOR | ||
| Version First Reported In: | 1.x | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Andrew Walker
2006-06-21 20:46:08 UTC
SVN commit 553980 by arwalker:
CCBUG:129598 Add palette visualisation to csd dialog
M +21 -3 csddialogwidget.ui
M +33 -0 kstcsddialog_i.cpp
M +2 -1 kstcsddialog_i.h
--- trunk/extragear/graphics/kst/src/libkstapp/csddialogwidget.ui #553979:553980
@@ -9,9 +9,12 @@
<x>0</x>
<y>0</y>
<width>549</width>
- <height>462</height>
+ <height>488</height>
</rect>
</property>
+ <property name="caption">
+ <string>CSDDialogWidget</string>
+ </property>
<grid>
<property name="name">
<cstring>unnamed</cstring>
@@ -158,7 +161,7 @@
</property>
<widget class="QLayoutWidget" row="0" column="0">
<property name="name">
- <cstring>layout47</cstring>
+ <cstring>layout10</cstring>
</property>
<hbox>
<property name="name">
@@ -204,13 +207,22 @@
<bool>false</bool>
</property>
</widget>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>_paletteDisplay</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ </widget>
</hbox>
</widget>
</grid>
</widget>
</grid>
</widget>
-<layoutdefaults spacing="6" margin="11"/>
+<customwidgets>
+</customwidgets>
<tabstops>
<tabstop>_vector</tabstop>
<tabstop>_windowSize</tabstop>
@@ -223,4 +235,10 @@
<include location="global" impldecl="in declaration">kst_export.h</include>
</includes>
<exportmacro>KST_EXPORT</exportmacro>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>vectorselector.h</includehint>
+ <includehint>fftoptionswidget.h</includehint>
+ <includehint>curveplacementwidget.h</includehint>
+</includehints>
</UI>
--- trunk/extragear/graphics/kst/src/libkstapp/kstcsddialog_i.cpp #553979:553980
@@ -61,6 +61,8 @@
_w = new CSDDialogWidget(_contents);
setMultiple(true);
connect(_w->_vector, SIGNAL(newVectorCreated(const QString&)), this, SIGNAL(modified()));
+ connect(_w->_palette, SIGNAL(highlighted(const QString&)), this, SLOT(updatePalette(const QString&)));
+ connect(_w->_palette, SIGNAL(activated(const QString&)), this, SLOT(updatePalette(const QString&)));
//for multiple edit mode
connect(_w->_kstFFTOptions->Apodize, SIGNAL(clicked()), this, SLOT(setApodizeDirty()));
@@ -147,6 +149,37 @@
}
+void KstCsdDialogI::updatePalette(const QString& palette) {
+ KPalette* newPal = new KPalette(palette);
+ QColor color;
+ int nrColors = newPal->nrColors();
+ int height = _w->_paletteDisplay->contentsRect().height();
+ int width = 7 * height;
+ QPixmap pix(width, height);
+ QPainter p(&pix);
+ int size;
+ int step = 1;
+ int pos = 0;
+ int i;
+
+ size = width / nrColors;
+ if (size == 0) {
+ size = 1;
+ step = nrColors / width;
+ }
+
+ p.fillRect(p.window(), QColor("white"));
+ for (i=0; i<nrColors; i+=step) {
+ color = newPal->color(i);
+ p.fillRect(pos*size, 0, size, height, QBrush(color));
+ ++pos;
+ }
+ _w->_paletteDisplay->setPixmap(pix);
+
+ delete newPal;
+}
+
+
/* returns true if succesful */
bool KstCsdDialogI::newObject() {
QString tag_name = _tagName->text();
--- trunk/extragear/graphics/kst/src/libkstapp/kstcsddialog_i.h #553979:553980
@@ -64,7 +64,8 @@
void setApodizeDirty();
void setRemoveMeanDirty();
void setInterleavedDirty();
-
+ void updatePalette(const QString& palette);
+
private:
static const QString& defaultTag;
void fillFieldsForEdit();
SVN commit 554016 by dhanson:
CCBUG:129598 i find that the psds calculated with psdcalculator differ from those calculated by KstPSD because of normalization. i've reverted PSDCalculator to the original normalization- but I can't see that I've done anything wrong.
M +12 -2 psdcalculator.cpp
--- trunk/extragear/graphics/kst/src/libkstmath/psdcalculator.cpp #554015:554016
@@ -33,7 +33,7 @@
#define PSDMINLEN 2
#define PSDMAXLEN 27
-double PSDCalculator::cabs2(double r, double i) {
+inline double PSDCalculator::cabs2(double r, double i) {
return r*r + i*i;
}
@@ -184,7 +184,7 @@
updateWindowFxn(apodizeFxn, gaussianSigma);
}
- int currentCopyLen;
+ int currentCopyLen, nsamples = 0;
int i_samp, i_subset, ioffset;
memset(output, 0, sizeof(double)*outputLen); // initialize output.
@@ -246,6 +246,8 @@
}
}
+ nsamples += currentCopyLen;
+
rdft(_awLen, 1, _a); //real discrete fourier transorm on _a.
output[0] += _a[0] * _a[0];
@@ -255,6 +257,9 @@
}
}
+ // FIXME: NORMALIZATION.
+ /* This normalization doesn't give the same results as the original KstPSD.
+
double frequencyStep = .5*(double)inputSamplingFreq/(double)(outputLen-1);
//normalization factors which were left out earlier for speed.
@@ -262,7 +267,12 @@
// - /(_awLen*_awLen) for the constant Wss from numerical recipes in C. (ensure that the window function agrees with this.)
// - /i_subset to average the powers in all the subsets.
double norm = 2.0/(double)_awLen/(double)_awLen/(double)i_subset;
+ */
+ // original normalization
+ double frequencyStep = 2.0*(double)inputSamplingFreq/(double)nsamples; //OLD value for frequencyStep.
+ double norm = 2.0/(double)nsamples*2.0/(double)nsamples; //OLD value for norm.
+
switch (outputType) {
default:
case PSDAmplitudeSpectralDensity: // amplitude spectral density (default) [V/Hz^1/2]
SVN commit 554349 by arwalker: BUG:129598 Use widget for color palette selection for consistency of UI elements across dialogs M +67 -99 libkstapp/csddialogwidget.ui M +67 -93 libkstapp/imagedialogwidget.ui M +3 -45 libkstapp/kstcsddialog_i.cpp M +0 -1 libkstapp/kstcsddialog_i.h M +24 -79 libkstapp/kstimagedialog_i.cpp M +0 -1 libkstapp/kstimagedialog_i.h M +99 -91 libkstapp/kstsettingsdlg.ui M +9 -25 libkstapp/kstsettingsdlg.ui.h M +2 -1 widgets/Makefile.am A widgets/colorpalettewidget.ui A widgets/colorpalettewidget.ui.h [License: no copyright] |