diff --git a/src/kits/tracker/SettingsViews.cpp b/src/kits/tracker/SettingsViews.cpp index f4adea1f05..e7f8f1d1cc 100644 --- a/src/kits/tracker/SettingsViews.cpp +++ b/src/kits/tracker/SettingsViews.cpp @@ -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; diff --git a/src/kits/tracker/TrackerDefaults.h b/src/kits/tracker/TrackerDefaults.h new file mode 100644 index 0000000000..04ca437f43 --- /dev/null +++ b/src/kits/tracker/TrackerDefaults.h @@ -0,0 +1,43 @@ +/* + * Copyright 2023 Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * John Scipione, jscipione@gmail.com + */ +#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 diff --git a/src/kits/tracker/TrackerSettings.cpp b/src/kits/tracker/TrackerSettings.cpp index ce326f3ad6..c1fea317d1 100644 --- a/src/kits/tracker/TrackerSettings.cpp +++ b/src/kits/tracker/TrackerSettings.cpp @@ -38,9 +38,13 @@ All rights reserved. #include #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();