Skip to content

Commit 445c2e2

Browse files
committed
Add 60 FPS option
1 parent efd4c3f commit 445c2e2

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

src/app/appmenubar.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ AppMenuBar::AppMenuBar(QObject *parent) :
4646
m_turboModeItem->setChecked(false);
4747
m_editMenu->addItem(m_turboModeItem);
4848
connect(m_turboModeItem, &MenuItemModel::checkedChanged, this, &AppMenuBar::turboModeChanged);
49+
50+
// Edit -> 60 FPS mode
51+
m_fps60ModeItem = new MenuItemModel(m_editMenu);
52+
m_fps60ModeItem->setText(tr("60 FPS Mode"));
53+
m_fps60ModeItem->setCheckable(true);
54+
m_fps60ModeItem->setChecked(false);
55+
m_editMenu->addItem(m_fps60ModeItem);
56+
connect(m_fps60ModeItem, &MenuItemModel::checkedChanged, this, &AppMenuBar::fps60ModeChanged);
4957
}
5058

5159
MenuBarModel *AppMenuBar::model() const
@@ -94,3 +102,17 @@ void AppMenuBar::setTurboMode(bool newTurboMode)
94102

95103
m_turboModeItem->setChecked(newTurboMode);
96104
}
105+
106+
bool AppMenuBar::fps60Mode() const
107+
{
108+
return m_fps60ModeItem->checked();
109+
}
110+
111+
void AppMenuBar::setFps60Mode(bool newFps60Mode)
112+
{
113+
if (m_fps60ModeItem->checked() == newFps60Mode)
114+
return;
115+
116+
m_fps60ModeItem->setChecked(newFps60Mode);
117+
emit fps60ModeChanged();
118+
}

src/app/appmenubar.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class AppMenuBar : public QObject
2828
QML_SINGLETON
2929
Q_PROPERTY(uicomponents::MenuBarModel *model READ model NOTIFY modelChanged)
3030
Q_PROPERTY(bool turboMode READ turboMode WRITE setTurboMode NOTIFY turboModeChanged)
31+
Q_PROPERTY(bool fps60Mode READ fps60Mode WRITE setFps60Mode NOTIFY fps60ModeChanged)
3132

3233
public:
3334
explicit AppMenuBar(QObject *parent = nullptr);
@@ -37,10 +38,14 @@ class AppMenuBar : public QObject
3738
bool turboMode() const;
3839
void setTurboMode(bool newTurboMode);
3940

41+
bool fps60Mode() const;
42+
void setFps60Mode(bool newFps60Mode);
43+
4044
signals:
4145
void modelChanged();
4246
void fileOpened(const QString &fileName);
4347
void turboModeChanged();
48+
void fps60ModeChanged();
4449

4550
private:
4651
void openFile();
@@ -57,6 +62,7 @@ class AppMenuBar : public QObject
5762

5863
uicomponents::MenuModel *m_editMenu = nullptr;
5964
uicomponents::MenuItemModel *m_turboModeItem = nullptr;
65+
uicomponents::MenuItemModel *m_fps60ModeItem = nullptr;
6066
};
6167

6268
} // namespace scratchcpp

src/app/main.qml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,14 @@ ApplicationWindow {
7979
}
8080
}
8181

82+
Label {
83+
text: qsTr("%1 FPS").arg(player.fps)
84+
color: Qt.rgba(1, 0.67, 0.1, 1)
85+
visible: player.fps !== 30
86+
font.pointSize: 8
87+
font.bold: true
88+
}
89+
8290
TextField {
8391
id: urlField
8492
Layout.fillWidth: true
@@ -101,6 +109,7 @@ ApplicationWindow {
101109
focus: true
102110
spriteFencing: false
103111
turboMode: AppMenuBar.turboMode
112+
fps: AppMenuBar.fps60Mode ? 60 : 30
104113
stageRect.border.color: Material.theme == Material.Dark ? Qt.rgba(1, 1, 1, 0.15) : Qt.rgba(0, 0, 0, 0.15)
105114
stageRect.border.width: 5
106115
}

0 commit comments

Comments
 (0)