aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Visual/projectm/projectmwidget.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-02-16 16:23:39 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2014-02-16 16:23:39 +0000
commit283814627de1f7e755c89b6bf1caa75589a05d16 (patch)
tree640c34c16c2f120ab04da8b4156c0f45d4493f0a /src/plugins/Visual/projectm/projectmwidget.cpp
parent38a7f395a5598e1207b0a411bdc04638bb022f36 (diff)
downloadqmmp-283814627de1f7e755c89b6bf1caa75589a05d16.tar.gz
qmmp-283814627de1f7e755c89b6bf1caa75589a05d16.tar.bz2
qmmp-283814627de1f7e755c89b6bf1caa75589a05d16.zip
projectm: added menu
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4096 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Visual/projectm/projectmwidget.cpp')
-rw-r--r--src/plugins/Visual/projectm/projectmwidget.cpp46
1 files changed, 26 insertions, 20 deletions
diff --git a/src/plugins/Visual/projectm/projectmwidget.cpp b/src/plugins/Visual/projectm/projectmwidget.cpp
index eaceded3f..b43441f28 100644
--- a/src/plugins/Visual/projectm/projectmwidget.cpp
+++ b/src/plugins/Visual/projectm/projectmwidget.cpp
@@ -27,36 +27,35 @@
#include <QKeyEvent>
#include <QMenu>
#include <QApplication>
-#include <libprojectM/projectM.hpp>
+#include <QListWidget>
#include <qmmp/soundcore.h>
#include <qmmp/qmmp.h>
+#include "projectmwrapper.h"
#include "projectmwidget.h"
#ifndef PROJECTM_CONFIG
#define PROJECTM_CONFIG "/usr/share/projectM/config.inp"
#endif
-ProjectMWidget::ProjectMWidget(QWidget *parent)
+ProjectMWidget::ProjectMWidget(QListWidget *listWidget, QWidget *parent)
: QGLWidget(parent)
{
setMouseTracking(true);
+ m_listWidget = listWidget;
m_projectM = 0;
m_timer = new QTimer(this);
- connect(m_timer, SIGNAL(timeout()),SLOT(updateGL ()));
+ connect(m_timer, SIGNAL(timeout()),SLOT(updateGL()));
m_menu = new QMenu(this);
connect(SoundCore::instance(), SIGNAL(metaDataChanged()), SLOT(updateTitle()));
qDebug("ProjectMWidget: opengl version: %d.%d",
context()->format().majorVersion(),
context()->format().minorVersion());
+ createActions();
}
ProjectMWidget::~ProjectMWidget()
-{
- if (m_projectM)
- delete m_projectM;
- m_projectM = 0;
-}
+{}
projectM *ProjectMWidget::projectMInstance()
{
@@ -85,8 +84,6 @@ void ProjectMWidget::initializeGL()
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glLineStipple(2, 0xAAAA);
- ;
-
if (!m_projectM)
{
#ifdef Q_OS_WIN
@@ -107,9 +104,9 @@ void ProjectMWidget::initializeGL()
settings.easterEgg = 1.0;
settings.shuffleEnabled = false;
settings.softCutRatingsEnabled = false;
- m_projectM = new projectM(settings, projectM::FLAG_DISABLE_PLAYLIST_LOAD);
+ m_projectM = new ProjectMWrapper(settings, projectM::FLAG_DISABLE_PLAYLIST_LOAD, this);
#else
- m_projectM = new projectM(PROJECTM_CONFIG, projectM::FLAG_DISABLE_PLAYLIST_LOAD);
+ m_projectM = new ProjectMWrapper(PROJECTM_CONFIG, projectM::FLAG_DISABLE_PLAYLIST_LOAD, this);
#endif
QString presetPath = QString::fromLocal8Bit(m_projectM->settings().presetURL.c_str());
QDir presetDir(presetPath);
@@ -129,8 +126,11 @@ void ProjectMWidget::initializeGL()
#else
m_projectM->addPresetURL (info.absoluteFilePath().toStdString(), info.fileName().toStdString(), 1);
#endif
+ m_listWidget->addItem(info.fileName());
+ m_listWidget->setCurrentRow(0,QItemSelectionModel::Select);
}
- createActions();
+ connect(m_listWidget, SIGNAL(currentRowChanged(int)), m_projectM, SLOT(selectPreset(int)));
+ connect(m_projectM, SIGNAL(currentPresetChanged(int)), SLOT(setCurrentRow(int)));
updateTitle();
m_timer->start(0);
}
@@ -159,18 +159,19 @@ void ProjectMWidget::mousePressEvent (QMouseEvent *event)
void ProjectMWidget::createActions()
{
- m_menu->addAction(tr("&Help"), this, SLOT(showHelp()), tr("F1"));
- m_menu->addAction(tr("&Show Song Title"), this, SLOT(showTitle()), tr("F2"));
- m_menu->addAction(tr("&Show Preset Name"), this, SLOT(showPresetName()), tr("F3"));
+ m_menu->addAction(tr("&Help"), this, SLOT(showHelp()), tr("F1"))->setCheckable(true);
+ m_menu->addAction(tr("&Show Song Title"), this, SLOT(showTitle()), tr("F2"))->setCheckable(true);
+ m_menu->addAction(tr("&Show Preset Name"), this, SLOT(showPresetName()), tr("F3"))->setCheckable(true);
+ m_menu->addAction(tr("&Show Menu"), this, SIGNAL(showMenuToggled(bool)), tr("M"))->setCheckable(true);
m_menu->addSeparator();
m_menu->addAction(tr("&Next Preset"), this, SLOT(nextPreset()), tr("N"));
m_menu->addAction(tr("&Previous Preset"), this, SLOT(previousPreset()), tr("P"));
m_menu->addAction(tr("&Random Preset"), this, SLOT(randomPreset()), tr("R"));
- m_menu->addAction(tr("&Lock Preset"), this, SLOT(lockPreset()), tr("L"));
+ m_menu->addAction(tr("&Lock Preset"), this, SLOT(lockPreset(bool)), tr("L"))->setCheckable(true);
m_menu->addSeparator();
m_menu->addAction(tr("&Fullscreen"), this, SLOT(fullScreen()), tr("F"));
m_menu->addSeparator();
- parentWidget()->addActions(m_menu->actions());
+ addActions(m_menu->actions());
}
void ProjectMWidget::showHelp()
@@ -203,9 +204,9 @@ void ProjectMWidget::randomPreset()
m_projectM->key_handler(PROJECTM_KEYDOWN, PROJECTM_K_r, PROJECTM_KMOD_LSHIFT);
}
-void ProjectMWidget::lockPreset()
+void ProjectMWidget::lockPreset(bool lock)
{
- m_projectM->key_handler(PROJECTM_KEYDOWN, PROJECTM_K_l, PROJECTM_KMOD_LSHIFT);
+ m_projectM->setPresetLock(lock);
}
void ProjectMWidget::fullScreen()
@@ -219,3 +220,8 @@ void ProjectMWidget::updateTitle()
std::string title = SoundCore::instance()->metaData(Qmmp::TITLE).toLocal8Bit().constData();
m_projectM->projectM_setTitle(artist + " - " + title);
}
+
+void ProjectMWidget::setCurrentRow(int row)
+{
+ m_listWidget->setCurrentRow(row);
+}