Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 27 additions & 4 deletions Rapr/DSEForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public partial class DSEForm : Form

private HashSet<DriverStoreEntry> driversWithNewerDate = new HashSet<DriverStoreEntry>();
private HashSet<DriverStoreEntry> unusedDriversToReview = new HashSet<DriverStoreEntry>();
private ToolStripMenuItem warnBeforeSelectingUnusedDriversStripMenuItem;

private static readonly IUpdateManager UpdateManager = CreateUpdateManager();

Expand Down Expand Up @@ -110,9 +111,7 @@ public DSEForm()

this.Icon = DSEFormHelper.ExtractAssociatedIcon(Application.ExecutablePath);
this.BuildLanguageMenu();

// Initialize the BootCritical option menu item
this.includeBootCriticalDriversStripMenuItem.Checked = Settings.Default.IncludeBootCriticalInOldDriverSelection;
this.SetupOptionsMenu();

this.lstDriverStoreEntries.PrimarySortColumn = this.driverClassColumn;
this.lstDriverStoreEntries.PrimarySortOrder = SortOrder.Ascending;
Expand Down Expand Up @@ -350,6 +349,23 @@ private void BuildLanguageMenu()
}
}

// Called after every InitializeComponent(), including when the language is switched,
// so the option menu items always reflect the saved settings.
private void SetupOptionsMenu()
{
this.includeBootCriticalDriversStripMenuItem.Checked = Settings.Default.IncludeBootCriticalInOldDriverSelection;

// Created here because its text has no generated Language property yet.
this.warnBeforeSelectingUnusedDriversStripMenuItem = new ToolStripMenuItem
{
CheckOnClick = true,
Checked = Settings.Default.WarnBeforeSelectingUnusedDrivers,
Text = Language.ResourceManager.GetString("Menu_Options_WarnBeforeSelectingUnusedDrivers", Language.Culture),
};
this.warnBeforeSelectingUnusedDriversStripMenuItem.Click += this.WarnBeforeSelectingUnusedDriversStripMenuItem_Click;
this.optionsStripMenuItem.DropDownItems.Add(this.warnBeforeSelectingUnusedDriversStripMenuItem);
}

