Commit Graph

199 Commits

Author SHA1 Message Date
terrymacdonald
c1ce153c68 Updated Shortcut saving to work with the library
Updated the 'Save To Desktop' button in the
ShortcutLibraryForm to use the CreateShortcut
function in the ShortcutItem, and fixed that so
it now uses the IWshRuntimeLibrary to create
a Windows Script Host that will create the
shortcut.
2020-07-21 19:50:41 +12:00
terrymacdonald
85963b3417 Fixed ShortcutAdaptor errors and Saved prompt
Did a fix for the SHortcutAdaptor doing exceptions
for showing the form before loading all the graphics
but can't really do much about it without adding
background loading to the main form. This is a lot of
work considering we'll be moving from WinForms
to WPF UI in the future.

Also fixed the 'Do you want to save' prompt detection
logic so that it correctly waits until all the loading has
finished before monitoring for users making changes.
Should stop the form incorrectly suggesting you
should save unless they've really made a change.
2020-07-15 20:11:38 +12:00
terrymacdonald
0e985238f9 Fixed 'save your changes' message on load
The 'change' detection logic now works (mostly)
but it still incorrectly triggers if you change tabs,
even if the settings don't change. Should probably
look at a proper fix.
2020-07-13 19:53:25 +12:00
terrymacdonald
5b396032ff Shortcut names now update if profile name changed
If a shortcut has Autoname turned on, and if the user
changes the name of the profile, then the shortcut will
be renamed to keep pace with the new profile name.
If autoname is NOT turned on, then the shortcut name
will be kept as is, and the user will need to make any
changes. Please note that HeliosPlus will not make
any changes to any desktop shortcuts saved to the PC.
It will only change the name of the shortcut in the
shortcut library within the App.
2020-06-15 21:57:46 +12:00
temacdonald
23e1dbd244 Transitioned Profiles to using ProfileRepository
Moving to using a ProfileRespository will make it
easier when moving to a WPF style app, and it will
allow some freedom if I want to change the storage
to a database or soemthing different.
2020-06-14 16:20:52 +12:00
temacdonald
5bfc01365f Fixed Shortcut icon in ImageListView
Fixed the underlying Shortcut generation process
but still have yet to add it to the Shortcut Icon saved
in the Shortcut library.
2020-06-13 21:06:42 +12:00
temacdonald
e7ad4dc847 [WIP] Fixing Shortcut Bitmap
Partially completed bitmap work.
Need to implement generic bitmap
resizing to work with small and large
icons, and for different sizes for overlay
bitmap.
2020-06-07 20:48:45 +12:00
Terry MacDonald
f59490a1ff [WIP] Improved Shortcut handling
Created ShortcutRepository which handles
the loading/saving and lifecycle management
of shortcuts. There can only be one shortcut
repository at a time, hence it's mainly static
methods.

