[Scummvm-git-logs] scummvm branch-2-7-0-android -> 06c7b626e92f9bc0d4e968bcd802584aa163f607
sev-
noreply at scummvm.org
Sat Mar 25 16:31:37 UTC 2023
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
1a92e18ff3 OSYSTEM: Expose getDefaultLogFileName() via OSystem
4284fae0f0 GUI: Display scummvm.log path and add viewer
e4b08549d6 GUI: Expose Debug Level int the GUI (Misc tab), bump theme version
e082efddca GUI: Regenerate themes
06c7b626e9 GUI: Fix crash in TextViewer
Commit: 1a92e18ff38587b5d6144082d83a07525feb6216
https://github.com/scummvm/scummvm/commit/1a92e18ff38587b5d6144082d83a07525feb6216
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-03-25T17:21:14+01:00
Commit Message:
OSYSTEM: Expose getDefaultLogFileName() via OSystem
Changed paths:
backends/platform/sdl/sdl.h
common/system.h
diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h
index 263f82e5578..28ba76a09ed 100644
--- a/backends/platform/sdl/sdl.h
+++ b/backends/platform/sdl/sdl.h
@@ -158,7 +158,6 @@ protected:
virtual AudioCDManager *createAudioCDManager();
// Logging
- virtual Common::String getDefaultLogFileName() { return Common::String(); }
virtual Common::WriteStream *createLogFile();
Backends::Log::Log *_logger;
diff --git a/common/system.h b/common/system.h
index 75ec497bdd5..1b2498d444d 100644
--- a/common/system.h
+++ b/common/system.h
@@ -1636,6 +1636,14 @@ public:
*/
virtual Common::String getDefaultConfigFileName();
+ /**
+ * Get the default file name (or even path) where the scummvm.log
+ * will be saved.
+ *
+ * Note that not all ports can use this.
+ */
+ virtual Common::String getDefaultLogFileName() { return Common::String(); }
+
/**
* Register the default values for the settings the backend uses into the
* configuration manager.
Commit: 4284fae0f076b7f2f3cd14215fe6735d94aed483
https://github.com/scummvm/scummvm/commit/4284fae0f076b7f2f3cd14215fe6735d94aed483
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-03-25T17:21:29+01:00
Commit Message:
GUI: Display scummvm.log path and add viewer
Changed paths:
A gui/textviewer.cpp
A gui/textviewer.h
gui/module.mk
gui/options.cpp
gui/themes/common/highres_layout.stx
gui/themes/common/lowres_layout.stx
gui/themes/scummclassic/classic_layout.stx
gui/themes/scummclassic/classic_layout_lowres.stx
diff --git a/gui/module.mk b/gui/module.mk
index e7db62dd677..28a854cb0bb 100644
--- a/gui/module.mk
+++ b/gui/module.mk
@@ -22,6 +22,7 @@ MODULE_OBJS := \
saveload.o \
saveload-dialog.o \
shaderbrowser-dialog.o \
+ textviewer.o \
themebrowser.o \
ThemeEngine.o \
ThemeEval.o \
diff --git a/gui/options.cpp b/gui/options.cpp
index 081cfdf7f3d..eba91849c36 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -29,6 +29,7 @@
#include "gui/widgets/tab.h"
#include "gui/ThemeEval.h"
#include "gui/launcher.h"
+#include "gui/textviewer.h"
#include "backends/keymapper/keymapper.h"
#include "backends/keymapper/remap-widget.h"
@@ -106,6 +107,7 @@ enum {
kScalerPopUpCmd = 'scPU',
kFullscreenToggled = 'oful',
kRandomSeedClearCmd = 'rndc',
+ kViewLogCmd = 'vwlg',
};
enum {
@@ -2484,10 +2486,13 @@ void GlobalOptionsDialog::addPathsControls(GuiObject *boss, const Common::String
Common::U32String confPath = ConfMan.getCustomConfigFileName();
if (confPath.empty())
confPath = g_system->getDefaultConfigFileName();
- StaticTextWidget* configPathWidget = new StaticTextWidget(boss, prefix + "ConfigPath", _("ScummVM config path: ") + confPath, confPath);
+ StaticTextWidget *configPathWidget = new StaticTextWidget(boss, prefix + "ConfigPath", _("ScummVM config path: ") + confPath, confPath);
if (ConfMan.isKeyTemporary("config"))
configPathWidget->setFontColor(ThemeEngine::FontColor::kFontColorOverride);
+ Common::U32String logPath = g_system->getDefaultLogFileName();
+ new StaticTextWidget(boss, prefix + "LogPath", _("ScummVM log path: ") + logPath, logPath);
+ new ButtonWidget(boss, prefix + "ViewButton", _("View"), Common::U32String(), kViewLogCmd);
Common::U32String browserPath = _("<default>");
if (ConfMan.hasKey("browser_lastpath"))
@@ -3220,6 +3225,12 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3
_browserPath->setLabel(_("Last browser path: ") + _("<default>"));
break;
+ case kViewLogCmd: {
+ TextViewerDialog viewer(g_system->getDefaultLogFileName());
+ viewer.runModal();
+ g_gui.scheduleTopDialogRedraw();
+ break;
+ }
#ifdef USE_CLOUD
#ifdef USE_SDL_NET
case kRootPathClearCmd:
diff --git a/gui/textviewer.cpp b/gui/textviewer.cpp
new file mode 100644
index 00000000000..6748ac401dc
--- /dev/null
+++ b/gui/textviewer.cpp
@@ -0,0 +1,209 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "common/file.h"
+#include "common/tokenizer.h"
+
+#include "graphics/font.h"
+#include "graphics/fontman.h"
+
+#include "gui/gui-manager.h"
+#include "gui/ThemeEval.h"
+#include "gui/textviewer.h"
+#include "gui/widgets/scrollbar.h"
+
+namespace GUI {
+
+#define kDialogWidthPercent 0.8f
+#define kDialogHeightPercent 0.8f
+
+#define kPadX 0.05
+#define kPadY 0.05
+
+TextViewerDialog::TextViewerDialog(Common::String fname)
+ : Dialog(0, 0, 1, 1), _fname(fname) {
+ _font = &g_gui.getFont(ThemeEngine::kFontStyleConsole);
+ _charWidth = _font->getMaxCharWidth();
+ _lineHeight = _font->getFontHeight() + 2;
+
+ // Add scrollbar
+ _scrollbarWidth = g_gui.xmlEval()->getVar("Globals.Scrollbar.Width", 0);
+ _scrollBar = new ScrollBarWidget(this, _w - _scrollbarWidth - 1, 0, _scrollbarWidth, _h);
+ _scrollBar->setTarget(this);
+
+ _currentPos = 0;
+ _scrollLine = _linesPerPage - 1;
+
+ reflowLayout();
+
+ loadFile(fname);
+}
+
+TextViewerDialog::~TextViewerDialog() {
+ destroy();
+}
+
+bool TextViewerDialog::loadFile(Common::String &fname) {
+ Common::FSNode file(fname);
+
+ if (!file.exists()) {
+ warning("TextViewerDialog::loadFile(): Cannot open file %s", fname.c_str());
+
+ return false;
+ }
+
+ Common::SeekableReadStream *stream = file.createReadStream();
+
+ warning("TextViewerDialog::loadFile(): File size is: %ld", stream->size());
+
+ _linesArray.clear();
+
+ while (!stream->eos()) {
+ Common::String line = stream->readString('\n');
+
+ line.wordWrap(_lineWidth);
+
+ Common::StringTokenizer lines(line, "\n");
+ while (!lines.empty())
+ _linesArray.push_back(lines.nextToken());
+ }
+
+ delete stream;
+
+ return true;
+}
+
+void TextViewerDialog::destroy() {
+ _linesArray.clear();
+}
+
+void TextViewerDialog::reflowLayout() {
+ // Calculate the real width/height (rounded to char/line multiples)
+ _w = (uint16)(kDialogWidthPercent * g_system->getOverlayWidth());
+ _h = (uint16)((kDialogHeightPercent * g_system->getOverlayHeight() - 2) / _lineHeight);
+ _h = _h * _lineHeight + 2;
+
+ _x = (g_system->getOverlayWidth() - _w) / 2;
+ _y = (g_system->getOverlayHeight() - _h) / 2;
+
+ _padX = _w * kPadX;
+ _padY = _h * kPadY;
+
+ // Calculate depending values
+ _lineWidth = (_w - _scrollbarWidth - _padX * 2) / _charWidth;
+ _linesPerPage = (_h - _padY * 2) / _lineHeight;
+
+ _scrollBar->setPos(_w - _scrollbarWidth - 1, 0);
+ _scrollBar->setSize(_scrollbarWidth, _h);
+}
+
+void TextViewerDialog::open() {
+ Dialog::open();
+}
+
+void TextViewerDialog::drawDialog(DrawLayer layerToDraw) {
+ Dialog::drawDialog(layerToDraw);
+
+ setTextDrawableArea(Common::Rect(_x, _y, _x + _w, _y + _h));
+
+ // Draw a border
+ //g_gui.hLine(_x, _y + _h - 1, _x + _w - 1, g_gui._color);
+
+ // Draw text
+ int y = _y + _padY;
+
+ for (int line = 0; (line < _linesPerPage) && ((_currentPos + line) < (int)_linesArray.size()); line++) {
+ int x = _x + _padX;
+ const char *text = _linesArray[line + _currentPos].c_str();
+ int w = MIN<int>(_lineWidth, _linesArray[line + _currentPos].size());
+
+ for (int column = 0; column < w; column++) {
+ byte c = text[column];
+ g_gui.theme()->drawChar(Common::Rect(x, y, x + _charWidth, y + _lineHeight), c, _font);
+ x += _charWidth;
+ }
+
+ y += _lineHeight;
+ }
+
+ // Draw the scrollbar
+ _scrollBar->_numEntries = _linesArray.size();
+ _scrollBar->_currentPos = _currentPos;
+ _scrollBar->_entriesPerPage = _linesPerPage;
+ _scrollBar->recalc();
+ _scrollBar->draw();
+}
+
+
+void TextViewerDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+ switch (cmd) {
+ case kSetPositionCmd:
+ _currentPos = _scrollBar->_currentPos;
+ drawDialog(kDrawLayerForeground);
+ break;
+ default:
+ return;
+ }
+}
+
+void TextViewerDialog::handleMouseWheel(int x, int y, int direction) {
+ _scrollBar->handleMouseWheel(x, y, direction);
+}
+
+void TextViewerDialog::handleKeyDown(Common::KeyState state) {
+ switch (state.keycode) {
+ case Common::KEYCODE_ESCAPE:
+ close();
+ break;
+ case Common::KEYCODE_UP:
+ _currentPos--;
+ break;
+ case Common::KEYCODE_DOWN:
+ _currentPos++;
+ break;
+ case Common::KEYCODE_HOME:
+ _currentPos = 0;
+ break;
+ case Common::KEYCODE_END:
+ _currentPos = _linesArray.size() - _linesPerPage;
+ break;
+ case Common::KEYCODE_PAGEUP:
+ _currentPos -= _linesPerPage;
+ break;
+ case Common::KEYCODE_PAGEDOWN:
+ _currentPos += _linesPerPage;
+ break;
+ default:
+ return;
+ }
+
+ if (_currentPos < 0) {
+ _currentPos = 0;
+ }
+ if ((_currentPos + _linesPerPage) >= (int)_linesArray.size()) {
+ _currentPos = _linesArray.size() - _linesPerPage;
+ }
+
+ drawDialog(kDrawLayerForeground);
+}
+
+
+} // End of namespace GUI
diff --git a/gui/textviewer.h b/gui/textviewer.h
new file mode 100644
index 00000000000..d12acee8099
--- /dev/null
+++ b/gui/textviewer.h
@@ -0,0 +1,75 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef TEXTVIEWER_DIALOG_H
+#define TEXTVIEWER_DIALOG_H
+
+#include "common/array.h"
+#include "common/str.h"
+
+#include "gui/dialog.h"
+
+namespace Graphics {
+class Font;
+}
+
+namespace GUI {
+
+class ScrollBarWidget;
+
+class TextViewerDialog : public Dialog {
+private:
+ int _lineWidth;
+ int _linesPerPage;
+ int _currentPos;
+ int _scrollLine;
+
+ int _scrollbarWidth;
+ int _charWidth;
+ int _lineHeight;
+ int _padX, _padY;
+
+ Common::StringArray _linesArray;
+
+ ScrollBarWidget *_scrollBar;
+
+ Common::String _fname;
+ const Graphics::Font *_font = nullptr;
+
+ bool loadFile(Common::String &fname);
+ void reflowLayout();
+
+public:
+ TextViewerDialog(Common::String fname);
+ ~TextViewerDialog();
+
+ void destroy();
+ void open();
+ void drawDialog(DrawLayer layerToDraw);
+
+ void handleMouseWheel(int x, int y, int direction);
+ void handleKeyDown(Common::KeyState state);
+ void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
+};
+
+} // End of namespace GUI
+
+#endif
diff --git a/gui/themes/common/highres_layout.stx b/gui/themes/common/highres_layout.stx
index 29bb5301638..678e12e1189 100644
--- a/gui/themes/common/highres_layout.stx
+++ b/gui/themes/common/highres_layout.stx
@@ -809,6 +809,12 @@
/>
</layout>
<widget name = 'ConfigPath' height = 'Globals.Line.Height' />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
+ <widget name = 'LogPath' height = 'Globals.Line.Height' />
+ <widget name = 'ViewButton'
+ type = 'Button'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'BrowserPath'
height = 'Globals.Line.Height'
diff --git a/gui/themes/common/lowres_layout.stx b/gui/themes/common/lowres_layout.stx
index d77bd40234c..63b835fd26f 100644
--- a/gui/themes/common/lowres_layout.stx
+++ b/gui/themes/common/lowres_layout.stx
@@ -746,6 +746,12 @@
/>
</layout>
<widget name = 'ConfigPath' height = 'Globals.Line.Height' />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' align = 'center'>
+ <widget name = 'LogPath' height = 'Globals.Line.Height' />
+ <widget name = 'ViewButton'
+ type = 'Button'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' align = 'center'>
<widget name = 'BrowserPath'
height = 'Globals.Line.Height'
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 4ce5c778ae8..59abe8bdf11 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -661,6 +661,12 @@
/>
</layout>
<widget name = 'ConfigPath' height = 'Globals.Line.Height' />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
+ <widget name = 'LogPath' height = 'Globals.Line.Height' />
+ <widget name = 'ViewButton'
+ type = 'Button'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'BrowserPath'
height = 'Globals.Line.Height'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 2162d15832e..6e6aed16e2d 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -668,6 +668,12 @@
/>
</layout>
<widget name = 'ConfigPath' height = 'Globals.Line.Height' />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'LogPath' height = 'Globals.Line.Height' />
+ <widget name = 'ViewButton'
+ type = 'Button'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16'>
<widget name = 'BrowserPath'
height = 'Globals.Line.Height'
Commit: e4b08549d6616b754e28563c2a0dd6e0332a51c9
https://github.com/scummvm/scummvm/commit/e4b08549d6616b754e28563c2a0dd6e0332a51c9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-03-25T17:21:38+01:00
Commit Message:
GUI: Expose Debug Level int the GUI (Misc tab), bump theme version
Changed paths:
gui/ThemeEngine.h
gui/options.cpp
gui/options.h
gui/themes/common/highres_layout.stx
gui/themes/common/lowres_layout.stx
gui/themes/default.inc
gui/themes/residualvm/THEMERC
gui/themes/scummclassic/THEMERC
gui/themes/scummclassic/classic_layout.stx
gui/themes/scummclassic/classic_layout_lowres.stx
gui/themes/scummmodern/THEMERC
gui/themes/scummremastered/THEMERC
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index dd4fbf5e92d..93d068b29be 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -36,7 +36,7 @@
#include "graphics/pixelformat.h"
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.9.8"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.9.10"
class OSystem;
diff --git a/gui/options.cpp b/gui/options.cpp
index eba91849c36..f75abff2003 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -2400,6 +2400,8 @@ void GlobalOptionsDialog::build() {
_autosavePeriodPopUp->setSelected(i);
}
+ _debugLevelPopUp->setSelected(gDebugLevel + 1);
+
ThemeEngine::GraphicsMode mode = ThemeEngine::findMode(ConfMan.get("gui_renderer"));
if (mode == ThemeEngine::kGfxDisabled)
mode = ThemeEngine::_defaultRendererMode;
@@ -2620,6 +2622,16 @@ void GlobalOptionsDialog::addMiscControls(GuiObject *boss, const Common::String
_randomSeed = new EditTextWidget(boss, prefix + "RandomSeedEditText", seed, Common::U32String());
_randomSeedClearButton = addClearButton(boss, prefix + "RandomSeedClearButton", kRandomSeedClearCmd);
+ new StaticTextWidget(boss, prefix + "DebugLevelPopupDesc", _("Debug level:"));
+ _debugLevelPopUp = new PopUpWidget(boss, prefix + "DebugLevelPopup");
+
+ _debugLevelPopUp->appendEntry(_("None"), -1); // I18N: Debug level -1, no messages
+
+ for (int i = 0; i < 11; i++)
+ _debugLevelPopUp->appendEntry(Common::U32String::format("%d", i), i);
+
+ _debugLevelPopUp->appendEntry(_("11 (all)"), 11); // I18N: Debug level 11, all messages
+
#ifdef USE_DISCORD
_discordRpcCheckbox = new CheckboxWidget(boss, prefix + "DiscordRpc",
_("Enable Discord integration"),
@@ -2914,6 +2926,12 @@ void GlobalOptionsDialog::apply() {
else
_autosavePeriodPopUp->setSelected(0);
+ if (gDebugLevel != _debugLevelPopUp->getSelectedTag()) {
+ gDebugLevel = _debugLevelPopUp->getSelectedTag();
+
+ warning("Debug level set to %d", gDebugLevel);
+ }
+
#ifdef USE_UPDATES
if (g_system->getUpdateManager()) {
ConfMan.setInt("updates_check", _updatesPopUp->getSelectedTag());
diff --git a/gui/options.h b/gui/options.h
index 19fc5122190..25e5d46aa39 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -310,10 +310,11 @@ protected:
// Misc controls
//
StaticTextWidget *_autosavePeriodPopUpDesc;
- PopUpWidget *_autosavePeriodPopUp;
+ PopUpWidget *_autosavePeriodPopUp;
StaticTextWidget *_randomSeedDesc;
EditTextWidget *_randomSeed;
ButtonWidget *_randomSeedClearButton;
+ PopUpWidget *_debugLevelPopUp;
#ifdef USE_UPDATES
StaticTextWidget *_updatesPopUpDesc;
diff --git a/gui/themes/common/highres_layout.stx b/gui/themes/common/highres_layout.stx
index 678e12e1189..d92c7f06c02 100644
--- a/gui/themes/common/highres_layout.stx
+++ b/gui/themes/common/highres_layout.stx
@@ -922,6 +922,14 @@
width = 'Globals.Line.Height'
/>
</layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
+ <widget name = 'DebugLevelPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'DebugLevelPopup'
+ type = 'PopUp'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'DiscordRpc'
type = 'Checkbox'
diff --git a/gui/themes/common/lowres_layout.stx b/gui/themes/common/lowres_layout.stx
index 63b835fd26f..77b7cd6f662 100644
--- a/gui/themes/common/lowres_layout.stx
+++ b/gui/themes/common/lowres_layout.stx
@@ -869,6 +869,14 @@
width = 'Globals.Line.Height'
/>
</layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
+ <widget name = 'DebugLevelPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'DebugLevelPopup'
+ type = 'PopUp'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'DiscordRpc'
type = 'Checkbox'
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index df6b58ef7e0..04c7a0f75b3 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -2054,6 +2054,12 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>"
"<widget name='ConfigPath' height='Globals.Line.Height' />"
"<layout type='horizontal' padding='0,0,0,0' spacing='10' align='center'>"
+"<widget name='LogPath' height='Globals.Line.Height' />"
+"<widget name='ViewButton' "
+"type='Button' "
+"/>"
+"</layout>"
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' align='center'>"
"<widget name='BrowserPath' "
"height='Globals.Line.Height' "
"/>"
@@ -2157,6 +2163,14 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"/>"
"</layout>"
"<layout type='horizontal' padding='0,0,0,0' spacing='10' align='center'>"
+"<widget name='DebugLevelPopupDesc' "
+"type='OptionsLabel' "
+"/>"
+"<widget name='DebugLevelPopup' "
+"type='PopUp' "
+"/>"
+"</layout>"
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' align='center'>"
"<widget name='DiscordRpc' "
"type='Checkbox' "
"/>"
@@ -4032,6 +4046,12 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"</layout>"
"<widget name='ConfigPath' height='Globals.Line.Height' />"
"<layout type='horizontal' padding='0,0,0,0' spacing='16'>"
+"<widget name='LogPath' height='Globals.Line.Height' />"
+"<widget name='ViewButton' "
+"type='Button' "
+"/>"
+"</layout>"
+"<layout type='horizontal' padding='0,0,0,0' spacing='16'>"
"<widget name='BrowserPath' "
"height='Globals.Line.Height' "
"/>"
@@ -4145,6 +4165,14 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"/>"
"</layout>"
"<layout type='horizontal' padding='0,0,0,0' spacing='10' align='center'>"
+"<widget name='DebugLevelPopupDesc' "
+"type='OptionsLabel' "
+"/>"
+"<widget name='DebugLevelPopup' "
+"type='PopUp' "
+"/>"
+"</layout>"
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' align='center'>"
"<widget name='DiscordRpc' "
"type='Checkbox' "
"/>"
diff --git a/gui/themes/residualvm/THEMERC b/gui/themes/residualvm/THEMERC
index a654ab03677..730fdf85bc8 100644
--- a/gui/themes/residualvm/THEMERC
+++ b/gui/themes/residualvm/THEMERC
@@ -1,3 +1,3 @@
-[SCUMMVM_STX0.9.8:ResidualVM Modern Theme Remastered:No Author]
+[SCUMMVM_STX0.9.10:ResidualVM Modern Theme Remastered:No Author]
%using ../common
%using ../common-svg
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index d676d6143ee..2b664c02257 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.9.8:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.9.10:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 59abe8bdf11..90f02a99fea 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -774,6 +774,14 @@
width = 'Globals.Line.Height'
/>
</layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
+ <widget name = 'DebugLevelPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'DebugLevelPopup'
+ type = 'PopUp'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'DiscordRpc'
type = 'Checkbox'
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 6e6aed16e2d..903ec339b79 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -791,6 +791,14 @@
width = 'Globals.Line.Height'
/>
</layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
+ <widget name = 'DebugLevelPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'DebugLevelPopup'
+ type = 'PopUp'
+ />
+ </layout>
<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' align = 'center'>
<widget name = 'DiscordRpc'
type = 'Checkbox'
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index 033658a726e..59b6493f870 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1,2 +1,2 @@
-[SCUMMVM_STX0.9.8:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.9.10:ScummVM Modern Theme:No Author]
%using ../common
diff --git a/gui/themes/scummremastered/THEMERC b/gui/themes/scummremastered/THEMERC
index 02def911816..c387a0b8340 100644
--- a/gui/themes/scummremastered/THEMERC
+++ b/gui/themes/scummremastered/THEMERC
@@ -1,3 +1,3 @@
-[SCUMMVM_STX0.9.8:ScummVM Modern Theme Remastered:No Author]
+[SCUMMVM_STX0.9.10:ScummVM Modern Theme Remastered:No Author]
%using ../common
%using ../common-svg
Commit: e082efddca75073242fd093b738bf0602687817f
https://github.com/scummvm/scummvm/commit/e082efddca75073242fd093b738bf0602687817f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-03-25T17:21:51+01:00
Commit Message:
GUI: Regenerate themes
Changed paths:
gui/themes/residualvm.zip
gui/themes/scummclassic.zip
gui/themes/scummmodern.zip
gui/themes/scummremastered.zip
diff --git a/gui/themes/residualvm.zip b/gui/themes/residualvm.zip
index c93386c9a9b..f2080da9ace 100644
Binary files a/gui/themes/residualvm.zip and b/gui/themes/residualvm.zip differ
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 99bae0a9616..10e3562ea58 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index f8bef2ef97a..513c454c374 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummremastered.zip b/gui/themes/scummremastered.zip
index 5a8d5d773db..033ef58da18 100644
Binary files a/gui/themes/scummremastered.zip and b/gui/themes/scummremastered.zip differ
Commit: 06c7b626e92f9bc0d4e968bcd802584aa163f607
https://github.com/scummvm/scummvm/commit/06c7b626e92f9bc0d4e968bcd802584aa163f607
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-03-25T17:30:11+01:00
Commit Message:
GUI: Fix crash in TextViewer
Changed paths:
gui/textviewer.cpp
diff --git a/gui/textviewer.cpp b/gui/textviewer.cpp
index 6748ac401dc..c3a7b386c1b 100644
--- a/gui/textviewer.cpp
+++ b/gui/textviewer.cpp
@@ -157,6 +157,14 @@ void TextViewerDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 d
switch (cmd) {
case kSetPositionCmd:
_currentPos = _scrollBar->_currentPos;
+
+ if (_currentPos < 0) {
+ _currentPos = 0;
+ }
+ if ((_currentPos + _linesPerPage) >= (int)_linesArray.size()) {
+ _currentPos = MAX<int32>(_linesArray.size() - _linesPerPage, 0);
+ }
+
drawDialog(kDrawLayerForeground);
break;
default:
@@ -199,7 +207,7 @@ void TextViewerDialog::handleKeyDown(Common::KeyState state) {
_currentPos = 0;
}
if ((_currentPos + _linesPerPage) >= (int)_linesArray.size()) {
- _currentPos = _linesArray.size() - _linesPerPage;
+ _currentPos = MAX<int32>(_linesArray.size() - _linesPerPage, 0);
}
drawDialog(kDrawLayerForeground);
More information about the Scummvm-git-logs
mailing list