private void EnsureOnScreen()
{
var workArea = Screen.GetWorkingArea(this);
Expand Down Expand Up @@ -931,7 +947,7 @@ private void CtxMenuSelectUnusedDrivers_Click(object sender, EventArgs e)
{
if (!this.operationInProgress && this.driverStore.SupportDeviceNameColumn && this.lstDriverStoreEntries.Objects != null)
{
if (!this.ConfirmUnusedDriverSelection())
if (Settings.Default.WarnBeforeSelectingUnusedDrivers && !this.ConfirmUnusedDriverSelection())
{
return;
}
Expand Down Expand Up @@ -1030,6 +1046,7 @@ private void SwitchCulture(object sender, EventArgs e)
this.Controls.Clear();
this.InitializeComponent();
this.BuildLanguageMenu();
this.SetupOptionsMenu();
this.RightToLeft = ci.TextInfo.IsRightToLeft ? RightToLeft.Yes : RightToLeft.No;
this.RightToLeftLayout = ci.TextInfo.IsRightToLeft;
this.SetupListViewColumns();
Expand Down Expand Up @@ -1491,6 +1508,12 @@ private void IncludeBootCriticalDriversStripMenuItem_Click(object sender, System
Settings.Default.Save();
}

private void WarnBeforeSelectingUnusedDriversStripMenuItem_Click(object sender, System.EventArgs e)
{
Settings.Default.WarnBeforeSelectingUnusedDrivers = this.warnBeforeSelectingUnusedDriversStripMenuItem.Checked;
Settings.Default.Save();
}

private async void CtxMenuExportDriver_Click(object sender, System.EventArgs e)
{
using (var dialog = new CommonOpenFileDialog { IsFolderPicker = true })
Expand Down
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.ar-SA.resx
Original file line number Diff line number Diff line change
Expand Up @@ -505,4 +505,7 @@ https://github.com/lostindark/DriverStoreExplorer/blob/master/LICENSE</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>قد تظل التعريفات المحددة مطلوبة. راجعها وأنشئ نسخة احتياطية منها قبل حذفها.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>التحذير قبل تحديد التعريفات غير المستخدمة</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.de-DE.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Mit der Auswahl der Treiber fortfahren?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Die ausgewählten Treiber werden möglicherweise weiterhin benötigt. Prüfen und sichern Sie die Treiber vor dem Löschen.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Vor dem Auswählen nicht verwendeter Treiber warnen</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.el-GR.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Credits:
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Οι επιλεγμένοι οδηγοί ενδέχεται να είναι ακόμα απαραίτητοι. Ελέγξτε τους και δημιουργήστε αντίγραφα ασφαλείας πριν από τη διαγραφή.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Προειδοποίηση πριν από την επιλογή μη χρησιμοποιούμενων Drivers</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.es-ES.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Borrarlos puede hacer que los programas o dispositivos dejen de funcionar. Revis
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Los controladores seleccionados podrían seguir siendo necesarios. Revíselos y haga una copia de seguridad antes de borrarlos.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Advertir antes de seleccionar controladores sin usar</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.fr-FR.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Continuer la sélection des pilotes ?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Les pilotes sélectionnés peuvent encore être nécessaires. Vérifiez-les et sauvegardez-les avant de les supprimer.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Avertir avant de sélectionner les pilotes inutilisés</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.he-IL.resx
Original file line number Diff line number Diff line change
Expand Up @@ -516,4 +516,7 @@
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>ייתכן שמנהלי ההתקנים שנבחרו עדיין נחוצים. יש לבדוק ולגבות אותם לפני המחיקה.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>הצג אזהרה לפני בחירת מנהלי התקנים שאינם בשימוש</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.hu-HU.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Folytatja az illesztőprogramok kiválasztását?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>A kijelölt illesztőprogramokra továbbra is szükség lehet. Törlés előtt ellenőrizze őket, és készítsen róluk biztonsági másolatot.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Figyelmeztetés a nem használt illesztőprogramok kijelölése előtt</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.it-IT.resx
Original file line number Diff line number Diff line change
Expand Up @@ -543,4 +543,7 @@ Continuare con la selezione dei driver?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>I driver selezionati potrebbero essere ancora necessari. Controllali ed esegui un backup prima di eliminarli.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Avvisa prima di selezionare i driver non usati</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.ja-JP.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Windowsインストールまたはイメージのルートディレクトリ(W
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>選択したドライバーは引き続き必要な可能性があります。削除前に確認し、バックアップしてください。</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>未使用のドライバーを選択する前に警告する</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.ko-KR.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Windows 폴더 자체가 아닌 Windows 설치 또는 이미지의 루트 디렉
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>선택한 드라이버가 여전히 필요할 수 있습니다. 삭제하기 전에 검토하고 백업하세요.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>사용하지 않는 드라이버 선택 전에 경고</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.nb-NO.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Vil du fortsette å velge drivere?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>De valgte driverne kan fortsatt være nødvendige. Gå gjennom og sikkerhetskopier driverne før sletting.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Advar før ubrukte drivere velges</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.pl-PL.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Czy kontynuować wybieranie sterowników?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Wybrane sterowniki mogą być nadal potrzebne. Sprawdź je i wykonaj kopię zapasową przed usunięciem.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Ostrzegaj przed wybraniem nieużywanych sterowników</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.pt-BR.resx
Original file line number Diff line number Diff line change
Expand Up @@ -506,4 +506,7 @@ Continuar selecionando drivers?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Os drivers selecionados ainda podem ser necessários. Revise-os e faça backup antes de excluí-los.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Avisar antes de selecionar drivers não usados</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Continue selecting drivers?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Selected drivers may still be required. Review and back up drivers before deleting.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Warn Before Selecting Unused Drivers</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.ru-RU.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Выбранные драйверы могут по-прежнему быть необходимы. Проверьте их и создайте резервную копию перед удалением.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Предупреждать перед выделением неиспользуемых драйверов</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.sk-SK.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Pokračovať vo výbere ovládačov?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Vybrané ovládače môžu byť stále potrebné. Pred odstránením ich skontrolujte a zálohujte.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Upozorniť pred označením nepoužívaných ovládačov</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.tr-TR.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@ Sürücü seçimine devam edilsin mi?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Seçilen sürücüler hâlâ gerekli olabilir. Silmeden önce sürücüleri gözden geçirin ve yedekleyin.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Kullanılmayan Sürücüleri Seçmeden Önce Uyar</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.tt-RU.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Сайланган драйверлар һаман кирәк булырга мөмкин. Бетерер алдыннан аларны тикшерегез һәм резерв күчермәсен ясагыз.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Кулланылмый торган драйверларны сайлау алдыннан кисәтү</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.uk-UA.resx
Original file line number Diff line number Diff line change
Expand Up @@ -542,4 +542,7 @@
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Вибрані драйвери можуть і далі бути потрібними. Перевірте їх і створіть резервну копію перед видаленням.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Попереджати перед вибором невикористаних драйверів</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.vi-VN.resx
Original file line number Diff line number Diff line change
Expand Up @@ -547,4 +547,7 @@ Tiếp tục chọn driver?</value>
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>Các driver đã chọn có thể vẫn cần thiết. Hãy kiểm tra và sao lưu các driver trước khi xóa.</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>Cảnh báo trước khi chọn các driver không sử dụng</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.zh-CN.resx
Original file line number Diff line number Diff line change
Expand Up @@ -508,4 +508,7 @@
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>所选驱动可能仍然需要使用。请在删除前检查并备份驱动。</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>选择未使用的驱动前显示警告</value>
</data>
</root>
3 changes: 3 additions & 0 deletions Rapr/Lang/Language.zh-TW.resx
Original file line number Diff line number Diff line change
Expand Up @@ -541,4 +541,7 @@
<data name="Status_Review_Unused_Drivers" xml:space="preserve">
<value>選取的驅動程式可能仍有需要。請在刪除前檢查並備份驅動程式。</value>
</data>
<data name="Menu_Options_WarnBeforeSelectingUnusedDrivers" xml:space="preserve">
<value>選擇未使用的驅動程式前顯示警告</value>
</data>
</root>
13 changes: 13 additions & 0 deletions Rapr/Properties/Settings.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Rapr/Properties/Settings.settings
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
<Setting Name="DriverStoreOption" Type="System.String" Scope="User">
<Value Profile="(Default)">Native</Value>
</Setting>
<Setting Name="WarnBeforeSelectingUnusedDrivers" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="LogRetentionPeriod" Roaming="true" Type="System.TimeSpan" Scope="User">
<Value Profile="(Default)">180.00:00:00</Value>
</Setting>
Expand Down
33 changes: 33 additions & 0 deletions RaprTests/DSEFormTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
Expand Down Expand Up @@ -207,6 +208,38 @@ public void UnusedDriverSelectionRequiresConfirmationBeforeChangingChecks(string
});
}

[TestMethod]
[DataRow("CtxMenuSelectUnusedDrivers_Click")]
[DataRow("ButtonSelectUnusedDrivers_Click")]
public void DisabledUnusedDriverWarningSelectsWithoutConfirmation(string handler)
{
// Settings is internal to Rapr, so reach it through ApplicationSettingsBase.
var settings = (ApplicationSettingsBase)typeof(DSEForm).Assembly
.GetType("Rapr.Properties.Settings")
.GetProperty("Default", BindingFlags.Static | BindingFlags.Public)
.GetValue(null);
object previous = settings["WarnBeforeSelectingUnusedDrivers"];
settings["WarnBeforeSelectingUnusedDrivers"] = false;

try
{
WithSelectionForm((form, list) =>
{
var unused = CreateDriver("unused.inf", 1);
list.SetObjects(new[] { unused });

Invoke(form, handler, null, EventArgs.Empty);

Assert.AreEqual(0, ((SelectionTestForm)form).ConfirmationCount);
CollectionAssert.AreEquivalent(new[] { unused }, list.CheckedObjects.Cast<DriverStoreEntry>().ToArray());
});
}
finally
{
settings["WarnBeforeSelectingUnusedDrivers"] = previous;
}
}

[TestMethod]
[DataRow(true, false)]
[DataRow(false, true)]
Expand Down
Loading