diff --git a/Rapr/DSEForm.Designer.cs b/Rapr/DSEForm.Designer.cs index 99dd774..cf9f75f 100644 --- a/Rapr/DSEForm.Designer.cs +++ b/Rapr/DSEForm.Designer.cs @@ -26,6 +26,7 @@ private void InitializeComponent() this.ctxMenuSelectAll = new System.Windows.Forms.ToolStripMenuItem(); this.ctxMenuInvertSelection = new System.Windows.Forms.ToolStripMenuItem(); this.ctxMenuSelectOldDrivers = new System.Windows.Forms.ToolStripMenuItem(); + this.ctxMenuSelectUnusedDrivers = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.ctxMenuOpenFolder = new System.Windows.Forms.ToolStripMenuItem(); this.ctxMenuCopyFolderPath = new System.Windows.Forms.ToolStripMenuItem(); @@ -44,6 +45,7 @@ private void InitializeComponent() this.gbOptions = new System.Windows.Forms.GroupBox(); this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); this.buttonSelectOldDrivers = new System.Windows.Forms.Button(); + this.buttonSelectUnusedDrivers = new System.Windows.Forms.Button(); this.buttonExportDrivers = new System.Windows.Forms.Button(); this.buttonExportAllDrivers = new System.Windows.Forms.Button(); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); @@ -124,6 +126,7 @@ private void InitializeComponent() this.ctxMenuSelectAll, this.ctxMenuInvertSelection, this.ctxMenuSelectOldDrivers, + this.ctxMenuSelectUnusedDrivers, this.toolStripSeparator1, this.ctxMenuOpenDeviceProperties, this.ctxMenuOpenFolder, @@ -163,6 +166,13 @@ private void InitializeComponent() this.ctxMenuSelectOldDrivers.Text = global::Rapr.Lang.Language.Context_Select_Old; this.ctxMenuSelectOldDrivers.Click += new System.EventHandler(this.CtxMenuSelectOldDrivers_Click); // + // ctxMenuSelectUnusedDrivers + // + this.ctxMenuSelectUnusedDrivers.Name = "CtxMenuSelectUnusedDrivers"; + this.ctxMenuSelectUnusedDrivers.Size = new System.Drawing.Size(188, 22); + this.ctxMenuSelectUnusedDrivers.Text = global::Rapr.Lang.Language.Context_Select_Unused; + this.ctxMenuSelectUnusedDrivers.Click += new System.EventHandler(this.CtxMenuSelectUnusedDrivers_Click); + // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; @@ -312,6 +322,7 @@ private void InitializeComponent() this.flowLayoutPanel1.Controls.Add(this.buttonDeleteDriver); this.flowLayoutPanel1.Controls.Add(this.cbForceDeletion); this.flowLayoutPanel1.Controls.Add(this.buttonSelectOldDrivers); + this.flowLayoutPanel1.Controls.Add(this.buttonSelectUnusedDrivers); this.flowLayoutPanel1.Controls.Add(this.buttonExportDrivers); this.flowLayoutPanel1.Controls.Add(this.buttonExportAllDrivers); this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; @@ -334,14 +345,26 @@ private void InitializeComponent() this.buttonSelectOldDrivers.UseVisualStyleBackColor = true; this.buttonSelectOldDrivers.Click += new System.EventHandler(this.ButtonSelectOldDrivers_Click); // + // buttonSelectUnusedDrivers + // + this.buttonSelectUnusedDrivers.AutoSize = true; + this.buttonSelectUnusedDrivers.Dock = System.Windows.Forms.DockStyle.Fill; + this.buttonSelectUnusedDrivers.Location = new System.Drawing.Point(9, 171); + this.buttonSelectUnusedDrivers.Name = "buttonSelectUnusedDrivers"; + this.buttonSelectUnusedDrivers.Size = new System.Drawing.Size(124, 23); + this.buttonSelectUnusedDrivers.TabIndex = 6; + this.buttonSelectUnusedDrivers.Text = global::Rapr.Lang.Language.Button_Select_Unused; + this.buttonSelectUnusedDrivers.UseVisualStyleBackColor = true; + this.buttonSelectUnusedDrivers.Click += new System.EventHandler(this.ButtonSelectUnusedDrivers_Click); + // // buttonExportDrivers // this.buttonExportDrivers.AutoSize = true; this.buttonExportDrivers.Dock = System.Windows.Forms.DockStyle.Fill; - this.buttonExportDrivers.Location = new System.Drawing.Point(9, 171); + this.buttonExportDrivers.Location = new System.Drawing.Point(9, 200); this.buttonExportDrivers.Name = "buttonExportDrivers"; this.buttonExportDrivers.Size = new System.Drawing.Size(124, 23); - this.buttonExportDrivers.TabIndex = 6; + this.buttonExportDrivers.TabIndex = 7; this.buttonExportDrivers.Text = global::Rapr.Lang.Language.Button_Export_Drivers; this.buttonExportDrivers.UseVisualStyleBackColor = true; this.buttonExportDrivers.Click += new System.EventHandler(ButtonExportDrivers_Click); @@ -350,10 +373,10 @@ private void InitializeComponent() // this.buttonExportAllDrivers.AutoSize = true; this.buttonExportAllDrivers.Dock = System.Windows.Forms.DockStyle.Fill; - this.buttonExportAllDrivers.Location = new System.Drawing.Point(9, 171); + this.buttonExportAllDrivers.Location = new System.Drawing.Point(9, 229); this.buttonExportAllDrivers.Name = "buttonExportAllDrivers"; this.buttonExportAllDrivers.Size = new System.Drawing.Size(124, 23); - this.buttonExportAllDrivers.TabIndex = 7; + this.buttonExportAllDrivers.TabIndex = 8; this.buttonExportAllDrivers.Text = global::Rapr.Lang.Language.Button_Export_All_Drivers; this.buttonExportAllDrivers.UseVisualStyleBackColor = true; this.buttonExportAllDrivers.Click += new System.EventHandler(ButtonExportAllDrivers_Click); @@ -737,6 +760,8 @@ private void InitializeComponent() private BrightIdeasSoftware.OLVColumn driverSizeColumn; private System.Windows.Forms.Button buttonSelectOldDrivers; private System.Windows.Forms.ToolStripMenuItem ctxMenuSelectOldDrivers; + private System.Windows.Forms.Button buttonSelectUnusedDrivers; + private System.Windows.Forms.ToolStripMenuItem ctxMenuSelectUnusedDrivers; private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem optionsStripMenuItem; diff --git a/Rapr/DSEForm.cs b/Rapr/DSEForm.cs index 63ba00c..aed2860 100644 --- a/Rapr/DSEForm.cs +++ b/Rapr/DSEForm.cs @@ -708,6 +708,7 @@ private void ContextMenuStrip_Opening(object sender, CancelEventArgs e) { this.ctxMenuSelectAll.Enabled = true; this.ctxMenuSelectOldDrivers.Enabled = true; + this.ctxMenuSelectUnusedDrivers.Enabled = true; this.ctxMenuInvertSelection.Enabled = true; if (this.lstDriverStoreEntries.CheckedObjects?.Count > 0) @@ -758,6 +759,7 @@ private void ContextMenuStrip_Opening(object sender, CancelEventArgs e) this.ctxMenuSelectAll.Enabled = false; this.ctxMenuInvertSelection.Enabled = false; this.ctxMenuSelectOldDrivers.Enabled = false; + this.ctxMenuSelectUnusedDrivers.Enabled = false; this.ctxMenuOpenDeviceProperties.Enabled = false; this.ctxMenuOpenFolder.Enabled = false; this.ctxMenuCopyFolderPath.Enabled = false; @@ -900,6 +902,32 @@ private void ButtonSelectOldDrivers_Click(object sender, EventArgs e) this.CtxMenuSelectOldDrivers_Click(sender, e); } + private void CtxMenuSelectUnusedDrivers_Click(object sender, EventArgs e) + { + if (this.lstDriverStoreEntries.Objects != null) + { + var unusedDriversToSelect = this.lstDriverStoreEntries + .Objects + .OfType() + .Where(entry => string.IsNullOrEmpty(entry.DeviceName)) + .ToArray(); + + if (unusedDriversToSelect.Length == 0) + { + this.ShowStatus(Status.Warning, Language.Message_No_Unused_Drivers_Found); + } + else + { + this.lstDriverStoreEntries.CheckedObjects = unusedDriversToSelect; + } + } + } + + private void ButtonSelectUnusedDrivers_Click(object sender, EventArgs e) + { + this.CtxMenuSelectUnusedDrivers_Click(sender, e); + } + private void ExportDriverList(IEnumerable objects) { if (objects == null) @@ -1217,6 +1245,7 @@ private void StartOperation() this.buttonDeleteDriver.Enabled = false; this.cbForceDeletion.Enabled = false; this.buttonSelectOldDrivers.Enabled = false; + this.buttonSelectUnusedDrivers.Enabled = false; this.buttonExportDrivers.Enabled = false; this.buttonExportAllDrivers.Enabled = false; this.chooseDriverStoreToolStripMenuItem.Enabled = false; @@ -1237,6 +1266,7 @@ private void EndOperation() this.buttonDeleteDriver.Enabled = this.lstDriverStoreEntries.CheckedObjects.Count > 0; this.cbForceDeletion.Enabled = this.buttonDeleteDriver.Enabled && this.driverStore.SupportForceDeletion; this.buttonSelectOldDrivers.Enabled = true; + this.buttonSelectUnusedDrivers.Enabled = true; this.buttonExportDrivers.Enabled = this.buttonDeleteDriver.Enabled; this.buttonExportAllDrivers.Enabled = this.lstDriverStoreEntries.Objects != null; this.chooseDriverStoreToolStripMenuItem.Enabled = true; diff --git a/Rapr/Lang/Language.Designer.cs b/Rapr/Lang/Language.Designer.cs index d108811..c908662 100644 --- a/Rapr/Lang/Language.Designer.cs +++ b/Rapr/Lang/Language.Designer.cs @@ -208,6 +208,15 @@ public static string Button_Select_Old { return ResourceManager.GetString("Button_Select_Old", resourceCulture); } } + + /// + /// Looks up a localized string similar to Select Drivers Without Existing Device. + /// + public static string Button_Select_Unused { + get { + return ResourceManager.GetString("Button_Select_Unused", resourceCulture); + } + } /// /// Looks up a localized string similar to Force Deletio&n. @@ -469,6 +478,15 @@ public static string Context_Select_Old { return ResourceManager.GetString("Context_Select_Old", resourceCulture); } } + + /// + /// Looks up a localized string similar to Select Drivers Without Existing Device. + /// + public static string Context_Select_Unused { + get { + return ResourceManager.GetString("Context_Select_Unused", resourceCulture); + } + } /// /// Looks up a localized string similar to {0:d}. @@ -966,6 +984,15 @@ public static string Message_No_Old_Drivers_Found { return ResourceManager.GetString("Message_No_Old_Drivers_Found", resourceCulture); } } + + /// + /// Looks up a localized string similar to No drivers without an existing device found to select.. + /// + public static string Message_No_Unused_Drivers_Found { + get { + return ResourceManager.GetString("Message_No_Unused_Drivers_Found", resourceCulture); + } + } /// /// Looks up a localized string similar to This utility cannot be run in pre-Vista OS.. diff --git a/Rapr/Lang/Language.resx b/Rapr/Lang/Language.resx index ac6004c..b3034b5 100644 --- a/Rapr/Lang/Language.resx +++ b/Rapr/Lang/Language.resx @@ -132,6 +132,9 @@ &Select Old Driver(s) + + Select &Unused Driver(s) + Force Deletio&n @@ -183,6 +186,9 @@ Select &Old Drivers + + Select &Unused Drivers + About to delete {0} packages from driver store. {0} - Placeholder for number of packages @@ -523,4 +529,7 @@ Please select the root directory of a Windows installation or image (the directo No old drivers found to select. - \ No newline at end of file + + No drivers without an existing device were found. + + diff --git a/Rapr/Lang/Language.tr-TR.resx b/Rapr/Lang/Language.tr-TR.resx index 225b6d7..aa59a37 100644 --- a/Rapr/Lang/Language.tr-TR.resx +++ b/Rapr/Lang/Language.tr-TR.resx @@ -132,6 +132,9 @@ &Eski Sürücüleri Seç + + &Kullanılmayan Sürücüleri Seç + Silmeye &Zorla @@ -183,6 +186,9 @@ &Eski Sürücüleri Seç + + &Kullanılmayan Sürücüleri Seç + Sürücü deposundan {0} paket silinmek üzere. {0} - Placeholder for number of packages @@ -523,4 +529,7 @@ Lütfen bir Windows kurulumunun veya kalıbının kök dizinini seçin (Windows Seçilecek eski sürücüler bulunamadı. - \ No newline at end of file + + Seçilecek kullanılmayan sürücü bulunamadı. + +