86 Commits

Author SHA1 Message Date
07ed63d8df Merge branch 'master-origin' into autoupdater-origin 2019-06-09 11:46:11 +01:00
68dc0fcfc2 Merge branch 'master-mm' into master-origin 2019-06-09 10:29:07 +01:00
MikeMaximus
b8849f8d0c Updated readme.txt for release 2019-06-07 07:46:18 -06:00
MikeMaximus
23102a90eb Fixed a disk space check issue in Linux 2019-05-31 19:44:55 -06:00
3e21062508 Created Auto Updater component, initial GUI mocked-up. 2019-05-31 13:39:21 +01:00
MikeMaximus
e7e2e86a8e Start-Up Wizard Improvements 2019-05-16 15:49:58 -06:00
MikeMaximus
8d1396d992 Allow unlimited backups on Add Game Wizard 2019-05-15 16:40:32 -06:00
Michael J. Seiferling
afc89e8dfe Updated version and readme 2019-04-28 17:06:16 -06:00
Michael J. Seiferling
11db38108e Revert prior changes and fix #186 2019-04-27 12:44:27 -06:00
Michael J. Seiferling
b48be71acc Refined file system detection for #186 2019-04-27 10:57:33 -06:00
Michael J. Seiferling
aa37c6525d Changes for #186 2019-04-27 10:31:09 -06:00
Michael J. Seiferling
f77a900f56 Updated backup drive format property to handle Linux 2019-04-27 09:21:45 -06:00
Michael J. Seiferling
9b45ae7b1c Added backup drive format property to settings 2019-04-27 07:22:57 -06:00
Michael J. Seiferling
3a54cddf98 Fix #185 2019-04-13 20:06:42 -06:00
MikeMaximus
fa88d2b03d Fixed minor GUI issue in new sub-menu 2019-04-07 14:19:10 -06:00
MikeMaximus
7062f4b4ea Added "Open Backup Folder" to Game Manager 2019-04-07 14:16:47 -06:00
Michael J. Seiferling
076295069e Made copyright notice more appropriate for an open source project 2019-03-24 09:24:18 -06:00
2f141f9e31 Merge branch 'master' into dev 2019-03-24 12:52:41 +00:00
4de2aa527f Updated readme to show themes 2019-03-24 12:31:26 +00:00
92cf33d840 Merge branch 'master' of https://github.com/MikeMaximus/gbm into dev
# Conflicts:
#	GBM/Forms/frmMain.resx
#	GBM/Forms/frmSettings.Designer.vb
#	GBM/Managers/mgrSettings.vb
#	GBM/My Project/Resources.resx
2019-03-24 12:21:37 +00:00
bcd40eb55f Renamed various objects 2019-03-24 11:55:27 +00:00
Michael J. Seiferling
ee6d211929 Removed import variables that are no longer needed 2019-03-22 08:11:28 -06:00
Michael J. Seiferling
203c745f09 Remove "Sync Game IDs" warning when importing on Game Manager 2019-03-22 07:36:04 -06:00
MikeMaximus
56f60b7685 Stop showing the exit dialog in Linux on unhandled exceptions 2019-03-21 13:59:50 -06:00
8c3c6876eb Tweaked output log size for better padding 2019-03-19 23:32:52 +00:00
Michael J. Seiferling
02c2aeff67 Possible fix for randomly missing tray icon during startup 2019-03-18 14:49:04 -06:00
MikeMaximus
1c5cbc3a93 Made icons and window settings consistent 2019-03-17 10:47:55 -06:00
MikeMaximus
3b40217d69 Handle registry configs in auto restore #151 2019-03-16 22:08:37 -06:00
MikeMaximus
8b0819119c Added support for mixed case and short names #151 2019-03-16 21:36:30 -06:00
MikeMaximus
b199b2a221 Added column for tags and made form bigger. #177 2019-03-16 21:24:21 -06:00
ab0c7a05af Theme selector now shows preview, refactored ThemeEngine 2019-03-16 10:17:38 +00:00
aff8059b5b Implemented persistent auto-hide log state, cleaned up code 2019-03-15 23:49:36 +00:00
db3670d7d7 GBM now respects user defined themes from settings 2019-03-15 22:06:02 +00:00
9349b7e0fd Corrected staging error with previous commit 2019-03-15 21:15:28 +00:00
b97139cd6d Added AutoHideLog and ThemeSelection to SQL settings database and wired to settings UI 2019-03-15 21:13:07 +00:00
5fbbfa97e3 Set theme jekyll-theme-cayman 2019-03-15 15:08:07 +00:00
88d97a6027 Started implementation of interface panel to settings window 2019-03-15 13:39:48 +00:00
f29a58329e Cleaned up code, also made output log fill window 2019-03-15 12:04:52 +00:00
d89b4fd824 Implemented light/default theme as well as refactored some code 2019-03-14 19:23:47 +00:00
c557b2554b Implemented basic theme engine as well as a dark theme. For time being, dark theme is the default theme. 2019-03-14 18:57:13 +00:00
edfcd5ebe9 Merge branch 'master' of https://github.com/MikeMaximus/gbm 2019-03-14 12:37:38 +00:00
Michael J. Seiferling
e507930994 Sync settings warning should be a priority message 2019-03-13 20:22:49 -06:00
Michael J. Seiferling
c3cd8dce3a Cleaned up GBM initilization 2019-03-12 10:05:16 -06:00
Michael J. Seiferling
c362e511a8 Additions and fixes for #178 2019-03-12 09:04:51 -06:00
Michael J. Seiferling
65458b4dc9 Updated readme.txt for v118 2019-03-10 22:16:50 -06:00
MikeMaximus
619ea75641 Merge pull request #183 from MikeMaximus/v118
V118
2019-03-10 11:49:57 -06:00
Michael J. Seiferling
f5626a2613 Resolved #151 - Pass 2: Cleaned up 2019-03-10 11:45:36 -06:00
Michael J. Seiferling
80172aaa31 Use OS integer value for XML export to reduce file size 2019-03-10 11:05:17 -06:00
Michael J. Seiferling
029e8d482b Updated SQLite to 3.27.2 2019-03-10 10:35:52 -06:00
b9104273c9 Merged new icons into master branch 2019-03-09 23:14:14 +00:00
Michael J. Seiferling
ce8b0ffaf7 Fixed Game Manager save path browse when using an unresolved path 2019-03-09 16:47:43 -06:00
Michael J. Seiferling
04f6521035 Remove unused object for #182 2019-03-09 16:38:43 -06:00
Michael J. Seiferling
58cccc1e21 Resolves #182 2019-03-09 16:30:54 -06:00
Michael J. Seiferling
1fb726c9d0 Fake form for priority messages was not hidden in Mono #181 2019-03-09 10:20:51 -06:00
Michael J. Seiferling
9d67c82d83 Removed "Start Minimized" support #178 2019-03-09 09:45:44 -06:00
Michael J. Seiferling
7fa0c66ca1 Fixed some autostart issues #178 2019-03-09 09:20:37 -06:00
Michael J. Seiferling
7ca0a50411 Tweaked fix for #161 to prevent other detection issues 2019-03-09 00:37:36 -06:00
MikeMaximus
832bb9fbc4 Forgot to set WINEPREFIX env for #151 2019-03-05 10:12:03 -06:00
MikeMaximus
720829a9b4 Added registry mode to Game Manager #151 2019-03-05 08:52:24 -06:00
MikeMaximus
5d8a1954a2 Fix #181 2019-03-04 09:54:09 -06:00
Michael J. Seiferling
967b0d80cc Game Manager UI tweaks for #151 2019-03-02 08:25:11 -06:00
Michael J. Seiferling
afbf54e3e7 Use reg.exe force overwrite for #151 2019-03-02 08:03:17 -06:00
Michael J. Seiferling
b9f5ea2505 Updated 7-Zip to 19.00 2019-03-01 19:47:19 -06:00
Michael J. Seiferling
e2951174da Changes for #151 - Pass 1: Functional, needs testing, code slimming and UI fixes 2019-03-01 13:53:26 -06:00
Michael J. Seiferling
1fc6c8ed3b Resolves #178 2019-02-28 10:58:22 -06:00
Michael J. Seiferling
64a01c97c5 Added a timed check to verify backup path for #180 2019-02-28 08:22:27 -06:00
Michael J. Seiferling
5ee55ef2ef Added setting to disable disk space check and text updates for #178 2019-02-27 19:39:05 -06:00
Michael J. Seiferling
0b7d382f0f Fix #180 2019-02-27 19:02:31 -06:00
Michael J. Seiferling
b7eaec2dca Added error handling when launching external apps 2019-02-27 18:37:12 -06:00
Michael J. Seiferling
dec4c3d0b8 Fixed serialize crash when using "Backups Only" and "New Backups Pending" filters in Linux 2019-02-27 18:17:06 -06:00
Michael J. Seiferling
2682274e57 Minimalize "Wine Configuration" impact on Game Manager 2019-02-22 13:27:22 -06:00
Michael J. Seiferling
94a6cfb074 Possible detection fix #161 2019-02-10 09:44:08 -06:00
Michael J. Seiferling
04593df988 Fixed tab order on wine config window 2019-02-10 08:57:33 -06:00
Michael J. Seiferling
fdcef783fb Editing Wine data on Game Manager 2019-02-09 12:45:13 -06:00
Michael J. Seiferling
b31ca7b084 Fix #177 2019-02-09 08:45:09 -06:00
Michael J. Seiferling
8edd916830 Fixed wine detection, it wasn't able to handle duplicates 2019-02-09 08:23:15 -06:00
Michael J. Seiferling
08ac487f72 Small fix for manual backup 2019-02-08 21:12:06 -06:00
Michael J. Seiferling
f872e5d62e Convert all related operations to use new wine data fields 2019-02-08 14:59:22 -06:00
Michael J. Seiferling
e1f2aef863 Added wine data table and related functions 2019-02-08 11:09:33 -06:00
Michael J. Seiferling
a7728c7bb1 Refined how configs are updated after detection and backup 2019-02-08 10:16:12 -06:00
Michael J. Seiferling
cf2080916f Add enum field support (OS) to custom filter 2019-02-08 08:41:50 -06:00
Michael J. Seiferling
2bceca2976 Made Game Manager UI look less terrible 2019-02-07 08:28:36 -06:00
Michael J. Seiferling
e0b3d3c394 Set the default OS for new configurations 2019-02-06 10:47:34 -06:00
Michael J. Seiferling
fcff6dc2b7 Handle OS properly when importing configurations 2019-02-06 10:41:11 -06:00
Michael J. Seiferling
5ca1d2f5a8 Added OS field to configurations 2019-02-06 10:25:15 -06:00
MikeMaximus
030d8fca30 Updated SQLite to 3.26.0 2018-12-19 10:48:52 -06:00
113 changed files with 8741 additions and 6552 deletions
+125
View File
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C80205A3-10E1-4C93-9BCC-609DA2A6F6AD}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>Auto_Updater.My.MyApplication</StartupObject>
<RootNamespace>Auto_Updater</RootNamespace>
<AssemblyName>Auto Updater</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>Auto Updater.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>Auto Updater.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="Forms\frmMain.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\frmMain.Designer.vb">
<DependentUpon>frmMain.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Forms\frmMain.resx">
<DependentUpon>frmMain.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="Resources\gbm.ico" />
<None Include="Resources\Updated.png" />
<None Include="Resources\UpdateAvailable.png" />
<None Include="Resources\Update.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>
+161
View File
@@ -0,0 +1,161 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmMain
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.lblCurrentVersion = New System.Windows.Forms.Label()
Me.lblLatestVersion = New System.Windows.Forms.Label()
Me.lblLatestVersionValue = New System.Windows.Forms.Label()
Me.lblCurrentVersionValue = New System.Windows.Forms.Label()
Me.grpVersion = New System.Windows.Forms.GroupBox()
Me.btnUpdate = New System.Windows.Forms.Button()
Me.picStatus = New System.Windows.Forms.PictureBox()
Me.picGBMIcon = New System.Windows.Forms.PictureBox()
Me.grpVersion.SuspendLayout()
CType(Me.picStatus, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.picGBMIcon, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(146, 103)
Me.TextBox1.Multiline = True
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(327, 121)
Me.TextBox1.TabIndex = 0
'
'lblCurrentVersion
'
Me.lblCurrentVersion.AutoSize = True
Me.lblCurrentVersion.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblCurrentVersion.Location = New System.Drawing.Point(15, 25)
Me.lblCurrentVersion.Name = "lblCurrentVersion"
Me.lblCurrentVersion.Size = New System.Drawing.Size(98, 13)
Me.lblCurrentVersion.TabIndex = 1
Me.lblCurrentVersion.Text = "Current Version:"
'
'lblLatestVersion
'
Me.lblLatestVersion.AutoSize = True
Me.lblLatestVersion.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblLatestVersion.Location = New System.Drawing.Point(15, 52)
Me.lblLatestVersion.Name = "lblLatestVersion"
Me.lblLatestVersion.Size = New System.Drawing.Size(92, 13)
Me.lblLatestVersion.TabIndex = 2
Me.lblLatestVersion.Text = "Latest Version:"
'
'lblLatestVersionValue
'
Me.lblLatestVersionValue.AutoSize = True
Me.lblLatestVersionValue.Location = New System.Drawing.Point(119, 52)
Me.lblLatestVersionValue.Name = "lblLatestVersionValue"
Me.lblLatestVersionValue.Size = New System.Drawing.Size(40, 13)
Me.lblLatestVersionValue.TabIndex = 4
Me.lblLatestVersionValue.Text = "0.0.0.0"
'
'lblCurrentVersionValue
'
Me.lblCurrentVersionValue.AutoSize = True
Me.lblCurrentVersionValue.Location = New System.Drawing.Point(119, 25)
Me.lblCurrentVersionValue.Name = "lblCurrentVersionValue"
Me.lblCurrentVersionValue.Size = New System.Drawing.Size(40, 13)
Me.lblCurrentVersionValue.TabIndex = 3
Me.lblCurrentVersionValue.Text = "0.0.0.0"
'
'grpVersion
'
Me.grpVersion.Controls.Add(Me.picStatus)
Me.grpVersion.Controls.Add(Me.btnUpdate)
Me.grpVersion.Controls.Add(Me.lblCurrentVersionValue)
Me.grpVersion.Controls.Add(Me.lblLatestVersionValue)
Me.grpVersion.Controls.Add(Me.lblCurrentVersion)
Me.grpVersion.Controls.Add(Me.lblLatestVersion)
Me.grpVersion.Location = New System.Drawing.Point(145, 12)
Me.grpVersion.Name = "grpVersion"
Me.grpVersion.Size = New System.Drawing.Size(327, 85)
Me.grpVersion.TabIndex = 5
Me.grpVersion.TabStop = False
'
'btnUpdate
'
Me.btnUpdate.Location = New System.Drawing.Point(246, 34)
Me.btnUpdate.Name = "btnUpdate"
Me.btnUpdate.Size = New System.Drawing.Size(75, 23)
Me.btnUpdate.TabIndex = 5
Me.btnUpdate.Text = "Update"
Me.btnUpdate.UseVisualStyleBackColor = True
'
'picStatus
'
Me.picStatus.BackColor = System.Drawing.Color.Transparent
Me.picStatus.Image = Global.Auto_Updater.My.Resources.Resources.UpdateAvailable
Me.picStatus.Location = New System.Drawing.Point(212, 31)
Me.picStatus.Name = "picStatus"
Me.picStatus.Size = New System.Drawing.Size(28, 28)
Me.picStatus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
Me.picStatus.TabIndex = 6
Me.picStatus.TabStop = False
'
'picGBMIcon
'
Me.picGBMIcon.Image = CType(resources.GetObject("picGBMIcon.Image"), System.Drawing.Image)
Me.picGBMIcon.Location = New System.Drawing.Point(12, 96)
Me.picGBMIcon.Name = "picGBMIcon"
Me.picGBMIcon.Size = New System.Drawing.Size(128, 128)
Me.picGBMIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
Me.picGBMIcon.TabIndex = 7
Me.picGBMIcon.TabStop = False
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(484, 261)
Me.Controls.Add(Me.grpVersion)
Me.Controls.Add(Me.TextBox1)
Me.Controls.Add(Me.picGBMIcon)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "frmMain"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Auto Updater"
Me.grpVersion.ResumeLayout(False)
Me.grpVersion.PerformLayout()
CType(Me.picStatus, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.picGBMIcon, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents TextBox1 As TextBox
Friend WithEvents lblCurrentVersion As Label
Friend WithEvents lblLatestVersion As Label
Friend WithEvents lblLatestVersionValue As Label
Friend WithEvents lblCurrentVersionValue As Label
Friend WithEvents grpVersion As GroupBox
Friend WithEvents btnUpdate As Button
Friend WithEvents picStatus As PictureBox
Friend WithEvents picGBMIcon As PictureBox
End Class
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
Public Class frmMain
End Class
+38
View File
@@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
' or if you encounter build errors in this file, go to the Project Designer
' (go to Project Properties or double-click the My Project node in
' Solution Explorer), and make changes on the Application tab.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.Auto_Updater.frmMain
End Sub
End Class
End Namespace
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain>
<MainForm>Form1</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<ApplicationType>0</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>
+35
View File
@@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("Auto Updater")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("Auto Updater")>
<Assembly: AssemblyCopyright("Copyright © 2019")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("f7d59718-dc0e-4a32-8e4c-bd66ba61a098")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
+93
View File
@@ -0,0 +1,93 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Imports System
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Auto_Updater.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set
resourceCulture = value
End Set
End Property
'''<summary>
''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
'''</summary>
Friend ReadOnly Property GBM_Icon() As System.Drawing.Icon
Get
Dim obj As Object = ResourceManager.GetObject("GBM_Icon", resourceCulture)
Return CType(obj,System.Drawing.Icon)
End Get
End Property
'''<summary>
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property UpdateAvailable() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("UpdateAvailable", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property Updated() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("Updated", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
End Module
End Namespace
+130
View File
@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="GBM_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\gbm.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="UpdateAvailable" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\UpdateAvailable.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Updated" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Updated.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>
+73
View File
@@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.Auto_Updater.My.MySettings
Get
Return Global.Auto_Updater.My.MySettings.Default
End Get
End Property
End Module
End Namespace
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

+10
View File
@@ -14,6 +14,7 @@
Private sComments As String Private sComments As String
Private bIsRegEx As Boolean Private bIsRegEx As Boolean
Private bRecurseSubFolders As Boolean Private bRecurseSubFolders As Boolean
Private iOS As clsGame.eOS
Private oTags As List(Of Tag) Private oTags As List(Of Tag)
Property ID As String Property ID As String
@@ -151,6 +152,15 @@
End Get End Get
End Property End Property
Property OS As clsGame.eOS
Set(value As clsGame.eOS)
iOS = value
End Set
Get
Return iOS
End Get
End Property
Property Tags As List(Of Tag) Property Tags As List(Of Tag)
Get Get
Return oTags Return oTags
+1 -1
View File
@@ -49,7 +49,7 @@
ReadOnly Property FileSafeName As String ReadOnly Property FileSafeName As String
Get Get
Return mgrPath.ValidateFileNameForOS(sName) Return mgrPath.ValidateFileName(sName)
End Get End Get
End Property End Property
+32 -3
View File
@@ -1,4 +1,5 @@
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports System.Xml.Serialization
<Serializable()> <Serializable()>
Public Class clsGame Public Class clsGame
@@ -24,6 +25,7 @@ Public Class clsGame
Private sComments As String = String.Empty Private sComments As String = String.Empty
Private bIsRegEx As Boolean = False Private bIsRegEx As Boolean = False
Private bRecurseSubFolders As Boolean = True Private bRecurseSubFolders As Boolean = True
Private iOS As eOS = mgrCommon.GetCurrentOS()
Private oImportTags As New List(Of Tag) Private oImportTags As New List(Of Tag)
Private bImportUpdate As Boolean = False Private bImportUpdate As Boolean = False
Private oCompiledRegEx As Regex Private oCompiledRegEx As Regex
@@ -38,10 +40,17 @@ Public Class clsGame
MonitorGame = 64 MonitorGame = 64
End Enum End Enum
Public Enum eOS
<XmlEnum("1")>
Windows = 1
<XmlEnum("2")>
Linux = 2
End Enum
Property ID As String Property ID As String
Set(value As String) Set(value As String)
If Not value Is Nothing Then If Not value Is Nothing Then
sGameID = mgrPath.ValidateFileNameForOS(value) sGameID = mgrPath.ValidateFileName(value)
End If End If
End Set End Set
Get Get
@@ -61,7 +70,7 @@ Public Class clsGame
ReadOnly Property FileSafeName As String ReadOnly Property FileSafeName As String
Get Get
Return mgrPath.ValidateFileNameForOS(sGameName) Return mgrPath.ValidateFileName(sGameName)
End Get End Get
End Property End Property
@@ -106,7 +115,12 @@ Public Class clsGame
bAbsolutePath = value bAbsolutePath = value
End Set End Set
Get Get
Return bAbsolutePath 'This makes sure a registry key path isn't seen as a relative path.
If mgrPath.IsSupportedRegistryPath(TruePath) Then
Return True
Else
Return bAbsolutePath
End If
End Get End Get
End Property End Property
@@ -254,6 +268,15 @@ Public Class clsGame
End Set End Set
End Property End Property
Property OS As eOS
Get
Return iOS
End Get
Set(value As eOS)
iOS = value
End Set
End Property
Property TruePath As String Property TruePath As String
Set(value As String) Set(value As String)
sPath = value sPath = value
@@ -367,6 +390,9 @@ Public Class clsGame
If RecurseSubFolders <> oGame.RecurseSubFolders Then If RecurseSubFolders <> oGame.RecurseSubFolders Then
Return False Return False
End If End If
If OS <> oGame.OS Then
Return False
End If
'Optional Sync Fields 'Optional Sync Fields
If (eSyncFields And eOptionalSyncFields.Company) = eOptionalSyncFields.Company Then If (eSyncFields And eOptionalSyncFields.Company) = eOptionalSyncFields.Company Then
@@ -446,6 +472,9 @@ Public Class clsGame
If RecurseSubFolders <> oGame.RecurseSubFolders Then If RecurseSubFolders <> oGame.RecurseSubFolders Then
Return False Return False
End If End If
If OS <> oGame.OS Then
Return False
End If
Return True Return True
End If End If
End Function End Function
+15
View File
@@ -4,6 +4,11 @@
fString = 1 fString = 1
fNumeric = 2 fNumeric = 2
fBool = 3 fBool = 3
fEnum = 4
End Enum
Public Enum eEnumFilterField As Integer
OS = 1
End Enum End Enum
<Flags()> Public Enum eFieldStatus <Flags()> Public Enum eFieldStatus
@@ -15,6 +20,7 @@
Private sFieldName As String Private sFieldName As String
Private sFriendlyFieldName As String Private sFriendlyFieldName As String
Private eType As eDataType Private eType As eDataType
Private eEnumField As eEnumFilterField
Private eStatus As eFieldStatus Private eStatus As eFieldStatus
Public Property FieldName As String Public Property FieldName As String
@@ -44,6 +50,15 @@
End Set End Set
End Property End Property
Public Property EnumField As eEnumFilterField
Get
Return eEnumField
End Get
Set(value As eEnumFilterField)
eEnumField = value
End Set
End Property
'This is a flag property - Setting a value will toggle that flag on and off. 'This is a flag property - Setting a value will toggle that flag on and off.
Public Property Status As eFieldStatus Public Property Status As eFieldStatus
Get Get
+43
View File
@@ -0,0 +1,43 @@
Public Class clsWineData
Private sMonitorID As String = String.Empty
Private sPrefix As String = String.Empty
Private sSavePath As String = String.Empty
Private sBinaryPath As String = String.Empty
Property MonitorID As String
Get
Return sMonitorID
End Get
Set(value As String)
sMonitorID = value
End Set
End Property
Property Prefix As String
Get
Return sPrefix
End Get
Set(value As String)
sPrefix = value
End Set
End Property
Property SavePath As String
Get
Return sSavePath
End Get
Set(value As String)
sSavePath = value
End Set
End Property
Property BinaryPath As String
Get
Return sBinaryPath
End Get
Set(value As String)
sBinaryPath = value
End Set
End Property
End Class
+14 -17
View File
@@ -46,6 +46,7 @@ Partial Class frmAddWizard
Me.txtSavePath = New System.Windows.Forms.TextBox() Me.txtSavePath = New System.Windows.Forms.TextBox()
Me.lblStep3Intro = New System.Windows.Forms.Label() Me.lblStep3Intro = New System.Windows.Forms.Label()
Me.tbPage3a = New System.Windows.Forms.TabPage() Me.tbPage3a = New System.Windows.Forms.TabPage()
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox()
Me.lblIncludePathTitle = New System.Windows.Forms.Label() Me.lblIncludePathTitle = New System.Windows.Forms.Label()
Me.lblIncludePath = New System.Windows.Forms.Label() Me.lblIncludePath = New System.Windows.Forms.Label()
Me.lblFileTypes = New System.Windows.Forms.Label() Me.lblFileTypes = New System.Windows.Forms.Label()
@@ -68,7 +69,6 @@ Partial Class frmAddWizard
Me.btnCancel = New System.Windows.Forms.Button() Me.btnCancel = New System.Windows.Forms.Button()
Me.btnNext = New System.Windows.Forms.Button() Me.btnNext = New System.Windows.Forms.Button()
Me.btnBack = New System.Windows.Forms.Button() Me.btnBack = New System.Windows.Forms.Button()
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox()
Me.tabWizard.SuspendLayout() Me.tabWizard.SuspendLayout()
Me.tbPage1.SuspendLayout() Me.tbPage1.SuspendLayout()
Me.tbPage2.SuspendLayout() Me.tbPage2.SuspendLayout()
@@ -228,19 +228,17 @@ Partial Class frmAddWizard
Me.lblLimit.AutoSize = True Me.lblLimit.AutoSize = True
Me.lblLimit.Location = New System.Drawing.Point(203, 109) Me.lblLimit.Location = New System.Drawing.Point(203, 109)
Me.lblLimit.Name = "lblLimit" Me.lblLimit.Name = "lblLimit"
Me.lblLimit.Size = New System.Drawing.Size(68, 13) Me.lblLimit.Size = New System.Drawing.Size(138, 13)
Me.lblLimit.TabIndex = 15 Me.lblLimit.TabIndex = 15
Me.lblLimit.Text = "Backup Limit" Me.lblLimit.Text = "Backup Limit (0 = Unlimited)"
Me.lblLimit.Visible = False Me.lblLimit.Visible = False
' '
'nudLimit 'nudLimit
' '
Me.nudLimit.Location = New System.Drawing.Point(157, 107) Me.nudLimit.Location = New System.Drawing.Point(157, 107)
Me.nudLimit.Minimum = New Decimal(New Integer() {2, 0, 0, 0})
Me.nudLimit.Name = "nudLimit" Me.nudLimit.Name = "nudLimit"
Me.nudLimit.Size = New System.Drawing.Size(40, 20) Me.nudLimit.Size = New System.Drawing.Size(40, 20)
Me.nudLimit.TabIndex = 14 Me.nudLimit.TabIndex = 14
Me.nudLimit.Value = New Decimal(New Integer() {2, 0, 0, 0})
Me.nudLimit.Visible = False Me.nudLimit.Visible = False
' '
'lblStep3Title 'lblStep3Title
@@ -325,6 +323,17 @@ Partial Class frmAddWizard
Me.tbPage3a.TabIndex = 3 Me.tbPage3a.TabIndex = 3
Me.tbPage3a.Text = "TabPage4" Me.tbPage3a.Text = "TabPage4"
' '
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(218, 40)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(15, 14)
Me.chkRecurseSubFolders.TabIndex = 0
Me.chkRecurseSubFolders.TabStop = False
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
Me.chkRecurseSubFolders.Visible = False
'
'lblIncludePathTitle 'lblIncludePathTitle
' '
Me.lblIncludePathTitle.AutoSize = True Me.lblIncludePathTitle.AutoSize = True
@@ -542,17 +551,6 @@ Partial Class frmAddWizard
Me.btnBack.Text = "&Back" Me.btnBack.Text = "&Back"
Me.btnBack.UseVisualStyleBackColor = True Me.btnBack.UseVisualStyleBackColor = True
' '
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(218, 40)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(15, 14)
Me.chkRecurseSubFolders.TabIndex = 0
Me.chkRecurseSubFolders.TabStop = False
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
Me.chkRecurseSubFolders.Visible = False
'
'frmAddWizard 'frmAddWizard
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -566,7 +564,6 @@ Partial Class frmAddWizard
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmAddWizard" Me.Name = "frmAddWizard"
Me.ShowIcon = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "Add Game Wizard" Me.Text = "Add Game Wizard"
Me.tabWizard.ResumeLayout(False) Me.tabWizard.ResumeLayout(False)
+10 -7
View File
@@ -30,6 +30,7 @@ Public Class frmAddWizard
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmAddWizard_FormName Me.Text = frmAddWizard_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnCancel.Text = frmAddWizard_btnCancel btnCancel.Text = frmAddWizard_btnCancel
@@ -74,10 +75,8 @@ Public Class frmAddWizard
If chkTimeStamp.Checked Then If chkTimeStamp.Checked Then
nudLimit.Visible = True nudLimit.Visible = True
lblLimit.Visible = True lblLimit.Visible = True
nudLimit.Value = 5
Else Else
nudLimit.Visible = False nudLimit.Visible = False
nudLimit.Value = nudLimit.Minimum
lblLimit.Visible = False lblLimit.Visible = False
End If End If
End Sub End Sub
@@ -86,9 +85,13 @@ Public Class frmAddWizard
Dim sLimit As String = String.Empty Dim sLimit As String = String.Empty
If bTimeStamp Then If bTimeStamp Then
Return mgrCommon.BooleanYesNo(bTimeStamp) & " (" & iLimit & ")" If iLimit <> 0 Then
Return mgrCommon.BooleanYesNo(bTimeStamp) & " (" & iLimit & ")"
Else
Return mgrCommon.BooleanYesNo(bTimeStamp) & " (" & frmAddWizard_Summary_NoLimit & ")"
End If
Else Else
Return mgrCommon.BooleanYesNo(bTimeStamp) Return mgrCommon.BooleanYesNo(bTimeStamp)
End If End If
End Function End Function
@@ -207,7 +210,7 @@ Public Class frmAddWizard
End Function End Function
Private Function ValidateProcessPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean Private Function ValidateProcessPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean
strPath = mgrPath.ValidatePathForOS(strPath) strPath = mgrPath.ValidatePath(strPath)
If strPath.Trim = String.Empty Then If strPath.Trim = String.Empty Then
sErrorMessage = frmAddWizard_ErrorValidProcess sErrorMessage = frmAddWizard_ErrorValidProcess
@@ -324,7 +327,7 @@ Public Class frmAddWizard
End If End If
Case eSteps.Step3 Case eSteps.Step3
txtSavePath.Text = mgrPath.ValidatePathForOS(txtSavePath.Text) txtSavePath.Text = mgrPath.ValidatePath(txtSavePath.Text)
If ValidateSavePath(txtSavePath.Text, sErrorMessage) Then If ValidateSavePath(txtSavePath.Text, sErrorMessage) Then
lblIncludePath.Text = txtSavePath.Text lblIncludePath.Text = txtSavePath.Text
lblExcludePath.Text = txtSavePath.Text lblExcludePath.Text = txtSavePath.Text
@@ -434,7 +437,7 @@ Public Class frmAddWizard
End If End If
End If End If
sNewPath = mgrCommon.OpenFolderBrowser("Wizard_Save_Path", frmAddWizard_ChooseSavePath, sDefaultFolder, False, False) sNewPath = mgrCommon.OpenClassicFolderBrowser("Wizard_Save_Path", frmAddWizard_ChooseSavePath, sDefaultFolder, False, False)
If sNewPath <> String.Empty Then txtSavePath.Text = sNewPath If sNewPath <> String.Empty Then txtSavePath.Text = sNewPath
End Sub End Sub
+1
View File
@@ -123,6 +123,7 @@ Partial Class frmAdvancedImport
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmAdvancedImport" Me.Name = "frmAdvancedImport"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Import Game Configurations" Me.Text = "Import Game Configurations"
Me.ResumeLayout(False) Me.ResumeLayout(False)
+3 -57
View File
@@ -6,7 +6,6 @@ Public Class frmAdvancedImport
Private oImportData As ExportData Private oImportData As ExportData
Private hshImportData As Hashtable Private hshImportData As Hashtable
Private hshFinalData As New Hashtable Private hshFinalData As New Hashtable
Private bModWinConfigsForLinux As Boolean
Private bSelectAll As Boolean = True Private bSelectAll As Boolean = True
Private bIsLoading As Boolean = False Private bIsLoading As Boolean = False
Private iCurrentSort As Integer = 0 Private iCurrentSort As Integer = 0
@@ -31,15 +30,6 @@ Public Class frmAdvancedImport
End Get End Get
End Property End Property
Public Property ModWinConfigsForLinux As Boolean
Set(value As Boolean)
bModWinConfigsForLinux = value
End Set
Get
Return bModWinConfigsForLinux
End Get
End Property
Public ReadOnly Property FinalData As Hashtable Public ReadOnly Property FinalData As Hashtable
Get Get
Return hshFinalData Return hshFinalData
@@ -51,7 +41,7 @@ Public Class frmAdvancedImport
lstGames.BeginUpdate() lstGames.BeginUpdate()
bSelectAll = Not bSelectAll bSelectAll = Not bSelectAll
For i As Integer = 0 To lstGames.Items.Count - 1 For i As Integer = 0 To lstGames.Items.Count - 1
lstGames.Items(i).Checked = bSelectAll lstGames.Items(i).Checked = bSelectAll
Next Next
lstGames.EndUpdate() lstGames.EndUpdate()
Cursor.Current = Cursors.Default Cursor.Current = Cursors.Default
@@ -66,46 +56,6 @@ Public Class frmAdvancedImport
End If End If
End Sub End Sub
Private Sub ModTags(ByRef oTags As List(Of Tag))
Dim bExists As Boolean
Dim oTag As Tag
Dim oNewTag As Tag
Dim oRemoveTag As New Tag
Dim sTag As String
Dim sAddTags() As String = {"Wine"}
Dim sRemoveTags() As String = {"Official"}
For Each sTag In sAddTags
bExists = False
For Each oTag In oTags
If oTag.Name = sTag Then
bExists = True
Exit For
End If
Next
If Not bExists Then
oNewTag = New Tag
oNewTag.Name = sTag
oTags.Add(oNewTag)
End If
Next
For Each sTag In sRemoveTags
bExists = False
For Each oTag In oTags
If oTag.Name = sTag Then
bExists = True
oRemoveTag = oTag
Exit For
End If
Next
If bExists Then
oTags.Remove(oRemoveTag)
End If
Next
End Sub
Private Function CheckIgnoreTags(ByVal oTags As List(Of Tag)) As Boolean Private Function CheckIgnoreTags(ByVal oTags As List(Of Tag)) As Boolean
Dim oTag As Tag Dim oTag As Tag
Dim sTag As String Dim sTag As String
@@ -142,11 +92,6 @@ Public Class frmAdvancedImport
bAddItem = False bAddItem = False
oApp = DirectCast(de.Value, clsGame) oApp = DirectCast(de.Value, clsGame)
'Run any required tag mods
If ModWinConfigsForLinux Then
ModTags(oApp.ImportTags)
End If
sTags = String.Empty sTags = String.Empty
oApp.ImportTags.Sort(AddressOf mgrCommon.CompareImportTagsByName) oApp.ImportTags.Sort(AddressOf mgrCommon.CompareImportTagsByName)
For Each oTag As Tag In oApp.ImportTags For Each oTag As Tag In oApp.ImportTags
@@ -192,7 +137,7 @@ Public Class frmAdvancedImport
End If End If
'Check for hardcoded ignore tags 'Check for hardcoded ignore tags
If bAddItem And ModWinConfigsForLinux Then If bAddItem And (mgrCommon.IsUnix And oApp.OS = clsGame.eOS.Windows) Then
bAddItem = CheckIgnoreTags(oApp.ImportTags) bAddItem = CheckIgnoreTags(oApp.ImportTags)
End If End If
@@ -229,6 +174,7 @@ Public Class frmAdvancedImport
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmAdvancedImport_FormName Me.Text = frmAdvancedImport_FormName
Me.Icon = GBM_Icon
'Add configuration date to title if applicable 'Add configuration date to title if applicable
If ImportInfo.Exported <> 0 Then If ImportInfo.Exported <> 0 Then
+20 -17
View File
@@ -24,8 +24,8 @@ Partial Class frmChooseGame
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.lblChoose = New System.Windows.Forms.Label() Me.lblChoose = New System.Windows.Forms.Label()
Me.btnChoose = New System.Windows.Forms.Button() Me.btnChoose = New System.Windows.Forms.Button()
Me.lstGameBox = New System.Windows.Forms.ListBox()
Me.btnCancel = New System.Windows.Forms.Button() Me.btnCancel = New System.Windows.Forms.Button()
Me.lstGameBox = New System.Windows.Forms.ListView()
Me.SuspendLayout() Me.SuspendLayout()
' '
'lblChoose 'lblChoose
@@ -39,38 +39,40 @@ Partial Class frmChooseGame
' '
'btnChoose 'btnChoose
' '
Me.btnChoose.Location = New System.Drawing.Point(72, 135) Me.btnChoose.Location = New System.Drawing.Point(201, 176)
Me.btnChoose.Name = "btnChoose" Me.btnChoose.Name = "btnChoose"
Me.btnChoose.Size = New System.Drawing.Size(90, 23) Me.btnChoose.Size = New System.Drawing.Size(90, 23)
Me.btnChoose.TabIndex = 2 Me.btnChoose.TabIndex = 1
Me.btnChoose.Text = "C&hoose Game" Me.btnChoose.Text = "C&hoose Game"
Me.btnChoose.UseVisualStyleBackColor = True Me.btnChoose.UseVisualStyleBackColor = True
' '
'lstGameBox
'
Me.lstGameBox.FormattingEnabled = True
Me.lstGameBox.Location = New System.Drawing.Point(15, 34)
Me.lstGameBox.Name = "lstGameBox"
Me.lstGameBox.Size = New System.Drawing.Size(228, 95)
Me.lstGameBox.Sorted = True
Me.lstGameBox.TabIndex = 1
'
'btnCancel 'btnCancel
' '
Me.btnCancel.Location = New System.Drawing.Point(168, 135) Me.btnCancel.Location = New System.Drawing.Point(297, 176)
Me.btnCancel.Name = "btnCancel" Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(75, 23) Me.btnCancel.Size = New System.Drawing.Size(75, 23)
Me.btnCancel.TabIndex = 3 Me.btnCancel.TabIndex = 2
Me.btnCancel.Text = "&Cancel" Me.btnCancel.Text = "&Cancel"
Me.btnCancel.UseVisualStyleBackColor = True Me.btnCancel.UseVisualStyleBackColor = True
' '
'lstGameBox
'
Me.lstGameBox.FullRowSelect = True
Me.lstGameBox.Location = New System.Drawing.Point(12, 25)
Me.lstGameBox.MultiSelect = False
Me.lstGameBox.Name = "lstGameBox"
Me.lstGameBox.Size = New System.Drawing.Size(360, 145)
Me.lstGameBox.TabIndex = 0
Me.lstGameBox.UseCompatibleStateImageBehavior = False
Me.lstGameBox.View = System.Windows.Forms.View.Details
'
'frmChooseGame 'frmChooseGame
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(255, 166) Me.ClientSize = New System.Drawing.Size(384, 211)
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.lstGameBox) Me.Controls.Add(Me.lstGameBox)
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.btnChoose) Me.Controls.Add(Me.btnChoose)
Me.Controls.Add(Me.lblChoose) Me.Controls.Add(Me.lblChoose)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
@@ -78,6 +80,7 @@ Partial Class frmChooseGame
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmChooseGame" Me.Name = "frmChooseGame"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Choose Game" Me.Text = "Choose Game"
Me.ResumeLayout(False) Me.ResumeLayout(False)
@@ -86,6 +89,6 @@ Partial Class frmChooseGame
End Sub End Sub
Friend WithEvents lblChoose As System.Windows.Forms.Label Friend WithEvents lblChoose As System.Windows.Forms.Label
Friend WithEvents btnChoose As System.Windows.Forms.Button Friend WithEvents btnChoose As System.Windows.Forms.Button
Friend WithEvents lstGameBox As System.Windows.Forms.ListBox
Friend WithEvents btnCancel As Button Friend WithEvents btnCancel As Button
Friend WithEvents lstGameBox As ListView
End Class End Class
+21 -9
View File
@@ -25,16 +25,25 @@ Public Class frmChooseGame
End Set End Set
End Property End Property
Private Sub FillComboBox() Private Sub FillList()
lstGameBox.ValueMember = "Key" Dim sTags As String
lstGameBox.DisplayMember = "Value" Dim oListViewItem As ListViewItem
lstGameBox.BeginUpdate()
lstGameBox.Columns.Add(frmChooseGame_ColumnName, 180)
lstGameBox.Columns.Add(frmChooseGame_ColumnTags, 175)
For Each o As clsGame In Process.DuplicateList For Each o As clsGame In Process.DuplicateList
lstGameBox.Items.Add(New KeyValuePair(Of String, String)(o.ID, o.Name)) sTags = mgrGameTags.PrintTagsbyID(o.ID)
oListViewItem = New ListViewItem(New String() {o.Name, sTags})
oListViewItem.Tag = o.ID
If lstGameBox.Items.Count = 0 Then oListViewItem.Selected = True
lstGameBox.Items.Add(oListViewItem)
oGamesHash.Add(o.ID, o) oGamesHash.Add(o.ID, o)
Next Next
lstGameBox.SelectedIndex = 0 lstGameBox.EndUpdate()
End Sub End Sub
Private Sub SaveSelection() Private Sub SaveSelection()
@@ -43,8 +52,8 @@ Public Class frmChooseGame
End Sub End Sub
Private Sub GetSelection() Private Sub GetSelection()
Dim oSelected As KeyValuePair(Of String, String) = lstGameBox.SelectedItem Dim oSelected As String = lstGameBox.SelectedItems(0).Tag
oGame = DirectCast(oGamesHash.Item(oSelected.Key), clsGame) oGame = DirectCast(oGamesHash.Item(oSelected), clsGame)
SaveSelection() SaveSelection()
bGameSelected = True bGameSelected = True
Me.DialogResult = DialogResult.OK Me.DialogResult = DialogResult.OK
@@ -54,6 +63,7 @@ Public Class frmChooseGame
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmChooseGame_FormName Me.Text = frmChooseGame_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnCancel.Text = frmChooseGame_btnCancel btnCancel.Text = frmChooseGame_btnCancel
@@ -63,12 +73,14 @@ Public Class frmChooseGame
Private Sub frmChooseGame_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Private Sub frmChooseGame_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
SetForm() SetForm()
FillComboBox() FillList()
Me.Focus() Me.Focus()
End Sub End Sub
Private Sub btnChoose_Click(sender As System.Object, e As System.EventArgs) Handles btnChoose.Click Private Sub btnChoose_Click(sender As System.Object, e As System.EventArgs) Handles btnChoose.Click
GetSelection() If lstGameBox.SelectedItems.Count > 0 Then
GetSelection()
End If
End Sub End Sub
Private Sub frmChooseGame_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing Private Sub frmChooseGame_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
+1
View File
@@ -104,6 +104,7 @@ Partial Class frmFileFolderSearch
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmFileFolderSearch" Me.Name = "frmFileFolderSearch"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Search" Me.Text = "Search"
Me.ResumeLayout(False) Me.ResumeLayout(False)
+1
View File
@@ -220,6 +220,7 @@ Public Class frmFileFolderSearch
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmFileFolderSearch_FormName Me.Text = frmFileFolderSearch_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
lblResults.Text = frmFileFolderSearch_lblResults lblResults.Text = frmFileFolderSearch_lblResults
+11 -10
View File
@@ -40,7 +40,7 @@ Partial Class frmFilter
Me.grpGameFilter = New System.Windows.Forms.GroupBox() Me.grpGameFilter = New System.Windows.Forms.GroupBox()
Me.lblNot = New System.Windows.Forms.Label() Me.lblNot = New System.Windows.Forms.Label()
Me.chkNot = New System.Windows.Forms.CheckBox() Me.chkNot = New System.Windows.Forms.CheckBox()
Me.cboBoolFilter = New System.Windows.Forms.ComboBox() Me.cboListFilter = New System.Windows.Forms.ComboBox()
Me.numFilter = New System.Windows.Forms.NumericUpDown() Me.numFilter = New System.Windows.Forms.NumericUpDown()
Me.cboNumericOps = New System.Windows.Forms.ComboBox() Me.cboNumericOps = New System.Windows.Forms.ComboBox()
Me.lblCurrentFilters = New System.Windows.Forms.Label() Me.lblCurrentFilters = New System.Windows.Forms.Label()
@@ -229,7 +229,7 @@ Partial Class frmFilter
' '
Me.grpGameFilter.Controls.Add(Me.lblNot) Me.grpGameFilter.Controls.Add(Me.lblNot)
Me.grpGameFilter.Controls.Add(Me.chkNot) Me.grpGameFilter.Controls.Add(Me.chkNot)
Me.grpGameFilter.Controls.Add(Me.cboBoolFilter) Me.grpGameFilter.Controls.Add(Me.cboListFilter)
Me.grpGameFilter.Controls.Add(Me.numFilter) Me.grpGameFilter.Controls.Add(Me.numFilter)
Me.grpGameFilter.Controls.Add(Me.cboNumericOps) Me.grpGameFilter.Controls.Add(Me.cboNumericOps)
Me.grpGameFilter.Controls.Add(Me.lblCurrentFilters) Me.grpGameFilter.Controls.Add(Me.lblCurrentFilters)
@@ -265,14 +265,14 @@ Partial Class frmFilter
Me.chkNot.TabIndex = 10 Me.chkNot.TabIndex = 10
Me.chkNot.UseVisualStyleBackColor = True Me.chkNot.UseVisualStyleBackColor = True
' '
'cboBoolFilter 'cboListFilter
' '
Me.cboBoolFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList Me.cboListFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboBoolFilter.FormattingEnabled = True Me.cboListFilter.FormattingEnabled = True
Me.cboBoolFilter.Location = New System.Drawing.Point(187, 36) Me.cboListFilter.Location = New System.Drawing.Point(187, 36)
Me.cboBoolFilter.Name = "cboBoolFilter" Me.cboListFilter.Name = "cboListFilter"
Me.cboBoolFilter.Size = New System.Drawing.Size(136, 21) Me.cboListFilter.Size = New System.Drawing.Size(136, 21)
Me.cboBoolFilter.TabIndex = 3 Me.cboListFilter.TabIndex = 3
' '
'numFilter 'numFilter
' '
@@ -501,6 +501,7 @@ Partial Class frmFilter
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmFilter" Me.Name = "frmFilter"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Custom Filter" Me.Text = "Custom Filter"
Me.grpTagFilter.ResumeLayout(False) Me.grpTagFilter.ResumeLayout(False)
@@ -549,7 +550,7 @@ Partial Class frmFilter
Friend WithEvents lblFields As Label Friend WithEvents lblFields As Label
Friend WithEvents cboNumericOps As ComboBox Friend WithEvents cboNumericOps As ComboBox
Friend WithEvents numFilter As NumericUpDown Friend WithEvents numFilter As NumericUpDown
Friend WithEvents cboBoolFilter As ComboBox Friend WithEvents cboListFilter As ComboBox
Friend WithEvents lblSortFields As Label Friend WithEvents lblSortFields As Label
Friend WithEvents Label1 As Label Friend WithEvents Label1 As Label
Friend WithEvents grpSortOptions As GroupBox Friend WithEvents grpSortOptions As GroupBox
+51 -16
View File
@@ -242,6 +242,15 @@ Public Class frmFilter
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField) oValidFields.Add(oField)
'OS
oField = New clsGameFilterField
oField.FieldName = "OS"
oField.FriendlyFieldName = frmFilter_FieldOS
oField.Type = clsGameFilterField.eDataType.fEnum
oField.EnumField = clsGameFilterField.eEnumFilterField.OS
oField.Status = clsGameFilterField.eFieldStatus.ValidFilter
oValidFields.Add(oField)
'IsRegEx 'IsRegEx
oField = New clsGameFilterField oField = New clsGameFilterField
oField.FieldName = "IsRegEx" oField.FieldName = "IsRegEx"
@@ -359,7 +368,7 @@ Public Class frmFilter
sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """" sFilter = oFilter.Field.FriendlyFieldName & " " & frmFilter_lstFilterContains & " """ & oFilter.Data & """"
Case clsGameFilterField.eDataType.fNumeric Case clsGameFilterField.eDataType.fNumeric
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
Case clsGameFilterField.eDataType.fBool Case clsGameFilterField.eDataType.fBool, clsGameFilterField.eDataType.fEnum
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
End Select End Select
@@ -413,23 +422,22 @@ Public Class frmFilter
End Sub End Sub
Private Sub ChangeFilterMode() Private Sub ChangeFilterMode()
Dim oFilterType As clsGameFilterField.eDataType = DirectCast(cboFilterField.SelectedValue, clsGameFilterField).Type Dim oFilter As clsGameFilterField = DirectCast(cboFilterField.SelectedValue, clsGameFilterField)
'Reset 'Reset
cboNumericOps.SelectedIndex = 0 cboNumericOps.SelectedIndex = 0
cboBoolFilter.SelectedIndex = 0
numFilter.Value = 0 numFilter.Value = 0
txtStringFilter.Text = String.Empty txtStringFilter.Text = String.Empty
chkNot.Checked = False chkNot.Checked = False
'Reset Visibilty 'Reset Visibilty
cboBoolFilter.Visible = False cboListFilter.Visible = False
cboNumericOps.Visible = False cboNumericOps.Visible = False
numFilter.Visible = False numFilter.Visible = False
txtStringFilter.Visible = False txtStringFilter.Visible = False
'Set Visiblity 'Set Visiblity
Select Case oFilterType Select Case oFilter.Type
Case clsGameFilterField.eDataType.fString Case clsGameFilterField.eDataType.fString
txtStringFilter.Visible = True txtStringFilter.Visible = True
Case clsGameFilterField.eDataType.fNumeric Case clsGameFilterField.eDataType.fNumeric
@@ -437,7 +445,13 @@ Public Class frmFilter
numFilter.Visible = True numFilter.Visible = True
txtStringFilter.Visible = False txtStringFilter.Visible = False
Case clsGameFilterField.eDataType.fBool Case clsGameFilterField.eDataType.fBool
cboBoolFilter.Visible = True LoadComboAsBool()
cboListFilter.SelectedIndex = 0
cboListFilter.Visible = True
Case clsGameFilterField.eDataType.fEnum
LoadComboAsEnum(oFilter.EnumField)
cboListFilter.SelectedIndex = 0
cboListFilter.Visible = True
End Select End Select
End Sub End Sub
@@ -458,8 +472,8 @@ Public Class frmFilter
oFilter.Data = numFilter.Value oFilter.Data = numFilter.Value
oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators) oFilter.NumericOperator = DirectCast(cboNumericOps.SelectedValue, clsGameFilter.eNumericOperators)
sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data sFilter = oFilter.Field.FriendlyFieldName & " " & oFilter.NumericOperatorAsString & " " & oFilter.Data
Case clsGameFilterField.eDataType.fBool Case clsGameFilterField.eDataType.fBool, clsGameFilterField.eDataType.fEnum
oFilter.Data = cboBoolFilter.SelectedValue oFilter.Data = cboListFilter.SelectedValue
sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data sFilter = oFilter.Field.FriendlyFieldName & " = " & oFilter.Data
End Select End Select
@@ -531,20 +545,40 @@ Public Class frmFilter
End Sub End Sub
Private Sub LoadCombos() Private Sub LoadComboAsBool()
Dim oFilterFields As New List(Of KeyValuePair(Of clsGameFilterField, String))
Dim oSortFields As New List(Of KeyValuePair(Of String, String))
Dim oNumericOperators As New List(Of KeyValuePair(Of clsGameFilter.eNumericOperators, String))
Dim oBoolOperators As New List(Of KeyValuePair(Of Boolean, String)) Dim oBoolOperators As New List(Of KeyValuePair(Of Boolean, String))
'cboBoolFilter 'cboListFilter (Boolean)
cboBoolFilter.ValueMember = "Key" cboListFilter.ValueMember = "Key"
cboBoolFilter.DisplayMember = "Value" cboListFilter.DisplayMember = "Value"
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(True, frmFilter_cboBoolFilterEnabled)) oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(True, frmFilter_cboBoolFilterEnabled))
oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(False, frmFilter_cboBoolFilterDisabled)) oBoolOperators.Add(New KeyValuePair(Of Boolean, String)(False, frmFilter_cboBoolFilterDisabled))
cboBoolFilter.DataSource = oBoolOperators cboListFilter.DataSource = oBoolOperators
End Sub
Private Sub LoadComboAsEnum(ByVal eEnum As clsGameFilterField.eEnumFilterField)
Dim oEnums As New List(Of KeyValuePair(Of Integer, String))
'cboListFilter (Enum)
cboListFilter.ValueMember = "Key"
cboListFilter.DisplayMember = "Value"
Select Case eEnum
Case clsGameFilterField.eEnumFilterField.OS
For Each v As Object In [Enum].GetValues(GetType(clsGame.eOS))
oEnums.Add(New KeyValuePair(Of Integer, String)(v, [Enum].GetName(GetType(clsGame.eOS), v)))
Next
End Select
cboListFilter.DataSource = oEnums
End Sub
Private Sub LoadCombos()
Dim oFilterFields As New List(Of KeyValuePair(Of clsGameFilterField, String))
Dim oSortFields As New List(Of KeyValuePair(Of String, String))
Dim oNumericOperators As New List(Of KeyValuePair(Of clsGameFilter.eNumericOperators, String))
'cboNumericOps 'cboNumericOps
cboNumericOps.ValueMember = "Key" cboNumericOps.ValueMember = "Key"
@@ -591,6 +625,7 @@ Public Class frmFilter
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmFilter_FormName Me.Text = frmFilter_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
optOr.Text = frmFilter_optOr optOr.Text = frmFilter_optOr
+113 -50
View File
@@ -28,12 +28,16 @@ Partial Class frmGameManager
Me.btnBackup = New System.Windows.Forms.Button() Me.btnBackup = New System.Windows.Forms.Button()
Me.btnClose = New System.Windows.Forms.Button() Me.btnClose = New System.Windows.Forms.Button()
Me.grpConfig = New System.Windows.Forms.GroupBox() Me.grpConfig = New System.Windows.Forms.GroupBox()
Me.btnWineConfig = New System.Windows.Forms.Button()
Me.lblOS = New System.Windows.Forms.Label()
Me.cboOS = New System.Windows.Forms.ComboBox()
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox()
Me.btnGameID = New System.Windows.Forms.Button() Me.btnGameID = New System.Windows.Forms.Button()
Me.chkRegEx = New System.Windows.Forms.CheckBox() Me.chkRegEx = New System.Windows.Forms.CheckBox()
Me.lblComments = New System.Windows.Forms.Label() Me.lblComments = New System.Windows.Forms.Label()
Me.txtComments = New System.Windows.Forms.TextBox()
Me.txtParameter = New System.Windows.Forms.TextBox() Me.txtParameter = New System.Windows.Forms.TextBox()
Me.lblParameter = New System.Windows.Forms.Label() Me.lblParameter = New System.Windows.Forms.Label()
Me.txtComments = New System.Windows.Forms.TextBox()
Me.chkCleanFolder = New System.Windows.Forms.CheckBox() Me.chkCleanFolder = New System.Windows.Forms.CheckBox()
Me.lblLimit = New System.Windows.Forms.Label() Me.lblLimit = New System.Windows.Forms.Label()
Me.nudLimit = New System.Windows.Forms.NumericUpDown() Me.nudLimit = New System.Windows.Forms.NumericUpDown()
@@ -77,7 +81,7 @@ Partial Class frmGameManager
Me.lblLocalBackupData = New System.Windows.Forms.Label() Me.lblLocalBackupData = New System.Windows.Forms.Label()
Me.lblRestorePath = New System.Windows.Forms.Label() Me.lblRestorePath = New System.Windows.Forms.Label()
Me.btnOpenRestorePath = New System.Windows.Forms.Button() Me.btnOpenRestorePath = New System.Windows.Forms.Button()
Me.btnOpenBackupFile = New System.Windows.Forms.Button() Me.btnOpenBackup = New System.Windows.Forms.Button()
Me.btnDeleteBackup = New System.Windows.Forms.Button() Me.btnDeleteBackup = New System.Windows.Forms.Button()
Me.lblBackupFile = New System.Windows.Forms.Label() Me.lblBackupFile = New System.Windows.Forms.Label()
Me.lblRemote = New System.Windows.Forms.Label() Me.lblRemote = New System.Windows.Forms.Label()
@@ -107,7 +111,9 @@ Partial Class frmGameManager
Me.cmsDeleteAll = New System.Windows.Forms.ToolStripMenuItem() Me.cmsDeleteAll = New System.Windows.Forms.ToolStripMenuItem()
Me.btnProcesses = New System.Windows.Forms.Button() Me.btnProcesses = New System.Windows.Forms.Button()
Me.ttFullPath = New System.Windows.Forms.ToolTip(Me.components) Me.ttFullPath = New System.Windows.Forms.ToolTip(Me.components)
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox() Me.cmsOpenBackup = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cmsOpenBackupFile = New System.Windows.Forms.ToolStripMenuItem()
Me.cmsOpenBackupFolder = New System.Windows.Forms.ToolStripMenuItem()
Me.grpConfig.SuspendLayout() Me.grpConfig.SuspendLayout()
CType(Me.nudLimit, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.nudLimit, System.ComponentModel.ISupportInitialize).BeginInit()
Me.grpExtra.SuspendLayout() Me.grpExtra.SuspendLayout()
@@ -117,6 +123,7 @@ Partial Class frmGameManager
Me.grpFilter.SuspendLayout() Me.grpFilter.SuspendLayout()
Me.cmsImport.SuspendLayout() Me.cmsImport.SuspendLayout()
Me.cmsDeleteBackup.SuspendLayout() Me.cmsDeleteBackup.SuspendLayout()
Me.cmsOpenBackup.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
'btnAdd 'btnAdd
@@ -164,13 +171,16 @@ Partial Class frmGameManager
'grpConfig 'grpConfig
' '
Me.grpConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.grpConfig.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.grpConfig.Controls.Add(Me.btnWineConfig)
Me.grpConfig.Controls.Add(Me.lblOS)
Me.grpConfig.Controls.Add(Me.cboOS)
Me.grpConfig.Controls.Add(Me.chkRecurseSubFolders) Me.grpConfig.Controls.Add(Me.chkRecurseSubFolders)
Me.grpConfig.Controls.Add(Me.btnGameID) Me.grpConfig.Controls.Add(Me.btnGameID)
Me.grpConfig.Controls.Add(Me.chkRegEx) Me.grpConfig.Controls.Add(Me.chkRegEx)
Me.grpConfig.Controls.Add(Me.lblComments) Me.grpConfig.Controls.Add(Me.lblComments)
Me.grpConfig.Controls.Add(Me.txtComments)
Me.grpConfig.Controls.Add(Me.txtParameter) Me.grpConfig.Controls.Add(Me.txtParameter)
Me.grpConfig.Controls.Add(Me.lblParameter) Me.grpConfig.Controls.Add(Me.lblParameter)
Me.grpConfig.Controls.Add(Me.txtComments)
Me.grpConfig.Controls.Add(Me.chkCleanFolder) Me.grpConfig.Controls.Add(Me.chkCleanFolder)
Me.grpConfig.Controls.Add(Me.lblLimit) Me.grpConfig.Controls.Add(Me.lblLimit)
Me.grpConfig.Controls.Add(Me.nudLimit) Me.grpConfig.Controls.Add(Me.nudLimit)
@@ -197,6 +207,44 @@ Partial Class frmGameManager
Me.grpConfig.TabStop = False Me.grpConfig.TabStop = False
Me.grpConfig.Text = "Configuration" Me.grpConfig.Text = "Configuration"
' '
'btnWineConfig
'
Me.btnWineConfig.Location = New System.Drawing.Point(191, 167)
Me.btnWineConfig.Name = "btnWineConfig"
Me.btnWineConfig.Size = New System.Drawing.Size(175, 23)
Me.btnWineConfig.TabIndex = 16
Me.btnWineConfig.Text = "&Wine Configuration..."
Me.btnWineConfig.UseVisualStyleBackColor = True
'
'lblOS
'
Me.lblOS.AutoSize = True
Me.lblOS.Location = New System.Drawing.Point(7, 172)
Me.lblOS.Name = "lblOS"
Me.lblOS.Size = New System.Drawing.Size(25, 13)
Me.lblOS.TabIndex = 14
Me.lblOS.Text = "OS:"
'
'cboOS
'
Me.cboOS.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboOS.FormattingEnabled = True
Me.cboOS.Location = New System.Drawing.Point(70, 169)
Me.cboOS.Name = "cboOS"
Me.cboOS.Size = New System.Drawing.Size(115, 21)
Me.cboOS.TabIndex = 15
'
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(489, 206)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(15, 14)
Me.chkRecurseSubFolders.TabIndex = 0
Me.chkRecurseSubFolders.TabStop = False
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
Me.chkRecurseSubFolders.Visible = False
'
'btnGameID 'btnGameID
' '
Me.btnGameID.Location = New System.Drawing.Point(402, 17) Me.btnGameID.Location = New System.Drawing.Point(402, 17)
@@ -219,21 +267,12 @@ Partial Class frmGameManager
'lblComments 'lblComments
' '
Me.lblComments.AutoSize = True Me.lblComments.AutoSize = True
Me.lblComments.Location = New System.Drawing.Point(7, 181) Me.lblComments.Location = New System.Drawing.Point(7, 128)
Me.lblComments.Name = "lblComments" Me.lblComments.Name = "lblComments"
Me.lblComments.Size = New System.Drawing.Size(59, 13) Me.lblComments.Size = New System.Drawing.Size(59, 13)
Me.lblComments.TabIndex = 19 Me.lblComments.TabIndex = 12
Me.lblComments.Text = "Comments:" Me.lblComments.Text = "Comments:"
' '
'txtComments
'
Me.txtComments.Location = New System.Drawing.Point(70, 181)
Me.txtComments.Multiline = True
Me.txtComments.Name = "txtComments"
Me.txtComments.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtComments.Size = New System.Drawing.Size(413, 71)
Me.txtComments.TabIndex = 20
'
'txtParameter 'txtParameter
' '
Me.txtParameter.Location = New System.Drawing.Point(70, 71) Me.txtParameter.Location = New System.Drawing.Point(70, 71)
@@ -250,49 +289,58 @@ Partial Class frmGameManager
Me.lblParameter.TabIndex = 7 Me.lblParameter.TabIndex = 7
Me.lblParameter.Text = "Parameter:" Me.lblParameter.Text = "Parameter:"
' '
'txtComments
'
Me.txtComments.Location = New System.Drawing.Point(70, 123)
Me.txtComments.Multiline = True
Me.txtComments.Name = "txtComments"
Me.txtComments.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtComments.Size = New System.Drawing.Size(414, 40)
Me.txtComments.TabIndex = 13
'
'chkCleanFolder 'chkCleanFolder
' '
Me.chkCleanFolder.AutoSize = True Me.chkCleanFolder.AutoSize = True
Me.chkCleanFolder.Location = New System.Drawing.Point(330, 127) Me.chkCleanFolder.Location = New System.Drawing.Point(330, 200)
Me.chkCleanFolder.Name = "chkCleanFolder" Me.chkCleanFolder.Name = "chkCleanFolder"
Me.chkCleanFolder.Size = New System.Drawing.Size(136, 17) Me.chkCleanFolder.Size = New System.Drawing.Size(136, 17)
Me.chkCleanFolder.TabIndex = 14 Me.chkCleanFolder.TabIndex = 19
Me.chkCleanFolder.Text = "Delete folder on restore" Me.chkCleanFolder.Text = "Delete folder on restore"
Me.chkCleanFolder.UseVisualStyleBackColor = True Me.chkCleanFolder.UseVisualStyleBackColor = True
' '
'lblLimit 'lblLimit
' '
Me.lblLimit.AutoSize = True Me.lblLimit.AutoSize = True
Me.lblLimit.Location = New System.Drawing.Point(376, 157) Me.lblLimit.Location = New System.Drawing.Point(376, 229)
Me.lblLimit.Name = "lblLimit" Me.lblLimit.Name = "lblLimit"
Me.lblLimit.Size = New System.Drawing.Size(68, 13) Me.lblLimit.Size = New System.Drawing.Size(138, 13)
Me.lblLimit.TabIndex = 18 Me.lblLimit.TabIndex = 23
Me.lblLimit.Text = "Backup Limit" Me.lblLimit.Text = "Backup Limit (0 = Unlimited)"
Me.lblLimit.Visible = False Me.lblLimit.Visible = False
' '
'nudLimit 'nudLimit
' '
Me.nudLimit.Location = New System.Drawing.Point(330, 155) Me.nudLimit.Location = New System.Drawing.Point(330, 227)
Me.nudLimit.Name = "nudLimit" Me.nudLimit.Name = "nudLimit"
Me.nudLimit.Size = New System.Drawing.Size(40, 20) Me.nudLimit.Size = New System.Drawing.Size(40, 20)
Me.nudLimit.TabIndex = 17 Me.nudLimit.TabIndex = 22
Me.nudLimit.Visible = False Me.nudLimit.Visible = False
' '
'btnExclude 'btnExclude
' '
Me.btnExclude.Location = New System.Drawing.Point(10, 152) Me.btnExclude.Location = New System.Drawing.Point(10, 224)
Me.btnExclude.Name = "btnExclude" Me.btnExclude.Name = "btnExclude"
Me.btnExclude.Size = New System.Drawing.Size(175, 23) Me.btnExclude.Size = New System.Drawing.Size(175, 23)
Me.btnExclude.TabIndex = 15 Me.btnExclude.TabIndex = 20
Me.btnExclude.Text = "E&xclude Items..." Me.btnExclude.Text = "E&xclude Items..."
Me.btnExclude.UseVisualStyleBackColor = True Me.btnExclude.UseVisualStyleBackColor = True
' '
'btnInclude 'btnInclude
' '
Me.btnInclude.Location = New System.Drawing.Point(10, 123) Me.btnInclude.Location = New System.Drawing.Point(10, 196)
Me.btnInclude.Name = "btnInclude" Me.btnInclude.Name = "btnInclude"
Me.btnInclude.Size = New System.Drawing.Size(175, 23) Me.btnInclude.Size = New System.Drawing.Size(175, 23)
Me.btnInclude.TabIndex = 12 Me.btnInclude.TabIndex = 17
Me.btnInclude.Text = "Incl&ude Items..." Me.btnInclude.Text = "Incl&ude Items..."
Me.btnInclude.UseVisualStyleBackColor = True Me.btnInclude.UseVisualStyleBackColor = True
' '
@@ -372,20 +420,20 @@ Partial Class frmGameManager
'chkTimeStamp 'chkTimeStamp
' '
Me.chkTimeStamp.AutoSize = True Me.chkTimeStamp.AutoSize = True
Me.chkTimeStamp.Location = New System.Drawing.Point(191, 156) Me.chkTimeStamp.Location = New System.Drawing.Point(191, 228)
Me.chkTimeStamp.Name = "chkTimeStamp" Me.chkTimeStamp.Name = "chkTimeStamp"
Me.chkTimeStamp.Size = New System.Drawing.Size(133, 17) Me.chkTimeStamp.Size = New System.Drawing.Size(133, 17)
Me.chkTimeStamp.TabIndex = 16 Me.chkTimeStamp.TabIndex = 21
Me.chkTimeStamp.Text = "Save multiple backups" Me.chkTimeStamp.Text = "Save multiple backups"
Me.chkTimeStamp.UseVisualStyleBackColor = True Me.chkTimeStamp.UseVisualStyleBackColor = True
' '
'chkFolderSave 'chkFolderSave
' '
Me.chkFolderSave.AutoSize = True Me.chkFolderSave.AutoSize = True
Me.chkFolderSave.Location = New System.Drawing.Point(191, 127) Me.chkFolderSave.Location = New System.Drawing.Point(191, 200)
Me.chkFolderSave.Name = "chkFolderSave" Me.chkFolderSave.Name = "chkFolderSave"
Me.chkFolderSave.Size = New System.Drawing.Size(109, 17) Me.chkFolderSave.Size = New System.Drawing.Size(109, 17)
Me.chkFolderSave.TabIndex = 13 Me.chkFolderSave.TabIndex = 18
Me.chkFolderSave.Text = "Save entire folder" Me.chkFolderSave.Text = "Save entire folder"
Me.chkFolderSave.UseVisualStyleBackColor = True Me.chkFolderSave.UseVisualStyleBackColor = True
' '
@@ -585,7 +633,7 @@ Partial Class frmGameManager
Me.grpStats.Controls.Add(Me.lblLocalBackupData) Me.grpStats.Controls.Add(Me.lblLocalBackupData)
Me.grpStats.Controls.Add(Me.lblRestorePath) Me.grpStats.Controls.Add(Me.lblRestorePath)
Me.grpStats.Controls.Add(Me.btnOpenRestorePath) Me.grpStats.Controls.Add(Me.btnOpenRestorePath)
Me.grpStats.Controls.Add(Me.btnOpenBackupFile) Me.grpStats.Controls.Add(Me.btnOpenBackup)
Me.grpStats.Controls.Add(Me.btnDeleteBackup) Me.grpStats.Controls.Add(Me.btnDeleteBackup)
Me.grpStats.Controls.Add(Me.lblBackupFile) Me.grpStats.Controls.Add(Me.lblBackupFile)
Me.grpStats.Controls.Add(Me.lblRemote) Me.grpStats.Controls.Add(Me.lblRemote)
@@ -614,6 +662,7 @@ Partial Class frmGameManager
Me.cboRemoteBackup.Name = "cboRemoteBackup" Me.cboRemoteBackup.Name = "cboRemoteBackup"
Me.cboRemoteBackup.Size = New System.Drawing.Size(387, 21) Me.cboRemoteBackup.Size = New System.Drawing.Size(387, 21)
Me.cboRemoteBackup.TabIndex = 12 Me.cboRemoteBackup.TabIndex = 12
Me.cboRemoteBackup.Tag = "wipe"
' '
'lblRestorePathData 'lblRestorePathData
' '
@@ -666,14 +715,14 @@ Partial Class frmGameManager
Me.btnOpenRestorePath.Text = "O&pen Restore Path" Me.btnOpenRestorePath.Text = "O&pen Restore Path"
Me.btnOpenRestorePath.UseVisualStyleBackColor = True Me.btnOpenRestorePath.UseVisualStyleBackColor = True
' '
'btnOpenBackupFile 'btnOpenBackup
' '
Me.btnOpenBackupFile.Location = New System.Drawing.Point(249, 125) Me.btnOpenBackup.Location = New System.Drawing.Point(249, 125)
Me.btnOpenBackupFile.Name = "btnOpenBackupFile" Me.btnOpenBackup.Name = "btnOpenBackup"
Me.btnOpenBackupFile.Size = New System.Drawing.Size(114, 23) Me.btnOpenBackup.Size = New System.Drawing.Size(114, 23)
Me.btnOpenBackupFile.TabIndex = 10 Me.btnOpenBackup.TabIndex = 10
Me.btnOpenBackupFile.Text = "&Open Backup File" Me.btnOpenBackup.Text = "&Open Backup"
Me.btnOpenBackupFile.UseVisualStyleBackColor = True Me.btnOpenBackup.UseVisualStyleBackColor = True
' '
'btnDeleteBackup 'btnDeleteBackup
' '
@@ -927,16 +976,24 @@ Partial Class frmGameManager
Me.ttFullPath.InitialDelay = 300 Me.ttFullPath.InitialDelay = 300
Me.ttFullPath.ReshowDelay = 60 Me.ttFullPath.ReshowDelay = 60
' '
'chkRecurseSubFolders 'cmsOpenBackup
' '
Me.chkRecurseSubFolders.AutoSize = True Me.cmsOpenBackup.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmsOpenBackupFile, Me.cmsOpenBackupFolder})
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(489, 206) Me.cmsOpenBackup.Name = "cmsOpenBackup"
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders" Me.cmsOpenBackup.ShowImageMargin = False
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(15, 14) Me.cmsOpenBackup.Size = New System.Drawing.Size(83, 48)
Me.chkRecurseSubFolders.TabIndex = 0 '
Me.chkRecurseSubFolders.TabStop = False 'cmsOpenBackupFile
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True '
Me.chkRecurseSubFolders.Visible = False Me.cmsOpenBackupFile.Name = "cmsOpenBackupFile"
Me.cmsOpenBackupFile.Size = New System.Drawing.Size(82, 22)
Me.cmsOpenBackupFile.Text = "&File"
'
'cmsOpenBackupFolder
'
Me.cmsOpenBackupFolder.Name = "cmsOpenBackupFolder"
Me.cmsOpenBackupFolder.Size = New System.Drawing.Size(82, 22)
Me.cmsOpenBackupFolder.Text = "F&older"
' '
'frmGameManager 'frmGameManager
' '
@@ -968,7 +1025,6 @@ Partial Class frmGameManager
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmGameManager" Me.Name = "frmGameManager"
Me.ShowIcon = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Game Manager" Me.Text = "Game Manager"
Me.grpConfig.ResumeLayout(False) Me.grpConfig.ResumeLayout(False)
@@ -984,6 +1040,7 @@ Partial Class frmGameManager
Me.grpFilter.PerformLayout() Me.grpFilter.PerformLayout()
Me.cmsImport.ResumeLayout(False) Me.cmsImport.ResumeLayout(False)
Me.cmsDeleteBackup.ResumeLayout(False) Me.cmsDeleteBackup.ResumeLayout(False)
Me.cmsOpenBackup.ResumeLayout(False)
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout() Me.PerformLayout()
@@ -1032,7 +1089,7 @@ Partial Class frmGameManager
Friend WithEvents btnMarkAsRestored As System.Windows.Forms.Button Friend WithEvents btnMarkAsRestored As System.Windows.Forms.Button
Friend WithEvents btnRestore As System.Windows.Forms.Button Friend WithEvents btnRestore As System.Windows.Forms.Button
Friend WithEvents btnDeleteBackup As System.Windows.Forms.Button Friend WithEvents btnDeleteBackup As System.Windows.Forms.Button
Friend WithEvents btnOpenBackupFile As System.Windows.Forms.Button Friend WithEvents btnOpenBackup As System.Windows.Forms.Button
Friend WithEvents grpFilter As System.Windows.Forms.GroupBox Friend WithEvents grpFilter As System.Windows.Forms.GroupBox
Friend WithEvents optPendingRestores As System.Windows.Forms.RadioButton Friend WithEvents optPendingRestores As System.Windows.Forms.RadioButton
Friend WithEvents optAllGames As System.Windows.Forms.RadioButton Friend WithEvents optAllGames As System.Windows.Forms.RadioButton
@@ -1073,4 +1130,10 @@ Partial Class frmGameManager
Friend WithEvents cmsOfficialWindows As ToolStripMenuItem Friend WithEvents cmsOfficialWindows As ToolStripMenuItem
Friend WithEvents cmsOfficialLinux As ToolStripMenuItem Friend WithEvents cmsOfficialLinux As ToolStripMenuItem
Friend WithEvents chkRecurseSubFolders As CheckBox Friend WithEvents chkRecurseSubFolders As CheckBox
Friend WithEvents lblOS As Label
Friend WithEvents cboOS As ComboBox
Friend WithEvents btnWineConfig As Button
Friend WithEvents cmsOpenBackup As ContextMenuStrip
Friend WithEvents cmsOpenBackupFile As ToolStripMenuItem
Friend WithEvents cmsOpenBackupFolder As ToolStripMenuItem
End Class End Class
+3
View File
@@ -126,4 +126,7 @@
<metadata name="ttFullPath.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ttFullPath.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>275, 17</value> <value>275, 17</value>
</metadata> </metadata>
<metadata name="cmsOpenBackup.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>378, 17</value>
</metadata>
</root> </root>
+144 -85
View File
@@ -209,6 +209,14 @@ Public Class frmGameManager
Return sPath Return sPath
End Function End Function
Private Sub HandleWineConfig()
If mgrCommon.IsUnix And cboOS.SelectedValue = clsGame.eOS.Windows And Not eCurrentMode = eModes.Add Then
btnWineConfig.Visible = True
Else
btnWineConfig.Visible = False
End If
End Sub
Private Function CheckManifestandUpdate(ByVal oOriginalApp As clsGame, ByVal oNewApp As clsGame, ByVal bUseGameID As Boolean) As Boolean Private Function CheckManifestandUpdate(ByVal oOriginalApp As clsGame, ByVal oNewApp As clsGame, ByVal bUseGameID As Boolean) As Boolean
Dim oBackupItems As List(Of clsBackup) Dim oBackupItems As List(Of clsBackup)
Dim sDirectory As String Dim sDirectory As String
@@ -334,7 +342,7 @@ Public Class frmGameManager
oRestoreData = mgrRestore.CompareManifests oRestoreData = mgrRestore.CompareManifests
'Only show games with data to restore 'Only show games with data to restore
Dim oTemporaryList As OrderedDictionary = mgrCommon.GenericClone(GameData) Dim oTemporaryList As OrderedDictionary = mgrMonitorList.ReadFilteredList(oCurrentIncludeTagFilters, oCurrentExcludeTagFilters, oCurrentFilters, eCurrentFilter, bCurrentAndOperator, bCurrentSortAsc, sCurrentSortField)
For Each de As DictionaryEntry In oTemporaryList For Each de As DictionaryEntry In oTemporaryList
oGame = DirectCast(de.Value, clsGame) oGame = DirectCast(de.Value, clsGame)
If Not oRestoreData.ContainsKey(oGame.ID) Then If Not oRestoreData.ContainsKey(oGame.ID) Then
@@ -345,7 +353,7 @@ Public Class frmGameManager
Next Next
ElseIf optBackupData.Checked Then ElseIf optBackupData.Checked Then
'Only show games with backup data 'Only show games with backup data
Dim oTemporaryList As OrderedDictionary = mgrCommon.GenericClone(GameData) Dim oTemporaryList As OrderedDictionary = mgrMonitorList.ReadFilteredList(oCurrentIncludeTagFilters, oCurrentExcludeTagFilters, oCurrentFilters, eCurrentFilter, bCurrentAndOperator, bCurrentSortAsc, sCurrentSortField)
oRestoreData = oRemoteBackupData.Clone oRestoreData = oRemoteBackupData.Clone
For Each de As DictionaryEntry In oTemporaryList For Each de As DictionaryEntry In oTemporaryList
@@ -394,14 +402,14 @@ Public Class frmGameManager
End If End If
End If End If
sNewPath = mgrCommon.OpenFolderBrowser("GM_Process_Path", frmGameManager_ChooseExePath, sDefaultFolder, False, False) sNewPath = mgrCommon.OpenFolderBrowser("GM_Process_Path", frmGameManager_ChooseExePath, sDefaultFolder, False)
If sNewPath <> String.Empty Then txtAppPath.Text = sNewPath If sNewPath <> String.Empty Then txtAppPath.Text = sNewPath
End Sub End Sub
Private Sub SavePathBrowse() Private Sub SavePathBrowse()
Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim sCurrentPath As String = txtSavePath.Text Dim sCurrentPath As String = mgrPath.ReplaceSpecialPaths(txtSavePath.Text)
Dim sNewPath As String Dim sNewPath As String
If txtSavePath.Text <> String.Empty Then If txtSavePath.Text <> String.Empty Then
@@ -410,7 +418,7 @@ Public Class frmGameManager
End If End If
End If End If
sNewPath = mgrCommon.OpenFolderBrowser("GM_Save_Path", frmGameManager_ChooseSaveFolder, sDefaultFolder, False, False) sNewPath = mgrCommon.OpenFolderBrowser("GM_Save_Path", frmGameManager_ChooseSaveFolder, sDefaultFolder, False)
If sNewPath <> String.Empty Then If sNewPath <> String.Empty Then
txtSavePath.Text = sNewPath txtSavePath.Text = sNewPath
@@ -527,20 +535,15 @@ Public Class frmGameManager
End Sub End Sub
Private Sub OpenBackupFile() Private Sub OpenBackupFile()
Dim sFileName As String Dim sFileName As String = BackupFolder & CurrentBackupItem.FileName
Dim oProcessStartInfo As ProcessStartInfo
sFileName = BackupFolder & CurrentBackupItem.FileName mgrCommon.OpenInOS(sFileName, frmGameManager_ErrorNoBackupFileExists)
End Sub
If File.Exists(sFileName) Then Private Sub OpenBackupFolder()
oProcessStartInfo = New ProcessStartInfo Dim sFileName As String = BackupFolder & Path.GetDirectoryName(CurrentBackupItem.FileName)
oProcessStartInfo.FileName = sFileName
oProcessStartInfo.UseShellExecute = True mgrCommon.OpenInOS(sFileName, frmGameManager_ErrorNoBackupFolderExists)
oProcessStartInfo.Verb = "open"
Process.Start(oProcessStartInfo)
Else
mgrCommon.ShowMessage(frmGameManager_ErrorNoBackupExists, MsgBoxStyle.Exclamation)
End If
End Sub End Sub
Private Sub UpdateBuilderButtonLabel(ByVal sBuilderString As String, ByVal sLabel As String, ByVal btn As Button, ByVal bDirty As Boolean) Private Sub UpdateBuilderButtonLabel(ByVal sBuilderString As String, ByVal sLabel As String, ByVal btn As Button, ByVal bDirty As Boolean)
@@ -571,7 +574,7 @@ Public Class frmGameManager
Private Function GetBuilderRoot() As String Private Function GetBuilderRoot() As String
Dim sRoot As String = String.Empty Dim sRoot As String = String.Empty
Dim sPath As String = mgrPath.ValidatePathForOS(txtSavePath.Text) Dim sPath As String = mgrPath.ValidatePath(txtSavePath.Text)
If Not Settings.ShowResolvedPaths Then sPath = mgrPath.ReplaceSpecialPaths(sPath) If Not Settings.ShowResolvedPaths Then sPath = mgrPath.ReplaceSpecialPaths(sPath)
@@ -630,7 +633,6 @@ Public Class frmGameManager
Private Sub OpenRestorePath() Private Sub OpenRestorePath()
Dim sPath As String = String.Empty Dim sPath As String = String.Empty
Dim oProcessStartInfo As ProcessStartInfo
If CurrentBackupItem.AbsolutePath Then If CurrentBackupItem.AbsolutePath Then
sPath = CurrentBackupItem.RestorePath sPath = CurrentBackupItem.RestorePath
@@ -640,15 +642,7 @@ Public Class frmGameManager
End If End If
End If End If
If Directory.Exists(sPath) Then mgrCommon.OpenInOS(sPath, frmGameManager_ErrorNoRestorePathExists)
oProcessStartInfo = New ProcessStartInfo
oProcessStartInfo.FileName = sPath
oProcessStartInfo.UseShellExecute = True
oProcessStartInfo.Verb = "open"
Process.Start(oProcessStartInfo)
Else
mgrCommon.ShowMessage(frmGameManager_ErrorNoRestorePathExists, MsgBoxStyle.Exclamation)
End If
End Sub End Sub
Private Sub OpenProcesses() Private Sub OpenProcesses()
@@ -706,13 +700,13 @@ Public Class frmGameManager
If eCurrentMode = eModes.Add Then If eCurrentMode = eModes.Add Then
oTagsToSave = frm.TagList oTagsToSave = frm.TagList
FillTagsbyList(frm.TagList) lblTags.Text = mgrGameTags.PrintTagsbyList(frm.TagList)
Else Else
'Sync 'Sync
mgrMonitorList.SyncMonitorLists(Settings) mgrMonitorList.SyncMonitorLists(Settings)
'Only update visible tags if one item is selected 'Only update visible tags if one item is selected
If lstGames.SelectedItems.Count = 1 Then FillTagsbyID(CurrentGame.ID) If lstGames.SelectedItems.Count = 1 Then lblTags.Text = mgrGameTags.PrintTagsbyID(CurrentGame.ID)
'If a tag filter is enabled, reload list to reflect changes 'If a tag filter is enabled, reload list to reflect changes
If optCustom.Checked Then If optCustom.Checked Then
@@ -726,6 +720,13 @@ Public Class frmGameManager
End Sub End Sub
Public Sub OpenWineConfiguration()
Dim frm As New frmWineConfiguration
frm.Settings = oSettings
frm.MonitorID = oCurrentGame.ID
frm.ShowDialog()
End Sub
Public Sub VerifyBackups(ByVal oApp As clsGame) Public Sub VerifyBackups(ByVal oApp As clsGame)
Dim oCurrentBackup As clsBackup Dim oCurrentBackup As clsBackup
Dim oCurrentBackups As List(Of clsBackup) Dim oCurrentBackups As List(Of clsBackup)
@@ -799,7 +800,7 @@ Public Class frmGameManager
sFileName = BackupFolder & CurrentBackupItem.FileName sFileName = BackupFolder & CurrentBackupItem.FileName
btnOpenBackupFile.Enabled = True btnOpenBackup.Enabled = True
btnOpenRestorePath.Enabled = True btnOpenRestorePath.Enabled = True
btnRestore.Enabled = True btnRestore.Enabled = True
btnDeleteBackup.Enabled = True btnDeleteBackup.Enabled = True
@@ -807,7 +808,7 @@ Public Class frmGameManager
If File.Exists(sFileName) Then If File.Exists(sFileName) Then
lblBackupFileData.Text = Path.GetFileName(CurrentBackupItem.FileName) & " (" & mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sFileName)) & ")" lblBackupFileData.Text = Path.GetFileName(CurrentBackupItem.FileName) & " (" & mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sFileName)) & ")"
Else Else
lblBackupFileData.Text = frmGameManager_ErrorNoBackupExists lblBackupFileData.Text = frmGameManager_ErrorNoBackupFileExists
End If End If
SetBackupRestorePath(oApp) SetBackupRestorePath(oApp)
@@ -815,7 +816,7 @@ Public Class frmGameManager
oComboItems.Add(New KeyValuePair(Of String, String)(String.Empty, frmGameManager_None)) oComboItems.Add(New KeyValuePair(Of String, String)(String.Empty, frmGameManager_None))
lblBackupFileData.Text = String.Empty lblBackupFileData.Text = String.Empty
lblRestorePathData.Text = String.Empty lblRestorePathData.Text = String.Empty
btnOpenBackupFile.Enabled = False btnOpenBackup.Enabled = False
btnOpenRestorePath.Enabled = False btnOpenRestorePath.Enabled = False
btnRestore.Enabled = False btnRestore.Enabled = False
btnDeleteBackup.Enabled = False btnDeleteBackup.Enabled = False
@@ -845,6 +846,18 @@ Public Class frmGameManager
btnMarkAsRestored.Enabled = False btnMarkAsRestored.Enabled = False
End If End If
If chkMonitorOnly.Checked Then
btnImportBackup.Enabled = False
Else
btnImportBackup.Enabled = True
End If
If mgrPath.IsSupportedRegistryPath(oApp.TruePath) Then
btnImportBackup.Enabled = False
btnOpenBackup.Enabled = False
btnOpenRestorePath.Enabled = False
End If
End Sub End Sub
Private Sub UpdateBackupInfo(ByVal sManifestID As String) Private Sub UpdateBackupInfo(ByVal sManifestID As String)
@@ -858,7 +871,7 @@ Public Class frmGameManager
If File.Exists(sFileName) Then If File.Exists(sFileName) Then
lblBackupFileData.Text = Path.GetFileName(CurrentBackupItem.FileName) & " (" & mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sFileName)) & ")" lblBackupFileData.Text = Path.GetFileName(CurrentBackupItem.FileName) & " (" & mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sFileName)) & ")"
Else Else
lblBackupFileData.Text = frmGameManager_ErrorNoBackupExists lblBackupFileData.Text = frmGameManager_ErrorNoBackupFileExists
End If End If
SetBackupRestorePath(CurrentGame) SetBackupRestorePath(CurrentGame)
@@ -923,6 +936,7 @@ Public Class frmGameManager
txtProcess.Text = oApp.ProcessName txtProcess.Text = oApp.ProcessName
chkRegEx.Checked = oApp.IsRegEx chkRegEx.Checked = oApp.IsRegEx
txtParameter.Text = oApp.Parameter txtParameter.Text = oApp.Parameter
cboOS.SelectedValue = CInt(oApp.OS)
If oSettings.ShowResolvedPaths Then If oSettings.ShowResolvedPaths Then
txtSavePath.Text = oApp.Path txtSavePath.Text = oApp.Path
sttPath = oApp.TruePath sttPath = oApp.TruePath
@@ -946,6 +960,7 @@ Public Class frmGameManager
UpdateBuilderButtonLabel(oApp.FileType, frmGameManager_IncludeShortcut, btnInclude, False) UpdateBuilderButtonLabel(oApp.FileType, frmGameManager_IncludeShortcut, btnInclude, False)
UpdateBuilderButtonLabel(oApp.ExcludeList, frmGameManager_ExcludeShortcut, btnExclude, False) UpdateBuilderButtonLabel(oApp.ExcludeList, frmGameManager_ExcludeShortcut, btnExclude, False)
UpdateGenericButtonLabel(frmGameManager_btnGameID, btnGameID, False) UpdateGenericButtonLabel(frmGameManager_btnGameID, btnGameID, False)
HandleWineConfig()
'Extra 'Extra
txtAppPath.Text = oApp.ProcessPath txtAppPath.Text = oApp.ProcessPath
@@ -953,7 +968,7 @@ Public Class frmGameManager
txtVersion.Text = oApp.Version txtVersion.Text = oApp.Version
txtIcon.Text = oApp.Icon txtIcon.Text = oApp.Icon
FillTagsbyID(oData.Key) lblTags.Text = mgrGameTags.PrintTagsbyID(oData.Key)
'Icon 'Icon
If IO.File.Exists(oApp.Icon) Then If IO.File.Exists(oApp.Icon) Then
@@ -972,33 +987,6 @@ Public Class frmGameManager
IsLoading = False IsLoading = False
End Sub End Sub
Private Sub FillTagsbyID(ByVal sID As String)
Dim slTags As SortedList
Dim oTag As clsTag
Dim sTags As String = String.Empty
Dim cTrim() As Char = {",", " "}
slTags = mgrGameTags.GetTagsByGame(sID)
For Each de As DictionaryEntry In slTags
oTag = DirectCast(de.Value, clsTag)
sTags &= "#" & oTag.Name & ", "
Next
lblTags.Text = sTags.TrimEnd(cTrim)
End Sub
Private Sub FillTagsbyList(ByVal oList As List(Of KeyValuePair(Of String, String)))
Dim sTags As String = String.Empty
Dim cTrim() As Char = {",", " "}
For Each kp As KeyValuePair(Of String, String) In oList
sTags &= "#" & kp.Value & ", "
Next
lblTags.Text = sTags.TrimEnd(cTrim)
End Sub
Private Sub DirtyCheck_ValueChanged(sender As Object, e As EventArgs) Private Sub DirtyCheck_ValueChanged(sender As Object, e As EventArgs)
If Not IsLoading And Not eCurrentMode = eModes.MultiSelect Then If Not IsLoading And Not eCurrentMode = eModes.MultiSelect Then
IsDirty = True IsDirty = True
@@ -1021,6 +1009,7 @@ Public Class frmGameManager
Private Sub AssignDirtyHandlersMisc() Private Sub AssignDirtyHandlersMisc()
AddHandler chkEnabled.CheckedChanged, AddressOf DirtyCheck_ValueChanged AddHandler chkEnabled.CheckedChanged, AddressOf DirtyCheck_ValueChanged
AddHandler chkMonitorOnly.CheckedChanged, AddressOf DirtyCheck_ValueChanged AddHandler chkMonitorOnly.CheckedChanged, AddressOf DirtyCheck_ValueChanged
AddHandler cboOS.SelectedValueChanged, AddressOf DirtyCheck_ValueChanged
End Sub End Sub
Private Sub WipeControls(ByVal oCtls As GroupBox.ControlCollection) Private Sub WipeControls(ByVal oCtls As GroupBox.ControlCollection)
@@ -1034,7 +1023,7 @@ Public Class frmGameManager
ElseIf TypeOf ctl Is NumericUpDown Then ElseIf TypeOf ctl Is NumericUpDown Then
DirectCast(ctl, NumericUpDown).Value = DirectCast(ctl, NumericUpDown).Minimum DirectCast(ctl, NumericUpDown).Value = DirectCast(ctl, NumericUpDown).Minimum
ElseIf TypeOf ctl Is ComboBox Then ElseIf TypeOf ctl Is ComboBox Then
DirectCast(ctl, ComboBox).DataSource = Nothing If ctl.Tag = "wipe" Then DirectCast(ctl, ComboBox).DataSource = Nothing
End If End If
Next Next
End Sub End Sub
@@ -1070,7 +1059,7 @@ Public Class frmGameManager
btnRestore.Enabled = False btnRestore.Enabled = False
btnImportBackup.Enabled = False btnImportBackup.Enabled = False
btnDeleteBackup.Enabled = False btnDeleteBackup.Enabled = False
btnOpenBackupFile.Enabled = False btnOpenBackup.Enabled = False
btnOpenRestorePath.Enabled = False btnOpenRestorePath.Enabled = False
chkEnabled.Checked = True chkEnabled.Checked = True
chkMonitorOnly.Checked = False chkMonitorOnly.Checked = False
@@ -1083,6 +1072,8 @@ Public Class frmGameManager
btnExclude.Text = frmGameManager_btnExclude btnExclude.Text = frmGameManager_btnExclude
btnImport.Enabled = False btnImport.Enabled = False
btnExport.Enabled = False btnExport.Enabled = False
cboOS.SelectedValue = CInt(mgrCommon.GetCurrentOS)
HandleWineConfig()
Case eModes.Edit Case eModes.Edit
grpFilter.Enabled = False grpFilter.Enabled = False
lstGames.Enabled = False lstGames.Enabled = False
@@ -1102,7 +1093,7 @@ Public Class frmGameManager
btnRestore.Enabled = False btnRestore.Enabled = False
btnImportBackup.Enabled = False btnImportBackup.Enabled = False
btnDeleteBackup.Enabled = False btnDeleteBackup.Enabled = False
btnOpenBackupFile.Enabled = False btnOpenBackup.Enabled = False
btnOpenRestorePath.Enabled = False btnOpenRestorePath.Enabled = False
btnTags.Enabled = True btnTags.Enabled = True
btnProcesses.Enabled = True btnProcesses.Enabled = True
@@ -1129,7 +1120,6 @@ Public Class frmGameManager
lblTags.Visible = True lblTags.Visible = True
btnImport.Enabled = True btnImport.Enabled = True
btnExport.Enabled = True btnExport.Enabled = True
btnImportBackup.Enabled = True
Case eModes.Disabled Case eModes.Disabled
grpFilter.Enabled = True grpFilter.Enabled = True
lstGames.Enabled = True lstGames.Enabled = True
@@ -1158,6 +1148,7 @@ Public Class frmGameManager
btnExclude.Text = frmGameManager_btnExclude btnExclude.Text = frmGameManager_btnExclude
btnImport.Enabled = True btnImport.Enabled = True
btnExport.Enabled = True btnExport.Enabled = True
cboOS.SelectedValue = CInt(mgrCommon.GetCurrentOS)
UpdateGenericButtonLabel(frmGameManager_IncludeShortcut, btnInclude, False) UpdateGenericButtonLabel(frmGameManager_IncludeShortcut, btnInclude, False)
UpdateGenericButtonLabel(frmGameManager_ExcludeShortcut, btnExclude, False) UpdateGenericButtonLabel(frmGameManager_ExcludeShortcut, btnExclude, False)
UpdateGenericButtonLabel(frmGameManager_btnGameID, btnGameID, False) UpdateGenericButtonLabel(frmGameManager_btnGameID, btnGameID, False)
@@ -1220,6 +1211,7 @@ Public Class frmGameManager
btnInclude.Enabled = False btnInclude.Enabled = False
btnExclude.Enabled = False btnExclude.Enabled = False
chkCleanFolder.Enabled = False chkCleanFolder.Enabled = False
btnWineConfig.Enabled = False
Else Else
chkFolderSave.Enabled = True chkFolderSave.Enabled = True
chkTimeStamp.Enabled = True chkTimeStamp.Enabled = True
@@ -1230,10 +1222,25 @@ Public Class frmGameManager
btnSavePathBrowse.Enabled = True btnSavePathBrowse.Enabled = True
btnInclude.Enabled = True btnInclude.Enabled = True
btnExclude.Enabled = True btnExclude.Enabled = True
btnWineConfig.Enabled = True
FolderSaveModeChange() FolderSaveModeChange()
End If End If
End Sub End Sub
Private Sub RegistryModeChange()
If mgrPath.IsSupportedRegistryPath(txtSavePath.Text) Then
cboOS.SelectedValue = CInt(clsGame.eOS.Windows)
chkFolderSave.Checked = True
chkFolderSave.Enabled = False
btnInclude.Enabled = False
btnExclude.Enabled = False
Else
chkFolderSave.Enabled = True
btnInclude.Enabled = True
btnExclude.Enabled = True
End If
End Sub
Private Sub TimeStampModeChange() Private Sub TimeStampModeChange()
If chkTimeStamp.Checked Then If chkTimeStamp.Checked Then
nudLimit.Visible = True nudLimit.Visible = True
@@ -1258,7 +1265,7 @@ Public Class frmGameManager
Private Sub VerifyCleanFolder() Private Sub VerifyCleanFolder()
If Not bIsLoading Then If Not bIsLoading Then
If (chkFolderSave.Checked = True And txtExclude.Text = String.Empty And txtSavePath.Text <> String.Empty) And Not chkMonitorOnly.Checked Then If (chkFolderSave.Checked = True And txtExclude.Text = String.Empty And txtSavePath.Text <> String.Empty) And Not mgrPath.IsSupportedRegistryPath(txtSavePath.Text) And Not chkMonitorOnly.Checked Then
chkCleanFolder.Enabled = True chkCleanFolder.Enabled = True
Else Else
chkCleanFolder.Checked = False chkCleanFolder.Checked = False
@@ -1354,7 +1361,7 @@ Public Class frmGameManager
oApp.IsRegEx = chkRegEx.Checked oApp.IsRegEx = chkRegEx.Checked
If Not oApp.IsRegEx Then If Not oApp.IsRegEx Then
txtProcess.Text = mgrPath.ValidateFileNameForOS(txtProcess.Text) txtProcess.Text = mgrPath.ValidateFileName(txtProcess.Text)
If Path.HasExtension(txtProcess.Text) Then If Path.HasExtension(txtProcess.Text) Then
If txtProcess.Text.ToLower.EndsWith(".exe") Then If txtProcess.Text.ToLower.EndsWith(".exe") Then
txtProcess.Text = Path.GetFileNameWithoutExtension(txtProcess.Text) txtProcess.Text = Path.GetFileNameWithoutExtension(txtProcess.Text)
@@ -1364,9 +1371,22 @@ Public Class frmGameManager
oApp.ProcessName = txtProcess.Text oApp.ProcessName = txtProcess.Text
oApp.Parameter = txtParameter.Text oApp.Parameter = txtParameter.Text
oApp.Path = mgrPath.ValidatePathForOS(txtSavePath.Text) oApp.OS = CType(cboOS.SelectedValue, clsGame.eOS)
'Only do a simple root check here in case the user doesn't really understand creating a proper configuration oApp.Path = mgrPath.ValidatePath(txtSavePath.Text)
oApp.AbsolutePath = Path.IsPathRooted(oApp.Path)
'If we have a registry path, trim any trailing backslashes because they cause export failures
If mgrPath.IsSupportedRegistryPath(oApp.Path) Then
oApp.Path = oApp.Path.TrimEnd("\")
End If
'We need to handle a special case here when working with Windows configurations in Linux
If mgrCommon.IsUnix And mgrVariables.CheckForReservedVariables(oApp.Path) And oApp.OS = clsGame.eOS.Windows Then
oApp.AbsolutePath = True
Else
'Only do a simple root check here in case the user doesn't really understand creating a proper configuration
oApp.AbsolutePath = Path.IsPathRooted(oApp.Path)
End If
oApp.FileType = txtFileType.Text oApp.FileType = txtFileType.Text
oApp.ExcludeList = txtExclude.Text oApp.ExcludeList = txtExclude.Text
oApp.FolderSave = chkFolderSave.Checked oApp.FolderSave = chkFolderSave.Checked
@@ -1377,7 +1397,7 @@ Public Class frmGameManager
oApp.Comments = txtComments.Text oApp.Comments = txtComments.Text
oApp.Enabled = chkEnabled.Checked oApp.Enabled = chkEnabled.Checked
oApp.MonitorOnly = chkMonitorOnly.Checked oApp.MonitorOnly = chkMonitorOnly.Checked
oApp.ProcessPath = mgrPath.ValidatePathForOS(txtAppPath.Text) oApp.ProcessPath = mgrPath.ValidatePath(txtAppPath.Text)
oApp.Company = txtCompany.Text oApp.Company = txtCompany.Text
oApp.Version = txtVersion.Text oApp.Version = txtVersion.Text
oApp.Icon = txtIcon.Text oApp.Icon = txtIcon.Text
@@ -1471,7 +1491,6 @@ Public Class frmGameManager
FillData() FillData()
ModeChange() ModeChange()
VerifyCleanFolder() VerifyCleanFolder()
VerifyImportBackup()
ElseIf lstGames.SelectedItems.Count > 1 Then ElseIf lstGames.SelectedItems.Count > 1 Then
eCurrentMode = eModes.MultiSelect eCurrentMode = eModes.MultiSelect
ModeChange() ModeChange()
@@ -1721,7 +1740,7 @@ Public Class frmGameManager
sLocation = mgrCommon.OpenFileBrowser("XML_Import", frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False) sLocation = mgrCommon.OpenFileBrowser("XML_Import", frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False)
If sLocation <> String.Empty Then If sLocation <> String.Empty Then
If mgrMonitorList.DoImport(sLocation, False, Settings) Then If mgrMonitorList.DoImport(sLocation, False) Then
mgrMonitorList.SyncMonitorLists(Settings) mgrMonitorList.SyncMonitorLists(Settings)
LoadData() LoadData()
LoadBackupData() LoadBackupData()
@@ -1741,9 +1760,9 @@ Public Class frmGameManager
End Sub End Sub
Private Sub ImportOfficialGameList(ByVal sImportUrl As String, ByVal bWinConfigsInLinux As Boolean) Private Sub ImportOfficialGameList(ByVal sImportUrl As String)
If mgrCommon.ShowMessage(frmGameManager_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowMessage(frmGameManager_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If mgrMonitorList.DoImport(sImportUrl, True, Settings,, bWinConfigsInLinux) Then If mgrMonitorList.DoImport(sImportUrl, True) Then
mgrMonitorList.SyncMonitorLists(Settings) mgrMonitorList.SyncMonitorLists(Settings)
LoadData() LoadData()
LoadBackupData() LoadBackupData()
@@ -1754,6 +1773,7 @@ Public Class frmGameManager
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Name = frmGameManager_FormName Me.Name = frmGameManager_FormName
Me.Icon = GBM_Icon
'Set Form text 'Set Form text
grpFilter.Text = frmGameManager_grpFilter grpFilter.Text = frmGameManager_grpFilter
@@ -1775,7 +1795,7 @@ Public Class frmGameManager
btnSave.Text = frmGameManager_btnSave btnSave.Text = frmGameManager_btnSave
lblRestorePath.Text = frmGameManager_lblRestorePath lblRestorePath.Text = frmGameManager_lblRestorePath
btnOpenRestorePath.Text = frmGameManager_btnOpenRestorePath btnOpenRestorePath.Text = frmGameManager_btnOpenRestorePath
btnOpenBackupFile.Text = frmGameManager_btnOpenBackupFile btnOpenBackup.Text = frmGameManager_btnOpenBackup
btnDeleteBackup.Text = frmGameManager_btnDeleteBackup btnDeleteBackup.Text = frmGameManager_btnDeleteBackup
lblBackupFile.Text = frmGameManager_lblBackupFile lblBackupFile.Text = frmGameManager_lblBackupFile
lblRemote.Text = frmGameManager_lblRemote lblRemote.Text = frmGameManager_lblRemote
@@ -1815,6 +1835,27 @@ Public Class frmGameManager
btnGameID.Text = frmGameManager_btnGameID btnGameID.Text = frmGameManager_btnGameID
btnImportBackup.Text = frmGameManager_btnImportBackup btnImportBackup.Text = frmGameManager_btnImportBackup
btnProcesses.Text = frmGameManager_btnProcesses btnProcesses.Text = frmGameManager_btnProcesses
lblOS.Text = frmGameManager_lblOS
btnWineConfig.Text = frmGameManager_btnWineConfig
cmsOpenBackupFile.Text = frmGameManager_cmsOpenBackupFile
cmsOpenBackupFolder.Text = frmGameManager_cmsOpenBackupFolder
'Init Combos
Dim oComboItems As New List(Of KeyValuePair(Of Integer, String))
'cboOS
cboOS.ValueMember = "Key"
cboOS.DisplayMember = "Value"
oComboItems.Add(New KeyValuePair(Of Integer, String)(clsGame.eOS.Windows, App_WindowsOS))
oComboItems.Add(New KeyValuePair(Of Integer, String)(clsGame.eOS.Linux, App_LinuxOS))
cboOS.DataSource = oComboItems
If Not mgrCommon.IsUnix Then
cboOS.Enabled = False
btnWineConfig.Visible = False
End If
'Init Official Import Menu 'Init Official Import Menu
If mgrCommon.IsUnix Then If mgrCommon.IsUnix Then
@@ -1840,8 +1881,9 @@ Public Class frmGameManager
btnRestore.Visible = False btnRestore.Visible = False
btnMarkAsRestored.Visible = False btnMarkAsRestored.Visible = False
btnDeleteBackup.Visible = False btnDeleteBackup.Visible = False
btnOpenBackupFile.Visible = False btnOpenBackup.Visible = False
btnOpenRestorePath.Visible = False btnOpenRestorePath.Visible = False
btnImportBackup.Visible = False
End If End If
LoadBackupData() LoadBackupData()
@@ -1922,10 +1964,18 @@ Public Class frmGameManager
IconBrowse() IconBrowse()
End Sub End Sub
Private Sub btnOpenBackupFile_Click(sender As Object, e As EventArgs) Handles btnOpenBackupFile.Click Private Sub btnOpenBackup_Click(sender As Object, e As EventArgs) Handles btnOpenBackup.Click
mgrCommon.OpenButtonSubMenu(cmsOpenBackup, btnOpenBackup)
End Sub
Private Sub cmsOpenBackupFile_Click(sender As Object, e As EventArgs) Handles cmsOpenBackupFile.Click
OpenBackupFile() OpenBackupFile()
End Sub End Sub
Private Sub cmsOpenBackupFolder_Click(sender As Object, e As EventArgs) Handles cmsOpenBackupFolder.Click
OpenBackupFolder()
End Sub
Private Sub btnOpenRestorePath_Click(sender As Object, e As EventArgs) Handles btnOpenRestorePath.Click Private Sub btnOpenRestorePath_Click(sender As Object, e As EventArgs) Handles btnOpenRestorePath.Click
OpenRestorePath() OpenRestorePath()
End Sub End Sub
@@ -1938,9 +1988,13 @@ Public Class frmGameManager
OpenProcesses() OpenProcesses()
End Sub End Sub
Private Sub btnWineConfig_Click(sender As Object, e As EventArgs) Handles btnWineConfig.Click
OpenWineConfiguration()
End Sub
Private Sub btnDeleteBackup_Click(sender As Object, e As EventArgs) Handles btnDeleteBackup.Click Private Sub btnDeleteBackup_Click(sender As Object, e As EventArgs) Handles btnDeleteBackup.Click
If cboRemoteBackup.Items.Count > 1 Then If cboRemoteBackup.Items.Count > 1 Then
cmsDeleteBackup.Show(btnDeleteBackup, New Drawing.Point(btnDeleteBackup.Size.Width - Math.Floor(btnDeleteBackup.Size.Width * 0.1), btnDeleteBackup.Size.Height - Math.Floor(btnDeleteBackup.Size.Height * 0.5)), ToolStripDropDownDirection.AboveRight) mgrCommon.OpenButtonSubMenu(cmsDeleteBackup, btnDeleteBackup)
Else Else
DeleteBackup() DeleteBackup()
End If End If
@@ -2003,12 +2057,17 @@ Public Class frmGameManager
End If End If
End Sub End Sub
Private Sub cboOS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboOS.SelectedIndexChanged
If Not bIsLoading And Not eCurrentMode = eModes.Add Then
HandleWineConfig()
End If
End Sub
Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click Private Sub btnImport_Click(sender As Object, e As EventArgs) Handles btnImport.Click
cmsImport.Show(btnImport, New Drawing.Point(btnImport.Size.Width - Math.Floor(btnImport.Size.Width * 0.1), btnImport.Size.Height - Math.Floor(btnImport.Size.Height * 0.5)), ToolStripDropDownDirection.AboveRight) mgrCommon.OpenButtonSubMenu(cmsImport, btnImport)
End Sub End Sub
Private Sub cmsOfficialWindows_Click(sender As Object, e As EventArgs) Handles cmsOfficialWindows.Click, cmsOfficial.Click Private Sub cmsOfficialWindows_Click(sender As Object, e As EventArgs) Handles cmsOfficialWindows.Click, cmsOfficial.Click
Dim bWinConfigsinLinux As Boolean = False
'Show one time warning about Windows configs in Linux 'Show one time warning about Windows configs in Linux
If mgrCommon.IsUnix Then If mgrCommon.IsUnix Then
If Not (oSettings.SuppressMessages And mgrSettings.eSuppressMessages.WinConfigsInLinux) = mgrSettings.eSuppressMessages.WinConfigsInLinux Then If Not (oSettings.SuppressMessages And mgrSettings.eSuppressMessages.WinConfigsInLinux) = mgrSettings.eSuppressMessages.WinConfigsInLinux Then
@@ -2016,14 +2075,13 @@ Public Class frmGameManager
oSettings.SuppressMessages = oSettings.SetMessageField(oSettings.SuppressMessages, mgrSettings.eSuppressMessages.WinConfigsInLinux) oSettings.SuppressMessages = oSettings.SetMessageField(oSettings.SuppressMessages, mgrSettings.eSuppressMessages.WinConfigsInLinux)
oSettings.SaveSettings() oSettings.SaveSettings()
End If End If
bWinConfigsinLinux = True
End If End If
ImportOfficialGameList(App_URLImport, bWinConfigsinLinux) ImportOfficialGameList(App_URLImport)
End Sub End Sub
Private Sub cmsOfficialLinux_Click(sender As Object, e As EventArgs) Handles cmsOfficialLinux.Click Private Sub cmsOfficialLinux_Click(sender As Object, e As EventArgs) Handles cmsOfficialLinux.Click
ImportOfficialGameList(App_URLImportLinux, False) ImportOfficialGameList(App_URLImportLinux)
End Sub End Sub
Private Sub cmsFile_Click(sender As Object, e As EventArgs) Handles cmsFile.Click Private Sub cmsFile_Click(sender As Object, e As EventArgs) Handles cmsFile.Click
@@ -2054,6 +2112,7 @@ Public Class frmGameManager
Private Sub txtSavePath_TextChanged(sender As Object, e As EventArgs) Handles txtSavePath.TextChanged Private Sub txtSavePath_TextChanged(sender As Object, e As EventArgs) Handles txtSavePath.TextChanged
ttFullPath.RemoveAll() ttFullPath.RemoveAll()
RegistryModeChange()
VerifyCleanFolder() VerifyCleanFolder()
End Sub End Sub
+1
View File
@@ -124,6 +124,7 @@ Partial Class frmGameProcesses
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmGameProcesses" Me.Name = "frmGameProcesses"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Edit Processes" Me.Text = "Edit Processes"
Me.ResumeLayout(False) Me.ResumeLayout(False)
+1
View File
@@ -211,6 +211,7 @@ Public Class frmGameProcesses
Else Else
Me.Text = mgrCommon.FormatString(frmGameProcesses_FormNameSingle, GameName) Me.Text = mgrCommon.FormatString(frmGameProcesses_FormNameSingle, GameName)
End If End If
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnOpenProcesses.Text = frmGameProcesses_btnOpenProcesses btnOpenProcesses.Text = frmGameProcesses_btnOpenProcesses
+1
View File
@@ -124,6 +124,7 @@ Partial Class frmGameTags
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmGameTags" Me.Name = "frmGameTags"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Edit Tags" Me.Text = "Edit Tags"
Me.ResumeLayout(False) Me.ResumeLayout(False)
+1
View File
@@ -213,6 +213,7 @@ Public Class frmGameTags
Else Else
Me.Text = mgrCommon.FormatString(frmGameTags_FormNameSingle, GameName) Me.Text = mgrCommon.FormatString(frmGameTags_FormNameSingle, GameName)
End If End If
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnOpenTags.Text = frmGameTags_btnOpenTags btnOpenTags.Text = frmGameTags_btnOpenTags
+12 -11
View File
@@ -38,13 +38,13 @@ Partial Class frmIncludeExclude
Me.btnRemove = New System.Windows.Forms.Button() Me.btnRemove = New System.Windows.Forms.Button()
Me.btnAdd = New System.Windows.Forms.Button() Me.btnAdd = New System.Windows.Forms.Button()
Me.grpOptions = New System.Windows.Forms.GroupBox() Me.grpOptions = New System.Windows.Forms.GroupBox()
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox()
Me.optFileTypes = New System.Windows.Forms.RadioButton() Me.optFileTypes = New System.Windows.Forms.RadioButton()
Me.optIndividualFiles = New System.Windows.Forms.RadioButton() Me.optIndividualFiles = New System.Windows.Forms.RadioButton()
Me.lblItems = New System.Windows.Forms.Label() Me.lblItems = New System.Windows.Forms.Label()
Me.btnRawEdit = New System.Windows.Forms.Button() Me.btnRawEdit = New System.Windows.Forms.Button()
Me.lblSaveFolder = New System.Windows.Forms.Label() Me.lblSaveFolder = New System.Windows.Forms.Label()
Me.ttWarning = New System.Windows.Forms.ToolTip(Me.components) Me.ttWarning = New System.Windows.Forms.ToolTip(Me.components)
Me.chkRecurseSubFolders = New System.Windows.Forms.CheckBox()
Me.cmsItems.SuspendLayout() Me.cmsItems.SuspendLayout()
Me.grpOptions.SuspendLayout() Me.grpOptions.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
@@ -170,6 +170,16 @@ Partial Class frmIncludeExclude
Me.grpOptions.TabStop = False Me.grpOptions.TabStop = False
Me.grpOptions.Text = "Options" Me.grpOptions.Text = "Options"
' '
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(185, 20)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(120, 17)
Me.chkRecurseSubFolders.TabIndex = 2
Me.chkRecurseSubFolders.Text = "Recurse sub-folders"
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
'
'optFileTypes 'optFileTypes
' '
Me.optFileTypes.Location = New System.Drawing.Point(6, 19) Me.optFileTypes.Location = New System.Drawing.Point(6, 19)
@@ -224,16 +234,6 @@ Partial Class frmIncludeExclude
Me.ttWarning.ReshowDelay = 50 Me.ttWarning.ReshowDelay = 50
Me.ttWarning.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Warning Me.ttWarning.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Warning
' '
'chkRecurseSubFolders
'
Me.chkRecurseSubFolders.AutoSize = True
Me.chkRecurseSubFolders.Location = New System.Drawing.Point(185, 20)
Me.chkRecurseSubFolders.Name = "chkRecurseSubFolders"
Me.chkRecurseSubFolders.Size = New System.Drawing.Size(120, 17)
Me.chkRecurseSubFolders.TabIndex = 2
Me.chkRecurseSubFolders.Text = "Recurse sub-folders"
Me.chkRecurseSubFolders.UseVisualStyleBackColor = True
'
'frmIncludeExclude 'frmIncludeExclude
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -256,6 +256,7 @@ Partial Class frmIncludeExclude
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmIncludeExclude" Me.Name = "frmIncludeExclude"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Include / Exclude Builder" Me.Text = "Include / Exclude Builder"
Me.cmsItems.ResumeLayout(False) Me.cmsItems.ResumeLayout(False)
+1 -1
View File
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB6
CQAAAk1TRnQBSQFMAgEBAwEAAcABAAHAAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo CQAAAk1TRnQBSQFMAgEBAwEAAcgBAAHIAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
+2 -1
View File
@@ -118,7 +118,7 @@ Public Class frmIncludeExclude
End If End If
End If End If
sNewPath = mgrCommon.OpenFolderBrowser("IE_Save_Path", frmIncludeExclude_BrowseSaveFolder, sDefaultFolder, False, False) sNewPath = mgrCommon.OpenFolderBrowser("IE_Save_Path", frmIncludeExclude_BrowseSaveFolder, sDefaultFolder, False)
If sNewPath <> String.Empty Then txtRootFolder.Text = sNewPath If sNewPath <> String.Empty Then txtRootFolder.Text = sNewPath
End Sub End Sub
@@ -244,6 +244,7 @@ Public Class frmIncludeExclude
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = mgrCommon.FormatString(frmIncludeExclude_FormName, FormName) Me.Text = mgrCommon.FormatString(frmIncludeExclude_FormName, FormName)
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
lblSaveFolder.Text = frmIncludeExclude_lblSaveFolder lblSaveFolder.Text = frmIncludeExclude_lblSaveFolder
+20 -18
View File
@@ -34,9 +34,9 @@ Partial Class frmMain
Me.gMonTraySetup = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTraySetup = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTraySetupAddWizard = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTraySetupAddWizard = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTraySetupGameManager = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTraySetupGameManager = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTraySetupCustomVariables = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTraySetupTags = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTraySetupTags = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTraySetupProcessManager = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTraySetupProcessManager = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTraySetupCustomVariables = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTrayTools = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTrayTools = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTrayToolsCompact = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTrayToolsCompact = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTrayToolsLog = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTrayToolsLog = New System.Windows.Forms.ToolStripMenuItem()
@@ -64,9 +64,9 @@ Partial Class frmMain
Me.gMonSetup = New System.Windows.Forms.ToolStripMenuItem() Me.gMonSetup = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonSetupGameManager = New System.Windows.Forms.ToolStripMenuItem() Me.gMonSetupGameManager = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonSetupAddWizard = New System.Windows.Forms.ToolStripMenuItem() Me.gMonSetupAddWizard = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonSetupCustomVariables = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonSetupTags = New System.Windows.Forms.ToolStripMenuItem() Me.gMonSetupTags = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonSetupProcessManager = New System.Windows.Forms.ToolStripMenuItem() Me.gMonSetupProcessManager = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonSetupCustomVariables = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonTools = New System.Windows.Forms.ToolStripMenuItem() Me.gMonTools = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonToolsCompact = New System.Windows.Forms.ToolStripMenuItem() Me.gMonToolsCompact = New System.Windows.Forms.ToolStripMenuItem()
Me.gMonToolsLog = New System.Windows.Forms.ToolStripMenuItem() Me.gMonToolsLog = New System.Windows.Forms.ToolStripMenuItem()
@@ -106,6 +106,7 @@ Partial Class frmMain
Me.gMonTray.ContextMenuStrip = Me.gMonTrayMenu Me.gMonTray.ContextMenuStrip = Me.gMonTrayMenu
Me.gMonTray.Icon = CType(resources.GetObject("gMonTray.Icon"), System.Drawing.Icon) Me.gMonTray.Icon = CType(resources.GetObject("gMonTray.Icon"), System.Drawing.Icon)
Me.gMonTray.Text = "GBM" Me.gMonTray.Text = "GBM"
Me.gMonTray.Visible = True
' '
'gMonTrayMenu 'gMonTrayMenu
' '
@@ -162,12 +163,6 @@ Partial Class frmMain
Me.gMonTraySetupGameManager.Size = New System.Drawing.Size(201, 22) Me.gMonTraySetupGameManager.Size = New System.Drawing.Size(201, 22)
Me.gMonTraySetupGameManager.Text = "&Game Manager..." Me.gMonTraySetupGameManager.Text = "&Game Manager..."
' '
'gMonTraySetupCustomVariables
'
Me.gMonTraySetupCustomVariables.Name = "gMonTraySetupCustomVariables"
Me.gMonTraySetupCustomVariables.Size = New System.Drawing.Size(201, 22)
Me.gMonTraySetupCustomVariables.Text = "Custom Path &Variables..."
'
'gMonTraySetupTags 'gMonTraySetupTags
' '
Me.gMonTraySetupTags.Name = "gMonTraySetupTags" Me.gMonTraySetupTags.Name = "gMonTraySetupTags"
@@ -180,6 +175,12 @@ Partial Class frmMain
Me.gMonTraySetupProcessManager.Size = New System.Drawing.Size(201, 22) Me.gMonTraySetupProcessManager.Size = New System.Drawing.Size(201, 22)
Me.gMonTraySetupProcessManager.Text = "&Process Manager..." Me.gMonTraySetupProcessManager.Text = "&Process Manager..."
' '
'gMonTraySetupCustomVariables
'
Me.gMonTraySetupCustomVariables.Name = "gMonTraySetupCustomVariables"
Me.gMonTraySetupCustomVariables.Size = New System.Drawing.Size(201, 22)
Me.gMonTraySetupCustomVariables.Text = "Custom Path &Variables..."
'
'gMonTrayTools 'gMonTrayTools
' '
Me.gMonTrayTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsCompact, Me.gMonTrayToolsLog, Me.gMonTrayToolsSessions, Me.gMonTrayToolsSyncGameID}) Me.gMonTrayTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonTrayToolsCompact, Me.gMonTrayToolsLog, Me.gMonTrayToolsSessions, Me.gMonTrayToolsSyncGameID})
@@ -257,19 +258,21 @@ Partial Class frmMain
Me.txtLog.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Me.txtLog.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtLog.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txtLog.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.txtLog.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtLog.Location = New System.Drawing.Point(12, 184) Me.txtLog.Location = New System.Drawing.Point(-1, 184)
Me.txtLog.MaxLength = 524288 Me.txtLog.MaxLength = 524288
Me.txtLog.Multiline = True Me.txtLog.Multiline = True
Me.txtLog.Name = "txtLog" Me.txtLog.Name = "txtLog"
Me.txtLog.ReadOnly = True Me.txtLog.ReadOnly = True
Me.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical Me.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtLog.Size = New System.Drawing.Size(500, 186) Me.txtLog.Size = New System.Drawing.Size(525, 195)
Me.txtLog.TabIndex = 10 Me.txtLog.TabIndex = 10
Me.txtLog.TabStop = False Me.txtLog.TabStop = False
' '
'gMonStatusStrip 'gMonStatusStrip
' '
Me.gMonStatusStrip.BackColor = System.Drawing.Color.Transparent
Me.gMonStatusStrip.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.gMonStatusStrip.Font = New System.Drawing.Font("Segoe UI", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.gMonStatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonStripAdminButton, Me.gMonStripTxtStatus, Me.gMonStripStatusButton}) Me.gMonStatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonStripAdminButton, Me.gMonStripTxtStatus, Me.gMonStripStatusButton})
Me.gMonStatusStrip.Location = New System.Drawing.Point(0, 379) Me.gMonStatusStrip.Location = New System.Drawing.Point(0, 379)
@@ -308,7 +311,7 @@ Partial Class frmMain
Me.gMonMainMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonFile, Me.gMonSetup, Me.gMonTools, Me.gMonHelp, Me.gMonNotification}) Me.gMonMainMenu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonFile, Me.gMonSetup, Me.gMonTools, Me.gMonHelp, Me.gMonNotification})
Me.gMonMainMenu.Location = New System.Drawing.Point(0, 0) Me.gMonMainMenu.Location = New System.Drawing.Point(0, 0)
Me.gMonMainMenu.Name = "gMonMainMenu" Me.gMonMainMenu.Name = "gMonMainMenu"
Me.gMonMainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.System Me.gMonMainMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.gMonMainMenu.Size = New System.Drawing.Size(524, 24) Me.gMonMainMenu.Size = New System.Drawing.Size(524, 24)
Me.gMonMainMenu.TabIndex = 0 Me.gMonMainMenu.TabIndex = 0
Me.gMonMainMenu.Text = "MenuStrip1" Me.gMonMainMenu.Text = "MenuStrip1"
@@ -367,12 +370,6 @@ Partial Class frmMain
Me.gMonSetupAddWizard.Size = New System.Drawing.Size(201, 22) Me.gMonSetupAddWizard.Size = New System.Drawing.Size(201, 22)
Me.gMonSetupAddWizard.Text = "Add Game &Wizard..." Me.gMonSetupAddWizard.Text = "Add Game &Wizard..."
' '
'gMonSetupCustomVariables
'
Me.gMonSetupCustomVariables.Name = "gMonSetupCustomVariables"
Me.gMonSetupCustomVariables.Size = New System.Drawing.Size(201, 22)
Me.gMonSetupCustomVariables.Text = "Custom Path &Variables..."
'
'gMonSetupTags 'gMonSetupTags
' '
Me.gMonSetupTags.Name = "gMonSetupTags" Me.gMonSetupTags.Name = "gMonSetupTags"
@@ -385,6 +382,12 @@ Partial Class frmMain
Me.gMonSetupProcessManager.Size = New System.Drawing.Size(201, 22) Me.gMonSetupProcessManager.Size = New System.Drawing.Size(201, 22)
Me.gMonSetupProcessManager.Text = "&Process Manager..." Me.gMonSetupProcessManager.Text = "&Process Manager..."
' '
'gMonSetupCustomVariables
'
Me.gMonSetupCustomVariables.Name = "gMonSetupCustomVariables"
Me.gMonSetupCustomVariables.Size = New System.Drawing.Size(201, 22)
Me.gMonSetupCustomVariables.Text = "Custom Path &Variables..."
'
'gMonTools 'gMonTools
' '
Me.gMonTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsCompact, Me.gMonToolsLog, Me.gMonToolsSessions, Me.gMonToolsSyncGameID}) Me.gMonTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.gMonToolsCompact, Me.gMonToolsLog, Me.gMonToolsSessions, Me.gMonToolsSyncGameID})
@@ -600,7 +603,6 @@ Partial Class frmMain
Me.Controls.Add(Me.gMonStatusStrip) Me.Controls.Add(Me.gMonStatusStrip)
Me.Controls.Add(Me.gMonMainMenu) Me.Controls.Add(Me.gMonMainMenu)
Me.Controls.Add(Me.txtLog) Me.Controls.Add(Me.txtLog)
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True Me.KeyPreview = True
Me.MainMenuStrip = Me.gMonMainMenu Me.MainMenuStrip = Me.gMonMainMenu
Me.MinimizeBox = False Me.MinimizeBox = False
+2971 -5656
View File
File diff suppressed because it is too large Load Diff
+241 -87
View File
@@ -30,6 +30,7 @@ Public Class frmMain
Private bMenuEnabled As Boolean = True Private bMenuEnabled As Boolean = True
Private bLockdown As Boolean = True Private bLockdown As Boolean = True
Private bFirstRun As Boolean = False Private bFirstRun As Boolean = False
Private bInitialLoad As Boolean = True
Private bProcessIsAdmin As Boolean = False Private bProcessIsAdmin As Boolean = False
Private bLogToggle As Boolean = False Private bLogToggle As Boolean = False
Private bShowToggle As Boolean = True Private bShowToggle As Boolean = True
@@ -167,11 +168,46 @@ Public Class frmMain
OperationEnded() OperationEnded()
End Sub End Sub
Private Function VerifyBackupForOS(ByRef oGame As clsGame, ByRef sPath As String) As Boolean
Dim bOSVerified As Boolean
'Handle Windows configurations in Linux
If mgrCommon.IsUnix Then
If oGame.OS = clsGame.eOS.Windows Then
If mgrVariables.CheckForReservedVariables(oGame.TruePath) Then
'Absolute Path
Dim oWineData As clsWineData = mgrWineData.DoWineDataGetbyID(oGame.ID)
If oWineData.SavePath <> String.Empty Then
sPath = oWineData.SavePath
bOSVerified = True
UpdateLog(mgrCommon.FormatString(frmMain_WineSavePath, oWineData.SavePath), False)
Else
bOSVerified = False
UpdateLog(mgrCommon.FormatString(frmMain_ErrorNoWineSavePath, oGame.Name), True, ToolTipIcon.Error, True)
End If
Else
'Relative Path
bOSVerified = True
End If
mgrPath.ModWinePathData(oGame)
Else
'Linux Configuration
bOSVerified = True
End If
Else
'Windows
bOSVerified = True
End If
Return bOSVerified
End Function
Private Sub RunRestore(ByVal oRestoreList As Hashtable) Private Sub RunRestore(ByVal oRestoreList As Hashtable)
Dim oGame As clsGame Dim oGame As clsGame
Dim oReadyList As New List(Of clsBackup) Dim oReadyList As New List(Of clsBackup)
Dim oRestoreInfo As clsBackup Dim oRestoreInfo As clsBackup
Dim bTriggerReload As Boolean = False Dim bTriggerReload As Boolean = False
Dim bOSVerified As Boolean
Dim bPathVerified As Boolean Dim bPathVerified As Boolean
eCurrentOperation = eOperation.Restore eCurrentOperation = eOperation.Restore
OperationStarted() OperationStarted()
@@ -179,16 +215,23 @@ Public Class frmMain
'Build Restore List 'Build Restore List
For Each de As DictionaryEntry In oRestoreList For Each de As DictionaryEntry In oRestoreList
bPathVerified = False bPathVerified = False
bOSVerified = False
oGame = DirectCast(de.Key, clsGame) oGame = DirectCast(de.Key, clsGame)
oRestoreInfo = DirectCast(de.Value, clsBackup) oRestoreInfo = DirectCast(de.Value, clsBackup)
If mgrRestore.CheckPath(oRestoreInfo, oGame, bTriggerReload) Then bOSVerified = VerifyBackupForOS(oGame, oRestoreInfo.RestorePath)
If mgrPath.IsSupportedRegistryPath(oRestoreInfo.TruePath) Then
bPathVerified = True bPathVerified = True
Else Else
UpdateLog(mgrCommon.FormatString(frmMain_ErrorRestorePath, oRestoreInfo.Name), False, ToolTipIcon.Error, True) If mgrRestore.CheckPath(oRestoreInfo, oGame, bTriggerReload) Then
bPathVerified = True
Else
UpdateLog(mgrCommon.FormatString(frmMain_ErrorRestorePath, oRestoreInfo.Name), False, ToolTipIcon.Error, True)
End If
End If End If
If bPathVerified Then If bOSVerified And bPathVerified Then
If oRestore.CheckRestorePrereq(oRestoreInfo, oGame.CleanFolder) Then If oRestore.CheckRestorePrereq(oRestoreInfo, oGame.CleanFolder) Then
oReadyList.Add(oRestoreInfo) oReadyList.Add(oRestoreInfo)
End If End If
@@ -212,6 +255,7 @@ Public Class frmMain
Private Sub RunManualBackup(ByVal oBackupList As List(Of clsGame)) Private Sub RunManualBackup(ByVal oBackupList As List(Of clsGame))
Dim oGame As clsGame Dim oGame As clsGame
Dim bNoAuto As Boolean Dim bNoAuto As Boolean
Dim bOSVerified As Boolean
Dim bPathVerified As Boolean Dim bPathVerified As Boolean
Dim oReadyList As New List(Of clsGame) Dim oReadyList As New List(Of clsGame)
@@ -221,11 +265,14 @@ Public Class frmMain
'Build Backup List 'Build Backup List
For Each oGame In oBackupList For Each oGame In oBackupList
bNoAuto = False bNoAuto = False
bOSVerified = False
bPathVerified = False bPathVerified = False
gMonStripStatusButton.Enabled = False gMonStripStatusButton.Enabled = False
UpdateLog(mgrCommon.FormatString(frmMain_ManualBackup, oGame.Name), False) UpdateLog(mgrCommon.FormatString(frmMain_ManualBackup, oGame.Name), False)
bOSVerified = VerifyBackupForOS(oGame, oGame.Path)
If oGame.AbsolutePath = False Then If oGame.AbsolutePath = False Then
If oGame.ProcessPath = String.Empty Then If oGame.ProcessPath = String.Empty Then
If mgrCommon.IsProcessNotSearchable(oGame) Then bNoAuto = True If mgrCommon.IsProcessNotSearchable(oGame) Then bNoAuto = True
@@ -241,7 +288,7 @@ Public Class frmMain
bPathVerified = True bPathVerified = True
End If End If
If bPathVerified Then If bOSVerified And bPathVerified Then
If oBackup.CheckBackupPrereq(oGame) Then If oBackup.CheckBackupPrereq(oGame) Then
oReadyList.Add(oGame) oReadyList.Add(oGame)
End If End If
@@ -306,7 +353,7 @@ Public Class frmMain
If oSettings.DisableConfirmation Then If oSettings.DisableConfirmation Then
bDoBackup = True bDoBackup = True
Else Else
If mgrCommon.ShowMessage(frmMain_ConfirmBackup, oProcess.GameInfo.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowPriorityMessage(frmMain_ConfirmBackup, oProcess.GameInfo.Name, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
bDoBackup = True bDoBackup = True
Else Else
bDoBackup = False bDoBackup = False
@@ -420,7 +467,7 @@ Public Class frmMain
sExtractPath = oBackup.RelativeRestorePath sExtractPath = oBackup.RelativeRestorePath
End If End If
If Not Directory.Exists(sExtractPath) Then If Not Directory.Exists(sExtractPath) And Not mgrPath.IsSupportedRegistryPath(oBackup.RestorePath) Then
If oSettings.AutoMark Then If oSettings.AutoMark Then
If mgrManifest.DoManifestCheck(de.Key, mgrSQLite.Database.Local) Then If mgrManifest.DoManifestCheck(de.Key, mgrSQLite.Database.Local) Then
mgrManifest.DoManifestUpdateByMonitorID(de.Value, mgrSQLite.Database.Local) mgrManifest.DoManifestUpdateByMonitorID(de.Value, mgrSQLite.Database.Local)
@@ -735,7 +782,7 @@ Public Class frmMain
DirectCast(hshScanList.Item(oProcess.GameInfo.ID), clsGame).Hours = oProcess.GameInfo.Hours DirectCast(hshScanList.Item(oProcess.GameInfo.ID), clsGame).Hours = oProcess.GameInfo.Hours
End If End If
mgrMonitorList.DoListUpdate(oProcess.GameInfo) mgrMonitorList.DoListFieldUpdate("Hours", oProcess.GameInfo.Hours, oProcess.GameInfo.ID)
mgrMonitorList.SyncMonitorLists(oSettings) mgrMonitorList.SyncMonitorLists(oSettings)
UpdateTimeSpent(dCurrentHours, oProcess.TimeSpent.TotalHours) UpdateTimeSpent(dCurrentHours, oProcess.TimeSpent.TotalHours)
@@ -921,6 +968,7 @@ Public Class frmMain
mgrPath.RemoteDatabaseLocation = oSettings.BackupFolder mgrPath.RemoteDatabaseLocation = oSettings.BackupFolder
SetupSyncWatcher() SetupSyncWatcher()
LoadGameSettings() LoadGameSettings()
LoadCustomUISettings()
End If End If
ResumeScan() ResumeScan()
End Sub End Sub
@@ -960,24 +1008,33 @@ Public Class frmMain
Private Sub OpenStartupWizard() Private Sub OpenStartupWizard()
Dim frm As New frmStartUpWizard() Dim frm As New frmStartUpWizard()
frm.Settings = oSettings frm.Settings = New mgrSettings
PauseScan()
frm.ShowDialog() frm.ShowDialog()
LoadAndVerify()
bFirstRun = False bFirstRun = False
ResumeScan()
End Sub End Sub
Private Sub OpenWebSite() Private Sub OpenWebSite()
Process.Start(App_URLWebsite) Try
Process.Start(App_URLWebsite)
Catch ex As Exception
mgrCommon.ShowMessage(App_ErrorLaunchExternal, ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub End Sub
Private Sub OpenOnlineManual() Private Sub OpenOnlineManual()
Process.Start(App_URLManual) Try
Process.Start(App_URLManual)
Catch ex As Exception
mgrCommon.ShowMessage(App_ErrorLaunchExternal, ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub End Sub
Private Sub OpenCheckforUpdates() Private Sub OpenCheckforUpdates()
Process.Start(App_URLUpdates) Try
Process.Start(App_URLUpdates)
Catch ex As Exception
mgrCommon.ShowMessage(App_ErrorLaunchExternal, ex.Message, MsgBoxStyle.Exclamation)
End Try
End Sub End Sub
Private Sub CheckForNewBackups() Private Sub CheckForNewBackups()
@@ -1045,12 +1102,12 @@ Public Class frmMain
End If End If
If bOfficial Then If bOfficial Then
mgrMonitorList.SyncGameIDs(sLocation, oSettings, True) mgrMonitorList.SyncGameIDs(sLocation, True)
Else Else
sLocation = mgrCommon.OpenFileBrowser("XML_Import", frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False) sLocation = mgrCommon.OpenFileBrowser("XML_Import", frmGameManager_ChooseImportXML, "xml", frmGameManager_XML, Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), False)
If sLocation <> String.Empty Then If sLocation <> String.Empty Then
mgrMonitorList.SyncGameIDs(sLocation, oSettings, False) mgrMonitorList.SyncGameIDs(sLocation, False)
End If End If
End If End If
@@ -1126,8 +1183,15 @@ Public Class frmMain
'Verify the "Start with Windows" setting 'Verify the "Start with Windows" setting
If oSettings.StartWithWindows Then If oSettings.StartWithWindows Then
If Not VerifyStartWithWindows() Then If mgrCommon.IsUnix Then
UpdateLog(frmMain_ErrorAppLocationChanged, False, ToolTipIcon.Info) Dim sVerifyError As String = String.Empty
If Not VerifyAutoStartLinux(sVerifyError) Then
UpdateLog(sVerifyError, False, ToolTipIcon.Info)
End If
Else
If Not VerifyStartWithWindows() Then
UpdateLog(frmMain_ErrorAppLocationChanged, False, ToolTipIcon.Info)
End If
End If End If
End If End If
@@ -1429,6 +1493,7 @@ Public Class frmMain
'Set Form Name 'Set Form Name
Me.Name = App_NameLong Me.Name = App_NameLong
Me.Icon = GBM_Icon
'Set Menu Text 'Set Menu Text
gMonFile.Text = frmMain_gMonFile gMonFile.Text = frmMain_gMonFile
@@ -1498,6 +1563,9 @@ Public Class frmMain
pbTime.Image = Icon_Clock pbTime.Image = Icon_Clock
AddHandler mgrMonitorList.UpdateLog, AddressOf UpdateLog AddHandler mgrMonitorList.UpdateLog, AddressOf UpdateLog
ResetGameInfo() ResetGameInfo()
'Initialise and sets interface customizations
LoadCustomUISettings()
End Sub End Sub
Private Function BuildChildProcesses() As Integer Private Function BuildChildProcesses() As Integer
@@ -1561,6 +1629,44 @@ Public Class frmMain
End Try End Try
End Sub End Sub
Private Sub LoadCustomUISettings()
#Region "Auto-hide log"
If oSettings.AutoHideLog Then
Size = New Size(0, 0)
Else
Size = New Size(0, 440)
End If
#End Region
#Region "Set application theme"
Dim oThemeEngine As New mgrThemeEngine()
oThemeEngine.SetTheme(oSettings.ThemeSelection)
'Base Theme
BackColor = oThemeEngine.ColorBase
'Menu/Status Bars
gMonMainMenu.BackColor = oThemeEngine.ColorBase
gMonMainMenu.ForeColor = oThemeEngine.ColorHighlightSecondary
gMonStatusStrip.BackColor = oThemeEngine.ColorBase
gMonStripTxtStatus.ForeColor = oThemeEngine.ColorHighlight
gMonStripStatusButton.ForeColor = oThemeEngine.ColorHighlight
'Text Labels
lblGameTitle.ForeColor = oThemeEngine.ColorHighlight
lblStatus1.ForeColor = oThemeEngine.ColorHighlight
lblStatus2.ForeColor = oThemeEngine.ColorHighlight
lblStatus3.ForeColor = oThemeEngine.ColorHighlight
lblTimeSpent.ForeColor = oThemeEngine.ColorHighlight
lblLastActionTitle.ForeColor = oThemeEngine.ColorHighlight
lblLastAction.ForeColor = oThemeEngine.ColorHighlight
'Output Log
txtLog.BackColor = oThemeEngine.ColorBaseSecondary
txtLog.ForeColor = oThemeEngine.ColorHighlight
#End Region
End Sub
'Functions that control the scanning for games 'Functions that control the scanning for games
Private Sub StartScan() Private Sub StartScan()
tmScanTimer.Interval = 5000 tmScanTimer.Interval = 5000
@@ -1648,8 +1754,8 @@ Public Class frmMain
Private Sub VerifyGameDataPath() Private Sub VerifyGameDataPath()
'Important: This function cannot access mgrPath for settings, as that will trigger a database creation and destroy the reason for this function 'Important: This function cannot access mgrPath for settings, as that will trigger a database creation and destroy the reason for this function
Dim sSettingsRoot As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "/gbm" Dim sSettingsRoot As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & Path.DirectorySeparatorChar & "gbm"
Dim sDBLocation As String = sSettingsRoot & "/gbm.s3db" Dim sDBLocation As String = sSettingsRoot & Path.DirectorySeparatorChar & "gbm.s3db"
If Not Directory.Exists(sSettingsRoot) Then If Not Directory.Exists(sSettingsRoot) Then
Try Try
@@ -1681,6 +1787,53 @@ Public Class frmMain
End If End If
End Sub End Sub
Private Function VerifyAutoStartLinux(ByRef sErrorMessage As String) As Boolean
Dim oProcess As Process
Dim sDesktopFile As String = String.Empty
Dim sAutoStartFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) & Path.DirectorySeparatorChar & ".config/autostart/"
'Check if the app is still properly installed
If mgrPath.VerifyLinuxDesktopFileLocation(sDesktopFile) Then
If File.Exists(sAutoStartFolder & Path.DirectorySeparatorChar & "gbm.desktop") Then
Return True
Else
'Create the autostart folder if it doesn't exist yet
If Not Directory.Exists(sAutoStartFolder) Then
Directory.CreateDirectory(sAutoStartFolder)
End If
'Create link
Try
oProcess = New Process
oProcess.StartInfo.FileName = "/bin/ln"
oProcess.StartInfo.Arguments = "-s " & sDesktopFile & " " & sAutoStartFolder
oProcess.StartInfo.UseShellExecute = False
oProcess.StartInfo.RedirectStandardOutput = True
oProcess.StartInfo.CreateNoWindow = True
oProcess.Start()
Catch ex As Exception
mgrCommon.ShowMessage(frmSettings_ErrorLinuxAutoStart, ex.Message, MsgBoxStyle.Exclamation)
End Try
sErrorMessage = frmMain_ErrorLinuxAutoStartMissing
Return False
End If
Else
'If the app is no longer properly installed, disable autostart and the setting.
Try
oSettings.StartWithWindows = False
oSettings.SaveSettings()
If File.Exists(sAutoStartFolder & Path.DirectorySeparatorChar & "gbm.desktop") Then
File.Delete(sAutoStartFolder & Path.DirectorySeparatorChar & "gbm.desktop")
End If
Catch ex As Exception
mgrCommon.ShowMessage(frmSettings_ErrorLinuxAutoStart, ex.Message, MsgBoxStyle.Exclamation)
End Try
sErrorMessage = frmMain_ErrorLinuxAutoStartLinkMissing
Return False
End If
End Function
Private Function VerifyStartWithWindows() As Boolean Private Function VerifyStartWithWindows() As Boolean
Dim oKey As Microsoft.Win32.RegistryKey Dim oKey As Microsoft.Win32.RegistryKey
Dim sAppName As String = Application.ProductName Dim sAppName As String = Application.ProductName
@@ -1861,17 +2014,7 @@ Public Class frmMain
RestartAsAdmin() RestartAsAdmin()
End Sub End Sub
Private Sub frmMain_Activated(sender As System.Object, e As System.EventArgs) Handles MyBase.Activated
txtLog.Select(txtLog.TextLength, 0)
txtLog.ScrollToCaret()
End Sub
Private Sub Main_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing Private Sub Main_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
'Unix Handler
If mgrCommon.IsUnix And Not bShutdown Then
ShutdownApp()
End If
Select Case e.CloseReason Select Case e.CloseReason
Case CloseReason.UserClosing Case CloseReason.UserClosing
If bShutdown = False Then If bShutdown = False Then
@@ -1882,12 +2025,13 @@ Public Class frmMain
Me.WindowState = FormWindowState.Minimized Me.WindowState = FormWindowState.Minimized
Me.ShowInTaskbar = False Me.ShowInTaskbar = False
Me.Visible = False Me.Visible = False
Else
ShutdownApp()
End If End If
End If End If
Case CloseReason.TaskManagerClosing, CloseReason.WindowsShutDown Case Else
'Do nothing and let the app close without warning ShutdownApp(False)
End Select End Select
End Sub End Sub
Private Sub AutoRestoreEventProcessor(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmRestoreCheck.Elapsed Private Sub AutoRestoreEventProcessor(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmRestoreCheck.Elapsed
@@ -1898,12 +2042,11 @@ Public Class frmMain
Private Sub ScanTimerEventProcessor(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmScanTimer.Tick Private Sub ScanTimerEventProcessor(myObject As Object, ByVal myEventArgs As EventArgs) Handles tmScanTimer.Tick
Dim bNeedsPath As Boolean = False Dim bNeedsPath As Boolean = False
Dim bWineProcess As Boolean = False
Dim bContinue As Boolean = True Dim bContinue As Boolean = True
Dim iErrorCode As Integer = 0 Dim iErrorCode As Integer = 0
Dim sErrorMessage As String = String.Empty Dim sErrorMessage As String = String.Empty
If oProcess.SearchRunningProcesses(hshScanList, bNeedsPath, bWineProcess, iErrorCode, bProcessDebugMode) Then If oProcess.SearchRunningProcesses(hshScanList, bNeedsPath, iErrorCode, bProcessDebugMode) Then
PauseScan(True) PauseScan(True)
If bNeedsPath Then If bNeedsPath Then
@@ -1933,27 +2076,18 @@ Public Class frmMain
End If End If
End If End If
If bWineProcess Then 'We need to determine this Wine information and store it before the process ends.
'Attempt a path conversion if the game configuration is using an absolute windows path that we can convert If oProcess.WineProcess Then
If mgrVariables.CheckForReservedVariables(oProcess.GameInfo.TruePath) Then Dim oWineData As New clsWineData
Dim sWinePrefix As String = mgrPath.GetWinePrefix(oProcess.FoundProcess) oWineData.Prefix = mgrPath.GetWinePrefix(oProcess.FoundProcess)
Dim sWineSavePath As String oWineData.BinaryPath = Path.GetDirectoryName(oProcess.FoundProcess.MainModule.FileName)
If Not sWinePrefix = String.Empty Then UpdateLog(mgrCommon.FormatString(frmMain_WineBinaryPath, oWineData.BinaryPath), False)
UpdateLog(mgrCommon.FormatString(frmMain_WinePrefix, New String() {oProcess.GameInfo.Name, sWinePrefix}), False) If Not oWineData.Prefix = String.Empty Then
sWineSavePath = mgrPath.GetWineSavePath(sWinePrefix, oProcess.GameInfo.TruePath) oProcess.WineData = oWineData
If Not sWineSavePath = oProcess.GameInfo.TruePath Then UpdateLog(mgrCommon.FormatString(frmMain_WinePrefix, oWineData.Prefix), False)
oProcess.GameInfo.TruePath = sWineSavePath Else
oProcess.GameInfo.AbsolutePath = True bContinue = False
UpdateLog(mgrCommon.FormatString(frmMain_WineSavePath, New String() {oProcess.GameInfo.Name, sWineSavePath}), False)
Else
bContinue = False
End If
Else
bContinue = False
End If
End If End If
'This does required mods to include/exclude data and relative paths (if required)
mgrPath.ModWinePathData(oProcess.GameInfo)
End If End If
If bContinue = True Then If bContinue = True Then
@@ -2013,7 +2147,7 @@ Public Class frmMain
oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sPathDetectionError) oProcess.GameInfo.ProcessPath = mgrPath.ProcessPathSearch(oProcess.GameInfo.Name, oProcess.GameInfo.ProcessName, sPathDetectionError)
If oProcess.GameInfo.ProcessPath <> String.Empty Then If oProcess.GameInfo.ProcessPath <> String.Empty Then
'Update and reload 'Update and reload
mgrMonitorList.DoListUpdate(oProcess.GameInfo) mgrMonitorList.DoListFieldUpdate("ProcessPath", oProcess.GameInfo.ProcessPath, oProcess.GameInfo.ID)
LoadGameSettings() LoadGameSettings()
Else Else
bContinue = False bContinue = False
@@ -2029,6 +2163,20 @@ Public Class frmMain
If bContinue Then If bContinue Then
If DoMultiGameCheck() Then If DoMultiGameCheck() Then
UpdateLog(mgrCommon.FormatString(frmMain_GameEnded, oProcess.GameInfo.Name), False) UpdateLog(mgrCommon.FormatString(frmMain_GameEnded, oProcess.GameInfo.Name), False)
If oProcess.WineProcess Then
oProcess.WineData.MonitorID = oProcess.GameInfo.ID
'Attempt a path conversion if the game configuration is using an absolute windows path that we can convert
If mgrVariables.CheckForReservedVariables(oProcess.GameInfo.TruePath) Then
oProcess.WineData.SavePath = mgrPath.GetWineSavePath(oProcess.WineData.Prefix, oProcess.GameInfo.TruePath)
If Not oProcess.WineData.SavePath = oProcess.GameInfo.TruePath Then
oProcess.GameInfo.TruePath = oProcess.WineData.SavePath
UpdateLog(mgrCommon.FormatString(frmMain_WineSavePath, oProcess.WineData.SavePath), False)
End If
End If
mgrWineData.DoWineDataAddUpdate(oProcess.WineData)
'This does required mods to include/exclude data and relative paths (if required)
mgrPath.ModWinePathData(oProcess.GameInfo)
End If
If oSettings.TimeTracking Then HandleTimeSpent() If oSettings.TimeTracking Then HandleTimeSpent()
If oSettings.SessionTracking Then HandleSession() If oSettings.SessionTracking Then HandleSession()
RunBackup() RunBackup()
@@ -2048,19 +2196,42 @@ Public Class frmMain
oProcess.StartTime = Now : oProcess.EndTime = Now oProcess.StartTime = Now : oProcess.EndTime = Now
End Sub End Sub
Private Sub Main_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Private Sub frmMain_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
SetForm()
End Sub
Private Sub frmMain_Activated(sender As System.Object, e As System.EventArgs) Handles MyBase.Activated
'Init 'Init
Try If bInitialLoad Then
SetForm() Try
VerifyGameDataPath() VerifyGameDataPath()
LoadAndVerify() If bFirstRun Then OpenStartupWizard()
If Not bInitFail Then LoadAndVerify()
Catch ex As Exception
If mgrCommon.ShowMessage(frmMain_ErrorInitFailure, ex.Message & vbCrLf & ex.StackTrace, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
bInitFail = True
End If
End Try
If bInitFail Then
bShutdown = True
Me.Close()
Else
VerifyCustomPathVariables() VerifyCustomPathVariables()
If oSettings.StartToTray And Not mgrCommon.IsUnix Then 'Windows and Linux require different settings for the system tray
bShowToggle = False If mgrCommon.IsUnix Then
Me.Visible = False Me.gMonTray.Visible = False
Me.ShowInTaskbar = False Me.MinimizeBox = True
If oSettings.StartToTray Then
Me.WindowState = FormWindowState.Minimized
End If
Else
If oSettings.StartToTray Then
bShowToggle = False
Me.Visible = False
Me.ShowInTaskbar = False
End If
End If End If
If oSettings.MonitorOnStartup Then If oSettings.MonitorOnStartup Then
@@ -2071,29 +2242,12 @@ Public Class frmMain
HandleScan() HandleScan()
CheckForNewBackups() CheckForNewBackups()
'Unix Handler
If mgrCommon.IsUnix Then
Me.MinimizeBox = True
Else
Me.gMonTray.Visible = True
End If
End If End If
Catch ex As Exception
If mgrCommon.ShowMessage(frmMain_ErrorInitFailure, ex.Message, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
bInitFail = True
End If
End Try
End Sub
Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown bInitialLoad = False
If bInitFail Then Else
bShutdown = True txtLog.Select(txtLog.TextLength, 0)
Me.Close() txtLog.ScrollToCaret()
End If
If bFirstRun And Not bShutdown Then
OpenStartupWizard()
End If End If
End Sub End Sub
-1
View File
@@ -213,7 +213,6 @@ Partial Class frmProcessManager
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmProcessManager" Me.Name = "frmProcessManager"
Me.ShowIcon = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Process Manager" Me.Text = "Process Manager"
Me.grpProcess.ResumeLayout(False) Me.grpProcess.ResumeLayout(False)
+1
View File
@@ -307,6 +307,7 @@ Public Class frmProcessManager
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmProcessManager_FormName Me.Text = frmProcessManager_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnCancel.Text = frmProcessManager_btnCancel btnCancel.Text = frmProcessManager_btnCancel
+33 -32
View File
@@ -25,11 +25,11 @@ Partial Class frmSessionExport
Me.btnExport = New System.Windows.Forms.Button() Me.btnExport = New System.Windows.Forms.Button()
Me.btnCancel = New System.Windows.Forms.Button() Me.btnCancel = New System.Windows.Forms.Button()
Me.grpExportType = New System.Windows.Forms.GroupBox() Me.grpExportType = New System.Windows.Forms.GroupBox()
Me.grpDateType = New System.Windows.Forms.GroupBox()
Me.optCSV = New System.Windows.Forms.RadioButton()
Me.optXML = New System.Windows.Forms.RadioButton() Me.optXML = New System.Windows.Forms.RadioButton()
Me.optCurrentLocale = New System.Windows.Forms.RadioButton() Me.optCSV = New System.Windows.Forms.RadioButton()
Me.grpDateType = New System.Windows.Forms.GroupBox()
Me.optUnix = New System.Windows.Forms.RadioButton() Me.optUnix = New System.Windows.Forms.RadioButton()
Me.optCurrentLocale = New System.Windows.Forms.RadioButton()
Me.grpOptions = New System.Windows.Forms.GroupBox() Me.grpOptions = New System.Windows.Forms.GroupBox()
Me.chkCSVHeaders = New System.Windows.Forms.CheckBox() Me.chkCSVHeaders = New System.Windows.Forms.CheckBox()
Me.grpExportType.SuspendLayout() Me.grpExportType.SuspendLayout()
@@ -66,16 +66,16 @@ Partial Class frmSessionExport
Me.grpExportType.TabStop = False Me.grpExportType.TabStop = False
Me.grpExportType.Text = "Export Type" Me.grpExportType.Text = "Export Type"
' '
'grpDateType 'optXML
' '
Me.grpDateType.Controls.Add(Me.optUnix) Me.optXML.AutoSize = True
Me.grpDateType.Controls.Add(Me.optCurrentLocale) Me.optXML.Location = New System.Drawing.Point(6, 42)
Me.grpDateType.Location = New System.Drawing.Point(12, 88) Me.optXML.Name = "optXML"
Me.grpDateType.Name = "grpDateType" Me.optXML.Size = New System.Drawing.Size(47, 17)
Me.grpDateType.Size = New System.Drawing.Size(260, 70) Me.optXML.TabIndex = 1
Me.grpDateType.TabIndex = 1 Me.optXML.TabStop = True
Me.grpDateType.TabStop = False Me.optXML.Text = "XML"
Me.grpDateType.Text = "Date Type" Me.optXML.UseVisualStyleBackColor = True
' '
'optCSV 'optCSV
' '
@@ -88,27 +88,16 @@ Partial Class frmSessionExport
Me.optCSV.Text = "CSV" Me.optCSV.Text = "CSV"
Me.optCSV.UseVisualStyleBackColor = True Me.optCSV.UseVisualStyleBackColor = True
' '
'optXML 'grpDateType
' '
Me.optXML.AutoSize = True Me.grpDateType.Controls.Add(Me.optUnix)
Me.optXML.Location = New System.Drawing.Point(6, 42) Me.grpDateType.Controls.Add(Me.optCurrentLocale)
Me.optXML.Name = "optXML" Me.grpDateType.Location = New System.Drawing.Point(12, 88)
Me.optXML.Size = New System.Drawing.Size(47, 17) Me.grpDateType.Name = "grpDateType"
Me.optXML.TabIndex = 1 Me.grpDateType.Size = New System.Drawing.Size(260, 70)
Me.optXML.TabStop = True Me.grpDateType.TabIndex = 1
Me.optXML.Text = "XML" Me.grpDateType.TabStop = False
Me.optXML.UseVisualStyleBackColor = True Me.grpDateType.Text = "Date Type"
'
'optCurrentLocale
'
Me.optCurrentLocale.AutoEllipsis = True
Me.optCurrentLocale.Location = New System.Drawing.Point(6, 19)
Me.optCurrentLocale.Name = "optCurrentLocale"
Me.optCurrentLocale.Size = New System.Drawing.Size(248, 17)
Me.optCurrentLocale.TabIndex = 0
Me.optCurrentLocale.TabStop = True
Me.optCurrentLocale.Text = "Current Locale"
Me.optCurrentLocale.UseVisualStyleBackColor = True
' '
'optUnix 'optUnix
' '
@@ -121,6 +110,17 @@ Partial Class frmSessionExport
Me.optUnix.Text = "Unix Timestamp" Me.optUnix.Text = "Unix Timestamp"
Me.optUnix.UseVisualStyleBackColor = True Me.optUnix.UseVisualStyleBackColor = True
' '
'optCurrentLocale
'
Me.optCurrentLocale.AutoEllipsis = True
Me.optCurrentLocale.Location = New System.Drawing.Point(6, 19)
Me.optCurrentLocale.Name = "optCurrentLocale"
Me.optCurrentLocale.Size = New System.Drawing.Size(248, 17)
Me.optCurrentLocale.TabIndex = 0
Me.optCurrentLocale.TabStop = True
Me.optCurrentLocale.Text = "Current Locale"
Me.optCurrentLocale.UseVisualStyleBackColor = True
'
'grpOptions 'grpOptions
' '
Me.grpOptions.Controls.Add(Me.chkCSVHeaders) Me.grpOptions.Controls.Add(Me.chkCSVHeaders)
@@ -155,6 +155,7 @@ Partial Class frmSessionExport
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmSessionExport" Me.Name = "frmSessionExport"
Me.ShowIcon = False Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "Session Export Options" Me.Text = "Session Export Options"
+1
View File
@@ -46,6 +46,7 @@ Public Class frmSessionExport
Private Sub SetForm() Private Sub SetForm()
Me.Text = frmSessionExport_FormName Me.Text = frmSessionExport_FormName
Me.Icon = GBM_Icon
grpExportType.Text = frmSessionExport_grpExportType grpExportType.Text = frmSessionExport_grpExportType
grpDateType.Text = frmSessionExport_grpDateType grpDateType.Text = frmSessionExport_grpDateType
-1
View File
@@ -175,7 +175,6 @@ Partial Class frmSessions
Me.Controls.Add(Me.lblFilter) Me.Controls.Add(Me.lblFilter)
Me.Controls.Add(Me.txtFilter) Me.Controls.Add(Me.txtFilter)
Me.Name = "frmSessions" Me.Name = "frmSessions"
Me.ShowIcon = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Session Viewer" Me.Text = "Session Viewer"
+1
View File
@@ -75,6 +75,7 @@ Public Class frmSessions
Private Sub SetForm() Private Sub SetForm()
Me.Text = frmSessions_Name Me.Text = frmSessions_Name
Me.Icon = GBM_Icon
'Init Labels 'Init Labels
lblFilter.Text = frmSessions_lblFilter lblFilter.Text = frmSessions_lblFilter
+156 -29
View File
@@ -47,6 +47,7 @@ Partial Class frmSettings
Me.btnDefaults = New System.Windows.Forms.Button() Me.btnDefaults = New System.Windows.Forms.Button()
Me.pnlBackup = New System.Windows.Forms.Panel() Me.pnlBackup = New System.Windows.Forms.Panel()
Me.grpBackupConfirmations = New System.Windows.Forms.GroupBox() Me.grpBackupConfirmations = New System.Windows.Forms.GroupBox()
Me.chkDisableDiskSpaceCheck = New System.Windows.Forms.CheckBox()
Me.chkBackupConfirm = New System.Windows.Forms.CheckBox() Me.chkBackupConfirm = New System.Windows.Forms.CheckBox()
Me.chkOverwriteWarning = New System.Windows.Forms.CheckBox() Me.chkOverwriteWarning = New System.Windows.Forms.CheckBox()
Me.grpBackupHandling = New System.Windows.Forms.GroupBox() Me.grpBackupHandling = New System.Windows.Forms.GroupBox()
@@ -71,9 +72,18 @@ Partial Class frmSettings
Me.pnlStartup = New System.Windows.Forms.Panel() Me.pnlStartup = New System.Windows.Forms.Panel()
Me.grpStartup = New System.Windows.Forms.GroupBox() Me.grpStartup = New System.Windows.Forms.GroupBox()
Me.chkBackupOnLaunch = New System.Windows.Forms.CheckBox() Me.chkBackupOnLaunch = New System.Windows.Forms.CheckBox()
Me.chkStartWindows = New System.Windows.Forms.CheckBox() Me.chkAutoStart = New System.Windows.Forms.CheckBox()
Me.chkStartToTray = New System.Windows.Forms.CheckBox() Me.chkStartMinimized = New System.Windows.Forms.CheckBox()
Me.chkMonitorOnStartup = New System.Windows.Forms.CheckBox() Me.chkMonitorOnStartup = New System.Windows.Forms.CheckBox()
Me.pnlInterface = New System.Windows.Forms.Panel()
Me.grpInterfaceOptions = New System.Windows.Forms.GroupBox()
Me.btnPreviewTheme_HighlightSec = New System.Windows.Forms.Button()
Me.btnPreviewTheme_Highlight = New System.Windows.Forms.Button()
Me.btnPreviewTheme_BaseSec = New System.Windows.Forms.Button()
Me.btnPreviewTheme_Base = New System.Windows.Forms.Button()
Me.chkAutoHideLog = New System.Windows.Forms.CheckBox()
Me.cboThemeSelection = New System.Windows.Forms.ComboBox()
Me.lblThemeSelection = New System.Windows.Forms.Label()
Me.grpFolderOptions.SuspendLayout() Me.grpFolderOptions.SuspendLayout()
Me.grp7zGeneral.SuspendLayout() Me.grp7zGeneral.SuspendLayout()
Me.pnlBackup.SuspendLayout() Me.pnlBackup.SuspendLayout()
@@ -89,6 +99,8 @@ Partial Class frmSettings
Me.grpGameData.SuspendLayout() Me.grpGameData.SuspendLayout()
Me.pnlStartup.SuspendLayout() Me.pnlStartup.SuspendLayout()
Me.grpStartup.SuspendLayout() Me.grpStartup.SuspendLayout()
Me.pnlInterface.SuspendLayout()
Me.grpInterfaceOptions.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
'chkAutoSaveLog 'chkAutoSaveLog
@@ -318,15 +330,26 @@ Partial Class frmSettings
' '
'grpBackupConfirmations 'grpBackupConfirmations
' '
Me.grpBackupConfirmations.Controls.Add(Me.chkDisableDiskSpaceCheck)
Me.grpBackupConfirmations.Controls.Add(Me.chkBackupConfirm) Me.grpBackupConfirmations.Controls.Add(Me.chkBackupConfirm)
Me.grpBackupConfirmations.Controls.Add(Me.chkOverwriteWarning) Me.grpBackupConfirmations.Controls.Add(Me.chkOverwriteWarning)
Me.grpBackupConfirmations.Location = New System.Drawing.Point(6, 200) Me.grpBackupConfirmations.Location = New System.Drawing.Point(6, 200)
Me.grpBackupConfirmations.Name = "grpBackupConfirmations" Me.grpBackupConfirmations.Name = "grpBackupConfirmations"
Me.grpBackupConfirmations.Size = New System.Drawing.Size(354, 65) Me.grpBackupConfirmations.Size = New System.Drawing.Size(354, 90)
Me.grpBackupConfirmations.TabIndex = 2 Me.grpBackupConfirmations.TabIndex = 2
Me.grpBackupConfirmations.TabStop = False Me.grpBackupConfirmations.TabStop = False
Me.grpBackupConfirmations.Text = "Backup Confirmations" Me.grpBackupConfirmations.Text = "Backup Confirmations"
' '
'chkDisableDiskSpaceCheck
'
Me.chkDisableDiskSpaceCheck.AutoSize = True
Me.chkDisableDiskSpaceCheck.Location = New System.Drawing.Point(9, 41)
Me.chkDisableDiskSpaceCheck.Name = "chkDisableDiskSpaceCheck"
Me.chkDisableDiskSpaceCheck.Size = New System.Drawing.Size(222, 17)
Me.chkDisableDiskSpaceCheck.TabIndex = 1
Me.chkDisableDiskSpaceCheck.Text = "Disable disk space check prior to backup"
Me.chkDisableDiskSpaceCheck.UseVisualStyleBackColor = True
'
'chkBackupConfirm 'chkBackupConfirm
' '
Me.chkBackupConfirm.AutoSize = True Me.chkBackupConfirm.AutoSize = True
@@ -340,10 +363,10 @@ Partial Class frmSettings
'chkOverwriteWarning 'chkOverwriteWarning
' '
Me.chkOverwriteWarning.AutoSize = True Me.chkOverwriteWarning.AutoSize = True
Me.chkOverwriteWarning.Location = New System.Drawing.Point(9, 41) Me.chkOverwriteWarning.Location = New System.Drawing.Point(9, 64)
Me.chkOverwriteWarning.Name = "chkOverwriteWarning" Me.chkOverwriteWarning.Name = "chkOverwriteWarning"
Me.chkOverwriteWarning.Size = New System.Drawing.Size(139, 17) Me.chkOverwriteWarning.Size = New System.Drawing.Size(139, 17)
Me.chkOverwriteWarning.TabIndex = 1 Me.chkOverwriteWarning.TabIndex = 2
Me.chkOverwriteWarning.Text = "Show overwrite warning" Me.chkOverwriteWarning.Text = "Show overwrite warning"
Me.chkOverwriteWarning.UseVisualStyleBackColor = True Me.chkOverwriteWarning.UseVisualStyleBackColor = True
' '
@@ -560,8 +583,8 @@ Partial Class frmSettings
'grpStartup 'grpStartup
' '
Me.grpStartup.Controls.Add(Me.chkBackupOnLaunch) Me.grpStartup.Controls.Add(Me.chkBackupOnLaunch)
Me.grpStartup.Controls.Add(Me.chkStartWindows) Me.grpStartup.Controls.Add(Me.chkAutoStart)
Me.grpStartup.Controls.Add(Me.chkStartToTray) Me.grpStartup.Controls.Add(Me.chkStartMinimized)
Me.grpStartup.Controls.Add(Me.chkMonitorOnStartup) Me.grpStartup.Controls.Add(Me.chkMonitorOnStartup)
Me.grpStartup.Location = New System.Drawing.Point(6, 12) Me.grpStartup.Location = New System.Drawing.Point(6, 12)
Me.grpStartup.Name = "grpStartup" Me.grpStartup.Name = "grpStartup"
@@ -580,25 +603,25 @@ Partial Class frmSettings
Me.chkBackupOnLaunch.Text = "Backup GBM data files on launch" Me.chkBackupOnLaunch.Text = "Backup GBM data files on launch"
Me.chkBackupOnLaunch.UseVisualStyleBackColor = True Me.chkBackupOnLaunch.UseVisualStyleBackColor = True
' '
'chkStartWindows 'chkAutoStart
' '
Me.chkStartWindows.AutoSize = True Me.chkAutoStart.AutoSize = True
Me.chkStartWindows.Location = New System.Drawing.Point(6, 19) Me.chkAutoStart.Location = New System.Drawing.Point(6, 19)
Me.chkStartWindows.Name = "chkStartWindows" Me.chkAutoStart.Name = "chkAutoStart"
Me.chkStartWindows.Size = New System.Drawing.Size(117, 17) Me.chkAutoStart.Size = New System.Drawing.Size(155, 17)
Me.chkStartWindows.TabIndex = 0 Me.chkAutoStart.TabIndex = 0
Me.chkStartWindows.Text = "Start with Windows" Me.chkAutoStart.Text = "Start automatically on log-in"
Me.chkStartWindows.UseVisualStyleBackColor = True Me.chkAutoStart.UseVisualStyleBackColor = True
' '
'chkStartToTray 'chkStartMinimized
' '
Me.chkStartToTray.AutoSize = True Me.chkStartMinimized.AutoSize = True
Me.chkStartToTray.Location = New System.Drawing.Point(6, 42) Me.chkStartMinimized.Location = New System.Drawing.Point(6, 42)
Me.chkStartToTray.Name = "chkStartToTray" Me.chkStartMinimized.Name = "chkStartMinimized"
Me.chkStartToTray.Size = New System.Drawing.Size(115, 17) Me.chkStartMinimized.Size = New System.Drawing.Size(96, 17)
Me.chkStartToTray.TabIndex = 1 Me.chkStartMinimized.TabIndex = 1
Me.chkStartToTray.Text = "Start to system tray" Me.chkStartMinimized.Text = "Start minimized"
Me.chkStartToTray.UseVisualStyleBackColor = True Me.chkStartMinimized.UseVisualStyleBackColor = True
' '
'chkMonitorOnStartup 'chkMonitorOnStartup
' '
@@ -610,15 +633,108 @@ Partial Class frmSettings
Me.chkMonitorOnStartup.Text = "Start monitoring on launch" Me.chkMonitorOnStartup.Text = "Start monitoring on launch"
Me.chkMonitorOnStartup.UseVisualStyleBackColor = True Me.chkMonitorOnStartup.UseVisualStyleBackColor = True
' '
'pnlInterface
'
Me.pnlInterface.Controls.Add(Me.grpInterfaceOptions)
Me.pnlInterface.Location = New System.Drawing.Point(180, 0)
Me.pnlInterface.Name = "pnlInterface"
Me.pnlInterface.Size = New System.Drawing.Size(367, 314)
Me.pnlInterface.TabIndex = 9
'
'grpInterfaceOptions
'
Me.grpInterfaceOptions.Controls.Add(Me.btnPreviewTheme_HighlightSec)
Me.grpInterfaceOptions.Controls.Add(Me.btnPreviewTheme_Highlight)
Me.grpInterfaceOptions.Controls.Add(Me.btnPreviewTheme_BaseSec)
Me.grpInterfaceOptions.Controls.Add(Me.btnPreviewTheme_Base)
Me.grpInterfaceOptions.Controls.Add(Me.chkAutoHideLog)
Me.grpInterfaceOptions.Controls.Add(Me.cboThemeSelection)
Me.grpInterfaceOptions.Controls.Add(Me.lblThemeSelection)
Me.grpInterfaceOptions.Location = New System.Drawing.Point(6, 12)
Me.grpInterfaceOptions.Name = "grpInterfaceOptions"
Me.grpInterfaceOptions.Size = New System.Drawing.Size(354, 82)
Me.grpInterfaceOptions.TabIndex = 1
Me.grpInterfaceOptions.TabStop = False
Me.grpInterfaceOptions.Text = "Interface Options"
'
'btnPreviewTheme_HighlightSec
'
Me.btnPreviewTheme_HighlightSec.Enabled = False
Me.btnPreviewTheme_HighlightSec.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnPreviewTheme_HighlightSec.Location = New System.Drawing.Point(312, 23)
Me.btnPreviewTheme_HighlightSec.Name = "btnPreviewTheme_HighlightSec"
Me.btnPreviewTheme_HighlightSec.Size = New System.Drawing.Size(21, 21)
Me.btnPreviewTheme_HighlightSec.TabIndex = 7
Me.btnPreviewTheme_HighlightSec.UseVisualStyleBackColor = True
'
'btnPreviewTheme_Highlight
'
Me.btnPreviewTheme_Highlight.Enabled = False
Me.btnPreviewTheme_Highlight.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnPreviewTheme_Highlight.Location = New System.Drawing.Point(285, 23)
Me.btnPreviewTheme_Highlight.Name = "btnPreviewTheme_Highlight"
Me.btnPreviewTheme_Highlight.Size = New System.Drawing.Size(21, 21)
Me.btnPreviewTheme_Highlight.TabIndex = 6
Me.btnPreviewTheme_Highlight.UseVisualStyleBackColor = True
'
'btnPreviewTheme_BaseSec
'
Me.btnPreviewTheme_BaseSec.Enabled = False
Me.btnPreviewTheme_BaseSec.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnPreviewTheme_BaseSec.Location = New System.Drawing.Point(258, 23)
Me.btnPreviewTheme_BaseSec.Name = "btnPreviewTheme_BaseSec"
Me.btnPreviewTheme_BaseSec.Size = New System.Drawing.Size(21, 21)
Me.btnPreviewTheme_BaseSec.TabIndex = 5
Me.btnPreviewTheme_BaseSec.UseVisualStyleBackColor = True
'
'btnPreviewTheme_Base
'
Me.btnPreviewTheme_Base.Enabled = False
Me.btnPreviewTheme_Base.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnPreviewTheme_Base.Location = New System.Drawing.Point(230, 23)
Me.btnPreviewTheme_Base.Name = "btnPreviewTheme_Base"
Me.btnPreviewTheme_Base.Size = New System.Drawing.Size(21, 21)
Me.btnPreviewTheme_Base.TabIndex = 4
Me.btnPreviewTheme_Base.UseVisualStyleBackColor = True
'
'chkAutoHideLog
'
Me.chkAutoHideLog.AutoSize = True
Me.chkAutoHideLog.Location = New System.Drawing.Point(9, 56)
Me.chkAutoHideLog.Name = "chkAutoHideLog"
Me.chkAutoHideLog.Size = New System.Drawing.Size(167, 17)
Me.chkAutoHideLog.TabIndex = 3
Me.chkAutoHideLog.Text = "Automatically hide backup log"
Me.chkAutoHideLog.UseVisualStyleBackColor = True
'
'cboThemeSelection
'
Me.cboThemeSelection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboThemeSelection.FormattingEnabled = True
Me.cboThemeSelection.Location = New System.Drawing.Point(110, 23)
Me.cboThemeSelection.Name = "cboThemeSelection"
Me.cboThemeSelection.Size = New System.Drawing.Size(114, 21)
Me.cboThemeSelection.TabIndex = 1
'
'lblThemeSelection
'
Me.lblThemeSelection.AutoSize = True
Me.lblThemeSelection.Location = New System.Drawing.Point(9, 27)
Me.lblThemeSelection.Name = "lblThemeSelection"
Me.lblThemeSelection.Size = New System.Drawing.Size(90, 13)
Me.lblThemeSelection.TabIndex = 0
Me.lblThemeSelection.Text = "Theme Selection:"
'
'frmSettings 'frmSettings
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(554, 361) Me.ClientSize = New System.Drawing.Size(554, 361)
Me.Controls.Add(Me.pnlGeneral) Me.Controls.Add(Me.pnlInterface)
Me.Controls.Add(Me.pnlStartup) Me.Controls.Add(Me.pnlStartup)
Me.Controls.Add(Me.pnl7z)
Me.Controls.Add(Me.pnlBackup) Me.Controls.Add(Me.pnlBackup)
Me.Controls.Add(Me.pnlGeneral)
Me.Controls.Add(Me.pnl7z)
Me.Controls.Add(Me.btnResetMessages) Me.Controls.Add(Me.btnResetMessages)
Me.Controls.Add(Me.lstSettings) Me.Controls.Add(Me.lstSettings)
Me.Controls.Add(Me.btnDefaults) Me.Controls.Add(Me.btnDefaults)
@@ -628,8 +744,6 @@ Partial Class frmSettings
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmSettings" Me.Name = "frmSettings"
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Settings" Me.Text = "Settings"
Me.grpFolderOptions.ResumeLayout(False) Me.grpFolderOptions.ResumeLayout(False)
@@ -656,6 +770,9 @@ Partial Class frmSettings
Me.pnlStartup.ResumeLayout(False) Me.pnlStartup.ResumeLayout(False)
Me.grpStartup.ResumeLayout(False) Me.grpStartup.ResumeLayout(False)
Me.grpStartup.PerformLayout() Me.grpStartup.PerformLayout()
Me.pnlInterface.ResumeLayout(False)
Me.grpInterfaceOptions.ResumeLayout(False)
Me.grpInterfaceOptions.PerformLayout()
Me.ResumeLayout(False) Me.ResumeLayout(False)
End Sub End Sub
@@ -706,9 +823,19 @@ Partial Class frmSettings
Friend WithEvents pnlStartup As Panel Friend WithEvents pnlStartup As Panel
Friend WithEvents grpStartup As GroupBox Friend WithEvents grpStartup As GroupBox
Friend WithEvents chkBackupOnLaunch As CheckBox Friend WithEvents chkBackupOnLaunch As CheckBox
Friend WithEvents chkStartWindows As CheckBox Friend WithEvents chkAutoStart As CheckBox
Friend WithEvents chkStartToTray As CheckBox Friend WithEvents chkStartMinimized As CheckBox
Friend WithEvents chkMonitorOnStartup As CheckBox Friend WithEvents chkMonitorOnStartup As CheckBox
Friend WithEvents grpGameMonitoringOptions As GroupBox Friend WithEvents grpGameMonitoringOptions As GroupBox
Friend WithEvents chkShowResolvedPaths As CheckBox Friend WithEvents chkShowResolvedPaths As CheckBox
Friend WithEvents chkDisableDiskSpaceCheck As CheckBox
Friend WithEvents pnlInterface As Panel
Friend WithEvents grpInterfaceOptions As GroupBox
Friend WithEvents chkAutoHideLog As CheckBox
Friend WithEvents cboThemeSelection As ComboBox
Friend WithEvents lblThemeSelection As Label
Friend WithEvents btnPreviewTheme_Base As Button
Friend WithEvents btnPreviewTheme_HighlightSec As Button
Friend WithEvents btnPreviewTheme_Highlight As Button
Friend WithEvents btnPreviewTheme_BaseSec As Button
End Class End Class
+98 -20
View File
@@ -5,6 +5,7 @@ Public Class frmSettings
Dim bShutdown As Boolean = False Dim bShutdown As Boolean = False
Dim bSyncSettingsChanged As Boolean = False Dim bSyncSettingsChanged As Boolean = False
Dim eCurrentSyncFields As clsGame.eOptionalSyncFields Dim eCurrentSyncFields As clsGame.eOptionalSyncFields
Private oSettings As mgrSettings Private oSettings As mgrSettings
Property Settings As mgrSettings Property Settings As mgrSettings
@@ -16,6 +17,36 @@ Public Class frmSettings
End Set End Set
End Property End Property
Private Sub HandleLinuxAutoStart(ByVal bToggle As Boolean)
Dim oProcess As Process
Dim sDesktopFile = String.Empty
Dim sAutoStartFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) & Path.DirectorySeparatorChar & ".config/autostart/"
If bToggle And mgrPath.VerifyLinuxDesktopFileLocation(sDesktopFile) Then
'Create the autostart folder if it doesn't exist yet
If Not Directory.Exists(sAutoStartFolder) Then
Directory.CreateDirectory(sAutoStartFolder)
End If
'Create link
Try
oProcess = New Process
oProcess.StartInfo.FileName = "/bin/ln"
oProcess.StartInfo.Arguments = "-s " & sDesktopFile & " " & sAutoStartFolder
oProcess.StartInfo.UseShellExecute = False
oProcess.StartInfo.RedirectStandardOutput = True
oProcess.StartInfo.CreateNoWindow = True
oProcess.Start()
Catch ex As Exception
mgrCommon.ShowMessage(frmSettings_ErrorLinuxAutoStart, ex.Message, MsgBoxStyle.Exclamation)
End Try
Else
'Delete link
If File.Exists(sAutoStartFolder & Path.DirectorySeparatorChar & "gbm.desktop") Then
File.Delete(sAutoStartFolder & Path.DirectorySeparatorChar & "gbm.desktop")
End If
End If
End Sub
Private Sub HandleRegistryUpdate(ByVal bToggle As Boolean) Private Sub HandleRegistryUpdate(ByVal bToggle As Boolean)
Dim oKey As Microsoft.Win32.RegistryKey Dim oKey As Microsoft.Win32.RegistryKey
Dim sAppName As String = Application.ProductName Dim sAppName As String = Application.ProductName
@@ -35,23 +66,28 @@ Public Class frmSettings
Private Function ValidateSettings() As Boolean Private Function ValidateSettings() As Boolean
'Show Start with Windows warning if running as admin 'Show Start with Windows warning if running as admin
If chkStartWindows.Checked And mgrCommon.IsElevated Then If Not mgrCommon.IsUnix And chkAutoStart.Checked And mgrCommon.IsElevated Then
mgrCommon.ShowMessage(frmSettings_WarningAdminStart, MsgBoxStyle.Exclamation) mgrCommon.ShowMessage(frmSettings_WarningAdminStart, MsgBoxStyle.Exclamation)
End If End If
'Only modify registry key when the value changed 'Only modify when the value changed
If chkStartWindows.Checked <> oSettings.StartWithWindows Then If chkAutoStart.Checked <> oSettings.StartWithWindows Then
HandleRegistryUpdate(chkStartWindows.Checked) If mgrCommon.IsUnix Then
HandleLinuxAutoStart(chkAutoStart.Checked)
Else
HandleRegistryUpdate(chkAutoStart.Checked)
End If
End If End If
oSettings.StartWithWindows = chkStartWindows.Checked oSettings.StartWithWindows = chkAutoStart.Checked
oSettings.MonitorOnStartup = chkMonitorOnStartup.Checked oSettings.MonitorOnStartup = chkMonitorOnStartup.Checked
oSettings.StartToTray = chkStartToTray.Checked oSettings.StartToTray = chkStartMinimized.Checked
oSettings.BackupOnLaunch = chkBackupOnLaunch.Checked oSettings.BackupOnLaunch = chkBackupOnLaunch.Checked
oSettings.ShowDetectionToolTips = chkShowDetectionTips.Checked oSettings.ShowDetectionToolTips = chkShowDetectionTips.Checked
oSettings.DisableSyncMessages = chkDisableSyncMessages.Checked oSettings.DisableSyncMessages = chkDisableSyncMessages.Checked
oSettings.AutoSaveLog = chkAutoSaveLog.Checked oSettings.AutoSaveLog = chkAutoSaveLog.Checked
oSettings.DisableConfirmation = chkBackupConfirm.Checked oSettings.DisableConfirmation = chkBackupConfirm.Checked
oSettings.DisableDiskSpaceCheck = chkDisableDiskSpaceCheck.Checked
oSettings.CreateSubFolder = chkCreateFolder.Checked oSettings.CreateSubFolder = chkCreateFolder.Checked
oSettings.UseGameID = chkUseGameID.Checked oSettings.UseGameID = chkUseGameID.Checked
oSettings.ShowOverwriteWarning = chkOverwriteWarning.Checked oSettings.ShowOverwriteWarning = chkOverwriteWarning.Checked
@@ -64,6 +100,8 @@ Public Class frmSettings
oSettings.SuppressBackup = chkSuppressBackup.Checked oSettings.SuppressBackup = chkSuppressBackup.Checked
oSettings.SuppressBackupThreshold = nudSuppressBackupThreshold.Value oSettings.SuppressBackupThreshold = nudSuppressBackupThreshold.Value
oSettings.CompressionLevel = cboCompression.SelectedValue oSettings.CompressionLevel = cboCompression.SelectedValue
oSettings.ThemeSelection = cboThemeSelection.SelectedValue
oSettings.AutoHideLog = chkAutoHideLog.Checked
If oSettings.Custom7zArguments <> txt7zArguments.Text.Trim And txt7zArguments.Text.Trim <> String.Empty Then If oSettings.Custom7zArguments <> txt7zArguments.Text.Trim And txt7zArguments.Text.Trim <> String.Empty Then
mgrCommon.ShowMessage(frmSettings_WarningArguments, MsgBoxStyle.Exclamation) mgrCommon.ShowMessage(frmSettings_WarningArguments, MsgBoxStyle.Exclamation)
@@ -173,14 +211,15 @@ Public Class frmSettings
End Sub End Sub
Private Sub LoadSettings() Private Sub LoadSettings()
chkStartWindows.Checked = oSettings.StartWithWindows chkAutoStart.Checked = oSettings.StartWithWindows
chkMonitorOnStartup.Checked = oSettings.MonitorOnStartup chkMonitorOnStartup.Checked = oSettings.MonitorOnStartup
chkStartToTray.Checked = oSettings.StartToTray chkStartMinimized.Checked = oSettings.StartToTray
chkBackupOnLaunch.Checked = oSettings.BackupOnLaunch chkBackupOnLaunch.Checked = oSettings.BackupOnLaunch
chkShowDetectionTips.Checked = oSettings.ShowDetectionToolTips chkShowDetectionTips.Checked = oSettings.ShowDetectionToolTips
chkDisableSyncMessages.Checked = oSettings.DisableSyncMessages chkDisableSyncMessages.Checked = oSettings.DisableSyncMessages
chkAutoSaveLog.Checked = oSettings.AutoSaveLog chkAutoSaveLog.Checked = oSettings.AutoSaveLog
chkBackupConfirm.Checked = oSettings.DisableConfirmation chkBackupConfirm.Checked = oSettings.DisableConfirmation
chkDisableDiskSpaceCheck.Checked = oSettings.DisableDiskSpaceCheck
chkCreateFolder.Checked = oSettings.CreateSubFolder chkCreateFolder.Checked = oSettings.CreateSubFolder
chkUseGameID.Checked = oSettings.UseGameID chkUseGameID.Checked = oSettings.UseGameID
chkOverwriteWarning.Checked = oSettings.ShowOverwriteWarning chkOverwriteWarning.Checked = oSettings.ShowOverwriteWarning
@@ -198,12 +237,8 @@ Public Class frmSettings
txt7zArguments.Text = oSettings.Custom7zArguments txt7zArguments.Text = oSettings.Custom7zArguments
txt7zLocation.Text = oSettings.Custom7zLocation txt7zLocation.Text = oSettings.Custom7zLocation
eCurrentSyncFields = oSettings.SyncFields eCurrentSyncFields = oSettings.SyncFields
cboThemeSelection.SelectedIndex = oSettings.ThemeSelection
'Unix Handler chkAutoHideLog.Checked = oSettings.AutoHideLog
If mgrCommon.IsUnix Then
chkStartToTray.Checked = False
chkStartWindows.Checked = False
End If
'Retrieve 7z Info 'Retrieve 7z Info
GetUtilityInfo(oSettings.Custom7zLocation) GetUtilityInfo(oSettings.Custom7zLocation)
@@ -213,6 +248,7 @@ Public Class frmSettings
Private Sub LoadCombos() Private Sub LoadCombos()
Dim oComboItems As New List(Of KeyValuePair(Of Integer, String)) Dim oComboItems As New List(Of KeyValuePair(Of Integer, String))
Dim oSettingsItems As New List(Of KeyValuePair(Of Integer, String)) Dim oSettingsItems As New List(Of KeyValuePair(Of Integer, String))
Dim oThemeItems As New List(Of KeyValuePair(Of Integer, String))
'cboCompression 'cboCompression
cboCompression.ValueMember = "Key" cboCompression.ValueMember = "Key"
@@ -227,6 +263,15 @@ Public Class frmSettings
cboCompression.DataSource = oComboItems cboCompression.DataSource = oComboItems
'cboThemes
cboThemeSelection.ValueMember = "Key"
cboThemeSelection.DisplayMember = "Value"
oThemeItems.Add(New KeyValuePair(Of Integer, String)(0, frmSettings_cboThemeSelection_Light))
oThemeItems.Add(New KeyValuePair(Of Integer, String)(1, frmSettings_cboThemeSelection_Dark))
cboThemeSelection.DataSource = oThemeItems
'lstSettings 'lstSettings
lstSettings.ValueMember = "Key" lstSettings.ValueMember = "Key"
lstSettings.DisplayMember = "Value" lstSettings.DisplayMember = "Value"
@@ -235,6 +280,7 @@ Public Class frmSettings
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(1, frmSettings_lstSettings_BackupRestore)) oSettingsItems.Add(New KeyValuePair(Of Integer, String)(1, frmSettings_lstSettings_BackupRestore))
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(2, frmSettings_lstSettings_Startup)) oSettingsItems.Add(New KeyValuePair(Of Integer, String)(2, frmSettings_lstSettings_Startup))
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(3, frmSettings_lstSettings_7z)) oSettingsItems.Add(New KeyValuePair(Of Integer, String)(3, frmSettings_lstSettings_7z))
oSettingsItems.Add(New KeyValuePair(Of Integer, String)(4, frmSettings_lstSettings_Interface))
lstSettings.DataSource = oSettingsItems lstSettings.DataSource = oSettingsItems
@@ -261,22 +307,32 @@ Public Class frmSettings
pnlStartup.Visible = False pnlStartup.Visible = False
pnlBackup.Visible = False pnlBackup.Visible = False
pnl7z.Visible = False pnl7z.Visible = False
pnlInterface.Visible = False
Case 1 Case 1
pnlGeneral.Visible = False pnlGeneral.Visible = False
pnlBackup.Visible = True pnlBackup.Visible = True
pnlStartup.Visible = False pnlStartup.Visible = False
pnl7z.Visible = False pnl7z.Visible = False
pnlInterface.Visible = False
Case 2 Case 2
pnlGeneral.Visible = False pnlGeneral.Visible = False
pnlBackup.Visible = False pnlBackup.Visible = False
pnlStartup.Visible = True pnlStartup.Visible = True
pnl7z.Visible = False pnl7z.Visible = False
pnlInterface.Visible = False
Case 3 Case 3
pnlGeneral.Visible = False pnlGeneral.Visible = False
pnlBackup.Visible = False pnlBackup.Visible = False
pnlStartup.Visible = False pnlStartup.Visible = False
pnl7z.Visible = True pnl7z.Visible = True
pnlInterface.Visible = False
Case 4
pnlGeneral.Visible = False
pnlBackup.Visible = False
pnlStartup.Visible = False
pnl7z.Visible = False
pnlInterface.Visible = True
End Select End Select
End If End If
End Sub End Sub
@@ -284,6 +340,7 @@ Public Class frmSettings
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmSettings_FormName Me.Text = frmSettings_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
lblMinutes.Text = frmSettings_lblMinutes lblMinutes.Text = frmSettings_lblMinutes
@@ -305,10 +362,10 @@ Public Class frmSettings
grpGameData.Text = frmSettings_grpGameData grpGameData.Text = frmSettings_grpGameData
chkTimeTracking.Text = frmSettings_chkTimeTracking chkTimeTracking.Text = frmSettings_chkTimeTracking
chkSessionTracking.Text = frmSettings_chkSessionTracking chkSessionTracking.Text = frmSettings_chkSessionTracking
chkStartWindows.Text = frmSettings_chkStartWindows chkAutoStart.Text = frmSettings_chkAutoStart
chkShowDetectionTips.Text = frmSettings_chkShowDetectionTips chkShowDetectionTips.Text = frmSettings_chkShowDetectionTips
chkAutoSaveLog.Text = frmSettings_chkAutoSaveLog chkAutoSaveLog.Text = frmSettings_chkAutoSaveLog
chkStartToTray.Text = frmSettings_chkStartToTray chkStartMinimized.Text = frmSettings_chkStartMinimized
chkMonitorOnStartup.Text = frmSettings_chkMonitorOnStartup chkMonitorOnStartup.Text = frmSettings_chkMonitorOnStartup
grp7zGeneral.Text = frmSettings_grp7zGeneral grp7zGeneral.Text = frmSettings_grp7zGeneral
grp7zAdvanced.Text = frmSettings_grp7zAdvanced grp7zAdvanced.Text = frmSettings_grp7zAdvanced
@@ -325,11 +382,13 @@ Public Class frmSettings
chkDisableSyncMessages.Text = frmSettings_chkDisableSyncMessages chkDisableSyncMessages.Text = frmSettings_chkDisableSyncMessages
grpGameMonitoringOptions.Text = frmSettings_grpGameMonitoringOptions grpGameMonitoringOptions.Text = frmSettings_grpGameMonitoringOptions
chkShowResolvedPaths.Text = frmSettings_chkShowResolvedPaths chkShowResolvedPaths.Text = frmSettings_chkShowResolvedPaths
chkDisableDiskSpaceCheck.Text = frmSettings_chkDisableDiskSpaceCheck
'Unix Handler
If mgrCommon.IsUnix Then If mgrCommon.IsUnix Then
chkStartToTray.Enabled = False 'Only enable this option on Linux if GBM was installed with an official method
chkStartWindows.Enabled = False If Not mgrPath.VerifyLinuxDesktopFileLocation() Then
chkAutoStart.Enabled = False
End If
End If End If
'Handle Panels 'Handle Panels
@@ -358,7 +417,7 @@ Public Class frmSettings
Private Sub btnBackupFolder_Click(sender As System.Object, e As System.EventArgs) Handles btnBackupFolder.Click Private Sub btnBackupFolder_Click(sender As System.Object, e As System.EventArgs) Handles btnBackupFolder.Click
Dim sNewFolder As String Dim sNewFolder As String
sNewFolder = mgrCommon.OpenFolderBrowser("Settings_Backup_Path", frmSettings_BrowseFolder, oSettings.BackupFolder, True, False) sNewFolder = mgrCommon.OpenClassicFolderBrowser("Settings_Backup_Path", frmSettings_BrowseFolder, oSettings.BackupFolder, True, False)
If sNewFolder <> String.Empty Then txtBackupFolder.Text = sNewFolder If sNewFolder <> String.Empty Then txtBackupFolder.Text = sNewFolder
End Sub End Sub
@@ -394,4 +453,23 @@ Public Class frmSettings
Private Sub lstSettings_SelectedValueChanged(sender As Object, e As EventArgs) Handles lstSettings.SelectedValueChanged Private Sub lstSettings_SelectedValueChanged(sender As Object, e As EventArgs) Handles lstSettings.SelectedValueChanged
ChangePanel() ChangePanel()
End Sub End Sub
Private Sub cboThemeSelection_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboThemeSelection.SelectedValueChanged
'Previews theme based on current combo-box selection.
Dim oThemeEngine As New mgrThemeEngine()
If cboThemeSelection.SelectedIndex = 0 Then
oThemeEngine.SetTheme(cboThemeSelection.SelectedIndex)
ElseIf cboThemeSelection.SelectedIndex = 1 Then
oThemeEngine.SetTheme(cboThemeSelection.SelectedIndex)
End If
'Only set the theme once it has been defined.
If oThemeEngine.bThemeHasBeenDefined Then
btnPreviewTheme_Base.BackColor = oThemeEngine.ColorBase
btnPreviewTheme_BaseSec.BackColor = oThemeEngine.ColorBaseSecondary
btnPreviewTheme_Highlight.BackColor = oThemeEngine.ColorHighlight
btnPreviewTheme_HighlightSec.BackColor = oThemeEngine.ColorHighlightSecondary
End If
End Sub
End Class End Class
+13 -2
View File
@@ -49,6 +49,7 @@ Partial Class frmStartUpWizard
Me.lblStep4Instructions = New System.Windows.Forms.Label() Me.lblStep4Instructions = New System.Windows.Forms.Label()
Me.btnNext = New System.Windows.Forms.Button() Me.btnNext = New System.Windows.Forms.Button()
Me.btnBack = New System.Windows.Forms.Button() Me.btnBack = New System.Windows.Forms.Button()
Me.lblStep2Warning = New System.Windows.Forms.Label()
Me.tabWizard.SuspendLayout() Me.tabWizard.SuspendLayout()
Me.tbPage1.SuspendLayout() Me.tbPage1.SuspendLayout()
Me.tbPage2.SuspendLayout() Me.tbPage2.SuspendLayout()
@@ -125,6 +126,7 @@ Partial Class frmStartUpWizard
'tbPage2 'tbPage2
' '
Me.tbPage2.BackColor = System.Drawing.SystemColors.Control Me.tbPage2.BackColor = System.Drawing.SystemColors.Control
Me.tbPage2.Controls.Add(Me.lblStep2Warning)
Me.tbPage2.Controls.Add(Me.chkCreateFolder) Me.tbPage2.Controls.Add(Me.chkCreateFolder)
Me.tbPage2.Controls.Add(Me.lblStep2Title) Me.tbPage2.Controls.Add(Me.lblStep2Title)
Me.tbPage2.Controls.Add(Me.lblStep2Instructions) Me.tbPage2.Controls.Add(Me.lblStep2Instructions)
@@ -162,7 +164,7 @@ Partial Class frmStartUpWizard
' '
Me.lblStep2Instructions.Location = New System.Drawing.Point(14, 103) Me.lblStep2Instructions.Location = New System.Drawing.Point(14, 103)
Me.lblStep2Instructions.Name = "lblStep2Instructions" Me.lblStep2Instructions.Name = "lblStep2Instructions"
Me.lblStep2Instructions.Size = New System.Drawing.Size(335, 50) Me.lblStep2Instructions.Size = New System.Drawing.Size(335, 44)
Me.lblStep2Instructions.TabIndex = 6 Me.lblStep2Instructions.TabIndex = 6
Me.lblStep2Instructions.Text = "GBM will store all your backup files along with a manifest database (gbm.s3db) in" & Me.lblStep2Instructions.Text = "GBM will store all your backup files along with a manifest database (gbm.s3db) in" &
" this location. Any existing GBM data in this folder will be automatically impo" & " this location. Any existing GBM data in this folder will be automatically impo" &
@@ -318,6 +320,15 @@ Partial Class frmStartUpWizard
Me.btnBack.TabIndex = 1 Me.btnBack.TabIndex = 1
Me.btnBack.Text = "&Back" Me.btnBack.Text = "&Back"
Me.btnBack.UseVisualStyleBackColor = True Me.btnBack.UseVisualStyleBackColor = True
'
'lblStep2Warning
'
Me.lblStep2Warning.Location = New System.Drawing.Point(14, 147)
Me.lblStep2Warning.Name = "lblStep2Warning"
Me.lblStep2Warning.Size = New System.Drawing.Size(335, 33)
Me.lblStep2Warning.TabIndex = 7
Me.lblStep2Warning.Text = "You cannot return to this step after clicking Next. The Backup Location can be c" &
"hanged any time once Setup is complete."
' '
'frmStartUpWizard 'frmStartUpWizard
' '
@@ -331,7 +342,6 @@ Partial Class frmStartUpWizard
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmStartUpWizard" Me.Name = "frmStartUpWizard"
Me.ShowIcon = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "GBM Setup" Me.Text = "GBM Setup"
Me.tabWizard.ResumeLayout(False) Me.tabWizard.ResumeLayout(False)
@@ -372,4 +382,5 @@ Partial Class frmStartUpWizard
Friend WithEvents lblStep4Instructions2 As System.Windows.Forms.Label Friend WithEvents lblStep4Instructions2 As System.Windows.Forms.Label
Friend WithEvents lblStep1Instructions2 As System.Windows.Forms.Label Friend WithEvents lblStep1Instructions2 As System.Windows.Forms.Label
Friend WithEvents llbManual As System.Windows.Forms.LinkLabel Friend WithEvents llbManual As System.Windows.Forms.LinkLabel
Friend WithEvents lblStep2Warning As Label
End Class End Class
+16 -11
View File
@@ -30,6 +30,7 @@ Public Class frmStartUpWizard
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmStartUpWizard_FormName Me.Text = frmStartUpWizard_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnNext.Text = frmStartUpWizard_btnNext btnNext.Text = frmStartUpWizard_btnNext
@@ -41,6 +42,7 @@ Public Class frmStartUpWizard
chkCreateFolder.Text = frmStartUpWizard_chkCreateFolder chkCreateFolder.Text = frmStartUpWizard_chkCreateFolder
lblStep2Title.Text = frmStartUpWizard_lblStep2Title lblStep2Title.Text = frmStartUpWizard_lblStep2Title
lblStep2Instructions.Text = frmStartUpWizard_lblStep2Instructions lblStep2Instructions.Text = frmStartUpWizard_lblStep2Instructions
lblStep2Warning.Text = frmStartUpWizard_lblStep2Warning
btnFolderBrowse.Text = frmStartUpWizard_btnFolderBrowse btnFolderBrowse.Text = frmStartUpWizard_btnFolderBrowse
lblStep2Intro.Text = frmStartUpWizard_lblStep2Intro lblStep2Intro.Text = frmStartUpWizard_lblStep2Intro
btnOpenWizard.Text = frmStartUpWizard_btnOpenWizard btnOpenWizard.Text = frmStartUpWizard_btnOpenWizard
@@ -54,7 +56,8 @@ Public Class frmStartUpWizard
lblStep4Instructions.Text = frmStartUpWizard_lblStep4Instructions lblStep4Instructions.Text = frmStartUpWizard_lblStep4Instructions
llbManual.Links.Add(0, 26, App_URLManual) llbManual.Links.Add(0, 26, App_URLManual)
LoadGameSettings() txtBackupPath.Text = oSettings.BackupFolder
StepHandler() StepHandler()
End Sub End Sub
@@ -77,8 +80,6 @@ Public Class frmStartUpWizard
btnNext.Enabled = True btnNext.Enabled = True
tabWizard.SelectTab(0) tabWizard.SelectTab(0)
Case eSteps.Step2 Case eSteps.Step2
txtBackupPath.Text = oSettings.BackupFolder
chkCreateFolder.Checked = oSettings.CreateSubFolder
btnBack.Enabled = True btnBack.Enabled = True
btnNext.Enabled = True btnNext.Enabled = True
tabWizard.SelectTab(1) tabWizard.SelectTab(1)
@@ -105,7 +106,7 @@ Public Class frmStartUpWizard
End If End If
If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowMessage(frmStartUpWizard_ConfirmOfficialImport, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If mgrMonitorList.DoImport(sImportURL, True, Settings, True) Then If mgrMonitorList.DoImport(sImportURL, True) Then
oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList) oGameData = mgrMonitorList.ReadList(mgrMonitorList.eListTypes.FullList)
mgrMonitorList.SyncMonitorLists(oSettings) mgrMonitorList.SyncMonitorLists(oSettings)
End If End If
@@ -140,18 +141,22 @@ Public Class frmStartUpWizard
Return False Return False
End If End If
If Not Directory.Exists(strPath) Then
sErrorMessage = frmStartUpWizard_ErrorNoFolderExists
txtBackupPath.Focus()
Return False
End If
If Not Path.IsPathRooted(strPath) Then If Not Path.IsPathRooted(strPath) Then
sErrorMessage = frmStartUpWizard_ErrorBadFolder sErrorMessage = frmStartUpWizard_ErrorBadFolder
txtBackupPath.Focus() txtBackupPath.Focus()
Return False Return False
End If End If
If Not Directory.Exists(strPath) Then
Try
Directory.CreateDirectory(strPath)
Catch ex As Exception
sErrorMessage = frmStartUpWizard_ErrorNoFolderExists
txtBackupPath.Focus()
Return False
End Try
End If
Return True Return True
End Function End Function
@@ -211,7 +216,7 @@ Public Class frmStartUpWizard
End If End If
End If End If
sNewPath = mgrCommon.OpenFolderBrowser("Wizard_Backup_Path", frmStartUpWizard_BrowseFolder, sDefaultFolder, True, False) sNewPath = mgrCommon.OpenClassicFolderBrowser("Wizard_Backup_Path", frmStartUpWizard_BrowseFolder, sDefaultFolder, True, False)
If sNewPath <> String.Empty Then txtBackupPath.Text = sNewPath If sNewPath <> String.Empty Then txtBackupPath.Text = sNewPath
End Sub End Sub
+1
View File
@@ -34,6 +34,7 @@ Public Class frmSyncFields
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmSyncFields_FormName Me.Text = frmSyncFields_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnCancel.Text = frmSyncFields_btnCancel btnCancel.Text = frmSyncFields_btnCancel
-1
View File
@@ -150,7 +150,6 @@ Partial Class frmTags
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmTags" Me.Name = "frmTags"
Me.ShowIcon = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Tags" Me.Text = "Tags"
Me.grpTag.ResumeLayout(False) Me.grpTag.ResumeLayout(False)
+1
View File
@@ -267,6 +267,7 @@ Public Class frmTags
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmTags_FormName Me.Text = frmTags_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
grpTag.Text = frmTags_grpTag grpTag.Text = frmTags_grpTag
-1
View File
@@ -181,7 +181,6 @@ Partial Class frmVariableManager
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "frmVariableManager" Me.Name = "frmVariableManager"
Me.ShowIcon = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Custom Variable Manager" Me.Text = "Custom Variable Manager"
Me.grpVariable.ResumeLayout(False) Me.grpVariable.ResumeLayout(False)
+2 -1
View File
@@ -54,7 +54,7 @@ Public Class frmVariableManager
End If End If
End If End If
sNewPath = mgrCommon.OpenFolderBrowser("VM_Path", frmVariableManager_PathBrowse, sDefaultFolder, False, False) sNewPath = mgrCommon.OpenFolderBrowser("VM_Path", frmVariableManager_PathBrowse, sDefaultFolder, False)
If sNewPath <> String.Empty Then txtPath.Text = sNewPath If sNewPath <> String.Empty Then txtPath.Text = sNewPath
End Sub End Sub
@@ -301,6 +301,7 @@ Public Class frmVariableManager
Private Sub SetForm() Private Sub SetForm()
'Set Form Name 'Set Form Name
Me.Text = frmVariableManager_FormName Me.Text = frmVariableManager_FormName
Me.Icon = GBM_Icon
'Set Form Text 'Set Form Text
btnCancel.Text = frmVariableManager_btnCancel btnCancel.Text = frmVariableManager_btnCancel
+149
View File
@@ -0,0 +1,149 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmWineConfiguration
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.grpWineConfig = New System.Windows.Forms.GroupBox()
Me.txtWineSavePath = New System.Windows.Forms.TextBox()
Me.txtWinePrefix = New System.Windows.Forms.TextBox()
Me.txtWineBinaryPath = New System.Windows.Forms.TextBox()
Me.lblWinePrefix = New System.Windows.Forms.Label()
Me.lblWineSavePath = New System.Windows.Forms.Label()
Me.lblWineBinaryPath = New System.Windows.Forms.Label()
Me.btnSave = New System.Windows.Forms.Button()
Me.btnCancel = New System.Windows.Forms.Button()
Me.grpWineConfig.SuspendLayout()
Me.SuspendLayout()
'
'grpWineConfig
'
Me.grpWineConfig.Controls.Add(Me.txtWineSavePath)
Me.grpWineConfig.Controls.Add(Me.txtWinePrefix)
Me.grpWineConfig.Controls.Add(Me.txtWineBinaryPath)
Me.grpWineConfig.Controls.Add(Me.lblWinePrefix)
Me.grpWineConfig.Controls.Add(Me.lblWineSavePath)
Me.grpWineConfig.Controls.Add(Me.lblWineBinaryPath)
Me.grpWineConfig.Location = New System.Drawing.Point(12, 12)
Me.grpWineConfig.Name = "grpWineConfig"
Me.grpWineConfig.Size = New System.Drawing.Size(460, 107)
Me.grpWineConfig.TabIndex = 0
Me.grpWineConfig.TabStop = False
Me.grpWineConfig.Text = "Configuration"
'
'txtWineSavePath
'
Me.txtWineSavePath.Location = New System.Drawing.Point(76, 75)
Me.txtWineSavePath.Name = "txtWineSavePath"
Me.txtWineSavePath.Size = New System.Drawing.Size(367, 20)
Me.txtWineSavePath.TabIndex = 5
'
'txtWinePrefix
'
Me.txtWinePrefix.Location = New System.Drawing.Point(76, 49)
Me.txtWinePrefix.Name = "txtWinePrefix"
Me.txtWinePrefix.Size = New System.Drawing.Size(367, 20)
Me.txtWinePrefix.TabIndex = 3
'
'txtWineBinaryPath
'
Me.txtWineBinaryPath.Location = New System.Drawing.Point(76, 23)
Me.txtWineBinaryPath.Name = "txtWineBinaryPath"
Me.txtWineBinaryPath.Size = New System.Drawing.Size(367, 20)
Me.txtWineBinaryPath.TabIndex = 1
'
'lblWinePrefix
'
Me.lblWinePrefix.AutoSize = True
Me.lblWinePrefix.Location = New System.Drawing.Point(6, 52)
Me.lblWinePrefix.Name = "lblWinePrefix"
Me.lblWinePrefix.Size = New System.Drawing.Size(36, 13)
Me.lblWinePrefix.TabIndex = 2
Me.lblWinePrefix.Text = "Prefix:"
'
'lblWineSavePath
'
Me.lblWineSavePath.AutoSize = True
Me.lblWineSavePath.Location = New System.Drawing.Point(6, 78)
Me.lblWineSavePath.Name = "lblWineSavePath"
Me.lblWineSavePath.Size = New System.Drawing.Size(60, 13)
Me.lblWineSavePath.TabIndex = 4
Me.lblWineSavePath.Text = "Save Path:"
'
'lblWineBinaryPath
'
Me.lblWineBinaryPath.AutoSize = True
Me.lblWineBinaryPath.Location = New System.Drawing.Point(6, 26)
Me.lblWineBinaryPath.Name = "lblWineBinaryPath"
Me.lblWineBinaryPath.Size = New System.Drawing.Size(64, 13)
Me.lblWineBinaryPath.TabIndex = 0
Me.lblWineBinaryPath.Text = "Binary Path:"
'
'btnSave
'
Me.btnSave.Location = New System.Drawing.Point(316, 125)
Me.btnSave.Name = "btnSave"
Me.btnSave.Size = New System.Drawing.Size(75, 23)
Me.btnSave.TabIndex = 1
Me.btnSave.Text = "&Save"
Me.btnSave.UseVisualStyleBackColor = True
'
'btnCancel
'
Me.btnCancel.Location = New System.Drawing.Point(397, 125)
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
Me.btnCancel.TabIndex = 2
Me.btnCancel.Text = "&Cancel"
Me.btnCancel.UseVisualStyleBackColor = True
'
'frmWineConfiguration
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(484, 161)
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.btnSave)
Me.Controls.Add(Me.grpWineConfig)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmWineConfiguration"
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "Wine Configuration"
Me.grpWineConfig.ResumeLayout(False)
Me.grpWineConfig.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents grpWineConfig As GroupBox
Friend WithEvents txtWineSavePath As TextBox
Friend WithEvents txtWinePrefix As TextBox
Friend WithEvents txtWineBinaryPath As TextBox
Friend WithEvents lblWinePrefix As Label
Friend WithEvents lblWineSavePath As Label
Friend WithEvents lblWineBinaryPath As Label
Friend WithEvents btnSave As Button
Friend WithEvents btnCancel As Button
End Class
+120
View File
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+101
View File
@@ -0,0 +1,101 @@
Imports GBM.My.Resources
Public Class frmWineConfiguration
Private oSettings As mgrSettings
Private sMonitorID As String
Property Settings As mgrSettings
Get
Return oSettings
End Get
Set(value As mgrSettings)
oSettings = value
End Set
End Property
Property MonitorID As String
Get
Return sMonitorID
End Get
Set(value As String)
sMonitorID = value
End Set
End Property
Private Sub SetForm()
'Set Form Name
Me.Text = frmWineConfiguration_FormName
Me.Icon = GBM_Icon
'Set Form Text
grpWineConfig.Text = frmWineConfiguration_grpWineConfig
lblWineBinaryPath.Text = frmWineConfiguration_lblWineBinaryPath
lblWinePrefix.Text = frmWineConfiguration_lblWinePrefix
lblWineSavePath.Text = frmWineConfiguration_lblWineSavePath
btnSave.Text = frmWineConfiguration_btnSave
btnCancel.Text = frmWineConfiguration_btnCancel
End Sub
Private Sub LoadData()
Dim oWineData As New clsWineData
oWineData = mgrWineData.DoWineDataGetbyID(sMonitorID)
txtWineBinaryPath.Text = oWineData.BinaryPath
txtWinePrefix.Text = oWineData.Prefix
txtWineSavePath.Text = oWineData.SavePath
End Sub
Private Sub HandleWarning()
If Not (oSettings.SuppressMessages And mgrSettings.eSuppressMessages.WineConfig) = mgrSettings.eSuppressMessages.WineConfig Then
mgrCommon.ShowMessage(frmWineConfiguration_WarningSingle, MsgBoxStyle.Information)
oSettings.SuppressMessages = oSettings.SetMessageField(oSettings.SuppressMessages, mgrSettings.eSuppressMessages.WineConfig)
oSettings.SaveSettings()
End If
End Sub
Private Function ValidateData() As Boolean
If txtWineBinaryPath.Text = String.Empty Then
mgrCommon.ShowMessage(frmWineConfiguration_ErrorValidationBinaryPath, MsgBoxStyle.Exclamation)
Return False
End If
If txtWinePrefix.Text = String.Empty Then
mgrCommon.ShowMessage(frmWineConfiguration_ErrorValidationPrefix, MsgBoxStyle.Exclamation)
Return False
End If
Return True
End Function
Private Sub SaveData()
Dim oWineData As clsWineData
If txtWineBinaryPath.Text = String.Empty And txtWinePrefix.Text = String.Empty And txtWineSavePath.Text = String.Empty Then
mgrWineData.DoWineDataDelete(sMonitorID)
Me.DialogResult = DialogResult.OK
Else
If ValidateData() Then
oWineData = New clsWineData
oWineData.MonitorID = sMonitorID
oWineData.BinaryPath = txtWineBinaryPath.Text
oWineData.Prefix = txtWinePrefix.Text
oWineData.SavePath = txtWineSavePath.Text
mgrWineData.DoWineDataAddUpdate(oWineData)
Me.DialogResult = DialogResult.OK
End If
End If
End Sub
Private Sub frmAdvancedConfiguration_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SetForm()
LoadData()
HandleWarning()
End Sub
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
SaveData()
End Sub
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
Me.DialogResult = DialogResult.Cancel
End Sub
End Class
+12
View File
@@ -123,6 +123,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Classes\clsGameProcess.vb" /> <Compile Include="Classes\clsGameProcess.vb" />
<Compile Include="Managers\mgrThemeEngine.vb" />
<Compile Include="Classes\clsWineData.vb" />
<Compile Include="Classes\clsProcess.vb" /> <Compile Include="Classes\clsProcess.vb" />
<Compile Include="Classes\clsGameFilter.vb" /> <Compile Include="Classes\clsGameFilter.vb" />
<Compile Include="Classes\clsGameFilterField.vb" /> <Compile Include="Classes\clsGameFilterField.vb" />
@@ -137,6 +139,12 @@
<Compile Include="Classes\clsBackup.vb" /> <Compile Include="Classes\clsBackup.vb" />
<Compile Include="Classes\clsGame.vb" /> <Compile Include="Classes\clsGame.vb" />
<Compile Include="Classes\clsTag.vb" /> <Compile Include="Classes\clsTag.vb" />
<Compile Include="Forms\frmWineConfiguration.Designer.vb">
<DependentUpon>frmWineConfiguration.vb</DependentUpon>
</Compile>
<Compile Include="Forms\frmWineConfiguration.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\frmAdvancedImport.Designer.vb"> <Compile Include="Forms\frmAdvancedImport.Designer.vb">
<DependentUpon>frmAdvancedImport.vb</DependentUpon> <DependentUpon>frmAdvancedImport.vb</DependentUpon>
</Compile> </Compile>
@@ -247,6 +255,7 @@
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="Managers\mgrGameProcesses.vb" /> <Compile Include="Managers\mgrGameProcesses.vb" />
<Compile Include="Managers\mgrWineData.vb" />
<Compile Include="Managers\mgrProcess.vb" /> <Compile Include="Managers\mgrProcess.vb" />
<Compile Include="Managers\mgrCommon.vb" /> <Compile Include="Managers\mgrCommon.vb" />
<Compile Include="Managers\mgrGameTags.vb" /> <Compile Include="Managers\mgrGameTags.vb" />
@@ -281,6 +290,9 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="Forms\frmWineConfiguration.resx">
<DependentUpon>frmWineConfiguration.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\frmAdvancedImport.resx"> <EmbeddedResource Include="Forms\frmAdvancedImport.resx">
<DependentUpon>frmAdvancedImport.vb</DependentUpon> <DependentUpon>frmAdvancedImport.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
+1 -1
View File
@@ -3,7 +3,7 @@
License for use and distribution License for use and distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copyright (C) 1999-2018 Igor Pavlov. Copyright (C) 1999-2019 Igor Pavlov.
7-Zip Extra files are under the GNU LGPL license. 7-Zip Extra files are under the GNU LGPL license.
+2 -2
View File
@@ -1,5 +1,5 @@
GBM - Game Backup Monitor Game Backup Monitor
Copyright (C) 2016 Michael J. Seiferling Copyright (C) 2014 - 2019 Michael J. Seiferling and Game Backup Monitor contributors
This program is free software: you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
+222 -117
View File
@@ -120,41 +120,65 @@ Public Class mgrBackup
Dim lAvailableSpace As Long Dim lAvailableSpace As Long
Dim lFolderSize As Long = 0 Dim lFolderSize As Long = 0
Dim sDeepFolder As String Dim sDeepFolder As String
Dim bRegistry As Boolean
Dim sExtension As String
If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) 'Check if this is a registry backup
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & ".7z" bRegistry = mgrPath.IsSupportedRegistryPath(oGame.TruePath)
'Verify saved game path If bRegistry Then
sSavePath = VerifySavePath(oGame) 'If this is a registry backup, we need to have elevated permissions in Windows to use reg.exe
If Not mgrCommon.IsUnix And Not mgrCommon.IsElevated Then
'Calculate space RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorRegBackupElevation, oGame.Name), False, ToolTipIcon.Info, True)
lAvailableSpace = mgrCommon.GetAvailableDiskSpace(oSettings.BackupFolder)
'If any includes are using a deep path and we aren't using recursion, we need to go directly to folders to do file size calculations or they will be missed.
If Not oGame.RecurseSubFolders Then
For Each s As String In oGame.IncludeArray
If s.Contains(Path.DirectorySeparatorChar) Then
sDeepFolder = Path.GetDirectoryName(sSavePath & Path.DirectorySeparatorChar & s)
If Directory.Exists(sDeepFolder) Then
lFolderSize += mgrCommon.GetFolderSize(sDeepFolder, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
End If
End If
Next
End If
lFolderSize += mgrCommon.GetFolderSize(sSavePath, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
'Show Available Space
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_AvailableDiskSpace, mgrCommon.FormatDiskSpace(lAvailableSpace)), False, ToolTipIcon.Info, True)
'Show Save Folder Size
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_SavedGameFolderSize, New String() {oGame.Name, mgrCommon.FormatDiskSpace(lFolderSize)}), False, ToolTipIcon.Info, True)
If lFolderSize >= lAvailableSpace Then
If mgrCommon.ShowMessage(mgrBackup_ConfirmDiskSpace, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
RaiseEvent UpdateLog(mgrBackup_ErrorDiskSpace, False, ToolTipIcon.Error, True)
Return False Return False
End If End If
sExtension = ".reg"
Else
'Verify saved game path
sSavePath = VerifySavePath(oGame)
'Check if disk space check should be disabled (UNC path or Setting)
If Not mgrPath.IsPathUNC(oSettings.BackupFolder) And Not Settings.DisableDiskSpaceCheck Then
'Calculate space
lAvailableSpace = mgrCommon.GetAvailableDiskSpace(oSettings.BackupFolder)
'If any includes are using a deep path and we aren't using recursion, we need to go directly to folders to do file size calculations or they will be missed.
If Not oGame.RecurseSubFolders Then
For Each s As String In oGame.IncludeArray
If s.Contains(Path.DirectorySeparatorChar) Then
sDeepFolder = Path.GetDirectoryName(sSavePath & Path.DirectorySeparatorChar & s)
If Directory.Exists(sDeepFolder) Then
lFolderSize += mgrCommon.GetFolderSize(sDeepFolder, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
End If
End If
Next
End If
lFolderSize += mgrCommon.GetFolderSize(sSavePath, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
'Show Available Space
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_AvailableDiskSpace, mgrCommon.FormatDiskSpace(lAvailableSpace)), False, ToolTipIcon.Info, True)
'Show Save Folder Size
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_SavedGameFolderSize, New String() {oGame.Name, mgrCommon.FormatDiskSpace(lFolderSize)}), False, ToolTipIcon.Info, True)
If lFolderSize >= lAvailableSpace Then
If mgrCommon.ShowMessage(mgrBackup_ConfirmDiskSpace, MsgBoxStyle.YesNo) = MsgBoxResult.No Then
RaiseEvent UpdateLog(mgrBackup_ErrorDiskSpace, False, ToolTipIcon.Error, True)
Return False
End If
End If
Else
'Show that disk space check was skipped due to UNC path
If Not Settings.DisableDiskSpaceCheck Then RaiseEvent UpdateLog(mgrBackup_ErrorBackupPathIsUNC, False, ToolTipIcon.Info, True)
End If
sExtension = ".7z"
End If End If
If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame)
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & sExtension
'A manifest check is only required when "Save Multiple Backups" is disabled 'A manifest check is only required when "Save Multiple Backups" is disabled
If Not oGame.AppendTimeStamp Then If Not oGame.AppendTimeStamp Then
If mgrRestore.CheckManifest(oGame.ID) Then If mgrRestore.CheckManifest(oGame.ID) Then
@@ -178,7 +202,7 @@ Public Class mgrBackup
End If End If
End If End If
Return True Return True
End Function End Function
Private Sub CheckOldBackups(ByVal oGame As clsGame) Private Sub CheckOldBackups(ByVal oGame As clsGame)
@@ -285,23 +309,162 @@ Public Class mgrBackup
Next Next
End Sub End Sub
Private Function RunRegistryBackup(ByVal oGame As clsGame, ByVal sBackupFile As String) As Boolean
Dim prsReg As New Process
Dim sBinaryPath As String
Dim sArguments As String
Dim oWineData As clsWineData
Dim sWineReg As String
Dim bPathVerified As Boolean = False
Dim bBackupCompleted As Boolean = False
sArguments = "export """ & oGame.TruePath & """ """ & sBackupFile & """ /y"
If mgrCommon.IsUnix Then
oWineData = mgrWineData.DoWineDataGetbyID(oGame.ID)
prsReg.StartInfo.EnvironmentVariables.Add("WINEPREFIX", oWineData.Prefix)
sBinaryPath = oWineData.BinaryPath & Path.DirectorySeparatorChar & "wine"
sWineReg = oWineData.Prefix & Path.DirectorySeparatorChar & "drive_c/windows/system32/reg.exe"
sArguments = """" & sWineReg & """ " & sArguments
If File.Exists(sBinaryPath) Then
If File.Exists(sWineReg) Then
bPathVerified = True
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorRegNotFound, sWineReg), False, ToolTipIcon.Error, True)
End If
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorWineNotFound, sBinaryPath), False, ToolTipIcon.Error, True)
End If
Else
sBinaryPath = Environment.GetFolderPath(Environment.SpecialFolder.Windows) & Path.DirectorySeparatorChar & "system32\reg.exe"
If File.Exists(sBinaryPath) Then
bPathVerified = True
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorRegNotFound, sBinaryPath), False, ToolTipIcon.Error, True)
End If
End If
If bPathVerified Then
Try
prsReg.StartInfo.Arguments = sArguments
prsReg.StartInfo.FileName = sBinaryPath
prsReg.StartInfo.UseShellExecute = False
prsReg.StartInfo.RedirectStandardOutput = True
prsReg.StartInfo.CreateNoWindow = True
prsReg.Start()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupInProgress, oGame.TruePath), False, ToolTipIcon.Info, True)
While Not prsReg.StandardOutput.EndOfStream
If CancelOperation Then
prsReg.Kill()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorFullAbort, oGame.Name), True, ToolTipIcon.Error, True)
Exit While
End If
RaiseEvent UpdateLog(prsReg.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
End While
prsReg.WaitForExit()
Select Case prsReg.ExitCode
Case 0
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupComplete, New String() {oGame.Name, mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sBackupFile))}), False, ToolTipIcon.Info, True)
bBackupCompleted = True
Case Else
RaiseEvent UpdateLog(mgrBackup_ErrorRegBackupFailed, False, ToolTipIcon.Info, True)
End Select
prsReg.Dispose()
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorOtherFailure, New String() {oGame.Name, ex.Message}), False, ToolTipIcon.Error, True)
End Try
End If
Return bBackupCompleted
End Function
Private Function Run7zBackup(ByVal oGame As clsGame, ByVal sBackupFile As String) As Boolean
Dim prs7z As New Process
Dim sSavePath As String
Dim sArguments As String
Dim bBackupCompleted As Boolean = False
sSavePath = VerifySavePath(oGame)
If oGame.FolderSave = True Then
BuildFileList("*", mgrPath.IncludeFileLocation)
Else
BuildFileList(oGame.FileType, mgrPath.IncludeFileLocation)
End If
BuildFileList(oGame.ExcludeList, mgrPath.ExcludeFileLocation)
sArguments = "a" & oSettings.Prepared7zArguments & "-t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """"
If oGame.RecurseSubFolders Then sArguments &= " -r"
Try
If Directory.Exists(sSavePath) Then
If Settings.Is7zUtilityValid Then
'Need to delete any prior archive if it exists, the 7za utility does not support overwriting or deleting existing archives.
'If we let 7za update existing archives it will lead to excessive bloat with games that routinely add and remove files with many different file names.
If File.Exists(sBackupFile) Then
File.Delete(sBackupFile)
End If
prs7z.StartInfo.Arguments = sArguments
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
prs7z.StartInfo.WorkingDirectory = sSavePath
prs7z.StartInfo.UseShellExecute = False
prs7z.StartInfo.RedirectStandardOutput = True
prs7z.StartInfo.CreateNoWindow = True
prs7z.Start()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupInProgress, sSavePath), False, ToolTipIcon.Info, True)
While Not prs7z.StandardOutput.EndOfStream
If CancelOperation Then
prs7z.Kill()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorFullAbort, oGame.Name), True, ToolTipIcon.Error, True)
Exit While
End If
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
End While
prs7z.WaitForExit()
If Not CancelOperation Then
Select Case prs7z.ExitCode
Case 0
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupComplete, New String() {oGame.Name, mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sBackupFile))}), False, ToolTipIcon.Info, True)
bBackupCompleted = True
Case 1
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_7zWarnings, oGame.Name), True, ToolTipIcon.Warning, True)
bBackupCompleted = True
Case 2
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_7zFatalError, oGame.Name), True, ToolTipIcon.Error, True)
Case 7
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_7zCommandFailure, oGame.Name), True, ToolTipIcon.Error, True)
End Select
End If
prs7z.Dispose()
Else
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
End If
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorNoSavePath, oGame.Name), True, ToolTipIcon.Error, True)
End If
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorOtherFailure, New String() {oGame.Name, ex.Message}), False, ToolTipIcon.Error, True)
End Try
Return bBackupCompleted
End Function
Public Sub DoBackup(ByVal oBackupList As List(Of clsGame)) Public Sub DoBackup(ByVal oBackupList As List(Of clsGame))
Dim oGame As clsGame Dim oGame As clsGame
Dim bDoBackup As Boolean Dim bDoBackup As Boolean
Dim bBackupCompleted As Boolean
Dim prs7z As Process
Dim sBackupFile As String Dim sBackupFile As String
Dim sSavePath As String Dim sBackupExt As String
Dim dTimeStamp As DateTime Dim dTimeStamp As DateTime
Dim sTimeStamp As String Dim sTimeStamp As String
Dim sHash As String Dim sHash As String
Dim sArguments As String Dim bBackupCompleted As Boolean
For Each oGame In oBackupList For Each oGame In oBackupList
'Init 'Init
prs7z = New Process
sBackupFile = oSettings.BackupFolder sBackupFile = oSettings.BackupFolder
sSavePath = String.Empty
dTimeStamp = Date.Now dTimeStamp = Date.Now
sTimeStamp = BuildFileTimeStamp(dTimeStamp) sTimeStamp = BuildFileTimeStamp(dTimeStamp)
sHash = String.Empty sHash = String.Empty
@@ -315,100 +478,42 @@ Public Class mgrBackup
bDoBackup = HandleSubFolder(oGame, sBackupFile) bDoBackup = HandleSubFolder(oGame, sBackupFile)
End If End If
If mgrPath.IsSupportedRegistryPath(oGame.TruePath) Then
sBackupExt = ".reg"
Else
sBackupExt = ".7z"
End If
If oGame.AppendTimeStamp Then If oGame.AppendTimeStamp Then
If oGame.BackupLimit > 0 Then CheckOldBackups(oGame) If oGame.BackupLimit > 0 Then CheckOldBackups(oGame)
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & sTimeStamp & ".7z" sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & sTimeStamp & sBackupExt
Else Else
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & ".7z" sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & sBackupExt
End If End If
If bDoBackup Then If bDoBackup Then
'Choose Backup Type
sSavePath = VerifySavePath(oGame) If mgrPath.IsSupportedRegistryPath(oGame.TruePath) Then
bBackupCompleted = RunRegistryBackup(oGame, sBackupFile)
If oGame.FolderSave = True Then
BuildFileList("*", mgrPath.IncludeFileLocation)
Else Else
BuildFileList(oGame.FileType, mgrPath.IncludeFileLocation) bBackupCompleted = Run7zBackup(oGame, sBackupFile)
End If End If
BuildFileList(oGame.ExcludeList, mgrPath.ExcludeFileLocation) 'Write Main Manifest
If bBackupCompleted Then
'Generate checksum for new backup
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_GenerateHash, oGame.Name), False, ToolTipIcon.Info, True)
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
sArguments = "a" & oSettings.Prepared7zArguments & "-t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """" If Not DoManifestUpdate(oGame, sBackupFile, dTimeStamp, sHash) Then
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorManifestFailure, oGame.Name), True, ToolTipIcon.Error, True)
If oGame.RecurseSubFolders Then sArguments &= " -r"
Try
If Directory.Exists(sSavePath) Then
If Settings.Is7zUtilityValid Then
'Need to delete any prior archive if it exists, the 7za utility does not support overwriting or deleting existing archives.
'If we let 7za update existing archives it will lead to excessive bloat with games that routinely add and remove files with many different file names.
If File.Exists(sBackupFile) Then
File.Delete(sBackupFile)
End If
prs7z.StartInfo.Arguments = sArguments
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
prs7z.StartInfo.WorkingDirectory = sSavePath
prs7z.StartInfo.UseShellExecute = False
prs7z.StartInfo.RedirectStandardOutput = True
prs7z.StartInfo.CreateNoWindow = True
prs7z.Start()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupInProgress, sSavePath), False, ToolTipIcon.Info, True)
While Not prs7z.StandardOutput.EndOfStream
If CancelOperation Then
prs7z.Kill()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorFullAbort, oGame.Name), True, ToolTipIcon.Error, True)
Exit While
End If
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
End While
prs7z.WaitForExit()
If Not CancelOperation Then
Select Case prs7z.ExitCode
Case 0
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_BackupComplete, New String() {oGame.Name, mgrCommon.FormatDiskSpace(mgrCommon.GetFileSize(sBackupFile))}), False, ToolTipIcon.Info, True)
bBackupCompleted = True
Case 1
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_7zWarnings, oGame.Name), True, ToolTipIcon.Warning, True)
bBackupCompleted = True
Case 2
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_7zFatalError, oGame.Name), True, ToolTipIcon.Error, True)
bBackupCompleted = False
Case 7
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_7zCommandFailure, oGame.Name), True, ToolTipIcon.Error, True)
bBackupCompleted = False
End Select
End If
prs7z.Dispose()
Else
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
bBackupCompleted = False
End If
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorNoSavePath, oGame.Name), True, ToolTipIcon.Error, True)
bBackupCompleted = False
End If End If
'Write Main Manifest 'Write the process path if we have it
If bBackupCompleted Then If oGame.AbsolutePath = False Then
mgrMonitorList.DoListFieldUpdate("ProcessPath", oGame.ProcessPath, oGame.ID)
'Generate checksum for new backup
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_GenerateHash, oGame.Name), False, ToolTipIcon.Info, True)
sHash = mgrHash.Generate_SHA256_Hash(sBackupFile)
If Not DoManifestUpdate(oGame, sBackupFile, dTimeStamp, sHash) Then
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorManifestFailure, oGame.Name), True, ToolTipIcon.Error, True)
End If
'Write the process path if we have it
If oGame.AbsolutePath = False Then
mgrMonitorList.DoListUpdate(oGame)
End If
End If End If
Catch ex As Exception End If
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrBackup_ErrorOtherFailure, New String() {oGame.Name, ex.Message}), False, ToolTipIcon.Error, True)
End Try
End If End If
If bBackupCompleted Then If bBackupCompleted Then
+153 -28
View File
@@ -9,8 +9,8 @@ Imports System.Runtime.Serialization.Formatters.Binary
Public Class mgrCommon Public Class mgrCommon
'These need to be updated when upgrading the packaged 7z utility 'These need to be updated when upgrading the packaged 7z utility
Private Shared sUtility64Hash As String = "8BC2A3D6C37C4DB9BD487AD35039AE0DC8A1DDF2C3B1F0B76B3E678FEBB9F223" 'v18.05 7za.exe x64 Private Shared sUtility64Hash As String = "8117E40EE7F824F63373A4F5625BB62749F69159D0C449B3CE2F35AAD3B83549" 'v19.00 7za.exe x64
Private Shared sUtility32Hash As String = "77613CCA716EDF68B9D5BAB951463ED7FADE5BC0EC465B36190A76299C50F117" 'v18.05 7za.exe x86 Private Shared sUtility32Hash As String = "EA308C76A2F927B160A143D94072B0DCE232E04B751F0C6432A94E05164E716D" 'v19.00 7za.exe x86
Public Shared ReadOnly Property UtilityHash As String Public Shared ReadOnly Property UtilityHash As String
Get Get
@@ -43,28 +43,6 @@ Public Class mgrCommon
End Get End Get
End Property End Property
'Source - https://stackoverflow.com/questions/18873152/deep-copy-of-ordereddictionary
Public Shared Function GenericClone(ByVal oOriginal As Object) As Object
'Construct a temporary memory stream
Dim oStream As MemoryStream = New MemoryStream()
'Construct a serialization formatter that does all the hard work
Dim oFormatter As BinaryFormatter = New BinaryFormatter()
'This line Is explained in the "Streaming Contexts" section
oFormatter.Context = New StreamingContext(StreamingContextStates.Clone)
'Serialize the object graph into the memory stream
oFormatter.Serialize(oStream, oOriginal)
'Seek back to the start of the memory stream before deserializing
oStream.Position = 0
'Deserialize the graph into a New set of objects
'Return the root of the graph (deep copy) to the caller
Return oFormatter.Deserialize(oStream)
End Function
Public Shared Function SafeIconFromFile(ByVal sPath As String) As Image Public Shared Function SafeIconFromFile(ByVal sPath As String) As Image
Dim oImage As Image Dim oImage As Image
Dim oReturnImage As Image Dim oReturnImage As Image
@@ -139,9 +117,9 @@ Public Class mgrCommon
End If End If
Return fbBrowser.FileName Return fbBrowser.FileName
End If End If
Return String.Empty Return String.Empty
End Function End Function
Private Shared Function BuildFileBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sExtension As String, ByVal sFileType As String, ByVal sDefaultFolder As String, Private Shared Function BuildFileBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sExtension As String, ByVal sFileType As String, ByVal sDefaultFolder As String,
@@ -177,6 +155,39 @@ Public Class mgrCommon
Return False Return False
End Function End Function
Private Shared Function BuildFolderBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sDefaultFolder As String, ByRef fbBrowser As OpenFileDialog, Optional ByVal bSavedPath As Boolean = True) As Boolean
Dim oSavedPath As New clsSavedPath
fbBrowser.Title = sTitle
fbBrowser.InitialDirectory = sDefaultFolder
fbBrowser.ValidateNames = False
fbBrowser.CheckFileExists = False
fbBrowser.CheckPathExists = True
fbBrowser.FileName = mgrCommon_FolderSelection
If bSavedPath Then
oSavedPath = mgrSavedPath.GetPathByName(sName)
If oSavedPath.Path <> String.Empty Then
If Directory.Exists(oSavedPath.Path) Then
fbBrowser.InitialDirectory = oSavedPath.Path
End If
End If
End If
If fbBrowser.ShowDialog() = Windows.Forms.DialogResult.OK Then
If bSavedPath Then
oSavedPath.PathName = sName
oSavedPath.Path = Path.GetDirectoryName(fbBrowser.FileName)
mgrSavedPath.AddUpdatePath(oSavedPath)
End If
Return True
End If
Return False
End Function
Public Shared Function OpenFileBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sExtension As String, ByVal sFileType As String, ByVal sDefaultFolder As String, Public Shared Function OpenFileBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sExtension As String, ByVal sFileType As String, ByVal sDefaultFolder As String,
Optional ByVal bSavedPath As Boolean = True) As String Optional ByVal bSavedPath As Boolean = True) As String
Dim fbBrowser As New OpenFileDialog Dim fbBrowser As New OpenFileDialog
@@ -205,7 +216,20 @@ Public Class mgrCommon
Return New String() {} Return New String() {}
End Function End Function
Public Shared Function OpenFolderBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sDefaultFolder As String, ByVal bEnableNewFolder As Boolean, Public Shared Function OpenFolderBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sDefaultFolder As String, Optional ByVal bSavedPath As Boolean = True) As String
Dim fbBrowser As New OpenFileDialog
Dim bResult As Boolean
bResult = BuildFolderBrowser(sName, sTitle, sDefaultFolder, fbBrowser, bSavedPath)
If bResult Then
Return Path.GetDirectoryName(fbBrowser.FileName)
End If
Return String.Empty
End Function
Public Shared Function OpenClassicFolderBrowser(ByVal sName As String, ByVal sTitle As String, ByVal sDefaultFolder As String, ByVal bEnableNewFolder As Boolean,
Optional ByVal bSavedPath As Boolean = True) As String Optional ByVal bSavedPath As Boolean = True) As String
Dim fbBrowser As New FolderBrowserDialog Dim fbBrowser As New FolderBrowserDialog
Dim oSavedPath As New clsSavedPath Dim oSavedPath As New clsSavedPath
@@ -259,6 +283,14 @@ Public Class mgrCommon
Return False Return False
End Function End Function
Public Shared Function GetCurrentOS() As clsGame.eOS
If IsUnix() Then
Return clsGame.eOS.Linux
Else
Return clsGame.eOS.Windows
End If
End Function
Public Shared Function IsElevated() As Boolean Public Shared Function IsElevated() As Boolean
Dim oID As WindowsIdentity = WindowsIdentity.GetCurrent Dim oID As WindowsIdentity = WindowsIdentity.GetCurrent
Dim oPrincipal As New WindowsPrincipal(oID) Dim oPrincipal As New WindowsPrincipal(oID)
@@ -419,7 +451,7 @@ Public Class mgrCommon
Try Try
prsdf = New Process prsdf = New Process
prsdf.StartInfo.FileName = "/bin/df" prsdf.StartInfo.FileName = "/bin/df"
prsdf.StartInfo.Arguments = sPath prsdf.StartInfo.Arguments = """" & sPath & """"
prsdf.StartInfo.UseShellExecute = False prsdf.StartInfo.UseShellExecute = False
prsdf.StartInfo.RedirectStandardOutput = True prsdf.StartInfo.RedirectStandardOutput = True
prsdf.StartInfo.CreateNoWindow = True prsdf.StartInfo.CreateNoWindow = True
@@ -497,6 +529,29 @@ Public Class mgrCommon
End If End If
End Sub End Sub
'Opens a file or folder in default application determined by the OS
Public Shared Function OpenInOS(ByVal sFileName As String, ByVal sNotFoundError As String) As Boolean
Dim oProcessStartInfo As ProcessStartInfo
If File.Exists(sFileName) Or Directory.Exists(sFileName) Then
Try
oProcessStartInfo = New ProcessStartInfo
oProcessStartInfo.FileName = sFileName
oProcessStartInfo.UseShellExecute = True
oProcessStartInfo.Verb = "open"
Process.Start(oProcessStartInfo)
Catch ex As Exception
mgrCommon.ShowMessage(App_ErrorLaunchExternal, ex.Message, MsgBoxStyle.Exclamation)
Return False
End Try
Else
mgrCommon.ShowMessage(sNotFoundError, MsgBoxStyle.Exclamation)
Return False
End If
Return True
End Function
'Delete a sub-folder based on the provided backup information 'Delete a sub-folder based on the provided backup information
Public Shared Sub DeleteDirectoryByBackup(ByVal sBackupFolder As String, ByVal oBackup As clsBackup) Public Shared Sub DeleteDirectoryByBackup(ByVal sBackupFolder As String, ByVal oBackup As clsBackup)
Dim oDir As DirectoryInfo Dim oDir As DirectoryInfo
@@ -537,6 +592,25 @@ Public Class mgrCommon
End Try End Try
End Sub End Sub
'Open a nice button sub-menu
Public Shared Sub OpenButtonSubMenu(ByRef cms As ContextMenuStrip, ByRef btn As Button)
cms.Show(btn, New Drawing.Point(btn.Size.Width - Math.Floor(btn.Size.Width * 0.1), btn.Size.Height - Math.Floor(btn.Size.Height * 0.5)), ToolStripDropDownDirection.AboveRight)
End Sub
'Configure a fake form to trigger focus for priority messages
Private Shared Sub ConfigureFakeForm(ByRef frm As Form)
frm.FormBorderStyle = FormBorderStyle.None
frm.ShowInTaskbar = False
frm.Size = New Size(0, 0)
'We need to display it off-screen to hide it, setting the visiblity to false doesn't work in Mono.
frm.StartPosition = FormStartPosition.Manual
frm.Location = New Point(-100, -100)
frm.Show()
frm.Focus()
frm.BringToFront()
frm.TopMost = True
End Sub
'Handles no extra parameters 'Handles no extra parameters
Public Shared Function ShowMessage(ByVal sMsg As String, ByVal oType As MsgBoxStyle) As MsgBoxResult Public Shared Function ShowMessage(ByVal sMsg As String, ByVal oType As MsgBoxStyle) As MsgBoxResult
Dim oResult As MsgBoxResult Dim oResult As MsgBoxResult
@@ -544,6 +618,23 @@ Public Class mgrCommon
Return oResult Return oResult
End Function End Function
'Handles no extra parameters
Public Shared Function ShowPriorityMessage(ByVal sMsg As String, ByVal oType As MsgBoxStyle) As MsgBoxResult
Dim frmFake As Form
'Create a fake mostly invisible form to get top focus
frmFake = New Form
ConfigureFakeForm(frmFake)
Dim oResult As MsgBoxResult
oResult = ShowMessage(sMsg, oType)
frmFake.TopMost = False
frmFake.Dispose()
Return oResult
End Function
'Handles single parameter stings 'Handles single parameter stings
Public Shared Function ShowMessage(ByVal sMsg As String, ByVal sParam As String, ByVal oType As MsgBoxStyle) As MsgBoxResult Public Shared Function ShowMessage(ByVal sMsg As String, ByVal sParam As String, ByVal oType As MsgBoxStyle) As MsgBoxResult
Dim oResult As MsgBoxResult Dim oResult As MsgBoxResult
@@ -551,6 +642,23 @@ Public Class mgrCommon
Return oResult Return oResult
End Function End Function
'Handles single parameter stings
Public Shared Function ShowPriorityMessage(ByVal sMsg As String, ByVal sParam As String, ByVal oType As MsgBoxStyle) As MsgBoxResult
Dim frmFake As Form
'Create a fake mostly invisible form to get top focus
frmFake = New Form
ConfigureFakeForm(frmFake)
Dim oResult As MsgBoxResult
oResult = ShowMessage(sMsg, sParam, oType)
frmFake.TopMost = False
frmFake.Dispose()
Return oResult
End Function
'Handles multi-parameter strings 'Handles multi-parameter strings
Public Shared Function ShowMessage(ByVal sMsg As String, ByVal sParams As String(), ByVal oType As MsgBoxStyle) As MsgBoxResult Public Shared Function ShowMessage(ByVal sMsg As String, ByVal sParams As String(), ByVal oType As MsgBoxStyle) As MsgBoxResult
Dim oResult As MsgBoxResult Dim oResult As MsgBoxResult
@@ -558,6 +666,23 @@ Public Class mgrCommon
Return oResult Return oResult
End Function End Function
'Handles multi-parameter strings
Public Shared Function ShowPriorityMessage(ByVal sMsg As String, ByVal sParams As String(), ByVal oType As MsgBoxStyle) As MsgBoxResult
Dim frmFake As Form
'Create a fake mostly invisible form to get top focus
frmFake = New Form
ConfigureFakeForm(frmFake)
Dim oResult As MsgBoxResult
oResult = ShowMessage(sMsg, sParams, oType)
frmFake.TopMost = False
frmFake.Dispose()
Return oResult
End Function
'Handles no extra parameters 'Handles no extra parameters
Public Shared Function FormatString(ByVal sString As String) As String Public Shared Function FormatString(ByVal sString As String) As String
sString = sString.Replace("[BR]", vbCrLf) sString = sString.Replace("[BR]", vbCrLf)
+27
View File
@@ -281,4 +281,31 @@
End Function End Function
Public Shared Function PrintTagsbyID(ByVal sID As String) As String
Dim slTags As SortedList
Dim oTag As clsTag
Dim sTags As String = String.Empty
Dim cTrim() As Char = {",", " "}
slTags = mgrGameTags.GetTagsByGame(sID)
For Each de As DictionaryEntry In slTags
oTag = DirectCast(de.Value, clsTag)
sTags &= "#" & oTag.Name & ", "
Next
Return sTags.TrimEnd(cTrim)
End Function
Public Shared Function PrintTagsbyList(ByVal oList As List(Of KeyValuePair(Of String, String))) As String
Dim sTags As String = String.Empty
Dim cTrim() As Char = {",", " "}
For Each kp As KeyValuePair(Of String, String) In oList
sTags &= "#" & kp.Value & ", "
Next
Return sTags.TrimEnd(cTrim)
End Function
End Class End Class
+47 -24
View File
@@ -37,6 +37,7 @@ Public Class mgrMonitorList
If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments")) If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments"))
oGame.IsRegEx = CBool(dr("IsRegEx")) oGame.IsRegEx = CBool(dr("IsRegEx"))
oGame.RecurseSubFolders = CBool(dr("RecurseSubFolders")) oGame.RecurseSubFolders = CBool(dr("RecurseSubFolders"))
oGame.OS = CInt(dr("OS"))
'Compile RegEx 'Compile RegEx
If oGame.IsRegEx Then If oGame.IsRegEx Then
@@ -71,6 +72,7 @@ Public Class mgrMonitorList
hshParams.Add("Comments", oGame.Comments) hshParams.Add("Comments", oGame.Comments)
hshParams.Add("IsRegEx", oGame.IsRegEx) hshParams.Add("IsRegEx", oGame.IsRegEx)
hshParams.Add("RecurseSubFolders", oGame.RecurseSubFolders) hshParams.Add("RecurseSubFolders", oGame.RecurseSubFolders)
hshParams.Add("OS", oGame.OS)
Return hshParams Return hshParams
End Function End Function
@@ -106,7 +108,7 @@ Public Class mgrMonitorList
sSQL = "INSERT INTO monitorlist VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, @TimeStamp, " sSQL = "INSERT INTO monitorlist VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, @TimeStamp, "
sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit, @CleanFolder, " sSQL &= "@ExcludeList, @ProcessPath, @Icon, @Hours, @Version, @Company, @Enabled, @MonitorOnly, @BackupLimit, @CleanFolder, "
sSQL &= "@Parameter, @Comments, @IsRegEx, @RecurseSubFolders)" sSQL &= "@Parameter, @Comments, @IsRegEx, @RecurseSubFolders, @OS)"
'Parameters 'Parameters
hshParams = SetCoreParameters(oGame) hshParams = SetCoreParameters(oGame)
@@ -123,12 +125,13 @@ Public Class mgrMonitorList
sSQL = "UPDATE monitorlist SET MonitorID=@ID, Name=@Name, Process=@Process, Path=@Path, AbsolutePath=@AbsolutePath, FolderSave=@FolderSave, " sSQL = "UPDATE monitorlist SET MonitorID=@ID, Name=@Name, Process=@Process, Path=@Path, AbsolutePath=@AbsolutePath, FolderSave=@FolderSave, "
sSQL &= "FileType=@FileType, TimeStamp=@TimeStamp, ExcludeList=@ExcludeList, ProcessPath=@ProcessPath, Icon=@Icon, " sSQL &= "FileType=@FileType, TimeStamp=@TimeStamp, ExcludeList=@ExcludeList, ProcessPath=@ProcessPath, Icon=@Icon, "
sSQL &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit, " sSQL &= "Hours=@Hours, Version=@Version, Company=@Company, Enabled=@Enabled, MonitorOnly=@MonitorOnly, BackupLimit=@BackupLimit, "
sSQL &= "CleanFolder=@CleanFolder, Parameter=@Parameter, Comments=@Comments, IsRegEx=@IsRegEx, RecurseSubFolders=@RecurseSubFolders WHERE MonitorID=@QueryID;" sSQL &= "CleanFolder=@CleanFolder, Parameter=@Parameter, Comments=@Comments, IsRegEx=@IsRegEx, RecurseSubFolders=@RecurseSubFolders, OS=@OS WHERE MonitorID=@QueryID;"
sSQL &= "UPDATE gametags SET MonitorID=@ID WHERE MonitorID=@QueryID;" sSQL &= "UPDATE gametags SET MonitorID=@ID WHERE MonitorID=@QueryID;"
If iSelectDB = mgrSQLite.Database.Local Then If iSelectDB = mgrSQLite.Database.Local Then
sSQL &= "UPDATE gameprocesses SET MonitorID=@ID WHERE MonitorID=@QueryID;" sSQL &= "UPDATE gameprocesses SET MonitorID=@ID WHERE MonitorID=@QueryID;"
sSQL &= "UPDATE sessions SET MonitorID=@ID WHERE MonitorID=@QueryID;" sSQL &= "UPDATE sessions SET MonitorID=@ID WHERE MonitorID=@QueryID;"
sSQL &= "UPDATE winedata SET MonitorID=@ID WHERE MonitorID=@QueryID"
End If End If
'Parameters 'Parameters
@@ -142,6 +145,20 @@ Public Class mgrMonitorList
oDatabase.RunParamQuery(sSQL, hshParams) oDatabase.RunParamQuery(sSQL, hshParams)
End Sub End Sub
'Do NOT change MonitorID with this function
Public Shared Sub DoListFieldUpdate(ByVal sFieldName As String, ByVal oValue As Object, ByVal sQueryID As String, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local)
Dim oDatabase As New mgrSQLite(iSelectDB)
Dim sSQL As String
Dim hshParams As New Hashtable
sSQL = "UPDATE monitorlist SET " & sFieldName & "=@" & sFieldName & " WHERE MonitorID=@QueryID;"
'Parameters
hshParams.Add(sFieldName, oValue)
hshParams.Add("QueryID", sQueryID)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Public Shared Sub DoListUpdateMulti(ByVal sMonitorIDs As List(Of String), ByVal oGame As clsGame, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local) Public Shared Sub DoListUpdateMulti(ByVal sMonitorIDs As List(Of String), ByVal oGame As clsGame, Optional ByVal iSelectDB As mgrSQLite.Database = mgrSQLite.Database.Local)
Dim oDatabase As New mgrSQLite(iSelectDB) Dim oDatabase As New mgrSQLite(iSelectDB)
Dim sSQL As String Dim sSQL As String
@@ -181,6 +198,8 @@ Public Class mgrMonitorList
sSQL &= "WHERE MonitorID = @MonitorID;" sSQL &= "WHERE MonitorID = @MonitorID;"
sSQL &= "DELETE FROM sessions " sSQL &= "DELETE FROM sessions "
sSQL &= "WHERE MonitorID = @MonitorID;" sSQL &= "WHERE MonitorID = @MonitorID;"
sSQL &= "DELETE FROM winedata "
sSQL &= "WHERE MonitorID = @MonitorID;"
End If End If
sSQL &= "DELETE FROM monitorlist " sSQL &= "DELETE FROM monitorlist "
sSQL &= "WHERE MonitorID = @MonitorID;" sSQL &= "WHERE MonitorID = @MonitorID;"
@@ -245,6 +264,18 @@ Public Class mgrMonitorList
sSQL = sSQL.TrimEnd(",") sSQL = sSQL.TrimEnd(",")
sSQL &= ");" sSQL &= ");"
sSQL &= "DELETE FROM winedata "
sSQL &= "WHERE MonitorID IN ("
For Each s As String In sMonitorIDs
sSQL &= "@MonitorID" & iCounter & ","
hshParams.Add("MonitorID" & iCounter, s)
iCounter += 1
Next
sSQL = sSQL.TrimEnd(",")
sSQL &= ");"
End If End If
sSQL &= "DELETE FROM monitorlist " sSQL &= "DELETE FROM monitorlist "
@@ -374,11 +405,11 @@ Public Class mgrMonitorList
sVersion = "(SELECT Version FROM monitorlist WHERE MonitorID=@ID)" sVersion = "(SELECT Version FROM monitorlist WHERE MonitorID=@ID)"
End If End If
sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx, RecurseSubFolders) " sSQL = "INSERT OR REPLACE INTO monitorlist (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx, RecurseSubFolders, OS) "
sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, " sSQL &= "VALUES (@ID, @Name, @Process, @Path, @AbsolutePath, @FolderSave, @FileType, "
sSQL &= "@TimeStamp, @ExcludeList, " & sGamePath & ", " sSQL &= "@TimeStamp, @ExcludeList, " & sGamePath & ", "
sSQL &= sIcon & ", @Hours, " & sVersion & ", " sSQL &= sIcon & ", @Hours, " & sVersion & ", "
sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, @BackupLimit, @CleanFolder, @Parameter, @Comments, @IsRegEx, @RecurseSubFolders);" sSQL &= sCompany & ", " & sMonitorGame & ", @MonitorOnly, @BackupLimit, @CleanFolder, @Parameter, @Comments, @IsRegEx, @RecurseSubFolders, @OS);"
For Each oGame As clsGame In hshGames.Values For Each oGame As clsGame In hshGames.Values
hshParams = New Hashtable hshParams = New Hashtable
@@ -401,6 +432,7 @@ Public Class mgrMonitorList
hshParams.Add("Comments", oGame.Comments) hshParams.Add("Comments", oGame.Comments)
hshParams.Add("IsRegEx", oGame.IsRegEx) hshParams.Add("IsRegEx", oGame.IsRegEx)
hshParams.Add("RecurseSubFolders", oGame.RecurseSubFolders) hshParams.Add("RecurseSubFolders", oGame.RecurseSubFolders)
hshParams.Add("OS", oGame.OS)
'Optional Parameters 'Optional Parameters
If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then If (eSyncFields And clsGame.eOptionalSyncFields.Company) = clsGame.eOptionalSyncFields.Company Then
@@ -556,7 +588,7 @@ Public Class mgrMonitorList
ByRef hshParams As Hashtable) As String ByRef hshParams As Hashtable) As String
Dim sSQL As String = String.Empty Dim sSQL As String = String.Empty
Dim iCounter As Integer = 0 Dim iCounter As Integer = 0
Dim sBaseSelect As String = "MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx, RecurseSubFolders FROM monitorlist" Dim sBaseSelect As String = "MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx, RecurseSubFolders, OS FROM monitorlist"
Dim sSort As String = " ORDER BY " & sSortField Dim sSort As String = " ORDER BY " & sSortField
If bSortAsc Then If bSortAsc Then
@@ -675,7 +707,7 @@ Public Class mgrMonitorList
Case clsGameFilterField.eDataType.fNumeric Case clsGameFilterField.eDataType.fNumeric
sSQL &= oFilter.Field.FieldName & " " & oFilter.NumericOperatorAsString & " @" & oFilter.ID sSQL &= oFilter.Field.FieldName & " " & oFilter.NumericOperatorAsString & " @" & oFilter.ID
hshParams.Add(oFilter.ID, oFilter.Data) hshParams.Add(oFilter.ID, oFilter.Data)
Case clsGameFilterField.eDataType.fBool Case clsGameFilterField.eDataType.fBool, clsGameFilterField.eDataType.fEnum
sSQL &= oFilter.Field.FieldName & " = @" & oFilter.ID sSQL &= oFilter.Field.FieldName & " = @" & oFilter.ID
hshParams.Add(oFilter.ID, oFilter.Data) hshParams.Add(oFilter.ID, oFilter.Data)
End Select End Select
@@ -754,6 +786,7 @@ Public Class mgrMonitorList
If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments")) If Not IsDBNull(dr("Comments")) Then oGame.Comments = CStr(dr("Comments"))
oGame.IsRegEx = CBool(dr("IsRegEx")) oGame.IsRegEx = CBool(dr("IsRegEx"))
oGame.RecurseSubFolders = CBool(dr("RecurseSubFolders")) oGame.RecurseSubFolders = CBool(dr("RecurseSubFolders"))
oGame.OS = CInt(dr("OS"))
oGame.Tags = mgrGameTags.GetTagsByGameForExport(oGame.ID) oGame.Tags = mgrGameTags.GetTagsByGameForExport(oGame.ID)
oList.Add(oGame) oList.Add(oGame)
Next Next
@@ -761,19 +794,13 @@ Public Class mgrMonitorList
Return oList Return oList
End Function End Function
Public Shared Function SyncGameIDs(ByVal sPath As String, ByRef oSettings As mgrSettings, ByVal bOfficial As Boolean) As Boolean Public Shared Function SyncGameIDs(ByVal sPath As String, ByVal bOfficial As Boolean) As Boolean
Dim sWarning As String Dim sWarning As String
If bOfficial Then If bOfficial Then
If (oSettings.SuppressMessages And mgrSettings.eSuppressMessages.GameIDSync) = mgrSettings.eSuppressMessages.GameIDSync Then sWarning = mgrMonitorList_ConfirmOfficialGameIDSync
sWarning = mgrMonitorList_ConfirmOfficialGameIDSync
Else
sWarning = mgrMonitorList_ConfirmInitialOfficialGameIDSync
oSettings.SuppressMessages = oSettings.SetMessageField(oSettings.SuppressMessages, mgrSettings.eSuppressMessages.GameIDSync)
oSettings.SaveSettings()
End If
Else Else
sWarning = mgrMonitorList_ConfirmFileGameIDSync sWarning = mgrMonitorList_ConfirmFileGameIDSync
End If End If
If mgrCommon.ShowMessage(sWarning, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowMessage(sWarning, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
@@ -797,13 +824,10 @@ Public Class mgrMonitorList
Return True Return True
End Function End Function
Public Shared Function DoImport(ByVal sPath As String, ByVal bOfficial As Boolean, ByRef oSettings As mgrSettings, Optional ByVal bStartUpWizard As Boolean = False, Optional ByVal bWinConfigsInLinux As Boolean = False) As Boolean Public Shared Function DoImport(ByVal sPath As String, ByVal bOfficial As Boolean) As Boolean
If mgrCommon.IsAddress(sPath) Then If mgrCommon.IsAddress(sPath) Then
If mgrCommon.CheckAddress(sPath) Then If mgrCommon.CheckAddress(sPath) Then
If bOfficial And Not bStartUpWizard And Not ((oSettings.SuppressMessages And mgrSettings.eSuppressMessages.GameIDSync) = mgrSettings.eSuppressMessages.GameIDSync) Then ImportMonitorList(sPath, True)
SyncGameIDs(sPath, oSettings, True)
End If
ImportMonitorList(sPath, True, bWinConfigsInLinux)
Return True Return True
Else Else
mgrCommon.ShowMessage(mgrMonitorList_WebNoReponse, sPath, MsgBoxStyle.Exclamation) mgrCommon.ShowMessage(mgrMonitorList_WebNoReponse, sPath, MsgBoxStyle.Exclamation)
@@ -811,7 +835,7 @@ Public Class mgrMonitorList
End If End If
Else Else
If File.Exists(sPath) Then If File.Exists(sPath) Then
ImportMonitorList(sPath,, bWinConfigsInLinux) ImportMonitorList(sPath)
Return True Return True
Else Else
mgrCommon.ShowMessage(mgrMonitorList_FileNotFound, sPath, MsgBoxStyle.Exclamation) mgrCommon.ShowMessage(mgrMonitorList_FileNotFound, sPath, MsgBoxStyle.Exclamation)
@@ -821,7 +845,7 @@ Public Class mgrMonitorList
Return True Return True
End Function End Function
Private Shared Sub ImportMonitorList(ByVal sLocation As String, Optional ByVal bWebRead As Boolean = False, Optional ByVal bWinConfigsInLinux As Boolean = False) Private Shared Sub ImportMonitorList(ByVal sLocation As String, Optional ByVal bWebRead As Boolean = False)
Dim hshCompareFrom As New Hashtable Dim hshCompareFrom As New Hashtable
Dim hshCompareTo As Hashtable Dim hshCompareTo As Hashtable
Dim hshSyncItems As Hashtable Dim hshSyncItems As Hashtable
@@ -868,7 +892,6 @@ Public Class mgrMonitorList
Dim frm As New frmAdvancedImport Dim frm As New frmAdvancedImport
frm.ImportInfo = oExportInfo frm.ImportInfo = oExportInfo
frm.ImportData = hshSyncItems frm.ImportData = hshSyncItems
frm.ModWinConfigsForLinux = bWinConfigsInLinux
If frm.ShowDialog() = DialogResult.OK Then If frm.ShowDialog() = DialogResult.OK Then
Cursor.Current = Cursors.WaitCursor Cursor.Current = Cursors.WaitCursor
@@ -996,7 +1019,7 @@ Public Class mgrMonitorList
'If the remote database actually contains a list, then ask what to do 'If the remote database actually contains a list, then ask what to do
If iGameCount > 0 Then If iGameCount > 0 Then
If mgrCommon.ShowMessage(mgrMonitorList_ConfirmExistingData, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowPriorityMessage(mgrMonitorList_ConfirmExistingData, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
mgrMonitorList.SyncMonitorLists(oSettings) mgrMonitorList.SyncMonitorLists(oSettings)
Else Else
mgrMonitorList.SyncMonitorLists(oSettings, False) mgrMonitorList.SyncMonitorLists(oSettings, False)
+67 -21
View File
@@ -2,6 +2,7 @@
Imports System.IO Imports System.IO
Imports System.Text.RegularExpressions Imports System.Text.RegularExpressions
Imports System.Reflection Imports System.Reflection
Imports System.Threading.Thread
Public Class mgrPath Public Class mgrPath
'Important Note: Any changes to sSettingsRoot & sDBLocation need to be mirrored in frmMain.vb -> VerifyGameDataPath 'Important Note: Any changes to sSettingsRoot & sDBLocation need to be mirrored in frmMain.vb -> VerifyGameDataPath
@@ -100,8 +101,10 @@ Public Class mgrPath
End Set End Set
End Property End Property
Public Shared Function ValidatePathForOS(ByVal sCheckString As String) As String Public Shared Function ValidatePath(ByVal sCheckString As String) As String
Dim cInvalidCharacters As Char() = Path.GetInvalidPathChars Dim cInvalidCharacters As Char() = {Chr(0), Chr(1), Chr(2), Chr(3), Chr(4), Chr(5), Chr(6), Chr(7), Chr(8), Chr(9), Chr(10), Chr(11), Chr(12), Chr(13), Chr(14), Chr(15),
Chr(16), Chr(17), Chr(18), Chr(19), Chr(20), Chr(21), Chr(22), Chr(23), Chr(24), Chr(25), Chr(26), Chr(27), Chr(28), Chr(29), Chr(30),
Chr(31), Chr(34), Chr(60), Chr(62), Chr(124)}
For Each c As Char In cInvalidCharacters For Each c As Char In cInvalidCharacters
sCheckString = sCheckString.Replace(c, "") sCheckString = sCheckString.Replace(c, "")
@@ -110,15 +113,17 @@ Public Class mgrPath
Return sCheckString.Trim Return sCheckString.Trim
End Function End Function
Public Shared Function ValidateFileNameForOS(ByVal sCheckString As String) As String Public Shared Function ValidateFileName(ByVal sCheckString As String) As String
Dim cInvalidCharacters As Char() = Path.GetInvalidFileNameChars Dim cInvalidCharacters As Char() = {Chr(0), Chr(1), Chr(2), Chr(3), Chr(4), Chr(5), Chr(6), Chr(7), Chr(8), Chr(9), Chr(10), Chr(11), Chr(12), Chr(13), Chr(14), Chr(15),
Chr(16), Chr(17), Chr(18), Chr(19), Chr(20), Chr(21), Chr(22), Chr(23), Chr(24), Chr(25), Chr(26), Chr(27), Chr(28), Chr(29), Chr(30),
Chr(31), Chr(34), Chr(42), Chr(47), Chr(58), Chr(60), Chr(62), Chr(63), Chr(92), Chr(124)}
For Each c As Char In cInvalidCharacters For Each c As Char In cInvalidCharacters
sCheckString = sCheckString.Replace(c, "") sCheckString = sCheckString.Replace(c, "")
Next Next
If sCheckString.Length > 257 Then If sCheckString.Length > 255 Then
sCheckString = sCheckString.Substring(0, 257) sCheckString = sCheckString.Substring(0, 255)
End If End If
Return sCheckString.Trim Return sCheckString.Trim
@@ -484,6 +489,22 @@ Public Class mgrPath
Return sValue Return sValue
End Function End Function
Public Shared Function IsSupportedRegistryPath(ByVal sPath As String) As Boolean
If sPath.ToUpper.StartsWith("HKEY_CURRENT_USER\") Or sPath.ToUpper.StartsWith("HKCU\") Then
Return True
ElseIf sPath.ToUpper.StartsWith("HKEY_LOCAL_MACHINE\") Or sPath.ToUpper.StartsWith("HKLM\") Then
Return True
End If
Return False
End Function
Public Shared Function IsPathUNC(sPath As String) As Boolean
Dim sPrefix As String = Path.DirectorySeparatorChar & Path.DirectorySeparatorChar
If sPath.StartsWith(sPrefix) Then Return True
Return False
End Function
Public Shared Function IsAbsolute(sValue As String) As Boolean Public Shared Function IsAbsolute(sValue As String) As Boolean
Dim hshFolders As New Hashtable Dim hshFolders As New Hashtable
Dim hshCustomVariables As Hashtable = mgrVariables.ReadVariables Dim hshCustomVariables As Hashtable = mgrVariables.ReadVariables
@@ -497,6 +518,7 @@ Public Class mgrPath
'Don't use these in Unix 'Don't use these in Unix
If Not mgrCommon.IsUnix Then If Not mgrCommon.IsUnix Then
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments)) hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.CommonDocuments))
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData))
hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)) hshFolders.Add(Guid.NewGuid.ToString, Environment.GetFolderPath(Environment.SpecialFolder.UserProfile))
End If End If
@@ -569,8 +591,8 @@ Public Class mgrPath
If bNoAuto Then If bNoAuto Then
sMessage = mgrCommon.FormatString(mgrPath_ConfirmManualPath, sSearchReason) sMessage = mgrCommon.FormatString(mgrPath_ConfirmManualPath, sSearchReason)
If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowPriorityMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
sFolder = SetManualgamePath() sFolder = SetManualGamePath()
End If End If
Return sFolder Return sFolder
@@ -578,8 +600,9 @@ Public Class mgrPath
sMessage = mgrCommon.FormatString(mgrPath_ConfirmAutoPath, sSearchReason) sMessage = mgrCommon.FormatString(mgrPath_ConfirmAutoPath, sSearchReason)
If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowPriorityMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
frmFind.ShowDialog() frmFind.ShowDialog()
frmFind.BringToFront()
If frmFind.FoundItem <> String.Empty Then If frmFind.FoundItem <> String.Empty Then
Return frmFind.FoundItem Return frmFind.FoundItem
@@ -594,7 +617,7 @@ Public Class mgrPath
End If End If
If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If mgrCommon.ShowMessage(sMessage, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
sFolder = SetManualgamePath() sFolder = SetManualGamePath()
End If End If
frmFind.Dispose() frmFind.Dispose()
@@ -605,22 +628,45 @@ Public Class mgrPath
Public Shared Function VerifyBackupPath(ByRef sBackupPath As String) As Boolean Public Shared Function VerifyBackupPath(ByRef sBackupPath As String) As Boolean
Dim dBrowser As FolderBrowserDialog Dim dBrowser As FolderBrowserDialog
Dim oDialogResult As DialogResult
Dim iTotalWait As Integer
Dim iTimeOut As Integer = 60000
If Not Directory.Exists(sBackupPath) Then Do While Not (Directory.Exists(sBackupPath))
If mgrCommon.ShowMessage(mgrPath_ConfirmBackupLocation, sBackupPath, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then Sleep(5000)
dBrowser = New FolderBrowserDialog iTotalWait += 5000
dBrowser.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) If iTotalWait >= iTimeOut Then
If dBrowser.ShowDialog = DialogResult.OK Then oDialogResult = mgrCommon.ShowPriorityMessage(mgrPath_ConfirmBackupLocation, sBackupPath, MsgBoxStyle.YesNoCancel)
sBackupPath = dBrowser.SelectedPath If oDialogResult = MsgBoxResult.Yes Then
Return True dBrowser = New FolderBrowserDialog
Else dBrowser.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
If dBrowser.ShowDialog = DialogResult.OK Then
sBackupPath = dBrowser.SelectedPath
Return True
Else
Return False
End If
ElseIf oDialogResult = DialogResult.No Then
Return False Return False
Else
iTotalWait = 0
End If End If
Else
Return False
End If End If
End If Loop
Return True Return True
End Function End Function
Public Shared Function VerifyLinuxDesktopFileLocation(Optional ByRef sFoundPath As String = "") As Boolean
Dim sLocations As String() = New String() {"/usr/share/applications/gbm.desktop", "/usr/local/share/applications/gbm.desktop"}
For Each s As String In sLocations
If File.Exists(s) Then
sFoundPath = s
Return True
End If
Next
Return False
End Function
End Class End Class
+27 -6
View File
@@ -8,6 +8,8 @@ Public Class mgrProcessDetection
Private dStartTime As DateTime = Now, dEndTime As DateTime = Now Private dStartTime As DateTime = Now, dEndTime As DateTime = Now
Private lTimeSpent As Long = 0 Private lTimeSpent As Long = 0
Private oGame As clsGame Private oGame As clsGame
Private bWineProcess As Boolean = False
Private oWineData As clsWineData
Private oDuplicateGames As New ArrayList Private oDuplicateGames As New ArrayList
Private bDuplicates As Boolean Private bDuplicates As Boolean
Private bVerified As Boolean = False Private bVerified As Boolean = False
@@ -63,6 +65,24 @@ Public Class mgrProcessDetection
End Set End Set
End Property End Property
Property WineProcess As Boolean
Get
Return bWineProcess
End Get
Set(value As Boolean)
bWineProcess = value
End Set
End Property
Property WineData As clsWineData
Get
Return oWineData
End Get
Set(value As clsWineData)
oWineData = value
End Set
End Property
Property Duplicate As Boolean Property Duplicate As Boolean
Get Get
Return bDuplicates Return bDuplicates
@@ -157,7 +177,7 @@ Public Class mgrProcessDetection
Return False Return False
End Function End Function
Private Function GetProcessPath(ByVal bWineProcess As Boolean) As String Private Function GetProcessPath() As String
Try Try
If Not bWineProcess Then If Not bWineProcess Then
Return Path.GetDirectoryName(FoundProcess.MainModule.FileName) Return Path.GetDirectoryName(FoundProcess.MainModule.FileName)
@@ -169,7 +189,7 @@ Public Class mgrProcessDetection
End Try End Try
End Function End Function
Private Sub FilterDetected(ByVal oDetectedGames As ArrayList, ByVal bWineProcess As Boolean) Private Sub FilterDetected(ByVal oDetectedGames As ArrayList)
Dim bMatch As Boolean = False Dim bMatch As Boolean = False
Dim sFullCommand As String Dim sFullCommand As String
Dim oNotDetectedWithParameters As New ArrayList Dim oNotDetectedWithParameters As New ArrayList
@@ -185,7 +205,7 @@ Public Class mgrProcessDetection
End If End If
'Get Process Path 'Get Process Path
ProcessPath = GetProcessPath(bWineProcess) ProcessPath = GetProcessPath()
'Look for any games using parameters and any matches 'Look for any games using parameters and any matches
For Each oDetectedGame As clsGame In oDetectedGames For Each oDetectedGame As clsGame In oDetectedGames
@@ -248,7 +268,7 @@ Public Class mgrProcessDetection
End If End If
End Sub End Sub
Public Function SearchRunningProcesses(ByVal hshScanList As Hashtable, ByRef bNeedsPath As Boolean, ByRef bWineProcess As Boolean, ByRef iErrorCode As Integer, ByVal bDebugMode As Boolean) As Boolean Public Function SearchRunningProcesses(ByVal hshScanList As Hashtable, ByRef bNeedsPath As Boolean, ByRef iErrorCode As Integer, ByVal bDebugMode As Boolean) As Boolean
Dim prsList() As Process = Process.GetProcesses Dim prsList() As Process = Process.GetProcesses
Dim sProcessCheck As String = String.Empty Dim sProcessCheck As String = String.Empty
Dim sProcessList As String = String.Empty Dim sProcessList As String = String.Empty
@@ -257,7 +277,8 @@ Public Class mgrProcessDetection
For Each prsCurrent As Process In prsList For Each prsCurrent As Process In prsList
'This needs to be wrapped due to issues with Mono. 'This needs to be wrapped due to issues with Mono.
Try Try
sProcessCheck = prsCurrent.ProcessName 'Some processes may return the ProcessName as a full path instead of the executable name.
sProcessCheck = Path.GetFileName(prsCurrent.ProcessName)
'Unix Handler 'Unix Handler
'We need some special handling for Wine processes 'We need some special handling for Wine processes
@@ -292,7 +313,7 @@ Public Class mgrProcessDetection
Next Next
If oDetectedGames.Count > 0 Then If oDetectedGames.Count > 0 Then
FilterDetected(oDetectedGames, bWineProcess) FilterDetected(oDetectedGames)
End If End If
If oDetectedGames.Count > 0 Then If oDetectedGames.Count > 0 Then
+153 -73
View File
@@ -122,31 +122,43 @@ Public Class mgrRestore
Public Function CheckRestorePrereq(ByVal oBackupInfo As clsBackup, ByVal bCleanFolder As Boolean) As Boolean Public Function CheckRestorePrereq(ByVal oBackupInfo As clsBackup, ByVal bCleanFolder As Boolean) As Boolean
Dim sHash As String Dim sHash As String
Dim sExtractPath As String Dim sExtractPath As String
Dim bRegistry As Boolean
Dim sBackupFile As String = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName Dim sBackupFile As String = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName
If oBackupInfo.AbsolutePath Then 'Check if this is a registry backup
sExtractPath = oBackupInfo.RestorePath bRegistry = mgrPath.IsSupportedRegistryPath(oBackupInfo.TruePath)
Else
sExtractPath = oBackupInfo.RelativeRestorePath
End If
'Check if restore location exists, prompt to create if it doesn't. If bRegistry Then
If Not Directory.Exists(sExtractPath) Then 'If this is a registry backup, we need to have elevated permissions in Windows to use reg.exe
If mgrCommon.ShowMessage(mgrRestore_ConfirmCreatePath, sExtractPath, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then If Not mgrCommon.IsUnix And Not mgrCommon.IsElevated Then
Try RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorRegBackupElevation, oBackupInfo.Name), False, ToolTipIcon.Info, True)
Directory.CreateDirectory(sExtractPath)
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorCreatePath, ex.Message), False, ToolTipIcon.Error, True)
Return False
End Try
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorNoPath, sExtractPath), False, ToolTipIcon.Error, True)
Return False Return False
End If End If
Else Else
If bCleanFolder Then If oBackupInfo.AbsolutePath Then
mgrCommon.DeleteDirectory(sExtractPath, True) sExtractPath = oBackupInfo.RestorePath
Directory.CreateDirectory(sExtractPath) Else
sExtractPath = oBackupInfo.RelativeRestorePath
End If
'Check if restore location exists, prompt to create if it doesn't.
If Not Directory.Exists(sExtractPath) Then
If mgrCommon.ShowMessage(mgrRestore_ConfirmCreatePath, sExtractPath, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
Try
Directory.CreateDirectory(sExtractPath)
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorCreatePath, ex.Message), False, ToolTipIcon.Error, True)
Return False
End Try
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorNoPath, sExtractPath), False, ToolTipIcon.Error, True)
Return False
End If
Else
If bCleanFolder Then
mgrCommon.DeleteDirectory(sExtractPath, True)
Directory.CreateDirectory(sExtractPath)
End If
End If End If
End If End If
@@ -170,77 +182,145 @@ Public Class mgrRestore
Return True Return True
End Function End Function
Private Function RunRegistryRestore(ByVal oBackupInfo As clsBackup, ByVal sBackupFile As String) As Boolean
Dim prsReg As New Process
Dim sBinaryPath As String
Dim sArguments As String
Dim oWineData As clsWineData
Dim sWineReg As String
Dim bPathVerified As Boolean
Dim bRestoreCompleted As Boolean = False
sArguments = "import """ & sBackupFile & """"
If mgrCommon.IsUnix Then
oWineData = mgrWineData.DoWineDataGetbyID(oBackupInfo.MonitorID)
prsReg.StartInfo.EnvironmentVariables.Add("WINEPREFIX", oWineData.Prefix)
sBinaryPath = oWineData.BinaryPath & Path.DirectorySeparatorChar & "wine"
sWineReg = oWineData.Prefix & Path.DirectorySeparatorChar & "drive_c/windows/system32/reg.exe"
sArguments = """" & sWineReg & """ " & sArguments
If File.Exists(sBinaryPath) Then
If File.Exists(sWineReg) Then
bPathVerified = True
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorRegNotFound, sWineReg), False, ToolTipIcon.Error, True)
End If
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorWineNotFound, sBinaryPath), False, ToolTipIcon.Error, True)
End If
Else
sBinaryPath = Environment.GetFolderPath(Environment.SpecialFolder.Windows) & Path.DirectorySeparatorChar & "system32\reg.exe"
If File.Exists(sBinaryPath) Then
bPathVerified = True
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorRegNotFound, sBinaryPath), False, ToolTipIcon.Error, True)
End If
End If
If bPathVerified Then
Try
prsReg.StartInfo.Arguments = sArguments
prsReg.StartInfo.FileName = sBinaryPath
prsReg.StartInfo.UseShellExecute = False
prsReg.StartInfo.RedirectStandardOutput = True
prsReg.StartInfo.CreateNoWindow = True
prsReg.Start()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreInProgress, oBackupInfo.TruePath), False, ToolTipIcon.Info, True)
prsReg.WaitForExit()
Select Case prsReg.ExitCode
Case 0
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreComplete, oBackupInfo.Name), False, ToolTipIcon.Info, True)
bRestoreCompleted = True
Case Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreWarnings, oBackupInfo.Name), True, ToolTipIcon.Warning, True)
End Select
prsReg.Dispose()
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorOtherFailure, ex.Message), False, ToolTipIcon.Error, True)
End Try
End If
Return bRestoreCompleted
End Function
Private Function Run7zRestore(ByVal oBackupInfo As clsBackup, ByVal sBackupFile As String) As Boolean
Dim prs7z As New Process
Dim sExtractPath As String
Dim bRestoreCompleted As Boolean = False
If oBackupInfo.AbsolutePath Then
sExtractPath = oBackupInfo.RestorePath
Else
sExtractPath = oBackupInfo.RelativeRestorePath
End If
Try
If File.Exists(sBackupFile) Then
If Settings.Is7zUtilityValid Then
prs7z.StartInfo.Arguments = "x" & oSettings.Prepared7zArguments & """" & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
prs7z.StartInfo.UseShellExecute = False
prs7z.StartInfo.RedirectStandardOutput = True
prs7z.StartInfo.CreateNoWindow = True
prs7z.Start()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreInProgress, sExtractPath), False, ToolTipIcon.Info, True)
While Not prs7z.StandardOutput.EndOfStream
If CancelOperation Then
prs7z.Kill()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorFullAbort, oBackupInfo.Name), True, ToolTipIcon.Error, True)
Exit While
End If
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
End While
prs7z.WaitForExit()
If Not CancelOperation Then
If prs7z.ExitCode = 0 Then
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreComplete, oBackupInfo.Name), False, ToolTipIcon.Info, True)
bRestoreCompleted = True
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreWarnings, oBackupInfo.Name), True, ToolTipIcon.Warning, True)
End If
End If
prs7z.Dispose()
Else
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
End If
Else
RaiseEvent UpdateLog(mgrRestore_ErrorNoBackup, True, ToolTipIcon.Error, True)
End If
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorOtherFailure, ex.Message), False, ToolTipIcon.Error, True)
End Try
Return bRestoreCompleted
End Function
Public Sub DoRestore(ByVal oRestoreList As List(Of clsBackup)) Public Sub DoRestore(ByVal oRestoreList As List(Of clsBackup))
Dim prs7z As Process
Dim sBackupFile As String Dim sBackupFile As String
Dim sExtractPath As String Dim sExtractPath As String
Dim bRestoreCompleted As Boolean Dim bRestoreCompleted As Boolean
For Each oBackupInfo In oRestoreList For Each oBackupInfo In oRestoreList
'Init 'Init
prs7z = New Process
sBackupFile = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName sBackupFile = oSettings.BackupFolder & Path.DirectorySeparatorChar & oBackupInfo.FileName
sExtractPath = String.Empty sExtractPath = String.Empty
bRestoreCompleted = False bRestoreCompleted = False
CancelOperation = False CancelOperation = False
RaiseEvent UpdateRestoreInfo(oBackupInfo) RaiseEvent UpdateRestoreInfo(oBackupInfo)
If oBackupInfo.AbsolutePath Then If mgrPath.IsSupportedRegistryPath(oBackupInfo.TruePath) Then
sExtractPath = oBackupInfo.RestorePath bRestoreCompleted = RunRegistryRestore(oBackupInfo, sBackupFile)
Else Else
sExtractPath = oBackupInfo.RelativeRestorePath bRestoreCompleted = Run7zRestore(oBackupInfo, sBackupFile)
End If End If
Try
If File.Exists(sBackupFile) Then
If Settings.Is7zUtilityValid Then
prs7z.StartInfo.Arguments = "x" & oSettings.Prepared7zArguments & """" & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
prs7z.StartInfo.UseShellExecute = False
prs7z.StartInfo.RedirectStandardOutput = True
prs7z.StartInfo.CreateNoWindow = True
prs7z.Start()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreInProgress, sExtractPath), False, ToolTipIcon.Info, True)
While Not prs7z.StandardOutput.EndOfStream
If CancelOperation Then
prs7z.Kill()
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorFullAbort, oBackupInfo.Name), True, ToolTipIcon.Error, True)
Exit While
End If
RaiseEvent UpdateLog(prs7z.StandardOutput.ReadLine, False, ToolTipIcon.Info, False)
End While
prs7z.WaitForExit()
If Not CancelOperation Then
If prs7z.ExitCode = 0 Then
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreComplete, oBackupInfo.Name), False, ToolTipIcon.Info, True)
bRestoreCompleted = True
Else
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_RestoreWarnings, oBackupInfo.Name), True, ToolTipIcon.Warning, True)
bRestoreCompleted = False
End If
End If
prs7z.Dispose()
Else
RaiseEvent UpdateLog(App_Invalid7zDetected, True, ToolTipIcon.Error, True)
bRestoreCompleted = False
End If
Else
RaiseEvent UpdateLog(mgrRestore_ErrorNoBackup, True, ToolTipIcon.Error, True)
End If
If bRestoreCompleted Then
'Save Local Manifest
If mgrManifest.DoManifestCheck(oBackupInfo.MonitorID, mgrSQLite.Database.Local) Then
mgrManifest.DoManifestUpdateByMonitorID(oBackupInfo, mgrSQLite.Database.Local)
Else
mgrManifest.DoManifestAdd(oBackupInfo, mgrSQLite.Database.Local)
End If
End If
Catch ex As Exception
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrRestore_ErrorOtherFailure, ex.Message), False, ToolTipIcon.Error, True)
End Try
If bRestoreCompleted Then If bRestoreCompleted Then
'Save Local Manifest
If mgrManifest.DoManifestCheck(oBackupInfo.MonitorID, mgrSQLite.Database.Local) Then
mgrManifest.DoManifestUpdateByMonitorID(oBackupInfo, mgrSQLite.Database.Local)
Else
mgrManifest.DoManifestAdd(oBackupInfo, mgrSQLite.Database.Local)
End If
RaiseEvent SetLastAction(mgrCommon.FormatString(mgrRestore_ActionComplete, oBackupInfo.CroppedName)) RaiseEvent SetLastAction(mgrCommon.FormatString(mgrRestore_ActionComplete, oBackupInfo.CroppedName))
Else Else
RaiseEvent SetLastAction(mgrCommon.FormatString(mgrRestore_ActionFailed, oBackupInfo.CroppedName)) RaiseEvent SetLastAction(mgrCommon.FormatString(mgrRestore_ActionFailed, oBackupInfo.CroppedName))
+101 -65
View File
@@ -75,8 +75,8 @@ Public Class mgrSQLite
"BackupFolder TEXT NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " & "BackupFolder TEXT NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " &
"SuppressBackup BOOLEAN NOT NULL, SuppressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " & "SuppressBackup BOOLEAN NOT NULL, SuppressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " &
"Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL, AutoRestore BOOLEAN NOT NULL, AutoMark BOOLEAN NOT NULL, SessionTracking BOOLEAN NOT NULL, " & "Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL, AutoRestore BOOLEAN NOT NULL, AutoMark BOOLEAN NOT NULL, SessionTracking BOOLEAN NOT NULL, " &
"SuppressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL, UseGameID BOOLEAN NOT NULL, DisableSyncMessages BOOLEAN NOT NULL, ShowResolvedPaths BOOLEAN NOT NULL);" "SuppressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL, UseGameID BOOLEAN NOT NULL, DisableSyncMessages BOOLEAN NOT NULL, ShowResolvedPaths BOOLEAN NOT NULL, " &
"DisableDiskSpaceCheck BOOLEAN NOT NULL, ThemeSelection INTEGER NOT NULL, AutoHideLog BOOLEAN NOT NULL);"
'Add Tables (SavedPath) 'Add Tables (SavedPath)
sSql &= "CREATE TABLE savedpath (PathName TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);" sSql &= "CREATE TABLE savedpath (PathName TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);"
@@ -84,7 +84,8 @@ Public Class mgrSQLite
sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSql &= "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & "AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " & "ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, RecurseSubFolders NOT NULL);" "BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, RecurseSubFolders NOT NULL, " &
"OS INTEGER NOT NULL);"
'Add Tables (Tags) 'Add Tables (Tags)
sSql &= "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); " sSql &= "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); "
@@ -108,6 +109,9 @@ Public Class mgrSQLite
'Add Tables (Game Processes) 'Add Tables (Game Processes)
sSql &= "CREATE TABLE gameprocesses (ProcessID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(ProcessID, MonitorID));" sSql &= "CREATE TABLE gameprocesses (ProcessID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(ProcessID, MonitorID));"
'Add Tables (Wine Data)
sSql &= "CREATE TABLE winedata (MonitorID TEXT NOT NULL PRIMARY KEY, Prefix TEXT NOT NULL, SavePath TEXT NOT NULL, BinaryPath TEXT NOT NULL);"
'Set Version 'Set Version
sSql &= "PRAGMA user_version=" & mgrCommon.AppVersion sSql &= "PRAGMA user_version=" & mgrCommon.AppVersion
@@ -130,17 +134,18 @@ Public Class mgrSQLite
sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSql = "CREATE TABLE monitorlist (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " &
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & "AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " &
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " & "ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " &
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, RecurseSubFolders NOT NULL);" "BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL, RecurseSubFolders NOT NULL, " &
"OS INTEGER NOT NULL);"
'Add Tables (Remote Manifest) 'Add Tables (Remote Manifest)
sSql &= "CREATE TABLE manifest (ManifestID TEXT NOT NULL PRIMARY KEY, MonitorID TEXT NOT NULL, FileName TEXT NOT NULL, " & sSql &= "CREATE TABLE manifest (ManifestID TEXT Not NULL PRIMARY KEY, MonitorID TEXT Not NULL, FileName TEXT Not NULL, " &
"DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" "DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
'Add Tables (Remote Tags) 'Add Tables (Remote Tags)
sSql &= "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); " sSql &= "CREATE TABLE tags (TagID TEXT Not NULL UNIQUE, Name TEXT Not NULL PRIMARY KEY); "
'Add Tables (Remote Game Tags) 'Add Tables (Remote Game Tags)
sSql &= "CREATE TABLE gametags (TagID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(TagID, MonitorID)); " sSql &= "CREATE TABLE gametags (TagID TEXT Not NULL, MonitorID TEXT Not NULL, PRIMARY KEY(TagID, MonitorID)); "
'Set Version 'Set Version
sSql &= "PRAGMA user_version=" & mgrCommon.AppVersion sSql &= "PRAGMA user_version=" & mgrCommon.AppVersion
@@ -379,7 +384,7 @@ Public Class mgrSQLite
'0.9 Upgrade '0.9 Upgrade
If GetDatabaseVersion() < 90 Then If GetDatabaseVersion() < 90 Then
BackupDB("v8") BackupDB("v8")
sSQL = "ALTER TABLE monitorlist ADD COLUMN MonitorOnly BOOLEAN NOT NULL DEFAULT 0;" sSQL = "ALTER TABLE monitorlist ADD COLUMN MonitorOnly BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=90" sSQL &= "PRAGMA user_version=90"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
End If End If
@@ -391,25 +396,25 @@ Public Class mgrSQLite
BackupDB("v84") BackupDB("v84")
'Overhaul Monitor List Table 'Overhaul Monitor List Table
sSQL = "CREATE TABLE monitorlist_new (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, PRIMARY KEY(Name, Process));" sSQL = "CREATE TABLE monitorlist_new (MonitorID TEXT Not NULL UNIQUE, Name TEXT Not NULL, Process TEXT Not NULL, Path TEXT, AbsolutePath BOOLEAN Not NULL, FolderSave BOOLEAN Not NULL, FileType TEXT, TimeStamp BOOLEAN Not NULL, ExcludeList TEXT Not NULL, ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN Not NULL, MonitorOnly BOOLEAN Not NULL, PRIMARY KEY(Name, Process));"
sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly) " sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly) "
sSQL &= "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist;" sSQL &= "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist;"
sSQL &= "DROP TABLE monitorlist; ALTER TABLE monitorlist_new RENAME TO monitorlist;" sSQL &= "DROP TABLE monitorlist; ALTER TABLE monitorlist_new RENAME TO monitorlist;"
'Overhaul Variables Table 'Overhaul Variables Table
sSQL &= "CREATE TABLE variables_new (VariableID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);" sSQL &= "CREATE TABLE variables_new (VariableID TEXT Not NULL UNIQUE, Name TEXT Not NULL PRIMARY KEY, Path TEXT Not NULL);"
sSQL &= "INSERT INTO variables_new (VariableID, Name, Path) SELECT VariableID, Name, Path FROM variables;" sSQL &= "INSERT INTO variables_new (VariableID, Name, Path) SELECT VariableID, Name, Path FROM variables;"
sSQL &= "DROP TABLE variables; ALTER TABLE variables_new RENAME TO variables;" sSQL &= "DROP TABLE variables; ALTER TABLE variables_new RENAME TO variables;"
'Overhaul Manifest Table 'Overhaul Manifest Table
sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, AbsolutePath BOOLEAN NOT NULL, DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT Not NULL UNIQUE, Name TEXT Not NULL PRIMARY KEY, FileName TEXT Not NULL, RestorePath TEXT Not NULL, AbsolutePath BOOLEAN Not NULL, DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) " sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) "
sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;" sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;"
sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;" sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;"
'Add new settings 'Add new settings
sSQL &= "ALTER TABLE settings ADD COLUMN Sync BOOLEAN NOT NULL DEFAULT 1;" sSQL &= "ALTER TABLE settings ADD COLUMN Sync BOOLEAN Not NULL DEFAULT 1;"
sSQL &= "ALTER TABLE settings ADD COLUMN CheckSum BOOLEAN NOT NULL DEFAULT 1;" sSQL &= "ALTER TABLE settings ADD COLUMN CheckSum BOOLEAN Not NULL DEFAULT 1;"
sSQL &= "PRAGMA user_version=91" sSQL &= "PRAGMA user_version=91"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
@@ -427,13 +432,13 @@ Public Class mgrSQLite
BackupDB("v84") BackupDB("v84")
'Overhaul Monitor List Table 'Overhaul Monitor List Table
sSQL = "CREATE TABLE monitorlist_new (MonitorID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, PRIMARY KEY(Name, Process));" sSQL = "CREATE TABLE monitorlist_new (MonitorID TEXT Not NULL UNIQUE, Name TEXT Not NULL, Process TEXT Not NULL, Path TEXT, AbsolutePath BOOLEAN Not NULL, FolderSave BOOLEAN Not NULL, FileType TEXT, TimeStamp BOOLEAN Not NULL, ExcludeList TEXT Not NULL, ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN Not NULL, MonitorOnly BOOLEAN Not NULL, PRIMARY KEY(Name, Process));"
sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly) " sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly) "
sSQL &= "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist;" sSQL &= "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly FROM monitorlist;"
sSQL &= "DROP TABLE monitorlist; ALTER TABLE monitorlist_new RENAME TO monitorlist;" sSQL &= "DROP TABLE monitorlist; ALTER TABLE monitorlist_new RENAME TO monitorlist;"
'Overhaul Manifest Table 'Overhaul Manifest Table
sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, AbsolutePath BOOLEAN NOT NULL, DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT Not NULL UNIQUE, Name TEXT Not NULL PRIMARY KEY, FileName TEXT Not NULL, RestorePath TEXT Not NULL, AbsolutePath BOOLEAN Not NULL, DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) " sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) "
sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;" sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;"
sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;" sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;"
@@ -457,7 +462,7 @@ Public Class mgrSQLite
BackupDB("v91") BackupDB("v91")
'Add new setting 'Add new setting
sSQL = "ALTER TABLE settings ADD COLUMN StartWithWindows BOOLEAN NOT NULL DEFAULT 0;" sSQL = "ALTER TABLE settings ADD COLUMN StartWithWindows BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=92" sSQL &= "PRAGMA user_version=92"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
@@ -503,11 +508,11 @@ Public Class mgrSQLite
BackupDB("v93") BackupDB("v93")
'Add Tags Tables 'Add Tags Tables
sSQL = "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); " sSQL = "CREATE TABLE tags (TagID TEXT Not NULL UNIQUE, Name TEXT Not NULL PRIMARY KEY); "
sSQL &= "CREATE TABLE gametags (TagID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(TagID, MonitorID)); " sSQL &= "CREATE TABLE gametags (TagID TEXT Not NULL, MonitorID TEXT Not NULL, PRIMARY KEY(TagID, MonitorID)); "
'Add new setting 'Add new setting
sSQL &= "ALTER TABLE settings ADD COLUMN TimeTracking BOOLEAN NOT NULL DEFAULT 1;" sSQL &= "ALTER TABLE settings ADD COLUMN TimeTracking BOOLEAN Not NULL DEFAULT 1;"
sSQL &= "PRAGMA user_version=94" sSQL &= "PRAGMA user_version=94"
@@ -518,8 +523,8 @@ Public Class mgrSQLite
BackupDB("v93") BackupDB("v93")
'Add Tags Tables 'Add Tags Tables
sSQL = "CREATE TABLE tags (TagID TEXT NOT NULL UNIQUE, Name TEXT NOT NULL PRIMARY KEY); " sSQL = "CREATE TABLE tags (TagID TEXT Not NULL UNIQUE, Name TEXT Not NULL PRIMARY KEY); "
sSQL &= "CREATE TABLE gametags (TagID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(TagID, MonitorID)); " sSQL &= "CREATE TABLE gametags (TagID TEXT Not NULL, MonitorID TEXT Not NULL, PRIMARY KEY(TagID, MonitorID)); "
sSQL &= "PRAGMA user_version=94" sSQL &= "PRAGMA user_version=94"
@@ -534,8 +539,8 @@ Public Class mgrSQLite
BackupDB("v94") BackupDB("v94")
'Add new setting 'Add new setting
sSQL = "ALTER TABLE settings ADD COLUMN SupressBackup BOOLEAN NOT NULL DEFAULT 0;" sSQL = "ALTER TABLE settings ADD COLUMN SupressBackup BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "ALTER TABLE settings ADD COLUMN SupressBackupThreshold INTEGER NOT NULL DEFAULT 10;" sSQL &= "ALTER TABLE settings ADD COLUMN SupressBackupThreshold INTEGER Not NULL DEFAULT 10;"
sSQL &= "PRAGMA user_version=95" sSQL &= "PRAGMA user_version=95"
@@ -558,7 +563,7 @@ Public Class mgrSQLite
BackupDB("v95") BackupDB("v95")
'Add new setting 'Add new setting
sSQL = "ALTER TABLE settings ADD COLUMN CompressionLevel INTEGER NOT NULL DEFAULT 5;" sSQL = "ALTER TABLE settings ADD COLUMN CompressionLevel INTEGER Not NULL DEFAULT 5;"
sSQL &= "PRAGMA user_version=96" sSQL &= "PRAGMA user_version=96"
@@ -583,8 +588,8 @@ Public Class mgrSQLite
'Add new settings 'Add new settings
sSQL = "ALTER TABLE settings ADD COLUMN Custom7zArguments TEXT;" sSQL = "ALTER TABLE settings ADD COLUMN Custom7zArguments TEXT;"
sSQL &= "ALTER TABLE settings ADD COLUMN Custom7zLocation TEXT;" sSQL &= "ALTER TABLE settings ADD COLUMN Custom7zLocation TEXT;"
sSQL &= "ALTER TABLE settings ADD COLUMN SyncFields INTEGER NOT NULL DEFAULT 32;" sSQL &= "ALTER TABLE settings ADD COLUMN SyncFields INTEGER Not NULL DEFAULT 32;"
sSQL &= "ALTER TABLE settings ADD COLUMN AutoSaveLog BOOLEAN NOT NULL DEFAULT 0;" sSQL &= "ALTER TABLE settings ADD COLUMN AutoSaveLog BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=97" sSQL &= "PRAGMA user_version=97"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
@@ -606,13 +611,13 @@ Public Class mgrSQLite
BackupDB("v97") BackupDB("v97")
'Overhaul Manifest Table 'Overhaul Manifest Table
sSQL = "CREATE TABLE manifest_new (ManifestID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, AbsolutePath BOOLEAN NOT NULL, DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" sSQL = "CREATE TABLE manifest_new (ManifestID TEXT Not NULL PRIMARY KEY, Name TEXT Not NULL, FileName TEXT Not NULL, RestorePath TEXT Not NULL, AbsolutePath BOOLEAN Not NULL, DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) " sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) "
sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;" sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;"
sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;" sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;"
'Add backup limit field 'Add backup limit field
sSQL &= "ALTER TABLE monitorlist ADD COLUMN BackupLimit INTEGER NOT NULL DEFAULT 5;" sSQL &= "ALTER TABLE monitorlist ADD COLUMN BackupLimit INTEGER Not NULL DEFAULT 5;"
sSQL &= "PRAGMA user_version=98" sSQL &= "PRAGMA user_version=98"
@@ -626,13 +631,13 @@ Public Class mgrSQLite
BackupDB("v97") BackupDB("v97")
'Overhaul Manifest Table 'Overhaul Manifest Table
sSQL = "CREATE TABLE manifest_new (ManifestID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, FileName TEXT NOT NULL, RestorePath TEXT NOT NULL, AbsolutePath BOOLEAN NOT NULL, DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" sSQL = "CREATE TABLE manifest_new (ManifestID TEXT Not NULL PRIMARY KEY, Name TEXT Not NULL, FileName TEXT Not NULL, RestorePath TEXT Not NULL, AbsolutePath BOOLEAN Not NULL, DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) " sSQL &= "INSERT INTO manifest_new (ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy) "
sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;" sSQL &= "SELECT ManifestID, Name, FileName, RestorePath, AbsolutePath, DateUpdated, UpdatedBy FROM manifest;"
sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;" sSQL &= "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;"
'Add backup limit field 'Add backup limit field
sSQL &= "ALTER TABLE monitorlist ADD COLUMN BackupLimit INTEGER NOT NULL DEFAULT 5;" sSQL &= "ALTER TABLE monitorlist ADD COLUMN BackupLimit INTEGER Not NULL DEFAULT 5;"
sSQL &= "PRAGMA user_version=98" sSQL &= "PRAGMA user_version=98"
@@ -650,11 +655,11 @@ Public Class mgrSQLite
BackupDB("v98") BackupDB("v98")
'Remove checksum field 'Remove checksum field
sSQL = "CREATE TABLE settings_new (SettingsID INTEGER NOT NULL PRIMARY KEY, MonitorOnStartup BOOLEAN NOT NULL, StartToTray BOOLEAN NOT NULL, ShowDetectionToolTips BOOLEAN NOT NULL, " & sSQL = "CREATE TABLE settings_new (SettingsID INTEGER Not NULL PRIMARY KEY, MonitorOnStartup BOOLEAN Not NULL, StartToTray BOOLEAN Not NULL, ShowDetectionToolTips BOOLEAN Not NULL, " &
"DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch BOOLEAN NOT NULL, " & "DisableConfirmation BOOLEAN Not NULL, CreateSubFolder BOOLEAN Not NULL, ShowOverwriteWarning BOOLEAN Not NULL, RestoreOnLaunch BOOLEAN Not NULL, " &
"BackupFolder TEXT NOT NULL, Sync BOOLEAN NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " & "BackupFolder TEXT Not NULL, Sync BOOLEAN Not NULL, StartWithWindows BOOLEAN Not NULL, TimeTracking BOOLEAN Not NULL, " &
"SupressBackup BOOLEAN NOT NULL, SupressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " & "SupressBackup BOOLEAN Not NULL, SupressBackupThreshold INTEGER Not NULL, CompressionLevel INTEGER Not NULL, Custom7zArguments TEXT, " &
"Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL);" "Custom7zLocation TEXT, SyncFields INTEGER Not NULL, AutoSaveLog BOOLEAN Not NULL);"
sSQL &= "INSERT INTO settings_new (SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, " & sSQL &= "INSERT INTO settings_new (SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, " &
"ShowOverwriteWarning, RestoreOnLaunch, BackupFolder, Sync, StartWithWindows, TimeTracking, SupressBackup, SupressBackupThreshold, " & "ShowOverwriteWarning, RestoreOnLaunch, BackupFolder, Sync, StartWithWindows, TimeTracking, SupressBackup, SupressBackupThreshold, " &
"CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog) " & "CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog) " &
@@ -663,9 +668,9 @@ Public Class mgrSQLite
"CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog FROM settings;" & "CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog FROM settings;" &
"DROP TABLE settings; ALTER TABLE settings_new RENAME TO settings;" "DROP TABLE settings; ALTER TABLE settings_new RENAME TO settings;"
'Add new field(s) 'Add new field(s)
sSQL &= "ALTER TABLE monitorlist ADD COLUMN CleanFolder BOOLEAN NOT NULL DEFAULT 0;" sSQL &= "ALTER TABLE monitorlist ADD COLUMN CleanFolder BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "ALTER TABLE settings ADD COLUMN AutoRestore BOOLEAN NOT NULL DEFAULT 0;" sSQL &= "ALTER TABLE settings ADD COLUMN AutoRestore BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "ALTER TABLE settings ADD COLUMN AutoMark BOOLEAN NOT NULL DEFAULT 0;" sSQL &= "ALTER TABLE settings ADD COLUMN AutoMark BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=101" sSQL &= "PRAGMA user_version=101"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
@@ -675,7 +680,7 @@ Public Class mgrSQLite
BackupDB("v98") BackupDB("v98")
'Add new field(s) 'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN CleanFolder BOOLEAN NOT NULL DEFAULT 0;" sSQL = "ALTER TABLE monitorlist ADD COLUMN CleanFolder BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=101" sSQL &= "PRAGMA user_version=101"
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
@@ -689,7 +694,7 @@ Public Class mgrSQLite
BackupDB("v101") BackupDB("v101")
'Add Table (SavedPath) 'Add Table (SavedPath)
sSQL = "CREATE TABLE savedpath (PathName TEXT NOT NULL PRIMARY KEY, Path TEXT NOT NULL);" sSQL = "CREATE TABLE savedpath (PathName TEXT Not NULL PRIMARY KEY, Path TEXT Not NULL);"
'Add new field(s) 'Add new field(s)
sSQL &= "ALTER TABLE monitorlist ADD COLUMN Parameter TEXT;" sSQL &= "ALTER TABLE monitorlist ADD COLUMN Parameter TEXT;"
@@ -718,7 +723,7 @@ Public Class mgrSQLite
BackupDB("v102") BackupDB("v102")
'Add Tables (Sessions) 'Add Tables (Sessions)
sSQL = "CREATE TABLE sessions (MonitorID TEXT NOT NULL, Start INTEGER NOT NULL, End INTEGER NOT NULL, PRIMARY KEY(MonitorID, Start));" sSQL = "CREATE TABLE sessions (MonitorID TEXT Not NULL, Start INTEGER Not NULL, End INTEGER Not NULL, PRIMARY KEY(MonitorID, Start));"
'Add new field(s) 'Add new field(s)
sSQL &= "ALTER TABLE monitorlist ADD COLUMN Comments TEXT;" sSQL &= "ALTER TABLE monitorlist ADD COLUMN Comments TEXT;"
@@ -748,7 +753,7 @@ Public Class mgrSQLite
BackupDB("v105") BackupDB("v105")
'Add new field(s) 'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN IsRegEx BOOLEAN NOT NULL DEFAULT 0;" sSQL = "ALTER TABLE monitorlist ADD COLUMN IsRegEx BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=108" sSQL &= "PRAGMA user_version=108"
@@ -759,7 +764,7 @@ Public Class mgrSQLite
BackupDB("v105") BackupDB("v105")
'Add new field(s) 'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN IsRegEx BOOLEAN NOT NULL DEFAULT 0;" sSQL = "ALTER TABLE monitorlist ADD COLUMN IsRegEx BOOLEAN Not NULL DEFAULT 0;"
sSQL &= "PRAGMA user_version=108" sSQL &= "PRAGMA user_version=108"
@@ -774,33 +779,33 @@ Public Class mgrSQLite
BackupDB("v108") BackupDB("v108")
'Add Tables 'Add Tables
sSQL = "CREATE TABLE processes (ProcessID TEXT NOT NULL PRIMARY KEY, Name Text NOT NULL, Path TEXT NOT NULL, Args TEXT, Kill BOOLEAN NOT NULL);" sSQL = "CREATE TABLE processes (ProcessID TEXT Not NULL PRIMARY KEY, Name Text Not NULL, Path TEXT Not NULL, Args TEXT, Kill BOOLEAN Not NULL);"
sSQL &= "CREATE TABLE gameprocesses (ProcessID TEXT NOT NULL, MonitorID TEXT NOT NULL, PRIMARY KEY(ProcessID, MonitorID));" sSQL &= "CREATE TABLE gameprocesses (ProcessID TEXT Not NULL, MonitorID TEXT Not NULL, PRIMARY KEY(ProcessID, MonitorID));"
'Overhaul Tables 'Overhaul Tables
sSQL &= "CREATE TABLE settings_new (SettingsID INTEGER NOT NULL PRIMARY KEY, MonitorOnStartup BOOLEAN NOT NULL, StartToTray BOOLEAN NOT NULL, ShowDetectionToolTips BOOLEAN NOT NULL, " & sSQL &= "CREATE TABLE settings_new (SettingsID INTEGER Not NULL PRIMARY KEY, MonitorOnStartup BOOLEAN Not NULL, StartToTray BOOLEAN Not NULL, ShowDetectionToolTips BOOLEAN Not NULL, " &
"DisableConfirmation BOOLEAN NOT NULL, CreateSubFolder BOOLEAN NOT NULL, ShowOverwriteWarning BOOLEAN NOT NULL, RestoreOnLaunch BOOLEAN NOT NULL, " & "DisableConfirmation BOOLEAN Not NULL, CreateSubFolder BOOLEAN Not NULL, ShowOverwriteWarning BOOLEAN Not NULL, RestoreOnLaunch BOOLEAN Not NULL, " &
"BackupFolder TEXT NOT NULL, StartWithWindows BOOLEAN NOT NULL, TimeTracking BOOLEAN NOT NULL, " & "BackupFolder TEXT Not NULL, StartWithWindows BOOLEAN Not NULL, TimeTracking BOOLEAN Not NULL, " &
"SuppressBackup BOOLEAN NOT NULL, SuppressBackupThreshold INTEGER NOT NULL, CompressionLevel INTEGER NOT NULL, Custom7zArguments TEXT, " & "SuppressBackup BOOLEAN Not NULL, SuppressBackupThreshold INTEGER Not NULL, CompressionLevel INTEGER Not NULL, Custom7zArguments TEXT, " &
"Custom7zLocation TEXT, SyncFields INTEGER NOT NULL, AutoSaveLog BOOLEAN NOT NULL, AutoRestore BOOLEAN NOT NULL, AutoMark BOOLEAN NOT NULL, SessionTracking BOOLEAN NOT NULL, " & "Custom7zLocation TEXT, SyncFields INTEGER Not NULL, AutoSaveLog BOOLEAN Not NULL, AutoRestore BOOLEAN Not NULL, AutoMark BOOLEAN Not NULL, SessionTracking BOOLEAN Not NULL, " &
"SuppressMessages INTEGER NOT NULL, BackupOnLaunch BOOLEAN NOT NULL, UseGameID BOOLEAN NOT NULL, DisableSyncMessages BOOLEAN NOT NULL);" "SuppressMessages INTEGER Not NULL, BackupOnLaunch BOOLEAN Not NULL, UseGameID BOOLEAN Not NULL, DisableSyncMessages BOOLEAN Not NULL);"
sSQL &= "INSERT INTO settings_new(SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " & sSQL &= "INSERT INTO settings_new(SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " &
"BackupFolder, StartWithWindows, TimeTracking, SuppressBackup, SuppressBackupThreshold, CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog, " & "BackupFolder, StartWithWindows, TimeTracking, SuppressBackup, SuppressBackupThreshold, CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog, " &
"AutoRestore, AutoMark, SessionTracking, SuppressMessages, BackupOnLaunch, UseGameID, DisableSyncMessages) SELECT SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " & "AutoRestore, AutoMark, SessionTracking, SuppressMessages, BackupOnLaunch, UseGameID, DisableSyncMessages) SELECT SettingsID, MonitorOnStartup, StartToTray, ShowDetectionToolTips, DisableConfirmation, CreateSubFolder, ShowOverwriteWarning, RestoreOnLaunch, " &
"BackupFolder, StartWithWindows, TimeTracking, SupressBackup, SupressBackupThreshold, CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog, " & "BackupFolder, StartWithWindows, TimeTracking, SupressBackup, SupressBackupThreshold, CompressionLevel, Custom7zArguments, Custom7zLocation, SyncFields, AutoSaveLog, " &
"AutoRestore, AutoMark, SessionTracking, 0, 1, 0, 1 FROM settings;" & "AutoRestore, AutoMark, SessionTracking, 0, 1, 0, 1 FROM settings;" &
"DROP TABLE settings; ALTER TABLE settings_new RENAME TO settings;" "DROP TABLE settings; ALTER TABLE settings_new RENAME TO settings;"
sSQL &= "CREATE TABLE monitorlist_new (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSQL &= "CREATE TABLE monitorlist_new (MonitorID TEXT Not NULL PRIMARY KEY, Name TEXT Not NULL, Process TEXT Not NULL, Path TEXT, " &
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & "AbsolutePath BOOLEAN Not NULL, FolderSave BOOLEAN Not NULL, FileType TEXT, TimeStamp BOOLEAN Not NULL, ExcludeList TEXT Not NULL, " &
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " & "ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN Not NULL, MonitorOnly BOOLEAN Not NULL, " &
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL);" "BackupLimit INTEGER Not NULL, CleanFolder BOOLEAN Not NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN Not NULL);"
sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " & sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " &
"ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx)" & "ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx)" &
"SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " & "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " &
"ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx FROM monitorlist;" & "ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx FROM monitorlist;" &
"DROP TABLE monitorlist; ALTER TABLE monitorlist_new RENAME TO monitorlist;" "DROP TABLE monitorlist; ALTER TABLE monitorlist_new RENAME TO monitorlist;"
sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT NOT NULL PRIMARY KEY, MonitorID TEXT NOT NULL, FileName TEXT NOT NULL, " & sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT Not NULL PRIMARY KEY, MonitorID TEXT Not NULL, FileName TEXT Not NULL, " &
"DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" "DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
sSQL &= "INSERT INTO manifest_new (ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum) " & sSQL &= "INSERT INTO manifest_new (ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum) " &
"SELECT ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum FROM manifest NATURAL JOIN monitorlist GROUP BY ManifestID;" & "SELECT ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum FROM manifest NATURAL JOIN monitorlist GROUP BY ManifestID;" &
"DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;" "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;"
@@ -817,10 +822,10 @@ Public Class mgrSQLite
BackupDB("v108") BackupDB("v108")
'Overhaul Tables 'Overhaul Tables
sSQL = "CREATE TABLE monitorlist_new (MonitorID TEXT NOT NULL PRIMARY KEY, Name TEXT NOT NULL, Process TEXT NOT NULL, Path TEXT, " & sSQL = "CREATE TABLE monitorlist_new (MonitorID TEXT Not NULL PRIMARY KEY, Name TEXT Not NULL, Process TEXT Not NULL, Path TEXT, " &
"AbsolutePath BOOLEAN NOT NULL, FolderSave BOOLEAN NOT NULL, FileType TEXT, TimeStamp BOOLEAN NOT NULL, ExcludeList TEXT NOT NULL, " & "AbsolutePath BOOLEAN Not NULL, FolderSave BOOLEAN Not NULL, FileType TEXT, TimeStamp BOOLEAN Not NULL, ExcludeList TEXT Not NULL, " &
"ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN NOT NULL, MonitorOnly BOOLEAN NOT NULL, " & "ProcessPath TEXT, Icon TEXT, Hours REAL, Version TEXT, Company TEXT, Enabled BOOLEAN Not NULL, MonitorOnly BOOLEAN Not NULL, " &
"BackupLimit INTEGER NOT NULL, CleanFolder BOOLEAN NOT NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN NOT NULL);" "BackupLimit INTEGER Not NULL, CleanFolder BOOLEAN Not NULL, Parameter TEXT, Comments TEXT, IsRegEx BOOLEAN Not NULL);"
sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " & sSQL &= "INSERT INTO monitorlist_new (MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " &
"ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx)" & "ProcessPath, Icon, Hours, Version, Company, Enabled, MonitorOnly, BackupLimit, CleanFolder, Parameter, Comments, IsRegEx)" &
"SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " & "SELECT MonitorID, Name, Process, Path, AbsolutePath, FolderSave, FileType, TimeStamp, ExcludeList, " &
@@ -835,8 +840,8 @@ Public Class mgrSQLite
mgrTags.SyncTags(True) mgrTags.SyncTags(True)
mgrGameTags.SyncGameTags(True) mgrGameTags.SyncGameTags(True)
sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT NOT NULL PRIMARY KEY, MonitorID TEXT NOT NULL, FileName TEXT NOT NULL, " & sSQL &= "CREATE TABLE manifest_new (ManifestID TEXT Not NULL PRIMARY KEY, MonitorID TEXT Not NULL, FileName TEXT Not NULL, " &
"DateUpdated TEXT NOT NULL, UpdatedBy TEXT NOT NULL, CheckSum TEXT);" "DateUpdated TEXT Not NULL, UpdatedBy TEXT Not NULL, CheckSum TEXT);"
sSQL &= "INSERT INTO manifest_new (ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum) " & sSQL &= "INSERT INTO manifest_new (ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum) " &
"SELECT ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum FROM manifest NATURAL JOIN monitorlist GROUP BY ManifestID;" & "SELECT ManifestID, MonitorID, FileName, DateUpdated, UpdatedBy, CheckSum FROM manifest NATURAL JOIN monitorlist GROUP BY ManifestID;" &
"DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;" "DROP TABLE manifest; ALTER TABLE manifest_new RENAME TO manifest;"
@@ -856,7 +861,7 @@ Public Class mgrSQLite
BackupDB("v110") BackupDB("v110")
'Add new setting 'Add new setting
sSQL = "ALTER TABLE settings ADD COLUMN ShowResolvedPaths BOOLEAN NOT NULL DEFAULT 1;" sSQL = "ALTER TABLE settings ADD COLUMN ShowResolvedPaths BOOLEAN Not NULL DEFAULT 1;"
sSQL &= "PRAGMA user_version=115" sSQL &= "PRAGMA user_version=115"
@@ -916,6 +921,37 @@ Public Class mgrSQLite
RunParamQuery(sSQL, New Hashtable) RunParamQuery(sSQL, New Hashtable)
End If End If
End If End If
'1.18 Upgrade
If GetDatabaseVersion() < 118 Then
If eDatabase = Database.Local Then
'Backup DB before starting
BackupDB("v116")
'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN OS INTEGER NOT NULL DEFAULT " & mgrCommon.GetCurrentOS & ";"
sSQL &= "ALTER TABLE settings ADD COLUMN DisableDiskSpaceCheck BOOLEAN NOT NULL DEFAULT 0;"
sSQL &= "ALTER TABLE settings ADD COLUMN ThemeSelection INTEGER NOT NULL DEFAULT 0;"
sSQL &= "ALTER TABLE settings ADD COLUMN AutoHideLog BOOLEAN NOT NULL DEFAULT 0;"
'Add Tables (Wine Data)
sSQL &= "CREATE TABLE winedata (MonitorID TEXT NOT NULL PRIMARY KEY, Prefix TEXT NOT NULL, SavePath TEXT NOT NULL, BinaryPath TEXT NOT NULL);"
sSQL &= "PRAGMA user_version=118"
RunParamQuery(sSQL, New Hashtable)
End If
If eDatabase = Database.Remote Then
'Backup DB before starting
BackupDB("v116")
'Add new field(s)
sSQL = "ALTER TABLE monitorlist ADD COLUMN OS INTEGER NOT NULL DEFAULT " & mgrCommon.GetCurrentOS & ";"
sSQL &= "PRAGMA user_version=118"
RunParamQuery(sSQL, New Hashtable)
End If
End If
End Sub End Sub
Public Function GetDBSize() As Long Public Function GetDBSize() As Long
+40 -3
View File
@@ -1,4 +1,5 @@
Imports System.IO Imports System.IO
Imports GBM.My.Resources
Public Class mgrSettings Public Class mgrSettings
Private bStartWithWindows As Boolean = False Private bStartWithWindows As Boolean = False
@@ -18,7 +19,7 @@ Public Class mgrSettings
Private iCompressionLevel As Integer = 5 Private iCompressionLevel As Integer = 5
Private s7zArguments As String = String.Empty Private s7zArguments As String = String.Empty
Private s7zLocation As String = String.Empty Private s7zLocation As String = String.Empty
Private sBackupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).TrimEnd(New Char() {"\", "/"}) Private sBackupFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & Path.DirectorySeparatorChar & App_NameLong
Private eSyncFields As clsGame.eOptionalSyncFields = clsGame.eOptionalSyncFields.None Private eSyncFields As clsGame.eOptionalSyncFields = clsGame.eOptionalSyncFields.None
Private eMessages As eSuppressMessages = eSuppressMessages.None Private eMessages As eSuppressMessages = eSuppressMessages.None
Private bAutoSaveLog As Boolean = False Private bAutoSaveLog As Boolean = False
@@ -26,12 +27,16 @@ Public Class mgrSettings
Private bUseGameID As Boolean = False Private bUseGameID As Boolean = False
Private bDisableSyncMessages As Boolean = True Private bDisableSyncMessages As Boolean = True
Private bShowResolvedPaths As Boolean = True Private bShowResolvedPaths As Boolean = True
Private bDisableDiskSpaceCheck As Boolean = False
Private eThemeSelection As mgrThemeEngine.eBaseTheme = mgrThemeEngine.eBaseTheme.Light
Private bAutoHideLog As Boolean = False
<Flags()> Public Enum eSuppressMessages <Flags()> Public Enum eSuppressMessages
None = 0 None = 0
GameIDSync = 1 GameIDSync = 1
BackupImport = 2 BackupImport = 2
WinConfigsInLinux = 4 WinConfigsInLinux = 4
WineConfig = 16
End Enum End Enum
Property StartWithWindows As Boolean Property StartWithWindows As Boolean
@@ -307,6 +312,33 @@ Public Class mgrSettings
End Set End Set
End Property End Property
Property DisableDiskSpaceCheck As Boolean
Get
Return bDisableDiskSpaceCheck
End Get
Set(value As Boolean)
bDisableDiskSpaceCheck = value
End Set
End Property
Property ThemeSelection As mgrThemeEngine.eBaseTheme
Get
Return eThemeSelection
End Get
Set(value As mgrThemeEngine.eBaseTheme)
eThemeSelection = value
End Set
End Property
Property AutoHideLog As Boolean
Get
Return bAutoHideLog
End Get
Set(value As Boolean)
bAutoHideLog = value
End Set
End Property
Sub New() Sub New()
'The GameIDsync message should be suppressed on all new databases 'The GameIDsync message should be suppressed on all new databases
SuppressMessages = SetMessageField(SuppressMessages, eSuppressMessages.GameIDSync) SuppressMessages = SetMessageField(SuppressMessages, eSuppressMessages.GameIDSync)
@@ -321,7 +353,7 @@ Public Class mgrSettings
sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @StartWithWindows, " sSQL &= "@CreateSubFolder, @ShowOverwriteWarning, @RestoreOnLaunch, @BackupFolder, @StartWithWindows, "
sSQL &= "@TimeTracking, @SuppressBackup, @SuppressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, " sSQL &= "@TimeTracking, @SuppressBackup, @SuppressBackupThreshold, @CompressionLevel, @Custom7zArguments, @Custom7zLocation, "
sSQL &= "@SyncFields, @AutoSaveLog, @AutoRestore, @AutoMark, @SessionTracking, @SuppressMessages, @BackupOnLaunch, @UseGameID, " sSQL &= "@SyncFields, @AutoSaveLog, @AutoRestore, @AutoMark, @SessionTracking, @SuppressMessages, @BackupOnLaunch, @UseGameID, "
sSQL &= "@DisableSyncMessages, @ShowResolvedPaths)" sSQL &= "@DisableSyncMessages, @ShowResolvedPaths, @DisableDiskSpaceCheck, @ThemeSelection, @AutoHideLog)"
hshParams.Add("MonitorOnStartup", MonitorOnStartup) hshParams.Add("MonitorOnStartup", MonitorOnStartup)
hshParams.Add("StartToTray", StartToTray) hshParams.Add("StartToTray", StartToTray)
@@ -348,7 +380,9 @@ Public Class mgrSettings
hshParams.Add("UseGameID", UseGameID) hshParams.Add("UseGameID", UseGameID)
hshParams.Add("DisableSyncMessages", DisableSyncMessages) hshParams.Add("DisableSyncMessages", DisableSyncMessages)
hshParams.Add("ShowResolvedPaths", ShowResolvedPaths) hshParams.Add("ShowResolvedPaths", ShowResolvedPaths)
hshParams.Add("DisableDiskSpaceCheck", DisableDiskSpaceCheck)
hshParams.Add("ThemeSelection", ThemeSelection)
hshParams.Add("AutoHideLog", AutoHideLog)
oDatabase.RunParamQuery(sSQL, hshParams) oDatabase.RunParamQuery(sSQL, hshParams)
End Sub End Sub
@@ -388,6 +422,9 @@ Public Class mgrSettings
UseGameID = CBool(dr("UseGameID")) UseGameID = CBool(dr("UseGameID"))
DisableSyncMessages = CBool(dr("DisableSyncMessages")) DisableSyncMessages = CBool(dr("DisableSyncMessages"))
ShowResolvedPaths = CBool(dr("ShowResolvedPaths")) ShowResolvedPaths = CBool(dr("ShowResolvedPaths"))
DisableDiskSpaceCheck = CBool(dr("DisableDiskSpaceCheck"))
ThemeSelection = CInt(dr("ThemeSelection"))
AutoHideLog = CBool(dr("AutoHideLog"))
Next Next
oDatabase.Disconnect() oDatabase.Disconnect()
+112
View File
@@ -0,0 +1,112 @@
Imports GBM.My.Resources
Public Class mgrThemeEngine
Private _ColorBase As Color
Public Property ColorBase() As Color
Get
If _ColorBase = Nothing Then
Throw New NullReferenceException
End If
Return _ColorBase
End Get
Private Set(ByVal value As Color)
_ColorBase = value
End Set
End Property
Private _ColorBaseSecondary As Color
Public Property ColorBaseSecondary() As Color
Get
If _ColorBaseSecondary = Nothing Then
Throw New NullReferenceException
End If
Return _ColorBaseSecondary
End Get
Private Set(ByVal value As Color)
_ColorBaseSecondary = value
End Set
End Property
Private _ColorHighlight As Color
Public Property ColorHighlight() As Color
Get
If _ColorHighlight = Nothing Then
Throw New NullReferenceException
End If
Return _ColorHighlight
End Get
Private Set(ByVal value As Color)
_ColorHighlight = value
End Set
End Property
Private _ColorHighlightSecondary As Color
Public Property ColorHighlightSecondary() As Color
Get
If _ColorHighlightSecondary = Nothing Then
Throw New NullReferenceException
End If
Return _ColorHighlightSecondary
End Get
Private Set(ByVal value As Color)
_ColorHighlightSecondary = value
End Set
End Property
Private _bThemeHasBeenDefined As Boolean
Public Property bThemeHasBeenDefined() As Boolean
Get
Return _bThemeHasBeenDefined
End Get
Private Set(ByVal value As Boolean)
_bThemeHasBeenDefined = value
End Set
End Property
''' <summary>
''' Supported themes.
''' </summary>
Public Enum eBaseTheme
Light = 0
Dark = 1
End Enum
''' <summary>
''' Configures the base colors for the overall theme based on input.
''' </summary>
''' <param name="_eBaseTheme"></param>
Public Sub SetTheme(_eBaseTheme As eBaseTheme)
Select Case _eBaseTheme
Case eBaseTheme.Dark
_ColorBase = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Dark_Base)
_ColorBaseSecondary = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Dark_BaseSecondary)
_ColorHighlight = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Dark_Highlight)
_ColorHighlightSecondary = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Dark_HighlightSecondary)
_bThemeHasBeenDefined = True
Case eBaseTheme.Light
_ColorBase = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Light_Base)
_ColorBaseSecondary = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Light_BaseSecondary)
_ColorHighlight = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Light_Highlight)
_ColorHighlightSecondary = New ColorConverter().ConvertFromString(
mgrThemeEngine_RGB_Light_HighlightSecondary)
_bThemeHasBeenDefined = True
End Select
End Sub
End Class
+73
View File
@@ -0,0 +1,73 @@
Public Class mgrWineData
Private Shared Function MapToObject(ByVal dr As DataRow) As clsWineData
Dim oWineGame As New clsWineData
oWineGame.MonitorID = CStr(dr("MonitorID"))
If Not IsDBNull(dr("Prefix")) Then oWineGame.Prefix = CStr(dr("Prefix"))
If Not IsDBNull(dr("SavePath")) Then oWineGame.SavePath = CStr(dr("SavePath"))
If Not IsDBNull(dr("BinaryPath")) Then oWineGame.BinaryPath = CStr(dr("BinaryPath"))
Return oWineGame
End Function
Private Shared Function SetCoreParameters(ByVal oWineGame As clsWineData) As Hashtable
Dim hshParams As New Hashtable
hshParams.Add("MonitorID", oWineGame.MonitorID)
hshParams.Add("Prefix", oWineGame.Prefix)
hshParams.Add("SavePath", oWineGame.SavePath)
hshParams.Add("BinaryPath", oWineGame.BinaryPath)
Return hshParams
End Function
Public Shared Sub DoWineDataAddUpdate(ByVal oWineGame As clsWineData)
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim hshParams As Hashtable
sSQL = "INSERT OR REPLACE INTO winedata VALUES (@MonitorID, @Prefix, @SavePath, @BinaryPath)"
'Parameters
hshParams = SetCoreParameters(oWineGame)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Public Shared Sub DoWineDataDelete(ByVal sMonitorID As String)
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim hshParams As New Hashtable
sSQL = "DELETE FROM winedata "
sSQL &= "WHERE MonitorID = @MonitorID;"
hshParams.Add("MonitorID", sMonitorID)
oDatabase.RunParamQuery(sSQL, hshParams)
End Sub
Public Shared Function DoWineDataGetbyID(ByVal sMonitorID As String) As clsWineData
Dim oDatabase As New mgrSQLite(mgrSQLite.Database.Local)
Dim sSQL As String
Dim oData As DataSet
Dim oWineData As New clsWineData
Dim hshParams As New Hashtable
sSQL = "SELECT * FROM winedata "
sSQL &= "WHERE MonitorID = @MonitorID"
hshParams.Add("MonitorID", sMonitorID)
oData = oDatabase.ReadParamData(sSQL, hshParams)
For Each dr As DataRow In oData.Tables(0).Rows
oWineData = MapToObject(dr)
Next
Return oWineData
End Function
End Class
+6
View File
@@ -42,6 +42,12 @@ Public Class mgrXML
oGame.Comments = g.Comments oGame.Comments = g.Comments
oGame.IsRegEx = g.IsRegEx oGame.IsRegEx = g.IsRegEx
oGame.RecurseSubFolders = g.RecurseSubFolders oGame.RecurseSubFolders = g.RecurseSubFolders
oGame.OS = g.OS
'Retain compatability when the OS value is not set
If oGame.OS = 0 Then
oGame.OS = mgrCommon.GetCurrentOS
End If
For Each t As Tag In g.Tags For Each t As Tag In g.Tags
oGame.ImportTags.Add(t) oGame.ImportTags.Add(t)
Next Next
+3 -3
View File
@@ -14,7 +14,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("Game Backup Monitor")> <Assembly: AssemblyDescription("Game Backup Monitor")>
<Assembly: AssemblyCompany("Michael J. Seiferling")> <Assembly: AssemblyCompany("Michael J. Seiferling")>
<Assembly: AssemblyProduct("Game Backup Monitor")> <Assembly: AssemblyProduct("Game Backup Monitor")>
<Assembly: AssemblyCopyright("Copyright © 2018 Michael J. Seiferling")> <Assembly: AssemblyCopyright("© 2014 - 2019 Michael J. Seiferling and Game Backup Monitor contributors")>
<Assembly: AssemblyTrademark("")> <Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)> <Assembly: ComVisible(False)>
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below: ' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.1.7.*")> <Assembly: AssemblyVersion("1.1.9.*")>
<Assembly: AssemblyFileVersion("1.1.7.0")> <Assembly: AssemblyFileVersion("1.1.9.0")>
<Assembly: NeutralResourcesLanguageAttribute("en")> <Assembly: NeutralResourcesLanguageAttribute("en")>
+478 -36
View File
@@ -79,7 +79,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] Michael J. Seiferling. ''' Looks up a localized string similar to 2014 - [PARAM] Michael J. Seiferling and Game Backup Monitor contributors.
'''</summary> '''</summary>
Friend ReadOnly Property App_Copyright() As String Friend ReadOnly Property App_Copyright() As String
Get Get
@@ -96,6 +96,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to An error occured attempting to launch the application:[BR][BR][PARAM].
'''</summary>
Friend ReadOnly Property App_ErrorLaunchExternal() As String
Get
Return ResourceManager.GetString("App_ErrorLaunchExternal", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to This function is currently not available on a Unix based operating system.. ''' Looks up a localized string similar to This function is currently not available on a Unix based operating system..
'''</summary> '''</summary>
@@ -123,6 +132,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Linux.
'''</summary>
Friend ReadOnly Property App_LinuxOS() As String
Get
Return ResourceManager.GetString("App_LinuxOS", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Game Backup Monitor. ''' Looks up a localized string similar to Game Backup Monitor.
'''</summary> '''</summary>
@@ -195,6 +213,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Windows.
'''</summary>
Friend ReadOnly Property App_WindowsOS() As String
Get
Return ResourceManager.GetString("App_WindowsOS", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to http://regexr.com/?expression=[PARAM]&amp;text=test. ''' Looks up a localized string similar to http://regexr.com/?expression=[PARAM]&amp;text=test.
'''</summary> '''</summary>
@@ -520,7 +547,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Backup Limit. ''' Looks up a localized string similar to Backup Limit (0 = Unlimited).
'''</summary> '''</summary>
Friend ReadOnly Property frmAddWizard_lblLimit() As String Friend ReadOnly Property frmAddWizard_lblLimit() As String
Get Get
@@ -717,6 +744,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Unlimited.
'''</summary>
Friend ReadOnly Property frmAddWizard_Summary_NoLimit() As String
Get
Return ResourceManager.GetString("frmAddWizard_Summary_NoLimit", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Process. ''' Looks up a localized string similar to Process.
'''</summary> '''</summary>
@@ -861,6 +897,24 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Name.
'''</summary>
Friend ReadOnly Property frmChooseGame_ColumnName() As String
Get
Return ResourceManager.GetString("frmChooseGame_ColumnName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Tags.
'''</summary>
Friend ReadOnly Property frmChooseGame_ColumnTags() As String
Get
Return ResourceManager.GetString("frmChooseGame_ColumnTags", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Choose Game. ''' Looks up a localized string similar to Choose Game.
'''</summary> '''</summary>
@@ -1167,6 +1221,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to OS.
'''</summary>
Friend ReadOnly Property frmFilter_FieldOS() As String
Get
Return ResourceManager.GetString("frmFilter_FieldOS", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Parameter. ''' Looks up a localized string similar to Parameter.
'''</summary> '''</summary>
@@ -1600,11 +1663,11 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to &amp;Open Backup File. ''' Looks up a localized string similar to &amp;Open Backup.
'''</summary> '''</summary>
Friend ReadOnly Property frmGameManager_btnOpenBackupFile() As String Friend ReadOnly Property frmGameManager_btnOpenBackup() As String
Get Get
Return ResourceManager.GetString("frmGameManager_btnOpenBackupFile", resourceCulture) Return ResourceManager.GetString("frmGameManager_btnOpenBackup", resourceCulture)
End Get End Get
End Property End Property
@@ -1671,6 +1734,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to &amp;Wine Configuration....
'''</summary>
Friend ReadOnly Property frmGameManager_btnWineConfig() As String
Get
Return ResourceManager.GetString("frmGameManager_btnWineConfig", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Delete folder on restore. ''' Looks up a localized string similar to Delete folder on restore.
'''</summary> '''</summary>
@@ -1842,6 +1914,24 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to &amp;File.
'''</summary>
Friend ReadOnly Property frmGameManager_cmsOpenBackupFile() As String
Get
Return ResourceManager.GetString("frmGameManager_cmsOpenBackupFile", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to F&amp;older.
'''</summary>
Friend ReadOnly Property frmGameManager_cmsOpenBackupFolder() As String
Get
Return ResourceManager.GetString("frmGameManager_cmsOpenBackupFolder", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Are you sure you want to run a backup for [PARAM]? This will close the form.. ''' Looks up a localized string similar to Are you sure you want to run a backup for [PARAM]? This will close the form..
'''</summary> '''</summary>
@@ -2043,9 +2133,18 @@ Namespace My.Resources
'''<summary> '''<summary>
''' Looks up a localized string similar to The backup file does not exist.. ''' Looks up a localized string similar to The backup file does not exist..
'''</summary> '''</summary>
Friend ReadOnly Property frmGameManager_ErrorNoBackupExists() As String Friend ReadOnly Property frmGameManager_ErrorNoBackupFileExists() As String
Get Get
Return ResourceManager.GetString("frmGameManager_ErrorNoBackupExists", resourceCulture) Return ResourceManager.GetString("frmGameManager_ErrorNoBackupFileExists", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The backup folder does not exist..
'''</summary>
Friend ReadOnly Property frmGameManager_ErrorNoBackupFolderExists() As String
Get
Return ResourceManager.GetString("frmGameManager_ErrorNoBackupFolderExists", resourceCulture)
End Get End Get
End Property End Property
@@ -2320,7 +2419,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Backup Limit. ''' Looks up a localized string similar to Backup Limit (0 = Unlimited).
'''</summary> '''</summary>
Friend ReadOnly Property frmGameManager_lblLimit() As String Friend ReadOnly Property frmGameManager_lblLimit() As String
Get Get
@@ -2346,6 +2445,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to OS:.
'''</summary>
Friend ReadOnly Property frmGameManager_lblOS() As String
Get
Return ResourceManager.GetString("frmGameManager_lblOS", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Parameter:. ''' Looks up a localized string similar to Parameter:.
'''</summary> '''</summary>
@@ -2500,7 +2608,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Official Windows configurations can be used in Linux for games running in Wine or Proton.[BR][BR]You do not need to modify these configurations, GBM will automatically do any required path conversions the first time the game is detected.[BR][BR]This message will only be shown once.. ''' Looks up a localized string similar to Official Windows configurations can be used in Linux for games running in Wine or Proton.[BR][BR]You do not need to modify these configurations, GBM will automatically do any required path conversions when the game is detected.[BR][BR]This message will only be shown once..
'''</summary> '''</summary>
Friend ReadOnly Property frmGameManager_WarningWinConfigsInLinux() As String Friend ReadOnly Property frmGameManager_WarningWinConfigsInLinux() As String
Get Get
@@ -3255,6 +3363,24 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to GBM is set to start automatically, but the desktop link is missing. Automatic start has been disabled, please re-install GBM using a package manager or the makefile..
'''</summary>
Friend ReadOnly Property frmMain_ErrorLinuxAutoStartLinkMissing() As String
Get
Return ResourceManager.GetString("frmMain_ErrorLinuxAutoStartLinkMissing", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to GBM is set to start automatically, but the autostart link is missing. The autostart link has been re-created..
'''</summary>
Friend ReadOnly Property frmMain_ErrorLinuxAutoStartMissing() As String
Get
Return ResourceManager.GetString("frmMain_ErrorLinuxAutoStartMissing", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to The command [PARAM] requires more parameters.. ''' Looks up a localized string similar to The command [PARAM] requires more parameters..
'''</summary> '''</summary>
@@ -3291,6 +3417,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to [PARAM] uses a Windows configuration and requires a Wine save path to perform this operation..
'''</summary>
Friend ReadOnly Property frmMain_ErrorNoWineSavePath() As String
Get
Return ResourceManager.GetString("frmMain_ErrorNoWineSavePath", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] uses a relative path and has never been detected on this computer.. ''' Looks up a localized string similar to [PARAM] uses a relative path and has never been detected on this computer..
'''</summary> '''</summary>
@@ -4012,7 +4147,16 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] Wine Prefix: [PARAM]. ''' Looks up a localized string similar to Wine Binary Path: [PARAM].
'''</summary>
Friend ReadOnly Property frmMain_WineBinaryPath() As String
Get
Return ResourceManager.GetString("frmMain_WineBinaryPath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Wine Prefix: [PARAM].
'''</summary> '''</summary>
Friend ReadOnly Property frmMain_WinePrefix() As String Friend ReadOnly Property frmMain_WinePrefix() As String
Get Get
@@ -4021,7 +4165,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] Converted Save Path: [PARAM]. ''' Looks up a localized string similar to Wine Save Path: [PARAM].
'''</summary> '''</summary>
Friend ReadOnly Property frmMain_WineSavePath() As String Friend ReadOnly Property frmMain_WineSavePath() As String
Get Get
@@ -4587,6 +4731,24 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Dark.
'''</summary>
Friend ReadOnly Property frmSettings_cboThemeSelection_Dark() As String
Get
Return ResourceManager.GetString("frmSettings_cboThemeSelection_Dark", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Light.
'''</summary>
Friend ReadOnly Property frmSettings_cboThemeSelection_Light() As String
Get
Return ResourceManager.GetString("frmSettings_cboThemeSelection_Light", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Automatically mark new backups as restored when appropriate. ''' Looks up a localized string similar to Automatically mark new backups as restored when appropriate.
'''</summary> '''</summary>
@@ -4614,6 +4776,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Start automatically on log-in.
'''</summary>
Friend ReadOnly Property frmSettings_chkAutoStart() As String
Get
Return ResourceManager.GetString("frmSettings_chkAutoStart", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Disable backup confirmation. ''' Looks up a localized string similar to Disable backup confirmation.
'''</summary> '''</summary>
@@ -4641,6 +4812,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Disable disk space check prior to backup.
'''</summary>
Friend ReadOnly Property frmSettings_chkDisableDiskSpaceCheck() As String
Get
Return ResourceManager.GetString("frmSettings_chkDisableDiskSpaceCheck", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Disable sync event messages. ''' Looks up a localized string similar to Disable sync event messages.
'''</summary> '''</summary>
@@ -4705,20 +4885,11 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Start to system tray. ''' Looks up a localized string similar to Start minimized.
'''</summary> '''</summary>
Friend ReadOnly Property frmSettings_chkStartToTray() As String Friend ReadOnly Property frmSettings_chkStartMinimized() As String
Get Get
Return ResourceManager.GetString("frmSettings_chkStartToTray", resourceCulture) Return ResourceManager.GetString("frmSettings_chkStartMinimized", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Start with Windows.
'''</summary>
Friend ReadOnly Property frmSettings_chkStartWindows() As String
Get
Return ResourceManager.GetString("frmSettings_chkStartWindows", resourceCulture)
End Get End Get
End Property End Property
@@ -4776,6 +4947,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to An error occured while configuring autostart:[BR][BR][PARAM].
'''</summary>
Friend ReadOnly Property frmSettings_ErrorLinuxAutoStart() As String
Get
Return ResourceManager.GetString("frmSettings_ErrorLinuxAutoStart", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to The custom 7-Zip location [PARAM] does not exist.. ''' Looks up a localized string similar to The custom 7-Zip location [PARAM] does not exist..
'''</summary> '''</summary>
@@ -4956,6 +5136,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Interface.
'''</summary>
Friend ReadOnly Property frmSettings_lstSettings_Interface() As String
Get
Return ResourceManager.GetString("frmSettings_lstSettings_Interface", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Startup. ''' Looks up a localized string similar to Startup.
'''</summary> '''</summary>
@@ -5101,7 +5290,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to The folder you selected does not exist or is not a valid folder.. ''' Looks up a localized string similar to The selected backup location does not exist and could not be created.[BR][BR][PARAM].
'''</summary> '''</summary>
Friend ReadOnly Property frmStartUpWizard_ErrorNoFolderExists() As String Friend ReadOnly Property frmStartUpWizard_ErrorNoFolderExists() As String
Get Get
@@ -5181,6 +5370,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to You cannot return to this step after clicking Next. The Backup Location can be changed any time once Setup is complete..
'''</summary>
Friend ReadOnly Property frmStartUpWizard_lblStep2Warning() As String
Get
Return ResourceManager.GetString("frmStartUpWizard_lblStep2Warning", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Before you can start monitoring for games, they need to be configured so GBM knows what to look for and how to handle them. You can download pre-made configurations from the official list or add them all yourself using the tools below. You can also skip this step for now!. ''' Looks up a localized string similar to Before you can start monitoring for games, they need to be configured so GBM knows what to look for and how to handle them. You can download pre-made configurations from the official list or add them all yourself using the tools below. You can also skip this step for now!.
'''</summary> '''</summary>
@@ -5577,6 +5775,106 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to &amp;Cancel.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_btnCancel() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_btnCancel", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to &amp;Save.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_btnSave() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_btnSave", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The Wine binary path is required.[BR][BR]Clear all fields and save to remove all Wine data for this game..
'''</summary>
Friend ReadOnly Property frmWineConfiguration_ErrorValidationBinaryPath() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_ErrorValidationBinaryPath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The Wine Prefix is required.[BR][BR]Clear all fields and save to remove all Wine data for this game..
'''</summary>
Friend ReadOnly Property frmWineConfiguration_ErrorValidationPrefix() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_ErrorValidationPrefix", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Wine Configuration.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_FormName() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_FormName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Configuration.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_grpWineConfig() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_grpWineConfig", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Binary Path:.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_lblWineBinaryPath() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_lblWineBinaryPath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Prefix:.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_lblWinePrefix() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_lblWinePrefix", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Save Path:.
'''</summary>
Friend ReadOnly Property frmWineConfiguration_lblWineSavePath() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_lblWineSavePath", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Game Backup Monitor automatically updates the Wine configuration for a game each time it is detected. Modifying any of these fields manually is not recommended in most cases.[BR][BR]This warning will only be displayed once..
'''</summary>
Friend ReadOnly Property frmWineConfiguration_WarningSingle() As String
Get
Return ResourceManager.GetString("frmWineConfiguration_WarningSingle", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
'''</summary>
Friend ReadOnly Property GBM_Icon() As System.Drawing.Icon
Get
Dim obj As Object = ResourceManager.GetObject("GBM_Icon", resourceCulture)
Return CType(obj,System.Drawing.Icon)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon). ''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
'''</summary> '''</summary>
@@ -5844,6 +6142,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to The backup folder is a UNC path. The disk space check has been skipped..
'''</summary>
Friend ReadOnly Property mgrBackup_ErrorBackupPathIsUNC() As String
Get
Return ResourceManager.GetString("mgrBackup_ErrorBackupPathIsUNC", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Backup aborted due to lack of disk space.. ''' Looks up a localized string similar to Backup aborted due to lack of disk space..
'''</summary> '''</summary>
@@ -5925,6 +6232,33 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to [PARAM] stores saved games in the Windows registry, accessing the registry requires elevated permissions. Please restart GBM as Administrator to perform this backup..
'''</summary>
Friend ReadOnly Property mgrBackup_ErrorRegBackupElevation() As String
Get
Return ResourceManager.GetString("mgrBackup_ErrorRegBackupElevation", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The backup has failed, please ensure the registry path is correct..
'''</summary>
Friend ReadOnly Property mgrBackup_ErrorRegBackupFailed() As String
Get
Return ResourceManager.GetString("mgrBackup_ErrorRegBackupFailed", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The utility reg.exe could not be located at [PARAM]. The backup cannot continue..
'''</summary>
Friend ReadOnly Property mgrBackup_ErrorRegNotFound() As String
Get
Return ResourceManager.GetString("mgrBackup_ErrorRegNotFound", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to A failure occured while creating a backup sub-folder for [PARAM].[BR][PARAM]. ''' Looks up a localized string similar to A failure occured while creating a backup sub-folder for [PARAM].[BR][PARAM].
'''</summary> '''</summary>
@@ -5934,6 +6268,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to The wine binary could not be located at [PARAM]. The backup cannot continue..
'''</summary>
Friend ReadOnly Property mgrBackup_ErrorWineNotFound() As String
Get
Return ResourceManager.GetString("mgrBackup_ErrorWineNotFound", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Generating SHA-256 hash for [PARAM] backup file.. ''' Looks up a localized string similar to Generating SHA-256 hash for [PARAM] backup file..
'''</summary> '''</summary>
@@ -5997,6 +6340,15 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to Current Folder.
'''</summary>
Friend ReadOnly Property mgrCommon_FolderSelection() As String
Get
Return ResourceManager.GetString("mgrCommon_FolderSelection", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] GB. ''' Looks up a localized string similar to [PARAM] GB.
'''</summary> '''</summary>
@@ -6088,7 +6440,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to Do you want to sync your game identifiers with this export file?[BR][BR]You should only do this if you&apos;re managing your own game configurations. If you use GBM on multiple PCs, please see &quot;Tools&quot; section of the online manual before using this feature.. ''' Looks up a localized string similar to Do you want to sync your game identifiers with this export file?[BR][BR]This tool is provided for very specific situations, please read the &quot;Tools&quot; section of the online manual before using this feature..
'''</summary> '''</summary>
Friend ReadOnly Property mgrMonitorList_ConfirmFileGameIDSync() As String Friend ReadOnly Property mgrMonitorList_ConfirmFileGameIDSync() As String
Get Get
@@ -6097,16 +6449,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to GBM now uses a unique identifier for each game. For the import feature to recognize game configurations from a prior version, they need to use the same identifiers.[BR][BR]Do you want to sync your game identifiers with the official list?[BR][BR]This feature is available anytime from the &quot;Tools&quot; menu. If you use GBM on multiple PCs, please see &quot;Tools&quot; section of the online manual before using this feature.. ''' Looks up a localized string similar to Do you want to sync your game identifiers with the official game list?[BR][BR]This tool is provided for very specific situations, please read the &quot;Tools&quot; section of the online manual before using this feature..
'''</summary>
Friend ReadOnly Property mgrMonitorList_ConfirmInitialOfficialGameIDSync() As String
Get
Return ResourceManager.GetString("mgrMonitorList_ConfirmInitialOfficialGameIDSync", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Do you want to sync your game identifiers with the official game list?[BR][BR]This allows the import feature to recognize game configurations from a prior version. If you use GBM on multiple PCs, please see &quot;Tools&quot; section of the online manual before using this feature..
'''</summary> '''</summary>
Friend ReadOnly Property mgrMonitorList_ConfirmOfficialGameIDSync() As String Friend ReadOnly Property mgrMonitorList_ConfirmOfficialGameIDSync() As String
Get Get
@@ -6259,7 +6602,7 @@ Namespace My.Resources
End Property End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to The backup location [PARAM] is not available.[BR]It may be on an external or network drive that isn&apos;t connected.[BR][BR]Do you want to select another backup location and continue?. ''' Looks up a localized string similar to The backup location [PARAM] is not available.[BR]It may be on an external or network drive that isn&apos;t connected.[BR][BR]Do you want to select another backup location?[BR][BR]Select &quot;No&quot; to quit or &quot;Cancel&quot; to continue waiting for the location to become available..
'''</summary> '''</summary>
Friend ReadOnly Property mgrPath_ConfirmBackupLocation() As String Friend ReadOnly Property mgrPath_ConfirmBackupLocation() As String
Get Get
@@ -6438,6 +6781,33 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to [PARAM] stores saved games in the Windows registry, accessing the registry requires elevated permissions. Please restart GBM as Administrator to restore this backup..
'''</summary>
Friend ReadOnly Property mgrRestore_ErrorRegBackupElevation() As String
Get
Return ResourceManager.GetString("mgrRestore_ErrorRegBackupElevation", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The utility reg.exe could not be located at [PARAM]. The restore cannot continue..
'''</summary>
Friend ReadOnly Property mgrRestore_ErrorRegNotFound() As String
Get
Return ResourceManager.GetString("mgrRestore_ErrorRegNotFound", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The wine binary could not be located at [PARAM]. The restore cannot continue..
'''</summary>
Friend ReadOnly Property mgrRestore_ErrorWineNotFound() As String
Get
Return ResourceManager.GetString("mgrRestore_ErrorWineNotFound", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to [PARAM] has no stored checksum, verification has been skipped.. ''' Looks up a localized string similar to [PARAM] has no stored checksum, verification has been skipped..
'''</summary> '''</summary>
@@ -6546,6 +6916,78 @@ Namespace My.Resources
End Get End Get
End Property End Property
'''<summary>
''' Looks up a localized string similar to 25,25,25.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Dark_Base() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Dark_Base", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 0,0,0.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Dark_BaseSecondary() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Dark_BaseSecondary", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 255,255,255.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Dark_Highlight() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Dark_Highlight", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 0,131,255.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Dark_HighlightSecondary() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Dark_HighlightSecondary", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 240,240,240.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Light_Base() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Light_Base", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 255,255,255.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Light_BaseSecondary() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Light_BaseSecondary", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 0,0,0.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Light_Highlight() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Light_Highlight", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 0,0,0.
'''</summary>
Friend ReadOnly Property mgrThemeEngine_RGB_Light_HighlightSecondary() As String
Get
Return ResourceManager.GetString("mgrThemeEngine_RGB_Light_HighlightSecondary", resourceCulture)
End Get
End Property
'''<summary> '''<summary>
''' Looks up a localized string similar to An error occured exporting the XML data.[BR][BR][PARAM]. ''' Looks up a localized string similar to An error occured exporting the XML data.[BR][BR][PARAM].
'''</summary> '''</summary>
+167 -20
View File
@@ -137,7 +137,7 @@
<value>This will rebuild all databases and shrink them to an optimal size.[BR]This should only be used if your gbm.s3db files are becoming very large.[BR][BR]Do you wish to continue?</value> <value>This will rebuild all databases and shrink them to an optimal size.[BR]This should only be used if your gbm.s3db files are becoming very large.[BR][BR]Do you wish to continue?</value>
</data> </data>
<data name="App_Copyright" xml:space="preserve"> <data name="App_Copyright" xml:space="preserve">
<value>[PARAM] Michael J. Seiferling</value> <value> 2014 - [PARAM] Michael J. Seiferling and Game Backup Monitor contributors</value>
</data> </data>
<data name="frmMain_Exit" xml:space="preserve"> <data name="frmMain_Exit" xml:space="preserve">
<value>Are you sure you want to exit? Your games will no longer be monitored.</value> <value>Are you sure you want to exit? Your games will no longer be monitored.</value>
@@ -460,8 +460,8 @@
<data name="frmGameManager_btnMarkAsRestored" xml:space="preserve"> <data name="frmGameManager_btnMarkAsRestored" xml:space="preserve">
<value>&amp;Mark as Restored</value> <value>&amp;Mark as Restored</value>
</data> </data>
<data name="frmGameManager_btnOpenBackupFile" xml:space="preserve"> <data name="frmGameManager_btnOpenBackup" xml:space="preserve">
<value>&amp;Open Backup File</value> <value>&amp;Open Backup</value>
</data> </data>
<data name="frmGameManager_btnOpenRestorePath" xml:space="preserve"> <data name="frmGameManager_btnOpenRestorePath" xml:space="preserve">
<value>O&amp;pen Restore Path</value> <value>O&amp;pen Restore Path</value>
@@ -553,7 +553,7 @@
<data name="frmGameManager_ErrorNoBackupData" xml:space="preserve"> <data name="frmGameManager_ErrorNoBackupData" xml:space="preserve">
<value>The selected game(s) have no backup data or can't be restored with their current configuration.</value> <value>The selected game(s) have no backup data or can't be restored with their current configuration.</value>
</data> </data>
<data name="frmGameManager_ErrorNoBackupExists" xml:space="preserve"> <data name="frmGameManager_ErrorNoBackupFileExists" xml:space="preserve">
<value>The backup file does not exist.</value> <value>The backup file does not exist.</value>
</data> </data>
<data name="frmGameManager_ErrorNoItems" xml:space="preserve"> <data name="frmGameManager_ErrorNoItems" xml:space="preserve">
@@ -1069,11 +1069,11 @@
<data name="frmSettings_chkShowDetectionTips" xml:space="preserve"> <data name="frmSettings_chkShowDetectionTips" xml:space="preserve">
<value>Show detection notifications</value> <value>Show detection notifications</value>
</data> </data>
<data name="frmSettings_chkStartToTray" xml:space="preserve"> <data name="frmSettings_chkStartMinimized" xml:space="preserve">
<value>Start to system tray</value> <value>Start minimized</value>
</data> </data>
<data name="frmSettings_chkStartWindows" xml:space="preserve"> <data name="frmSettings_chkAutoStart" xml:space="preserve">
<value>Start with Windows</value> <value>Start automatically on log-in</value>
</data> </data>
<data name="frmSettings_chkSuppressBackup" xml:space="preserve"> <data name="frmSettings_chkSuppressBackup" xml:space="preserve">
<value>Ignore sessions shorter than</value> <value>Ignore sessions shorter than</value>
@@ -1136,7 +1136,7 @@
<value>You must select a backup path to continue.</value> <value>You must select a backup path to continue.</value>
</data> </data>
<data name="frmStartUpWizard_ErrorNoFolderExists" xml:space="preserve"> <data name="frmStartUpWizard_ErrorNoFolderExists" xml:space="preserve">
<value>The folder you selected does not exist or is not a valid folder.</value> <value>The selected backup location does not exist and could not be created.[BR][BR][PARAM]</value>
</data> </data>
<data name="frmStartUpWizard_ExistingData" xml:space="preserve"> <data name="frmStartUpWizard_ExistingData" xml:space="preserve">
<value>Existing data was detected in the backup folder and has been imported.</value> <value>Existing data was detected in the backup folder and has been imported.</value>
@@ -1361,7 +1361,7 @@
<value>[PARAM][BR][BR]Do you wish to automatically search for the game path? (Path will be saved)</value> <value>[PARAM][BR][BR]Do you wish to automatically search for the game path? (Path will be saved)</value>
</data> </data>
<data name="mgrPath_ConfirmBackupLocation" xml:space="preserve"> <data name="mgrPath_ConfirmBackupLocation" xml:space="preserve">
<value>The backup location [PARAM] is not available.[BR]It may be on an external or network drive that isn't connected.[BR][BR]Do you want to select another backup location and continue?</value> <value>The backup location [PARAM] is not available.[BR]It may be on an external or network drive that isn't connected.[BR][BR]Do you want to select another backup location?[BR][BR]Select "No" to quit or "Cancel" to continue waiting for the location to become available.</value>
</data> </data>
<data name="mgrPath_ConfirmManualPath" xml:space="preserve"> <data name="mgrPath_ConfirmManualPath" xml:space="preserve">
<value>[PARAM][BR][BR]Do you wish to manually set the game path? (Path will be saved)</value> <value>[PARAM][BR][BR]Do you wish to manually set the game path? (Path will be saved)</value>
@@ -1682,7 +1682,7 @@
<value>You cannot choose a file located outside the current [PARAM] backup folder.</value> <value>You cannot choose a file located outside the current [PARAM] backup folder.</value>
</data> </data>
<data name="frmGameManager_lblLimit" xml:space="preserve"> <data name="frmGameManager_lblLimit" xml:space="preserve">
<value>Backup Limit</value> <value>Backup Limit (0 = Unlimited)</value>
</data> </data>
<data name="mgrBackup_BackupLimitExceeded" xml:space="preserve"> <data name="mgrBackup_BackupLimitExceeded" xml:space="preserve">
<value>[PARAM] was automatically removed.</value> <value>[PARAM] was automatically removed.</value>
@@ -1697,7 +1697,7 @@
<value>This will delete all backup files for [PARAM]. This cannot be undone. [BR][BR]Do you want to continue?</value> <value>This will delete all backup files for [PARAM]. This cannot be undone. [BR][BR]Do you want to continue?</value>
</data> </data>
<data name="frmAddWizard_lblLimit" xml:space="preserve"> <data name="frmAddWizard_lblLimit" xml:space="preserve">
<value>Backup Limit</value> <value>Backup Limit (0 = Unlimited)</value>
</data> </data>
<data name="frmGameManager_Unknown" xml:space="preserve"> <data name="frmGameManager_Unknown" xml:space="preserve">
<value>Unknown</value> <value>Unknown</value>
@@ -2020,9 +2020,6 @@
<data name="frmFilter_FieldGameID" xml:space="preserve"> <data name="frmFilter_FieldGameID" xml:space="preserve">
<value>Game ID</value> <value>Game ID</value>
</data> </data>
<data name="mgrMonitorList_ConfirmInitialOfficialGameIDSync" xml:space="preserve">
<value>GBM now uses a unique identifier for each game. For the import feature to recognize game configurations from a prior version, they need to use the same identifiers.[BR][BR]Do you want to sync your game identifiers with the official list?[BR][BR]This feature is available anytime from the "Tools" menu. If you use GBM on multiple PCs, please see "Tools" section of the online manual before using this feature.</value>
</data>
<data name="mgrMonitorList_ErrorGameIDVerFailure" xml:space="preserve"> <data name="mgrMonitorList_ErrorGameIDVerFailure" xml:space="preserve">
<value>This file cannot be used to sync game indentifiers. It was created with an older version of GBM.</value> <value>This file cannot be used to sync game indentifiers. It was created with an older version of GBM.</value>
</data> </data>
@@ -2030,7 +2027,7 @@
<value>This export file was created with a version of GBM prior to 1.1.5 and may contain incompatible configuration data.[BR][BR]Do you still want to import configurations from this file? (Not Recommended)</value> <value>This export file was created with a version of GBM prior to 1.1.5 and may contain incompatible configuration data.[BR][BR]Do you still want to import configurations from this file? (Not Recommended)</value>
</data> </data>
<data name="mgrMonitorList_ConfirmFileGameIDSync" xml:space="preserve"> <data name="mgrMonitorList_ConfirmFileGameIDSync" xml:space="preserve">
<value>Do you want to sync your game identifiers with this export file?[BR][BR]You should only do this if you're managing your own game configurations. If you use GBM on multiple PCs, please see "Tools" section of the online manual before using this feature.</value> <value>Do you want to sync your game identifiers with this export file?[BR][BR]This tool is provided for very specific situations, please read the "Tools" section of the online manual before using this feature.</value>
</data> </data>
<data name="frmMain_gMonToolsSyncGameID" xml:space="preserve"> <data name="frmMain_gMonToolsSyncGameID" xml:space="preserve">
<value>S&amp;ync Game IDs</value> <value>S&amp;ync Game IDs</value>
@@ -2042,7 +2039,7 @@
<value>&amp;Official List...</value> <value>&amp;Official List...</value>
</data> </data>
<data name="mgrMonitorList_ConfirmOfficialGameIDSync" xml:space="preserve"> <data name="mgrMonitorList_ConfirmOfficialGameIDSync" xml:space="preserve">
<value>Do you want to sync your game identifiers with the official game list?[BR][BR]This allows the import feature to recognize game configurations from a prior version. If you use GBM on multiple PCs, please see "Tools" section of the online manual before using this feature.</value> <value>Do you want to sync your game identifiers with the official game list?[BR][BR]This tool is provided for very specific situations, please read the "Tools" section of the online manual before using this feature.</value>
</data> </data>
<data name="frmSettings_btnResetMessages" xml:space="preserve"> <data name="frmSettings_btnResetMessages" xml:space="preserve">
<value>&amp;Reset Warnings</value> <value>&amp;Reset Warnings</value>
@@ -2204,10 +2201,10 @@
<value>The backup folder [PARAM] cannot be renamed to [PARAM] because a folder with that name already exists.[BR][BR]Do you want to continue and remove the existing folder?</value> <value>The backup folder [PARAM] cannot be renamed to [PARAM] because a folder with that name already exists.[BR][BR]Do you want to continue and remove the existing folder?</value>
</data> </data>
<data name="frmMain_WinePrefix" xml:space="preserve"> <data name="frmMain_WinePrefix" xml:space="preserve">
<value>[PARAM] Wine Prefix: [PARAM]</value> <value>Wine Prefix: [PARAM]</value>
</data> </data>
<data name="frmMain_WineSavePath" xml:space="preserve"> <data name="frmMain_WineSavePath" xml:space="preserve">
<value>[PARAM] Converted Save Path: [PARAM]</value> <value>Wine Save Path: [PARAM]</value>
</data> </data>
<data name="mgrPath_ErrorBuildingWinePath" xml:space="preserve"> <data name="mgrPath_ErrorBuildingWinePath" xml:space="preserve">
<value>An error occured when building a Wine path.[BR][BR][PARAM]</value> <value>An error occured when building a Wine path.[BR][BR][PARAM]</value>
@@ -2264,7 +2261,7 @@
<value>&amp;Windows...</value> <value>&amp;Windows...</value>
</data> </data>
<data name="frmGameManager_WarningWinConfigsInLinux" xml:space="preserve"> <data name="frmGameManager_WarningWinConfigsInLinux" xml:space="preserve">
<value>Official Windows configurations can be used in Linux for games running in Wine or Proton.[BR][BR]You do not need to modify these configurations, GBM will automatically do any required path conversions the first time the game is detected.[BR][BR]This message will only be shown once.</value> <value>Official Windows configurations can be used in Linux for games running in Wine or Proton.[BR][BR]You do not need to modify these configurations, GBM will automatically do any required path conversions when the game is detected.[BR][BR]This message will only be shown once.</value>
</data> </data>
<data name="frmGameManager_ConfirmBackupImportOverwriteSingle" xml:space="preserve"> <data name="frmGameManager_ConfirmBackupImportOverwriteSingle" xml:space="preserve">
<value>Importing this backup file will overwrite the current backup file for [PARAM].[BR][BR]Do you want to continue? This will close the form.</value> <value>Importing this backup file will overwrite the current backup file for [PARAM].[BR][BR]Do you want to continue? This will close the form.</value>
@@ -2281,4 +2278,154 @@
<data name="frmMain_ErrorInvalidMode" xml:space="preserve"> <data name="frmMain_ErrorInvalidMode" xml:space="preserve">
<value>Invalid mode([PARAM]) for command [PARAM].</value> <value>Invalid mode([PARAM]) for command [PARAM].</value>
</data> </data>
<data name="App_LinuxOS" xml:space="preserve">
<value>Linux</value>
</data>
<data name="App_WindowsOS" xml:space="preserve">
<value>Windows</value>
</data>
<data name="frmGameManager_lblOS" xml:space="preserve">
<value>OS:</value>
</data>
<data name="frmGameManager_btnWineConfig" xml:space="preserve">
<value>&amp;Wine Configuration...</value>
</data>
<data name="frmFilter_FieldOS" xml:space="preserve">
<value>OS</value>
</data>
<data name="frmMain_WineBinaryPath" xml:space="preserve">
<value>Wine Binary Path: [PARAM]</value>
</data>
<data name="frmMain_ErrorNoWineSavePath" xml:space="preserve">
<value>[PARAM] uses a Windows configuration and requires a Wine save path to perform this operation.</value>
</data>
<data name="frmWineConfiguration_btnCancel" xml:space="preserve">
<value>&amp;Cancel</value>
</data>
<data name="frmWineConfiguration_btnSave" xml:space="preserve">
<value>&amp;Save</value>
</data>
<data name="frmWineConfiguration_ErrorValidationBinaryPath" xml:space="preserve">
<value>The Wine binary path is required.[BR][BR]Clear all fields and save to remove all Wine data for this game.</value>
</data>
<data name="frmWineConfiguration_ErrorValidationPrefix" xml:space="preserve">
<value>The Wine Prefix is required.[BR][BR]Clear all fields and save to remove all Wine data for this game.</value>
</data>
<data name="frmWineConfiguration_FormName" xml:space="preserve">
<value>Wine Configuration</value>
</data>
<data name="frmWineConfiguration_grpWineConfig" xml:space="preserve">
<value>Configuration</value>
</data>
<data name="frmWineConfiguration_lblWineBinaryPath" xml:space="preserve">
<value>Binary Path:</value>
</data>
<data name="frmWineConfiguration_lblWinePrefix" xml:space="preserve">
<value>Prefix:</value>
</data>
<data name="frmWineConfiguration_lblWineSavePath" xml:space="preserve">
<value>Save Path:</value>
</data>
<data name="frmWineConfiguration_WarningSingle" xml:space="preserve">
<value>Game Backup Monitor automatically updates the Wine configuration for a game each time it is detected. Modifying any of these fields manually is not recommended in most cases.[BR][BR]This warning will only be displayed once.</value>
</data>
<data name="App_ErrorLaunchExternal" xml:space="preserve">
<value>An error occured attempting to launch the application:[BR][BR][PARAM]</value>
</data>
<data name="mgrBackup_ErrorBackupPathIsUNC" xml:space="preserve">
<value>The backup folder is a UNC path. The disk space check has been skipped.</value>
</data>
<data name="frmSettings_chkDisableDiskSpaceCheck" xml:space="preserve">
<value>Disable disk space check prior to backup</value>
</data>
<data name="frmMain_ErrorLinuxAutoStartMissing" xml:space="preserve">
<value>GBM is set to start automatically, but the autostart link is missing. The autostart link has been re-created.</value>
</data>
<data name="frmSettings_ErrorLinuxAutoStart" xml:space="preserve">
<value>An error occured while configuring autostart:[BR][BR][PARAM]</value>
</data>
<data name="mgrBackup_ErrorRegBackupElevation" xml:space="preserve">
<value>[PARAM] stores saved games in the Windows registry, accessing the registry requires elevated permissions. Please restart GBM as Administrator to perform this backup.</value>
</data>
<data name="mgrBackup_ErrorRegBackupFailed" xml:space="preserve">
<value>The backup has failed, please ensure the registry path is correct.</value>
</data>
<data name="mgrBackup_ErrorRegNotFound" xml:space="preserve">
<value>The utility reg.exe could not be located at [PARAM]. The backup cannot continue.</value>
</data>
<data name="mgrBackup_ErrorWineNotFound" xml:space="preserve">
<value>The wine binary could not be located at [PARAM]. The backup cannot continue.</value>
</data>
<data name="mgrRestore_ErrorRegNotFound" xml:space="preserve">
<value>The utility reg.exe could not be located at [PARAM]. The restore cannot continue.</value>
</data>
<data name="mgrRestore_ErrorWineNotFound" xml:space="preserve">
<value>The wine binary could not be located at [PARAM]. The restore cannot continue.</value>
</data>
<data name="mgrRestore_ErrorRegBackupElevation" xml:space="preserve">
<value>[PARAM] stores saved games in the Windows registry, accessing the registry requires elevated permissions. Please restart GBM as Administrator to restore this backup.</value>
</data>
<data name="frmMain_ErrorLinuxAutoStartLinkMissing" xml:space="preserve">
<value>GBM is set to start automatically, but the desktop link is missing. Automatic start has been disabled, please re-install GBM using a package manager or the makefile.</value>
</data>
<data name="mgrCommon_FolderSelection" xml:space="preserve">
<value>Current Folder</value>
</data>
<data name="frmChooseGame_ColumnName" xml:space="preserve">
<value>Name</value>
</data>
<data name="mgrThemeEngine_RGB_Dark_BaseSecondary" xml:space="preserve">
<value>0,0,0</value>
</data>
<data name="frmChooseGame_ColumnTags" xml:space="preserve">
<value>Tags</value>
</data>
<data name="mgrThemeEngine_RGB_Dark_HighlightSecondary" xml:space="preserve">
<value>0,131,255</value>
</data>
<data name="mgrThemeEngine_RGB_Dark_Base" xml:space="preserve">
<value>25,25,25</value>
</data>
<data name="mgrThemeEngine_RGB_Dark_Highlight" xml:space="preserve">
<value>255,255,255</value>
</data>
<data name="mgrThemeEngine_RGB_Light_Base" xml:space="preserve">
<value>240,240,240</value>
</data>
<data name="mgrThemeEngine_RGB_Light_BaseSecondary" xml:space="preserve">
<value>255,255,255</value>
</data>
<data name="mgrThemeEngine_RGB_Light_Highlight" xml:space="preserve">
<value>0,0,0</value>
</data>
<data name="mgrThemeEngine_RGB_Light_HighlightSecondary" xml:space="preserve">
<value>0,0,0</value>
</data>
<data name="frmSettings_lstSettings_Interface" xml:space="preserve">
<value>Interface</value>
</data>
<data name="frmSettings_cboThemeSelection_Dark" xml:space="preserve">
<value>Dark</value>
</data>
<data name="frmSettings_cboThemeSelection_Light" xml:space="preserve">
<value>Light</value>
</data>
<data name="GBM_Icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\resources\gbm.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="frmGameManager_cmsOpenBackupFile" xml:space="preserve">
<value>&amp;File</value>
</data>
<data name="frmGameManager_cmsOpenBackupFolder" xml:space="preserve">
<value>F&amp;older</value>
</data>
<data name="frmGameManager_ErrorNoBackupFolderExists" xml:space="preserve">
<value>The backup folder does not exist.</value>
</data>
<data name="frmAddWizard_Summary_NoLimit" xml:space="preserve">
<value>Unlimited</value>
</data>
<data name="frmStartUpWizard_lblStep2Warning" xml:space="preserve">
<value>You cannot return to this step after clicking Next. The Backup Location can be changed any time once Setup is complete.</value>
</data>
</root> </root>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 926 B

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Some files were not shown because too many files have changed in this diff Show More