summaryrefslogtreecommitdiff
authorwaspe <waspe>2003-12-02 19:03:50 (UTC)
committer waspe <waspe>2003-12-02 19:03:50 (UTC)
commit64304e555fc3e06aa69fa2f4a514ee55b7aa98bc (patch) (unidiff)
tree3ce47189f43f18cccd42d326cf52977b339c744d
parent7b74f202db22d458c43b2063ae128bf79b0e9777 (diff)
downloadopie-64304e555fc3e06aa69fa2f4a514ee55b7aa98bc.zip
opie-64304e555fc3e06aa69fa2f4a514ee55b7aa98bc.tar.gz
opie-64304e555fc3e06aa69fa2f4a514ee55b7aa98bc.tar.bz2
*** empty log message ***
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/tonleiter/editinst.cpp93
-rw-r--r--noncore/multimedia/tonleiter/editinst.h31
-rw-r--r--noncore/multimedia/tonleiter/editscale.cpp32
-rw-r--r--noncore/multimedia/tonleiter/editscale.h4
-rw-r--r--noncore/multimedia/tonleiter/editstringwidget.cpp32
-rw-r--r--noncore/multimedia/tonleiter/editstringwidget.h24
-rw-r--r--noncore/multimedia/tonleiter/menuwidget.cpp20
-rw-r--r--noncore/multimedia/tonleiter/pianoscale.cpp96
-rw-r--r--noncore/multimedia/tonleiter/pianoscale.h28
-rw-r--r--noncore/multimedia/tonleiter/tonleiter.pro4
-rw-r--r--noncore/multimedia/tonleiter/tonleiterdata.cpp2
-rw-r--r--noncore/multimedia/tonleiter/tonleiterdatahelper.cpp4
-rw-r--r--noncore/multimedia/tonleiter/tonleiterdatahelper.h2
13 files changed, 365 insertions, 7 deletions
diff --git a/noncore/multimedia/tonleiter/editinst.cpp b/noncore/multimedia/tonleiter/editinst.cpp
index 1eba4dc..120c3ac 100644
--- a/noncore/multimedia/tonleiter/editinst.cpp
+++ b/noncore/multimedia/tonleiter/editinst.cpp
@@ -1,9 +1,60 @@
1#include "editinst.h" 1#include "editinst.h"
2 2
3#include <qlabel.h>
4#include <qpushbutton.h>
5
3Menu::InstEditDialog::InstEditDialog(TonleiterData* data,QWidget* parent,const char* name) 6Menu::InstEditDialog::InstEditDialog(TonleiterData* data,QWidget* parent,const char* name)
4:QDialog(parent,name,true,0),data(data) 7:QDialog(parent,name,true,0),data(data)
5{ 8{
6 setCaption("Tonleiter::"+tr("Instrument")); 9 setCaption("Tonleiter::"+tr("Instrument"));
10 QBoxLayout* masterlayout=new QBoxLayout(this,QBoxLayout::TopToBottom);
11 instid=data->getCurrentInstrumentID();
12 stringlist.setAutoDelete(true);
13
14 QBoxLayout* toplayout=new QBoxLayout(masterlayout,QBoxLayout::LeftToRight);
15
16 //Name combo + Add + Delete
17 boxInst=new QComboBox(this,"boxInst");
18 boxInst->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
19 connect(boxInst,SIGNAL(activated(int)),this,SLOT(setCurrentInstrumetID(int)));
20 for(int i=0;i<data->noOfInstruments();i++)
21 {
22 Instrument inst=data->getInstrument(i);
23 QString name=inst.instName();
24 if(name.isNull()) continue;
25 boxInst->insertItem(name,i);
26 }
27 boxInst->setCurrentItem(instid);
28 toplayout->addWidget(boxInst);
29
30 QPushButton* addButton=new QPushButton(tr("Add"),this,"addButton");
31 connect(addButton,SIGNAL(pressed()),this,SLOT(addInstrument()));
32 toplayout->addWidget(addButton);
33
34 QPushButton* delButton=new QPushButton(tr("Delete"),this,"delButton");
35 connect(delButton,SIGNAL(pressed()),this,SLOT(deleteInstrument()));
36 toplayout->addWidget(delButton);
37
38 QPushButton* addhighButton=new QPushButton(tr("Add High String"),this,"addhighButton");
39 masterlayout->addWidget(addhighButton);
40
41 QScrollView* scrollview=new QScrollView(this);
42 scrollview->setVScrollBarMode(QScrollView::AlwaysOn);
43 scrollview->setHScrollBarMode(QScrollView::AlwaysOff);
44 stringwidget=new QVBox(scrollview->viewport());
45 stringwidget->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum));
46 stringwidget->setSpacing(10);
47 scrollview->addChild(stringwidget);
48 scrollview->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
49 //scrollview->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::MinimumExpanding));
50 masterlayout->addWidget(scrollview);
51
52 loadInstrument();
53
54 QPushButton* addlowButton=new QPushButton(tr("Add Low String"),this,"addlowButton");
55 masterlayout->addWidget(addlowButton);
56
57 //make dialog fit the screen
7 showMaximized(); 58 showMaximized();
8} 59}
9//**************************************************************************** 60//****************************************************************************
@@ -11,4 +62,46 @@ Menu::InstEditDialog::~InstEditDialog()
11{ 62{
12} 63}
13//**************************************************************************** 64//****************************************************************************
65void Menu::InstEditDialog::setCurrentInstrumetID(int id)
66{
67 saveInstrument();
68 instid=id;
69 data->setCurrentInstrumetID(id);
70 loadInstrument();
71}
72//****************************************************************************
73void Menu::InstEditDialog::addInstrument()
74{
75}
76//****************************************************************************
77void Menu::InstEditDialog::deleteInstrument()
78{
79}
80//****************************************************************************
81void Menu::InstEditDialog::addLowString()
82{
83}
84//****************************************************************************
85void Menu::InstEditDialog::addHighString()
86{
87}
88//****************************************************************************
89void Menu::InstEditDialog::deleteString(int id)
90{
91}
92//****************************************************************************
93void Menu::InstEditDialog::saveInstrument()
94{
95 stringlist.clear();
96}
97//****************************************************************************
98void Menu::InstEditDialog::loadInstrument()
99{
100 Instrument inst=data->getInstrument(instid);
101 for(uint s=0;s<inst.noOfStrings();s++)
102 {
103 stringlist.append(new EditStringWidget(inst.string(s),stringwidget));
104 }
105}
106//****************************************************************************
14//**************************************************************************** 107//****************************************************************************
diff --git a/noncore/multimedia/tonleiter/editinst.h b/noncore/multimedia/tonleiter/editinst.h
index e7eba15..948a2de 100644
--- a/noncore/multimedia/tonleiter/editinst.h
+++ b/noncore/multimedia/tonleiter/editinst.h
@@ -2,11 +2,19 @@
2#define TONLEITER_EDIT_INSTRUMENT_DIALOG_H 2#define TONLEITER_EDIT_INSTRUMENT_DIALOG_H
3 3
4#include <qdialog.h> 4#include <qdialog.h>
5#include <qcombobox.h>
6#include <qscrollview.h>
7#include <qspinbox.h>
8#include <qlayout.h>
9#include <qlist.h>
10#include <qvbox.h>
5 11
6#include "tonleiterdata.h" 12
13#include "editstringwidget.h"
7 14
8using namespace Data; 15using namespace Data;
9 16
17
10namespace Menu 18namespace Menu
11{ 19{
12 class InstEditDialog : public QDialog 20 class InstEditDialog : public QDialog
@@ -14,9 +22,30 @@ namespace Menu
14 Q_OBJECT 22 Q_OBJECT
15 private: 23 private:
16 TonleiterData* data; 24 TonleiterData* data;
25 int instid;
26
27 QComboBox* boxInst;
28 QSpinBox* stringBox;
29
30 QVBox* stringwidget;
31
32 //this is a QPtrList !!
33 typedef QList<EditStringWidget> StringWidgetList;
34 StringWidgetList stringlist;
17 public: 35 public:
18 InstEditDialog(TonleiterData* data,QWidget* parent,const char* name="InstEditDialog"); 36 InstEditDialog(TonleiterData* data,QWidget* parent,const char* name="InstEditDialog");
19 ~InstEditDialog(); 37 ~InstEditDialog();
38 private slots:
39 void setCurrentInstrumetID(int id);
40 void addInstrument();
41 void deleteInstrument();
42
43 void addLowString();
44 void addHighString();
45 void deleteString(int id);
46 private:
47 void saveInstrument();
48 void loadInstrument();
20 }; 49 };
21}; 50};
22 51
diff --git a/noncore/multimedia/tonleiter/editscale.cpp b/noncore/multimedia/tonleiter/editscale.cpp
index 593a150..0be0058 100644
--- a/noncore/multimedia/tonleiter/editscale.cpp
+++ b/noncore/multimedia/tonleiter/editscale.cpp
@@ -1,9 +1,41 @@
1#include "editscale.h" 1#include "editscale.h"
2 2
3#include <qlayout.h>
4#include <qpushbutton.h>
5
3Menu::ScaleEditDialog::ScaleEditDialog(TonleiterData* data,QWidget* parent,const char* name) 6Menu::ScaleEditDialog::ScaleEditDialog(TonleiterData* data,QWidget* parent,const char* name)
4:QDialog(parent,name,true,0),data(data) 7:QDialog(parent,name,true,0),data(data)
5{ 8{
6 setCaption("Tonleiter::"+tr("Scale")); 9 setCaption("Tonleiter::"+tr("Scale"));
10 QBoxLayout* masterlayout=new QBoxLayout(this,QBoxLayout::TopToBottom);
11
12 QBoxLayout* toplayout=new QBoxLayout(masterlayout,QBoxLayout::LeftToRight);
13
14 boxScale=new QComboBox(this,"boxScale");
15 for(int s=0;s<data->noOfScales();s++)
16 {
17 Scale scale=data->getScale(s);
18 QString name=scale.scaleName();
19 if(name.isNull()) continue;
20 //boxScale->insertItem(name,s);
21 }
22 boxScale->setCurrentItem(data->getCurrentScaleID());
23 boxScale->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
24 connect(boxScale,SIGNAL(activated(int)),data,SLOT(setCurrentScaleID(int)));
25 toplayout->addWidget(boxScale);
26
27 QPushButton* addButton=new QPushButton(tr("Add"),this,"addButton");
28 connect(addButton,SIGNAL(pressed()),this,SLOT(addInstrument()));
29 toplayout->addWidget(addButton);
30
31 QPushButton* delButton=new QPushButton(tr("Delete"),this,"delButton");
32 connect(delButton,SIGNAL(pressed()),this,SLOT(deleteInstrument()));
33 toplayout->addWidget(delButton);
34
35 pianoscale=new PianoScale(this);
36 masterlayout->addWidget(pianoscale);
37
38 //make dialog fit the screen
7 showMaximized(); 39 showMaximized();
8} 40}
9//**************************************************************************** 41//****************************************************************************
diff --git a/noncore/multimedia/tonleiter/editscale.h b/noncore/multimedia/tonleiter/editscale.h
index 0e5eb1c..1121c1f 100644
--- a/noncore/multimedia/tonleiter/editscale.h
+++ b/noncore/multimedia/tonleiter/editscale.h
@@ -2,8 +2,10 @@
2#define TONLEITER_EDIT_SCALE_DIALOG_H 2#define TONLEITER_EDIT_SCALE_DIALOG_H
3 3
4#include <qdialog.h> 4#include <qdialog.h>
5#include <qcombobox.h>
5 6
6#include "tonleiterdata.h" 7#include "tonleiterdata.h"
8#include "pianoscale.h"
7 9
8using namespace Data; 10using namespace Data;
9 11
@@ -14,6 +16,8 @@ namespace Menu
14 Q_OBJECT 16 Q_OBJECT
15 private: 17 private:
16 TonleiterData* data; 18 TonleiterData* data;
19 QComboBox* boxScale;
20 PianoScale* pianoscale;
17 public: 21 public:
18 ScaleEditDialog(TonleiterData* data,QWidget* parent,const char* name="ScaleEditDialog"); 22 ScaleEditDialog(TonleiterData* data,QWidget* parent,const char* name="ScaleEditDialog");
19 ~ScaleEditDialog(); 23 ~ScaleEditDialog();
diff --git a/noncore/multimedia/tonleiter/editstringwidget.cpp b/noncore/multimedia/tonleiter/editstringwidget.cpp
new file mode 100644
index 0000000..d22bbc5
--- a/dev/null
+++ b/noncore/multimedia/tonleiter/editstringwidget.cpp
@@ -0,0 +1,32 @@
1#include "editstringwidget.h"
2
3#include <qlabel.h>
4#include <qlayout.h>
5
6using namespace Data;
7
8Menu::EditStringWidget::EditStringWidget(int note,QWidget* parent,const char* name,WFlags f)
9:QFrame(parent,name,f)
10{
11 QBoxLayout* layout=new QBoxLayout(this,QBoxLayout::LeftToRight,10);
12
13 boxNote=new QComboBox(this,"boxNote");
14 boxNote->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
15 //connect(boxNote,SIGNAL(activated(int)),data,SLOT(setCurrentNote(int)));
16 layout->addWidget(boxNote,1,1);
17 for(int a=0;a<12;a++)
18 boxNote->insertItem(Note::notenames[a],a);
19 boxNote->setCurrentItem(note-12*Note::getOctaveOfNote(note));
20 layout->addWidget(boxNote);
21
22 setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
23 setFrameShape(QFrame::Panel);
24 setFrameShadow(QFrame::Sunken);
25
26}
27//****************************************************************************
28Menu::EditStringWidget::~EditStringWidget()
29{
30}
31//****************************************************************************
32//****************************************************************************
diff --git a/noncore/multimedia/tonleiter/editstringwidget.h b/noncore/multimedia/tonleiter/editstringwidget.h
new file mode 100644
index 0000000..ba105a9
--- a/dev/null
+++ b/noncore/multimedia/tonleiter/editstringwidget.h
@@ -0,0 +1,24 @@
1#ifndef TONLEITER_EDIT_STRING_WIDGT_H
2#define TONLEITER_EDIT_STRING_WIDGT_H
3
4#include <qframe.h>
5#include <qcombobox.h>
6#include <qspinbox.h>
7
8#include "tonleiterdata.h"
9
10namespace Menu
11{
12 class EditStringWidget : public QFrame
13 {
14 Q_OBJECT
15 private:
16 QComboBox* boxNote;
17 public:
18 EditStringWidget(int note,QWidget* parent,const char* name=0,WFlags f=0);
19 ~EditStringWidget();
20 };
21};
22
23#endif //TONLEITER_EDIT_STRING_WIDGT_H
24
diff --git a/noncore/multimedia/tonleiter/menuwidget.cpp b/noncore/multimedia/tonleiter/menuwidget.cpp
index 1e3742c..56a2f8a 100644
--- a/noncore/multimedia/tonleiter/menuwidget.cpp
+++ b/noncore/multimedia/tonleiter/menuwidget.cpp
@@ -11,39 +11,57 @@ Menu::MenuWidget::MenuWidget(TonleiterData* data,QWidget* parent,const char* nam
11{ 11{
12 QGridLayout* layout=new QGridLayout(this,3,3,10,-1,"menulayout"); 12 QGridLayout* layout=new QGridLayout(this,3,3,10,-1,"menulayout");
13 13
14 //Instrument
14 QLabel* instLabel=new QLabel(tr("Instr."),this,"instLabel"); 15 QLabel* instLabel=new QLabel(tr("Instr."),this,"instLabel");
16 instLabel->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
15 layout->addWidget(instLabel,0,0); 17 layout->addWidget(instLabel,0,0);
18
16 boxInst=new QComboBox(this,"boxInst"); 19 boxInst=new QComboBox(this,"boxInst");
20 boxInst->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
17 connect(boxInst,SIGNAL(activated(int)),data,SLOT(setCurrentInstrumetID(int))); 21 connect(boxInst,SIGNAL(activated(int)),data,SLOT(setCurrentInstrumetID(int)));
18 layout->addWidget(boxInst,0,1); 22 layout->addWidget(boxInst,0,1);
23
19 editInst=new QPushButton(tr("Edit"),this,"editInst"); 24 editInst=new QPushButton(tr("Edit"),this,"editInst");
25 editInst->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
20 connect(editInst,SIGNAL(pressed()),this,SLOT(editInstPressed())); 26 connect(editInst,SIGNAL(pressed()),this,SLOT(editInstPressed()));
21 layout->addWidget(editInst,0,2); 27 layout->addWidget(editInst,0,2);
22 28
29 //Note
23 QLabel* noteLabel=new QLabel(tr("Note"),this,"noteLabel"); 30 QLabel* noteLabel=new QLabel(tr("Note"),this,"noteLabel");
31 noteLabel->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
24 layout->addWidget(noteLabel,1,0); 32 layout->addWidget(noteLabel,1,0);
33
25 boxNote=new QComboBox(this,"boxNote"); 34 boxNote=new QComboBox(this,"boxNote");
35 boxNote->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
26 connect(boxNote,SIGNAL(activated(int)),data,SLOT(setCurrentNote(int))); 36 connect(boxNote,SIGNAL(activated(int)),data,SLOT(setCurrentNote(int)));
27 layout->addWidget(boxNote,1,1); 37 layout->addWidget(boxNote,1,1);
28 for(int a=0;a<12;a++) 38 for(int a=0;a<12;a++)
29 boxNote->insertItem(Note::notenames[a],a); 39 boxNote->insertItem(Note::notenames[a],a);
30 boxNote->setCurrentItem(data->getCurrentBaseNote()); 40 boxNote->setCurrentItem(data->getCurrentBaseNote());
41
31 noteCheck=new QCheckBox(tr("show"),this,"noteCheck"); 42 noteCheck=new QCheckBox(tr("show"),this,"noteCheck");
43 noteCheck->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
32 noteCheck->setChecked(data->isDrawNames()); 44 noteCheck->setChecked(data->isDrawNames());
33 connect(noteCheck,SIGNAL(toggled(bool)),data,SLOT(setDrawNames(bool))); 45 connect(noteCheck,SIGNAL(toggled(bool)),data,SLOT(setDrawNames(bool)));
34 layout->addWidget(noteCheck,1,2); 46 layout->addWidget(noteCheck,1,2);
35 47
48 //Scale
36 QLabel* scaleLabel=new QLabel(tr("Scale"),this,"scaleLabel"); 49 QLabel* scaleLabel=new QLabel(tr("Scale"),this,"scaleLabel");
50 scaleLabel->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
37 layout->addWidget(scaleLabel,2,0); 51 layout->addWidget(scaleLabel,2,0);
52
38 boxScale=new QComboBox(this,"boxScale"); 53 boxScale=new QComboBox(this,"boxScale");
54 boxScale->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
39 connect(boxScale,SIGNAL(activated(int)),data,SLOT(setCurrentScaleID(int))); 55 connect(boxScale,SIGNAL(activated(int)),data,SLOT(setCurrentScaleID(int)));
40 layout->addWidget(boxScale,2,1); 56 layout->addWidget(boxScale,2,1);
57
41 editScale=new QPushButton(tr("Edit"),this,"editScale"); 58 editScale=new QPushButton(tr("Edit"),this,"editScale");
59 editScale->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
42 connect(editScale,SIGNAL(pressed()),this,SLOT(editScalePressed())); 60 connect(editScale,SIGNAL(pressed()),this,SLOT(editScalePressed()));
43 layout->addWidget(editScale,2,2); 61 layout->addWidget(editScale,2,2);
44 62
45 updateBoxes(); 63 updateBoxes();
46 64 setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
47} 65}
48//**************************************************************************** 66//****************************************************************************
49Menu::MenuWidget::~MenuWidget() 67Menu::MenuWidget::~MenuWidget()
diff --git a/noncore/multimedia/tonleiter/pianoscale.cpp b/noncore/multimedia/tonleiter/pianoscale.cpp
new file mode 100644
index 0000000..3d5add2
--- a/dev/null
+++ b/noncore/multimedia/tonleiter/pianoscale.cpp
@@ -0,0 +1,96 @@
1#include "pianoscale.h"
2
3#include <qpainter.h>
4
5
6Menu::PianoScale::PianoScale(QWidget* parent,const char* name,WFlags f)
7:QWidget(parent,name,f)
8{
9 QColor black(0,0,0);
10 QColor white(255,255,255);
11 QColor mark(255,0,0);
12 blackBrush=QBrush(black);
13 whiteBrush=QBrush(white);
14 markBrush=QBrush(mark);
15 blackPen=QPen(black);
16 whitePen=QPen(white);
17 setBackgroundColor(QColor(0,0,255));
18}
19//****************************************************************************
20Menu::PianoScale::~ PianoScale()
21{
22}
23//****************************************************************************
24void Menu::PianoScale::paintEvent(QPaintEvent* pe)
25{
26 QPainter p(this);
27 QRect mysize=rect();
28
29 int pad=10;
30 int x0=pad;
31 int y0=pad;
32 int w0=mysize.width()-2*pad;
33 int h0=mysize.height()-2*pad;
34
35 int keypad=2;
36 if(mysize.width()>mysize.height())
37 {
38 int div=(int)(w0/14.0);
39 int halftonewidth=(int)(div/3.0);
40 int halftoneheight=(int)((h0-2*keypad)*0.66);
41 for(int a=0;a<14;a++)
42 {
43 int x=x0+a*div;
44
45 p.setPen(blackPen);
46 p.setBrush(blackBrush);
47 p.drawRect(x,y0,div,h0);
48
49 p.setPen(whitePen);
50 p.setBrush(whiteBrush);
51 p.drawRect(x+keypad,y0+keypad,div-2*keypad,h0-2*keypad);
52
53 if(a==1 || a==2 || a==4 || a==5 || a==6 || a==8 || a==9 || a==11 || a==12 || a==13)
54 {
55 p.setPen(blackPen);
56 p.setBrush(blackBrush);
57 p.drawRect(x-halftonewidth,y0+keypad,2*halftonewidth,halftoneheight);
58 }
59 }
60 }
61 else
62 {
63 int div=(int)(w0/7.0);
64 int halfheight=(int)(h0/2.0);
65 int halftonewidth=(int)(div/3.0);
66 int halftoneheight=(int)((halfheight-2*keypad)*0.66);
67 for(int a=0;a<7;a++)
68 {
69 int x=x0+a*div;
70
71 p.setPen(blackPen);
72 p.setBrush(blackBrush);
73 p.drawRect(x,y0,div,h0);
74
75 p.setPen(whitePen);
76 p.setBrush(whiteBrush);
77 p.drawRect(x+keypad,y0+keypad,div-2*keypad,halfheight-2*keypad);
78 p.drawRect(x+keypad,y0+keypad+halfheight,div-2*keypad,halfheight-2*keypad);
79
80 if(a==1 || a==2 || a==4 || a==5 || a==6)
81 {
82 p.setPen(blackPen);
83 p.setBrush(blackBrush);
84 p.drawRect(x-halftonewidth,y0+keypad,2*halftonewidth,halftoneheight);
85 p.drawRect(x-halftonewidth,y0+keypad+halfheight,2*halftonewidth,halftoneheight);
86 }
87 }
88 }
89}
90//****************************************************************************
91void Menu::PianoScale::mousePressEvent(QMouseEvent* me)
92{
93}
94//****************************************************************************
95//****************************************************************************
96
diff --git a/noncore/multimedia/tonleiter/pianoscale.h b/noncore/multimedia/tonleiter/pianoscale.h
new file mode 100644
index 0000000..63995b0
--- a/dev/null
+++ b/noncore/multimedia/tonleiter/pianoscale.h
@@ -0,0 +1,28 @@
1#ifndef TONLEITER_PIANO_SCALE_H
2#define TONLEITER_PIANO_SCALE_H
3
4#include <qwidget.h>
5#include <qpen.h>
6#include <qbrush.h>
7
8namespace Menu
9{
10 class PianoScale : public QWidget
11 {
12 Q_OBJECT
13 private:
14 QBrush blackBrush;
15 QBrush whiteBrush;
16 QBrush markBrush;
17 QPen blackPen;
18 QPen whitePen;
19 public:
20 PianoScale(QWidget* parent,const char* name="PianoScale",WFlags f=0);
21 ~PianoScale();
22 private:
23 void paintEvent(QPaintEvent* pe);
24 void mousePressEvent(QMouseEvent* me);
25 };
26};
27
28#endif //TONLEITER_PIANO_SCALE_H
diff --git a/noncore/multimedia/tonleiter/tonleiter.pro b/noncore/multimedia/tonleiter/tonleiter.pro
index 2b0a798..c52ca19 100644
--- a/noncore/multimedia/tonleiter/tonleiter.pro
+++ b/noncore/multimedia/tonleiter/tonleiter.pro
@@ -1,8 +1,8 @@
1TEMPLATE = app 1TEMPLATE = app
2#CONFIG = qt warn_on debug 2#CONFIG = qt warn_on debug
3CONFIG = qt warn_on release 3CONFIG = qt warn_on release
4HEADERS = mainwidget.h tonleiterdata.h tonleiterdatahelper.h fretboard.h menuwidget.h editinst.h editscale.h 4HEADERS = mainwidget.h tonleiterdata.h tonleiterdatahelper.h fretboard.h menuwidget.h editinst.h editstringwidget.h editscale.h pianoscale.h
5SOURCES = mainwidget.cpp tonleiterdata.cpp tonleiterdatahelper.cpp fretboard.cpp menuwidget.cpp main.cpp editinst.cpp editscale.cpp 5SOURCES = mainwidget.cpp tonleiterdata.cpp tonleiterdatahelper.cpp fretboard.cpp menuwidget.cpp main.cpp editinst.cpp editstringwidget.cpp editscale.cpp pianoscale.cpp
6INCLUDEPATH += $(OPIEDIR)/include 6INCLUDEPATH += $(OPIEDIR)/include
7DEPENDPATH += $(OPIEDIR)/include 7DEPENDPATH += $(OPIEDIR)/include
8LIBS += -lqpe 8LIBS += -lqpe
diff --git a/noncore/multimedia/tonleiter/tonleiterdata.cpp b/noncore/multimedia/tonleiter/tonleiterdata.cpp
index 946d4e3..bf7b32c 100644
--- a/noncore/multimedia/tonleiter/tonleiterdata.cpp
+++ b/noncore/multimedia/tonleiter/tonleiterdata.cpp
@@ -71,7 +71,7 @@ void TonleiterData::loadData()
71 load.writeEntry("Scale2","dorian;0;2;3;5;7;9;10;"); 71 load.writeEntry("Scale2","dorian;0;2;3;5;7;9;10;");
72 load.writeEntry("Scale3","phrygian;0;1;3;5;7;8;10;"); 72 load.writeEntry("Scale3","phrygian;0;1;3;5;7;8;10;");
73 load.writeEntry("Scale4","lydian;0;2;4;6;7;9;11;"); 73 load.writeEntry("Scale4","lydian;0;2;4;6;7;9;11;");
74 load.writeEntry("Scale5","mixolyd.;0;2;4;5;7;9;10;"); 74 load.writeEntry("Scale5","mixolydian;0;2;4;5;7;9;10;");
75 load.writeEntry("noOfScales",6); 75 load.writeEntry("noOfScales",6);
76 76
77 } 77 }
diff --git a/noncore/multimedia/tonleiter/tonleiterdatahelper.cpp b/noncore/multimedia/tonleiter/tonleiterdatahelper.cpp
index 5714cea..156dba5 100644
--- a/noncore/multimedia/tonleiter/tonleiterdatahelper.cpp
+++ b/noncore/multimedia/tonleiter/tonleiterdatahelper.cpp
@@ -1,5 +1,7 @@
1#include "tonleiterdatahelper.h" 1#include "tonleiterdatahelper.h"
2 2
3#include <math.h>
4
3using namespace Data; 5using namespace Data;
4 6
5int Note::getOctaveOfNote(int note) 7int Note::getOctaveOfNote(int note)
@@ -76,7 +78,7 @@ int Instrument::noOfOctaves()
76{ 78{
77 int lowest=strings[0]; 79 int lowest=strings[0];
78 int highest=strings[strings.count()-1]+frets; 80 int highest=strings[strings.count()-1]+frets;
79 return (int)((highest-lowest)/12.0); 81 return (int) ceil((highest-lowest)/12.0);
80} 82}
81//**************************************************************************** 83//****************************************************************************
82//**************************************************************************** 84//****************************************************************************
diff --git a/noncore/multimedia/tonleiter/tonleiterdatahelper.h b/noncore/multimedia/tonleiter/tonleiterdatahelper.h
index b79162a..e4153d7 100644
--- a/noncore/multimedia/tonleiter/tonleiterdatahelper.h
+++ b/noncore/multimedia/tonleiter/tonleiterdatahelper.h
@@ -8,7 +8,7 @@ namespace Data
8{ 8{
9 namespace Note 9 namespace Note
10 { 10 {
11 const QString notenames[]={"C","C#","D","D#","E","F","F#","G","G#","A","A#","B"}; 11 const QString notenames[]={"A","Bb","B","C","C#","D","D#","E","F","F#","G","G#"};
12 12
13 int getOctaveOfNote(int note); 13 int getOctaveOfNote(int note);
14 QString getNameOfNote(int note); 14 QString getNameOfNote(int note);