Compare commits

...

24 Commits

Author SHA1 Message Date
Rosalie Wanders 5d20e98aba Package: v0.2.8 2023-01-01 13:55:11 +01:00
Rosalie Wanders 617ee3f96c RMG: only call on_VidExt_ResizeWindow when not returning from fullscreen 2023-01-01 13:36:48 +01:00
Rosalie Wanders 083f7c2e4f RMG: simplify vidext function implementation 2023-01-01 13:14:07 +01:00
Rosalie Wanders a8ea1795bf Script: simplify BundleDependencies.sh 2023-01-01 12:43:49 +01:00
Rosalie Wanders 8a6cb4b5a8 RMG: configure toolbar & statusbar visibility in configureUI 2022-12-31 14:17:52 +01:00
Rosalie Wanders 53edf065a5 RMG: don't return when over the item limit in RomSearcherThread 2022-12-31 14:17:52 +01:00
Rosalie Wanders bf65be483d RMG: set current view widget in RomBrowserWidget constructor 2022-12-31 13:22:02 +01:00
Rosalie Wanders 1e90047368 3rdParty: use CMAKE_CONFIGURE_ARGS for mupen64plus-rsp-parallel 2022-12-30 14:24:07 +01:00
Rosalie Wanders abd1160f87 RMG: disable 'Uniform Size (Grid View)' during emulation 2022-12-29 01:34:49 +01:00
Rosalie Wanders 55d7dd9d89 RMG-Core: improve error message in read_raw_file 2022-12-29 01:18:58 +01:00
Rosalie Wanders b7eb1afb86 Package: v0.2.7 2022-12-29 00:28:43 +01:00
Rosalie Wanders 25ddb4a531 RMG: only refresh ROM list in SetGridViewUniformSizes when in grid view 2022-12-29 00:17:44 +01:00
Rosalie Wanders 79f7c2224b RMG: enable smooth scrolling in RomBrowserWidget 2022-12-29 00:14:58 +01:00
Rosalie Wanders 8adda4fc7d RMG: add more icons to the View menu 2022-12-29 00:14:38 +01:00
Rosalie Wanders 5d23743133 RMG: add 'Uniform Size (Grid View)' to View menu 2022-12-29 00:14:03 +01:00
Rosalie Wanders 2558e5d6a6 RMG-Core: add RomBrowser_GridViewUniformItemSizes setting 2022-12-29 00:08:49 +01:00
Rosalie Wanders 859b81b7e0 RMG: fixup cover filename in RomBrowserWidget 2022-12-28 23:09:46 +01:00
Rosalie Wanders 30369f58a9 3rdParty: update mupen64plus-core 2022-12-28 17:47:04 +01:00
Rosalie Wanders 30afc80a64 3rdParty: update mupen64plus-core 2022-12-28 17:23:32 +01:00
Rosalie Wanders 949eee8d08 RMG: improve updater script on windows 2022-12-28 16:34:40 +01:00
Rosalie Wanders 1fae30bd33 Script: also bundle libjpeg-8.dll for windows in BundleDependencies.sh 2022-12-28 16:18:59 +01:00
Rosalie Wanders d8817bf0f3 RMG: add disk files to RomBrowserEmptyWidget 2022-12-28 01:00:31 +01:00
Rosalie Wanders 5279b10b67 RMG: show core error even when statusbar is disabled 2022-12-28 00:36:21 +01:00
Rosalie Wanders 391f46be22 Package: update screenshots 2022-12-28 00:16:21 +01:00
22 changed files with 184 additions and 90 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 KiB

After

Width:  |  Height:  |  Size: 445 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 274 KiB

@@ -33,6 +33,34 @@
</screenshots>
<description/>
<releases>
<release version="v0.2.8" date="2023-01-01" type="stable">
<description>
<p>Changes:</p>
<ul>
<li>Fix 'Uniform Size (Grid View)' not being disabled during emulation</li>
<li>Fix toolbar not respecting the view setting</li>
<li>Fix being stuck at the loading screen when having more ROMs than the ROM search limit</li>
<li>Improve error message when opening a ROM fails</li>
</ul>
</description>
</release>
<release version="v0.2.7" date="2022-12-29" type="stable">
<description>
<p>Changes:</p>
<ul>
<li>Fix core error not showing when the statusbar was hidden</li>
<li>Fix .ndd/.64d not being in the empty ROM Browser widget</li>
<li>Fix .jpg/.jpeg files not working on covers on Windows</li>
<li>Fix updater script not copying subdirectories on Windows (for portable installs)</li>
<li>Fix 64DD Disks which required the development IPL not working</li>
<li>Fix 64DD Disks showing the wrong internal ROM name (this fix requires clearing the ROM cache)</li>
<li>Fix cover filenames allowing invalid characters (they will now be replaced by _)</li>
<li>Add more icons to View menu in the menu bar</li>
<li>Add 'Uniform Size (Grid View)' to View menu in the menu bar</li>
<li>Add smooth scrolling to List View and Grid View</li>
</ul>
</description>
</release>
<release version="v0.2.6" date="2022-12-28" type="stable">
<description>
<p>Changes:</p>
+2 -2
View File
@@ -37,7 +37,7 @@ endif(USE_CCACHE)
if(NOT NO_GIT_CLONE)
set(MUPEN64PLUSCORE_URL "https://github.com/Rosalie241/mupen64plus-core")
set(MUPEN64PLUSCORE_TAG "7adf84febed449c31a9454e296a3922d441bc663")
set(MUPEN64PLUSCORE_TAG "3b6523edd467eb9224310e0862005c7e5ae9c290")
set(MUPEN64PLUS_RSP_CXD4_URL "https://github.com/mupen64plus/mupen64plus-rsp-cxd4")
set(MUPEN64PLUS_RSP_CXD4_TAG "39f79201baa15890c4cbae92f2215a634cc3ee6d")
@@ -131,7 +131,7 @@ ExternalProject_Add(mupen64plus-rsp-parallel
INSTALL_COMMAND ""
BUILD_IN_SOURCE True
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
CMAKE_ARGS ${CMAKE_CONFIGURE_ARGS}
BUILD_BYPRODUCTS ${THIRDPARTY_DIR}/mupen64plus-rsp-parallel/mupen64plus-rsp-parallel.${SO_EXT}
DEPENDS mupen64plus-core
+5 -1
View File
@@ -209,7 +209,11 @@ static bool read_raw_file(std::filesystem::path file, char** buf, int* size)
if (!fileStream.is_open())
{
error = "read_raw_file Failed: ";
error += "failed to open file!";
error += "failed to open file: ";
error += strerror(errno);
error += " (";
error += std::to_string(errno);
error += ")";
CoreSetError(error);
return false;
}
+3
View File
@@ -462,6 +462,9 @@ static l_Setting get_setting(SettingsID settingId)
case SettingsID::RomBrowser_GridViewIconHeight:
setting = {SETTING_SECTION_ROMBROWSER, "GridViewIconHeight", 126};
break;
case SettingsID::RomBrowser_GridViewUniformItemSizes:
setting = {SETTING_SECTION_ROMBROWSER, "GridViewUniformItemSizes", true};
break;
case SettingsID::Settings_HasForceUsedSetOnce:
setting = {SETTING_SECTION_SETTINGS, "HasForceUsedSetOnce", false};
+1
View File
@@ -125,6 +125,7 @@ enum class SettingsID
RomBrowser_ListViewSortOrder,
RomBrowser_GridViewIconWidth,
RomBrowser_GridViewIconHeight,
RomBrowser_GridViewUniformItemSizes,
// Settings Settings
Settings_HasForceUsedSetOnce,
+2 -3
View File
@@ -44,9 +44,8 @@ class EmulationThread : public QThread
void on_VidExt_ResizeWindow(int, int);
void on_VidExt_Init(void);
void on_VidExt_SetMode(int, int, int, int, int);
void on_VidExt_SetWindowedModeWithRate(int, int, int, int, int);
void on_VidExt_SetFullscreenModeWithRate(int, int, int, int, int);
void on_VidExt_SetWindowedMode(int, int, int, int);
void on_VidExt_SetFullscreenMode(int, int, int, int);
void on_VidExt_SetCaption(QString);
void on_VidExt_ToggleFS(bool);
void on_VidExt_Quit(void);
+1 -1
View File
@@ -110,7 +110,7 @@ void RomSearcherThread::searchDirectory(QString directory)
{
if (count++ >= this->maxItems)
{
return;
break;
}
emit this->RomFound(file, header, settings);
@@ -88,7 +88,7 @@ void InstallUpdateDialog::install(void)
"@echo off",
"del /F /Q \"" + fullFilePath + "\"",
"taskkill /F /PID:" + appPid,
"copy /Y \"" + extractDirectory + "\\*\" \"" + appPath + "/\"",
"xcopy /S /Y /I \"" + extractDirectory + "\\*\" \"" + appPath + "/\"",
"start \"\" \"" + appPath + "\\RMG.exe\"",
"rmdir /S /Q \"" + this->temporaryDirectory + "\"",
};
+41 -57
View File
@@ -167,8 +167,13 @@ void MainWindow::configureUI(QApplication* app)
this->restoreGeometry(QByteArray::fromBase64(geometry.toLocal8Bit()));
}
this->statusBar()->setHidden(true);
this->ui_ShowToolbar = CoreSettingsGetBoolValue(SettingsID::GUI_Toolbar);
this->ui_ShowStatusbar = CoreSettingsGetBoolValue(SettingsID::GUI_StatusBar);
this->toolBar->setVisible(this->ui_ShowToolbar);
this->statusBar()->setVisible(this->ui_ShowStatusbar);
this->statusBar()->addPermanentWidget(this->ui_StatusBar_Label, 1);
this->ui_TimerTimeout = CoreSettingsGetIntValue(SettingsID::GUI_StatusbarMessageDuration);
this->ui_Widgets->addWidget(this->ui_Widget_RomBrowser);
@@ -257,14 +262,12 @@ void MainWindow::updateUI(bool inEmulation, bool isPaused)
this->ui_Widgets->setCurrentIndex(1);
this->storeGeometry();
this->statusBar()->setVisible(this->ui_ShowStatusbar);
}
else if (!this->ui_NoSwitchToRomBrowser)
{
this->setWindowTitle(this->ui_WindowTitle);
this->ui_Widgets->setCurrentIndex(0);
this->loadGeometry();
this->statusBar()->setVisible(this->ui_ShowStatusbar);
}
else
{
@@ -331,20 +334,14 @@ void MainWindow::connectEmulationThreadSignals(void)
Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetupOGL, this, &MainWindow::on_VidExt_SetupOGL,
Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetMode, this, &MainWindow::on_VidExt_SetMode,
Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetWindowedModeWithRate, this,
&MainWindow::on_VidExt_SetWindowedModeWithRate, Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetFullscreenModeWithRate, this,
&MainWindow::on_VidExt_SetFullscreenModeWithRate, Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetWindowedMode, this,
&MainWindow::on_VidExt_SetWindowedMode, Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetFullscreenMode, this,
&MainWindow::on_VidExt_SetFullscreenMode, Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_ResizeWindow, this,
&MainWindow::on_VidExt_ResizeWindow, Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_SetCaption, this,
&MainWindow::on_VidExt_SetCaption, Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_ToggleFS, this, &MainWindow::on_VidExt_ToggleFS,
Qt::BlockingQueuedConnection);
connect(this->emulationThread, &Thread::EmulationThread::on_VidExt_Quit, this, &MainWindow::on_VidExt_Quit,
Qt::BlockingQueuedConnection);
}
void MainWindow::launchEmulationThread(QString cartRom, QString diskRom)
@@ -361,8 +358,8 @@ void MainWindow::launchEmulationThread(QString cartRom, QString diskRom)
}
}
ui_RefreshRomListAfterEmulation = this->ui_Widget_RomBrowser->IsRefreshingRomList();
if (ui_RefreshRomListAfterEmulation)
this->ui_RefreshRomListAfterEmulation = this->ui_Widget_RomBrowser->IsRefreshingRomList();
if (this->ui_RefreshRomListAfterEmulation)
{
this->ui_Widget_RomBrowser->StopRefreshRomList();
}
@@ -457,10 +454,10 @@ void MainWindow::updateActions(bool inEmulation, bool isPaused)
keyBinding = QString::fromStdString(CoreSettingsGetStringValue(SettingsID::KeyBinding_Settings));
this->action_Settings_Settings->setShortcut(QKeySequence(keyBinding));
this->action_View_UniformSize->setEnabled(!inEmulation);
keyBinding = QString::fromStdString(CoreSettingsGetStringValue(SettingsID::KeyBinding_Fullscreen));
this->action_View_Fullscreen->setEnabled(inEmulation);
this->action_View_Fullscreen->setShortcut(QKeySequence(keyBinding));
keyBinding = QString::fromStdString(CoreSettingsGetStringValue(SettingsID::KeyBinding_RefreshROMList));
this->action_View_RefreshRoms->setEnabled(!inEmulation);
this->action_View_RefreshRoms->setShortcut(QKeySequence(keyBinding));
@@ -573,6 +570,9 @@ void MainWindow::configureActions(void)
action->setChecked(i == currentView);
action->setActionGroup(romBrowserViewActionGroup);
}
// configure grid view options actions
this->action_View_UniformSize->setChecked(CoreSettingsGetBoolValue(SettingsID::RomBrowser_GridViewUniformItemSizes));
}
void MainWindow::connectActionSignals(void)
@@ -606,6 +606,7 @@ void MainWindow::connectActionSignals(void)
connect(this->action_View_StatusBar, &QAction::toggled, this, &MainWindow::on_Action_View_StatusBar);
connect(this->action_View_GameList, &QAction::toggled, this, &MainWindow::on_Action_View_GameList);
connect(this->action_View_GameGrid, &QAction::toggled, this, &MainWindow::on_Action_View_GameGrid);
connect(this->action_View_UniformSize, &QAction::toggled, this, &MainWindow::on_Action_View_UniformSize);
connect(this->action_View_Fullscreen, &QAction::triggered, this, &MainWindow::on_Action_View_Fullscreen);
connect(this->action_View_RefreshRoms, &QAction::triggered, this, &MainWindow::on_Action_View_RefreshRoms);
connect(this->action_View_ClearRomCache, &QAction::triggered, this, &MainWindow::on_Action_View_ClearRomCache);
@@ -1155,6 +1156,12 @@ void MainWindow::on_Action_View_GameGrid(bool checked)
}
}
void MainWindow::on_Action_View_UniformSize(bool checked)
{
this->ui_Widget_RomBrowser->SetGridViewUniformSizes(checked);
CoreSettingsSetValue(SettingsID::RomBrowser_GridViewUniformItemSizes, checked);
}
void MainWindow::on_Action_View_Fullscreen(void)
{
if (!CoreToggleFullscreen())
@@ -1357,9 +1364,7 @@ void MainWindow::on_RomBrowser_Cheats(QString file)
void MainWindow::on_VidExt_Init(void)
{
this->ui_VidExt_Geometry_Saved = false;
this->ui_VidExtForceSetMode = true;
this->updateUI(true, false);
}
@@ -1369,25 +1374,13 @@ void MainWindow::on_VidExt_SetupOGL(QSurfaceFormat format, QThread* thread)
this->ui_Widget_OpenGL->setFormat(format);
}
void MainWindow::on_VidExt_SetMode(int width, int height, int bps, int mode, int flags)
void MainWindow::on_VidExt_SetWindowedMode(int width, int height, int bps, int flags)
{
this->on_VidExt_ResizeWindow(width, height);
}
void MainWindow::on_VidExt_SetWindowedModeWithRate(int width, int height, int refresh, int bps, int flags)
{
// load window geometry
if (this->ui_VidExt_Geometry_Saved)
{
this->restoreGeometry(this->ui_VidExt_Geometry);
this->ui_VidExt_Geometry_Saved = false;
// force 'refresh' the video plugin
CoreSetVideoSize(width, height);
}
bool returnedFromFullscreen = false;
if (this->isFullScreen())
{
returnedFromFullscreen = true;
this->showNormal();
}
@@ -1412,18 +1405,17 @@ void MainWindow::on_VidExt_SetWindowedModeWithRate(int width, int height, int re
}
this->removeFullscreenActions();
this->on_VidExt_ResizeWindow(width, height);
// only resize window when we're
// not returning from fullscreen
if (!returnedFromFullscreen)
{
this->on_VidExt_ResizeWindow(width, height);
}
}
void MainWindow::on_VidExt_SetFullscreenModeWithRate(int width, int height, int refresh, int bps, int flags)
void MainWindow::on_VidExt_SetFullscreenMode(int width, int height, int bps, int flags)
{
// save window geometry
if (!this->ui_VidExt_Geometry_Saved)
{
this->ui_VidExt_Geometry = this->saveGeometry();
this->ui_VidExt_Geometry_Saved = true;
}
if (!this->isFullScreen())
{
this->showFullScreen();
@@ -1464,12 +1456,12 @@ void MainWindow::on_VidExt_ResizeWindow(int width, int height)
height += this->menuBar()->height();
}
if (this->ui_ShowToolbar && !this->toolBar->isHidden())
if (!this->toolBar->isHidden())
{
height += this->toolBar->height();
}
if (this->ui_ShowStatusbar && !this->statusBar()->isHidden())
if (!this->statusBar()->isHidden())
{
height += this->statusBar()->height();
}
@@ -1501,10 +1493,6 @@ void MainWindow::on_VidExt_ResizeWindow(int width, int height)
this->ui_VidExtForceSetMode = false;
}
void MainWindow::on_VidExt_SetCaption(QString title)
{
}
void MainWindow::on_VidExt_ToggleFS(bool fullscreen)
{
if (fullscreen)
@@ -1567,10 +1555,6 @@ void MainWindow::on_VidExt_ToggleFS(bool fullscreen)
}
}
void MainWindow::on_VidExt_Quit(void)
{
}
void MainWindow::on_Core_DebugCallback(CoreDebugMessageType type, QString context, QString message)
{
// only display in statusbar when emulation is running
@@ -1579,11 +1563,6 @@ void MainWindow::on_Core_DebugCallback(CoreDebugMessageType type, QString contex
return;
}
if (!this->ui_ShowStatusbar)
{
return;
}
if (!context.startsWith("[CORE]"))
{
return;
@@ -1607,6 +1586,11 @@ void MainWindow::on_Core_DebugCallback(CoreDebugMessageType type, QString contex
return;
}
if (!this->ui_ShowStatusbar)
{
return;
}
this->ui_StatusBar_Label->setText(message);
// reset label deletion timer
+3 -8
View File
@@ -64,9 +64,6 @@ class MainWindow : public QMainWindow, private Ui::MainWindow
QByteArray ui_Geometry;
bool ui_Geometry_Saved = false;
QByteArray ui_VidExt_Geometry;
bool ui_VidExt_Geometry_Saved = false;
bool ui_AllowManualResizing = false;
bool ui_HideCursorInEmulation = false;
bool ui_HideCursorInFullscreenEmulation = false;
@@ -162,6 +159,7 @@ class MainWindow : public QMainWindow, private Ui::MainWindow
void on_Action_View_StatusBar(bool);
void on_Action_View_GameList(bool);
void on_Action_View_GameGrid(bool);
void on_Action_View_UniformSize(bool);
void on_Action_View_Fullscreen(void);
void on_Action_View_RefreshRoms(void);
void on_Action_View_ClearRomCache(void);
@@ -183,13 +181,10 @@ class MainWindow : public QMainWindow, private Ui::MainWindow
void on_VidExt_Init(void);
void on_VidExt_SetupOGL(QSurfaceFormat, QThread *);
void on_VidExt_SetMode(int, int, int, int, int);
void on_VidExt_SetWindowedModeWithRate(int, int, int, int, int);
void on_VidExt_SetFullscreenModeWithRate(int, int, int, int, int);
void on_VidExt_SetWindowedMode(int, int, int, int);
void on_VidExt_SetFullscreenMode(int, int, int, int);
void on_VidExt_ResizeWindow(int, int);
void on_VidExt_SetCaption(QString);
void on_VidExt_ToggleFS(bool);
void on_VidExt_Quit(void);
void on_Core_DebugCallback(CoreDebugMessageType, QString, QString);
};
+22
View File
@@ -103,6 +103,8 @@
<addaction name="action_View_GameList"/>
<addaction name="action_View_GameGrid"/>
<addaction name="separator"/>
<addaction name="action_View_UniformSize"/>
<addaction name="separator"/>
<addaction name="action_View_Fullscreen"/>
<addaction name="separator"/>
<addaction name="action_View_RefreshRoms"/>
@@ -445,6 +447,10 @@
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="tools-line">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>Toolbar</string>
</property>
@@ -453,6 +459,10 @@
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="information-line">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>Status Bar</string>
</property>
@@ -502,6 +512,18 @@
<string>Clear ROM Cache</string>
</property>
</action>
<action name="action_View_UniformSize">
<property name="checkable">
<bool>true</bool>
</property>
<property name="icon">
<iconset theme="function-line">
<normaloff>.</normaloff>.</iconset>
</property>
<property name="text">
<string>Uniform Size (Grid View)</string>
</property>
</action>
</widget>
<resources>
<include location="UIResources.qrc"/>
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5.33 3.271a3.5 3.5 0 0 1 4.254 4.963l10.709 10.71-1.414 1.414-10.71-10.71a3.502 3.502 0 0 1-4.962-4.255L5.444 7.63a1.5 1.5 0 1 0 2.121-2.121L5.329 3.27zm10.367 1.884l3.182-1.768 1.414 1.414-1.768 3.182-1.768.354-2.12 2.121-1.415-1.414 2.121-2.121.354-1.768zm-6.718 8.132l1.414 1.414-5.303 5.303a1 1 0 0 1-1.492-1.327l.078-.087 5.303-5.303z"/></svg>

After

Width:  |  Height:  |  Size: 478 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5.33 3.271a3.5 3.5 0 0 1 4.254 4.963l10.709 10.71-1.414 1.414-10.71-10.71a3.502 3.502 0 0 1-4.962-4.255L5.444 7.63a1.5 1.5 0 1 0 2.121-2.121L5.329 3.27zm10.367 1.884l3.182-1.768 1.414 1.414-1.768 3.182-1.768.354-2.12 2.121-1.415-1.414 2.121-2.121.354-1.768zm-6.718 8.132l1.414 1.414-5.303 5.303a1 1 0 0 1-1.492-1.327l.078-.087 5.303-5.303z" fill="#ffffff"/></svg>

After

Width:  |  Height:  |  Size: 493 B

+2
View File
@@ -25,6 +25,7 @@
<file alias="icons/black/svg/screenshot-2-line.svg">Resource/icons/black/svg/screenshot-2-line.svg</file>
<file alias="icons/black/svg/shut-down-line.svg">Resource/icons/black/svg/shut-down-line.svg</file>
<file alias="icons/black/svg/speed-line.svg">Resource/icons/black/svg/speed-line.svg</file>
<file alias="icons/black/svg/tools-line.svg">Resource/icons/black/svg/tools-line.svg</file>
<file alias="icons/black/svg/settings-3-line.svg">Resource/icons/black/svg/settings-3-line.svg</file>
<file alias="icons/black/svg/volume-up-line.svg">Resource/icons/black/svg/volume-up-line.svg</file>
@@ -50,6 +51,7 @@
<file alias="icons/white/svg/screenshot-2-line.svg">Resource/icons/white/svg/screenshot-2-line.svg</file>
<file alias="icons/white/svg/shut-down-line.svg">Resource/icons/white/svg/shut-down-line.svg</file>
<file alias="icons/white/svg/speed-line.svg">Resource/icons/white/svg/speed-line.svg</file>
<file alias="icons/white/svg/tools-line.svg">Resource/icons/white/svg/tools-line.svg</file>
<file alias="icons/white/svg/settings-3-line.svg">Resource/icons/white/svg/settings-3-line.svg</file>
<file alias="icons/white/svg/volume-up-line.svg">Resource/icons/white/svg/volume-up-line.svg</file>
</qresource>
@@ -53,6 +53,16 @@
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>.ndd/.64d (64DD Disks)</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
@@ -19,6 +19,7 @@
#include <QPixmap>
#include <vector>
#include <QList>
#include <QScrollBar>
using namespace UserInterface::Widget;
@@ -79,6 +80,7 @@ RomBrowserWidget::RomBrowserWidget(QWidget *parent) : QStackedWidget(parent)
this->listViewWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
this->listViewWidget->setSelectionBehavior(QTableView::SelectRows);
this->listViewWidget->setSelectionMode(QAbstractItemView::SingleSelection);
this->listViewWidget->setVerticalScrollMode(QAbstractItemView::ScrollMode::ScrollPerPixel);
this->listViewWidget->verticalHeader()->hide();
this->listViewWidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
this->listViewWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
@@ -110,13 +112,14 @@ RomBrowserWidget::RomBrowserWidget(QWidget *parent) : QStackedWidget(parent)
this->gridViewWidget->setFlow(QListView::Flow::LeftToRight);
this->gridViewWidget->setResizeMode(QListView::Adjust);
this->gridViewWidget->setMovement(QListView::Static);
this->gridViewWidget->setUniformItemSizes(true);
this->gridViewWidget->setUniformItemSizes(CoreSettingsGetBoolValue(SettingsID::RomBrowser_GridViewUniformItemSizes));
this->gridViewWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
this->gridViewWidget->setViewMode(QListView::ViewMode::IconMode);
this->gridViewWidget->setTextElideMode(Qt::ElideNone);
this->gridViewWidget->setTextElideMode(Qt::TextElideMode::ElideNone);
this->gridViewWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
this->gridViewWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
this->gridViewWidget->verticalScrollBar()->setSingleStep(15);
this->gridViewWidget->setWordWrap(true);
this->gridViewWidget->setUniformItemSizes(false); // TODO? make this configurable maybe
this->gridViewWidget->setContextMenuPolicy(Qt::ContextMenuPolicy::CustomContextMenu);
this->gridViewWidget->setFrameStyle(QFrame::NoFrame);
int iconWidth = CoreSettingsGetIntValue(SettingsID::RomBrowser_GridViewIconWidth);
@@ -178,6 +181,17 @@ RomBrowserWidget::RomBrowserWidget(QWidget *parent) : QStackedWidget(parent)
this->contextMenu->addSeparator();
this->contextMenu->addAction(this->action_SetCoverImage);
this->contextMenu->addAction(this->action_RemoveCoverImage);
// configure current view widget
int currentView = CoreSettingsGetIntValue(SettingsID::RomBrowser_ViewMode);
if (currentView == 0)
{
this->currentViewWidget = this->listViewWidget;
}
else
{
this->currentViewWidget = this->gridViewWidget;
}
}
RomBrowserWidget::~RomBrowserWidget()
@@ -245,6 +259,24 @@ void RomBrowserWidget::ShowGrid(void)
}
}
void RomBrowserWidget::SetGridViewUniformSizes(bool value)
{
// refresh ROM list when we're currently in the grid view
// and we're not refreshing already
if (this->currentWidget() == this->gridViewWidget &&
!this->IsRefreshingRomList())
{
if (this->gridViewWidget->uniformItemSizes() != value)
{
this->gridViewWidget->setUniformItemSizes(value);
this->RefreshRomList();
return;
}
}
this->gridViewWidget->setUniformItemSizes(value);
}
QStandardItemModel* RomBrowserWidget::getCurrentModel(void)
{
QWidget* currentWidget = this->currentWidget();
@@ -324,12 +356,25 @@ QIcon RomBrowserWidget::getCurrentCover(CoreRomHeader header, CoreRomSettings se
QString::fromStdString(settings.GoodName),
QString::fromStdString(header.Name) })
{
// fixup file name
QString fixedName = name;
for (const char c : ":<>\"/\\|?*")
{
// skip empty characters
if (c == '\0')
{
continue;
}
fixedName.replace(c, "_");
}
// we support jpg & png as file extensions
for (QString ext : { ".png", ".jpg", ".jpeg" })
{
QString coverPath = this->coversDirectory;
coverPath += "/";
coverPath += name;
coverPath += fixedName;
coverPath += ext;
if (QFile::exists(coverPath) &&
@@ -51,6 +51,8 @@ class RomBrowserWidget : public QStackedWidget
void ShowList(void);
void ShowGrid(void);
void SetGridViewUniformSizes(bool value);
private:
Widget::RomBrowserEmptyWidget* emptyWidget = nullptr;
Widget::RomBrowserLoadingWidget* loadingWidget = nullptr;
+6 -7
View File
@@ -81,7 +81,7 @@ static m64p_error VidExt_ListRates(m64p_2d_size Size, int *NumRates, int *Rates)
return M64ERR_UNSUPPORTED;
}
static m64p_error VidExt_SetModeWithRate(int Width, int Height, int RefreshRate, int BitsPerPixel, int ScreenMode, int Flags)
static m64p_error VidExt_SetMode(int Width, int Height, int BitsPerPixel, int ScreenMode, int Flags)
{
if (!l_VidExtSetup)
{
@@ -90,23 +90,23 @@ static m64p_error VidExt_SetModeWithRate(int Width, int Height, int RefreshRate,
switch (ScreenMode)
{
default:
case M64VIDEO_NONE:
return M64ERR_INPUT_INVALID;
case M64VIDEO_WINDOWED:
l_EmuThread->on_VidExt_SetWindowedModeWithRate(Width, Height, RefreshRate, BitsPerPixel, Flags);
l_EmuThread->on_VidExt_SetWindowedMode(Width, Height, BitsPerPixel, Flags);
break;
case M64VIDEO_FULLSCREEN:
l_EmuThread->on_VidExt_SetFullscreenModeWithRate(Width, Height, RefreshRate, BitsPerPixel, Flags);
l_EmuThread->on_VidExt_SetFullscreenMode(Width, Height, BitsPerPixel, Flags);
break;
}
return M64ERR_SUCCESS;
}
static m64p_error VidExt_SetMode(int Width, int Height, int BitsPerPixel, int ScreenMode, int Flags)
static m64p_error VidExt_SetModeWithRate(int Width, int Height, int RefreshRate, int BitsPerPixel, int ScreenMode, int Flags)
{
VidExt_SetModeWithRate(Width, Height, 0, BitsPerPixel, ScreenMode, Flags);
return M64ERR_SUCCESS;
return VidExt_SetMode(Width, Height, BitsPerPixel, ScreenMode, Flags);
}
static m64p_function VidExt_GLGetProc(const char *Proc)
@@ -116,7 +116,6 @@ static m64p_function VidExt_GLGetProc(const char *Proc)
static m64p_error VidExt_GLSetAttr(m64p_GLattr Attr, int Value)
{
switch (Attr)
{
case M64P_GL_DOUBLEBUFFER:
+4 -6
View File
@@ -29,13 +29,10 @@ function findAndCopyDLL() {
}
for ext in dll exe
for file in "$bin_dir"/*.exe "$bin_dir/Plugin"/*/*.dll
do
while read -r file_line
do
echo "=> Copying dependencies for $file_line"
copyForOBJ "$file_line"
done < <(find "$bin_dir" -name "*.$ext")
echo "=> Copying dependencies for $file"
copyForOBJ "$file"
done
windeployqt-qt6 "$exe"
@@ -43,5 +40,6 @@ windeployqt-qt6 "$exe"
# needed by Qt at runtime
cp "$path/libcrypto-1_1-x64.dll" "$bin_dir/"
cp "$path/libssl-1_1-x64.dll" "$bin_dir/"
cp "$path/libjpeg-8.dll" "$bin_dir/"
exit 0