summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrcan Ogetbil <oget.fedora@gmail.com>2010-11-27 03:25:18 +0000
committerOrcan Ogetbil <oget.fedora@gmail.com>2010-11-27 03:25:18 +0000
commitbde31d8572b32f4919a9d60b24f4d26186a8cf35 (patch)
tree387595061f5ad70699520de5b98fd66508e6e6e4
parent16dbc206d810e3c753800b9503e38f129847592f (diff)
ported edit instrument. added includes on comboQuant
-rw-r--r--muse2/ChangeLog3
-rw-r--r--muse2/muse/icons.cpp6
-rw-r--r--muse2/muse/icons.h2
-rw-r--r--muse2/muse/instruments/CMakeLists.txt3
-rw-r--r--muse2/muse/instruments/editinstrument.cpp371
-rw-r--r--muse2/muse/instruments/editinstrument.h25
-rw-r--r--muse2/muse/instruments/editinstrumentbase.ui3369
-rw-r--r--muse2/muse/widgets/CMakeLists.txt1
-rw-r--r--muse2/muse/widgets/comboQuant.cpp2
-rw-r--r--muse2/muse/widgets/listitem.h85
-rw-r--r--muse2/xpm/filesaveas.xpm90
11 files changed, 1908 insertions, 2049 deletions
diff --git a/muse2/ChangeLog b/muse2/ChangeLog
index 2790e03f..82e4c711 100644
--- a/muse2/ChangeLog
+++ b/muse2/ChangeLog
@@ -7,6 +7,9 @@
- Fixed transform and input transform ui files and dialogs - using the corrected SpinBoxFP. (Tim)
- Converted comboQuant widget to Qt4 (found in miditransform dialog).
TODO: Doesn't actually open - why? (Tim)
+ - Finished porting edit instrument dialog to Qt4. listitem.h is removed as it is no longer
+ needed. (Orcan)
+ - Added missing includes on comboQuant. The compilation was failing here. (Orcan)
25.11.2010
- Fixed column widths, alignments, device renaming and jack device creation issues in synthconfigbase.
Somehow the last changelog entry about this didn't get committed. That's added too. (Orcan)
diff --git a/muse2/muse/icons.cpp b/muse2/muse/icons.cpp
index 926659ad..f2260b55 100644
--- a/muse2/muse/icons.cpp
+++ b/muse2/muse/icons.cpp
@@ -79,9 +79,11 @@
#include "xpm/quant.xpm"
#include "xpm/fileprint.xpm"
#include "xpm/filesave.xpm"
+#include "xpm/filesaveas.xpm"
#include "xpm/fileopen.xpm"
#include "xpm/fileprintS.xpm"
#include "xpm/filesaveS.xpm"
+#include "xpm/filesaveasS.xpm"
#include "xpm/fileopenS.xpm"
#include "xpm/master.xpm"
#include "xpm/filenew.xpm"
@@ -294,8 +296,10 @@ QPixmap* printIcon;
QPixmap* printIconS;
QPixmap* openIcon;
QPixmap* saveIcon;
+QPixmap* saveasIcon;
QPixmap* openIconS;
QPixmap* saveIconS;
+QPixmap* saveasIconS;
QPixmap* masterIcon;
QPixmap* filenewIcon;
QPixmap* filenewIconS;
@@ -480,9 +484,11 @@ void initIcons()
drawIcon = new MPIXMAP(draw_xpm, NULL);
quantIcon = new MPIXMAP(quant_xpm, NULL);
saveIcon = new MPIXMAP(filesave_xpm, "document-save");
+ saveasIcon = new MPIXMAP(filesaveas_xpm, "document-save-as");
printIcon = new MPIXMAP(fileprint_xpm, "document-print");
openIcon = new MPIXMAP(fileopen_xpm, "document-open");
saveIconS = new MPIXMAP(filesaveS_xpm, "document-save");
+ saveasIconS = new MPIXMAP(filesaveasS_xpm, "document-save-as");
printIconS = new MPIXMAP(fileprintS_xpm, "document-print");
openIconS = new MPIXMAP(fileopenS_xpm, "document-open");
masterIcon = new MPIXMAP(master_xpm, "mixer-master");
diff --git a/muse2/muse/icons.h b/muse2/muse/icons.h
index 17fa7d6f..f0fd89c2 100644
--- a/muse2/muse/icons.h
+++ b/muse2/muse/icons.h
@@ -57,8 +57,10 @@ extern QPixmap* printIcon;
extern QPixmap* printIconS;
extern QPixmap* openIcon;
extern QPixmap* saveIcon;
+extern QPixmap* saveasIcon;
extern QPixmap* openIconS;
extern QPixmap* saveIconS;
+extern QPixmap* saveasIconS;
extern QPixmap* archiveIcon;
extern QPixmap* findIcon;
extern QPixmap* masterIcon;
diff --git a/muse2/muse/instruments/CMakeLists.txt b/muse2/muse/instruments/CMakeLists.txt
index e4108bb8..9e658928 100644
--- a/muse2/muse/instruments/CMakeLists.txt
+++ b/muse2/muse/instruments/CMakeLists.txt
@@ -23,8 +23,7 @@ QT4_WRAP_CPP ( instruments_mocs
editinstrument.h
)
-# QT4_WRAP_UI ( instruments_ui_headers
-QT4_WRAP_UI3 ( instruments_ui_headers
+QT4_WRAP_UI ( instruments_ui_headers
editinstrumentbase.ui
)
diff --git a/muse2/muse/instruments/editinstrument.cpp b/muse2/muse/instruments/editinstrument.cpp
index 9e85356a..d210b528 100644
--- a/muse2/muse/instruments/editinstrument.cpp
+++ b/muse2/muse/instruments/editinstrument.cpp
@@ -6,33 +6,25 @@
// (C) Copyright 2003 Werner Schweer (ws@seh.de)
//=========================================================
-#include <q3listbox.h>
-//Added by qt3to4:
-#include <QCloseEvent>
#include <stdio.h>
#include <errno.h>
-#include <qmessagebox.h>
-#include <qspinbox.h>
-#include <qcombobox.h>
-#include <qlineedit.h>
-#include <qcheckbox.h>
-#include <qdir.h>
-#include <qfileinfo.h>
-#include <q3filedialog.h>
-#include <qtoolbutton.h>
-#include <q3popupmenu.h>
-#include <qpushbutton.h>
-#include <qtabwidget.h>
-#include <qinputdialog.h>
+
+#include <QCloseEvent>
+#include <QDir>
+#include <QFileInfo>
+#include <QInputDialog>
+#include <QMessageBox>
+#include <QLineEdit>
#include "editinstrument.h"
#include "minstrument.h"
#include "globals.h"
-#include "listitem.h"
#include "song.h"
#include "xml.h"
#include "midictrl.h"
#include "gconfig.h"
+#include "icons.h"
+
enum {
COL_NAME = 0, COL_TYPE,
@@ -43,17 +35,29 @@ enum {
// EditInstrument
//---------------------------------------------------------
-EditInstrument::EditInstrument(QWidget* parent, const char* name, Qt::WFlags fl)
- : EditInstrumentBase(parent, name, fl)
+EditInstrument::EditInstrument(QWidget* parent, Qt::WFlags fl)
+ : QMainWindow(parent, fl)
{
- patchpopup = new Q3PopupMenu(patchButton);
+ setupUi(this);
+ fileNewAction->setIcon(QIcon(*filenewIcon));
+ fileOpenAction->setIcon(QIcon(*openIcon));
+ fileSaveAction->setIcon(QIcon(*saveIcon));
+ fileSaveAsAction->setIcon(QIcon(*saveasIcon));
+ fileExitAction->setIcon(QIcon(*exitIcon));
+ viewController->setSelectionMode(QAbstractItemView::SingleSelection);
+ toolBar->addAction(QWhatsThis::createAction(this));
+ Help->addAction(QWhatsThis::createAction(this));
+
+ patchpopup = new QMenu(patchButton);
patchpopup->setCheckable(false);
// populate instrument list
// Populate common controller list.
for(int i = 0; i < 128; ++i)
- listController->insertItem(midiCtrlName(i));
-
+ {
+ QListWidgetItem *lci = new QListWidgetItem(midiCtrlName(i));
+ listController->addItem(lci);
+ }
oldMidiInstrument = 0;
oldPatchItem = 0;
for (iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i) {
@@ -65,12 +69,14 @@ EditInstrument::EditInstrument(QWidget* parent, const char* name, Qt::WFlags fl)
if((*i)->filePath().isEmpty())
continue;
- ListBoxData* item = new ListBoxData((*i)->iname());
- item->setData((void*)*i);
- instrumentList->insertItem(item);
+ QListWidgetItem* item = new QListWidgetItem((*i)->iname());
+ QVariant v = qVariantFromValue((void*)(*i));
+ item->setData(Qt::UserRole, v);
+ instrumentList->addItem(item);
}
+ instrumentList->setSelectionMode(QAbstractItemView::SingleSelection);
if(instrumentList->item(0))
- instrumentList->setSelected(instrumentList->item(0), true);
+ instrumentList->setCurrentItem(instrumentList->item(0));
//oldMidiInstrument = (MidiInstrument*)((ListBoxData*)instrumentList->item(0))->data();
//oldMidiInstrument = (ListBoxData*)instrumentList->item(0);
//oldMidiInstrument = (ListBoxData*)instrumentList->selectedItem();
@@ -81,14 +87,14 @@ EditInstrument::EditInstrument(QWidget* parent, const char* name, Qt::WFlags fl)
// workingInstrument.assign( *wip );
- connect(instrumentList, SIGNAL(selectionChanged()), SLOT(instrumentChanged()));
- connect(patchView, SIGNAL(selectionChanged()), SLOT(patchChanged()));
+ connect(instrumentList, SIGNAL(itemSelectionChanged()), SLOT(instrumentChanged()));
+ connect(patchView, SIGNAL(itemSelectionChanged()), SLOT(patchChanged()));
//instrumentChanged();
changeInstrument();
//connect(listController, SIGNAL(selectionChanged()), SLOT(controllerChanged()));
- connect(viewController, SIGNAL(selectionChanged()), SLOT(controllerChanged()));
+ connect(viewController, SIGNAL(itemSelectionChanged()), SLOT(controllerChanged()));
//connect(instrumentName, SIGNAL(textChanged(const QString&)), SLOT(instrumentNameChanged(const QString&)));
connect(instrumentName, SIGNAL(returnPressed()), SLOT(instrumentNameReturn()));
@@ -108,7 +114,7 @@ EditInstrument::EditInstrument(QWidget* parent, const char* name, Qt::WFlags fl)
connect(deleteController, SIGNAL(clicked()), SLOT(deleteControllerClicked()));
connect(newController, SIGNAL(clicked()), SLOT(newControllerClicked()));
connect(addController, SIGNAL(clicked()), SLOT(addControllerClicked()));
- connect(listController, SIGNAL(doubleClicked(Q3ListBoxItem*)), SLOT(addControllerClicked()));
+ connect(listController, SIGNAL(itemDoubleClicked(QListWidgetItem*)), SLOT(addControllerClicked()));
connect(ctrlType,SIGNAL(activated(int)), SLOT(ctrlTypeChanged(int)));
connect(ctrlName, SIGNAL(returnPressed()), SLOT(ctrlNameReturn()));
connect(ctrlName, SIGNAL(lostFocus()), SLOT(ctrlNameReturn()));
@@ -159,10 +165,9 @@ void EditInstrument::fileNew()
if (!found) {
//if(oldMidiInstrument)
//{
- //MidiInstrument* oi = (MidiInstrument*)old->data(Qt::UserRole).value<void*>();
MidiInstrument* oi = 0;
if(oldMidiInstrument)
- oi = (MidiInstrument*)oldMidiInstrument->data();
+ oi = (MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>();
MidiInstrument* wip = &workingInstrument;
//checkDirty(oi);
//if(checkDirty(oi))
@@ -179,7 +184,6 @@ void EditInstrument::fileNew()
// Delete the list item and the instrument.
deleteInstrument(oldMidiInstrument);
- instrumentList->triggerUpdate(true);
}
}
//else
@@ -198,18 +202,16 @@ void EditInstrument::fileNew()
midiInstruments.push_back(ni);
//QListWidgetItem* item = new QListWidgetItem(ni->iname());
//InstrumentListItem* item = new InstrumentListItem(ni->iname());
- ListBoxData* item = new ListBoxData(ni->iname());
+ QListWidgetItem* item = new QListWidgetItem(ni->iname());
//oldMidiInstrument = item;
workingInstrument.assign( *ni );
//workingInstrument.setDirty(false);
//item->setText(ni->iname());
- item->setData((void*)ni);
- //QVariant v = qVariantFromValue((void*)(ni));
- //item->setData(Qt::UserRole, v);
- //instrumentList->addItem(item);
- instrumentList->insertItem(item);
+ QVariant v = qVariantFromValue((void*)(ni));
+ item->setData(Qt::UserRole, v);
+ instrumentList->addItem(item);
oldMidiInstrument = 0;
@@ -337,7 +339,7 @@ bool EditInstrument::fileSave(MidiInstrument* instrument, const QString& name)
// Assign the working instrument values to the actual current selected instrument...
if(oldMidiInstrument)
{
- MidiInstrument* oi = (MidiInstrument*)oldMidiInstrument->data();
+ MidiInstrument* oi = (MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>();
if(oi)
{
oi->assign(workingInstrument);
@@ -420,7 +422,7 @@ void EditInstrument::saveAs()
// Prompt for a new instrument name if the name has not been changed, to avoid duplicates.
if(oldMidiInstrument)
{
- MidiInstrument* oi = (MidiInstrument*)oldMidiInstrument->data();
+ MidiInstrument* oi = (MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>();
if(oi)
{
if(oi->iname() == workingInstrument.iname())
@@ -448,7 +450,7 @@ void EditInstrument::saveAs()
// path,
// tr("Instrument Definition (*.idf)"));
- QString s = Q3FileDialog::getSaveFileName(path, tr("Instrument Definition (*.idf)"), this,
+ QString s = QFileDialog::getSaveFileName(path, tr("Instrument Definition (*.idf)"), this,
tr("MusE: Save Instrument Definition").latin1());
if (s.isEmpty())
return;
@@ -481,7 +483,7 @@ void EditInstrument::fileSaveAs()
MidiInstrument* oi = 0;
if(oldMidiInstrument)
- oi = (MidiInstrument*)oldMidiInstrument->data();
+ oi = (MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>();
int res = checkDirty(&workingInstrument, true);
switch(res)
@@ -509,7 +511,6 @@ void EditInstrument::fileSaveAs()
changeInstrument();
- instrumentList->triggerUpdate(true);
}
return;
break;
@@ -614,7 +615,7 @@ void EditInstrument::fileSaveAs()
workingInstrument.setIName(s);
// Find the instrument in the list and set the old instrument to the item.
- oldMidiInstrument = (ListBoxData*)instrumentList->findItem(s, Q3ListBox::ExactMatch);
+ oldMidiInstrument = instrumentList->findItems(s, Qt::MatchExactly)[0];
// Mark as a built-in instrument.
builtin = true;
@@ -645,18 +646,18 @@ void EditInstrument::fileSaveAs()
//QListWidgetItem* item = new QListWidgetItem(ni->iname());
//InstrumentListItem* item = new InstrumentListItem(ni->iname());
//ListBoxData* item = new ListBoxData(ni->iname());
- ListBoxData* item = new ListBoxData(so);
+ QListWidgetItem* item = new QListWidgetItem(so);
//oldMidiInstrument = item;
workingInstrument.assign( *ni );
//workingInstrument.setDirty(false);
//item->setText(ni->iname());
- item->setData((void*)ni);
- //QVariant v = qVariantFromValue((void*)(ni));
- //item->setData(Qt::UserRole, v);
+ //item->setData((void*)ni);
+ QVariant v = qVariantFromValue((void*)(ni));
+ item->setData(Qt::UserRole, v);
//instrumentList->addItem(item);
- instrumentList->insertItem(item);
+ instrumentList->addItem(item);
oldMidiInstrument = 0;
@@ -715,7 +716,7 @@ void EditInstrument::fileSaveAs()
sfn = path;
else
{
- sfn = Q3FileDialog::getSaveFileName(path, tr("Instrument Definition (*.idf)"), this,
+ sfn = QFileDialog::getSaveFileName(path, tr("Instrument Definition (*.idf)"), this,
tr("MusE: Save Instrument Definition").latin1());
if (sfn.isEmpty())
return;
@@ -760,7 +761,7 @@ void EditInstrument::closeEvent(QCloseEvent* ev)
// int res = checkDirty(instrument, true);
MidiInstrument* oi = 0;
if(oldMidiInstrument)
- oi = (MidiInstrument*)oldMidiInstrument->data();
+ oi = (MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>();
int res = checkDirty(&workingInstrument, true);
switch(res)
@@ -788,7 +789,6 @@ void EditInstrument::closeEvent(QCloseEvent* ev)
changeInstrument();
- instrumentList->triggerUpdate(true);
}
break;
@@ -809,7 +809,7 @@ void EditInstrument::closeEvent(QCloseEvent* ev)
// }
- Q3MainWindow::closeEvent(ev);
+ QMainWindow::closeEvent(ev);
}
//---------------------------------------------------------
@@ -818,7 +818,8 @@ void EditInstrument::closeEvent(QCloseEvent* ev)
void EditInstrument::changeInstrument()
{
- ListBoxData* sel = (ListBoxData*)instrumentList->selectedItem();
+ QListWidgetItem* sel = instrumentList->currentItem();
+
if(!sel)
return;
@@ -828,15 +829,24 @@ void EditInstrument::changeInstrument()
//workingInstrument = *((MidiInstrument*)sel->data());
// Assign will 'delete' any existing patches, groups, or controllers.
- workingInstrument.assign( *((MidiInstrument*)sel->data()) );
+ workingInstrument.assign( *((MidiInstrument*)sel->data(Qt::UserRole).value<void*>()) );
workingInstrument.setDirty(false);
// populate patch list
-
+ patchView->blockSignals(true);
+ for (int i = 0; i < patchView->topLevelItemCount(); ++i)
+ qDeleteAll(patchView->topLevelItem(i)->takeChildren());
patchView->clear();
- //listController->clear();
+ patchView->blockSignals(false);
+
+ //viewController->blockSignals(true);
+ for (int i = 0; i < viewController->topLevelItemCount(); ++i)
+ qDeleteAll(viewController->topLevelItem(i)->takeChildren());
viewController->clear();
+ //viewController->blockSignals(false);
+
+ //listController->clear();
//category->clear();
//sysexList->clear();
@@ -883,17 +893,18 @@ void EditInstrument::changeInstrument()
if(pgp)
{
//QTreeWidgetItem* item = new QTreeWidgetItem;
- ListViewData* item = new ListViewData(patchView);
+ QTreeWidgetItem* item = new QTreeWidgetItem(patchView);
//item->setText(0, g->name);
item->setText(0, pgp->name);
-
//QVariant v = QVariant::fromValue((void*)0);
//item->setData(0, Qt::UserRole, v);
//item->setData((void*)*g);
//item->setData((void*)0);
//item->setData((void*)&*g);
- item->setData((void*)pgp);
+ //item->setData((void*)pgp);
+ QVariant v = qVariantFromValue((void*)(pgp));
+ item->setData(0, Qt::UserRole, v);
//patchView->addTopLevelItem(item);
//for (ciPatch p = g->patches.begin(); p != g->patches.end(); ++p)
@@ -904,14 +915,18 @@ void EditInstrument::changeInstrument()
if(patch)
{
//QTreeWidgetItem* sitem = new QTreeWidgetItem;
- ListViewData* sitem = new ListViewData(item);
+ QTreeWidgetItem* sitem = new QTreeWidgetItem(item);
+ //printf("%s \n", qPrintable(patch->name));
+
//sitem->setText(0, patch.name);
//sitem->setText(0, p->name);
sitem->setText(0, patch->name);
//QVariant v = QVariant::fromValue((void*)patch);
//sitem->setData(0, Qt::UserRole, v);
//sitem->setData((void*)&*p);
- sitem->setData((void*)patch);
+ //sitem->setData((void*)patch);
+ QVariant v = QVariant::fromValue((void*)patch);
+ sitem->setData(0, Qt::UserRole, v);
//item->addChild(sitem);
}
}
@@ -921,17 +936,17 @@ void EditInstrument::changeInstrument()
oldPatchItem = 0;
- ListViewData* fc = (ListViewData*)patchView->firstChild();
+ QTreeWidgetItem* fc = patchView->topLevelItem(0);
if(fc)
{
// This may cause a patchChanged call.
//if(patchView->selectedItem() != fc)
patchView->blockSignals(true);
- patchView->setSelected(fc, true);
+ fc->setSelected(true);
patchView->blockSignals(false);
//else
// patchChanged();
-
+
//patchView->firstChild()->setSelected(true);
//patchView->triggerUpdate(true);
}
@@ -968,8 +983,9 @@ void EditInstrument::changeInstrument()
// oldController = 0;
//ListBoxData* ci = (ListBoxData*)listController->item(0);
- ListViewData* ci = (ListViewData*)viewController->firstChild();
-
+
+ QTreeWidgetItem *ci = viewController->topLevelItem(0);
+
if(ci)
{
// This may cause a controllerChanged call.
@@ -981,7 +997,7 @@ void EditInstrument::changeInstrument()
// controllerChanged();
viewController->blockSignals(true);
- viewController->setSelected(ci, true);
+ ci->setSelected(true);
viewController->blockSignals(false);
}
@@ -1021,7 +1037,8 @@ void EditInstrument::changeInstrument()
void EditInstrument::instrumentChanged()
{
- ListBoxData* sel = (ListBoxData*)instrumentList->selectedItem();
+ QListWidgetItem* sel = instrumentList->currentItem();
+
if(!sel)
return;
@@ -1030,10 +1047,9 @@ void EditInstrument::instrumentChanged()
//if (old) {
//if(oldMidiInstrument)
//{
- //MidiInstrument* oi = (MidiInstrument*)old->data(Qt::UserRole).value<void*>();
MidiInstrument* oi = 0;
if(oldMidiInstrument)
- oi = (MidiInstrument*)oldMidiInstrument->data();
+ oi = (MidiInstrument*)oldMidiInstrument->data(Qt::UserRole).value<void*>();
MidiInstrument* wip = &workingInstrument;
// Returns true if aborted.
//checkDirty(oi);
@@ -1054,7 +1070,6 @@ void EditInstrument::instrumentChanged()
oldMidiInstrument = 0;
}
- instrumentList->triggerUpdate(true);
}
}
//else
@@ -1081,7 +1096,8 @@ void EditInstrument::instrumentNameReturn()
//void EditInstrument::instrumentNameChanged(const QString& s)
{
//instrumentNameChanged(instrumentName->text());
- ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
+ QListWidgetItem* item = instrumentList->currentItem();
+
if (item == 0)
return;
QString s = instrumentName->text();
@@ -1089,7 +1105,7 @@ void EditInstrument::instrumentNameReturn()
if(s == item->text())
return;
- MidiInstrument* curins = (MidiInstrument*)item->data();
+ MidiInstrument* curins = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
for(iMidiInstrument i = midiInstruments.begin(); i != midiInstruments.end(); ++i)
{
@@ -1120,7 +1136,6 @@ void EditInstrument::instrumentNameReturn()
workingInstrument.setIName(s);
workingInstrument.setDirty(true);
//instrumentList->updateItem(item);
- instrumentList->triggerUpdate(true);
//instrumentList->update();
// }
}
@@ -1129,14 +1144,14 @@ void EditInstrument::instrumentNameReturn()
// deleteInstrument
//---------------------------------------------------------
-void EditInstrument::deleteInstrument(ListBoxData* item)
+void EditInstrument::deleteInstrument(QListWidgetItem* item)
{
if(!item)
return;
//ListBoxData* curritem = (ListBoxData*)instrumentList->selectedItem();
- MidiInstrument* ins = (MidiInstrument*)item->data();
+ MidiInstrument* ins = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
// Be kind to the list item, just in case we install a delete handler or something.
//item->setData(0);
@@ -1179,10 +1194,10 @@ void EditInstrument::tabChanged(QWidget* w)
if(oldPatchItem)
{
// Don't bother calling patchChanged, just update the patch or group.
- if(oldPatchItem->parent())
- updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ if(oldPatchItem->QTreeWidgetItem::parent())
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
else
- updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
}
// We're still on the same item. No need to set oldPatchItem as in patchChanged...
@@ -1190,12 +1205,12 @@ void EditInstrument::tabChanged(QWidget* w)
// If we're switching to the Controller tab, update the default patch button text in case a patch changed...
if(QString(w->name()) == QString("controllerTab"))
{
- ListViewData* sel = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* sel = viewController->currentItem();
- if(!sel || !sel->data())
+ if(!sel || !sel->data(0, Qt::UserRole).value<void*>())
return;
- MidiController* c = (MidiController*)sel->data();
+ MidiController* c = (MidiController*)sel->data(0, Qt::UserRole).value<void*>();
MidiController::ControllerType type = midiControllerType(c->num());
// Grab the controller number from the actual values showing
@@ -1211,7 +1226,8 @@ void EditInstrument::tabChanged(QWidget* w)
void EditInstrument::patchNameReturn()
{
- ListViewData* item = (ListViewData*)patchView->selectedItem();
+ QTreeWidgetItem* item = patchView->currentItem();
+
if (item == 0)
return;
@@ -1225,9 +1241,9 @@ void EditInstrument::patchNameReturn()
{
PatchGroup* pgp = *g;
// If the item has a parent, it's a patch item.
- if(item->parent())
+ if(item->QTreeWidgetItem::parent())
{
- Patch* curp = (Patch*)item->data();
+ Patch* curp = (Patch*)item->data(0, Qt::UserRole).value<void*>();
for(iPatch p = pgp->patches.begin(); p != pgp->patches.end(); ++p)
{
if((*p) != curp && (*p)->name == s)
@@ -1252,7 +1268,7 @@ void EditInstrument::patchNameReturn()
else
// The item has no parent. It's a patch group item.
{
- PatchGroup* curpg = (PatchGroup*)item->data();
+ PatchGroup* curpg = (PatchGroup*)item->data(0, Qt::UserRole).value<void*>();
if(pgp != curpg && pgp->name == s)
{
patchNameEdit->blockSignals(true);
@@ -1309,7 +1325,6 @@ void EditInstrument::patchNameReturn()
//---------------------------------------------------------
// patchChanged
//---------------------------------------------------------
-
void EditInstrument::patchChanged()
{
//if (old && old->data(0, Qt::UserRole).value<void*>()) {
@@ -1322,16 +1337,15 @@ void EditInstrument::patchChanged()
//Patch* p = (Patch*)old->data(0, Qt::UserRole).value<void*>();
//updatePatch(instrument, p);
if(oldPatchItem->parent())
- updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
else
- updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
}
-
- ListViewData* sel = (ListViewData*)patchView->selectedItem();
+ QTreeWidgetItem* sel = patchView->selectedItems().size() ? patchView->selectedItems()[0] : 0;
oldPatchItem = sel;
- if(!sel || !sel->data())
+ if(!sel || !sel->data(0, Qt::UserRole).value<void*>())
{
patchNameEdit->setText("");
spinBoxHBank->setEnabled(false);
@@ -1347,7 +1361,7 @@ void EditInstrument::patchChanged()
// If the item has a parent, it's a patch item.
if(sel->parent())
{
- Patch* p = (Patch*)sel->data();
+ Patch* p = (Patch*)sel->data(0, Qt::UserRole).value<void*>();
patchNameEdit->setText(p->name);
spinBoxHBank->setEnabled(true);
spinBoxLBank->setEnabled(true);
@@ -1373,7 +1387,7 @@ void EditInstrument::patchChanged()
else
// The item is a patch group item.
{
- patchNameEdit->setText( ((PatchGroup*)sel->data())->name );
+ patchNameEdit->setText( ((PatchGroup*)sel->data(0, Qt::UserRole).value<void*>())->name );
spinBoxHBank->setEnabled(false);
spinBoxLBank->setEnabled(false);
spinBoxProgram->setEnabled(false);
@@ -1390,11 +1404,12 @@ void EditInstrument::patchChanged()
void EditInstrument::defPatchChanged(int)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (!item)
return;
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
int val = getDefaultPatchNumber();
@@ -1427,7 +1442,7 @@ void EditInstrument::patchButtonClicked()
if (pg->size() > 1) {
for (ciPatchGroup i = pg->begin(); i != pg->end(); ++i) {
PatchGroup* pgp = *i;
- Q3PopupMenu* pm = new Q3PopupMenu(patchpopup);
+ QMenu* pm = new QMenu(pgp->name);
pm->setCheckable(false);
pm->setFont(config.fonts[0]);
const PatchList& pl = pgp->patches;
@@ -1440,11 +1455,12 @@ void EditInstrument::patchButtonClicked()
// {
int id = ((mp->hbank & 0xff) << 16)
+ ((mp->lbank & 0xff) << 8) + (mp->prog & 0xff);
- pm->insertItem(mp->name, id);
+ QAction *ac1 = pm->addAction(mp->name);
+ ac1->setData(id);
// }
}
- patchpopup->insertItem(pgp->name, pm);
+ patchpopup->addMenu(pm);
}
}
else if (pg->size() == 1 ){
@@ -1455,26 +1471,29 @@ void EditInstrument::patchButtonClicked()
//if (mp->typ & mask) {
int id = ((mp->hbank & 0xff) << 16)
+ ((mp->lbank & 0xff) << 8) + (mp->prog & 0xff);
- patchpopup->insertItem(mp->name, id);
+ QAction *ac2 = patchpopup->addAction(mp->name);
+ ac2->setData(id);
// }
}
}
if(patchpopup->count() == 0)
return;
-
- int rv = patchpopup->exec(patchButton->mapToGlobal(QPoint(10,5)));
-
+
+ QAction* act = patchpopup->exec(patchButton->mapToGlobal(QPoint(10,5)));
+ int rv = act->data().toInt();
+
if (rv != -1)
{
//if(rv != workingInstrument.
setDefaultPatchControls(rv);
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if(item)
{
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
c->setInitVal(rv);
item->setText(COL_DEF, getPatchItemText(rv));
@@ -1488,7 +1507,7 @@ void EditInstrument::patchButtonClicked()
// addControllerToView
//---------------------------------------------------------
-ListViewData* EditInstrument::addControllerToView(MidiController* mctrl)
+QTreeWidgetItem* EditInstrument::addControllerToView(MidiController* mctrl)
{
QString hnum;
QString lnum;
@@ -1566,10 +1585,13 @@ ListViewData* EditInstrument::addControllerToView(MidiController* mctrl)
def = "---";
break;
}
-
- ListViewData* ci = new ListViewData(viewController, mctrl->name(), int2ctrlType(t),
- hnum, lnum, min, max, def);
- ci->setData((void*)mctrl);
+
+ QTreeWidgetItem* ci = new QTreeWidgetItem(viewController, QStringList() << mctrl->name() << int2ctrlType(t) << hnum << lnum << min << max << def);
+ //ListViewData* ci = new ListViewData(viewController, mctrl->name(), int2ctrlType(t),
+ // hnum, lnum, min, max, def);
+ //ci->setData((void*)mctrl);
+ QVariant v = qVariantFromValue((void*)(mctrl));
+ ci->setData(0, Qt::UserRole, v);
//setModified(true);
return ci;
@@ -1594,10 +1616,11 @@ void EditInstrument::controllerChanged()
// }
// ListBoxData* sel = (ListBoxData*)listController->selectedItem();
- ListViewData* sel = (ListViewData*)viewController->selectedItem();
+
+ QTreeWidgetItem* sel = viewController->selectedItems().size() ? viewController->selectedItems()[0] : 0;
// oldController = sel;
- if(!sel || !sel->data())
+ if(!sel || !sel->data(0, Qt::UserRole).value<void*>())
{
ctrlName->blockSignals(true);
ctrlName->setText("");
@@ -1606,8 +1629,7 @@ void EditInstrument::controllerChanged()
return;
}
- //MidiController* c = (MidiController*)sel->data(Qt::UserRole).value<void*>();
- MidiController* c = (MidiController*)sel->data();
+ MidiController* c = (MidiController*)sel->data(0, Qt::UserRole).value<void*>();
ctrlName->blockSignals(true);
ctrlName->setText(c->name());
@@ -1749,10 +1771,11 @@ void EditInstrument::controllerChanged()
void EditInstrument::ctrlNameReturn()
//void EditInstrument::ctrlNameChanged(const QString& s)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
QString cName = ctrlName->text();
@@ -1794,12 +1817,13 @@ void EditInstrument::ctrlNameReturn()
void EditInstrument::ctrlTypeChanged(int idx)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
MidiController::ControllerType t = (MidiController::ControllerType)idx;
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
if(t == midiControllerType(c->num()))
return;
@@ -2089,12 +2113,13 @@ void EditInstrument::ctrlTypeChanged(int idx)
void EditInstrument::ctrlHNumChanged(int val)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
QString s;
s.setNum(val);
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
//int n = c->num() & 0xff;
int n = c->num() & 0x7fff00ff;
c->setNum(n | ((val & 0xff) << 8));
@@ -2108,10 +2133,11 @@ void EditInstrument::ctrlHNumChanged(int val)
void EditInstrument::ctrlLNumChanged(int val)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
//int n = c->num() & 0xff00;
int n = c->num() & ~0xff;
c->setNum(n | (val & 0xff));
@@ -2132,7 +2158,8 @@ void EditInstrument::ctrlLNumChanged(int val)
void EditInstrument::ctrlMinChanged(int val)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
@@ -2140,7 +2167,7 @@ void EditInstrument::ctrlMinChanged(int val)
s.setNum(val);
item->setText(COL_MIN, s);
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
c->setMinVal(val);
int rng = 0;
@@ -2217,7 +2244,8 @@ void EditInstrument::ctrlMinChanged(int val)
void EditInstrument::ctrlMaxChanged(int val)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
@@ -2225,7 +2253,7 @@ void EditInstrument::ctrlMaxChanged(int val)
s.setNum(val);
item->setText(COL_MAX, s);
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
c->setMaxVal(val);
int rng = 0;
@@ -2302,11 +2330,12 @@ void EditInstrument::ctrlMaxChanged(int val)
void EditInstrument::ctrlDefaultChanged(int val)
{
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
+
if (item == 0)
return;
- MidiController* c = (MidiController*)item->data();
+ MidiController* c = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
if(val == c->minVal() - 1)
{
@@ -2396,7 +2425,8 @@ void EditInstrument::deletePatchClicked()
//MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
// MidiInstrument* instrument = (MidiInstrument*)item->data();
//QTreeWidgetItem* pi = patchView->currentItem();
- ListViewData* pi = (ListViewData*)patchView->selectedItem();
+ QTreeWidgetItem* pi = patchView->currentItem();
+
if (pi == 0)
return;
@@ -2409,11 +2439,11 @@ void EditInstrument::deletePatchClicked()
// If the item has a parent item, it's a patch item...
if(pi->parent())
{
- PatchGroup* group = (PatchGroup*)((ListViewData*)pi->parent())->data();
+ PatchGroup* group = (PatchGroup*)(pi->parent())->data(0, Qt::UserRole).value<void*>();
// If there is an allocated patch in the data, delete it.
//Patch* patch = (Patch*)pi->auxData();
- Patch* patch = (Patch*)pi->data();
+ Patch* patch = (Patch*)pi->data(0, Qt::UserRole).value<void*>();
if(patch)
{
if(group)
@@ -2439,7 +2469,7 @@ void EditInstrument::deletePatchClicked()
{
// Is there an allocated patch group in the data?
//PatchGroup* group = (PatchGroup*)pi->auxData();
- PatchGroup* group = (PatchGroup*)pi->data();
+ PatchGroup* group = (PatchGroup*)pi->data(0, Qt::UserRole).value<void*>();
if(group)
{
@@ -2500,7 +2530,7 @@ void EditInstrument::deletePatchClicked()
patchView->blockSignals(true);
delete pi;
if(patchView->currentItem())
- patchView->setSelected(patchView->currentItem(), true);
+ patchView->currentItem()->setSelected(true);
patchView->blockSignals(false);
oldPatchItem = 0;
@@ -2541,9 +2571,9 @@ void EditInstrument::newPatchClicked()
if(oldPatchItem)
{
if(oldPatchItem->parent())
- updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
else
- updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
}
//MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
@@ -2579,7 +2609,8 @@ void EditInstrument::newPatchClicked()
//
//PatchGroup* pGroup = 0;
//QTreeWidgetItem* pi = patchView->currentItem();
- ListViewData* pi = (ListViewData*)patchView->selectedItem();
+ QTreeWidgetItem* pi = patchView->currentItem();
+
if (pi == 0)
return;
@@ -2593,12 +2624,12 @@ void EditInstrument::newPatchClicked()
if(pi->parent())
{
// Remember the current selected patch.
- selpatch = (Patch*)pi->data();
+ selpatch = (Patch*)pi->data(0, Qt::UserRole).value<void*>();
- pi = (ListViewData*)pi->parent();
+ pi = pi->parent();
}
- PatchGroup* group = (PatchGroup*)pi->data();
+ PatchGroup* group = (PatchGroup*)pi->data(0, Qt::UserRole).value<void*>();
if(!group)
return;
@@ -2699,7 +2730,7 @@ void EditInstrument::newPatchClicked()
//Patch* pp = &(group->patches.back());
//QTreeWidgetItem* sitem = new QTreeWidgetItem;
- ListViewData* sitem = new ListViewData(pi);
+ QTreeWidgetItem* sitem = new QTreeWidgetItem(pi);
//sitem->setText(0, patch->name);
sitem->setText(0, patchName);
@@ -2709,7 +2740,9 @@ void EditInstrument::newPatchClicked()
//sitem->setData(0, Qt::UserRole, v);
// Set the list view item's data.
- sitem->setData((void*)patch);
+ //sitem->setData((void*)patch);
+ QVariant v = qVariantFromValue((void*)(patch));
+ sitem->setData(0, Qt::UserRole, v);
//sitem->setAuxData((void*)patch);
//sitem->setData((void*)pp);
@@ -2725,8 +2758,8 @@ void EditInstrument::newPatchClicked()
// May cause patchChanged call.
patchView->blockSignals(true);
- patchView->setSelected(sitem, true);
- patchView->ensureItemVisible(sitem);
+ sitem->setSelected(true);
+ patchView->scrollToItem((QTreeWidgetItem*)sitem, QAbstractItemView::EnsureVisible);
patchView->blockSignals(false);
//oldPatchItem = (ListViewData*)patchView->selectedItem();
@@ -2762,9 +2795,9 @@ void EditInstrument::newGroupClicked()
if(oldPatchItem)
{
if(oldPatchItem->parent())
- updatePatch(&workingInstrument, (Patch*)oldPatchItem->data());
+ updatePatch(&workingInstrument, (Patch*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
else
- updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data());
+ updatePatchGroup(&workingInstrument, (PatchGroup*)oldPatchItem->data(0, Qt::UserRole).value<void*>());
}
//MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>();
@@ -2799,8 +2832,7 @@ void EditInstrument::newGroupClicked()
pg->push_back(group);
//PatchGroup* pgp = &(pg->back());
- //QTreeWidgetItem* sitem = new QTreeWidgetItem;
- ListViewData* sitem = new ListViewData(patchView);
+ QTreeWidgetItem* sitem = new QTreeWidgetItem(patchView);
sitem->setText(0, groupName);
patchNameEdit->setText(groupName);
@@ -2810,7 +2842,8 @@ void EditInstrument::newGroupClicked()
//sitem->setData((void*)0);
// Set the list view item's data.
- sitem->setData((void*)group);
+ QVariant v = qVariantFromValue((void*)(group));
+ sitem->setData(0, Qt::UserRole, v);
//sitem->setAuxData((void*)pgp);
//patchView->addTopLevelItem(sitem);
@@ -2820,7 +2853,7 @@ void EditInstrument::newGroupClicked()
// May cause patchChanged call.
patchView->blockSignals(true);
- patchView->setSelected(sitem, true);
+ sitem->setSelected(true);
patchView->blockSignals(false);
//oldPatchItem = (ListViewData*)patchView->selectedItem();
@@ -2850,7 +2883,7 @@ void EditInstrument::deleteControllerClicked()
//ListBoxData* item = (ListBoxData*)instrumentList->selectedItem();
//QListWidgetItem* item2 = listController->currentItem();
// ListBoxData* item = (ListBoxData*)listController->selectedItem();
- ListViewData* item = (ListViewData*)viewController->selectedItem();
+ QTreeWidgetItem* item = viewController->currentItem();
//if (item == 0 || item2 == 0)
if(!item)
@@ -2862,7 +2895,7 @@ void EditInstrument::deleteControllerClicked()
//MidiControllerList* cl = instrument->controller();
//cl->removeAll(ctrl);
- MidiController* ctrl = (MidiController*)item->data();
+ MidiController* ctrl = (MidiController*)item->data(0, Qt::UserRole).value<void*>();
if(!ctrl)
return;
@@ -2876,7 +2909,7 @@ void EditInstrument::deleteControllerClicked()
viewController->blockSignals(true);
delete item;
if(viewController->currentItem())
- viewController->setSelected(viewController->currentItem(), true);
+ viewController->currentItem()->setSelected(true);
// listController->blockSignals(false);
viewController->blockSignals(false);
@@ -2926,15 +2959,15 @@ void EditInstrument::newControllerClicked()
ctrl->setMinVal(0);
ctrl->setMaxVal(127);
ctrl->setInitVal(CTRL_VAL_UNKNOWN);
-
- ListViewData* ci = (ListViewData*)viewController->selectedItem();
+
+ QTreeWidgetItem* ci = viewController->currentItem();
// To allow for quick multiple successive controller creation.
// If there's a current controller item selected, copy initial values from it.
bool found = false;
if(ci)
{
- MidiController* selctl = (MidiController*)ci->data();
+ MidiController* selctl = (MidiController*)ci->data(0, Qt::UserRole).value<void*>();
// Assign.
// *ctrl = *selctl;
@@ -2988,13 +3021,13 @@ void EditInstrument::newControllerClicked()
//listController->setCurrentItem(item);
workingInstrument.controller()->add(ctrl);
- ListViewData* item = addControllerToView(ctrl);
+ QTreeWidgetItem* item = addControllerToView(ctrl);
// listController->blockSignals(true);
// listController->setSelected(item, true);
// listController->blockSignals(false);
viewController->blockSignals(true);
- viewController->setSelected(item, true);
+ item->setSelected(true);
viewController->blockSignals(false);
//oldController = (ListBoxData*)listController->selectedItem();
@@ -3020,12 +3053,12 @@ void EditInstrument::addControllerClicked()
//QString name = midiCtrlName(lnum);
- int idx = listController->currentItem();
- if(idx == -1)
+ QListWidgetItem* idx = listController->currentItem();
+ if(idx == 0)
return;
int lnum = -1;
- QString name = listController->currentText();
+ QString name = listController->currentItem()->text();
for(int i = 0; i < 128; i++)
{
if(midiCtrlName(i) == name)
@@ -3080,10 +3113,10 @@ void EditInstrument::addControllerClicked()
workingInstrument.controller()->add(ctrl);
- ListViewData* item = addControllerToView(ctrl);
+ QTreeWidgetItem* item = addControllerToView(ctrl);
viewController->blockSignals(true);
- viewController->setSelected(item, true);
+ item->setSelected(true);
viewController->blockSignals(false);
controllerChanged();
@@ -3129,6 +3162,8 @@ void EditInstrument::deleteSysexClicked()
void EditInstrument::updatePatchGroup(MidiInstrument* instrument, PatchGroup* pg)
{
+ QString a = pg->name;
+ QString b = patchNameEdit->text();
if (pg->name != patchNameEdit->text()) {
pg->name = patchNameEdit->text();
instrument->setDirty(true);
@@ -3315,17 +3350,17 @@ void EditInstrument::updateInstrument(MidiInstrument* instrument)
// printf("updateInstrument: B\n");
- //QTreeWidgetItem* patchItem = patchView->currentItem();
- ListViewData* patchItem = (ListViewData*)patchView->selectedItem();
+ QTreeWidgetItem* patchItem = patchView->currentItem();
+
if (patchItem)
{
//Patch* p = (Patch*)patchItem->data(0, Qt::UserRole).value<void*>();
// If the item has a parent, it's a patch item.
if(patchItem->parent())
- updatePatch(instrument, (Patch*)patchItem->data());
+ updatePatch(instrument, (Patch*)patchItem->data(0, Qt::UserRole).value<void*>());
else
- updatePatchGroup(instrument, (PatchGroup*)patchItem->data());
+ updatePatchGroup(instrument, (PatchGroup*)patchItem->data(0, Qt::UserRole).value<void*>());
}
}
diff --git a/muse2/muse/instruments/editinstrument.h b/muse2/muse/instruments/editinstrument.h
index 25a5993f..b200e326 100644
--- a/muse2/muse/instruments/editinstrument.h
+++ b/muse2/muse/instruments/editinstrument.h
@@ -9,25 +9,24 @@
#ifndef __EDITINSTRUMENT_H__
#define __EDITINSTRUMENT_H__
-#include "editinstrumentbase.h"
+#include "ui_editinstrumentbase.h"
#include "minstrument.h"
#include "midictrl.h"
-//Added by qt3to4:
-#include <Q3PopupMenu>
-#include <QCloseEvent>
-class ListBoxData;
-class ListViewData;
+
+class QDialog;
+class QMenu;
+class QCloseEvent;
//---------------------------------------------------------
// EditInstrument
//---------------------------------------------------------
-class EditInstrument : public EditInstrumentBase {
+class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase {
Q_OBJECT
MidiInstrument workingInstrument;
- ListBoxData* oldMidiInstrument;
- ListViewData* oldPatchItem;
+ QListWidgetItem* oldMidiInstrument;
+ QTreeWidgetItem* oldPatchItem;
void closeEvent(QCloseEvent*);
int checkDirty(MidiInstrument*, bool isClose = false);
bool fileSave(MidiInstrument*, const QString&);
@@ -36,7 +35,7 @@ class EditInstrument : public EditInstrumentBase {
void updatePatch(MidiInstrument*, Patch*);
void updatePatchGroup(MidiInstrument*, PatchGroup*);
void changeInstrument();
- ListViewData* addControllerToView(MidiController* mctrl);
+ QTreeWidgetItem* addControllerToView(MidiController* mctrl);
QString getPatchItemText(int);
void enableDefaultControls(bool, bool);
void setDefaultPatchName(int);
@@ -44,8 +43,8 @@ class EditInstrument : public EditInstrumentBase {
void setDefaultPatchNumbers(int);
void setDefaultPatchControls(int);
const char* getPatchName(int);
- void deleteInstrument(ListBoxData*);
- Q3PopupMenu* patchpopup;
+ void deleteInstrument(QListWidgetItem*);
+ QMenu* patchpopup;
private slots:
virtual void fileNew();
@@ -85,7 +84,7 @@ class EditInstrument : public EditInstrumentBase {
void ctrlNullParamLChanged(int);
public:
- EditInstrument(QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = Qt::Window);
+ EditInstrument(QWidget* parent = 0, Qt::WFlags fl = Qt::Window);
};
#endif
diff --git a/muse2/muse/instruments/editinstrumentbase.ui b/muse2/muse/instruments/editinstrumentbase.ui
index 8f5ecc7b..3337cfc0 100644
--- a/muse2/muse/instruments/editinstrumentbase.ui
+++ b/muse2/muse/instruments/editinstrumentbase.ui
@@ -1,926 +1,741 @@
-<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
-<class>EditInstrumentBase</class>
-<widget class="QMainWindow">
- <property name="name">
- <cstring>Form1</cstring>
- </property>
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>802</width>
- <height>505</height>
- </rect>
- </property>
- <property name="minimumSize">
- <size>
- <width>802</width>
- <height>464</height>
- </size>
- </property>
- <property name="caption">
- <string>MusE: Instrument Editor</string>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSplitter">
- <property name="name">
- <cstring>splitter4</cstring>
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>EditInstrumentBase</class>
+ <widget class="QMainWindow" name="EditInstrumentBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>802</width>
+ <height>505</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>802</width>
+ <height>464</height>
+ </size>
+ </property>
+ <property name="windowTitle">
+ <string>MusE: Instrument Editor</string>
+ </property>
+ <widget class="QWidget" name="widget">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QSplitter" name="splitter4">
+ <property name="minimumSize">
+ <size>
+ <width>780</width>
+ <height>365</height>
+ </size>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QWidget" name="layout26">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabel2">
+ <property name="text">
+ <string>Instrument Name:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="instrumentName">
+ <property name="toolTip">
+ <string/>
+ </property>
+ <property name="whatsThis">
+ <string>Selected instrument name.</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="instrumentList">
+ <property name="whatsThis">
+ <string>List of defined instruments.</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QTabWidget" name="tabWidget3">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="patchesTab">
+ <attribute name="title">
+ <string>Pa&amp;tches</string>
+ </attribute>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QSplitter" name="splitter5">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QTreeWidget" name="patchView">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="minimumSize">
- <size>
- <width>780</width>
- <height>365</height>
- </size>
+ <property name="toolTip">
+ <string/>
</property>
- <property name="orientation">
- <enum>Horizontal</enum>
+ <property name="whatsThis">
+ <string>List of groups and patches.</string>
</property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout26</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel2</cstring>
- </property>
- <property name="text">
- <string>Instrument Name:</string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>instrumentName</cstring>
- </property>
- <property name="toolTip" stdset="0">
- <string></string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Selected instrument name.</string>
- </property>
- </widget>
- <widget class="QListBox">
- <property name="name">
- <cstring>instrumentList</cstring>
- </property>
- <property name="whatsThis" stdset="0">
- <string>List of defined instruments.</string>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="QTabWidget">
- <property name="name">
- <cstring>tabWidget3</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <widget class="QWidget">
- <property name="name">
- <cstring>patchesTab</cstring>
- </property>
- <attribute name="title">
- <string>Pa&amp;tches</string>
- </attribute>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSplitter">
- <property name="name">
- <cstring>splitter5</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <widget class="QListView">
- <column>
- <property name="text">
- <string>Group/Patch</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <property name="name">
- <cstring>patchView</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="allColumnsShowFocus">
- <bool>true</bool>
- </property>
- <property name="rootIsDecorated">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string></string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>List of groups and patches.</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout26</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QGroupBox">
- <property name="name">
- <cstring>groupBox2</cstring>
- </property>
- <property name="title">
- <string>Properties</string>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabelPatchName</cstring>
- </property>
- <property name="text">
- <string>Name:</string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>patchNameEdit</cstring>
- </property>
- <property name="toolTip" stdset="0">
- <string>Group or patch name</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Group or patch name</string>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel2_2</cstring>
- </property>
- <property name="text">
- <string>High Bank:</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout22</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxHBank</cstring>
- </property>
- <property name="specialValueText">
- <string>---</string>
- <comment>dont care</comment>
- </property>
- <property name="maxValue">
- <number>128</number>
- </property>
- <property name="minValue">
- <number>0</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Patch high bank number</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Patch high bank number. --- means don't care.</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer8</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>373</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel3_2</cstring>
- </property>
- <property name="text">
- <string>Low Bank:</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout23</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxLBank</cstring>
- </property>
- <property name="specialValueText">
- <string>---</string>
- </property>
- <property name="maxValue">
- <number>128</number>
- </property>
- <property name="minValue">
- <number>0</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Patch low bank number</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Patch low bank number. --- means don't care.</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer9</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>373</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel4_3</cstring>
- </property>
- <property name="text">
- <string>Program:</string>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout24</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxProgram</cstring>
- </property>
- <property name="maxValue">
- <number>128</number>
- </property>
- <property name="minValue">
- <number>1</number>
- </property>
- <property name="value">
- <number>1</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Patch program number</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Patch program number</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer10</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>373</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout6</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QCheckBox">
- <property name="name">
- <cstring>checkBoxDrum</cstring>
- </property>
- <property name="text">
- <string>Drum</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Drum patch</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>If set, the patch is available only for drum channels.</string>
- </property>
- </widget>
- <widget class="QCheckBox">
- <property name="name">
- <cstring>checkBoxGM</cstring>
- </property>
- <property name="text">
- <string>GM</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- <property name="toolTip" stdset="0">
- <string>GM patch</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>If set, the patch is available in a 'GM' or 'NO' midi song type.</string>
- </property>
- </widget>
- <widget class="QCheckBox">
- <property name="name">
- <cstring>checkBoxGS</cstring>
- </property>
- <property name="text">
- <string>GS</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>GS patch</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>If set, the patch is available in a 'GS' or 'NO' midi song type.</string>
- </property>
- </widget>
- <widget class="QCheckBox">
- <property name="name">
- <cstring>checkBoxXG</cstring>
- </property>
- <property name="text">
- <string>XG</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>XG patch</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>If set, the patch is available in an 'XG' or 'NO' midi song type.</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer7</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>90</height>
- </size>
- </property>
- </spacer>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout5</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QToolButton">
- <property name="name">
- <cstring>patchDelete</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>&amp;Delete</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Delete group or patch</string>
- </property>
- </widget>
- <widget class="QToolButton">
- <property name="name">
- <cstring>patchNew</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>1</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>New &amp;Patch</string>
- </property>
- <property name="accel">
- <string>Alt+P</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>New patch</string>
- </property>
- </widget>
- <widget class="QToolButton">
- <property name="name">
- <cstring>patchNewGroup</cstring>
- </property>
- <property name="text">
- <string>New &amp;Group</string>
- </property>
- <property name="accel">
- <string>Alt+G</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>New group</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer11</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>240</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- </vbox>
- </widget>
- </widget>
- </vbox>
+ <property name="rootIsDecorated">
+ <bool>true</bool>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text">
+ <string>Group/Patch</string>
+ </property>
+ </column>
+ </widget>
+ <widget class="QWidget" name="layout27">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox2">
+ <property name="title">
+ <string>Properties</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabelPatchName">
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="patchNameEdit">
+ <property name="toolTip">
+ <string>Group or patch name</string>
+ </property>
+ <property name="whatsThis">
+ <string>Group or patch name</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel2_2">
+ <property name="text">
+ <string>High Bank:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QSpinBox" name="spinBoxHBank">
+ <property name="toolTip">
+ <string>Patch high bank number</string>
+ </property>
+ <property name="whatsThis">
+ <string>Patch high bank number. --- means don't care.</string>
+ </property>
+ <property name="specialValueText">
+ <string comment="dont care">---</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>128</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer8">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>373</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel3_2">
+ <property name="text">
+ <string>Low Bank:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QSpinBox" name="spinBoxLBank">
+ <property name="toolTip">
+ <string>Patch low bank number</string>
+ </property>
+ <property name="whatsThis">
+ <string>Patch low bank number. --- means don't care.</string>
+ </property>
+ <property name="specialValueText">
+ <string>---</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>128</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer9">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>373</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel4_3">
+ <property name="text">
+ <string>Program:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QSpinBox" name="spinBoxProgram">
+ <property name="toolTip">
+ <string>Patch program number</string>
+ </property>
+ <property name="whatsThis">
+ <string>Patch program number</string>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>128</number>
+ </property>
+ <property name="value">
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer10">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>373</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QCheckBox" name="checkBoxDrum">
+ <property name="toolTip">
+ <string>Drum patch</string>
+ </property>
+ <property name="whatsThis">
+ <string>If set, the patch is available only for drum channels.</string>
+ </property>
+ <property name="text">
+ <string>Drum</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBoxGM">
+ <property name="toolTip">
+ <string>GM patch</string>
+ </property>
+ <property name="whatsThis">
+ <string>If set, the patch is available in a 'GM' or 'NO' midi song type.</string>
+ </property>
+ <property name="text">
+ <string>GM</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBoxGS">
+ <property name="toolTip">
+ <string>GS patch</string>
+ </property>
+ <property name="whatsThis">
+ <string>If set, the patch is available in a 'GS' or 'NO' midi song type.</string>
+ </property>
+ <property name="text">
+ <string>GS</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="checkBoxXG">
+ <property name="toolTip">
+ <string>XG patch</string>
+ </property>
+ <property name="whatsThis">
+ <string>If set, the patch is available in an 'XG' or 'NO' midi song type.</string>
+ </property>
+ <property name="text">
+ <string>XG</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer7">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>90</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QToolButton" name="patchDelete">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Delete group or patch</string>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+D</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="patchNew">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>New patch</string>
+ </property>
+ <property name="text">
+ <string>New &amp;Patch</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+P</string>
+ </property>
</widget>
- <widget class="QWidget">
- <property name="name">
- <cstring>controllerTab</cstring>
- </property>
- <attribute name="title">
- <string>Contro&amp;ller</string>
- </attribute>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSplitter">
- <property name="name">
- <cstring>splitter4</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout13</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Common:</string>
- </property>
- </widget>
- <widget class="QListBox">
- <property name="name">
- <cstring>listController</cstring>
- </property>
- <property name="variableWidth">
- <bool>false</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string></string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>This is a list of commonly used midi controllers.
+ </item>
+ <item>
+ <widget class="QToolButton" name="patchNewGroup">
+ <property name="toolTip">
+ <string>New group</string>
+ </property>
+ <property name="text">
+ <string>New &amp;Group</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+G</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer11">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>240</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="controllerTab">
+ <attribute name="title">
+ <string>Contro&amp;ller</string>
+ </attribute>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QSplitter" name="splitter6">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QWidget" name="layout13">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabel1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Common:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="listController">
+ <property name="toolTip">
+ <string/>
+ </property>
+ <property name="whatsThis">
+ <string>This is a list of commonly used midi controllers.
Note that in MusE pitch and program changes are
handled like normal controllers.</string>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout17</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QListView">
- <column>
- <property name="text">
- <string>Name </string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Type </string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>true</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>H-Ctrl</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>false</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>L-Ctrl</string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>false</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Min </string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>false</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Max </string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>false</bool>
- </property>
- </column>
- <column>
- <property name="text">
- <string>Def </string>
- </property>
- <property name="clickable">
- <bool>true</bool>
- </property>
- <property name="resizable">
- <bool>false</bool>
- </property>
- </column>
- <property name="name">
- <cstring>viewController</cstring>
- </property>
- <property name="frameShape">
- <enum>StyledPanel</enum>
- </property>
- <property name="frameShadow">
- <enum>Sunken</enum>
- </property>
- <property name="allColumnsShowFocus">
- <bool>true</bool>
- </property>
- <property name="toolTip" stdset="0">
- <string>List of defined controllers</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>List of defined controllers.</string>
- </property>
- </widget>
- <widget class="QGroupBox">
- <property name="name">
- <cstring>GroupBox1</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Properties</string>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout33</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel1_3</cstring>
- </property>
- <property name="text">
- <string>Name:</string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>ctrlName</cstring>
- </property>
- <property name="toolTip" stdset="0">
- <string></string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Midi controller name</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout37</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel2_4</cstring>
- </property>
- <property name="text">
- <string>Type:</string>
- </property>
- </widget>
- <widget class="QComboBox">
- <item>
- <property name="text">
- <string>Control7</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Control14</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>RPN</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>NRPN</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>RPN14</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>NRPN14</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Pitch</string>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Program</string>
- </property>
- </item>
- <property name="name">
- <cstring>ctrlType</cstring>
- </property>
- <property name="toolTip" stdset="0">
- <string>Midi controller type</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Midi controller type</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer15</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel3_2</cstring>
- </property>
- <property name="text">
- <string>H-Ctrl</string>
- </property>
- <property name="indent">
- <number>10</number>
- </property>
- </widget>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxHCtrlNo</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maxValue">
- <number>127</number>
- </property>
- <property name="minValue">
- <number>0</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Midi controller number high byte</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Midi controller number high byte</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer16</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel2_3_2</cstring>
- </property>
- <property name="text">
- <string>L-Ctrl</string>
- </property>
- <property name="indent">
- <number>10</number>
- </property>
- </widget>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxLCtrlNo</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="specialValueText">
- <string>*</string>
- <comment>wild card</comment>
- </property>
- <property name="maxValue">
- <number>127</number>
- </property>
- <property name="minValue">
- <number>-1</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Midi controller number low byte (* means drum controller)</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Midi controller number low byte.
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="layout17">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QTreeWidget" name="viewController">
+ <property name="toolTip">
+ <string>List of defined controllers</string>
+ </property>
+ <property name="whatsThis">
+ <string>List of defined controllers.</string>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="allColumnsShowFocus">
+ <bool>true</bool>
+ </property>
+ <column>
+ <property name="text">
+ <string>Name </string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Type </string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>H-Ctrl</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>L-Ctrl</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Min </string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Max </string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Def </string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="GroupBox1">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Properties</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="TextLabel1_3">
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="ctrlName">
+ <property name="toolTip">
+ <string/>
+ </property>
+ <property name="whatsThis">
+ <string>Midi controller name</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="TextLabel2_4">
+ <property name="text">
+ <string>Type:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="ctrlType">
+ <property name="toolTip">
+ <string>Midi controller type</string>
+ </property>
+ <property name="whatsThis">
+ <string>Midi controller type</string>
+ </property>
+ <item>
+ <property name="text">
+ <string>Control7</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Control14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>RPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>NRPN</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>RPN14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>NRPN14</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Pitch</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Program</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer15">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel3_2">
+ <property name="text">
+ <string>H-Ctrl</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxHCtrlNo">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Midi controller number high byte</string>
+ </property>
+ <property name="whatsThis">
+ <string>Midi controller number high byte</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>127</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer16">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2_3_2">
+ <property name="text">
+ <string>L-Ctrl</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxLCtrlNo">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Midi controller number low byte (* means drum controller)</string>
+ </property>
+ <property name="whatsThis">
+ <string>Midi controller number low byte.
If low byte is * then the controller is a
'drum controller'. For drum tracks and
GS/XG type songs and instruments.
@@ -929,80 +744,80 @@ Allows controllers for each instrument in
replaced by the 'ANote' in the drum map.
Examples: The GS and XG instruments'
Drum controllers.</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout38</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel4_2</cstring>
- </property>
- <property name="text">
- <string>Range:</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer17</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel1_2_2</cstring>
- </property>
- <property name="text">
- <string>Min</string>
- </property>
- <property name="alignment">
- <set>AlignVCenter|AlignRight</set>
- </property>
- <property name="indent">
- <number>10</number>
- </property>
- </widget>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxMin</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maxValue">
- <number>16383</number>
- </property>
- <property name="minValue">
- <number>-16384</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Minimum value. If negative, auto-translate.</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Minimum value. If the minimum value
+ </property>
+ <property name="specialValueText">
+ <string comment="wild card">*</string>
+ </property>
+ <property name="minimum">
+ <number>-1</number>
+ </property>
+ <property name="maximum">
+ <number>127</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabel4_2">
+ <property name="text">
+ <string>Range:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer17">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel1_2_2">
+ <property name="text">
+ <string>Min</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxMin">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Minimum value. If negative, auto-translate.</string>
+ </property>
+ <property name="whatsThis">
+ <string>Minimum value. If the minimum value
is negative, the range will automatically
be translated to a positive range.
@@ -1021,259 +836,243 @@ Type 'Pitch' is the exception. It is biased
at zero, even with a negative minimum:
'Pitch': Min: -8192 Max: 8191
True range: Min: -8192 Max: 8191 (bias 0)</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer18</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>TextLabel2_2_2</cstring>
- </property>
- <property name="text">
- <string>Max</string>
- </property>
- <property name="alignment">
- <set>AlignVCenter|AlignRight</set>
- </property>
- <property name="indent">
- <number>10</number>
- </property>
- </widget>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>spinBoxMax</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maxValue">
- <number>16383</number>
- </property>
- <property name="minValue">
- <number>-16384</number>
- </property>
- <property name="value">
- <number>127</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Maximum value</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Maximum value</string>
- </property>
- </widget>
- </hbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout16</cstring>
- </property>
- <grid>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <spacer row="1" column="0" rowspan="1" colspan="2">
- <property name="name">
- <cstring>spacer13_2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel" row="0" column="0">
- <property name="name">
- <cstring>textLabel1_3</cstring>
- </property>
- <property name="text">
- <string>Default:</string>
- </property>
- <property name="alignment">
- <set>AlignVCenter</set>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="6">
- <property name="name">
- <cstring>textLabel2_4</cstring>
- </property>
- <property name="text">
- <string>L-Bank</string>
- </property>
- </widget>
- <widget class="QSpinBox" row="0" column="5">
- <property name="name">
- <cstring>defPatchH</cstring>
- </property>
- <property name="specialValueText">
- <string>off</string>
- </property>
- <property name="maxValue">
- <number>128</number>
- </property>
- <property name="minValue">
- <number>0</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- </widget>
- <widget class="QSpinBox" row="0" column="7">
- <property name="name">
- <cstring>defPatchL</cstring>
- </property>
- <property name="specialValueText">
- <string>off</string>
- </property>
- <property name="maxValue">
- <number>128</number>
- </property>
- <property name="minValue">
- <number>0</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- </widget>
- <widget class="QLabel" row="1" column="6">
- <property name="name">
- <cstring>textLabel3</cstring>
- </property>
- <property name="text">
- <string>Progr.</string>
- </property>
- </widget>
- <widget class="QSpinBox" row="1" column="7">
- <property name="name">
- <cstring>defPatchProg</cstring>
- </property>
- <property name="specialValueText">
- <string>off</string>
- </property>
- <property name="maxValue">
- <number>128</number>
- </property>
- <property name="minValue">
- <number>0</number>
- </property>
- <property name="value">
- <number>0</number>
- </property>
- </widget>
- <widget class="QPushButton" row="1" column="2" rowspan="1" colspan="4">
- <property name="name">
- <cstring>patchButton</cstring>
- </property>
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="minimumSize">
- <size>
- <width>210</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string>???</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- </widget>
- <widget class="QLabel" row="0" column="4">
- <property name="name">
- <cstring>textLabel1_5</cstring>
- </property>
- <property name="text">
- <string>H-Bank</string>
- </property>
- </widget>
- <spacer row="0" column="3">
- <property name="name">
- <cstring>spacer12_2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QSpinBox" row="0" column="1" rowspan="1" colspan="2">
- <property name="name">
- <cstring>spinBoxDefault</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>85</width>
- <height>32767</height>
- </size>
- </property>
- <property name="specialValueText">
- <string>off</string>
- <comment>dont care</comment>
- </property>
- <property name="maxValue">
- <number>16383</number>
- </property>
- <property name="minValue">
- <number>-1</number>
- </property>
- <property name="value">
- <number>-1</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Default value. Off: No default.</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>Default (initial) value. Off means no default.
+ </property>
+ <property name="minimum">
+ <number>-16384</number>
+ </property>
+ <property name="maximum">
+ <number>16383</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer18">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="TextLabel2_2_2">
+ <property name="text">
+ <string>Max</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="indent">
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBoxMax">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Maximum value</string>
+ </property>
+ <property name="whatsThis">
+ <string>Maximum value</string>
+ </property>
+ <property name="minimum">
+ <number>-16384</number>
+ </property>
+ <property name="maximum">
+ <number>16383</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QGridLayout">
+ <item row="1" column="0" colspan="2">
+ <spacer name="spacer13_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="textLabel1_3">
+ <property name="text">
+ <string>Default:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignVCenter</set>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6">
+ <widget class="QLabel" name="textLabel2_4">
+ <property name="text">
+ <string>L-Bank</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5">
+ <widget class="QSpinBox" name="defPatchH">
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>128</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="7">
+ <widget class="QSpinBox" name="defPatchL">
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>128</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="6">
+ <widget class="QLabel" name="textLabel3">
+ <property name="text">
+ <string>Progr.</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="7">
+ <widget class="QSpinBox" name="defPatchProg">
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>128</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" colspan="4">
+ <widget class="QPushButton" name="patchButton">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>210</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>???</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4">
+ <widget class="QLabel" name="textLabel1_5">
+ <property name="text">
+ <string>H-Bank</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3">
+ <spacer name="spacer12_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="1" colspan="2">
+ <widget class="QSpinBox" name="spinBoxDefault">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>85</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Default value. Off: No default.</string>
+ </property>
+ <property name="whatsThis">
+ <string>Default (initial) value. Off means no default.
If a default value is chosen, the value will be sent
to the controller when the controller is added to
@@ -1288,553 +1087,563 @@ Caution! Watch out for controllers such as
values. You should probably turn 'off' their
default (in piano roll or drum edit, and
instrument editor).</string>
- </property>
- </widget>
- </grid>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout10</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QToolButton">
- <property name="name">
- <cstring>addController</cstring>
- </property>
- <property name="text">
- <string>&amp;Add</string>
- </property>
- <property name="accel">
- <string>Alt+A</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Add common controller</string>
- </property>
- </widget>
- <widget class="QToolButton">
- <property name="name">
- <cstring>deleteController</cstring>
- </property>
- <property name="text">
- <string>&amp;Delete</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Delete controller</string>
- </property>
- </widget>
- <widget class="QToolButton">
- <property name="name">
- <cstring>newController</cstring>
- </property>
- <property name="text">
- <string>New &amp;Controller</string>
- </property>
- <property name="accel">
- <string>Alt+C</string>
- </property>
- <property name="toolTip" stdset="0">
- <string>Create a new controller</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer13</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>200</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>nullValLabelH</cstring>
- </property>
- <property name="text">
- <string>Null Param Hi:</string>
- </property>
- </widget>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>nullParamSpinBoxH</cstring>
- </property>
- <property name="specialValueText">
- <string>off</string>
- </property>
- <property name="maxValue">
- <number>127</number>
- </property>
- <property name="minValue">
- <number>-1</number>
- </property>
- <property name="value">
- <number>127</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Null parameter number High byte</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>If set, these 'null' parameter numbers will
+ </property>
+ <property name="specialValueText">
+ <string comment="dont care">off</string>
+ </property>
+ <property name="minimum">
+ <number>-1</number>
+ </property>
+ <property name="maximum">
+ <number>16383</number>
+ </property>
+ <property name="value">
+ <number>-1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QToolButton" name="addController">
+ <property name="toolTip">
+ <string>Add common controller</string>
+ </property>
+ <property name="text">
+ <string>&amp;Add</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+A</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="deleteController">
+ <property name="toolTip">
+ <string>Delete controller</string>
+ </property>
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+D</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="newController">
+ <property name="toolTip">
+ <string>Create a new controller</string>
+ </property>
+ <property name="text">
+ <string>New &amp;Controller</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+C</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer13">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>200</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="nullValLabelH">
+ <property name="text">
+ <string>Null Param Hi:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="nullParamSpinBoxH">
+ <property name="toolTip">
+ <string>Null parameter number High byte</string>
+ </property>
+ <property name="whatsThis">
+ <string>If set, these 'null' parameter numbers will
be sent after each RPN/NRPN event.
This prevents subsequent 'data' events
from corrupting the RPN/NRPN controller.
Typically, set to 127/127, or an unused
RPN/NRPN controller number.</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer13_3</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>200</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLabel">
- <property name="name">
- <cstring>nullValLabelL</cstring>
- </property>
- <property name="text">
- <string> Lo:</string>
- </property>
- </widget>
- <widget class="QSpinBox">
- <property name="name">
- <cstring>nullParamSpinBoxL</cstring>
- </property>
- <property name="specialValueText">
- <string>off</string>
- </property>
- <property name="maxValue">
- <number>127</number>
- </property>
- <property name="minValue">
- <number>-1</number>
- </property>
- <property name="value">
- <number>127</number>
- </property>
- <property name="toolTip" stdset="0">
- <string>Null parameter number Low byte</string>
- </property>
- <property name="whatsThis" stdset="0">
- <string>If set, these 'null' parameter numbers will
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="minimum">
+ <number>-1</number>
+ </property>
+ <property name="maximum">
+ <number>127</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="spacer13_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>200</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="nullValLabelL">
+ <property name="text">
+ <string> Lo:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="nullParamSpinBoxL">
+ <property name="toolTip">
+ <string>Null parameter number Low byte</string>
+ </property>
+ <property name="whatsThis">
+ <string>If set, these 'null' parameter numbers will
be sent after each RPN/NRPN event.
This prevents subsequent 'data' events
from corrupting the RPN/NRPN controller.
Typically, set to 127/127, or an unused
RPN/NRPN controller number.</string>
- </property>
- </widget>
- </hbox>
- </widget>
- </vbox>
- </widget>
- </widget>
- </vbox>
+ </property>
+ <property name="specialValueText">
+ <string>off</string>
+ </property>
+ <property name="minimum">
+ <number>-1</number>
+ </property>
+ <property name="maximum">
+ <number>127</number>
+ </property>
+ <property name="value">
+ <number>127</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="sysExTab">
+ <attribute name="title">
+ <string>S&amp;ysEx</string>
+ </attribute>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QSplitter" name="splitter2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <widget class="QWidget" name="layout12">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabel2_3">
+ <property name="text">
+ <string>SysEx List:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListWidget" name="sysexList">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="layout11">
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QLabel" name="textLabel1_4">
+ <property name="text">
+ <string>Name:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="sysexName"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="textLabel1_2">
+ <property name="text">
+ <string>Hex Entry:</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTextEdit" name="sysexData"/>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QToolButton" name="deleteSysex">
+ <property name="text">
+ <string>&amp;Delete</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+D</string>
+ </property>
</widget>
- <widget class="QWidget">
- <property name="name">
- <cstring>sysExTab</cstring>
- </property>
- <attribute name="title">
- <string>S&amp;ysEx</string>
- </attribute>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QSplitter">
- <property name="name">
- <cstring>splitter2</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout12</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel2_3</cstring>
- </property>
- <property name="text">
- <string>SysEx List:</string>
- </property>
- </widget>
- <widget class="QListBox">
- <property name="name">
- <cstring>sysexList</cstring>
- </property>
- <property name="sizePolicy">
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </vbox>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout11</cstring>
- </property>
- <vbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_4</cstring>
- </property>
- <property name="text">
- <string>Name:</string>
- </property>
- </widget>
- <widget class="QLineEdit">
- <property name="name">
- <cstring>sysexName</cstring>
- </property>
- </widget>
- <widget class="QLabel">
- <property name="name">
- <cstring>textLabel1_2</cstring>
- </property>
- <property name="text">
- <string>Hex Entry:</string>
- </property>
- </widget>
- <widget class="QTextEdit">
- <property name="name">
- <cstring>sysexData</cstring>
- </property>
- </widget>
- <widget class="QLayoutWidget">
- <property name="name">
- <cstring>layout10</cstring>
- </property>
- <hbox>
- <property name="name">
- <cstring>unnamed</cstring>
- </property>
- <widget class="QToolButton">
- <property name="name">
- <cstring>deleteSysex</cstring>
- </property>
- <property name="text">
- <string>&amp;Delete</string>
- </property>
- <property name="accel">
- <string>Alt+D</string>
- </property>
- </widget>
- <widget class="QToolButton">
- <property name="name">
- <cstring>newSysex</cstring>
- </property>
- <property name="text">
- <string>New SysE&amp;x</string>
- </property>
- <property name="accel">
- <string>Alt+X</string>
- </property>
- </widget>
- <spacer>
- <property name="name">
- <cstring>spacer12</cstring>
- </property>
- <property name="orientation">
- <enum>Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>60</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </hbox>
- </widget>
- </vbox>
- </widget>
- </widget>
- </vbox>
+ </item>
+ <item>
+ <widget class="QToolButton" name="newSysex">
+ <property name="text">
+ <string>New SysE&amp;x</string>
+ </property>
+ <property name="shortcut">
+ <string>Alt+X</string>
+ </property>
</widget>
- </widget>
- </widget>
- </vbox>
-</widget>
-<menubar>
- <property name="name">
- <cstring>MenuBar</cstring>
+ </item>
+ <item>
+ <spacer name="spacer12">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>60</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QToolBar" name="toolBar">
+ <property name="label" stdset="0">
+ <string>Tools</string>
+ </property>
+ <attribute name="toolBarArea">
+ <enum>TopToolBarArea</enum>
+ </attribute>
+ <attribute name="toolBarBreak">
+ <bool>false</bool>
+ </attribute>
+ <addaction name="fileNewAction"/>
+ <addaction name="fileOpenAction"/>
+ <addaction name="fileSaveAction"/>
+ <addaction name="fileSaveAsAction"/>
+ </widget>
+ <widget class="QMenuBar" name="MenuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>802</width>
+ <height>21</height>
+ </rect>
+ </property>
+ <property name="defaultUp">
+ <bool>false</bool>
+ </property>
+ <widget class="QMenu" name="fileMenu">
+ <property name="title">
+ <string>&amp;File</string>
</property>
- <property name="defaultUp">
- <bool>false</bool>
+ <addaction name="fileNewAction"/>
+ <addaction name="fileOpenAction"/>
+ <addaction name="fileSaveAction"/>
+ <addaction name="fileSaveAsAction"/>
+ <addaction name="separator"/>
+ <addaction name="fileExitAction"/>
+ </widget>
+ <widget class="QMenu" name="Help">
+ <property name="title">
+ <string>&amp;Help</string>
</property>
- <item text="&amp;File" name="fileMenu">
- <action name="fileNewAction"/>
- <action name="fileOpenAction"/>
- <action name="fileSaveAction"/>
- <action name="fileSaveAsAction"/>
- <separator/>
- <action name="fileExitAction"/>
- </item>
- <item text="&amp;Help" name="Help">
- <action name="whatsThisAction"/>
- </item>
-</menubar>
-<toolbars>
- <toolbar dock="2">
- <property name="name">
- <cstring>toolBar</cstring>
- </property>
- <property name="label">
- <string>Tools</string>
- </property>
- <action name="fileNewAction"/>
- <action name="fileOpenAction"/>
- <action name="fileSaveAction"/>
- <action name="fileSaveAsAction"/>
- <action name="whatsThisAction"/>
- </toolbar>
-</toolbars>
-<actions>
- <action>
- <property name="name">
- <cstring>fileNewAction</cstring>
- </property>
- <property name="iconSet">
- <iconset>image0</iconset>
- </property>
- <property name="text">
- <string>New</string>
- </property>
- <property name="menuText">
- <string>&amp;New</string>
- </property>
- <property name="accel">
- <string>Ctrl+N</string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileOpenAction</cstring>
- </property>
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="iconSet">
- <iconset>image1</iconset>
- </property>
- <property name="text">
- <string>Open</string>
- </property>
- <property name="menuText">
- <string>&amp;Open...</string>
- </property>
- <property name="accel">
- <string>Ctrl+O</string>
- </property>
- <property name="visible">
- <bool>false</bool>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileSaveAction</cstring>
- </property>
- <property name="iconSet">
- <iconset>image2</iconset>
- </property>
- <property name="text">
- <string>Save</string>
- </property>
- <property name="menuText">
- <string>&amp;Save</string>
- </property>
- <property name="accel">
- <string>Ctrl+S</string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileSaveAsAction</cstring>
- </property>
- <property name="iconSet">
- <iconset>image3</iconset>
- </property>
- <property name="text">
- <string>Save As</string>
- </property>
- <property name="menuText">
- <string>Save &amp;As...</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>fileExitAction</cstring>
- </property>
- <property name="text">
- <string>Exit</string>
- </property>
- <property name="menuText">
- <string>E&amp;xit</string>
- </property>
- <property name="accel">
- <string></string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>filenew_itemAction</cstring>
- </property>
- <property name="text">
- <string>new item</string>
- </property>
- <property name="menuText">
- <string>new item</string>
- </property>
- </action>
- <action>
- <property name="name">
- <cstring>whatsThisAction</cstring>
- </property>
- <property name="iconSet">
- <iconset>image4</iconset>
- </property>
- <property name="text">
- <string>What's this?</string>
- </property>
- <property name="menuText">
- <string>What's this?</string>
- </property>
- </action>
-</actions>
-<images>
- <image name="image0">
- <data format="PNG" length="187">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000008249444154388ded95310ac0200c4593d2c334d0c535e0d2c3e75ae9d442353521e0e60741233ee5f355141198a1bd2d30b346168a088ee637aba8aabf0d00804e720f60823d95525c7867454474d0db6766b56c4981af7a7dc6163c05e6ca7dad81a7c088c340e4c04f32bccd52a98868811778810732af74e42df084b3febc6956dc1a2d33a3204eed990000000049454e44ae426082</data>
- </image>
- <image name="image1">
- <data format="PNG" length="230">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000ad49444154388db594510ec3200c436db45371b7699a76375f8b7d8caa11cd18d1827f225af1621908256187ca16ea4ef02dbaa1d6daec5a12c7ff9218021f9bbc4692689b32ebf02c541253321ee3017ac6bf728b420180005a6b00d08e25c835eecc403fbc130ab077e2e57ba47931c68375aee2395eab73b91947b3f6e4666ca1af670c787f7caa9bf1bf50f34072a117c7595003ce859e56bbb2a08019f4995060f5b67fd16c56a4cde3516f027970cd357a563f0000000049454e44ae426082</data>
- </image>
- <image name="image2">
- <data format="PNG" length="230">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000ad49444154388dd595c10a85201045af0f172e5af83d0afd5944f4670f9aef69e1a25d2d62c2b230c302cf460c3b5ca7310511e10d24001863e69c52221292277db78e4d0b0cff2149646bbbbd636b0b00f8650a1920e34bce514e63aac66dce49996862e53494d3c1735f0aaca5e472de123f255a8a63b2bbbc96b83c7150e3be0b5b2786df0d97e2ab85a97cdb6e4d9b2e3aeef2f191f67f5467dfa4bc762b4f2cf8cecb753d1191d88973b300c3df2bac2a2aaca70000000049454e44ae426082</data>
- </image>
- <image name="image3">
- <data format="PNG" length="264">89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff61000000cf49444154388da593410ec2300c0467090f4a8f3df421fd425f013f834b7af5872273a0a952a010c0926545ceaed6eb4480f3471c00628c009c3801978fb5c60870774712ee6d62246d15745df7b5f4a2e0f0d838eb8c74ddadafc2638cbe8cd21435a65981a43501ccac5d41e9d577b8afdf8fb529b5bb9b19df6ce7581f8ab37598d92ef113c1e36c2d0a36269a19ee4e4a49a5ee225f1100ccf3ac699a7c1c4772ce1f9fe6d3087ddfafa01082007fe781587e638c113323a5a49cb3871036b500866158cd36334829b190fc94376721c8f72ecfaff50000000049454e44ae426082</data>
- </image>
- <image name="image4">
- <data format="PNG" length="243">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000000ba49444154388dd594db0980300c451371aa0c90b93a5707b86be957306dd387423fbc206221a7370fc30068878e2dd45f824fff212217001e0588e4ab3e4b8948558bb8c6b18834813514500694537ac039971786a588e006351851e9d29f77c133e72b1a36cfc37dda269f7eed98fd0fd273d96ba82f4fddbc330a6801edb4f8464631cb73ecb3891a596bea7836d7afc000783415bdf4bd9a5298437bf766da9e25f0d7b423f16c1f9be3b7976edb6e53c75ff5bf45bf0d7c034d505e874a59314b0000000049454e44ae426082</data>
- </image>
-</images>
-<connections>
- <connection>
- <sender>fileNewAction</sender>
- <signal>activated()</signal>
- <receiver>Form1</receiver>
- <slot>fileNew()</slot>
- </connection>
- <connection>
- <sender>fileOpenAction</sender>
- <signal>activated()</signal>
- <receiver>Form1</receiver>
- <slot>fileOpen()</slot>
- </connection>
- <connection>
- <sender>fileSaveAction</sender>
- <signal>activated()</signal>
- <receiver>Form1</receiver>
- <slot>fileSave()</slot>
- </connection>
- <connection>
- <sender>fileSaveAsAction</sender>
- <signal>activated()</signal>
- <receiver>Form1</receiver>
- <slot>fileSaveAs()</slot>
- </connection>
- <connection>
- <sender>fileExitAction</sender>
- <signal>activated()</signal>
- <receiver>Form1</receiver>
- <slot>fileExit()</slot>
- </connection>
- <connection>
- <sender>whatsThisAction</sender>
- <signal>activated()</signal>
- <receiver>Form1</receiver>
- <slot>helpWhatsThis()</slot>
- </connection>
-</connections>
-<tabstops>
- <tabstop>instrumentName</tabstop>
- <tabstop>instrumentList</tabstop>
- <tabstop>tabWidget3</tabstop>
- <tabstop>patchView</tabstop>
- <tabstop>patchNameEdit</tabstop>
- <tabstop>spinBoxHBank</tabstop>
- <tabstop>spinBoxLBank</tabstop>
- <tabstop>spinBoxProgram</tabstop>
- <tabstop>checkBoxDrum</tabstop>
- <tabstop>checkBoxGM</tabstop>
- <tabstop>checkBoxGS</tabstop>
- <tabstop>checkBoxXG</tabstop>
- <tabstop>listController</tabstop>
- <tabstop>viewController</tabstop>
- <tabstop>ctrlName</tabstop>
- <tabstop>ctrlType</tabstop>
- <tabstop>spinBoxHCtrlNo</tabstop>
- <tabstop>spinBoxLCtrlNo</tabstop>
- <tabstop>spinBoxMin</tabstop>
- <tabstop>spinBoxMax</tabstop>
- <tabstop>spinBoxDefault</tabstop>
- <tabstop>sysexList</tabstop>
- <tabstop>sysexName</tabstop>
- <tabstop>sysexData</tabstop>
-</tabstops>
-<slots>
- <slot>fileNew()</slot>
- <slot>fileOpen()</slot>
- <slot>fileSave()</slot>
- <slot>fileSaveAs()</slot>
- <slot>fileExit()</slot>
- <slot>helpWhatsThis()</slot>
-</slots>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
+ </widget>
+ <addaction name="fileMenu"/>
+ <addaction name="Help"/>
+ </widget>
+ <action name="fileNewAction">
+ <property name="text">
+ <string>&amp;New</string>
+ </property>
+ <property name="iconText">
+ <string>New</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+N</string>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>fileNewAction</cstring>
+ </property>
+ </action>
+ <action name="fileOpenAction">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Open...</string>
+ </property>
+ <property name="iconText">
+ <string>Open</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+O</string>
+ </property>
+ <property name="visible">
+ <bool>false</bool>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>fileOpenAction</cstring>
+ </property>
+ </action>
+ <action name="fileSaveAction">
+ <property name="text">
+ <string>&amp;Save</string>
+ </property>
+ <property name="iconText">
+ <string>Save</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+S</string>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>fileSaveAction</cstring>
+ </property>
+ </action>
+ <action name="fileSaveAsAction">
+ <property name="text">
+ <string>Save &amp;As...</string>
+ </property>
+ <property name="iconText">
+ <string>Save As</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>fileSaveAsAction</cstring>
+ </property>
+ </action>
+ <action name="fileExitAction">
+ <property name="text">
+ <string>E&amp;xit</string>
+ </property>
+ <property name="iconText">
+ <string>Exit</string>
+ </property>
+ <property name="shortcut">
+ <string/>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>fileExitAction</cstring>
+ </property>
+ </action>
+ <action name="filenew_itemAction">
+ <property name="text">
+ <string>new item</string>
+ </property>
+ <property name="iconText">
+ <string>new item</string>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>filenew_itemAction</cstring>
+ </property>
+ </action>
+ <action name="whatsThisAction">
+ <property name="text">
+ <string>What's this?</string>
+ </property>
+ <property name="iconText">
+ <string>What's this?</string>
+ </property>
+ <property name="name" stdset="0">
+ <cstring>whatsThisAction</cstring>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <tabstops>
+ <tabstop>instrumentName</tabstop>
+ <tabstop>instrumentList</tabstop>
+ <tabstop>tabWidget3</tabstop>
+ <tabstop>patchView</tabstop>
+ <tabstop>patchNameEdit</tabstop>
+ <tabstop>spinBoxHBank</tabstop>
+ <tabstop>spinBoxLBank</tabstop>
+ <tabstop>spinBoxProgram</tabstop>
+ <tabstop>checkBoxDrum</tabstop>
+ <tabstop>checkBoxGM</tabstop>
+ <tabstop>checkBoxGS</tabstop>
+ <tabstop>checkBoxXG</tabstop>
+ <tabstop>listController</tabstop>
+ <tabstop>viewController</tabstop>
+ <tabstop>ctrlName</tabstop>
+ <tabstop>ctrlType</tabstop>
+ <tabstop>spinBoxHCtrlNo</tabstop>
+ <tabstop>spinBoxLCtrlNo</tabstop>
+ <tabstop>spinBoxMin</tabstop>
+ <tabstop>spinBoxMax</tabstop>
+ <tabstop>spinBoxDefault</tabstop>
+ <tabstop>sysexList</tabstop>
+ <tabstop>sysexName</tabstop>
+ <tabstop>sysexData</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>fileNewAction</sender>
+ <signal>activated()</signal>
+ <receiver>EditInstrumentBase</receiver>
+ <slot>fileNew()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fileOpenAction</sender>
+ <signal>activated()</signal>
+ <receiver>EditInstrumentBase</receiver>
+ <slot>fileOpen()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fileSaveAction</sender>
+ <signal>activated()</signal>
+ <receiver>EditInstrumentBase</receiver>
+ <slot>fileSave()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fileSaveAsAction</sender>
+ <signal>activated()</signal>
+ <receiver>EditInstrumentBase</receiver>
+ <slot>fileSaveAs()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>fileExitAction</sender>
+ <signal>activated()</signal>
+ <receiver>EditInstrumentBase</receiver>
+ <slot>fileExit()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>whatsThisAction</sender>
+ <signal>activated()</signal>
+ <receiver>EditInstrumentBase</receiver>
+ <slot>helpWhatsThis()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>-1</x>
+ <y>-1</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>20</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt
index 9ae2d02e..0a92ba5a 100644
--- a/muse2/muse/widgets/CMakeLists.txt
+++ b/muse2/muse/widgets/CMakeLists.txt
@@ -236,7 +236,6 @@ add_library ( widgets STATIC
checkbox.cpp
aboutbox_impl.cpp
popupmenu.cpp
- listitem.h
menutitleitem.h
)
diff --git a/muse2/muse/widgets/comboQuant.cpp b/muse2/muse/widgets/comboQuant.cpp
index ec3a4f4a..3eb4e9e0 100644
--- a/muse2/muse/widgets/comboQuant.cpp
+++ b/muse2/muse/widgets/comboQuant.cpp
@@ -5,6 +5,8 @@
// (C) Copyright 2001 Werner Schweer (ws@seh.de)
//=========================================================
+#include <stdio.h>
+
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QHeaderView>
diff --git a/muse2/muse/widgets/listitem.h b/muse2/muse/widgets/listitem.h
deleted file mode 100644
index 56b0f3d4..00000000
--- a/muse2/muse/widgets/listitem.h
+++ /dev/null
@@ -1,85 +0,0 @@
-//=========================================================
-// MusE
-// Linux Music Editor
-// $Id: listitem.h,v 1.1.2.1 2008/08/18 00:15:26 terminator356 Exp $
-//
-// (C) Copyright 1999/2000 Werner Schweer (ws@seh.de)
-//=========================================================
-
-#ifndef __LISTITEM_H__
-#define __LISTITEM_H__
-
-//#include <qstring.h>
-//#include <qlistbox.h>
-#include <q3listview.h>
-
-class QString;
-class Q3ListBox;
-class Q3ListBoxText;
-//class QListView;
-//class QListViewItem;
-class ListBoxData;
-class ListViewData;
-
-//---------------------------------------------------------
-// ListBoxData
-//---------------------------------------------------------
-
-class ListBoxData : public Q3ListBoxText
-{
- void* _data;
-
- public:
- ListBoxData(Q3ListBox* listbox, const QString& text = QString::null)
- : Q3ListBoxText(listbox, text) { _data = 0; }
- ListBoxData(const QString& text = QString::null) : Q3ListBoxText(text) { _data = 0; }
- ListBoxData(Q3ListBox* listbox, const QString& text, ListBoxData* after)
- : Q3ListBoxText(listbox, text, (Q3ListBoxText*)after) { _data = 0; }
- ~ListBoxData() { }
-
- virtual void setText(const QString& text) { Q3ListBoxText::setText(text); }
- void* data() { return _data; }
- void setData(void* dat) { _data = dat; }
-};
-
-//---------------------------------------------------------
-// ListViewData
-//---------------------------------------------------------
-
-class ListViewData : public Q3ListViewItem
-{
- void* _data;
-
- public:
- ListViewData(Q3ListView* parent) : Q3ListViewItem(parent) { _data = 0; }
- //ListViewData(ListViewData* parent) : QListViewItem((QListViewItem*)parent) { _data = 0; }
- ListViewData(ListViewData* parent) : Q3ListViewItem(parent) { _data = 0; }
- //ListViewData(QListView* parent, ListViewData* after) : QListViewItem(parent, (QListViewItem*)after) { _data = 0; }
- ListViewData(Q3ListView* parent, ListViewData* after) : Q3ListViewItem(parent, after) { _data = 0; }
- //ListViewData(ListViewData* parent, ListViewData* after) : QListViewItem((QListViewItem*)parent, (QListViewItem*)after) { _data = 0; }
- ListViewData(ListViewData* parent, ListViewData* after) : Q3ListViewItem(parent, after) { _data = 0; }
- ListViewData(Q3ListView* parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
- QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
- : Q3ListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- ListViewData(ListViewData* parent, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
- QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
- //: QListViewItem((QListViewItem*)parent, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- : Q3ListViewItem(parent, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- ListViewData(Q3ListView* parent, ListViewData* after, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
- QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
- //: QListViewItem(parent, (QListViewItem*)after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- : Q3ListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- ListViewData(ListViewData* parent, ListViewData* after, QString label1, QString label2 = QString::null, QString label3 = QString::null, QString label4 = QString::null,
- QString label5 = QString::null, QString label6 = QString::null, QString label7 = QString::null, QString label8 = QString::null)
- //: QListViewItem((QListViewItem*)parent, (QListViewItem*)after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- : Q3ListViewItem(parent, after, label1, label2, label3, label4, label5, label6, label7, label8) { _data = 0; }
- ~ListViewData() { }
-
- void* data() { return _data; }
- void setData(void* dat) { _data = dat; }
-};
-
-
-
-#endif
-
diff --git a/muse2/xpm/filesaveas.xpm b/muse2/xpm/filesaveas.xpm
new file mode 100644
index 00000000..bbd1711c
--- /dev/null
+++ b/muse2/xpm/filesaveas.xpm
@@ -0,0 +1,90 @@
+/* XPM */
+static const char * filesaveas_xpm[] = {
+"22 22 65 1",
+" c None",
+". c #000000",
+"+ c #0A0A0A",
+"@ c #090C09",
+"# c #010001",
+"$ c #800080",
+"% c #0000C0",
+"& c #000002",
+"* c #303030",
+"= c #020001",
+"- c #000105",
+"; c #010101",
+"> c #FFFFFF",
+", c #060606",
+"' c #040404",
+") c #050505",
+"! c #171717",
+"~ c #131313",
+"{ c #FEFDFE",
+"] c #FDFDFE",
+"^ c #FEFDFF",
+"/ c #FFFDFF",
+"( c #FDFDFF",
+"_ c #020202",
+": c #030303",
+"< c #50504D",
+"[ c #5C5C5C",
+"} c #646464",
+"| c #191919",
+"1 c #090909",
+"2 c #EEF4ED",
+"3 c #F3F3E9",
+"4 c #EEF3EC",
+"5 c #EFF3EC",
+"6 c #F5F5EB",
+"7 c #F8FFF8",
+"8 c #585858",
+"9 c #757575",
+"0 c #4A4A4A",
+"a c #141514",
+"b c #161716",
+"c c #171715",
+"d c #151514",
+"e c #0D0E0D",
+"f c #9D9D9C",
+"g c #6F6F6F",
+"h c #474747",
+"i c #333333",
+"j c #4D4D4D",
+"k c #707070",
+"l c #1E1E1E",
+"m c #9F9F9F",
+"n c #DCDCDC",
+"o c #979797",
+"p c #C3C3C3",
+"q c #9B9B9B",
+"r c #4B4B4B",
+"s c #727272",
+"t c #CDCDCD",
+"u c #CFCFCF",
+"v c #393939",
+"w c #313131",
+"x c #B8B8B8",
+"y c #0F0F0F",
+"z c #CECECE",
+"......................",
+".+@#$%%$%%$%%$%%$%&**.",
+".**=$%%$%%$%%$%%$%-**.",
+".**;>>>>>>>>>>>>>>,...",
+".**'>>>>>>>>>>>>>>)**.",
+".!~)>>$%$$%$$%$$>>)**.",
+".**)>>$%$$%$$%$$>>)**.",
+".**)>>{]{]]{]^/(>>)**.",
+".**)>>$%$$%$$%$$>>._+.",
+".**:>>$%$$%$$%<.![}|..",
+".**1>>234567>8>89>>0..",
+".***|abcbbdef>>8g>>h..",
+".**********.i}j*k>>h..",
+".**********.l888>>>h..",
+".*****;.:);.m>>>>>>h..",
+".***;>n>nnn;o>>>>>>h..",
+".***.n**88p)q>>>>>>r..",
+".***.>**88n)stttuttv..",
+".***.n*w88xy.:__',)...",
+"..**.>**88zpppppp.***.",
+"**.*.npnpnppppppp.***.",
+"**...................."};