mirror of
https://github.com/AxioDL/amuse.git
synced 2025-12-09 05:27:57 +00:00
Implement amuse playback
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <QStatusBar>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
|
||||
class StatusBarFocus;
|
||||
|
||||
@@ -10,15 +11,35 @@ class StatusBarWidget : public QStatusBar
|
||||
{
|
||||
friend class StatusBarFocus;
|
||||
Q_OBJECT
|
||||
QLabel* m_normalMessage;
|
||||
QLabel m_normalMessage;
|
||||
QPushButton m_killButton;
|
||||
QLabel m_voiceCount;
|
||||
int m_cachedVoiceCount = -1;
|
||||
StatusBarFocus* m_curFocus = nullptr;
|
||||
void setKillVisible(bool vis) { m_killButton.setVisible(vis); m_voiceCount.setVisible(vis); }
|
||||
public:
|
||||
explicit StatusBarWidget(QWidget* parent = Q_NULLPTR) : QStatusBar(parent)
|
||||
{
|
||||
m_normalMessage = new QLabel(this);
|
||||
addWidget(m_normalMessage);
|
||||
addWidget(&m_normalMessage);
|
||||
m_killButton.setIcon(QIcon(QStringLiteral(":/icons/IconKill.svg")));
|
||||
m_killButton.setVisible(false);
|
||||
m_killButton.setToolTip(tr("Immediately kill active voices"));
|
||||
m_voiceCount.setVisible(false);
|
||||
addPermanentWidget(&m_voiceCount);
|
||||
addPermanentWidget(&m_killButton);
|
||||
}
|
||||
void setNormalMessage(const QString& message) { m_normalMessage->setText(message); }
|
||||
void setNormalMessage(const QString& message) { m_normalMessage.setText(message); }
|
||||
void setVoiceCount(int voices)
|
||||
{
|
||||
if (voices != m_cachedVoiceCount)
|
||||
{
|
||||
m_voiceCount.setText(QString::number(voices));
|
||||
m_cachedVoiceCount = voices;
|
||||
setKillVisible(voices != 0);
|
||||
}
|
||||
}
|
||||
void connectKillClicked(const QObject* receiver, const char* method)
|
||||
{ connect(&m_killButton, SIGNAL(clicked(bool)), receiver, method); }
|
||||
};
|
||||
|
||||
class StatusBarFocus : public QObject
|
||||
|
||||
Reference in New Issue
Block a user