aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/skinned')
-rw-r--r--src/plugins/Ui/skinned/eqwidget.cpp20
-rw-r--r--src/plugins/Ui/skinned/eqwidget.h2
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp127
-rw-r--r--src/plugins/Ui/skinned/listwidget.h5
-rw-r--r--src/plugins/Ui/skinned/mainwindow.cpp8
-rw-r--r--src/plugins/Ui/skinned/playlist.cpp10
-rw-r--r--src/plugins/Ui/skinned/playlist.h1
-rw-r--r--src/plugins/Ui/skinned/playlisttitlebar.cpp6
-rw-r--r--src/plugins/Ui/skinned/popupwidget.cpp2
-rw-r--r--src/plugins/Ui/skinned/popupwidget.h4
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;