00001 #include "menuwidget.h"
00002
00003
00004 #include "editinst.h"
00005 #include "editscale.h"
00006
00007 Menu::MenuWidget::MenuWidget(TonleiterData* data,QWidget* parent,const char* name,WFlags f)
00008 :QWidget(parent,name,f),data(data)
00009 {
00010 QGridLayout* layout=new QGridLayout(this,3,3,10,-1,"menulayout");
00011
00012
00013 QLabel* instLabel=new QLabel(tr("Instr."),this,"instLabel");
00014 instLabel->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00015 layout->addWidget(instLabel,0,0);
00016
00017 boxInst=new QComboBox(this,"boxInst");
00018 boxInst->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00019 connect(boxInst,SIGNAL(activated(int)),data,SLOT(setCurrentInstrumetID(int)));
00020 layout->addWidget(boxInst,0,1);
00021
00022 editInst=new QPushButton(tr("Edit"),this,"editInst");
00023 editInst->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00024 connect(editInst,SIGNAL(pressed()),this,SLOT(editInstPressed()));
00025 layout->addWidget(editInst,0,2);
00026
00027
00028 QLabel* noteLabel=new QLabel(tr("Note"),this,"noteLabel");
00029 noteLabel->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00030 layout->addWidget(noteLabel,1,0);
00031
00032 boxNote=new QComboBox(this,"boxNote");
00033 boxNote->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00034 connect(boxNote,SIGNAL(activated(int)),data,SLOT(setCurrentNote(int)));
00035 layout->addWidget(boxNote,1,1);
00036 for(int a=0;a<12;a++)
00037 boxNote->insertItem(Note::notenames[a],a);
00038 boxNote->setCurrentItem(data->getCurrentBaseNote());
00039
00040 noteCheck=new QCheckBox(tr("show"),this,"noteCheck");
00041 noteCheck->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00042 noteCheck->setChecked(data->isDrawNames());
00043 connect(noteCheck,SIGNAL(toggled(bool)),data,SLOT(setDrawNames(bool)));
00044 layout->addWidget(noteCheck,1,2);
00045
00046
00047 QLabel* scaleLabel=new QLabel(tr("Scale"),this,"scaleLabel");
00048 scaleLabel->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00049 layout->addWidget(scaleLabel,2,0);
00050
00051 boxScale=new QComboBox(this,"boxScale");
00052 boxScale->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00053 connect(boxScale,SIGNAL(activated(int)),data,SLOT(setCurrentScaleID(int)));
00054 layout->addWidget(boxScale,2,1);
00055
00056 editScale=new QPushButton(tr("Edit"),this,"editScale");
00057 editScale->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00058 connect(editScale,SIGNAL(pressed()),this,SLOT(editScalePressed()));
00059 layout->addWidget(editScale,2,2);
00060
00061 updateBoxes();
00062 setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding,QSizePolicy::Maximum));
00063 }
00064
00065 Menu::MenuWidget::~MenuWidget()
00066 {
00067 }
00068
00069 void Menu::MenuWidget::editInstPressed()
00070 {
00071 InstEditDialog* instdialog=new InstEditDialog(data,this);
00072 instdialog->exec();
00073 }
00074
00075 void Menu::MenuWidget::editScalePressed()
00076 {
00077 ScaleEditDialog* scaledialog=new ScaleEditDialog(data,this);
00078 scaledialog->exec();
00079 }
00080
00081 void Menu::MenuWidget::updateBoxes()
00082 {
00083 boxInst->clear();
00084
00085 for(int i=0;i<data->noOfInstruments();i++)
00086 {
00087 Instrument inst=data->getInstrument(i);
00088 QString name=inst.instName();
00089 if(name.isNull()) continue;
00090 boxInst->insertItem(name,i);
00091 }
00092 boxInst->setCurrentItem(data->getCurrentInstrumentID());
00093
00094 boxScale->clear();
00095 for(int s=0;s<data->noOfScales();s++)
00096 {
00097 Scale scale=data->getScale(s);
00098 QString name=scale.scaleName();
00099 if(name.isNull()) continue;
00100 boxScale->insertItem(name,s);
00101 }
00102 boxScale->setCurrentItem(data->getCurrentScaleID());
00103 }
00104
00105