Age | Commit message (Collapse) | Author |
|
Doing <elem>.disabled = true is the same as
<elem>.setAttribute("disabled", ""), same with <elem>.disabled = false,
being the same as <elem>.removeAttribute("disabled")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* [feat] adding methods signature to alert when selected game path is falsy
* [feat] a game path is valid if it contains 'Titanfall2.exe' file
* [feat] adding translations for wrong gamepath key
* [feat] if a wrong path has been selected, ask for it again
* formatting and removing useless function
Given we only use checkGamePath() once there's no need to even have a
function for it.
Co-authored-by: 0neGal <mail@0negal.com>
|
|
|
|
* [refactor] moving main.setPath listener outside start method
* [refactor] setpath tells if game path is set or not
* newpath event tells if game path dialog is successful or not
* [feat] main window will not show if path is not set
* [feat] viper displays a dialog and exits if no game path was prompted
* [fix] viper prompts for game path if viper.json:gamepath is not set
* [feat] translating gui.gamepath.must key
* code cleanup
fixing single quotes and alike
* fix gui.gamepath.must message
Co-authored-by: 0neGal <mail@0negal.com>
|
|
|
|
|
|
If a mod decided to put their actual mod files inside a folder inside a
folder it'll search sub folders to try and find them and usually it's
able to install it.
Meaning, if instead of the mod being structured as such:
mod/
mod.json
other files ...
It is structured as such:
folder/
mod/
mod.json
other files ...
This will be very useful for zip files... As some people tend to archive
a folder and not make an archive with the files in it. Leading to the
above structure...
|
|
Along with the ability to scroll it!
|
|
|
|
Smoothly updates and works flawlessly, the only thing that really needs
improvements is the design and on top of that installing mods from a Zip
file over folder.
|
|
Mostly, the installing part needs a bit more look at, to support
archives and different layouts for the mod. Such as searching through an
archive to find the right folder because some mods don't use a proper
layout. I also somewhat mitigated the whole issue of JSON files not
being formatted properly by the mod developer (please just fix your
formatting, I beg you.) by simply assigning the absolute basics, however
we can't know the versions of the mods.
I am not going to go out of my way to write code which can parse a file
that wasn't made to be parsed because whoever wrote it doesn't know what
a JSON file is made of. Simply not happening.
I also added a few locatiolization related things, along with more info
for --mods, so besides the normal counter for "Installed mods" you also
have "Enabled mods" and "Disabled mods", very useful.
The GUI also has a new added "Disabled" tag to mods that are disabled,
however this is a temporary, it looks bad and I don't want it in
release, I just needed a way to distinquish when testing.
Because you can now also enable and disable mods, mods.list() gives back
an Object that goes more or less something like:
{all: ..., enabled: ..., disabled: ... }, take your guesses as to what
everything means, you might even get it in the first try.
|
|
|
|
* [chore] adding electron-updater dependency
* [feat] adding auto-updating mechanism
* [chore] setting package version to v0.8.0
* [fix] restoring original repo URL
* [docs] adding some documentation about publishing new releases
* [chore] adding publish:windows command
* [docs] updating publish instructions with new publish command
* [chore] adding publish:linux command
* [docs] updating publish instructions
* --updatevp, and option to disable auto updates
If you want you can set "autoupdates" to false in your config, no GUI
tools to do this yet. For the CLI auto updates is off by default and
you'll have to use --updatevp.
I also removed the snap package, tho whether this stays as a change is
still to be discussed.
And with the new option I updated the help menu, the man page and
everything along else that needs it.
* removed "soon" parts of README for auto-updates
* [feat] adding French translation for cli.help.updatevp key
* confirmation for restarting the app
Now instead of automatically updating and restarting the app, which may
be slightly confusing to some users, (the app opens then closes and then
opens), it now asks whether you want to restart and open the new
version. If you say no, instead next time you launch it, it'll be on the
new version.
If you want to completely disable updates you can disable it in the
viper.json file...
* [feat] adding French translation for gui.update.available key
* added configuration instruction in README
Co-authored-by: 0neGal <mail@0negal.com>
|
|
|
|
|
|
|
|
into Alystrasz-feat/version-indicator
|
|
|
|
|
|
|
|
|
|
The buttons in the GUI disable whilst you're updating Northstar and
potentionally doing other things in the future, I also added a way to
log things in the app, albeit it just prints it in the "Welcome to
Viper!" part of the app, which is just fine.
I also added all the needed language strings for the GUI logs and
removed "gui.missinggamepath" as we use it for both the CLI and GUI even
tho "general.missinggamepath" exists, and so we now use the general one
for both, as the messages are the same.
|
|
The version now refreshes when you update/install Northstar, I renamed
vpVersion/nsVersion to just vpversion/nsversion and
getInstalledVersion() to getNSVersion(), removed uses of
getElementById() with just the ID. I also added English localization.
The versions text color is now bound by a CSS variable (we may use it in
the future again).
I'm also not sure what the point of `style="white-space: nowrap;"` was,
as I don't see much of a difference? Rather instead use `<nobr>` in the
lang file if needed.
Besides that I did tiny code cleanup.
|
|
Simply code style changes, also removed the content of the version divs
since they'll be replaced anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This should more or less ensure everything remains responsive even if
the language is one with very long strings.
|
|
|
|
|
|
This may or may not be how we actually do localization in the future,
however for now this seems doable. I will obviously need to look at how
we detect the language, as I think instead of relying on names like
"en-US" just have "en", so we don't have to symlink various editions of
English to the same file. But for now this is a draft, and the important
part of this is rather how the underlying localization works.
|
|
We now just use a fixed string ("viper.json")
|
|
However, I can't figure out a way to directly exclude it in the unzip
package, hence, it just renames the original to "<file>.excluded" when
the extraction is done it then renames it back to it's original aka
"<file>", overwriting what was extracted, which essentially excludes
some files.
If there exists an unzip library/package that has options for excluding
files we should move to that, but until something as such is found the
current way is how we'll do it.
|
|
This uses your system appearance to figure out which one to use. Meaning
the people with dark mode enabled on Windows or through their GTK/QT
theme will still see dark mode...
|
|
This means systems (like most Windows installs) that don't have the font
can still be allowed to see it in all it's glory.
|
|
I removed the titlebar, which I already had gone on my Linux system,
besides that I also made it so the body of Viper can be held down to
drag it around. And then added an exit button.
|
|
Im a dumbass and made a tiny mistake...
|
|
I haven't tested this on Windows... And I will in a bit...
|
|
|
|
Everything is now in utils.js and simply gets called through IPC calls
which make it quite simple to add CLI arguments...
|