diff options
author | Orcan Ogetbil <oget.fedora@gmail.com> | 2010-12-09 00:03:41 +0000 |
---|---|---|
committer | Orcan Ogetbil <oget.fedora@gmail.com> | 2010-12-09 00:03:41 +0000 |
commit | 45f00094ca990cacd3e3a6b5516259b280b4e182 (patch) | |
tree | bb0d1c25db9a3869836924f27307056bd911ee6b /muse2/muse/arranger | |
parent | 4a1be16bbfafb8455b54336c4465da8f8bfe3ab6 (diff) |
Converted Qt3 methods to Qt4. Ported song.cpp
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r-- | muse2/muse/arranger/alayout.cpp | 2 | ||||
-rw-r--r-- | muse2/muse/arranger/arranger.cpp | 51 | ||||
-rw-r--r-- | muse2/muse/arranger/pcanvas.cpp | 32 | ||||
-rw-r--r-- | muse2/muse/arranger/tlist.cpp | 40 | ||||
-rw-r--r-- | muse2/muse/arranger/trackinfo.cpp | 33 |
5 files changed, 96 insertions, 62 deletions
diff --git a/muse2/muse/arranger/alayout.cpp b/muse2/muse/arranger/alayout.cpp index b5374754..c59ba563 100644 --- a/muse2/muse/arranger/alayout.cpp +++ b/muse2/muse/arranger/alayout.cpp @@ -117,7 +117,7 @@ void TLLayout::setGeometry(const QRect &rect) range = 0; sb->setShown(range != 0); if (range) - sb->setMaxValue(range); + sb->setMaximum(range); if (widget) { QSize r(s0.width(), y2); diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp index e54ffba4..c7689355 100644 --- a/muse2/muse/arranger/arranger.cpp +++ b/muse2/muse/arranger/arranger.cpp @@ -225,29 +225,39 @@ Arranger::Arranger(QMainWindow* parent, const char* name) //split->setHandleWidth(10); QWidget* tracklist = new QWidget(split); - split->setResizeMode(tracklist, QSplitter::KeepSize); - tracklist->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding, 0, 100)); + + split->setStretchFactor(split->indexOf(tracklist), 0); + //tracklist->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding, 0, 100)); + QSizePolicy tpolicy = QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding); + tpolicy.setHorizontalStretch(0); + tpolicy.setVerticalStretch(100); + tracklist->setSizePolicy(tpolicy); QWidget* editor = new QWidget(split); - split->setResizeMode(editor, QSplitter::Stretch); - editor->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding, + split->setStretchFactor(split->indexOf(editor), 1); + //editor->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding, // Changed by T356. Was causing "large int implicitly truncated" warning. These are UCHAR values... //1000, 100)); //232, 100)); // 232 is what it was being truncated to, but what is the right value?... - 255, 100)); + //255, 100)); + QSizePolicy epolicy = QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + epolicy.setHorizontalStretch(255); + epolicy.setVerticalStretch(100); + editor->setSizePolicy(epolicy); //--------------------------------------------------- // Track Info //--------------------------------------------------- - infoScroll = new QScrollBar(Qt::Vertical, tracklist, "infoScrollBar"); + infoScroll = new QScrollBar(Qt::Vertical, tracklist); + infoScroll->setObjectName("infoScrollBar"); genTrackInfo(tracklist); // Track-Info Button ib = new QToolButton(tracklist); ib->setText(tr("TrackInfo")); ib->setCheckable(true); - ib->setOn(showTrackinfoFlag); + ib->setChecked(showTrackinfoFlag); connect(ib, SIGNAL(toggled(bool)), SLOT(showTrackInfo(bool))); header = new Header(tracklist); @@ -318,8 +328,15 @@ Arranger::Arranger(QMainWindow* parent, const char* name) // Changed p3.3.43 Too small steps for me... //vscroll = new QScrollBar(1, 20*20, 1, 5, 0, Vertical, editor); - vscroll = new QScrollBar(1, 20*20, 5, 25, 0, Qt::Vertical, editor); - + //vscroll = new QScrollBar(1, 20*20, 5, 25, 0, Qt::Vertical, editor); + vscroll = new QScrollBar(editor); + vscroll->setMinimum(1); + vscroll->setMaximum(20*20); + vscroll->setSingleStep(5); + vscroll->setPageStep(25); + vscroll->setValue(0); + vscroll->setOrientation(Qt::Vertical); + list->setScroll(vscroll); QList<int> vallist; @@ -348,8 +365,11 @@ Arranger::Arranger(QMainWindow* parent, const char* name) connect(this, SIGNAL(redirectWheelEvent(QWheelEvent*)), canvas, SLOT(redirectedWheelEvent(QWheelEvent*))); connect(list, SIGNAL(redirectWheelEvent(QWheelEvent*)), canvas, SLOT(redirectedWheelEvent(QWheelEvent*))); - egrid->addMultiCellWidget(time, 0, 0, 0, 1); - egrid->addMultiCellWidget(hLine(editor), 1, 1, 0, 1); + //egrid->addMultiCellWidget(time, 0, 0, 0, 1); + //egrid->addMultiCellWidget(hLine(editor), 1, 1, 0, 1); + egrid->addWidget(time, 0, 0, 1, 2); + egrid->addWidget(hLine(editor), 1, 0, 1, 2); + egrid->addWidget(canvas, 2, 0); egrid->addWidget(vscroll, 2, 1); egrid->addWidget(hscroll, 3, 0, Qt::AlignBottom); @@ -583,7 +603,7 @@ void Arranger::setMode(int mode) void Arranger::writeStatus(int level, Xml& xml) { xml.tag(level++, "arranger"); - xml.intTag(level, "info", ib->isOn()); + xml.intTag(level, "info", ib->isChecked()); split->writeStatus(level, xml); list->writeStatus(level, xml, "list"); @@ -609,7 +629,7 @@ void Arranger::readStatus(Xml& xml) case Xml::TagStart: if (tag == "info") showTrackinfoFlag = xml.parseInt(); - else if (tag == split->name()) + else if (tag == split->objectName()) split->readStatus(xml); else if (tag == "list") list->readStatus(xml, "list"); @@ -626,7 +646,7 @@ void Arranger::readStatus(Xml& xml) break; case Xml::TagEnd: if (tag == "arranger") { - ib->setOn(showTrackinfoFlag); + ib->setChecked(showTrackinfoFlag); return; } default: @@ -891,8 +911,9 @@ void Arranger::trackInfoScroll(int y) //--------------------------------------------------------- WidgetStack::WidgetStack(QWidget* parent, const char* name) - : QWidget(parent, name) + : QWidget(parent) { + setObjectName(name); top = -1; } diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp index c2ffe6ba..b1eb22ca 100644 --- a/muse2/muse/arranger/pcanvas.cpp +++ b/muse2/muse/arranger/pcanvas.cpp @@ -225,7 +225,7 @@ void PartCanvas::viewMouseDoubleClickEvent(QMouseEvent* event) } QPoint cpos = event->pos(); curItem = items.find(cpos); - bool shift = event->state() & Qt::ShiftButton; + bool shift = event->modifiers() & Qt::ShiftModifier; if (curItem) { if (event->button() == Qt::LeftButton && shift) { editPart = (NPart*)curItem; @@ -738,7 +738,7 @@ QMenu* PartCanvas::genItemPopup(CItem* item) act_copy->setData(5); act_copy->setShortcut(Qt::CTRL+Qt::Key_C); - partPopup->insertSeparator(); + partPopup->addSeparator(); int rc = npart->part()->events()->arefCount(); QString st = QString(tr("s&elect ")); if(rc > 1) @@ -747,7 +747,7 @@ QMenu* PartCanvas::genItemPopup(CItem* item) QAction *act_select = partPopup->addAction(st); act_select->setData(18); - partPopup->insertSeparator(); + partPopup->addSeparator(); QAction *act_rename = partPopup->addAction(tr("rename")); act_rename->setData(0); QMenu* colorPopup = new QMenu(tr("color")); @@ -772,7 +772,7 @@ QMenu* PartCanvas::genItemPopup(CItem* item) QAction *act_declone = partPopup->addAction(tr("de-clone")); act_declone->setData(15); - partPopup->insertSeparator(); + partPopup->addSeparator(); switch(trackType) { case Track::MIDI: { QAction *act_pianoroll = partPopup->addAction(QIcon(*pianoIconSet), tr("pianoroll")); @@ -809,10 +809,10 @@ QMenu* PartCanvas::genItemPopup(CItem* item) break; } - partPopup->setItemEnabled(18, rc > 1); - partPopup->setItemEnabled(1, true); - partPopup->setItemEnabled(4, true); - partPopup->setItemEnabled(15, rc > 1); + act_select->setEnabled( rc > 1); + act_delete->setEnabled( true); + act_cut->setEnabled( true); + act_declone->setEnabled( rc > 1); return partPopup; } @@ -1006,7 +1006,7 @@ void PartCanvas::itemPopup(CItem* item, int n, const QPoint& pt) void PartCanvas::mousePress(QMouseEvent* event) { - if (event->state() & Qt::ShiftButton) { + if (event->modifiers() & Qt::ShiftModifier) { return; } QPoint pt = event->pos(); @@ -1083,11 +1083,11 @@ void PartCanvas::keyPress(QKeyEvent* event) return; } - if (event->state() & Qt::ShiftButton) + if (event->modifiers() & Qt::ShiftModifier) key += Qt::SHIFT; - if (event->state() & Qt::AltButton) + if (event->modifiers() & Qt::AltModifier) key += Qt::ALT; - if (event->state() & Qt::ControlButton) + if (event->modifiers() & Qt::ControlModifier) key += Qt::CTRL; if (key == shortcuts[SHRT_DELETE].key) { @@ -1567,7 +1567,7 @@ void PartCanvas::drawItem(QPainter& p, const CItem* item, const QRect& rect) rr.setX(rr.x() + 3); p.save(); p.setFont(config.fonts[1]); - p.setWorldXForm(false); + p.setWorldMatrixEnabled(false); p.drawText(rr, Qt::AlignVCenter|Qt::AlignLeft, part->name()); p.restore(); } @@ -1596,11 +1596,11 @@ void PartCanvas::drawMoving(QPainter& p, const CItem* item, const QRect&) void PartCanvas::drawWavePart(QPainter& p, const QRect& bb, WavePart* wp, const QRect& _pr) { - QRect rr = p.worldMatrix().map(bb); - QRect pr = p.worldMatrix().map(_pr); + QRect rr = p.worldMatrix().mapRect(bb); + QRect pr = p.worldMatrix().mapRect(_pr); p.save(); - p.resetXForm(); + p.resetTransform(); int x2 = 1; int x1 = rr.x() > pr.x() ? rr.x() : pr.x(); diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp index f1be95fa..729e318f 100644 --- a/muse2/muse/arranger/tlist.cpp +++ b/muse2/muse/arranger/tlist.cpp @@ -56,8 +56,9 @@ static const int WHEEL_DELTA = 120; //--------------------------------------------------------- TList::TList(Header* hdr, QWidget* parent, const char* name) - : QWidget(parent, name, Qt::WNoAutoErase | Qt::WResizeNoErase) + : QWidget(parent) // Qt::WNoAutoErase | Qt::WResizeNoErase are no longer needed according to Qt4 doc { + setObjectName(name); ypos = 0; editMode = false; setFocusPolicy(Qt::StrongFocus); @@ -69,7 +70,8 @@ TList::TList(Header* hdr, QWidget* parent, const char* name) editor = 0; mode = NORMAL; - setBackgroundMode(Qt::NoBackground); + //setBackgroundMode(Qt::NoBackground); // ORCAN - FIXME + //setAttribute(Qt::WA_OpaquePaintEvent); resizeFlag = false; connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int))); @@ -107,6 +109,7 @@ void TList::paintEvent(QPaintEvent* ev) { if (!pmValid) paint(ev->rect()); + /* Orcan - fixme */ bitBlt(this, ev->rect().topLeft(), &pm, ev->rect(), true); //CopyROP, true); ddskrjo } @@ -180,6 +183,7 @@ void TList::paint(const QRect& r) QColor bg; if (track->selected()) { bg = config.selectTrackBg; + //p.setPen(palette().active().text()); p.setPen(config.selectTrackFg); } else { @@ -209,7 +213,7 @@ void TList::paint(const QRect& r) bg = config.synthTrackBg; break; } - p.setPen(palette().active().text()); + p.setPen(palette().color(QPalette::Active, QPalette::Text)); } p.fillRect(x1, yy, w, trackHeight, bg); @@ -217,7 +221,8 @@ void TList::paint(const QRect& r) for (int index = 0; index < header->count(); ++index) { int section = header->visualIndex(index); int w = header->sectionSize(section); - QRect r = p.xForm(QRect(x+2, yy, w-4, trackHeight)); + //QRect r = p.xForm(QRect(x+2, yy, w-4, trackHeight)); + QRect r = p.combinedTransform().mapRect(QRect(x+2, yy, w-4, trackHeight)); switch (section) { case COL_RECORD: @@ -411,7 +416,7 @@ void TList::adjustScrollbar() TrackList* l = song->tracks(); for (iTrack it = l->begin(); it != l->end(); ++it) h += (*it)->height(); - scroll->setMaxValue(h +30); + scroll->setMaximum(h +30); redraw(); } @@ -767,7 +772,7 @@ void TList::mousePressEvent(QMouseEvent* ev) int x = ev->x(); int y = ev->y(); int button = ev->button(); - bool shift = ev->state() & Qt::ShiftModifier; + bool shift = ev->modifiers() & Qt::ShiftModifier; Track* t = y2Track(y + ypos); @@ -948,7 +953,7 @@ void TList::mousePressEvent(QMouseEvent* ev) break; case COL_MUTE: // p3.3.29 - if ((button == Qt::RightButton) || (ev->state() & Qt::ControlModifier)) + if ((button == Qt::RightButton) || (ev->modifiers() & Qt::ControlModifier)) t->setOff(!t->off()); else { @@ -1129,7 +1134,7 @@ void TList::selectTrackBelow() void TList::mouseMoveEvent(QMouseEvent* ev) { - if (ev->state() == 0) { + if (ev->modifiers() == 0) { int y = ev->y(); int ty = -ypos; TrackList* tracks = song->tracks(); @@ -1147,14 +1152,14 @@ void TList::mouseMoveEvent(QMouseEvent* ev) else { if (!resizeFlag) { resizeFlag = true; - setCursor(QCursor(Qt::splitVCursor)); + setCursor(QCursor(Qt::SplitVCursor)); } break; } } } if (it == tracks->end() && resizeFlag) { - setCursor(QCursor(Qt::arrowCursor)); + setCursor(QCursor(Qt::ArrowCursor)); resizeFlag = false; } return; @@ -1175,7 +1180,7 @@ void TList::mouseMoveEvent(QMouseEvent* ev) mode = DRAG; dragHeight = t->height(); sTrack = song->tracks()->index(t); - setCursor(QCursor(Qt::sizeVerCursor)); + setCursor(QCursor(Qt::SizeVerCursor)); redraw(); } } @@ -1220,7 +1225,7 @@ void TList::mouseReleaseEvent(QMouseEvent* ev) } if (mode != NORMAL) { mode = NORMAL; - setCursor(QCursor(Qt::arrowCursor)); + setCursor(QCursor(Qt::ArrowCursor)); redraw(); } if (editTrack) @@ -1254,7 +1259,7 @@ void TList::wheelEvent(QWheelEvent* ev) break; case COL_MUTE: // p3.3.29 - if (ev->state() & Qt::ControlModifier) + if (ev->modifiers() & Qt::ControlModifier) t->setOff(!t->off()); else { @@ -1361,7 +1366,7 @@ void TList::readStatus(Xml& xml, const char* name) case Xml::End: return; case Xml::TagStart: - if (tag == header->name()) + if (tag == header->objectName()) header->readStatus(xml); else xml.unknown("Tlist"); @@ -1402,13 +1407,14 @@ void TList::setYPos(int y) } else if (delta < 0) { // shift up //printf("TList::setYPos delta < 0 : shift up\n"); + /* Orcan - fixme */ bitBlt(&pm, 0, 0, &pm, 0, -delta, w, h + delta, true); //CopyROP, true); ddskrjo r = QRect(0, h + delta, w, -delta); } else { // shift down //printf("TList::setYPos delta !< 0 : shift down\n"); + /* Orcan - fixme */ bitBlt(&pm, 0, delta, &pm, 0, 0, w, h-delta, true); //CopyROP, true); ddskrjo - // NOTE: June 2 2010: On my machine with an old NV V8200 + prop drivers (curr 96.43.11), // this is a problem. There is severe graphical corruption. // Not just here but several other windows (ex. ladspa browser), @@ -1432,7 +1438,9 @@ void TList::setYPos(int y) void TList::resizeEvent(QResizeEvent* ev) { - pm.resize(ev->size()); + //pm.resize(ev->size()); // Qt3 way + //pm = pm.copy(QRect(QPoint(0, 0), ev->size())); // orcan - didn't work. Let's try: + pm = QPixmap(ev->size()); // Works, but is this efficient? pmValid = false; } diff --git a/muse2/muse/arranger/trackinfo.cpp b/muse2/muse/arranger/trackinfo.cpp index 2f205490..6ca32a40 100644 --- a/muse2/muse/arranger/trackinfo.cpp +++ b/muse2/muse/arranger/trackinfo.cpp @@ -58,10 +58,10 @@ void Arranger::midiTrackInfoHeartBeat() MidiPort* mp = &midiPorts[outPort]; // Set record echo. - if(midiTrackInfo->recEchoButton->isOn() != track->recEcho()) + if(midiTrackInfo->recEchoButton->isChecked() != track->recEcho()) { midiTrackInfo->recEchoButton->blockSignals(true); - midiTrackInfo->recEchoButton->setOn(track->recEcho()); + midiTrackInfo->recEchoButton->setChecked(track->recEcho()); midiTrackInfo->recEchoButton->blockSignals(false); } @@ -346,9 +346,13 @@ void Arranger::genTrackInfo(QWidget* parent) noTrackInfo = new QWidget(trackInfo); QPixmap *noInfoPix = new QPixmap(160, 1000); //muse_leftside_logo_xpm); const QPixmap *logo = new QPixmap(*museLeftSideLogo); - noInfoPix->fill(noTrackInfo->paletteBackgroundColor() ); + noInfoPix->fill(noTrackInfo->palette().color(QPalette::Window) ); + /* Orcan - fixme */ copyBlt(noInfoPix, 10, 0, logo, 0,0, logo->width(), logo->height()); - noTrackInfo->setPaletteBackgroundPixmap(*noInfoPix); + //noTrackInfo->setPaletteBackgroundPixmap(*noInfoPix); + QPalette palette; + palette.setBrush(noTrackInfo->backgroundRole(), QBrush(*noInfoPix)); + noTrackInfo->setPalette(palette); noTrackInfo->setGeometry(0, 0, 65, 200); noTrackInfo->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding)); @@ -984,7 +988,7 @@ void Arranger::instrPopup() MidiInstrument* instr = midiPorts[port].instrument(); instr->populatePatchPopup(pop, channel, song->mtype(), track->type() == Track::DRUM); - if(pop->count() == 0) + if(pop->actions().count() == 0) return; QAction *act = pop->exec(midiTrackInfo->iPatch->mapToGlobal(QPoint(10,5))); if (act) { @@ -1185,13 +1189,14 @@ void Arranger::genMidiTrackInfo() midiTrackInfo->iChanDetectLabel->setPixmap(*darkRedLedIcon); QIcon recEchoIconSet; - recEchoIconSet.setPixmap(*recEchoIconOn, QIcon::Automatic, QIcon::Normal, QIcon::On); - recEchoIconSet.setPixmap(*recEchoIconOff, QIcon::Automatic, QIcon::Normal, QIcon::Off); - midiTrackInfo->recEchoButton->setIconSet(recEchoIconSet); + recEchoIconSet.addPixmap(*recEchoIconOn, QIcon::Normal, QIcon::On); + recEchoIconSet.addPixmap(*recEchoIconOff, QIcon::Normal, QIcon::Off); + midiTrackInfo->recEchoButton->setIcon(recEchoIconSet); // MusE-2: AlignCenter and WordBreak are set in the ui(3) file, but not supported by QLabel. Turn them on here. - midiTrackInfo->trackNameLabel->setAlignment(Qt::AlignCenter | Qt::TextWordWrap); + midiTrackInfo->trackNameLabel->setAlignment(Qt::AlignCenter); + //Qt::TextWordWrap is not available for alignment in Qt4 - Orcan // MusE-2 Tested: TextWrapAnywhere actually works, but in fact it takes precedence // over word wrap, so I found it is not really desirable. Maybe with a user setting... //midiTrackInfo->trackNameLabel->setAlignment(Qt::AlignCenter | Qt::TextWordWrap | Qt::TextWrapAnywhere); @@ -1216,7 +1221,7 @@ void Arranger::genMidiTrackInfo() connect(midiTrackInfo->iPatch, SIGNAL(released()), SLOT(instrPopup())); pop = new QMenu(midiTrackInfo->iPatch); - pop->setCheckable(false); + //pop->setCheckable(false); // not needed in Qt4 // Removed by Tim. p3.3.9 //connect(midiTrackInfo->iName, SIGNAL(returnPressed()), SLOT(iNameChanged())); @@ -1290,9 +1295,9 @@ void Arranger::updateMidiTrackInfo(int flags) for (int i = 0; i < MIDI_PORTS; ++i) { QString name; name.sprintf("%d:%s", i+1, midiPorts[i].portname().toLatin1().constData()); - midiTrackInfo->iOutput->insertItem(name, i); + midiTrackInfo->iOutput->insertItem(i, name); if (i == outPort) - midiTrackInfo->iOutput->setCurrentItem(i); + midiTrackInfo->iOutput->setCurrentIndex(i); } //midiTrackInfo->iInput->setText(bitmap2String(inPort)); ///midiTrackInfo->iInput->setText(u32bitmap2String(inPort)); @@ -1309,10 +1314,10 @@ void Arranger::updateMidiTrackInfo(int flags) ///midiTrackInfo->iInputChannel->setText(bitmap2String(inChannel)); // Set record echo. - if(midiTrackInfo->recEchoButton->isOn() != track->recEcho()) + if(midiTrackInfo->recEchoButton->isChecked() != track->recEcho()) { midiTrackInfo->recEchoButton->blockSignals(true); - midiTrackInfo->recEchoButton->setOn(track->recEcho()); + midiTrackInfo->recEchoButton->setChecked(track->recEcho()); midiTrackInfo->recEchoButton->blockSignals(false); } |