From 657ba10e4ec0fd5a5a57d0ebf9172b534a66c889 Mon Sep 17 00:00:00 2001 From: Orcan Ogetbil Date: Thu, 2 Dec 2010 05:54:36 +0000 Subject: Please see the ChangeLog --- muse2/ChangeLog | 6 ++ muse2/muse/arranger/alayout.cpp | 11 ++-- muse2/muse/arranger/alayout.h | 5 +- muse2/muse/arranger/arranger.cpp | 138 +++++++++++++++++++-------------------- muse2/muse/arranger/arranger.h | 37 +++-------- muse2/muse/arranger/tlist.cpp | 128 ++++++++++++++---------------------- muse2/muse/arranger/tlist.h | 41 ++++-------- muse2/muse/help.cpp | 16 +++-- muse2/muse/midiedit/drumedit.cpp | 95 ++++++++++++++++----------- muse2/muse/track.cpp | 3 - muse2/muse/track.h | 3 +- muse2/muse/widgets/header.cpp | 19 +++--- muse2/muse/widgets/header.h | 6 +- 13 files changed, 226 insertions(+), 282 deletions(-) (limited to 'muse2') diff --git a/muse2/ChangeLog b/muse2/ChangeLog index b223783f..0c91a94c 100644 --- a/muse2/ChangeLog +++ b/muse2/ChangeLog @@ -1,3 +1,9 @@ +02.12.2010 + - Ported alayout, tlist, arranger (Orcan) + - Minor tweak in the HeaderNew API to set column widths easier. Also commented out the + old Header class. We can probably remove it soon. (Orcan) + - Ported help.cpp as is. But maybe we should use QDesktopServices to open user's default browser + instead of the browser specified in a config option. (Orcan) 01.12.2010 - Ported listedit. (Orcan) - I missed to port one action call in drumedit. Now it's (hopefully) done. (Orcan) diff --git a/muse2/muse/arranger/alayout.cpp b/muse2/muse/arranger/alayout.cpp index 5f6ec0d1..b5374754 100644 --- a/muse2/muse/arranger/alayout.cpp +++ b/muse2/muse/arranger/alayout.cpp @@ -6,13 +6,10 @@ //========================================================= #include "alayout.h" -#include -#include -//Added by qt3to4: -//#include - #include "arranger.h" +#include + //--------------------------------------------------------- // wadd //--------------------------------------------------------- @@ -35,10 +32,10 @@ void TLLayout::wadd(int idx, QWidget* w) class TLLayoutIterator // : public QGLayoutIterator ddskrjo { int idx; - Q3PtrList *list; + QList list; public: - TLLayoutIterator(Q3PtrList *l) : idx(0), list(l) {} + TLLayoutIterator(QList l) : idx(0), list(l) {} QLayoutItem *current() { return idx < int(list->count()) ? list->at(idx) : 0; } QLayoutItem *next() { idx++; return current(); } QLayoutItem *takeCurrent() { return list->take( idx ); } diff --git a/muse2/muse/arranger/alayout.h b/muse2/muse/arranger/alayout.h index 05d418b5..b85b5e9a 100644 --- a/muse2/muse/arranger/alayout.h +++ b/muse2/muse/arranger/alayout.h @@ -9,12 +9,12 @@ #define __ALAYOUT_H__ #include -//#include #include +class QLayoutItem; class QScrollBar; + class WidgetStack; -class QLayoutItem; //--------------------------------------------------------- // TLLayout @@ -25,7 +25,6 @@ class TLLayout : public QLayout { Q_OBJECT - //Q3PtrList ilist; QList ilist; QLayoutItem* li[6]; QScrollBar* sb; diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp index cf9bdac4..c15492ae 100644 --- a/muse2/muse/arranger/arranger.cpp +++ b/muse2/muse/arranger/arranger.cpp @@ -8,33 +8,17 @@ #include "config.h" #include - #include -#include -//#include -#include -#include -#include -//#include + #include -//#include -//#include -#include -//#include -#include -#include -#include -#include -#include -//#include +#include +#include +#include +#include #include -#include #include -//Added by qt3to4: -#include -#include -#include -#include +#include +#include #include #include @@ -64,27 +48,40 @@ #include "gconfig.h" #include "mixer/astrip.h" #include "spinbox.h" + //--------------------------------------------------------- -// TWhatsThis::text +// Arranger::setHeaderToolTips //--------------------------------------------------------- -QString TWhatsThis::text(const QPoint& pos) +void Arranger::setHeaderToolTips() { - int section = header->sectionAt(pos.x()); - if (section == -1) - return QString::null; - switch(section) { - case COL_RECORD: return Q3Header::tr("Enable recording. Click to toggle."); break; - case COL_MUTE: return Q3Header::tr("Mute indicator. Click to toggle.\nRight-click to toggle track on/off.\nMute is designed for rapid, repeated action.\nOn/Off is not!"); break; - case COL_SOLO: return Q3Header::tr("Solo indicator. Click to toggle.\nConnected tracks are also 'phantom' soloed,\n indicated by a dark square."); break; - case COL_CLASS: return Q3Header::tr("Track type. Right-click to change\n midi and drum track types."); break; - case COL_NAME: return Q3Header::tr("Track name. Double-click to edit.\nRight-click for more options."); break; - case COL_OCHANNEL: return Q3Header::tr("Midi/drum track: Output channel number.\nAudio track: Channels.\nMid/right-click to change."); break; - case COL_OPORT: return Q3Header::tr("Midi/drum track: Output port.\nSynth track: Assigned midi port.\nLeft-click to change.\nRight-click to show GUI."); break; - case COL_TIMELOCK: return Q3Header::tr("Time lock"); break; - default: break; - } - return QString::null; + header->setToolTip(COL_RECORD, tr("Enable Recording")); + header->setToolTip(COL_MUTE, tr("Mute/Off Indicator")); + header->setToolTip(COL_SOLO, tr("Solo Indicator")); + header->setToolTip(COL_CLASS, tr("Track Type")); + header->setToolTip(COL_NAME, tr("Track Name")); + header->setToolTip(COL_OCHANNEL, tr("Midi output channel number or audio channels")); + header->setToolTip(COL_OPORT, tr("Midi output port or synth midi port")); + header->setToolTip(COL_TIMELOCK, tr("Time Lock")); + //header->setToolTip(COL_AUTOMATION, tr("Automation parameter selection")); + } + + + +//--------------------------------------------------------- +// Arranger::setHeaderWhatsThis +//--------------------------------------------------------- + +void Arranger::setHeaderWhatsThis() + { + header->setWhatsThis(COL_RECORD, tr("Enable recording. Click to toggle.")); + header->setWhatsThis(COL_MUTE, tr("Mute indicator. Click to toggle.\nRight-click to toggle track on/off.\nMute is designed for rapid, repeated action.\nOn/Off is not!")); + header->setWhatsThis(COL_SOLO, tr("Solo indicator. Click to toggle.\nConnected tracks are also 'phantom' soloed,\n indicated by a dark square.")); + header->setWhatsThis(COL_CLASS, tr("Track type. Right-click to change\n midi and drum track types.")); + header->setWhatsThis(COL_NAME, tr("Track name. Double-click to edit.\nRight-click for more options.")); + header->setWhatsThis(COL_OCHANNEL, tr("Midi/drum track: Output channel number.\nAudio track: Channels.\nMid/right-click to change.")); + header->setWhatsThis(COL_OPORT, tr("Midi/drum track: Output port.\nSynth track: Assigned midi port.\nLeft-click to change.\nRight-click to show GUI.")); + header->setWhatsThis(COL_TIMELOCK, tr("Time lock")); } //--------------------------------------------------------- @@ -150,7 +147,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name) lenEntry = new SpinBox(1, 10000, 1); lenEntry->setValue(song->len()); lenEntry->setToolTip(tr("song length - bars")); - Q3WhatsThis::add(lenEntry, tr("song length - bars")); + lenEntry->setWhatsThis(tr("song length - bars")); toolbar->addWidget(lenEntry); connect(lenEntry, SIGNAL(valueChanged(int)), SLOT(songlenChanged(int))); @@ -252,44 +249,41 @@ Arranger::Arranger(QMainWindow* parent, const char* name) ib->setOn(showTrackinfoFlag); connect(ib, SIGNAL(toggled(bool)), SLOT(showTrackInfo(bool))); - header = new Header(tracklist, "header"); + header = new HeaderNew(tracklist); header->setFixedHeight(30); QFontMetrics fm1(header->font()); int fw = 8; - header->addLabel(tr("R"), fm1.width('R')+fw); - header->addLabel(tr("M"), fm1.width('M')+fw); - header->addLabel(tr("S"), fm1.width('S')+fw); - header->addLabel(tr("C"), fm1.width('C')+fw); - header->addLabel(tr("Track"), 100); - //header->addLabel(tr("O-Port"), 60); - header->addLabel(tr("Port"), 60); - header->addLabel(tr("Ch"), 30); - header->addLabel(tr("T"), fm1.width('T')+fw); - //header->addLabel(tr("Automation"),30); - header->setResizeEnabled(false, COL_RECORD); - header->setResizeEnabled(false, COL_MUTE); - header->setResizeEnabled(false, COL_SOLO); - header->setResizeEnabled(false, COL_CLASS); - header->setResizeEnabled(false, COL_OCHANNEL); - header->setResizeEnabled(false, COL_TIMELOCK); - //header->setResizeEnabled(true, COL_AUTOMATION); - header->setResizeEnabled(true, COL_NAME); - header->setResizeEnabled(true, COL_OPORT); - - header->setTracking(true); - - new THeaderTip(header); - new TWhatsThis(header, header); - + header->setColumnLabel(tr("R"), COL_RECORD, fm1.width('R')+fw); + header->setColumnLabel(tr("M"), COL_MUTE, fm1.width('M')+fw); + header->setColumnLabel(tr("S"), COL_SOLO, fm1.width('S')+fw); + header->setColumnLabel(tr("C"), COL_CLASS, fm1.width('C')+fw); + header->setColumnLabel(tr("Track"), COL_NAME, 100); + header->setColumnLabel(tr("Port"), COL_OPORT, 60); + header->setColumnLabel(tr("Ch"), COL_OCHANNEL, 30); + header->setColumnLabel(tr("T"), COL_TIMELOCK, fm1.width('T')+fw); + //header->setColumnLabel(tr("Automation"), COL_AUTOMATION, 30); + header->setResizeMode(COL_RECORD, QHeaderView::Fixed); + header->setResizeMode(COL_MUTE, QHeaderView::Fixed); + header->setResizeMode(COL_SOLO, QHeaderView::Fixed); + header->setResizeMode(COL_CLASS, QHeaderView::Fixed); + header->setResizeMode(COL_NAME, QHeaderView::Interactive); + header->setResizeMode(COL_OPORT, QHeaderView::Interactive); + header->setResizeMode(COL_OCHANNEL, QHeaderView::Fixed); + header->setResizeMode(COL_TIMELOCK, QHeaderView::Fixed); + //header->setResizeMode(COL_AUTOMATION, QHeaderView::Interactive); + + setHeaderToolTips(); + setHeaderWhatsThis(); + header->setMovable (true ); list = new TList(header, tracklist, "tracklist"); connect(list, SIGNAL(selectionChanged()), SLOT(trackSelectionChanged())); - connect(header, SIGNAL(sizeChange(int,int,int)), list, SLOT(redraw())); - connect(header, SIGNAL(moved(int,int)), list, SLOT(redraw())); - connect(header, SIGNAL(moved(int,int)), this, SLOT(headerMoved())); + connect(header, SIGNAL(sectionResized(int,int,int)), list, SLOT(redraw())); + connect(header, SIGNAL(sectionMoved(int,int,int)), list, SLOT(redraw())); + connect(header, SIGNAL(sectionMoved(int,int,int)), this, SLOT(headerMoved())); // tracklist: // @@ -327,7 +321,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name) list->setScroll(vscroll); - Q3ValueList vallist; + QList vallist; vallist.append(tgrid->maximumSize().width()); split->setSizes(vallist); @@ -417,7 +411,7 @@ Arranger::Arranger(QMainWindow* parent, const char* name) void Arranger::headerMoved() { - header->setStretchEnabled(true, COL_NAME); + //header->setResizeMode(COL_NAME, QHeaderView::Stretch); } //--------------------------------------------------------- diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h index b95b9379..f8c0bd3b 100644 --- a/muse2/muse/arranger/arranger.h +++ b/muse2/muse/arranger/arranger.h @@ -10,52 +10,33 @@ #include -#include -#include -#include -//Added by qt3to4: -#include -#include - #include "midieditor.h" #include "pcanvas.h" #include "ui_mtrackinfobase.h" #include "trackautomationview.h" +class QAction; +class QCheckBox; class QMainWindow; +class QMenu; +class QScrollBar; class QToolButton; -class Header; +class QWheelEvent; + +class HeaderNew; class TList; class ScrollScale; -class QScrollBar; class MTScale; class Track; class Xml; class Splitter; class LabelCombo; class PosLabel; -class QCheckBox; class MidiTrackInfoBase; class TLLayout; class WidgetStack; class AudioStrip; class SpinBox; -class QAction; -//class QModelIndex; - -//--------------------------------------------------------- -// TWhatsThis -//--------------------------------------------------------- - -class TWhatsThis : public Q3WhatsThis { - Header* header; - protected: - QString text(const QPoint&); - public: - TWhatsThis(QWidget* parent, Header* h) : Q3WhatsThis(parent) { - header = h; - } - }; //--------------------------------------------------------- // WidgetStack @@ -99,7 +80,7 @@ class Arranger : public QWidget { ScrollScale* hscroll; QScrollBar* vscroll; TList* list; - Header* header; + HeaderNew* header; MTScale* time; SpinBox* lenEntry; bool showTrackinfoFlag; @@ -130,6 +111,8 @@ class Arranger : public QWidget { void genWaveTrackInfo(); void updateMidiTrackInfo(int flags); void switchInfo(int); + void setHeaderToolTips(); + void setHeaderWhatsThis(); private slots: void _setRaster(int); diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp index 15a1cdf9..f2a3677e 100644 --- a/muse2/muse/arranger/tlist.cpp +++ b/muse2/muse/arranger/tlist.cpp @@ -9,19 +9,15 @@ #include -#include -#include -#include -#include -#include -#include -#include -//Added by qt3to4: #include -#include -#include +#include +#include +#include #include +#include #include +#include +#include #include #include "globals.h" @@ -55,42 +51,11 @@ extern QMenu* populateAddSynth(QWidget* parent); static const int MIN_TRACKHEIGHT = 20; static const int WHEEL_DELTA = 120; -//--------------------------------------------------------- -// THeaderTip::maybeTip -//--------------------------------------------------------- - -void THeaderTip::maybeTip(const QPoint &pos) - { -#if 0 //ddskrjo - Header* w = (Header*)parentWidget(); - int section = w->sectionAt(pos.x()); - if (section == -1) - return; - QRect r(w->sectionPos(section), 0, w->sectionSize(section), - w->height()); - QString p; - switch (section) { - case COL_RECORD: p = Q3Header::tr("Enable Recording"); break; - case COL_MUTE: p = Q3Header::tr("Mute/Off Indicator"); break; - case COL_SOLO: p = Q3Header::tr("Solo Indicator"); break; - case COL_CLASS: p = Q3Header::tr("Track Type"); break; - case COL_NAME: p = Q3Header::tr("Track Name"); break; - case COL_OCHANNEL: p = Q3Header::tr("Midi output channel number or audio channels"); break; - //case COL_OPORT: p = QHeader::tr("Output Port"); break; - case COL_OPORT: p = Q3Header::tr("Midi output port or synth midi port"); break; - case COL_TIMELOCK: p = Q3Header::tr("Time Lock"); break; -// case COL_AUTOMATION: p = QHeader::tr("Automation parameter selection"); break; - default: return; - } - tip(r, p); -#endif - } - //--------------------------------------------------------- // TList //--------------------------------------------------------- -TList::TList(Header* hdr, QWidget* parent, const char* name) +TList::TList(HeaderNew* hdr, QWidget* parent, const char* name) : QWidget(parent, name, Qt::WNoAutoErase | Qt::WResizeNoErase) { ypos = 0; @@ -250,7 +215,7 @@ void TList::paint(const QRect& r) int x = 0; for (int index = 0; index < header->count(); ++index) { - int section = header->mapToSection(index); + int section = header->visualIndex(index); int w = header->sectionSize(section); QRect r = p.xForm(QRect(x+2, yy, w-4, trackHeight)); @@ -398,7 +363,7 @@ void TList::paint(const QRect& r) int xpos = 0; p.setPen(Qt::gray); for (int index = 0; index < n; index++) { - int section = header->mapToSection(index); + int section = header->visualIndex(index); xpos += header->sectionSize(section); p.drawLine(xpos, 0, xpos, height()); } @@ -474,14 +439,14 @@ Track* TList::y2Track(int y) const void TList::mouseDoubleClickEvent(QMouseEvent* ev) { int x = ev->x(); - int section = header->sectionAt(x); + int section = header->logicalIndexAt(x); if (section == -1) return; Track* t = y2Track(ev->y() + ypos); if (t) { - int colx = header->sectionPos(section); + int colx = header->sectionPosition(section); int colw = header->sectionSize(section); int coly = t->y() - ypos; int colh = t->height(); @@ -489,7 +454,7 @@ void TList::mouseDoubleClickEvent(QMouseEvent* ev) if (section == COL_NAME) { editTrack = t; if (editor == 0) { - editor = new QLineEdit(this); + editor = new QLineEdit(this); /*connect(editor, SIGNAL(returnPressed()), SLOT(returnPressed()));*/ editor->setFrame(true); @@ -615,12 +580,12 @@ void TList::oportPropertyPopupMenu(Track* t, int x, int y) { SynthI* synth = (SynthI*)t; - Q3PopupMenu* p = new Q3PopupMenu(this); - p->setCheckable(true); - p->insertItem(tr("Show Gui"), 0); + QMenu* p = new QMenu; + QAction* act = p->addAction(tr("Show Gui")); + act->setCheckable(true); printf("synth hasgui %d, gui visible %d\n",synth->hasGui(), synth->guiVisible()); - p->setItemEnabled(0, synth->hasGui()); - p->setItemChecked(0, synth->guiVisible()); + act->setEnabled(synth->hasGui()); + act->setChecked(synth->guiVisible()); #ifndef OSC_SUPPORT #ifdef DSSI_SUPPORT @@ -633,8 +598,8 @@ void TList::oportPropertyPopupMenu(Track* t, int x, int y) #endif #endif - int n = p->exec(mapToGlobal(QPoint(x, y)), 0); - if (n == 0) { + act = p->exec(mapToGlobal(QPoint(x, y)), 0); + if (act) { bool show = !synth->guiVisible(); audio->msgShowInstrumentGui(synth, show); } @@ -648,26 +613,26 @@ void TList::oportPropertyPopupMenu(Track* t, int x, int y) int oPort = ((MidiTrack*)t)->outPort(); MidiPort* port = &midiPorts[oPort]; - Q3PopupMenu* p = new Q3PopupMenu(this); - p->setCheckable(true); - p->insertItem(tr("Show Gui"), 0); - - p->setItemEnabled(0, port->hasGui()); - p->setItemChecked(0, port->guiVisible()); + QMenu* p = new QMenu; + QAction* act = p->addAction(tr("Show Gui")); + act->setCheckable(true); + printf("synth hasgui %d, gui visible %d\n",port->hasGui(), port->guiVisible()); + act->setEnabled(port->hasGui()); + act->setChecked(port->guiVisible()); #ifndef OSC_SUPPORT #ifdef DSSI_SUPPORT MidiDevice* dev = port->device(); if(dev && dev->isSynti() && (dynamic_cast(((SynthI*)dev)->sif()))) { - p->setItemChecked(0, false); - p->setItemEnabled(0, false); + act->setChecked(false); + act->setEnabled(false); } #endif #endif - int n = p->exec(mapToGlobal(QPoint(x, y)), 0); - if (n == 0) { + act = p->exec(mapToGlobal(QPoint(x, y)), 0); + if (act) { bool show = !port->guiVisible(); audio->msgShowInstrumentGui(port->instrument(), show); } @@ -690,8 +655,9 @@ void TList::tracklistChanged() void TList::keyPressEvent(QKeyEvent* e) { - if (editMode) { + if (editMode && ( e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter)) { // First time we get a keypress event when lineedit is open is on the return key: + // -- Not true for Qt4. Modifier keys also send key events - Orcan returnPressed(); return; } @@ -793,10 +759,10 @@ void TList::mousePressEvent(QMouseEvent* ev) Track* t = y2Track(y + ypos); - TrackColumn col = TrackColumn(header->sectionAt(x)); + TrackColumn col = TrackColumn(header->logicalIndexAt(x)); if (t == 0) { if (button == Qt::RightButton) { - QMenu* p = new QMenu(this); + QMenu* p = new QMenu; p->clear(); QAction* midi = p->addAction(*addtrack_addmiditrackIcon, tr("Add Midi Track")); @@ -826,7 +792,7 @@ void TList::mousePressEvent(QMouseEvent* ev) synp->setTitle(QT_TR_NOOP("Add Synth")); // Add the 'Add Synth' sub-menu to the menu. - p->addMenu(synp); + p->addMenu(synp); // Show the menu QAction* act = p->exec(ev->globalPos(), 0); @@ -1007,12 +973,13 @@ void TList::mousePressEvent(QMouseEvent* ev) } else if (button == Qt::RightButton) { mode = NORMAL; - Q3PopupMenu* p = new Q3PopupMenu(this); + QMenu* p = new QMenu; p->clear(); - p->insertItem(QIcon(*automation_clear_dataIcon), tr("Delete Track"), 0); // ddskrjo - p->insertItem(QIcon(*track_commentIcon), tr("Track Comment"), 1); - int n = p->exec(ev->globalPos(), 0); - if (n != -1) { + p->addAction(QIcon(*automation_clear_dataIcon), tr("Delete Track"))->setData(0); // ddskrjo + p->addAction(QIcon(*track_commentIcon), tr("Track Comment"))->setData(1); + QAction* act = p->exec(ev->globalPos(), 0); + if (act) { + int n = act->data().toInt(); switch (n) { case 0: // delete track song->removeTrack0(t); @@ -1208,7 +1175,7 @@ void TList::mouseMoveEvent(QMouseEvent* ev) break; case RESIZE: { - if(sTrack >= 0 && sTrack < song->tracks()->size()) + if(sTrack >= 0 && (unsigned) sTrack < song->tracks()->size()) { Track* t = song->tracks()->index(sTrack); if(t) @@ -1262,7 +1229,7 @@ void TList::wheelEvent(QWheelEvent* ev) emit redirectWheelEvent(ev); return; } - TrackColumn col = TrackColumn(header->sectionAt(x)); + TrackColumn col = TrackColumn(header->logicalIndexAt(x)); int delta = ev->delta() / WHEEL_DELTA; ev->accept(); @@ -1463,15 +1430,16 @@ void TList::resizeEvent(QResizeEvent* ev) void TList::classesPopupMenu(Track* t, int x, int y) { - Q3PopupMenu p(this); + QMenu p; p.clear(); - p.insertItem(QIcon(*addtrack_addmiditrackIcon), tr("Midi"), Track::MIDI); - p.insertItem(QIcon(*addtrack_drumtrackIcon), tr("Drum"), Track::DRUM); - int n = p.exec(mapToGlobal(QPoint(x, y)), 0); + p.addAction(QIcon(*addtrack_addmiditrackIcon), tr("Midi"))->setData(Track::MIDI); + p.addAction(QIcon(*addtrack_drumtrackIcon), tr("Drum"))->setData(Track::DRUM); + QAction* act = p.exec(mapToGlobal(QPoint(x, y)), 0); - if (n == -1) + if (!act) return; + int n = act->data().toInt(); if (Track::TrackType(n) == Track::MIDI && t->type() == Track::DRUM) { // // Drum -> Midi diff --git a/muse2/muse/arranger/tlist.h b/muse2/muse/arranger/tlist.h index 147a61e2..4e911711 100644 --- a/muse2/muse/arranger/tlist.h +++ b/muse2/muse/arranger/tlist.h @@ -8,25 +8,20 @@ #ifndef __TLIST_H__ #define __TLIST_H__ -#include -#include -#include -//Added by qt3to4: -#include -#include -#include -#include -#include -#include #include "track.h" -class QPainter; -class ScrollScale; -class QScrollBar; +class QKeyEvent; class QLineEdit; +class QMouseEvent; +class QPaintEvent; +class QResizeEvent; +class QScrollBar; +class QWheelEvent; + +class ScrollScale; class Track; class Xml; -class Header; +class HeaderNew; enum TrackColumn { COL_RECORD = 0, @@ -41,19 +36,6 @@ enum TrackColumn { }; // COL_AUTOMATION, -- not enabled -//---------------------------------------------------------- -// THeaderTip -//---------------------------------------------------------- - -class THeaderTip { //: public QToolTip { ddskrjo - - public: - THeaderTip(QWidget * parent) {} //: QToolTip(parent) {} ddskrjo - virtual ~THeaderTip() {} - protected: - void maybeTip(const QPoint &); - }; - //--------------------------------------------------------- // TList //--------------------------------------------------------- @@ -70,7 +52,7 @@ class TList : public QWidget { bool resizeFlag; // true if resize cursor is shown - Header* header; + HeaderNew* header; QScrollBar* scroll; QLineEdit* editor; Track* editTrack; @@ -101,6 +83,7 @@ class TList : public QWidget { Track* y2Track(int) const; void classesPopupMenu(Track*, int x, int y); TrackList getRecEnabledTracks(); + void setHeaderToolTips(); private slots: void returnPressed(); @@ -120,7 +103,7 @@ class TList : public QWidget { void selectTrackBelow(); public: - TList(Header*, QWidget* parent, const char* name); + TList(HeaderNew*, QWidget* parent, const char* name); void setScroll(QScrollBar* s) { scroll = s; } Track* track() const { return editTrack; } void writeStatus(int level, Xml&, const char* name) const; diff --git a/muse2/muse/help.cpp b/muse2/muse/help.cpp index 82d900f1..f0d7b666 100644 --- a/muse2/muse/help.cpp +++ b/muse2/muse/help.cpp @@ -8,8 +8,9 @@ #include #include -#include -#include + +#include +#include #include "app.h" #include "globals.h" @@ -98,11 +99,12 @@ void MusE::launchBrowser(QString &whereTo) QString exe = QString("/bin/sh"); if(QFile::exists(exe)) { - Q3Process helper(this); - helper.addArgument(exe); - helper.addArgument("-c"); - helper.addArgument(config.helpBrowser + " " + whereTo); - helper.start(); + // Orcan: Shall we use this instead? Opens the default browser of the user: + // QDesktopServices::openUrl(QUrl(whereTo)); + QStringList arguments; + arguments << "-c" << config.helpBrowser << whereTo; + QProcess helper; + helper.start(exe, arguments); } else { diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp index e06f6800..b623f56f 100644 --- a/muse2/muse/midiedit/drumedit.cpp +++ b/muse2/muse/midiedit/drumedit.cpp @@ -65,25 +65,42 @@ static const int xscale = -10; static const int yscale = 1; static const int drumeditTools = PointerTool | PencilTool | RubberTool; +enum DrumColumn { + COL_MUTE = 0, + COL_NAME, + COL_VOLUME, + COL_QUANT, + COL_INPUTTRIGGER, + COL_NOTELENGTH, + COL_NOTE, + COL_OUTCHANNEL, + COL_OUTPORT, + COL_LEVEL1, + COL_LEVEL2, + COL_LEVEL3, + COL_LEVEL4, + COL_NONE = -1 +}; + //--------------------------------------------------------- // setHeaderWhatsThis //--------------------------------------------------------- void DrumEdit::setHeaderWhatsThis() { - header->setWhatsThis(0, tr("mute instrument")); - header->setWhatsThis(1, tr("sound name")); - header->setWhatsThis(2, tr("volume percent")); - header->setWhatsThis(3, tr("quantisation")); - header->setWhatsThis(4, tr("this input note triggers the sound")); - header->setWhatsThis(5, tr("note length")); - header->setWhatsThis(6, tr("this is the note which is played")); - header->setWhatsThis(7, tr("output channel (hold ctl to affect all rows)")); - header->setWhatsThis(8, tr("output port")); - header->setWhatsThis(9, tr("shift + control key: draw velocity level 1")); - header->setWhatsThis(10, tr("control key: draw velocity level 2")); - header->setWhatsThis(11, tr("shift key: draw velocity level 3")); - header->setWhatsThis(12, tr("draw velocity level 4")); + header->setWhatsThis(COL_MUTE, tr("mute instrument")); + header->setWhatsThis(COL_NAME, tr("sound name")); + header->setWhatsThis(COL_VOLUME, tr("volume percent")); + header->setWhatsThis(COL_QUANT, tr("quantisation")); + header->setWhatsThis(COL_INPUTTRIGGER, tr("this input note triggers the sound")); + header->setWhatsThis(COL_NOTELENGTH, tr("note length")); + header->setWhatsThis(COL_NOTE, tr("this is the note which is played")); + header->setWhatsThis(COL_OUTCHANNEL, tr("output channel (hold ctl to affect all rows)")); + header->setWhatsThis(COL_OUTPORT, tr("output port")); + header->setWhatsThis(COL_LEVEL1, tr("shift + control key: draw velocity level 1")); + header->setWhatsThis(COL_LEVEL2, tr("control key: draw velocity level 2")); + header->setWhatsThis(COL_LEVEL3, tr("shift key: draw velocity level 3")); + header->setWhatsThis(COL_LEVEL4, tr("draw velocity level 4")); } //--------------------------------------------------------- @@ -92,19 +109,19 @@ void DrumEdit::setHeaderWhatsThis() void DrumEdit::setHeaderToolTips() { - header->setToolTip(0, tr("mute instrument")); - header->setToolTip(1, tr("sound name")); - header->setToolTip(2, tr("volume percent")); - header->setToolTip(3, tr("quantisation")); - header->setToolTip(4, tr("this input note triggers the sound")); - header->setToolTip(5, tr("note length")); - header->setToolTip(6, tr("this is the note which is played")); - header->setToolTip(7, tr("output channel (ctl: affect all rows)")); - header->setToolTip(8, tr("output port")); - header->setToolTip(9, tr("shift + control key: draw velocity level 1")); - header->setToolTip(10, tr("control key: draw velocity level 2")); - header->setToolTip(11, tr("shift key: draw velocity level 3")); - header->setToolTip(12, tr("draw velocity level 4")); + header->setToolTip(COL_MUTE, tr("mute instrument")); + header->setToolTip(COL_NAME, tr("sound name")); + header->setToolTip(COL_VOLUME, tr("volume percent")); + header->setToolTip(COL_QUANT, tr("quantisation")); + header->setToolTip(COL_INPUTTRIGGER, tr("this input note triggers the sound")); + header->setToolTip(COL_NOTELENGTH, tr("note length")); + header->setToolTip(COL_NOTE, tr("this is the note which is played")); + header->setToolTip(COL_OUTCHANNEL, tr("output channel (ctl: affect all rows)")); + header->setToolTip(COL_OUTPORT, tr("output port")); + header->setToolTip(COL_LEVEL1, tr("shift + control key: draw velocity level 1")); + header->setToolTip(COL_LEVEL2, tr("control key: draw velocity level 2")); + header->setToolTip(COL_LEVEL3, tr("shift key: draw velocity level 3")); + header->setToolTip(COL_LEVEL4, tr("draw velocity level 4")); } //--------------------------------------------------------- @@ -342,19 +359,19 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini // header = new HeaderNew(split1w1, "header"); header->setFixedHeight(31); - header->addLabel(tr("M"), 20); - header->addLabel(tr("Sound"), 120); - header->addLabel(tr("Vol")); - header->addLabel(tr("QNT"), 30); - header->addLabel(tr("E-Note"), 50); - header->addLabel(tr("Len")); - header->addLabel(tr("A-Note"), 50); - header->addLabel(tr("Ch")); - header->addLabel(tr("Port"), 70); - header->addLabel(tr("LV1")); - header->addLabel(tr("LV2")); - header->addLabel(tr("LV3")); - header->addLabel(tr("LV4")); + header->setColumnLabel(tr("M"), COL_MUTE, 20); + header->setColumnLabel(tr("Sound"), COL_NAME, 120); + header->setColumnLabel(tr("Vol"), COL_VOLUME); + header->setColumnLabel(tr("QNT"), COL_QUANT, 30); + header->setColumnLabel(tr("E-Note"), COL_INPUTTRIGGER, 50); + header->setColumnLabel(tr("Len"), COL_NOTELENGTH); + header->setColumnLabel(tr("A-Note"), COL_NOTE, 50); + header->setColumnLabel(tr("Ch"), COL_OUTCHANNEL); + header->setColumnLabel(tr("Port"), COL_OUTPORT, 70); + header->setColumnLabel(tr("LV1"), COL_LEVEL1); + header->setColumnLabel(tr("LV2"), COL_LEVEL2); + header->setColumnLabel(tr("LV3"), COL_LEVEL3); + header->setColumnLabel(tr("LV4"), COL_LEVEL4); setHeaderToolTips(); setHeaderWhatsThis(); diff --git a/muse2/muse/track.cpp b/muse2/muse/track.cpp index 866fa21f..0267763a 100644 --- a/muse2/muse/track.cpp +++ b/muse2/muse/track.cpp @@ -6,9 +6,6 @@ // (C) Copyright 2000-2004 Werner Schweer (ws@seh.de) //========================================================= -//#include -#include - #include "track.h" #include "event.h" #include "mididev.h" diff --git a/muse2/muse/track.h b/muse2/muse/track.h index 0d9c3f6e..eb5db071 100644 --- a/muse2/muse/track.h +++ b/muse2/muse/track.h @@ -9,7 +9,8 @@ #ifndef __TRACK_H__ #define __TRACK_H__ -#include +#include + #include #include diff --git a/muse2/muse/widgets/header.cpp b/muse2/muse/widgets/header.cpp index fe53b16e..f82c7c22 100644 --- a/muse2/muse/widgets/header.cpp +++ b/muse2/muse/widgets/header.cpp @@ -11,7 +11,7 @@ #include - +/* //--------------------------------------------------------- // readStatus //--------------------------------------------------------- @@ -62,7 +62,7 @@ void Header::writeStatus(int level, Xml& xml) const //xml.put("", name()); xml.put("", Xml::xmlString(name()).latin1()); } - +*/ //--------------------------------------------------------- @@ -117,7 +117,7 @@ void HeaderNew::writeStatus(int level, Xml& xml) const } //--------------------------------------------------------- -// writeStatus +// HeaderNew //--------------------------------------------------------- HeaderNew::HeaderNew(QWidget* parent, const char* name) @@ -126,23 +126,20 @@ HeaderNew::HeaderNew(QWidget* parent, const char* name) setObjectName(name); itemModel = new QStandardItemModel; setModel(itemModel); - columncount = 0; //setResizeMode(QHeaderView::ResizeToContents); setDefaultSectionSize(30); } //--------------------------------------------------------- -// addLabel +// setColumnLabel //--------------------------------------------------------- -int HeaderNew::addLabel(const QString & text, int size ) +void HeaderNew::setColumnLabel(const QString & text, int col, int width ) { QStandardItem *sitem = new QStandardItem(text ); - itemModel->setHorizontalHeaderItem(columncount, sitem); - if (size > -1) - resizeSection(columncount, size); - - return columncount++; + itemModel->setHorizontalHeaderItem(col, sitem); + if (width > -1) + resizeSection(col, width); } //--------------------------------------------------------- diff --git a/muse2/muse/widgets/header.h b/muse2/muse/widgets/header.h index 850b6676..2c2c00f5 100644 --- a/muse2/muse/widgets/header.h +++ b/muse2/muse/widgets/header.h @@ -15,6 +15,7 @@ class QStandardItemModel; class Xml; +/* //--------------------------------------------------------- // Header //--------------------------------------------------------- @@ -30,7 +31,7 @@ class Header : public Q3Header { void writeStatus(int level, Xml&) const; void readStatus(Xml&); }; - +*/ // ORCAN - TODO: Once everything is ported to use the new class below, we // can remove the above Qt3 based class. @@ -39,13 +40,12 @@ class HeaderNew : public QHeaderView { Q_OBJECT QStandardItemModel *itemModel; - int columncount; public: HeaderNew(QWidget* parent=0, const char* name=0); void writeStatus(int level, Xml&) const; void readStatus(Xml&); - int addLabel ( const QString & s, int size = -1 ); + void setColumnLabel( const QString & s, int col, int width = -1 ); void setToolTip(int col, const QString &text); void setWhatsThis(int col, const QString &text); }; -- cgit v1.2.3