make playlist show playtime again
This commit is contained in:
parent
67dade4e4b
commit
47d8e323ab
11 changed files with 86 additions and 96 deletions
|
@ -40,8 +40,22 @@ EqualizerWindow::EqualizerWindow (QWidget *parent) : QMainWindow (parent)
|
|||
setFixedSize (275, 116);
|
||||
}
|
||||
|
||||
EqualizerWindow::~EqualizerWindow (void)
|
||||
void
|
||||
EqualizerWindow::hideEvent (QHideEvent *event)
|
||||
{
|
||||
QSettings s;
|
||||
s.setValue ("equalizer/visible", false);
|
||||
|
||||
emit visibilityChanged (false);
|
||||
}
|
||||
|
||||
void
|
||||
EqualizerWindow::showEvent (QShowEvent *event)
|
||||
{
|
||||
QSettings s;
|
||||
s.setValue ("equalizer/visible", true);
|
||||
|
||||
emit visibilityChanged (true);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
class QWidget;
|
||||
class QMouseEvent;
|
||||
class QMoveEvent;
|
||||
class QHideEvent;
|
||||
class QShowEvent;
|
||||
|
||||
class MainWindow;
|
||||
class EqualizerWidget;
|
||||
|
@ -30,13 +32,21 @@ class EqualizerWindow : public QMainWindow
|
|||
Q_OBJECT
|
||||
public:
|
||||
EqualizerWindow(QWidget *parent);
|
||||
~EqualizerWindow();
|
||||
~EqualizerWindow() {}
|
||||
|
||||
signals:
|
||||
void visibilityChanged(bool visible);
|
||||
|
||||
public slots:
|
||||
void setEnabled (void);
|
||||
|
||||
protected:
|
||||
void hideEvent (QHideEvent *event);
|
||||
void showEvent (QShowEvent *event);
|
||||
void mouseMoveEvent(QMouseEvent *);
|
||||
void mousePressEvent(QMouseEvent *);
|
||||
void moveEvent(QMoveEvent *event);
|
||||
|
||||
public slots:
|
||||
void setEnabled (void);
|
||||
|
||||
private:
|
||||
MainWindow *m_mw;
|
||||
|
|
20
src/main.cpp
20
src/main.cpp
|
@ -16,10 +16,7 @@
|
|||
#include "XMMSHandler.h"
|
||||
|
||||
#include "mainwindow.h"
|
||||
// #include "playlistwindow.h"
|
||||
#include "equalizerwindow.h"
|
||||
#include "Skin.h"
|
||||
//TODO: change to xclient.h sometime later
|
||||
|
||||
#ifdef HAVE_SERVERBROWSER
|
||||
#include "Serverbrowser.h"
|
||||
|
@ -50,8 +47,6 @@ main (int argc, char **argv)
|
|||
|
||||
MainWindow *mw = new MainWindow (NULL);
|
||||
|
||||
EqualizerWindow *eqwin = new EqualizerWindow (mw);
|
||||
|
||||
/*
|
||||
* Now that everything is initialized
|
||||
* open the skin and send the
|
||||
|
@ -65,21 +60,6 @@ main (int argc, char **argv)
|
|||
Skin::getInstance()->setSkin (settings.value("skin/path").toString ());
|
||||
|
||||
mw->show ();
|
||||
mw->setEQ (eqwin);
|
||||
|
||||
if (!settings.contains ("equalizer/pos"))
|
||||
settings.setValue ("equalizer/pos", QPoint (mw->pos().x(),
|
||||
mw->pos().y()+mw->size().height()));
|
||||
eqwin->move (settings.value("equalizer/pos").toPoint ());
|
||||
|
||||
if (!settings.contains ("equalizer/hidden"))
|
||||
settings.setValue ("equalizer/hidden", true);
|
||||
|
||||
if (settings.value("equalizer/hidden").toBool ())
|
||||
eqwin->hide ();
|
||||
else
|
||||
eqwin->show ();
|
||||
|
||||
|
||||
#ifdef HAVE_SERVERBROWSER
|
||||
ServerBrowserWindow *browser = new ServerBrowserWindow (mw);
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include "PlayStatus.h"
|
||||
#include "VolumeSlider.h"
|
||||
#include "playlistwindow.h"
|
||||
#include "equalizerwindow.h"
|
||||
#include "clutterbar.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
|
@ -216,6 +217,16 @@ MainDisplay::SetupToggleButtons (void)
|
|||
{
|
||||
QSettings s;
|
||||
|
||||
m_eq = new ToggleButton (this, Skin::EQ_ON_0, Skin::EQ_ON_1,
|
||||
Skin::EQ_OFF_0, Skin::EQ_OFF_1);
|
||||
m_eq->move(219, 58);
|
||||
m_eq->setChecked (m_mw->getEQ ()->isVisible ());
|
||||
connect (m_eq, SIGNAL (toggled (bool)),
|
||||
m_mw->getEQ (), SLOT (setVisible (bool)));
|
||||
connect (m_mw->getEQ (), SIGNAL (visibilityChanged (bool)),
|
||||
m_eq, SLOT (setChecked (bool)));
|
||||
m_eq->setEnabled(false); // FIXME: Disabled for now, equalizer doesn't work yet
|
||||
|
||||
m_pls = new ToggleButton (this, Skin::PLS_ON_0, Skin::PLS_ON_1,
|
||||
Skin::PLS_OFF_0, Skin::PLS_OFF_1);
|
||||
m_pls->move(242, 58);
|
||||
|
@ -226,15 +237,6 @@ MainDisplay::SetupToggleButtons (void)
|
|||
m_pls, SLOT (setChecked (bool)));
|
||||
|
||||
|
||||
m_eq = new ToggleButton (this, Skin::EQ_ON_0, Skin::EQ_ON_1,
|
||||
Skin::EQ_OFF_0, Skin::EQ_OFF_1);
|
||||
m_eq->move(219, 58);
|
||||
if (!s.value ("equalizer/hidden").toBool ())
|
||||
m_eq->toggle ();
|
||||
m_eq->setEnabled(false); // FIXME: Disabled for now, equalizer doesn't work yet
|
||||
|
||||
connect (m_eq, SIGNAL(clicked()), this, SLOT(toggleEQ()));
|
||||
|
||||
m_shuffle = new ToggleButton (this, Skin::SHUFFLE_ON_0, Skin::SHUFFLE_ON_1,
|
||||
Skin::SHUFFLE_OFF_0, Skin::SHUFFLE_OFF_1);
|
||||
m_shuffle->move(164, 89);
|
||||
|
@ -243,14 +245,9 @@ MainDisplay::SetupToggleButtons (void)
|
|||
m_repeat = new ToggleButton (this, Skin::REPEAT_ON_0, Skin::REPEAT_ON_1,
|
||||
Skin::REPEAT_OFF_0, Skin::REPEAT_OFF_1);
|
||||
m_repeat->move(210, 89);
|
||||
m_repeat->setEnabled(false); // FIXME: Disabled button for now, not yet implemented
|
||||
// m_repeat->setEnabled(false); // FIXME: Disabled button for now, not yet implemented
|
||||
}
|
||||
|
||||
void
|
||||
MainDisplay::toggleEQ (void)
|
||||
{
|
||||
m_mw->toggleEQ(false);
|
||||
}
|
||||
|
||||
void
|
||||
MainDisplay::toggleTime (void)
|
||||
|
@ -290,6 +287,3 @@ MainDisplay::SetupPushButtons (void)
|
|||
|
||||
}
|
||||
|
||||
MainDisplay::~MainDisplay (void)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -31,19 +31,6 @@ class MainDisplay;
|
|||
#include <QPalette>
|
||||
|
||||
#include "Display.h"
|
||||
/*
|
||||
#include "TitleBar.h"
|
||||
#include "Button.h"
|
||||
#include "TextBar.h"
|
||||
#include "NumberDisplay.h"
|
||||
#include "TimeDisplay.h"
|
||||
#include "SmallNumberDisplay.h"
|
||||
#include "StereoMono.h"
|
||||
#include "Slider.h"
|
||||
#include "PlayStatus.h"
|
||||
#include "VolumeSlider.h"
|
||||
#include "MainWindow.h"
|
||||
*/
|
||||
|
||||
class Button;
|
||||
class ToggleButton;
|
||||
|
@ -57,14 +44,12 @@ class PlayStatus;
|
|||
class MainWindow;
|
||||
class ClutterBar;
|
||||
|
||||
class MainDisplay : public SkinDisplay
|
||||
class MainDisplay : public SkinDisplay
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainDisplay (QWidget *parent);
|
||||
~MainDisplay ();
|
||||
ToggleButton *GetPls() {return m_pls;};
|
||||
ToggleButton *GetEq() {return m_eq;};
|
||||
~MainDisplay () {}
|
||||
|
||||
TextScroller *m_text;
|
||||
TimeDisplay *m_time;
|
||||
|
@ -76,7 +61,7 @@ class MainDisplay : public SkinDisplay
|
|||
PosBar *m_posbar;
|
||||
Slider *m_vslider;
|
||||
Slider *m_bslider;
|
||||
|
||||
|
||||
PlayStatus *m_playstatus;
|
||||
MainWindow *getMW(void) { return m_mw; }
|
||||
|
||||
|
@ -87,7 +72,6 @@ class MainDisplay : public SkinDisplay
|
|||
void setStatus (Xmms::Playback::Status status);
|
||||
void setPlaytime (uint32_t time);
|
||||
void setMediainfo (const Xmms::PropDict &);
|
||||
void toggleEQ(void);
|
||||
void toggleTime(void);
|
||||
void updateVolume (uint volume);
|
||||
void setVolume (int volume);
|
||||
|
|
|
@ -48,20 +48,30 @@ MainWindow::MainWindow (QWidget *parent) : QMainWindow (parent)
|
|||
setShaded (!isShaded ());
|
||||
|
||||
/*
|
||||
* Setup PlaylistWindow
|
||||
* initialize EqualizerWindow
|
||||
*/
|
||||
m_equalizer = new EqualizerWindow (this);
|
||||
if (!s.contains ("equalizer/pos")) {
|
||||
s.setValue ("equalizer/pos", QPoint (pos ().x (),
|
||||
pos ().y ()+size ().height ()));
|
||||
}
|
||||
m_equalizer->move (s.value ("equalizer/pos").toPoint ());
|
||||
m_equalizer->setVisible (s.value ("equalizer/visible", false).toBool ());
|
||||
|
||||
/*
|
||||
* initialtize PlaylistWindow
|
||||
*/
|
||||
m_playlistwin = new PlaylistWindow (this);
|
||||
if (!s.contains ("playlist/pos")) {
|
||||
s.setValue ("playlist/pos", QPoint (pos().x(),
|
||||
pos().y()+size().height()));
|
||||
s.setValue ("playlist/pos", QPoint (pos ().x (),
|
||||
pos ().y ()+size ().height ()));
|
||||
}
|
||||
m_playlistwin->move (s.value("playlist/pos").toPoint ());
|
||||
m_playlistwin->move (s.value ("playlist/pos").toPoint ());
|
||||
// FIXME: this should be done in PlaylistWindow.
|
||||
// But promoe segfaults if done so
|
||||
m_playlistwin->setVisible (s.value("playlist/visible",
|
||||
false).toBool ());
|
||||
m_playlistwin->setVisible (s.value("playlist/visible", false).toBool ());
|
||||
|
||||
/*
|
||||
/*
|
||||
* The MainDisplay is the mainwindow non-shaded mode
|
||||
*/
|
||||
m_display = new MainDisplay (this);
|
||||
|
@ -121,22 +131,3 @@ MainWindow::moveEvent (QMoveEvent *event)
|
|||
s.setValue ("mainwindow/pos", pos ());
|
||||
}
|
||||
|
||||
void
|
||||
MainWindow::toggleEQ (bool UpdateButton)
|
||||
{
|
||||
QSettings s;
|
||||
|
||||
if(UpdateButton)
|
||||
{
|
||||
getMD()->GetEq()->toggle();
|
||||
}
|
||||
|
||||
if (s.value ("equalizer/hidden").toBool ()) {
|
||||
m_equalizer->move (s.value("equalizer/pos").toPoint ());
|
||||
m_equalizer->show ();
|
||||
s.setValue ("equalizer/hidden", false);
|
||||
} else {
|
||||
m_equalizer->hide ();
|
||||
s.setValue ("equalizer/hidden", true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,13 +36,12 @@ class MainWindow : public QMainWindow
|
|||
MainDisplay *getMD () { return m_display; }
|
||||
ShadedDisplay *getSD () { return m_shaded; }
|
||||
PlaylistWindow *getPL () { return m_playlistwin; }
|
||||
EqualizerWindow *getEQ () { return m_equalizer; }
|
||||
|
||||
void setEQ (EqualizerWindow *e) { m_equalizer = e; }
|
||||
|
||||
void raisePL (void);
|
||||
void moveEvent (QMoveEvent *event);
|
||||
|
||||
void toggleEQ (bool UpdateButton);
|
||||
bool isTimemodeReverse(void) { QSettings s; return s.value("MainWindow/timemodereverse").toBool(); }
|
||||
void setTimemodeReverse(bool b) { QSettings s; return s.setValue("MainWindow/timemodereverse",b); }
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <QPaintEvent>
|
||||
#include <QPalette>
|
||||
#include <QSettings>
|
||||
#include <QFontMetrics>
|
||||
|
||||
#include <QSizePolicy>
|
||||
|
||||
|
@ -60,17 +61,33 @@ PlaylistDelegate::paint( QPainter *painter, const QStyleOptionViewItem& option,
|
|||
/* generate string */
|
||||
//TODO Add album and playtime
|
||||
QVariant tmp;
|
||||
QString s = QString ("%1. ").arg (index.row () + 1);
|
||||
QModelIndex m;
|
||||
QRect r = option.rect;
|
||||
QString s;
|
||||
// Get playtime and if it exists, draw it
|
||||
m = index.sibling (index.row (), 2);
|
||||
tmp = m.data ();
|
||||
if (tmp.isValid ()) {
|
||||
int seconds = tmp.toInt () / 1000;
|
||||
s = QString ("%1:%2").arg (seconds / 60, 2)
|
||||
.arg (seconds % 60, 2, 10, QLatin1Char ('0'));
|
||||
painter->drawText (r, Qt::AlignVCenter | Qt::AlignRight, s);
|
||||
// now adjust der paintrectangle for the remaining text
|
||||
r.setWidth (r.width () - option.fontMetrics.width (s));
|
||||
}
|
||||
|
||||
// now build String for Artis Title and Position
|
||||
s = QString ("%1. ").arg (index.row () + 1);
|
||||
tmp = index.data ();
|
||||
if (tmp.isValid ())
|
||||
s.append (tmp.toString ()).append (" - ");
|
||||
QModelIndex m = index.sibling (index.row (), 1);
|
||||
m = index.sibling (index.row (), 1);
|
||||
tmp = m.data ();
|
||||
if (tmp.isValid ())
|
||||
s.append (tmp.toString ());
|
||||
s = option.fontMetrics.elidedText(s, Qt::ElideRight, option.rect.width());
|
||||
s = option.fontMetrics.elidedText(s, Qt::ElideRight, r.width());
|
||||
|
||||
painter->drawText (option.rect, Qt::AlignVCenter, s);
|
||||
painter->drawText (r, Qt::AlignVCenter, s);
|
||||
painter->restore ();
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ class PlaylistWindow : public QMainWindow {
|
|||
public slots:
|
||||
void switchDisplay (void);
|
||||
|
||||
protected slots:
|
||||
protected:
|
||||
void hideEvent (QHideEvent *event);
|
||||
void showEvent (QShowEvent *event);
|
||||
void mousePressEvent (QMouseEvent *event);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue