Daniel Johnson
d5bd4b3504
Ack, I botched the border_width!
...
How'd that happen?
Remove the botch, now it looks a bit less dumb.
2022-10-08 09:55:11 -04:00
Daniel Johnson
1e53b52805
Correct runner_executable in basiliskii.json
...
It needs to refer to the post-extraction executable. So now it can install!
Resolves #4445
2022-10-08 09:53:35 -04:00
Daniel Johnson
e78cea0d3a
Correct melonds.json
...
The direcotry name is 'melonds', lowercase.
2022-10-08 09:46:33 -04:00
Daniel Johnson
9b8622c32f
Provide a directory property on the runner
...
Many places can use this to be more readable, and I've updated some.
Many subclasses of Runner might still benefit.
But the real win is fs-uae. This still installs in 'fs-uae' not the
expected 'fsuae'; overriding directory lets us work around this.
So, now you can uninstall fs-uae.
2022-10-08 09:43:12 -04:00
Daniel Johnson
bcc3ea86d0
Update the DownloadDialog to the ModalDialog base class
...
This actually does no good yet because there's no way to get a parent in there.
2022-10-08 08:53:05 -04:00
Daniel Johnson
cbd0e41127
Change base class of MoveDialog
...
What this does is let us center the MoverDialog over its parent, while remaining modeless.
2022-10-08 08:43:27 -04:00
Daniel Johnson
c013372248
Oops; shouldn't have committed this change, it was for testing.
2022-10-08 08:33:42 -04:00
Daniel Johnson
8e50c515f3
Corrections to the DontShowAgainDialog
...
This should not have a border-width; it looks really goofy.
Also, set the default response so 'Enter' can close this dialog.
2022-10-08 08:32:35 -04:00
Daniel Johnson
520b3e29bd
Update the buttons in the InstallerSourceDialog
...
It's a modeless dialog, but enter-to-close is still convenient to have.
2022-10-08 08:28:20 -04:00
Daniel Johnson
7ab205e267
Update the buttons in the LauchConfigSelectDialog
...
But it's not properly modal yet; no way to get a toplevel in the Game class, That's too big to fix now; I'll PR somethi8ng later.
2022-10-08 08:17:28 -04:00
Daniel Johnson
1c07f4e7c8
Whoops; action == None is also used for plain GUI startup. I need a real 'cancel' actrion!
2022-10-08 08:11:51 -04:00
Daniel Johnson
686b471e89
Colorize the install-or-play dialog
...
This is summoned from the command line. So, if the user cancels the
dialog, exit Lutris.
2022-10-08 08:07:55 -04:00
Daniel Johnson
de4a77dcb3
Make the WebConnect dialogs properly modal
...
They have set_modal(True) on them so I think they were intended to be modal.
2022-10-08 07:56:21 -04:00
Daniel Johnson
738329d737
And lets turn the 'Uninstall' buttons in the WINE versions red too!
...
Yes, I'm painting the app red. What of it?
2022-10-08 07:17:39 -04:00
Daniel Johnson
3d8ba33f1a
Restyle the Uninstall and Remove dialogs with 'destructive-action'
...
This turns the "Uninstall" and "Remove" buttons here red.
2022-10-08 07:14:54 -04:00
Daniel Johnson
5cab2a8335
Use fancier buttons for the WINE versions dialogs.
2022-10-08 07:09:10 -04:00
Daniel Johnson
8348d22757
Improved support for css_classes in buttons; explicit ModalDialog base class
2022-10-08 07:08:34 -04:00
Daniel Johnson
32a6e8accf
Further fixes for the CacheConfigurationDialog
...
This dialog wasn't quite all there.
I've put in Cancel and OK buttons, with proper keyboard shortcuts and
styling.
Also, the file chooser did not work properly here, probably because it
needs to be modal.
So, use run() instead of show(), and no 'response' signal stuff.
2022-10-07 20:33:14 -04:00
Daniel Johnson
e09d5d58be
Revert "A further attempt to pipe configs into runners wherever possible, and to also get the 'exe' and 'prefix' in there."
...
This reverts commit 49d093a6b2
.
2022-10-05 17:53:44 -04:00
Daniel Johnson
0464e1691d
Revert "Also the working dir, just in case."
...
This reverts commit 5cfbc12696
.
2022-10-05 17:53:22 -04:00
Daniel Johnson
5cfbc12696
Also the working dir, just in case.
2022-10-05 17:46:38 -04:00
Daniel Johnson
49d093a6b2
A further attempt to pipe configs into runners wherever possible, and to also get the 'exe' and 'prefix' in there.
2022-10-05 17:38:50 -04:00
Daniel Johnson
aa04aa58e6
Fix missing game dependency code
...
It needs to fetch the *dependencies* installer, not just try to use
the current installer list.
Also, we do support multiple InstallerWindows; no need to close the
original. We'll want it once the dependency is in!
Resolves #4539
2022-10-03 19:12:20 -04:00
Daniel Johnson
bc171689e7
Use new UnavailableRunnerError more
2022-10-02 18:53:50 -04:00
Daniel Johnson
f8374dbc91
Fix warnings and tests.
...
The has_explicit_config flag is needed in libretro, it turns out.
2022-10-02 15:45:27 -04:00
Daniel Johnson
cc509641f0
Generalize the fix to all runners
...
Unstab the stab in the dark. It worked, but the wineexec hack is a hack.
Instead, runners 'always' have a self.config, and
lazy allocate a LutrisConfig on demand if need be.
This won't have game configuration, so a separate flag drags if we were given an
explicit game config so we can preserve the warning about that.
2022-10-02 15:26:08 -04:00
Daniel Johnson
8321bfe607
Try to get a reasonable config in there for wineexec.
2022-10-02 14:43:07 -04:00
Daniel Johnson
526485fd38
Report errors in InstallerDialog from some awkward cases
...
Specifically, the click handlers for CD-ROM insertion
and the 'launch_install' method need special case handling.
2022-10-02 10:08:01 -04:00
Daniel Johnson
1131b3f237
Correct behavior for the 'create shortcut' checkboxes
...
They should support being unchecked, not just checked.
It is very import to support indecisiveness. Or maybe not.
2022-10-02 09:51:19 -04:00
Daniel Johnson
005d31d480
More comprehensive error reporting for InstallerWindow
...
InstallerWindow has been a real sore point for good error reporting;
lets try to fix it.
This commit uses @watch_errors() to provide error handling on all the
signal handlers in InstallerWindow,
Some of the methods named 'on_xxx' were not signal handlers.
I have renamed these.
Some were signal handlers, but were also directly called too.
I've split these into an on_xxx method with @watch_errors and
another method without.
The idea is that errors should be reported before GTK sees them,
but otherwise should propagate through the code as before.
2022-10-02 09:43:49 -04:00
Daniel Johnson
43105dca99
Rename exception classes to end with 'Error'
...
Most of them do already, so let's be consistent.
2022-10-02 09:17:04 -04:00
Daniel Johnson
9db9c3a318
Mark many error messages as localizable
...
Just adding _() to message that seem to me intended for end users.
2022-10-01 15:44:12 -04:00
Daniel Johnson
c6e4c3f6c7
Provide for a return of 'True' for some signal handlers
...
I do not see why this is actually needed, but I presume it is.
2022-10-01 09:22:23 -04:00
Daniel Johnson
ef0d02afdb
Extend error handling LutrisWindow
...
Just to the view activation handler. But I think we'll want to extend
this, so I used @watch_errors here also.
2022-10-01 08:19:11 -04:00
Daniel Johnson
9fe60c814c
Error handling for game events on Application
...
This is done with a decorator like @watch_lutris_errors, but it is
a more simpler, more general design that calls back into 'self'.
I've also renamed watch_lutris_errors to watch_game_errors;
I think that's a clearer name.
Resolves #4489
2022-10-01 08:05:00 -04:00
Daniel Johnson
a656bc6c77
Report any exception from the ScriptInterpreter initialization.
...
Also, allow another installer to be selected after this.
2022-10-01 07:39:59 -04:00
Daniel Johnson
3032a45103
When the WINE exe is missing, we raise an exception that is not being handled or reporting.
...
So, replace it with a specific exception and catch it so lutris can start and the replacements dict can be generated (with None for WINEBIN).
Resolves #4533
2022-10-01 07:30:22 -04:00
Daniel Johnson
1eb192b3c4
Disable pylint no-member warning for extract_icon
...
This class is uses dynamically generated 'structures' and pylint can't
figure that out, so just silence it.
2022-09-29 04:29:47 -04:00
Daniel Johnson
369c1c416f
Add exception handling to icon extraction
...
We wouldn't want the save to fail just because we can't get an icon, and
rooting around in an EXE for an icon has got to be fraught with failure.
This will now log the error and continue with the save.
2022-09-28 04:36:32 -04:00
Daniel Johnson
0f2bb0ebae
Update icon extraction to use new custom_images set
...
It was written before this set went in, and not updated when it was
merged.
2022-09-28 04:22:24 -04:00
Daniel Johnson
dbe68f4453
Fix pylint warnings
...
These were not detected when extract_icon was in the wrong directory.
2022-09-28 04:19:08 -04:00
Daniel Johnson
77d00fefdc
Move extract_icon to a more appropriate directory
...
./utils contains stand alone utility scripts; utility routines used
by wine seem to be in lutris/util/wine, so lets move this there.
I am hoping this will address issue #4529
2022-09-28 03:55:15 -04:00
Daniel Johnson
93bb0cbddd
Insert some missing error handling
...
Specifically, provide callbacks for AsyncCall() that will report errors
when there's no callback or it ignores errors.
2022-09-27 18:46:03 -04:00
Daniel Johnson
67b3c0cc44
Replace the last ErrorDialog in game
...
But this time with a NoticeDialog. This is done with a new signal,
game-notice, just for this.
LutrisWindow handles it rather like game-error.
2022-09-26 20:28:16 -07:00
Daniel Johnson
3f6facbe77
Emit game-error directly if the death watch fails
...
This removes one more ErrorDialog, from the game class.
2022-09-26 20:28:16 -07:00
Mathieu Comandon
5ee931679e
Handle pefile not being installed
2022-09-26 20:26:56 -07:00
Fedi Takeli
f69a04b043
formatting
2022-09-26 20:16:42 -07:00
Fedi Takeli
555178c87e
add
2022-09-26 20:16:42 -07:00
Fedi Takeli
df341efd3a
extract icon call in on_save
2022-09-26 20:16:42 -07:00
Fedi Takeli
363e5cba8e
init - extract_icon
2022-09-26 20:16:42 -07:00