Also started down the path of troubleshooting
the profileIcon overlays. The ToBitmapOverlay
still isn't working properly, so I need to figure
out how it was working originally, and how I
broke it :). Then I need to unbreak it.
2020-06-01 22:25:52 +12:00
Terry MacDonald
b31d233678 [WIP] Attempting to create Shortcut ID
Partial attempt at a Shortcut ID. Need
to refactor slightly to move more logic
to the Shortcut itself rather than in the
form!
2020-05-31 22:09:43 +12:00
Terry MacDonald
4d8e69d6ba [WIP] Redesign to tabs based shortcut form
Changed the shortcutform to use tabs instead
of a large single form. Having to update all the
logic is taking ages.
2020-05-31 14:56:22 +12:00
temacdonald
19a2f1543e [WIP] Progressing ShortcutLibrary loading
Still having issues with the shortcutAdaptor for the
Imagelistviewitem loading. Even though it's based
on the same code as the profileAdaptor it's not
reading the Shortcut bitmap properly. Too tired to
figure out why at the moment, so will be trying again
tomorrow. I expect its something to do with the
different Bitmap format for the two options. May
need to revise that to compare image data.
2020-05-19 21:41:26 +12:00
temacdonald
9dab00bdb4 [WIP] Sort out the ShortcutForm controls
The logic I chose for the ShortcutForm controls is
really not suited towards distributed logic. I am
going to have to centralise the logic into a single
function that will evaulate when to enable the
save button.
2020-05-17 21:19:55 +12:00
temacdonald
4412a75bd9 [WIP] Finished the draft Shortcut class
Have created the Shortcut class for use within the
ShortcutLibrary. Next step is modifying the
ShortcutForm to generate a Shortcut so that I
can check the loading and saving is working ok.
I won't concentrate on the ShortcutForm redesign
until this bit is tested.
2020-05-16 23:16:46 +12:00
temacdonald
d7c4c1f53d [WIP] Initial shortcutlibrary form
Created the initial form for the shortcut library
and will now start working on getting the
shortcuts saving to a similar json format as
the display profiles.
2020-05-16 17:07:52 +12:00
temacdonald
423b3fb656 Working direct Profile to ImageListView
Manged to get the ImageListView working directly
from the Bitmap stored in the Profile. This makes
the refresh of the ILV much faster, and makes it way
easier to use it in other UI forms.
2020-05-16 15:58:59 +12:00
temacdonald
470cba0a1d Renamed the directories to HeliosPlus 2020-05-15 23:25:14 +12:00
temacdonald
18e51f8f50 Updated the README for new repository. 2020-05-15 23:20:20 +12:00
temacdonald
cfee071047 [WIP] Started dev of the ImagelistView ProfileAdaptor
Started to work on getting the profile images directly
into the imagelistview rather than doing it via files.
Wasn't a fan of doing icons by file but it was the fastest
way to getting things going. Now going to try and sort
it out so I feel a bit bettter about the code.
2020-05-15 23:08:44 +12:00
temacdonald
e91858836d Adjusted ApplyingChangingForm
Simplified the ApplyingChangingForm size positioning
and made the messages a bit less technical. Also added
in a submessage so that can explain things a bit better
in the future if we need to.
2020-05-15 22:25:44 +12:00
temacdonald
da6fbc610e Tidied up some unneeded references 2020-05-15 21:02:44 +12:00
temacdonald
816950b744 Added upstream sleep improvements
Added Matthew Mark Strasiotto's sleep improvements
to GREATLY speed up applying a new display profile.
2020-05-15 20:52:16 +12:00
temacdonald
9685a7c358 Working renovated DisplayProfilesForm
Finished the rework of the DisplayProfilesForm so
that the correct states are kept throughout the
lifecycle of the display profile. It handles changes
to current display profile, and seems to work fine.
Future improvements will be to make the
imagelistview use bitmaps in memory rather than
the images on disk, but that will be done under
another branch.
2020-05-15 15:41:01 +12:00
temacdonald
61d09e2f2f Fully working Display Profile Form
Display Profile Form now works and handles all the
adding, removing of the display profiles. I've fixed
the comparison (Equals/Contains) for the various
forms so that profile.equals() works well. This fixed
IsActive and IsAvailable as well.
2020-05-14 22:38:31 +12:00
temacdonald
f0db474086 [WIP] Remaking Equals and Contains for Profiles
The existing comparisons didn't work well, and my earlier
changes didn't help at all. Decided to recreate them from
Microsoft's latest documentation. Nearly completed it but
need to finish off SurroundTopoly and do proper testing.
2020-05-13 23:04:18 +12:00
temacdonald
5be1aacc87 [WIP] Trying to fix Profile.IsPossible 2020-05-12 22:46:23 +12:00
temacdonald
c1d69ab8e1 [WIP] - Mostly working DisplayProfilesForm
The DisplayProfilesForm is mostly working, but it doesnt
cope with invalid profiles yet. This is where the profile
was set in a different configuration of screens, but those
screens have physically or OS level changed, meaning the
profile can't be used. This is handled in the Profile.IsPossible
function, and currently that appears to be broken. It needs
fixing.
2020-05-11 23:11:26 +12:00
temacdonald
861f1585b2 [WIP] Nearly completed refactor of DisplayProfileForm
Nearly have it working. It now saves, loads and renames
the display profiles. Need to fix up the delete, apply buttons
and make it remove the old ilv images when we rename
profiles.
2020-05-10 22:47:18 +12:00
temacdonald
7196791298 [WIP] Redeveloping the display profile window
Trying to simplify the display profiles window to
avoid the confusion I had when I started using
the program.
2020-05-10 01:02:07 +12:00
temacdonald
cd63bd1f98 Added the HeliosPlus Icon properly 2020-05-03 20:40:42 +12:00
temacdonald
cc42c05bd7 Created new Main Form to separate main tasks
It seemed to me that it would make more sense to
separate tht two main tasks completely and have them
independent from each other in the program. So I
created a new MainForm that opens up either a
'Setup Display Profiles' or 'Setup Game Shortcuts'
window depending on what the user clicks.
    The idea is that Display Profile setup only happens
when the app is first installed, and after that it's just
the game shortcut that gets updated.
    Also created a first attempt at a new HeliosPlus Icon.
2020-05-03 20:39:35 +12:00
temacdonald
205dcdf2c7 Fixed SteamGame.ToString()
Also removed some unusued code from ShortcutForm.
2020-05-02 14:51:28 +12:00
temacdonald
25abab0246 Fixed low-res icons and running shortcuts
The icons were way too low res due to the use
of the built-in windows fileextracticon which only
extracts the 32x32 icon. This was making the list
of games look pretty bad. Fixed it now so it extracts
the PNG where possible. Also adjusted the extraction
so that the files are all extracted when the Shortcut form
is loaded.
    Also fixed the commandline options that result in
a Steam game being run, so that they now work. Also
fixed up the names of the extracted icons and made the
suggested naming of the shortcut more reliable and
less likely to include usable characters.
2020-05-01 22:30:27 +12:00
temacdonald
ae1a759be4 [WIP] Changing Icon lib libraries
The current Icon Library is old and I haven't been
using it properly :). I need to use something different
and the IconExtractor library is still being updated
whereas the IconLib.Unofficial isn't any longer.
2020-04-29 22:29:43 +12:00
temacdonald
04c93e283a Fixed commandline so shortcuts would work
Had to adjust both the order and structure of the command
line so that the shortcuts would work, and wouldn't make
people crazy! And adjusted the shortcut creator to make sure
it generated correct shortcuts. Still a lot of edge cases sitting
in there so need some good testing.
    Also disabled the CreateShortcut option, as it doesn't really
