Tracker: Refactor Default settings to be in one place
Create TrackerDefaults.h to share default setting values between TrackerSettings.cpp and SettingsView.cpp instead of duplicating the default value in both places. There is now one source of truth if we ever want to change a setting it won't cause regressions to the Defaults and Revert button state. TODO Does not yet include Disk auto-mount settings. Add HideDotFiles to the defaultable list for Windows settings and make its default false (was true in some places). Fix issues with the Defaults button not enabling Enable type- ahead filtering and Generate image thumbnails as it should. Move default color constants to TrackerDefaults.h, remove TODO. Rename kSpaceBarAlpha to kDefaultSpaceBarAlpha matching rest. Create RGBTOHEX(c) macro to convert rgb_color to a (hex) number for HexScalarValue to set the default space bar colors. Saving these old hex values in the commit message: UsedSpaceColor: 0xc000cb00 FreeSpaceColor: 0xc0ffffff WarningSpaceColor: 0xc0cb0000 Reorder setting to match display order. I've gone way over 80 in TrackerSettings and SettingsViews due to long variable names. Change-Id: Iafd6dfc5e738562d73967558e1f151fc7fed5866 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7196 Tested-by: Commit checker robot <[email protected]> Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
45b72f4c60
commit
6307bc5739
@@ -54,22 +54,12 @@ All rights reserved.
|
||||
#include "DeskWindow.h"
|
||||
#include "Model.h"
|
||||
#include "Tracker.h"
|
||||
#include "TrackerDefaults.h"
|
||||
#include "WidgetAttributeText.h"
|
||||
|
||||
|
||||
static const uint32 kSpaceBarSwitchColor = 'SBsc';
|
||||
|
||||
//TODO: defaults should be set in one place only (TrackerSettings.cpp) while
|
||||
// being accessible from here.
|
||||
// What about adding DefaultValue(), IsDefault() etc... methods to
|
||||
// xxxValueSetting ?
|
||||
static const uint8 kSpaceBarAlpha = 192;
|
||||
static const rgb_color kDefaultUsedSpaceColor = { 0, 203, 0, kSpaceBarAlpha };
|
||||
static const rgb_color kDefaultFreeSpaceColor
|
||||
= { 255, 255, 255, kSpaceBarAlpha };
|
||||
static const rgb_color kDefaultWarningSpaceColor
|
||||
= { 203, 0, 0, kSpaceBarAlpha };
|
||||
|
||||
|
||||
static void
|
||||
send_bool_notices(uint32 what, const char* name, bool value)
|
||||
@@ -180,11 +170,11 @@ DesktopSettingsView::DesktopSettingsView()
|
||||
fShowDisksIconRadioButton(NULL),
|
||||
fMountVolumesOntoDesktopRadioButton(NULL),
|
||||
fMountSharedVolumesOntoDesktopCheckBox(NULL),
|
||||
fShowDisksIcon(false),
|
||||
fMountVolumesOntoDesktop(false),
|
||||
fMountSharedVolumesOntoDesktop(false),
|
||||
fShowDisksIcon(kDefaultShowDisksIcon),
|
||||
fMountVolumesOntoDesktop(kDefaultMountVolumesOntoDesktop),
|
||||
fMountSharedVolumesOntoDesktop(kDefaultMountSharedVolumesOntoDesktop),
|
||||
fIntegrateNonBootBeOSDesktops(false),
|
||||
fEjectWhenUnmounting(false)
|
||||
fEjectWhenUnmounting(kDefaultEjectWhenUnmounting)
|
||||
{
|
||||
fShowDisksIconRadioButton = new BRadioButton("",
|
||||
B_TRANSLATE("Show Disks icon"),
|
||||
@@ -289,8 +279,7 @@ DesktopSettingsView::MessageReceived(BMessage* message)
|
||||
fMountSharedVolumesOntoDesktopCheckBox->Value() == 1);
|
||||
|
||||
// Send the notification message:
|
||||
tracker->SendNotices(kVolumesOnDesktopChanged,\
|
||||
¬ificationMessage);
|
||||
tracker->SendNotices(kVolumesOnDesktopChanged, ¬ificationMessage);
|
||||
|
||||
// Tell the settings window the contents have changed:
|
||||
Window()->PostMessage(kSettingsContentsModified);
|
||||
@@ -310,10 +299,10 @@ DesktopSettingsView::SetDefaults()
|
||||
// ToDo: Avoid the duplication of the default values.
|
||||
TrackerSettings settings;
|
||||
|
||||
settings.SetShowDisksIcon(false);
|
||||
settings.SetMountVolumesOntoDesktop(true);
|
||||
settings.SetMountSharedVolumesOntoDesktop(true);
|
||||
settings.SetEjectWhenUnmounting(true);
|
||||
settings.SetShowDisksIcon(kDefaultShowDisksIcon);
|
||||
settings.SetMountVolumesOntoDesktop(kDefaultMountVolumesOntoDesktop);
|
||||
settings.SetMountSharedVolumesOntoDesktop(kDefaultMountSharedVolumesOntoDesktop);
|
||||
settings.SetEjectWhenUnmounting(kDefaultEjectWhenUnmounting);
|
||||
|
||||
ShowCurrentSettings();
|
||||
_SendNotices();
|
||||
@@ -325,10 +314,10 @@ DesktopSettingsView::IsDefaultable() const
|
||||
{
|
||||
TrackerSettings settings;
|
||||
|
||||
return settings.ShowDisksIcon() != false
|
||||
|| settings.MountVolumesOntoDesktop() != true
|
||||
|| settings.MountSharedVolumesOntoDesktop() != true
|
||||
|| settings.EjectWhenUnmounting() != true;
|
||||
return settings.ShowDisksIcon() != kDefaultShowDisksIcon
|
||||
|| settings.MountVolumesOntoDesktop() != kDefaultMountVolumesOntoDesktop
|
||||
|| settings.MountSharedVolumesOntoDesktop() != kDefaultMountSharedVolumesOntoDesktop
|
||||
|| settings.EjectWhenUnmounting() != kDefaultEjectWhenUnmounting;
|
||||
}
|
||||
|
||||
|
||||
@@ -422,13 +411,14 @@ WindowsSettingsView::WindowsSettingsView()
|
||||
fHideDotFilesCheckBox(NULL),
|
||||
fTypeAheadFilteringCheckBox(NULL),
|
||||
fGenerateImageThumbnailsCheckBox(NULL),
|
||||
fShowFullPathInTitleBar(false),
|
||||
fSingleWindowBrowse(false),
|
||||
fShowNavigator(false),
|
||||
fTransparentSelection(false),
|
||||
fSortFolderNamesFirst(false),
|
||||
fHideDotFiles(false),
|
||||
fTypeAheadFiltering(false)
|
||||
fShowFullPathInTitleBar(kDefaultShowFullPathInTitleBar),
|
||||
fSingleWindowBrowse(kDefaultSingleWindowBrowse),
|
||||
fShowNavigator(kDefaultShowNavigator),
|
||||
fTransparentSelection(kDefaultTransparentSelection),
|
||||
fSortFolderNamesFirst(kDefaultSortFolderNamesFirst),
|
||||
fHideDotFiles(kDefaultHideDotFiles),
|
||||
fTypeAheadFiltering(kDefaultTypeAheadFiltering),
|
||||
fGenerateImageThumbnails(kDefaultGenerateImageThumbnails)
|
||||
{
|
||||
fShowFullPathInTitleBarCheckBox = new BCheckBox("",
|
||||
B_TRANSLATE("Show folder location in title tab"),
|
||||
@@ -569,12 +559,9 @@ WindowsSettingsView::MessageReceived(BMessage* message)
|
||||
{
|
||||
settings.SetHideDotFiles(
|
||||
fHideDotFilesCheckBox->Value() == 1);
|
||||
|
||||
// Make the notification message and send it to the tracker:
|
||||
send_bool_notices(kHideDotFilesChanged,
|
||||
"HideDotFiles",
|
||||
fHideDotFilesCheckBox->Value() == 1);
|
||||
|
||||
Window()->PostMessage(kSettingsContentsModified);
|
||||
break;
|
||||
}
|
||||
@@ -617,49 +604,49 @@ WindowsSettingsView::SetDefaults()
|
||||
|
||||
TrackerSettings settings;
|
||||
|
||||
if (settings.ShowFullPathInTitleBar()) {
|
||||
settings.SetShowFullPathInTitleBar(false);
|
||||
if (settings.ShowFullPathInTitleBar() != kDefaultShowFullPathInTitleBar) {
|
||||
settings.SetShowFullPathInTitleBar(kDefaultShowFullPathInTitleBar);
|
||||
tracker->SendNotices(kWindowsShowFullPathChanged);
|
||||
}
|
||||
|
||||
if (settings.SingleWindowBrowse()) {
|
||||
settings.SetSingleWindowBrowse(false);
|
||||
if (settings.SingleWindowBrowse() != kDefaultSingleWindowBrowse) {
|
||||
settings.SetSingleWindowBrowse(kDefaultSingleWindowBrowse);
|
||||
tracker->SendNotices(kSingleWindowBrowseChanged);
|
||||
}
|
||||
|
||||
if (settings.ShowNavigator()) {
|
||||
settings.SetShowNavigator(false);
|
||||
if (settings.ShowNavigator() != kDefaultShowNavigator) {
|
||||
settings.SetShowNavigator(kDefaultShowNavigator);
|
||||
tracker->SendNotices(kShowNavigatorChanged);
|
||||
}
|
||||
|
||||
if (!settings.TransparentSelection()) {
|
||||
settings.SetTransparentSelection(true);
|
||||
if (settings.TransparentSelection() != kDefaultTransparentSelection) {
|
||||
settings.SetTransparentSelection(kDefaultTransparentSelection);
|
||||
send_bool_notices(kTransparentSelectionChanged,
|
||||
"TransparentSelection", true);
|
||||
"TransparentSelection", kDefaultTransparentSelection);
|
||||
}
|
||||
|
||||
if (!settings.SortFolderNamesFirst()) {
|
||||
settings.SetSortFolderNamesFirst(true);
|
||||
if (settings.SortFolderNamesFirst() != kDefaultSortFolderNamesFirst) {
|
||||
settings.SetSortFolderNamesFirst(kDefaultSortFolderNamesFirst);
|
||||
send_bool_notices(kSortFolderNamesFirstChanged,
|
||||
"SortFolderNamesFirst", true);
|
||||
"SortFolderNamesFirst", kDefaultSortFolderNamesFirst);
|
||||
}
|
||||
|
||||
if (!settings.HideDotFiles()) {
|
||||
settings.SetHideDotFiles(true);
|
||||
if (settings.HideDotFiles() != kDefaultHideDotFiles) {
|
||||
settings.SetHideDotFiles(kDefaultHideDotFiles);
|
||||
send_bool_notices(kHideDotFilesChanged,
|
||||
"HideDotFiles", true);
|
||||
"HideDotFiles", kDefaultHideDotFiles);
|
||||
}
|
||||
|
||||
if (settings.TypeAheadFiltering()) {
|
||||
settings.SetTypeAheadFiltering(false);
|
||||
if (settings.TypeAheadFiltering() != kDefaultTypeAheadFiltering) {
|
||||
settings.SetTypeAheadFiltering(kDefaultTypeAheadFiltering);
|
||||
send_bool_notices(kTypeAheadFilteringChanged,
|
||||
"TypeAheadFiltering", true);
|
||||
"TypeAheadFiltering", kDefaultTypeAheadFiltering);
|
||||
}
|
||||
|
||||
if (settings.GenerateImageThumbnails()) {
|
||||
settings.SetGenerateImageThumbnails(false);
|
||||
if (settings.GenerateImageThumbnails() != kDefaultGenerateImageThumbnails) {
|
||||
settings.SetGenerateImageThumbnails(kDefaultGenerateImageThumbnails);
|
||||
send_bool_notices(kGenerateImageThumbnailsChanged,
|
||||
"GenerateImageThumbnails", true);
|
||||
"GenerateImageThumbnails", kDefaultGenerateImageThumbnails);
|
||||
}
|
||||
|
||||
ShowCurrentSettings();
|
||||
@@ -671,13 +658,14 @@ WindowsSettingsView::IsDefaultable() const
|
||||
{
|
||||
TrackerSettings settings;
|
||||
|
||||
return settings.ShowFullPathInTitleBar() != false
|
||||
|| settings.SingleWindowBrowse() != false
|
||||
|| settings.ShowNavigator() != false
|
||||
|| settings.TransparentSelection() != true
|
||||
|| settings.SortFolderNamesFirst() != true
|
||||
|| settings.TypeAheadFiltering() != false
|
||||
|| settings.GenerateImageThumbnails() != true;
|
||||
return settings.ShowFullPathInTitleBar() != kDefaultShowFullPathInTitleBar
|
||||
|| settings.SingleWindowBrowse() != kDefaultSingleWindowBrowse
|
||||
|| settings.ShowNavigator() != kDefaultShowNavigator
|
||||
|| settings.TransparentSelection() != kDefaultTransparentSelection
|
||||
|| settings.SortFolderNamesFirst() != kDefaultSortFolderNamesFirst
|
||||
|| settings.HideDotFiles() != kDefaultHideDotFiles
|
||||
|| settings.TypeAheadFiltering() != kDefaultTypeAheadFiltering
|
||||
|| settings.GenerateImageThumbnails() != kDefaultGenerateImageThumbnails;
|
||||
}
|
||||
|
||||
|
||||
@@ -895,7 +883,7 @@ SpaceBarSettingsView::MessageReceived(BMessage* message)
|
||||
case kSpaceBarColorChanged:
|
||||
{
|
||||
rgb_color color = fColorControl->ValueAsColor();
|
||||
color.alpha = kSpaceBarAlpha;
|
||||
color.alpha = kDefaultSpaceBarAlpha;
|
||||
// alpha is ignored by BColorControl but is checked
|
||||
// in equalities
|
||||
|
||||
@@ -939,7 +927,7 @@ SpaceBarSettingsView::SetDefaults()
|
||||
|
||||
if (!settings.ShowVolumeSpaceBar()) {
|
||||
settings.SetShowVolumeSpaceBar(true);
|
||||
send_bool_notices(kShowVolumeSpaceBar, "ShowVolumeSpaceBar", true);
|
||||
send_bool_notices(kShowVolumeSpaceBar, "ShowVolumeSpaceBar", kDefaultShowVolumeSpaceBar);
|
||||
}
|
||||
|
||||
if (settings.UsedSpaceColor() != kDefaultUsedSpaceColor
|
||||
@@ -960,7 +948,7 @@ SpaceBarSettingsView::IsDefaultable() const
|
||||
{
|
||||
TrackerSettings settings;
|
||||
|
||||
return settings.ShowVolumeSpaceBar() != true
|
||||
return settings.ShowVolumeSpaceBar() != kDefaultShowVolumeSpaceBar
|
||||
|| settings.UsedSpaceColor() != kDefaultUsedSpaceColor
|
||||
|| settings.FreeSpaceColor() != kDefaultFreeSpaceColor
|
||||
|| settings.WarningSpaceColor() != kDefaultWarningSpaceColor;
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright 2023 Haiku, Inc. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* John Scipione, [email protected]
|
||||
*/
|
||||
#ifndef _TRACKER_DEFAULTS_H
|
||||
#define _TRACKER_DEFAULTS_H
|
||||
|
||||
|
||||
static const bool kDefaultShowDisksIcon = false;
|
||||
static const bool kDefaultMountVolumesOntoDesktop = true;
|
||||
static const bool kDefaultMountSharedVolumesOntoDesktop = true;
|
||||
static const bool kDefaultEjectWhenUnmounting = true;
|
||||
|
||||
static const bool kDefaultDesktopFilePanelRoot = true;
|
||||
static const bool kDefaultShowSelectionWhenInactive = true;
|
||||
|
||||
static const bool kDefaultShowFullPathInTitleBar = false;
|
||||
static const bool kDefaultSingleWindowBrowse = false;
|
||||
static const bool kDefaultShowNavigator = false;
|
||||
static const bool kDefaultTransparentSelection = true;
|
||||
static const bool kDefaultSortFolderNamesFirst = true;
|
||||
static const bool kDefaultHideDotFiles = false;
|
||||
static const bool kDefaultTypeAheadFiltering = false;
|
||||
static const bool kDefaultGenerateImageThumbnails = true;
|
||||
|
||||
static const int32 kDefaultRecentApplications = 10;
|
||||
static const int32 kDefaultRecentDocuments = 10;
|
||||
static const int32 kDefaultRecentFolders = 10;
|
||||
|
||||
static const bool kDefaultShowVolumeSpaceBar = true;
|
||||
static const uint8 kDefaultSpaceBarAlpha = 192;
|
||||
static const rgb_color kDefaultUsedSpaceColor = { 0, 203, 0, kDefaultSpaceBarAlpha };
|
||||
static const rgb_color kDefaultFreeSpaceColor = { 255, 255, 255, kDefaultSpaceBarAlpha };
|
||||
static const rgb_color kDefaultWarningSpaceColor = { 203, 0, 0, kDefaultSpaceBarAlpha };
|
||||
|
||||
static const bool kDefaultDontMoveFilesToTrash = false;
|
||||
static const bool kDefaultAskBeforeDeleteFile = true;
|
||||
|
||||
|
||||
#endif // _TRACKER_DEFAULTS_H
|
||||
@@ -38,9 +38,13 @@ All rights reserved.
|
||||
#include <Debug.h>
|
||||
|
||||
#include "Tracker.h"
|
||||
#include "TrackerDefaults.h"
|
||||
#include "WidgetAttributeText.h"
|
||||
|
||||
|
||||
#define RGBTOHEX(c) ((c.alpha << 24) | (c.red << 16) | (c.green << 8) | (c.blue))
|
||||
|
||||
|
||||
class TTrackerState : public Settings {
|
||||
public:
|
||||
static TTrackerState* Get();
|
||||
@@ -210,54 +214,55 @@ TTrackerState::LoadSettingsIfNeeded()
|
||||
|
||||
// Set default settings before reading from disk
|
||||
|
||||
Add(fShowDisksIcon = new BooleanValueSetting("ShowDisksIcon", false));
|
||||
Add(fShowDisksIcon = new BooleanValueSetting("ShowDisksIcon", kDefaultShowDisksIcon));
|
||||
Add(fMountVolumesOntoDesktop
|
||||
= new BooleanValueSetting("MountVolumesOntoDesktop", true));
|
||||
Add(fMountSharedVolumesOntoDesktop =
|
||||
new BooleanValueSetting("MountSharedVolumesOntoDesktop", true));
|
||||
= new BooleanValueSetting("MountVolumesOntoDesktop", kDefaultMountVolumesOntoDesktop));
|
||||
Add(fMountSharedVolumesOntoDesktop = new BooleanValueSetting(
|
||||
"MountSharedVolumesOntoDesktop", kDefaultMountSharedVolumesOntoDesktop));
|
||||
Add(fEjectWhenUnmounting
|
||||
= new BooleanValueSetting("EjectWhenUnmounting", true));
|
||||
= new BooleanValueSetting("EjectWhenUnmounting", kDefaultEjectWhenUnmounting));
|
||||
|
||||
Add(fDesktopFilePanelRoot // deprecated
|
||||
= new BooleanValueSetting("DesktopFilePanelRoot", kDefaultDesktopFilePanelRoot));
|
||||
Add(fShowSelectionWhenInactive // deprecated
|
||||
= new BooleanValueSetting("ShowSelectionWhenInactive", kDefaultShowSelectionWhenInactive));
|
||||
|
||||
Add(fDesktopFilePanelRoot
|
||||
= new BooleanValueSetting("DesktopFilePanelRoot", true));
|
||||
Add(fShowFullPathInTitleBar
|
||||
= new BooleanValueSetting("ShowFullPathInTitleBar", false));
|
||||
Add(fShowSelectionWhenInactive
|
||||
= new BooleanValueSetting("ShowSelectionWhenInactive", true));
|
||||
Add(fTransparentSelection
|
||||
= new BooleanValueSetting("TransparentSelection", true));
|
||||
Add(fSortFolderNamesFirst
|
||||
= new BooleanValueSetting("SortFolderNamesFirst", true));
|
||||
Add(fHideDotFiles = new BooleanValueSetting("HideDotFiles", false));
|
||||
Add(fTypeAheadFiltering
|
||||
= new BooleanValueSetting("TypeAheadFiltering", false));
|
||||
Add(fGenerateImageThumbnails
|
||||
= new BooleanValueSetting("GenerateImageThumbnails", true));
|
||||
= new BooleanValueSetting("ShowFullPathInTitleBar", kDefaultShowFullPathInTitleBar));
|
||||
Add(fSingleWindowBrowse
|
||||
= new BooleanValueSetting("SingleWindowBrowse", false));
|
||||
Add(fShowNavigator = new BooleanValueSetting("ShowNavigator", false));
|
||||
= new BooleanValueSetting("SingleWindowBrowse", kDefaultSingleWindowBrowse));
|
||||
Add(fShowNavigator = new BooleanValueSetting("ShowNavigator", kDefaultShowNavigator));
|
||||
Add(fTransparentSelection
|
||||
= new BooleanValueSetting("TransparentSelection", kDefaultTransparentSelection));
|
||||
Add(fSortFolderNamesFirst
|
||||
= new BooleanValueSetting("SortFolderNamesFirst", kDefaultSortFolderNamesFirst));
|
||||
Add(fHideDotFiles = new BooleanValueSetting("HideDotFiles", kDefaultHideDotFiles));
|
||||
Add(fTypeAheadFiltering
|
||||
= new BooleanValueSetting("TypeAheadFiltering", kDefaultTypeAheadFiltering));
|
||||
Add(fGenerateImageThumbnails
|
||||
= new BooleanValueSetting("GenerateImageThumbnails", kDefaultGenerateImageThumbnails));
|
||||
|
||||
Add(fRecentApplicationsCount
|
||||
= new ScalarValueSetting("RecentApplications", 10, "", ""));
|
||||
= new ScalarValueSetting("RecentApplications", kDefaultRecentApplications, "", ""));
|
||||
Add(fRecentDocumentsCount
|
||||
= new ScalarValueSetting("RecentDocuments", 10, "", ""));
|
||||
= new ScalarValueSetting("RecentDocuments", kDefaultRecentDocuments, "", ""));
|
||||
Add(fRecentFoldersCount
|
||||
= new ScalarValueSetting("RecentFolders", 10, "", ""));
|
||||
= new ScalarValueSetting("RecentFolders", kDefaultRecentFolders, "", ""));
|
||||
|
||||
Add(fShowVolumeSpaceBar
|
||||
= new BooleanValueSetting("ShowVolumeSpaceBar", true));
|
||||
|
||||
= new BooleanValueSetting("ShowVolumeSpaceBar", kDefaultShowVolumeSpaceBar));
|
||||
Add(fUsedSpaceColor
|
||||
= new HexScalarValueSetting("UsedSpaceColor", 0xc000cb00, "", ""));
|
||||
= new HexScalarValueSetting("UsedSpaceColor", RGBTOHEX(kDefaultUsedSpaceColor), "", ""));
|
||||
Add(fFreeSpaceColor
|
||||
= new HexScalarValueSetting("FreeSpaceColor", 0xc0ffffff, "", ""));
|
||||
= new HexScalarValueSetting("FreeSpaceColor", RGBTOHEX(kDefaultFreeSpaceColor), "", ""));
|
||||
Add(fWarningSpaceColor
|
||||
= new HexScalarValueSetting("WarningSpaceColor", 0xc0cb0000, "", ""));
|
||||
= new HexScalarValueSetting("WarningSpaceColor", RGBTOHEX(kDefaultWarningSpaceColor),
|
||||
"", ""));
|
||||
|
||||
Add(fDontMoveFilesToTrash
|
||||
= new BooleanValueSetting("DontMoveFilesToTrash", false));
|
||||
= new BooleanValueSetting("DontMoveFilesToTrash", kDefaultDontMoveFilesToTrash));
|
||||
Add(fAskBeforeDeleteFile
|
||||
= new BooleanValueSetting("AskBeforeDeleteFile", true));
|
||||
= new BooleanValueSetting("AskBeforeDeleteFile", kDefaultAskBeforeDeleteFile));
|
||||
|
||||
TryReadingSettings();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user