diff options
Diffstat (limited to 'src/plugins/Ui/skinned')
| -rw-r--r-- | src/plugins/Ui/skinned/eqwidget.cpp | 20 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/eqwidget.h | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 127 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.h | 5 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlist.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlist.h | 1 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlisttitlebar.cpp | 6 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/popupwidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/popupwidget.h | 4 |
10 files changed, 118 insertions, 67 deletions
diff --git a/src/plugins/Ui/skinned/eqwidget.cpp b/src/plugins/Ui/skinned/eqwidget.cpp index 5068e0861..54450b705 100644 --- a/src/plugins/Ui/skinned/eqwidget.cpp +++ b/src/plugins/Ui/skinned/eqwidget.cpp @@ -323,22 +323,22 @@ void EqWidget::savePreset() void EqWidget::saveAutoPreset() { - PlayList* playlist = qobject_cast<MainWindow*>(parent())->playlist(); - if (!playlist->currentItem()) - return; + PlayList* playlist;// = qobject_cast<MainWindow*>(parent())->playlist(); + /*if (!playlist->currentItem()) + return;*/ //delete preset if it already exists - EQPreset* preset = findPreset(playlist->currentItem()->url().section("/",-1)); - if (preset) - deletePreset(preset); + //EQPreset* preset = findPreset(playlist->currentItem()->url().section("/",-1)); + //if (preset) + // deletePreset(preset); //create new preset - preset = new EQPreset(); - preset->setText(playlist->currentItem()->url().section("/",-1)); - preset->setPreamp(m_preamp->value()); + //preset = new EQPreset(); + //preset->setText(playlist->currentItem()->url().section("/",-1)); + /*preset->setPreamp(m_preamp->value()); for (int i = 0; i<10; ++i) { preset->setGain(i, m_sliders.at (i)->value()); } - m_autoPresets.append(preset); + m_autoPresets.append(preset);*/ } void EqWidget::setPreset(EQPreset* preset) diff --git a/src/plugins/Ui/skinned/eqwidget.h b/src/plugins/Ui/skinned/eqwidget.h index 1f96d1310..8ed690e94 100644 --- a/src/plugins/Ui/skinned/eqwidget.h +++ b/src/plugins/Ui/skinned/eqwidget.h @@ -35,7 +35,7 @@ class ToggleButton; class EQGraph; class Button; class EQPreset; -class PlayListItem; +class PlayListTrack; class SoundCore; class EqWidget : public PixmapWidget diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index f4e9c1c2f..64fb4f770 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -168,50 +168,80 @@ void ListWidget::paintEvent(QPaintEvent *) for (int i = 0; i < m_rows.size(); ++i ) { + sy = (i + 1) * (2 + m_metrics->lineSpacing()) - 2 - m_metrics->descent(); + + if(m_rows[i]->separator) + { + painter.setPen(m_normal); + if(m_number_width) + { + sx = 10 + m_number_width + m_metrics->width("9"); + if(rtl) + { + sx = width() - sx - m_metrics->width(m_rows[i]->title); + } + } + else + { + sx = rtl ? width() - 10 - m_metrics->width(m_rows[i]->title) : 10; + } + painter.drawLine(sx, sy - m_metrics->lineSpacing()/2 + 2, + sx + 30, sy - m_metrics->lineSpacing()/2 + 2); + + painter.drawLine(sx + 35 + m_metrics->width(m_rows[i]->title) + 5, + sy - m_metrics->lineSpacing()/2 + 2, + width() - 10, + sy - m_metrics->lineSpacing()/2 + 2); + + painter.drawText(sx + 35, sy, m_rows[i]->title); + continue; + } + if (m_show_anchor && i == m_anchor_row - m_first) { - painter.setBrush(m_rows[i]->item->isSelected() ? m_selected_bg : m_normal_bg); + painter.setBrush(m_rows[i]->selected ? m_selected_bg : m_normal_bg); painter.setPen(m_normal); painter.drawRect (6, i * (m_metrics->lineSpacing() + 2), - width() - 10, m_metrics->lineSpacing() + 1); + width() - 10, m_metrics->lineSpacing() + 1); } else { - if (m_rows[i]->item->isSelected()) + if (m_rows[i]->selected) { painter.setBrush(QBrush(m_selected_bg)); painter.setPen(m_selected_bg); painter.drawRect (6, i * (m_metrics->lineSpacing() + 2), - width() - 10, m_metrics->lineSpacing() + 1); + width() - 10, m_metrics->lineSpacing() + 1); } } - if (m_model->currentIndex() == m_rows[i]->index) + + if (m_model->currentIndex() == m_first + i) painter.setPen(m_current); else painter.setPen(m_normal); //243,58 - sy = (i + 1) * (2 + m_metrics->lineSpacing()) - 2 - m_metrics->descent(); if(m_number_width) { - QString number = QString("%1").arg(m_first+i+1); + QString number = QString("%1").arg(m_rows[i]->number); sx = 10 + m_number_width - m_metrics->width(number); if(rtl) sx = width() - sx - m_metrics->width(number); - painter.drawText(sx, sy, number); + if(!m_rows[i]->separator) + painter.drawText(sx, sy, number); sx = 10 + m_number_width + m_metrics->width("9"); if(rtl) sx = width() - sx - m_metrics->width(m_rows[i]->title); - painter.drawText(sx, sy, m_rows[i]->title); } else { sx = rtl ? width() - 10 - m_metrics->width(m_rows[i]->title) : 10; - painter.drawText(sx, sy, m_rows[i]->title); } + painter.drawText(sx, sy, m_rows[i]->title); + QString extra_string = m_rows[i]->extraString; if(!extra_string.isEmpty()) @@ -349,7 +379,7 @@ void ListWidget::wheelEvent (QWheelEvent *e) bool ListWidget::event (QEvent *e) { - if(m_popupWidget) + /*if(m_popupWidget) { if(e->type() == QEvent::ToolTip) { @@ -366,7 +396,7 @@ bool ListWidget::event (QEvent *e) } else if(e->type() == QEvent::Leave) m_popupWidget->deactivate(); - } + }*/ return QWidget::event(e); } @@ -391,34 +421,51 @@ void ListWidget::updateList() //song numbers width if(m_show_number && m_align_numbres && m_model->count()) { - m_number_width = m_metrics->width("9") * QString::number(m_model->count()).size(); + m_number_width = m_metrics->width("9") * QString::number(m_model->trackCount()).size(); } else m_number_width = 0; - qDeleteAll(m_rows); //TODO do not delete all row objects + qDeleteAll(m_rows); m_rows.clear(); QList<PlayListItem *> items = m_model->mid(m_first, m_row_count); + + while(m_rows.count() < qMin(m_row_count, items.count())) + m_rows << new ListWidgetRow; + while(m_rows.count() > qMin(m_row_count, items.count())) + delete m_rows.takeFirst(); + for(int i = 0; i < items.count(); ++i) { - ListWidgetRow *row = new ListWidgetRow; - row->item = items[i]; - row->title = items[i]->formattedTitle(); - row->length = items[i]->formattedLength(); - row->index = m_first + i; - //add numbers - if(m_show_number && !m_align_numbres) - row->title.prepend(QString("%1").arg(m_first+i+1)+". "); - //elide titles - row->extraString = getExtraString(m_first + i); - int extra_string_width = row->extraString.isEmpty() ? 0 : m_metrics->width(row->extraString); - if(m_number_width) - extra_string_width += m_number_width + m_metrics->width("9"); - row->title = m_metrics->elidedText (row->title, Qt::ElideRight, - width() - m_metrics->width(row->length) - 22 - extra_string_width); - - m_rows.append(row); + ListWidgetRow *row = m_rows[i]; + if(items[i]->isGroup()) + { + row->separator = true; + row->number = 0; + row->title = items[i]->formattedTitle(); + row->length.clear(); + row->selected = false; + row->title = m_metrics->elidedText (row->title, Qt::ElideRight, + width() - m_number_width - 22 - 70); + } + else + { + row->separator = false; + row->number = m_model->numberOfTrack(m_first+i) + 1; + row->title = items[i]->formattedTitle(); + row->length = items[i]->formattedLength(); + row->selected = items[i]->isSelected(); + if(m_show_number && !m_align_numbres) + row->title.prepend(QString("%1").arg(row->number)+". "); + row->extraString = getExtraString(m_first + i); + //elide titles + int extra_string_width = row->extraString.isEmpty() ? 0 : m_metrics->width(row->extraString); + if(m_number_width) + extra_string_width += m_number_width + m_metrics->width("9"); + row->title = m_metrics->elidedText (row->title, Qt::ElideRight, + width() - m_metrics->width(row->length) - 22 - extra_string_width); + } } m_scroll = false; update(); @@ -504,18 +551,22 @@ const QString ListWidget::getExtraString(int i) { QString extra_string; - if (m_show_protocol && m_model->item(i)->url().contains("://")) - extra_string = "[" + m_model->item(i)->url().split("://").at(0) + "]"; + PlayListTrack *track = m_model->track(i); + if(!track) + return extra_string; - if (m_model->isQueued(m_model->item(i))) + if (m_show_protocol && track->url().contains("://")) + extra_string = "[" + track->url().split("://").at(0) + "]"; + + if (m_model->isQueued(track)) { - int index = m_model->queuedIndex(m_model->item(i)); + int index = m_model->queuedIndex(track); extra_string += "|"+QString::number(index + 1)+"|"; } if(m_model->currentIndex() == i && m_player->isRepeatable()) extra_string += "|R|"; - else if(m_model->isStopAfter(m_model->item(i))) + else if(m_model->isStopAfter(track)) extra_string += "|S|"; extra_string = extra_string.trimmed(); //remove white space @@ -570,8 +621,8 @@ void ListWidget::mouseMoveEvent(QMouseEvent *e) else if(m_popupWidget) { int row = rowAt(e->y()); - if(row < 0 || m_popupWidget->url() != m_model->item(row)->url()) - m_popupWidget->deactivate(); + /*if(row < 0 || m_popupWidget->url() != m_model->item(row)->url()) + m_popupWidget->deactivate();*/ } } diff --git a/src/plugins/Ui/skinned/listwidget.h b/src/plugins/Ui/skinned/listwidget.h index 75dd12427..b7e902203 100644 --- a/src/plugins/Ui/skinned/listwidget.h +++ b/src/plugins/Ui/skinned/listwidget.h @@ -46,8 +46,9 @@ struct ListWidgetRow QString title; QString length; QString extraString; - int index; - PlayListItem *item; + int number; + bool separator; + bool selected; }; /** diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp index c042e757b..d46e8e315 100644 --- a/src/plugins/Ui/skinned/mainwindow.cpp +++ b/src/plugins/Ui/skinned/mainwindow.cpp @@ -174,8 +174,8 @@ void MainWindow::showState(Qmmp::State state) switch ((int) state) { case Qmmp::Playing: - if (m_pl_manager->currentPlayList()->currentItem()) - m_equalizer->loadPreset(m_pl_manager->currentPlayList()->currentItem()->url().section("/",-1)); + //if (m_pl_manager->currentPlayList()->currentItem()) + // m_equalizer->loadPreset(m_pl_manager->currentPlayList()->currentItem()->url().section("/",-1)); break; case Qmmp::Paused: break; @@ -191,11 +191,11 @@ void MainWindow::showState(Qmmp::State state) void MainWindow::showMetaData() { - if (m_playlist->currentItem() && + /*if (m_playlist->currentItem() && m_playlist->currentItem()->url() == m_core->metaData().value(Qmmp::URL)) { setWindowTitle(m_playlist->currentItem()->formattedTitle()); - } + }*/ } void MainWindow::closeEvent (QCloseEvent *) diff --git a/src/plugins/Ui/skinned/playlist.cpp b/src/plugins/Ui/skinned/playlist.cpp index c72802606..57ca57550 100644 --- a/src/plugins/Ui/skinned/playlist.cpp +++ b/src/plugins/Ui/skinned/playlist.cpp @@ -522,7 +522,7 @@ void PlayList::updateList() PlayListItem *PlayList::currentItem() { - return m_pl_manager->currentPlayList()->currentItem(); + return m_pl_manager->currentPlayList()->currentTrack(); } void PlayList::showPlaylistMenu() @@ -582,7 +582,7 @@ void PlayList::generateCopySelectedMenu() void PlayList::copySelectedMenuActionTriggered(QAction *action) { - PlayListModel *targetPlayList = 0; + /*PlayListModel *targetPlayList = 0; QString actionText=action->text(); if(action == m_copySelectedMenu->actions().at(0))//actionText == tr ("&New PlayList")) { @@ -606,13 +606,13 @@ void PlayList::copySelectedMenuActionTriggered(QAction *action) qWarning("Error: Cannot find target playlist '%s'",qPrintable(actionText)); return; } - QList <PlayListItem *> theCopy; + QList <PlayListTrack *> theCopy; foreach(PlayListItem *item, m_pl_manager->selectedPlayList()->selectedItems()) { - PlayListItem *newItem = new PlayListItem(*item); + PlayListTrack *newItem = new PlayListTrack(*item); theCopy << newItem; } - targetPlayList->add(theCopy); + targetPlayList->add(theCopy);*/ } void PlayList::setMinimalMode(bool b) diff --git a/src/plugins/Ui/skinned/playlist.h b/src/plugins/Ui/skinned/playlist.h index 80adaf3c7..fc1bd3959 100644 --- a/src/plugins/Ui/skinned/playlist.h +++ b/src/plugins/Ui/skinned/playlist.h @@ -51,7 +51,6 @@ class PlayList : public QWidget PlayList (PlayListManager *manager, QWidget *parent = 0); virtual ~PlayList(); - void load (PlayListItem *); void readSettings(); PlayListItem *currentItem(); ListWidget* listWidget() const diff --git a/src/plugins/Ui/skinned/playlisttitlebar.cpp b/src/plugins/Ui/skinned/playlisttitlebar.cpp index 3c5e5d55e..017bed82c 100644 --- a/src/plugins/Ui/skinned/playlisttitlebar.cpp +++ b/src/plugins/Ui/skinned/playlisttitlebar.cpp @@ -260,9 +260,9 @@ void PlayListTitleBar::mouseDoubleClickEvent (QMouseEvent *) void PlayListTitleBar::showCurrent() { - if (m_model) + /*if (m_model) { - PlayListItem* info = m_model->currentItem(); + PlayListTrack* info = m_model->currentItem(); if (info) { m_text = QString("%1. %2").arg(m_model->currentIndex()+1) @@ -278,5 +278,5 @@ void PlayListTitleBar::showCurrent() } QFontMetrics metrics(m_font); m_truncatedText = metrics.elidedText (m_text, Qt::ElideRight, width() - 35*m_ratio); - updatePixmap(); + updatePixmap();*/ } diff --git a/src/plugins/Ui/skinned/popupwidget.cpp b/src/plugins/Ui/skinned/popupwidget.cpp index 640a4fddb..8714f966d 100644 --- a/src/plugins/Ui/skinned/popupwidget.cpp +++ b/src/plugins/Ui/skinned/popupwidget.cpp @@ -81,7 +81,7 @@ void PopupWidget::mouseMoveEvent (QMouseEvent *) hide(); } -void PopupWidget::prepare(PlayListItem *item, QPoint pos) +void PopupWidget::prepare(PlayListTrack *item, QPoint pos) { pos += QPoint(15,10); diff --git a/src/plugins/Ui/skinned/popupwidget.h b/src/plugins/Ui/skinned/popupwidget.h index 87c3bed2b..806165851 100644 --- a/src/plugins/Ui/skinned/popupwidget.h +++ b/src/plugins/Ui/skinned/popupwidget.h @@ -26,7 +26,7 @@ class QTimer; class QLabel; -class PlayListItem; +class PlayListTrack; namespace PlayListPopup { /** @@ -40,7 +40,7 @@ public: ~PopupWidget(); - void prepare(PlayListItem *item, QPoint pos); + void prepare(PlayListTrack *item, QPoint pos); void deactivate(); const QString url() const; |