work with the future combined list of multiple game library
families.
    So the main command line options now are:
- SwitchProfile permanent ... = swaps to a new display profile
- SwitchProfile exe ... = temp swaps to profile and runs an exe
- SwitchProfile steam ... = temp swaps to profile and runs a steam game
- SwitchProfile uplay ... = temp swaps to profile and runs a uplay game
- EditProfile ... = goes straight to the edit display profile screen
- <none>   = starts up the graphical UI.
2020-04-28 22:38:43 +12:00
temacdonald
322fbcb305 Fix shortcutform to start on game Library option
The form was starting on the temporary executable
option, and thats not what people will use. So made it
start on the Game Launcher option instead.
2020-04-27 22:59:45 +12:00
temacdonald
8f41b94427 [WIP] Massive redevelopment to alter shortcut form
Added in a binary VDF reader to find and figure out all
of the Game Icons, Exe locations, Names, Ids and
Install Dirs all from the local file syste,m. It makes the
shortcuts populate within 1 second, rather than the
60 seconds it was taking beforehand. Users should
love the newfound responsiveness.
2020-04-27 22:55:44 +12:00
temacdonald
a9bb295d1f Renamed app to HeliosPlus namespace and more
Renamed app to HeliosPlus namespace so that the updated
changes don't interfere with HeliosDisplayManagement if
that is also installed. The fact that I've changed so much of
the app means that my changes would be unlikely to be
accepted by Soroush, so I'm best to release this work in a
similar way to other projects like Notepad++, by keeping
the same root name, and adding a plus.
    I've also changed the Shortcut form to put all the games
in a single list to reduce the number of clicks a user has to
do in order for them to create a shortcut. I have begun to
prepare the form so that it will support multiple game
libraries, but now I am at a point that I need to fix the Steam
and Uplay game detection mechanisms so that they report
the correct information for the lv_games list view.
2020-04-23 20:16:16 +12:00
temacdonald
413525f9a1 [WIP] Modified shortcut generation and Uplay skeleton
The programme compiles with the commandline changes
and the changes to the shortcut form, including aligning
the shortcut generation with the new command line.
   The Uplay skeleton has been disabled for now as I'm
concentrating on getting the commandline args working
and fixing the annoying errors in the way the MainForm
and the ShortcutForm work. Probably have a couple more
days work to fix that.
2020-04-22 23:46:31 +12:00
temacdonald
e71b5bcb29 [WIP] Refactor to use CommandLineUtils and change Shortcut Form
Changed to use natemcmaster's CommandLineUtils library to provide
flexbility for command structure, and enable the use of custom
validators which allow us to make sure that the command line options
provided are accurate. This removes the need for all the individual
exceptions being thrown across the main application.
    Also started the modification of the CreateShortcut Form to make
it easier to use and more self explanatory.
    And finally started the integration of Uplay into the application so
that users can use Uplay as well as Steam to select their games.
2020-04-19 17:37:29 +12:00
temacdonald
34337a0255 [WIP] Testing new CommandLineParser version 2020-04-16 22:49:11 +12:00
temacdonald
6bfb3edfba [WIP] Added basic Uplay files based on Steam
This is a basic copy and rename of the Steam files within the app.
Will be developing the Uplay discovery functionality over the
following weeks.
2020-04-14 22:20:41 +12:00
temacdonald
c061c5c32c Converted back to CommandlineParser
Converted back to CommandLineParser as there is better ability to
format the Help Text for error messages generated by additional checks
we're now performing after the commandline options have already been
parsed.
2020-04-14 22:18:52 +12:00
temacdonald
476d6bfcb5 Added ability to use profile name
Added ability to use profile name within speech
marks instead of profile ID if the user wants. Added
initial set of checks to warn the user when the
command line options are in an incompatible
state (wrong options used together).
2020-04-13 22:10:35 +12:00
temacdonald
38c6302c8a Converted to .Net4.8 and System.CommandLine.DragonFruit
Migrated to the latest .Net Framework (v4.8) and changed to
System.CommandLine.DragonFruit for the parameter processing
as CommandLineParser completely altered their required
programme structure which meant something had to change.
Figured using Microsoft's own poduct would be best.
2020-04-13 15:47:38 +12:00
Soroush
22b24746df
PayPal donation link removed temporarily 2019-04-17 05:49:48 +04:30
Soroush
5d2dda9441
Update README.md 2019-01-25 01:41:32 +03:30
Soroush
c4a1d4f541
Update issue templates 2019-01-18 18:20:08 +03:30
Soroush
ef1d6acc58
Readme updated and now contains badges 2019-01-18 18:03:24 +03:30
s_falahati
b4230b44a8 Readme file updated 2019-01-17 21:02:10 +03:30
s_falahati
e6e7c2a065 ShellExtension COM servers now have a static Class Id between releases 2019-01-17 20:45:43 +03:30