Can now select a data storage.
This commit is contained in:
parent
7094ae45d2
commit
c83d69a200
@ -12,6 +12,7 @@ namespace Voile.Storage.Sqlite
|
|||||||
{
|
{
|
||||||
[VoilePlugin]
|
[VoilePlugin]
|
||||||
[VoilePluginId(3)]
|
[VoilePluginId(3)]
|
||||||
|
[DisplayName("SQLite")]
|
||||||
public class SqliteDataStorageFactory : IVoileDataStorageFactory
|
public class SqliteDataStorageFactory : IVoileDataStorageFactory
|
||||||
{
|
{
|
||||||
public IVoileDataStorage CreateDataStorage()
|
public IVoileDataStorage CreateDataStorage()
|
||||||
|
|||||||
625
Voile/FirstRunWizard.Designer.cs
generated
625
Voile/FirstRunWizard.Designer.cs
generated
@ -18,296 +18,332 @@
|
|||||||
components.Dispose();
|
components.Dispose();
|
||||||
}
|
}
|
||||||
base.Dispose(disposing);
|
base.Dispose(disposing);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Windows Form Designer generated code
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Required method for Designer support - do not modify
|
/// Required method for Designer support - do not modify
|
||||||
/// the contents of this method with the code editor.
|
/// the contents of this method with the code editor.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FirstRunWizard));
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FirstRunWizard));
|
||||||
pictureBox1 = new PictureBox();
|
pictureBox1 = new PictureBox();
|
||||||
tabControl1 = new TabControl();
|
tabControl1 = new TabControl();
|
||||||
tabPageWelcome = new TabPage();
|
tabPageWelcome = new TabPage();
|
||||||
label2 = new Label();
|
label2 = new Label();
|
||||||
label1 = new Label();
|
label1 = new Label();
|
||||||
radioButtonAmExpert = new RadioButton();
|
radioButtonAmExpert = new RadioButton();
|
||||||
radioButtonAmBegginer = new RadioButton();
|
radioButtonAmBegginer = new RadioButton();
|
||||||
tabPageLicense = new TabPage();
|
tabPageLicense = new TabPage();
|
||||||
pictureBox2 = new PictureBox();
|
pictureBox2 = new PictureBox();
|
||||||
label4 = new Label();
|
label4 = new Label();
|
||||||
radioButtonNoLicense = new RadioButton();
|
radioButtonNoLicense = new RadioButton();
|
||||||
buttonLoadLicenseFile = new Button();
|
buttonLoadLicenseFile = new Button();
|
||||||
buttonValidateLicense = new Button();
|
buttonValidateLicense = new Button();
|
||||||
textBox1 = new TextBox();
|
textBox1 = new TextBox();
|
||||||
radioButtonHasLicense = new RadioButton();
|
radioButtonHasLicense = new RadioButton();
|
||||||
label3 = new Label();
|
label3 = new Label();
|
||||||
buttonNext = new Button();
|
tabPagePickDataStorage = new TabPage();
|
||||||
buttonBack = new Button();
|
labelDataStorageHint = new Label();
|
||||||
openFileDialogCertificate = new OpenFileDialog();
|
label5 = new Label();
|
||||||
tabPage1 = new TabPage();
|
buttonNext = new Button();
|
||||||
label5 = new Label();
|
buttonBack = new Button();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
openFileDialogCertificate = new OpenFileDialog();
|
||||||
tabControl1.SuspendLayout();
|
tabPageConfigureDataStorage = new TabPage();
|
||||||
tabPageWelcome.SuspendLayout();
|
label6 = new Label();
|
||||||
tabPageLicense.SuspendLayout();
|
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit();
|
tabControl1.SuspendLayout();
|
||||||
tabPage1.SuspendLayout();
|
tabPageWelcome.SuspendLayout();
|
||||||
SuspendLayout();
|
tabPageLicense.SuspendLayout();
|
||||||
//
|
((System.ComponentModel.ISupportInitialize)pictureBox2).BeginInit();
|
||||||
// pictureBox1
|
tabPagePickDataStorage.SuspendLayout();
|
||||||
//
|
tabPageConfigureDataStorage.SuspendLayout();
|
||||||
pictureBox1.Image = Properties.Resources.technlgy;
|
SuspendLayout();
|
||||||
pictureBox1.Location = new Point(12, 12);
|
//
|
||||||
pictureBox1.Name = "pictureBox1";
|
// pictureBox1
|
||||||
pictureBox1.Size = new Size(120, 90);
|
//
|
||||||
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
|
pictureBox1.Image = Properties.Resources.technlgy;
|
||||||
pictureBox1.TabIndex = 0;
|
pictureBox1.Location = new Point(12, 12);
|
||||||
pictureBox1.TabStop = false;
|
pictureBox1.Name = "pictureBox1";
|
||||||
//
|
pictureBox1.Size = new Size(120, 90);
|
||||||
// tabControl1
|
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
|
||||||
//
|
pictureBox1.TabIndex = 0;
|
||||||
tabControl1.Controls.Add(tabPageWelcome);
|
pictureBox1.TabStop = false;
|
||||||
tabControl1.Controls.Add(tabPageLicense);
|
//
|
||||||
tabControl1.Controls.Add(tabPage1);
|
// tabControl1
|
||||||
tabControl1.Location = new Point(138, 12);
|
//
|
||||||
tabControl1.Name = "tabControl1";
|
tabControl1.Controls.Add(tabPageWelcome);
|
||||||
tabControl1.SelectedIndex = 0;
|
tabControl1.Controls.Add(tabPageLicense);
|
||||||
tabControl1.Size = new Size(356, 412);
|
tabControl1.Controls.Add(tabPagePickDataStorage);
|
||||||
tabControl1.TabIndex = 1;
|
tabControl1.Controls.Add(tabPageConfigureDataStorage);
|
||||||
//
|
tabControl1.Location = new Point(138, 12);
|
||||||
// tabPageWelcome
|
tabControl1.Name = "tabControl1";
|
||||||
//
|
tabControl1.SelectedIndex = 0;
|
||||||
tabPageWelcome.Controls.Add(label2);
|
tabControl1.Size = new Size(356, 412);
|
||||||
tabPageWelcome.Controls.Add(label1);
|
tabControl1.TabIndex = 1;
|
||||||
tabPageWelcome.Controls.Add(radioButtonAmExpert);
|
//
|
||||||
tabPageWelcome.Controls.Add(radioButtonAmBegginer);
|
// tabPageWelcome
|
||||||
tabPageWelcome.Location = new Point(4, 24);
|
//
|
||||||
tabPageWelcome.Name = "tabPageWelcome";
|
tabPageWelcome.Controls.Add(label2);
|
||||||
tabPageWelcome.Padding = new Padding(3);
|
tabPageWelcome.Controls.Add(label1);
|
||||||
tabPageWelcome.Size = new Size(348, 384);
|
tabPageWelcome.Controls.Add(radioButtonAmExpert);
|
||||||
tabPageWelcome.TabIndex = 0;
|
tabPageWelcome.Controls.Add(radioButtonAmBegginer);
|
||||||
tabPageWelcome.Text = "Welcome!";
|
tabPageWelcome.Location = new Point(4, 24);
|
||||||
tabPageWelcome.UseVisualStyleBackColor = true;
|
tabPageWelcome.Name = "tabPageWelcome";
|
||||||
//
|
tabPageWelcome.Padding = new Padding(3);
|
||||||
// label2
|
tabPageWelcome.Size = new Size(348, 384);
|
||||||
//
|
tabPageWelcome.TabIndex = 0;
|
||||||
label2.AutoSize = true;
|
tabPageWelcome.Text = "Welcome!";
|
||||||
label2.Location = new Point(6, 3);
|
tabPageWelcome.UseVisualStyleBackColor = true;
|
||||||
label2.Name = "label2";
|
//
|
||||||
label2.Size = new Size(328, 240);
|
// label2
|
||||||
label2.TabIndex = 3;
|
//
|
||||||
label2.Text = resources.GetString("label2.Text");
|
label2.AutoSize = true;
|
||||||
//
|
label2.Location = new Point(6, 3);
|
||||||
// label1
|
label2.Name = "label2";
|
||||||
//
|
label2.Size = new Size(329, 240);
|
||||||
label1.AutoSize = true;
|
label2.TabIndex = 3;
|
||||||
label1.Location = new Point(6, 308);
|
label2.Text = resources.GetString("label2.Text");
|
||||||
label1.Name = "label1";
|
//
|
||||||
label1.Size = new Size(202, 15);
|
// label1
|
||||||
label1.TabIndex = 2;
|
//
|
||||||
label1.Text = "(You can change these options later!)";
|
label1.AutoSize = true;
|
||||||
//
|
label1.Location = new Point(6, 308);
|
||||||
// radioButtonAmExpert
|
label1.Name = "label1";
|
||||||
//
|
label1.Size = new Size(202, 15);
|
||||||
radioButtonAmExpert.AutoSize = true;
|
label1.TabIndex = 2;
|
||||||
radioButtonAmExpert.Location = new Point(6, 271);
|
label1.Text = "(You can change these options later!)";
|
||||||
radioButtonAmExpert.Name = "radioButtonAmExpert";
|
//
|
||||||
radioButtonAmExpert.Size = new Size(299, 34);
|
// radioButtonAmExpert
|
||||||
radioButtonAmExpert.TabIndex = 1;
|
//
|
||||||
radioButtonAmExpert.Text = "I’m an expert. Let me choose my own database and \r\nstorage options.";
|
radioButtonAmExpert.AutoSize = true;
|
||||||
radioButtonAmExpert.UseVisualStyleBackColor = true;
|
radioButtonAmExpert.Location = new Point(6, 271);
|
||||||
radioButtonAmExpert.CheckedChanged += radioButtonAmExpert_CheckedChanged;
|
radioButtonAmExpert.Name = "radioButtonAmExpert";
|
||||||
//
|
radioButtonAmExpert.Size = new Size(298, 34);
|
||||||
// radioButtonAmBegginer
|
radioButtonAmExpert.TabIndex = 1;
|
||||||
//
|
radioButtonAmExpert.Text = "I’m an expert. Let me choose my own database and \r\nstorage options.";
|
||||||
radioButtonAmBegginer.AutoSize = true;
|
radioButtonAmExpert.UseVisualStyleBackColor = true;
|
||||||
radioButtonAmBegginer.Location = new Point(6, 246);
|
radioButtonAmExpert.CheckedChanged += radioButtonAmExpert_CheckedChanged;
|
||||||
radioButtonAmBegginer.Name = "radioButtonAmBegginer";
|
//
|
||||||
radioButtonAmBegginer.Size = new Size(298, 19);
|
// radioButtonAmBegginer
|
||||||
radioButtonAmBegginer.TabIndex = 0;
|
//
|
||||||
radioButtonAmBegginer.Text = "I’m a beginner. Set things up for me automatically. ";
|
radioButtonAmBegginer.AutoSize = true;
|
||||||
radioButtonAmBegginer.UseVisualStyleBackColor = true;
|
radioButtonAmBegginer.Location = new Point(6, 246);
|
||||||
radioButtonAmBegginer.CheckedChanged += radioButtonAmBegginer_CheckedChanged;
|
radioButtonAmBegginer.Name = "radioButtonAmBegginer";
|
||||||
//
|
radioButtonAmBegginer.Size = new Size(298, 19);
|
||||||
// tabPageLicense
|
radioButtonAmBegginer.TabIndex = 0;
|
||||||
//
|
radioButtonAmBegginer.Text = "I’m a beginner. Set things up for me automatically. ";
|
||||||
tabPageLicense.Controls.Add(pictureBox2);
|
radioButtonAmBegginer.UseVisualStyleBackColor = true;
|
||||||
tabPageLicense.Controls.Add(label4);
|
radioButtonAmBegginer.CheckedChanged += radioButtonAmBegginer_CheckedChanged;
|
||||||
tabPageLicense.Controls.Add(radioButtonNoLicense);
|
//
|
||||||
tabPageLicense.Controls.Add(buttonLoadLicenseFile);
|
// tabPageLicense
|
||||||
tabPageLicense.Controls.Add(buttonValidateLicense);
|
//
|
||||||
tabPageLicense.Controls.Add(textBox1);
|
tabPageLicense.Controls.Add(pictureBox2);
|
||||||
tabPageLicense.Controls.Add(radioButtonHasLicense);
|
tabPageLicense.Controls.Add(label4);
|
||||||
tabPageLicense.Controls.Add(label3);
|
tabPageLicense.Controls.Add(radioButtonNoLicense);
|
||||||
tabPageLicense.Location = new Point(4, 24);
|
tabPageLicense.Controls.Add(buttonLoadLicenseFile);
|
||||||
tabPageLicense.Name = "tabPageLicense";
|
tabPageLicense.Controls.Add(buttonValidateLicense);
|
||||||
tabPageLicense.Padding = new Padding(3);
|
tabPageLicense.Controls.Add(textBox1);
|
||||||
tabPageLicense.Size = new Size(348, 384);
|
tabPageLicense.Controls.Add(radioButtonHasLicense);
|
||||||
tabPageLicense.TabIndex = 1;
|
tabPageLicense.Controls.Add(label3);
|
||||||
tabPageLicense.Text = "License";
|
tabPageLicense.Location = new Point(4, 24);
|
||||||
tabPageLicense.UseVisualStyleBackColor = true;
|
tabPageLicense.Name = "tabPageLicense";
|
||||||
//
|
tabPageLicense.Padding = new Padding(3);
|
||||||
// pictureBox2
|
tabPageLicense.Size = new Size(348, 384);
|
||||||
//
|
tabPageLicense.TabIndex = 1;
|
||||||
pictureBox2.Image = Properties.Resources.SETUPAPI_18_1_32x32x4;
|
tabPageLicense.Text = "License";
|
||||||
pictureBox2.Location = new Point(127, 262);
|
tabPageLicense.UseVisualStyleBackColor = true;
|
||||||
pictureBox2.Name = "pictureBox2";
|
//
|
||||||
pictureBox2.Size = new Size(32, 32);
|
// pictureBox2
|
||||||
pictureBox2.TabIndex = 7;
|
//
|
||||||
pictureBox2.TabStop = false;
|
pictureBox2.Image = Properties.Resources.SETUPAPI_18_1_32x32x4;
|
||||||
pictureBox2.Click += pictureBox2_Click;
|
pictureBox2.Location = new Point(127, 262);
|
||||||
//
|
pictureBox2.Name = "pictureBox2";
|
||||||
// label4
|
pictureBox2.Size = new Size(32, 32);
|
||||||
//
|
pictureBox2.TabIndex = 7;
|
||||||
label4.AutoSize = true;
|
pictureBox2.TabStop = false;
|
||||||
label4.Location = new Point(22, 344);
|
pictureBox2.Click += pictureBox2_Click;
|
||||||
label4.Name = "label4";
|
//
|
||||||
label4.Size = new Size(299, 30);
|
// label4
|
||||||
label4.TabIndex = 6;
|
//
|
||||||
label4.Text = "(You can also change between Licensed and Shareware \r\nmode later!)";
|
label4.AutoSize = true;
|
||||||
//
|
label4.Location = new Point(22, 344);
|
||||||
// radioButtonNoLicense
|
label4.Name = "label4";
|
||||||
//
|
label4.Size = new Size(299, 30);
|
||||||
radioButtonNoLicense.AutoSize = true;
|
label4.TabIndex = 6;
|
||||||
radioButtonNoLicense.Location = new Point(6, 307);
|
label4.Text = "(You can also change between Licensed and Shareware \r\nmode later!)";
|
||||||
radioButtonNoLicense.Name = "radioButtonNoLicense";
|
//
|
||||||
radioButtonNoLicense.Size = new Size(309, 34);
|
// radioButtonNoLicense
|
||||||
radioButtonNoLicense.TabIndex = 5;
|
//
|
||||||
radioButtonNoLicense.Text = "No license yet — I’d like to use the shareware version, \r\nor request a license later.";
|
radioButtonNoLicense.AutoSize = true;
|
||||||
radioButtonNoLicense.UseVisualStyleBackColor = true;
|
radioButtonNoLicense.Location = new Point(6, 307);
|
||||||
radioButtonNoLicense.CheckedChanged += radioButtonNoLicense_CheckedChanged;
|
radioButtonNoLicense.Name = "radioButtonNoLicense";
|
||||||
//
|
radioButtonNoLicense.Size = new Size(309, 34);
|
||||||
// buttonLoadLicenseFile
|
radioButtonNoLicense.TabIndex = 5;
|
||||||
//
|
radioButtonNoLicense.Text = "No license yet — I’d like to use the shareware version, \r\nor request a license later.";
|
||||||
buttonLoadLicenseFile.Enabled = false;
|
radioButtonNoLicense.UseVisualStyleBackColor = true;
|
||||||
buttonLoadLicenseFile.Location = new Point(246, 262);
|
radioButtonNoLicense.CheckedChanged += radioButtonNoLicense_CheckedChanged;
|
||||||
buttonLoadLicenseFile.Name = "buttonLoadLicenseFile";
|
//
|
||||||
buttonLoadLicenseFile.Size = new Size(75, 39);
|
// buttonLoadLicenseFile
|
||||||
buttonLoadLicenseFile.TabIndex = 4;
|
//
|
||||||
buttonLoadLicenseFile.Text = "Load License File";
|
buttonLoadLicenseFile.Enabled = false;
|
||||||
buttonLoadLicenseFile.UseVisualStyleBackColor = true;
|
buttonLoadLicenseFile.Location = new Point(246, 262);
|
||||||
buttonLoadLicenseFile.Click += buttonLoadLicenseFile_Click;
|
buttonLoadLicenseFile.Name = "buttonLoadLicenseFile";
|
||||||
//
|
buttonLoadLicenseFile.Size = new Size(75, 39);
|
||||||
// buttonValidateLicense
|
buttonLoadLicenseFile.TabIndex = 4;
|
||||||
//
|
buttonLoadLicenseFile.Text = "Load License File";
|
||||||
buttonValidateLicense.Enabled = false;
|
buttonLoadLicenseFile.UseVisualStyleBackColor = true;
|
||||||
buttonValidateLicense.Location = new Point(165, 262);
|
buttonLoadLicenseFile.Click += buttonLoadLicenseFile_Click;
|
||||||
buttonValidateLicense.Name = "buttonValidateLicense";
|
//
|
||||||
buttonValidateLicense.Size = new Size(75, 39);
|
// buttonValidateLicense
|
||||||
buttonValidateLicense.TabIndex = 3;
|
//
|
||||||
buttonValidateLicense.Text = "Validate License";
|
buttonValidateLicense.Enabled = false;
|
||||||
buttonValidateLicense.UseVisualStyleBackColor = true;
|
buttonValidateLicense.Location = new Point(165, 262);
|
||||||
buttonValidateLicense.Click += buttonValidateLicense_Click;
|
buttonValidateLicense.Name = "buttonValidateLicense";
|
||||||
//
|
buttonValidateLicense.Size = new Size(75, 39);
|
||||||
// textBox1
|
buttonValidateLicense.TabIndex = 3;
|
||||||
//
|
buttonValidateLicense.Text = "Validate License";
|
||||||
textBox1.Enabled = false;
|
buttonValidateLicense.UseVisualStyleBackColor = true;
|
||||||
textBox1.Location = new Point(17, 233);
|
buttonValidateLicense.Click += buttonValidateLicense_Click;
|
||||||
textBox1.Name = "textBox1";
|
//
|
||||||
textBox1.Size = new Size(304, 23);
|
// textBox1
|
||||||
textBox1.TabIndex = 2;
|
//
|
||||||
//
|
textBox1.Enabled = false;
|
||||||
// radioButtonHasLicense
|
textBox1.Location = new Point(17, 233);
|
||||||
//
|
textBox1.Name = "textBox1";
|
||||||
radioButtonHasLicense.AutoSize = true;
|
textBox1.Size = new Size(304, 23);
|
||||||
radioButtonHasLicense.Location = new Point(3, 208);
|
textBox1.TabIndex = 2;
|
||||||
radioButtonHasLicense.Name = "radioButtonHasLicense";
|
//
|
||||||
radioButtonHasLicense.Size = new Size(189, 19);
|
// radioButtonHasLicense
|
||||||
radioButtonHasLicense.TabIndex = 1;
|
//
|
||||||
radioButtonHasLicense.Text = "Yes, I have a license file to load.";
|
radioButtonHasLicense.AutoSize = true;
|
||||||
radioButtonHasLicense.UseVisualStyleBackColor = true;
|
radioButtonHasLicense.Location = new Point(3, 208);
|
||||||
radioButtonHasLicense.CheckedChanged += radioButton3_CheckedChanged;
|
radioButtonHasLicense.Name = "radioButtonHasLicense";
|
||||||
//
|
radioButtonHasLicense.Size = new Size(189, 19);
|
||||||
// label3
|
radioButtonHasLicense.TabIndex = 1;
|
||||||
//
|
radioButtonHasLicense.Text = "Yes, I have a license file to load.";
|
||||||
label3.AutoSize = true;
|
radioButtonHasLicense.UseVisualStyleBackColor = true;
|
||||||
label3.Location = new Point(6, 3);
|
radioButtonHasLicense.CheckedChanged += radioButton3_CheckedChanged;
|
||||||
label3.Name = "label3";
|
//
|
||||||
label3.Size = new Size(337, 120);
|
// label3
|
||||||
label3.TabIndex = 0;
|
//
|
||||||
label3.Text = resources.GetString("label3.Text");
|
label3.AutoSize = true;
|
||||||
//
|
label3.Location = new Point(6, 3);
|
||||||
// buttonNext
|
label3.Name = "label3";
|
||||||
//
|
label3.Size = new Size(337, 120);
|
||||||
buttonNext.Enabled = false;
|
label3.TabIndex = 0;
|
||||||
buttonNext.Location = new Point(419, 430);
|
label3.Text = resources.GetString("label3.Text");
|
||||||
buttonNext.Name = "buttonNext";
|
//
|
||||||
buttonNext.Size = new Size(75, 23);
|
// tabPagePickDataStorage
|
||||||
buttonNext.TabIndex = 2;
|
//
|
||||||
buttonNext.Text = "Next >";
|
tabPagePickDataStorage.Controls.Add(labelDataStorageHint);
|
||||||
buttonNext.UseVisualStyleBackColor = true;
|
tabPagePickDataStorage.Controls.Add(label5);
|
||||||
buttonNext.Click += buttonNext_Click;
|
tabPagePickDataStorage.Location = new Point(4, 24);
|
||||||
//
|
tabPagePickDataStorage.Name = "tabPagePickDataStorage";
|
||||||
// buttonBack
|
tabPagePickDataStorage.Size = new Size(348, 384);
|
||||||
//
|
tabPagePickDataStorage.TabIndex = 2;
|
||||||
buttonBack.Enabled = false;
|
tabPagePickDataStorage.Text = "Pick Data Storage";
|
||||||
buttonBack.Location = new Point(338, 430);
|
tabPagePickDataStorage.UseVisualStyleBackColor = true;
|
||||||
buttonBack.Name = "buttonBack";
|
//
|
||||||
buttonBack.Size = new Size(75, 23);
|
// labelDataStorageHint
|
||||||
buttonBack.TabIndex = 3;
|
//
|
||||||
buttonBack.Text = "< Back";
|
labelDataStorageHint.AutoSize = true;
|
||||||
buttonBack.UseVisualStyleBackColor = true;
|
labelDataStorageHint.Location = new Point(3, 165);
|
||||||
//
|
labelDataStorageHint.Name = "labelDataStorageHint";
|
||||||
// openFileDialogCertificate
|
labelDataStorageHint.Size = new Size(124, 15);
|
||||||
//
|
labelDataStorageHint.TabIndex = 1;
|
||||||
openFileDialogCertificate.DefaultExt = "cer";
|
labelDataStorageHint.Text = "DATA_STORAGE_HINT";
|
||||||
openFileDialogCertificate.FileName = "openFileDialog1";
|
//
|
||||||
openFileDialogCertificate.Filter = "X.509 Certificate (*.cer)|*.cer";
|
// label5
|
||||||
openFileDialogCertificate.Title = "Open Voile License File";
|
//
|
||||||
//
|
label5.AutoSize = true;
|
||||||
// tabPage1
|
label5.Location = new Point(3, 0);
|
||||||
//
|
label5.Name = "label5";
|
||||||
tabPage1.Controls.Add(label5);
|
label5.Size = new Size(347, 165);
|
||||||
tabPage1.Location = new Point(4, 24);
|
label5.TabIndex = 0;
|
||||||
tabPage1.Name = "tabPage1";
|
label5.Text = resources.GetString("label5.Text");
|
||||||
tabPage1.Size = new Size(348, 384);
|
//
|
||||||
tabPage1.TabIndex = 2;
|
// buttonNext
|
||||||
tabPage1.Text = "Pick Data Storage";
|
//
|
||||||
tabPage1.UseVisualStyleBackColor = true;
|
buttonNext.Enabled = false;
|
||||||
//
|
buttonNext.Location = new Point(419, 430);
|
||||||
// label5
|
buttonNext.Name = "buttonNext";
|
||||||
//
|
buttonNext.Size = new Size(75, 23);
|
||||||
label5.AutoSize = true;
|
buttonNext.TabIndex = 2;
|
||||||
label5.Location = new Point(3, 0);
|
buttonNext.Text = "Next >";
|
||||||
label5.Name = "label5";
|
buttonNext.UseVisualStyleBackColor = true;
|
||||||
label5.Size = new Size(347, 165);
|
buttonNext.Click += buttonNext_Click;
|
||||||
label5.TabIndex = 0;
|
//
|
||||||
label5.Text = resources.GetString("label5.Text");
|
// buttonBack
|
||||||
//
|
//
|
||||||
// FirstRunWizard
|
buttonBack.Enabled = false;
|
||||||
//
|
buttonBack.Location = new Point(338, 430);
|
||||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
buttonBack.Name = "buttonBack";
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
buttonBack.Size = new Size(75, 23);
|
||||||
ClientSize = new Size(502, 465);
|
buttonBack.TabIndex = 3;
|
||||||
Controls.Add(buttonBack);
|
buttonBack.Text = "< Back";
|
||||||
Controls.Add(buttonNext);
|
buttonBack.UseVisualStyleBackColor = true;
|
||||||
Controls.Add(tabControl1);
|
//
|
||||||
Controls.Add(pictureBox1);
|
// openFileDialogCertificate
|
||||||
FormBorderStyle = FormBorderStyle.FixedSingle;
|
//
|
||||||
MaximizeBox = false;
|
openFileDialogCertificate.DefaultExt = "cer";
|
||||||
MinimizeBox = false;
|
openFileDialogCertificate.FileName = "openFileDialog1";
|
||||||
Name = "FirstRunWizard";
|
openFileDialogCertificate.Filter = "X.509 Certificate (*.cer)|*.cer";
|
||||||
ShowIcon = false;
|
openFileDialogCertificate.Title = "Open Voile License File";
|
||||||
Text = "Voile - First Run Wizard";
|
//
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
// tabPageConfigureDataStorage
|
||||||
tabControl1.ResumeLayout(false);
|
//
|
||||||
tabPageWelcome.ResumeLayout(false);
|
tabPageConfigureDataStorage.Controls.Add(label6);
|
||||||
tabPageWelcome.PerformLayout();
|
tabPageConfigureDataStorage.Location = new Point(4, 24);
|
||||||
tabPageLicense.ResumeLayout(false);
|
tabPageConfigureDataStorage.Name = "tabPageConfigureDataStorage";
|
||||||
tabPageLicense.PerformLayout();
|
tabPageConfigureDataStorage.Size = new Size(348, 384);
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit();
|
tabPageConfigureDataStorage.TabIndex = 3;
|
||||||
tabPage1.ResumeLayout(false);
|
tabPageConfigureDataStorage.Text = "Configure Date Storage";
|
||||||
tabPage1.PerformLayout();
|
tabPageConfigureDataStorage.UseVisualStyleBackColor = true;
|
||||||
ResumeLayout(false);
|
//
|
||||||
}
|
// label6
|
||||||
|
//
|
||||||
#endregion
|
label6.AutoSize = true;
|
||||||
|
label6.Location = new Point(3, 0);
|
||||||
private PictureBox pictureBox1;
|
label6.Name = "label6";
|
||||||
|
label6.Size = new Size(38, 15);
|
||||||
|
label6.TabIndex = 0;
|
||||||
|
label6.Text = "label6";
|
||||||
|
//
|
||||||
|
// FirstRunWizard
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
ClientSize = new Size(502, 465);
|
||||||
|
Controls.Add(buttonBack);
|
||||||
|
Controls.Add(buttonNext);
|
||||||
|
Controls.Add(tabControl1);
|
||||||
|
Controls.Add(pictureBox1);
|
||||||
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||||
|
MaximizeBox = false;
|
||||||
|
MinimizeBox = false;
|
||||||
|
Name = "FirstRunWizard";
|
||||||
|
ShowIcon = false;
|
||||||
|
Text = "Voile - First Run Wizard";
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
||||||
|
tabControl1.ResumeLayout(false);
|
||||||
|
tabPageWelcome.ResumeLayout(false);
|
||||||
|
tabPageWelcome.PerformLayout();
|
||||||
|
tabPageLicense.ResumeLayout(false);
|
||||||
|
tabPageLicense.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBox2).EndInit();
|
||||||
|
tabPagePickDataStorage.ResumeLayout(false);
|
||||||
|
tabPagePickDataStorage.PerformLayout();
|
||||||
|
tabPageConfigureDataStorage.ResumeLayout(false);
|
||||||
|
tabPageConfigureDataStorage.PerformLayout();
|
||||||
|
ResumeLayout(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private PictureBox pictureBox1;
|
||||||
private TabControl tabControl1;
|
private TabControl tabControl1;
|
||||||
private TabPage tabPageWelcome;
|
private TabPage tabPageWelcome;
|
||||||
private TabPage tabPageLicense;
|
private TabPage tabPageLicense;
|
||||||
@ -326,7 +362,10 @@
|
|||||||
private Label label4;
|
private Label label4;
|
||||||
private PictureBox pictureBox2;
|
private PictureBox pictureBox2;
|
||||||
private OpenFileDialog openFileDialogCertificate;
|
private OpenFileDialog openFileDialogCertificate;
|
||||||
private TabPage tabPage1;
|
private TabPage tabPagePickDataStorage;
|
||||||
private Label label5;
|
private Label label5;
|
||||||
}
|
private Label labelDataStorageHint;
|
||||||
|
private TabPage tabPageConfigureDataStorage;
|
||||||
|
private Label label6;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -33,8 +33,10 @@ namespace Voile
|
|||||||
private int licenseState;
|
private int licenseState;
|
||||||
private X509Certificate licenseCertificate;
|
private X509Certificate licenseCertificate;
|
||||||
private bool sharewareMode;
|
private bool sharewareMode;
|
||||||
|
private VoilePluginInfo selectedDataStorage;
|
||||||
|
|
||||||
private bool dataStorageRadioButtonsGenerated;
|
|
||||||
|
|
||||||
|
|
||||||
public void DisplayTabPage(int target, bool isGoingBack = false)
|
public void DisplayTabPage(int target, bool isGoingBack = false)
|
||||||
{
|
{
|
||||||
@ -113,22 +115,76 @@ namespace Voile
|
|||||||
buttonNext.Enabled = (sharewareMode) | (licenseState == 6);
|
buttonNext.Enabled = (sharewareMode) | (licenseState == 6);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
labelDataStorageHint.Text = " ";
|
||||||
if (!dataStorageRadioButtonsGenerated)
|
if (!dataStorageRadioButtonsGenerated)
|
||||||
GenerateDataStorageRadioButtons();
|
GenerateDataStorageRadioButtons();
|
||||||
|
|
||||||
|
//TODO: Hier zusätzlich Lizenzvalidierung einfügen.
|
||||||
|
buttonNext.Enabled = selectedDataStorage != null;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
MessageBox.Show("Could not find handler for the current tab page.");
|
MessageBox.Show("Could not find handler for the current tab page.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool dataStorageRadioButtonsGenerated;
|
||||||
|
private RadioButton[] dataStorageRadioButtons;
|
||||||
private void GenerateDataStorageRadioButtons()
|
private void GenerateDataStorageRadioButtons()
|
||||||
{
|
{
|
||||||
VoilePluginManager pluginManager = VoilePluginManager.GetInstance();
|
VoilePluginManager pluginManager = VoilePluginManager.GetInstance();
|
||||||
IReadOnlyList<VoilePluginInfo> dataStoragePlugins = pluginManager.GetDataStorages();
|
IReadOnlyList<VoilePluginInfo> dataStoragePlugins = pluginManager.GetDataStorages();
|
||||||
//TODO: Finish generating the radio buttons for the data storage.
|
dataStorageRadioButtons = new RadioButton[dataStoragePlugins.Count];
|
||||||
}
|
|
||||||
|
|
||||||
|
int top = labelDataStorageHint.Top;
|
||||||
|
top += labelDataStorageHint.Height;
|
||||||
|
|
||||||
|
int left = labelDataStorageHint.Left;
|
||||||
|
|
||||||
|
for (int i = 0; i < dataStorageRadioButtons.Length; i++)
|
||||||
|
{
|
||||||
|
RadioButton childRadioButton = new RadioButton();
|
||||||
|
childRadioButton.Parent = tabPagePickDataStorage;
|
||||||
|
|
||||||
|
if (dataStoragePlugins[i].Incomplete)
|
||||||
|
childRadioButton.Enabled = false;
|
||||||
|
|
||||||
|
string radioButtonLabel = dataStoragePlugins[i].DisplayName;
|
||||||
|
if (dataStoragePlugins[i].NeededEntitlement.HasValue)
|
||||||
|
radioButtonLabel += " (needs license)";
|
||||||
|
childRadioButton.AutoSize = true;
|
||||||
|
childRadioButton.Text = radioButtonLabel;
|
||||||
|
|
||||||
|
if (selectedDataStorage != null)
|
||||||
|
childRadioButton.Checked = (selectedDataStorage.Id == dataStoragePlugins[i].Id);
|
||||||
|
|
||||||
|
childRadioButton.Top = top;
|
||||||
|
childRadioButton.Left = left;
|
||||||
|
childRadioButton.Tag = dataStoragePlugins[i];
|
||||||
|
|
||||||
|
top += childRadioButton.Height;
|
||||||
|
|
||||||
|
dataStorageRadioButtons[i] = childRadioButton;
|
||||||
|
dataStorageRadioButtons[i].CheckedChanged += OnDataStrorageSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
dataStorageRadioButtonsGenerated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDataStrorageSelected(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RadioButton senderUnboxed = sender as RadioButton;
|
||||||
|
if (senderUnboxed == null)
|
||||||
|
throw new Voile.Common.VoileException("Could not unbox sender.");
|
||||||
|
|
||||||
|
VoilePluginInfo pluginInfo = senderUnboxed.Tag as VoilePluginInfo;
|
||||||
|
if (pluginInfo == null)
|
||||||
|
throw new Common.VoileException("Could not unbox plugin info");
|
||||||
|
|
||||||
|
selectedDataStorage = pluginInfo;
|
||||||
|
RefreshView();
|
||||||
|
}
|
||||||
|
|
||||||
private void radioButton3_CheckedChanged(object sender, EventArgs e)
|
private void radioButton3_CheckedChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
RefreshView();
|
RefreshView();
|
||||||
|
|||||||
@ -1,164 +1,164 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
various data types are done through the TypeConverter classes
|
various data types are done through the TypeConverter classes
|
||||||
associated with the data types.
|
associated with the data types.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">2.0</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, 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="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="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<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>
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
<comment>This is a comment</comment>
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
name/value pairs.
|
name/value pairs.
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
Each data row contains a name, and value. The row also contains a
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
text/value conversion through the TypeConverter architecture.
|
text/value conversion through the TypeConverter architecture.
|
||||||
Classes that don't support this are serialized and stored with the
|
Classes that don't support this are serialized and stored with the
|
||||||
mimetype set.
|
mimetype set.
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
The mimetype is used for serialized objects, and tells the
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
read any of the formats listed below.
|
read any of the formats listed below.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
value : The object must be serialized into a byte array
|
value : The object must be serialized into a byte array
|
||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: 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: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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
<xsd:element name="metadata">
|
<xsd:element name="metadata">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
<xsd:attribute ref="xml:space" />
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="assembly">
|
<xsd:element name="assembly">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="data">
|
<xsd:element name="data">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<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:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
<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="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
<xsd:attribute ref="xml:space" />
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="resheader">
|
<xsd:element name="resheader">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
</xsd:choice>
|
</xsd:choice>
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
<resheader name="resmimetype">
|
<resheader name="resmimetype">
|
||||||
<value>text/microsoft-resx</value>
|
<value>text/microsoft-resx</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="version">
|
<resheader name="version">
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="label5.Text" xml:space="preserve">
|
<data name="label2.Text" xml:space="preserve">
|
||||||
<value>Great — let’s choose where Voile should store its
|
<value>Welcome to Voile!
|
||||||
structured data.
|
|
||||||
|
It looks like you're starting Voile for the first time.
|
||||||
Blindscan results, DVB table contents, and historical
|
Voile helps you catalogue and analyze your Transport Stream
|
||||||
scan information will all be kept in the storage option you select
|
(TS) recordings in a clear and organized way.
|
||||||
below. Since you’re using Expert Mode, you have full control
|
|
||||||
over the database backend. (In Beginner Mode, Voile would
|
To store information about and manage your recordings
|
||||||
simply use SQLite automatically.)
|
efficiently, Voile uses a database. If you also want Voile
|
||||||
|
to extract and save embedded files from your streams,
|
||||||
Feel free to pick the option that best fits your workflow or
|
it can use a simple storage folder for that too.
|
||||||
existing infrastructure.</value>
|
|
||||||
</data>
|
No need to worry about the technical details.
|
||||||
<data name="label2.Text" xml:space="preserve">
|
If you're not familiar with databases, Voile can set everything
|
||||||
<value>Welcome to Voile!
|
up automatically so you can start using the app right away.
|
||||||
|
|
||||||
It looks like you're starting Voile for the first time.
|
How would you like to continue?</value>
|
||||||
Voile helps you catalogue and analyze your Transport Stream
|
</data>
|
||||||
(TS) recordings in a clear and organized way.
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Before we continue, let’s take a moment to set up your license.
|
||||||
To store information about and manage your recordings
|
|
||||||
efficiently, Voile uses a database. If you also want Voile
|
Voile is available as shareware, which means you can use it
|
||||||
to extract and save embedded files from your streams,
|
for free for personal, non‑commercial projects. If you’re using
|
||||||
it can use a simple storage folder for that too.
|
Voile in a professional setting — or if you’d simply like
|
||||||
|
to support the ongoing development — you can activate
|
||||||
No need to worry about the technical details.
|
a license. Some advanced features also become available
|
||||||
If you're not familiar with databases, Voile can set everything
|
once a license is installed.</value>
|
||||||
up automatically so you can start using the app right away.
|
</data>
|
||||||
|
<data name="label5.Text" xml:space="preserve">
|
||||||
How would you like to continue?</value>
|
<value>Great — let’s choose where Voile should store its
|
||||||
</data>
|
structured data.
|
||||||
<data name="label3.Text" xml:space="preserve">
|
|
||||||
<value>Before we continue, let’s take a moment to set up your license.
|
Blindscan results, DVB table contents, and historical
|
||||||
|
scan information will all be kept in the storage option you select
|
||||||
Voile is available as shareware, which means you can use it
|
below. Since you’re using Expert Mode, you have full control
|
||||||
for free for personal, non‑commercial projects. If you’re using
|
over the database backend. (In Beginner Mode, Voile would
|
||||||
Voile in a professional setting — or if you’d simply like
|
simply use SQLite automatically.)
|
||||||
to support the ongoing development — you can activate
|
|
||||||
a license. Some advanced features also become available
|
Feel free to pick the option that best fits your workflow or
|
||||||
once a license is installed.</value>
|
existing infrastructure.</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="openFileDialogCertificate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="openFileDialogCertificate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
Loading…
x
Reference in New Issue
Block a user