Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

menuwidget.cpp

Go to the documentation of this file.
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     //Instrument
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     //Note
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     //Scale
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 //****************************************************************************

Generated on Sat Nov 5 16:17:35 2005 for OPIE by  doxygen 1.4.2