aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/playlistheader.cpp39
-rw-r--r--src/plugins/Ui/skinned/playlistheader.h3
-rw-r--r--src/qmmpui/columnmanager.cpp5
3 files changed, 43 insertions, 4 deletions
diff --git a/src/plugins/Ui/skinned/playlistheader.cpp b/src/plugins/Ui/skinned/playlistheader.cpp
index 6f4c88711..e4320cc7a 100644
--- a/src/plugins/Ui/skinned/playlistheader.cpp
+++ b/src/plugins/Ui/skinned/playlistheader.cpp
@@ -48,10 +48,10 @@ PlayListHeader::PlayListHeader(QWidget *parent) :
m_manager = QmmpUiSettings::instance()->columnManager();
m_skin = Skin::instance();
m_menu = new QMenu(this);
- m_menu->addAction(QIcon::fromTheme("list-add"), tr("Add column"));
- m_menu->addAction(QIcon::fromTheme("configure"), tr("Edit column"));
+ m_menu->addAction(QIcon::fromTheme("list-add"), tr("Add column"), this, SLOT(addColumn()));
+ m_menu->addAction(QIcon::fromTheme("configure"), tr("Edit column"), this, SLOT(editColumn()));
m_menu->addSeparator();
- m_menu->addAction(QIcon::fromTheme("list-remove"), tr("Remove column"));
+ m_menu->addAction(QIcon::fromTheme("list-remove"), tr("Remove column"), this, SLOT(removeColumn()));
connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin()));
loadColors();
@@ -126,6 +126,39 @@ void PlayListHeader::updateSkin()
update();
}
+void PlayListHeader::addColumn()
+{
+ int column = findColumn(m_pressed_pos);
+ if(column < 0 && m_pressed_pos.x() > m_rects.last().right())
+ column = m_manager->count();
+ else if(column < 0 && m_pressed_pos.x() < m_rects.first().x())
+ column = 0;
+
+ if(column < 0)
+ return;
+
+ m_manager->insert(column, "Year", "%y");
+
+}
+
+void PlayListHeader::editColumn()
+{
+ int column = findColumn(m_pressed_pos);
+ if(column >= 0)
+ {
+ m_manager->execEditor(0);
+ }
+}
+
+void PlayListHeader::removeColumn()
+{
+ int column = findColumn(m_pressed_pos);
+ if(column >= 0)
+ {
+ m_manager->remove(column);
+ }
+}
+
void PlayListHeader::mousePressEvent(QMouseEvent *e)
{
if(e->button() == Qt::LeftButton)
diff --git a/src/plugins/Ui/skinned/playlistheader.h b/src/plugins/Ui/skinned/playlistheader.h
index ef4b5298a..3282e3b98 100644
--- a/src/plugins/Ui/skinned/playlistheader.h
+++ b/src/plugins/Ui/skinned/playlistheader.h
@@ -47,6 +47,9 @@ public:
private slots:
void updateSkin();
+ void addColumn();
+ void editColumn();
+ void removeColumn();
private:
void mousePressEvent(QMouseEvent *e);
diff --git a/src/qmmpui/columnmanager.cpp b/src/qmmpui/columnmanager.cpp
index 2699bc3f5..c9cdd3491 100644
--- a/src/qmmpui/columnmanager.cpp
+++ b/src/qmmpui/columnmanager.cpp
@@ -19,6 +19,7 @@
***************************************************************************/
#include <QSettings>
+#include <QApplication>
#include <qmmp/qmmp.h>
#include "columnmanager.h"
@@ -62,6 +63,7 @@ void ColumnManager::insert(int index, const QString &name, const QString &patter
col.name = name;
col.pattern = pattern;
col.titleFormatter = new MetaDataFormatter(pattern);
+ col.size = 50;
m_columns.insert(index, col);
sync();
emit inserted(index);
@@ -103,7 +105,8 @@ void ColumnManager::move(int from, int to)
void ColumnManager::execEditor(int index, QWidget *parent)
{
-
+ if(!parent)
+ parent = qApp->activeWindow();
}
int ColumnManager::count()