summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger
diff options
context:
space:
mode:
authorOrcan Ogetbil <oget.fedora@gmail.com>2010-12-09 00:03:41 +0000
committerOrcan Ogetbil <oget.fedora@gmail.com>2010-12-09 00:03:41 +0000
commit45f00094ca990cacd3e3a6b5516259b280b4e182 (patch)
treebb0d1c25db9a3869836924f27307056bd911ee6b /muse2/muse/arranger
parent4a1be16bbfafb8455b54336c4465da8f8bfe3ab6 (diff)
Converted Qt3 methods to Qt4. Ported song.cpp
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r--muse2/muse/arranger/alayout.cpp2
-rw-r--r--muse2/muse/arranger/arranger.cpp51
-rw-r--r--muse2/muse/arranger/pcanvas.cpp32
-rw-r--r--muse2/muse/arranger/tlist.cpp40
-rw-r--r--muse2/muse/arranger/trackinfo.cpp33
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);
}