Skip to content

Commit f70b475

Browse files
authored
Merge pull request #47 from scratchcpp/mute
Add mute option
2 parents 1ac791d + 1bc8c0b commit f70b475

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed

res/icons/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ qt_add_resources(
1212
green_flag.svg
1313
stop.svg
1414
turbo.svg
15+
mute.svg
1516
)

res/icons/mute.svg

Lines changed: 9 additions & 0 deletions
Loading

src/app/appmenubar.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ AppMenuBar::AppMenuBar(QObject *parent) :
5555
m_editMenu->addItem(m_fps60ModeItem);
5656
connect(m_fps60ModeItem, &MenuItemModel::checkedChanged, this, &AppMenuBar::fps60ModeChanged);
5757

58+
// Edit -> Mute
59+
m_muteItem = new MenuItemModel(m_editMenu);
60+
m_muteItem->setText(tr("Mute"));
61+
m_muteItem->setCheckable(true);
62+
m_muteItem->setChecked(false);
63+
m_editMenu->addItem(m_muteItem);
64+
connect(m_muteItem, &MenuItemModel::checkedChanged, this, &AppMenuBar::muteChanged);
65+
5866
// Edit -> Project settings
5967
m_projectSettingsItem = new MenuItemModel(m_editMenu);
6068
m_projectSettingsItem->setText(tr("Project settings..."));
@@ -133,3 +141,17 @@ void AppMenuBar::setFps60Mode(bool newFps60Mode)
133141
m_fps60ModeItem->setChecked(newFps60Mode);
134142
emit fps60ModeChanged();
135143
}
144+
145+
bool AppMenuBar::mute() const
146+
{
147+
return m_muteItem->checked();
148+
}
149+
150+
void AppMenuBar::setMute(bool newMute)
151+
{
152+
if (m_muteItem->checked() == newMute)
153+
return;
154+
155+
m_muteItem->setChecked(newMute);
156+
emit muteChanged();
157+
}

src/app/appmenubar.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class AppMenuBar : public QObject
2929
Q_PROPERTY(uicomponents::MenuBarModel *model READ model NOTIFY modelChanged)
3030
Q_PROPERTY(bool turboMode READ turboMode WRITE setTurboMode NOTIFY turboModeChanged)
3131
Q_PROPERTY(bool fps60Mode READ fps60Mode WRITE setFps60Mode NOTIFY fps60ModeChanged)
32+
Q_PROPERTY(bool mute READ mute WRITE setMute NOTIFY muteChanged)
3233

3334
public:
3435
explicit AppMenuBar(QObject *parent = nullptr);
@@ -41,11 +42,15 @@ class AppMenuBar : public QObject
4142
bool fps60Mode() const;
4243
void setFps60Mode(bool newFps60Mode);
4344

45+
bool mute() const;
46+
void setMute(bool newMute);
47+
4448
signals:
4549
void modelChanged();
4650
void fileOpened(const QString &fileName);
4751
void turboModeChanged();
4852
void fps60ModeChanged();
53+
void muteChanged();
4954
void projectSettingsTriggered();
5055
void aboutAppTriggered();
5156

@@ -65,6 +70,7 @@ class AppMenuBar : public QObject
6570
uicomponents::MenuModel *m_editMenu = nullptr;
6671
uicomponents::MenuItemModel *m_turboModeItem = nullptr;
6772
uicomponents::MenuItemModel *m_fps60ModeItem = nullptr;
73+
uicomponents::MenuItemModel *m_muteItem = nullptr;
6874
uicomponents::MenuItemModel *m_projectSettingsItem = nullptr;
6975

7076
uicomponents::MenuModel *m_helpMenu = nullptr;

src/app/qml/main.qml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ ApplicationWindow {
7979
AppMenuBar.fps60Mode = !AppMenuBar.fps60Mode
8080
break;
8181

82+
case Qt.ControlModifier:
83+
AppMenuBar.mute = !AppMenuBar.mute
84+
break;
85+
8286
default:
8387
player.stop()
8488
player.start()
@@ -96,6 +100,13 @@ ApplicationWindow {
96100
}
97101
}
98102

103+
IconLabel {
104+
icon.name: "mute"
105+
icon.color: "transparent"
106+
text: ""
107+
visible: AppMenuBar.mute
108+
}
109+
99110
IconLabel {
100111
icon.name: "turbo"
101112
icon.color: "transparent"
@@ -141,6 +152,7 @@ ApplicationWindow {
141152
activeFocusOnTab: true
142153
focus: true
143154
turboMode: AppMenuBar.turboMode
155+
mute: AppMenuBar.mute
144156
}
145157
}
146158
}

0 commit comments

Comments
 (0)