aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-07-08 08:53:42 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-07-08 08:53:42 +0000
commita7ebb6b84e6c343ad06d5ad242bf5162152486a1 (patch)
tree664c3048a02d67e44fed6ae248893031e8928fae /src
parentd008a2370a142e13f1f6e5eb29aa3c507a11920e (diff)
downloadqmmp-a7ebb6b84e6c343ad06d5ad242bf5162152486a1.tar.gz
qmmp-a7ebb6b84e6c343ad06d5ad242bf5162152486a1.tar.bz2
qmmp-a7ebb6b84e6c343ad06d5ad242bf5162152486a1.zip
refactoring
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3543 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Ui/skinned/keyboardmanager.cpp168
-rw-r--r--src/plugins/Ui/skinned/keyboardmanager.h12
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp32
-rw-r--r--src/plugins/Ui/skinned/listwidget.h38
-rw-r--r--src/plugins/Ui/skinned/playlist.cpp2
5 files changed, 128 insertions, 124 deletions
diff --git a/src/plugins/Ui/skinned/keyboardmanager.cpp b/src/plugins/Ui/skinned/keyboardmanager.cpp
index 1576ea6db..be7a0f458 100644
--- a/src/plugins/Ui/skinned/keyboardmanager.cpp
+++ b/src/plugins/Ui/skinned/keyboardmanager.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2009 by Ilya Kotov *
+ * Copyright (C) 2006-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -18,18 +18,17 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-
#include <QKeyEvent>
#include <qmmpui/playlistmodel.h>
+#include <qmmpui/playlistmanager.h>
+#include <qmmpui/mediaplayer.h>
#include "playlist.h"
#include "listwidget.h"
#include "keyboardmanager.h"
-#include "mainwindow.h"
-
-KeyboardManager::KeyboardManager (PlayList* pl)
+KeyboardManager::KeyboardManager (ListWidget *l)
{
- m_playlist = pl;
+ m_listWidget = l;
}
bool KeyboardManager::handleKeyPress (QKeyEvent* ke)
@@ -72,8 +71,7 @@ bool KeyboardManager::handleKeyRelease (QKeyEvent*)
void KeyboardManager::keyUp (QKeyEvent * ke)
{
- QList<int> rows = m_playlist->listWidget()->model()->selectedIndexes();
- ListWidget* list_widget = m_playlist->listWidget();
+ QList<int> rows = m_listWidget->model()->selectedIndexes();
if (rows.count() > 0)
{
@@ -82,13 +80,13 @@ void KeyboardManager::keyUp (QKeyEvent * ke)
if (! (ke->modifiers() & Qt::ShiftModifier || ke->modifiers() & Qt::AltModifier))
{
- m_playlist->listWidget()->model()->clearSelection();
- list_widget->setAnchorRow(-1);
+ m_listWidget->model()->clearSelection();
+ m_listWidget->setAnchorRow(-1);
}
bool select_top = false;
- int first_visible = list_widget->firstVisibleRow();
- int last_visible = list_widget->visibleRows() + first_visible - 1;
+ int first_visible = m_listWidget->firstVisibleRow();
+ int last_visible = m_listWidget->visibleRows() + first_visible - 1;
foreach (int i, rows)
{
if (i > last_visible || i < first_visible)
@@ -104,71 +102,70 @@ void KeyboardManager::keyUp (QKeyEvent * ke)
{
if(rows.first() == 0)
return;
- m_playlist->listWidget()->model()->moveItems (rows.first(),rows.first() - 1);
- list_widget->setAnchorRow (list_widget->anchorRow() - 1);
+ m_listWidget->model()->moveItems (rows.first(),rows.first() - 1);
+ m_listWidget->setAnchorRow (m_listWidget->anchorRow() - 1);
}
else
{
- if (rows.last() > list_widget->anchorRow() && ke->modifiers() & Qt::ShiftModifier)
+ if (rows.last() > m_listWidget->anchorRow() && ke->modifiers() & Qt::ShiftModifier)
{
- m_playlist->listWidget()->model()->setSelected (rows.last(),false);
+ m_listWidget->model()->setSelected (rows.last(),false);
}
else if (rows.first() > 0)
{
- m_playlist->listWidget()->model()->setSelected (rows.first() - 1,true);
+ m_listWidget->model()->setSelected (rows.first() - 1,true);
}
else
{
- m_playlist->listWidget()->model()->setSelected (rows.first(),true);
- if(list_widget->anchorRow() == -1)
- list_widget->setAnchorRow(rows.first());
+ m_listWidget->model()->setSelected (rows.first(),true);
+ if(m_listWidget->anchorRow() == -1)
+ m_listWidget->setAnchorRow(rows.first());
}
if (! (ke->modifiers() & Qt::ShiftModifier) && rows.first() > 0)
- list_widget->setAnchorRow (rows.first() - 1);
+ m_listWidget->setAnchorRow (rows.first() - 1);
}
}
else
{
- m_playlist->listWidget()->model()->setSelected (list_widget->firstVisibleRow(),true);
- list_widget->setAnchorRow(list_widget->firstVisibleRow());
+ m_listWidget->model()->setSelected (m_listWidget->firstVisibleRow(),true);
+ m_listWidget->setAnchorRow(m_listWidget->firstVisibleRow());
}
- rows = m_playlist->listWidget()->model()->selectedIndexes();
+ rows = m_listWidget->model()->selectedIndexes();
- if (rows.first() < list_widget->firstVisibleRow() && list_widget->firstVisibleRow() > 0)
+ if (rows.first() < m_listWidget->firstVisibleRow() && m_listWidget->firstVisibleRow() > 0)
{
- int r = rows.last() > list_widget->anchorRow() ? rows.last(): rows.first();
- if(ke->modifiers() & Qt::ShiftModifier && (r >= list_widget->firstVisibleRow()))
+ int r = rows.last() > m_listWidget->anchorRow() ? rows.last(): rows.first();
+ if(ke->modifiers() & Qt::ShiftModifier && (r >= m_listWidget->firstVisibleRow()))
;
else
- list_widget->scroll (list_widget->firstVisibleRow() - 1);
+ m_listWidget->scroll (m_listWidget->firstVisibleRow() - 1);
}
}
else
{
- //if(list_widget->getAnchorRow() == -1)
- list_widget->setAnchorRow(list_widget->firstVisibleRow());
- m_playlist->listWidget()->model()->setSelected (list_widget->firstVisibleRow(),true);
+ //if(m_listWidget->getAnchorRow() == -1)
+ m_listWidget->setAnchorRow(m_listWidget->firstVisibleRow());
+ m_listWidget->model()->setSelected (m_listWidget->firstVisibleRow(),true);
}
}
void KeyboardManager::keyDown (QKeyEvent * ke)
{
- QList<int> rows = m_playlist->listWidget()->model()->selectedIndexes();
- ListWidget* list_widget = m_playlist->listWidget();
+ QList<int> rows = m_listWidget->model()->selectedIndexes();
//qWarning("count: %d",rows.count());
if (rows.count() > 0)
{
if (! (ke->modifiers() & Qt::ShiftModifier || ke->modifiers() & Qt::AltModifier))
{
- m_playlist->listWidget()->model()->clearSelection();
- list_widget->setAnchorRow(-1);
+ m_listWidget->model()->clearSelection();
+ m_listWidget->setAnchorRow(-1);
}
bool select_top = false;
- int first_visible = list_widget->firstVisibleRow();
- int last_visible = list_widget->visibleRows() + first_visible - 1;
+ int first_visible = m_listWidget->firstVisibleRow();
+ int last_visible = m_listWidget->visibleRows() + first_visible - 1;
foreach (int i, rows)
{
if (i > last_visible || i < first_visible)
@@ -182,103 +179,104 @@ void KeyboardManager::keyDown (QKeyEvent * ke)
{
if (ke->modifiers() == Qt::AltModifier)
{
- if(rows.last() == m_playlist->listWidget()->model()->count() - 1)
+ if(rows.last() == m_listWidget->model()->count() - 1)
return;
- m_playlist->listWidget()->model()->moveItems (rows.last(),rows.last() + 1);
- list_widget->setAnchorRow (list_widget->anchorRow() + 1);
+ m_listWidget->model()->moveItems (rows.last(),rows.last() + 1);
+ m_listWidget->setAnchorRow (m_listWidget->anchorRow() + 1);
}
else
{
- //qWarning("list_widget %d",list_widget->getAnchorRow());
- //qWarning("model count: %d rows.last(): %d",m_playlist->listWidget()->model()->count(),rows.last());
- if (rows.first() < list_widget->anchorRow() && ke->modifiers() & Qt::ShiftModifier)
- m_playlist->listWidget()->model()->setSelected (rows.first(),false);
- else if (rows.last() < m_playlist->listWidget()->model()->count() - 1)
+ //qWarning("list_widget %d",m_listWidget->getAnchorRow());
+ //qWarning("model count: %d rows.last(): %d",m_listWidget->model()->count(),rows.last());
+ if (rows.first() < m_listWidget->anchorRow() && ke->modifiers() & Qt::ShiftModifier)
+ m_listWidget->model()->setSelected (rows.first(),false);
+ else if (rows.last() < m_listWidget->model()->count() - 1)
{
- m_playlist->listWidget()->model()->setSelected (rows.last() + 1,true);
+ m_listWidget->model()->setSelected (rows.last() + 1,true);
}
else
{
- m_playlist->listWidget()->model()->setSelected (rows.last(),true);
- if(list_widget->anchorRow() == -1)
- list_widget->setAnchorRow(rows.last());
+ m_listWidget->model()->setSelected (rows.last(),true);
+ if(m_listWidget->anchorRow() == -1)
+ m_listWidget->setAnchorRow(rows.last());
}
- if (! (ke->modifiers() & Qt::ShiftModifier) && rows.last() < m_playlist->listWidget()->model()->count() - 1)
- list_widget->setAnchorRow (rows.last() + 1);
+ if (! (ke->modifiers() & Qt::ShiftModifier) && rows.last() < m_listWidget->model()->count() - 1)
+ m_listWidget->setAnchorRow (rows.last() + 1);
}
}
else
{
- m_playlist->listWidget()->model()->setSelected (list_widget->firstVisibleRow(),true);
- list_widget->setAnchorRow(list_widget->firstVisibleRow());
+ m_listWidget->model()->setSelected (m_listWidget->firstVisibleRow(),true);
+ m_listWidget->setAnchorRow(m_listWidget->firstVisibleRow());
}
- rows = m_playlist->listWidget()->model()->selectedIndexes();
+ rows = m_listWidget->model()->selectedIndexes();
- if (!rows.isEmpty() && rows.last() >= list_widget->visibleRows() + list_widget->firstVisibleRow())
+ if (!rows.isEmpty() && rows.last() >= m_listWidget->visibleRows() + m_listWidget->firstVisibleRow())
{
- int r = rows.first() < list_widget->anchorRow() ? rows.first(): rows.last();
+ int r = rows.first() < m_listWidget->anchorRow() ? rows.first(): rows.last();
if(ke->modifiers() & Qt::ShiftModifier &&
- (r < list_widget->firstVisibleRow() + list_widget->visibleRows()))
+ (r < m_listWidget->firstVisibleRow() + m_listWidget->visibleRows()))
;
else
- list_widget->scroll (list_widget->firstVisibleRow() + 1);
+ m_listWidget->scroll (m_listWidget->firstVisibleRow() + 1);
}
}
else
{
- m_playlist->listWidget()->model()->setSelected (list_widget->firstVisibleRow(),true);
- //if(list_widget->getAnchorRow() == -1)
- list_widget->setAnchorRow(list_widget->firstVisibleRow());
+ m_listWidget->model()->setSelected (m_listWidget->firstVisibleRow(),true);
+ //if(m_listWidget->getAnchorRow() == -1)
+ m_listWidget->setAnchorRow(m_listWidget->firstVisibleRow());
}
}
void KeyboardManager::keyPgUp (QKeyEvent *)
{
- ListWidget* list_widget = m_playlist->listWidget();
- int page_size = list_widget->visibleRows();
- int offset= (list_widget->firstVisibleRow()-page_size >= 0) ?list_widget->firstVisibleRow()-page_size:0;
- list_widget->scroll (offset);
+ int page_size = m_listWidget->visibleRows();
+ int offset= (m_listWidget->firstVisibleRow()-page_size >= 0) ?m_listWidget->firstVisibleRow()-page_size:0;
+ m_listWidget->scroll (offset);
}
void KeyboardManager::keyPgDown (QKeyEvent *)
{
- ListWidget* list_widget = m_playlist->listWidget();
- int page_size = list_widget->visibleRows();
- int offset = (list_widget->firstVisibleRow() +page_size < m_playlist->listWidget()->model()->count()) ?
- list_widget->firstVisibleRow() +page_size:m_playlist->listWidget()->model()->count() - 1;
- list_widget->scroll (offset);
+ int page_size = m_listWidget->visibleRows();
+ int offset = (m_listWidget->firstVisibleRow() +page_size < m_listWidget->model()->count()) ?
+ m_listWidget->firstVisibleRow() +page_size:m_listWidget->model()->count() - 1;
+ m_listWidget->scroll (offset);
}
void KeyboardManager::keyEnter (QKeyEvent *)
{
- QList<int> rows = m_playlist->listWidget()->model()->selectedIndexes();
- MainWindow* mw = qobject_cast<MainWindow*> (m_playlist->parentWidget());
- if (mw && rows.count() > 0)
+ QList<int> rows = m_listWidget->model()->selectedIndexes();
+ if (rows.count() > 0)
{
- m_playlist->listWidget()->model()->setCurrent (rows.first());
- mw->replay();
+ m_listWidget->model()->setCurrent (rows.first());
+ MediaPlayer::instance()->stop();
+ PlayListManager::instance()->activatePlayList(m_listWidget->model());
+ MediaPlayer::instance()->play();
}
}
void KeyboardManager::keyHome(QKeyEvent *ke)
{
- ListWidget* list_widget = m_playlist->listWidget();
- m_playlist->listWidget()->scroll (0);
+ m_listWidget->scroll (0);
if(ke->modifiers() & Qt::ShiftModifier)
- for(int i = 0; i <= list_widget->anchorRow(); ++i)
- m_playlist->listWidget()->model()->setSelected (i,true);
+ {
+ for(int i = 0; i <= m_listWidget->anchorRow(); ++i)
+ m_listWidget->model()->setSelected (i, true);
+ }
}
void KeyboardManager::keyEnd(QKeyEvent *ke)
{
- ListWidget* list_widget = m_playlist->listWidget();
- int page_size = list_widget->visibleRows();
- int scroll_to = m_playlist->listWidget()->model()->count() - page_size;
+ int page_size = m_listWidget->visibleRows();
+ int scroll_to = m_listWidget->model()->count() - page_size;
if(scroll_to >= 0)
- list_widget->scroll(scroll_to);
+ m_listWidget->scroll(scroll_to);
if(ke->modifiers() & Qt::ShiftModifier)
- for(int i = list_widget->anchorRow(); i < m_playlist->listWidget()->model()->count(); ++i)
- m_playlist->listWidget()->model()->setSelected (i,true);
+ {
+ for(int i = m_listWidget->anchorRow(); i < m_listWidget->model()->count(); ++i)
+ m_listWidget->model()->setSelected (i, true);
+ }
}
diff --git a/src/plugins/Ui/skinned/keyboardmanager.h b/src/plugins/Ui/skinned/keyboardmanager.h
index 053c9dbd9..c9ccc13b2 100644
--- a/src/plugins/Ui/skinned/keyboardmanager.h
+++ b/src/plugins/Ui/skinned/keyboardmanager.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2009 by Ilya Kotov *
+ * Copyright (C) 2006-2013 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -22,7 +22,7 @@
#ifndef _KEYBOARDMANAGER_H
#define _KEYBOARDMANAGER_H
-class PlayList;
+class ListWidget;
class QKeyEvent;
@@ -37,16 +37,16 @@ class KeyboardManager
/*!
* Constructor. Takes \b PlayList object as an argument.
*/
- KeyboardManager (PlayList*);
+ KeyboardManager (ListWidget *l);
/*!
- * Handles key press events from \b PlayList object. Returns \b true
+ * Handles key press events from \b PlayList object. Returns \b true
* if the key was handled, otherwise \b false.
*/
bool handleKeyPress (QKeyEvent*);
/*!
- * Handles key release events from \b PlayList object. Returns \b true
+ * Handles key release events from \b PlayList object. Returns \b true
* if the key was handled, otherwise \b false.
*/
bool handleKeyRelease (QKeyEvent*);
@@ -60,7 +60,7 @@ class KeyboardManager
void keyHome(QKeyEvent* ke);
void keyEnd(QKeyEvent* ke);
private:
- PlayList* m_playlist;
+ ListWidget* m_listWidget;
};
#endif
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp
index ea0d72d9a..6ec06f217 100644
--- a/src/plugins/Ui/skinned/listwidget.cpp
+++ b/src/plugins/Ui/skinned/listwidget.cpp
@@ -112,6 +112,38 @@ void ListWidget::readSettings()
m_popupWidget = new PlayListPopup::PopupWidget(this);
}
+int ListWidget::visibleRows() const
+{
+ return m_rows;
+}
+
+int ListWidget::firstVisibleRow() const
+{
+ return m_first;
+}
+
+int ListWidget::anchorRow() const
+{
+ return m_anchor_row;
+}
+
+void ListWidget::setAnchorRow(int r)
+{
+ m_anchor_row = r;
+ update();
+}
+
+QMenu *ListWidget::menu()
+{
+ return m_menu;
+}
+
+PlayListModel *ListWidget::model()
+{
+ Q_ASSERT(m_model);
+ return m_model;
+}
+
void ListWidget::loadColors()
{
m_normal.setNamedColor(m_skin->getPLValue("normal"));
diff --git a/src/plugins/Ui/skinned/listwidget.h b/src/plugins/Ui/skinned/listwidget.h
index c70d763ca..75dd8a4e9 100644
--- a/src/plugins/Ui/skinned/listwidget.h
+++ b/src/plugins/Ui/skinned/listwidget.h
@@ -54,41 +54,16 @@ public:
/*!
* Returns count of currently visible rows.
*/
- int visibleRows()const
- {
- return m_rows;
- }
-
+ int visibleRows() const;
/*!
* Returns number of first visible row.
*/
- int firstVisibleRow()const
- {
- return m_first;
- }
-
- int anchorRow() const
- {
- return m_anchor_row;
- }
-
- void setAnchorRow(int r)
- {
- m_anchor_row = r;
- update();
- }
-
- QMenu *menu()
- {
- return m_menu;
- }
-
- PlayListModel *model()
- {
- Q_ASSERT(m_model);
- return m_model;
- }
+ int firstVisibleRow() const;
+ int anchorRow() const;
+ void setAnchorRow(int r);
+ QMenu *menu();
+ PlayListModel *model();
public slots:
void updateList();
@@ -96,7 +71,6 @@ public slots:
void recenterCurrent();
void setModel(PlayListModel *selected, PlayListModel *previous = 0);
-
signals:
void selectionChanged();
void positionChanged(int, int); //current position, maximum value
diff --git a/src/plugins/Ui/skinned/playlist.cpp b/src/plugins/Ui/skinned/playlist.cpp
index c81dcf2e3..09d81151f 100644
--- a/src/plugins/Ui/skinned/playlist.cpp
+++ b/src/plugins/Ui/skinned/playlist.cpp
@@ -80,7 +80,7 @@ PlayList::PlayList (PlayListManager *manager, QWidget *parent)
m_length_totalLength->setAlignment (Qt::AlignLeft);
m_current_time = new SymbolDisplay (this,6);
- m_keyboardManager = new KeyboardManager (this);
+ m_keyboardManager = new KeyboardManager (m_listWidget);
connect (m_listWidget, SIGNAL (selectionChanged()), parent, SLOT (replay()));