11 Commits

Author SHA1 Message Date
ge0rdi
e6b33a70e4 Add -reloadsettings command line switch
It will force Open-Shell to reload settings from registry.

Fixes #1157.
2022-10-08 07:48:50 +02:00
ge0rdi
179a59ac1b Revert "Auto-detect when setting is back to default value"
This reverts commit 998d83c15c.

This change was wrong and it shouldn't get merged in first place.
See https://github.com/Open-Shell/Open-Shell-Menu/pull/829#issuecomment-907667829 for further explanation.

Fixes #1135.
2022-09-12 16:17:06 +02:00
ge0rdi
2a5ed14599 Fix 'Highlight modified settings' option tooltip 2022-09-12 16:17:06 +02:00
ge0rdi
1cc5d2eb53 Fix broken menu sorting
It was broken in bb26cec commit.

Fixes #1111
2022-09-09 17:07:29 +02:00
coddec
687e50914f Update appveyor.yml
Change secure,hashed auth token as suggested by @ge0rdi
2022-09-08 13:31:28 +10:00
floppyD
a165ba38a6 Update StartMenuL10N.ini (#1125)
That's how it's called on Windows. "Configurações do computador" also makes the start menu way larger than it should be.
2022-09-01 19:27:25 -04:00
ge0rdi
6b7cfc5ab2 Update: Remove unused code for checking nightly build on AppVeyor
We have nightly builds on Github already.
2022-08-21 22:51:18 +02:00
ge0rdi
1f2c3d43a6 Update: Get nightly (prerelease) builds from Github
We are now deploying official builds from master to Github releases page
(as Prerelease).
So we should get these build from there.

This is also related to AppVeyor's rather tight download limits that
make it quite challenge to obtain nightly builds.
2022-08-21 22:51:18 +02:00
ge0rdi
5bee5ae143 Update JSON library to latest version (3.11.2) 2022-08-21 22:51:18 +02:00
ge0rdi
f01c126b36 AppVeyor: Deploy only if build was done under official account 2022-08-21 22:47:52 +02:00
ge0rdi
3d1fa11973 Update README.md
- Updated "release" badge to point to latest release version directly
- Removed "Latest nightly build" link as nightly builds are now part of standard Releases page
2022-08-21 22:20:32 +02:00
14 changed files with 6534 additions and 7551 deletions

View File

@@ -3722,7 +3722,7 @@ Menu.RestartUpdate = Atualizar e reiniciar
Menu.Sleep = &Dormir
Menu.Hibernate = &Hibernar
Menu.ControlPanel = &Painel de controle
Menu.PCSettings = Configurações do computador
Menu.PCSettings = Configurações
Menu.Security = Segurança do Windows
Menu.Network = Co&nexões de Rede
Menu.Printers = &Impressoras

View File

@@ -2,11 +2,10 @@
*Originally* **[Classic Shell](http://www.classicshell.net)** *by [Ivo Beltchev](https://sourceforge.net/u/ibeltchev/profile/)*
[![GitHub Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu.svg)](https://github.com/Open-Shell/Open-Shell-Menu/releases) [![GitHub Pre-Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu/all.svg)](https://github.com/Open-Shell/Open-Shell-Menu/releases) [![Build status](https://ci.appveyor.com/api/projects/status/2wj5x5qoypfjj0tr/branch/master?svg=true)](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master) [![GitQ](https://gitq.com/badge.svg)](https://gitq.com/passionate-coder/Classic-Start) [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/open-shell/Lobby) [![Discord](https://img.shields.io/discord/757701054782636082?color=%4E5D94&label=Discord&logo=discord&logoColor=white)](https://discord.gg/7H6arr5)
[![GitHub Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu.svg)](https://github.com/Open-Shell/Open-Shell-Menu/releases/latest) [![GitHub Pre-Release](https://img.shields.io/github/release/Open-Shell/Open-Shell-Menu/all.svg)](https://github.com/Open-Shell/Open-Shell-Menu/releases) [![Build status](https://ci.appveyor.com/api/projects/status/2wj5x5qoypfjj0tr/branch/master?svg=true)](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master) [![GitQ](https://gitq.com/badge.svg)](https://gitq.com/passionate-coder/Classic-Start) [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/open-shell/Lobby) [![Discord](https://img.shields.io/discord/757701054782636082?color=%4E5D94&label=Discord&logo=discord&logoColor=white)](https://discord.gg/7H6arr5)
[Home Page](https://open-shell.github.io/Open-Shell-Menu)
[Gitter Discussion room](https://gitter.im/Open-Shell)
[Latest nightly build](https://ci.appveyor.com/project/passionate-coder/open-shell-menu/branch/master/artifacts)
### Features
- Classic style Start Menu for Windows 7, 8, 8.1, 10

View File

@@ -344,7 +344,7 @@ static DWORD WINAPI ThreadVersionCheck( void *param )
VersionData data;
{
auto load = params.nightly ? data.LoadNightly() : data.Load();
auto load = data.Load(!params.nightly);
#ifdef UPDATE_LOG
LogToFile(UPDATE_LOG, L"Load result: %d", load);
@@ -765,20 +765,38 @@ std::vector<char> DownloadUrl(const wchar_t* url)
using namespace nlohmann;
VersionData::TLoadResult VersionData::Load()
VersionData::TLoadResult VersionData::Load(bool official)
{
Clear();
auto buf = DownloadUrl(L"https://api.github.com/repos/Open-Shell/Open-Shell-Menu/releases/latest");
std::wstring baseUrl = L"https://api.github.com/repos/Open-Shell/Open-Shell-Menu/releases";
if (official)
baseUrl += L"/latest";
auto buf = DownloadUrl(baseUrl.c_str());
if (buf.empty())
return LOAD_ERROR;
try
{
auto data = json::parse(buf.begin(), buf.end());
auto jsonData = json::parse(buf.begin(), buf.end());
auto& data = jsonData;
// skip prerelease versions
if (data["prerelease"].get<bool>())
if (official)
{
// skip prerelease versions (just in case)
if (data["prerelease"].get<bool>())
return LOAD_BAD_VERSION;
}
else
{
// we've got list of versions (release and pre-release)
// lets pick first one (that should be the latest one)
data = jsonData[0];
}
// make sure we didn't get draft release (for whatever reason)
if (data["draft"].get<bool>())
return LOAD_BAD_VERSION;
// get version from tag name
@@ -832,116 +850,6 @@ VersionData::TLoadResult VersionData::Load()
}
}
VersionData::TLoadResult VersionData::LoadNightly()
{
Clear();
auto buf = DownloadUrl(L"https://ci.appveyor.com/api/projects/passionate-coder/open-shell-menu/branch/master");
if (buf.empty())
return LOAD_ERROR;
try
{
auto data = json::parse(buf.begin(), buf.end());
auto build = data["build"];
// get version
auto version = build["version"].get<std::string>();
if (version.empty())
return LOAD_BAD_FILE;
{
int v1, v2, v3;
if (sscanf_s(version.c_str(), "%d.%d.%d", &v1, &v2, &v3) != 3)
return LOAD_BAD_FILE;
newVersion = (v1 << 24) | (v2 << 16) | v3;
if (newVersion <= GetVersionEx(g_Instance))
return LOAD_OK;
}
// artifact url
{
auto jobId = build["jobs"][0]["jobId"].get<std::string>();
if (jobId.empty())
return LOAD_BAD_FILE;
std::wstring jobUrl(L"https://ci.appveyor.com/api/buildjobs/");
jobUrl += std::wstring(jobId.begin(), jobId.end());
jobUrl += L"/artifacts";
buf = DownloadUrl(jobUrl.c_str());
if (buf.empty())
return LOAD_ERROR;
auto artifacts = json::parse(buf.begin(), buf.end());
std::string fileName;
for (const auto& artifact : artifacts)
{
auto name = artifact["fileName"].get<std::string>();
if (name.find("OpenShellSetup") == 0)
{
fileName = name;
break;
}
}
if (fileName.empty())
return LOAD_BAD_FILE;
auto artifactUrl(jobUrl);
artifactUrl += L'/';
artifactUrl += std::wstring(fileName.begin(), fileName.end());
downloadUrl = artifactUrl.c_str();
}
// changelog
news.Append(CA2T(version.c_str()));
news.Append(L"\r\n\r\n");
try
{
// use Github API to compare commit that actual version was built from (APPVEYOR_REPO_COMMIT)
// and commit that AppVeyor version was built from (commitId)
auto commitId = build["commitId"].get<std::string>();
std::wstring compareUrl(L"https://api.github.com/repos/Open-Shell/Open-Shell-Menu/compare/");
compareUrl += _T(APPVEYOR_REPO_COMMIT);
compareUrl += L"...";
compareUrl += std::wstring(commitId.begin(), commitId.end());
buf = DownloadUrl(compareUrl.c_str());
auto compare = json::parse(buf.begin(), buf.end());
// then use first lines (subjects) of commit messages as changelog
auto commits = compare["commits"];
for (const auto& commit : commits)
{
auto message = commit["commit"]["message"].get<std::string>();
auto pos = message.find('\n');
if (pos != message.npos)
message.resize(pos);
news.Append(L"- ");
news.Append(CA2T(message.c_str()));
news.Append(L"\r\n");
}
}
catch (...)
{
}
}
catch (...)
{
return LOAD_BAD_FILE;
}
return LOAD_OK;
}
VersionData::TLoadResult VersionData::Load( const wchar_t *fname, bool bLoadFlags )
{
Clear();

View File

@@ -59,8 +59,7 @@ struct VersionData
LOAD_BAD_FILE, // the file is corrupted
};
TLoadResult Load();
TLoadResult LoadNightly();
TLoadResult Load(bool official);
TLoadResult Load( const wchar_t *fname, bool bLoadFlags );
private:
void operator=( const VersionData& );

View File

@@ -793,10 +793,7 @@ CString CSettingsManager::LoadSettingsXml( const wchar_t *fname )
}
string.push_back(0);
pSetting->value=CComVariant(&string[0]);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
else
{
@@ -809,10 +806,7 @@ CString CSettingsManager::LoadSettingsXml( const wchar_t *fname )
if (pSetting->type>=CSetting::TYPE_STRING)
{
pSetting->value=value;
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
else if (pSetting->type==CSetting::TYPE_BOOL || (pSetting->type==CSetting::TYPE_INT && pSetting[1].type!=CSetting::TYPE_RADIO) || pSetting->type==CSetting::TYPE_HOTKEY || pSetting->type==CSetting::TYPE_HOTKEY_ANY || pSetting->type==CSetting::TYPE_COLOR)
{
@@ -821,10 +815,7 @@ CString CSettingsManager::LoadSettingsXml( const wchar_t *fname )
pSetting->value=CComVariant(val?1:0);
else
pSetting->value=CComVariant(val);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
else if (pSetting->type==CSetting::TYPE_INT && pSetting[1].type==CSetting::TYPE_RADIO)
{
@@ -834,10 +825,7 @@ CString CSettingsManager::LoadSettingsXml( const wchar_t *fname )
if (_wcsicmp(pRadio->name,value.bstrVal)==0)
{
pSetting->value=CComVariant(val);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
break;
}
}

View File

@@ -1828,10 +1828,7 @@ void CCustomTreeDlg::SerializeData( void )
if ((m_pSetting->flags&CSetting::FLAG_DEFAULT) || wcscmp(strNew,strOld)!=0)
SetSettingsDirty();
m_pSetting->value=CComVariant(strNew);
if (m_pSetting->value==m_pSetting->defValue)
m_pSetting->flags|=CSetting::FLAG_DEFAULT;
else
m_pSetting->flags&=~CSetting::FLAG_DEFAULT;
m_pSetting->flags&=~CSetting::FLAG_DEFAULT;
ItemsChanged();
}
@@ -2811,10 +2808,7 @@ void CTreeSettingsDlg::ToggleItem( HTREEITEM hItem, bool bDefault )
{
CSettingsLockWrite lock;
pSetting->value=CComVariant(state?0:1);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
}
if (pSetting->flags&CSetting::FLAG_CALLBACK)
@@ -2838,10 +2832,7 @@ void CTreeSettingsDlg::ToggleItem( HTREEITEM hItem, bool bDefault )
{
CSettingsLockWrite lock;
pTarget->value=CComVariant(val);
if (pTarget->value==pTarget->defValue)
pTarget->flags|=CSetting::FLAG_DEFAULT;
else
pTarget->flags&=~CSetting::FLAG_DEFAULT;
pTarget->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
}
if (pParent->flags&CSetting::FLAG_CALLBACK)
@@ -3052,10 +3043,7 @@ void CTreeSettingsDlg::ApplyEditBox( void )
if (pSetting->value.vt!=VT_I4 || pSetting->value.intVal!=val)
{
pSetting->value=CComVariant(val);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
}
else if (pSetting->type==CSetting::TYPE_COLOR)
@@ -3065,10 +3053,7 @@ void CTreeSettingsDlg::ApplyEditBox( void )
if (pSetting->value.vt!=VT_I4 || pSetting->value.intVal!=val)
{
pSetting->value=CComVariant(val);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
}
else if (pSetting->type==CSetting::TYPE_HOTKEY || pSetting->type==CSetting::TYPE_HOTKEY_ANY)
@@ -3076,10 +3061,7 @@ void CTreeSettingsDlg::ApplyEditBox( void )
if (pSetting->value.vt!=VT_I4 || pSetting->value.intVal!=g_HotKey)
{
pSetting->value=CComVariant(g_HotKey);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
}
else if (pSetting->type==CSetting::TYPE_DIRECTORY)
@@ -3101,10 +3083,7 @@ void CTreeSettingsDlg::ApplyEditBox( void )
if (pSetting->value.vt!=VT_BSTR || str!=pSetting->value.bstrVal)
{
pSetting->value=CComVariant(str);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
}
}
SetSettingsDirty();

File diff suppressed because it is too large Load Diff

View File

@@ -561,6 +561,7 @@ int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpstrC
else if (wcsstr(lpstrCmdLine,L"-toggle")!=NULL) open=MSG_TOGGLE;
else if (wcsstr(lpstrCmdLine,L"-open")!=NULL) open=MSG_OPEN;
else if (wcsstr(lpstrCmdLine,L"-settings")!=NULL) open=MSG_SETTINGS;
else if (wcsstr(lpstrCmdLine,L"-reloadsettings")!=NULL) open=MSG_RELOADSETTINGS;
else if (wcsstr(lpstrCmdLine,L"-exit")!=NULL) open=MSG_EXIT;
{

View File

@@ -903,7 +903,7 @@ HRESULT STDMETHODCALLTYPE CMenuContainer::Drop( IDataObject *pDataObj, DWORD grf
else if (i<before)
skip++;
}
SortMenuItem ins(L"",FNV_HASH0,false,false,false,folderIndex*2,0);
SortMenuItem ins(L"",FNV_HASH0,false,false,folderIndex*2,0);
items.insert(items.begin()+(before-skip),ins);
SaveItemOrder(items);
}

View File

@@ -861,8 +861,7 @@ void CMenuContainer::AddFirstFolder( IShellItem *pFolder, std::vector<MenuItem>
if (bLibrary) flags&=~SFGAO_STREAM;
item.bLink=(flags&SFGAO_LINK)!=0;
item.bFolderLink=(flags&SFGAO_FOLDER && (!(flags&(SFGAO_STREAM|SFGAO_LINK)) || (s_bExpandLinks && item.bLink)));
item.bFolder=(!(options&CONTAINER_CONTROLPANEL) && !(options&CONTAINER_NOSUBFOLDERS) && item.bFolderLink);
item.bFolder=(!(options&CONTAINER_CONTROLPANEL) && !(options&CONTAINER_NOSUBFOLDERS) && (flags&SFGAO_FOLDER) && (!(flags&(SFGAO_STREAM|SFGAO_LINK)) || (s_bExpandLinks && item.bLink)));
{
CItemManager::RWLock lock(&g_ItemManager,false,CItemManager::RWLOCK_ITEMS);
if (item.pItemInfo->IsMetroLink())

View File

@@ -453,7 +453,7 @@ private:
drawType=MenuSkin::COLUMN1_ITEM;
column=row=0;
memset(&itemRect,0,sizeof(itemRect));
bFolder=bLink=bFolderLink=bPrograms=bAlignBottom=bBreak=bInline=bInlineFirst=bInlineLast=bSplit=bHasJumpList=bMetroLink=bMetroApp=bBlankSeparator=bNew=bStartScreen=bCustomAccelerator=false;
bFolder=bLink=bPrograms=bAlignBottom=bBreak=bInline=bInlineFirst=bInlineLast=bSplit=bHasJumpList=bMetroLink=bMetroApp=bBlankSeparator=bNew=bStartScreen=bCustomAccelerator=false;
priority=0;
pItem1=pItem2=NULL;
mfuHash=0;
@@ -477,7 +477,6 @@ private:
RECT itemRect;
bool bFolder:1; // this is a folder - draw arrow
bool bLink:1; // this is a link (if a link to a folder is expanded it is always single-column)
bool bFolderLink:1; // this is a folder that is not explicitly expandable - used for sorting the list-of-links style
bool bPrograms:1; // this item is part of the Start Menu folder hierarchy
bool bAlignBottom:1; // two-column menu: this item is aligned to the bottom
bool bBreak:1; // two-column menu: this item starts the second column
@@ -513,8 +512,8 @@ private:
if (priority>item.priority) return false;
if (row<item.row) return true;
if (row>item.row) return false;
if (((bFolder || bFolderLink) && !bHasJumpList) && !((item.bFolder || item.bFolderLink) && !item.bHasJumpList)) return true;
if (!((bFolder || bFolderLink) && !bHasJumpList) && ((item.bFolder || item.bFolderLink) && !item.bHasJumpList)) return false;
if ((bFolder && !bHasJumpList) && !(item.bFolder && !item.bHasJumpList)) return true;
if (!(bFolder && !bHasJumpList) && (item.bFolder && !item.bHasJumpList)) return false;
if (drive && !item.drive) return true;
if (!drive && item.drive) return false;
if (drive && item.drive) return drive<item.drive;
@@ -579,19 +578,18 @@ private:
CString name;
unsigned int nameHash;
bool bFolder;
bool bFolderLink;
bool bHasJumpList;
char priority;
char drive;
SortMenuItem( const CString &_name, unsigned _nameHash, bool _bFolder, bool _bFolderLink, bool _bHasJumpList, char _priority ,char _drive) { name=_name; nameHash=_nameHash; bFolder=_bFolder; bFolderLink=_bFolderLink; bHasJumpList=_bHasJumpList; priority=_priority; drive=_drive; }
SortMenuItem( const MenuItem &item ) { name=item.name; nameHash=item.nameHash; bFolder=item.bFolder; bFolderLink=item.bFolderLink; bHasJumpList=item.bHasJumpList; priority=item.priority; drive=item.drive; }
SortMenuItem( const CString &_name, unsigned _nameHash, bool _bFolder, bool _bHasJumpList, char _priority ,char _drive) { name=_name; nameHash=_nameHash; bFolder=_bFolder; bHasJumpList=_bHasJumpList; priority=_priority; drive=_drive; }
SortMenuItem( const MenuItem &item ) { name=item.name; nameHash=item.nameHash; bFolder=item.bFolder; bHasJumpList=item.bHasJumpList; priority=item.priority; drive=item.drive; }
bool operator<( const SortMenuItem &x ) const
{
if (priority<x.priority) return true;
if (priority>x.priority) return false;
if (((bFolder || bFolderLink) && !bHasJumpList) && !((x.bFolder || x.bFolderLink) && !x.bHasJumpList)) return true;
if (!((bFolder || bFolderLink) && !bHasJumpList) && ((x.bFolder || x.bFolderLink) && !x.bHasJumpList)) return false;
if ((bFolder && !bHasJumpList) && !(x.bFolder && !x.bHasJumpList)) return true;
if (!(bFolder && !bHasJumpList) && (x.bFolder && !x.bHasJumpList)) return false;
if (drive && !x.drive) return true;
if (!drive && x.drive) return false;
if (drive && x.drive) return drive<x.drive;

View File

@@ -3624,10 +3624,7 @@ void CCustomMenuDlg7::SerializeData( void )
stringBuilder.push_back(0);
CSettingsLockWrite lock;
m_pSetting->value=CComVariant(&stringBuilder[0]);
if (m_pSetting->value==m_pSetting->defValue)
m_pSetting->flags|=CSetting::FLAG_DEFAULT;
else
m_pSetting->flags&=~CSetting::FLAG_DEFAULT;
m_pSetting->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
}
@@ -3854,10 +3851,7 @@ LRESULT CMenuStyleDlg::OnClick( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL&
CheckDlgButton(IDC_RADIO_CLASSIC,pSetting->value.intVal==MENU_CLASSIC1?BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(IDC_RADIO_TWO_COLUMNS,pSetting->value.intVal==MENU_CLASSIC2?BST_CHECKED:BST_UNCHECKED);
CheckDlgButton(IDC_RADIO_WIN7,pSetting->value.intVal==MENU_WIN7?BST_CHECKED:BST_UNCHECKED);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
SetSettingsStyle(styleFlag,CSetting::FLAG_MENU_MASK);
@@ -3875,10 +3869,7 @@ LRESULT CMenuStyleDlg::OnEnabled( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL
CSettingsLockWrite lock;
CSetting *pSetting=FindSetting(L"EnableStartButton");
pSetting->value=CComVariant(bEnabled);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
}
Update(false);
@@ -3917,10 +3908,7 @@ LRESULT CMenuStyleDlg::OnButtonStyle( WORD wNotifyCode, WORD wID, HWND hWndCtl,
CSettingsLockWrite lock;
CSetting *pSetting=FindSetting(L"StartButtonType");
pSetting->value=CComVariant(style);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
}
Update(false);
@@ -3944,10 +3932,7 @@ LRESULT CMenuStyleDlg::OnPick( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& b
CSettingsLockWrite lock;
CSetting *pSetting=FindSetting(L"StartButtonPath");
pSetting->value=CComVariant(path);
if (pSetting->value==pSetting->defValue)
pSetting->flags|=CSetting::FLAG_DEFAULT;
else
pSetting->flags&=~CSetting::FLAG_DEFAULT;
pSetting->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsDirty();
}
Update(true);
@@ -4586,10 +4571,7 @@ void UpgradeSettings( bool bShared )
items.Replace(L"Command=recent_items\n",L"Command=recent_programs\n");
items.Replace(L"Command=control_panel_categories\n",L"Command=control_panel\n");
pSettingItems->value=items;
if (pSettingItems->value==pSettingItems->defValue)
pSettingItems->flags|=CSetting::FLAG_DEFAULT;
else
pSettingItems->flags&=~CSetting::FLAG_DEFAULT;
pSettingItems->flags&=~CSetting::FLAG_DEFAULT;
}
// set initial menu style
@@ -4597,10 +4579,7 @@ void UpgradeSettings( bool bShared )
if (!pSettingStyle->IsLocked())
{
pSettingStyle->value=(bTwoColumns?1:0);
if (pSettingStyle->value==pSettingStyle->defValue)
pSettingStyle->flags|=CSetting::FLAG_DEFAULT;
else
pSettingStyle->flags&=~CSetting::FLAG_DEFAULT;
pSettingStyle->flags&=~CSetting::FLAG_DEFAULT;
SetSettingsStyle(bTwoColumns?CSetting::FLAG_MENU_CLASSIC2:CSetting::FLAG_MENU_CLASSIC1,CSetting::FLAG_MENU_MASK);
}
@@ -4612,10 +4591,7 @@ void UpgradeSettings( bool bShared )
if (!pSetting->IsDefault())
{
pSettingSkin->value=pSetting->value;
if (pSettingSkin->value==pSettingSkin->defValue)
pSettingSkin->flags|=CSetting::FLAG_DEFAULT;
else
pSettingSkin->flags&=~CSetting::FLAG_DEFAULT;
pSettingSkin->flags&=~CSetting::FLAG_DEFAULT;
}
}
CSetting *pSettingOpt=FindSetting(bTwoColumns?L"SkinOptionsC2":L"SkinOptionsC1");
@@ -4625,10 +4601,7 @@ void UpgradeSettings( bool bShared )
if (!pSetting->IsDefault())
{
pSettingOpt->value=pSetting->value;
if (pSettingOpt->value==pSettingOpt->defValue)
pSettingOpt->flags|=CSetting::FLAG_DEFAULT;
else
pSettingOpt->flags&=~CSetting::FLAG_DEFAULT;
pSettingOpt->flags&=~CSetting::FLAG_DEFAULT;
}
}
CSetting *pSettingVar=FindSetting(bTwoColumns?L"SkinVariationC2":L"SkinVariationC1");
@@ -4638,10 +4611,7 @@ void UpgradeSettings( bool bShared )
if (!pSetting->IsDefault())
{
pSettingVar->value=pSetting->value;
if (pSettingVar->value==pSettingVar->defValue)
pSettingVar->flags|=CSetting::FLAG_DEFAULT;
else
pSettingVar->flags&=~CSetting::FLAG_DEFAULT;
pSettingVar->flags&=~CSetting::FLAG_DEFAULT;
}
}
@@ -4653,10 +4623,7 @@ void UpgradeSettings( bool bShared )
if (!pSetting->IsDefault())
{
pSettingSkin->value=pSetting->value;
if (pSettingSkin->value==pSettingSkin->defValue)
pSettingSkin->flags|=CSetting::FLAG_DEFAULT;
else
pSettingSkin->flags&=~CSetting::FLAG_DEFAULT;
pSettingSkin->flags&=~CSetting::FLAG_DEFAULT;
}
}
pSettingOpt=FindSetting(L"SkinOptionsA");
@@ -4666,10 +4633,7 @@ void UpgradeSettings( bool bShared )
if (!pSetting->IsDefault())
{
pSettingOpt->value=pSetting->value;
if (pSettingOpt->value==pSettingOpt->defValue)
pSettingOpt->flags|=CSetting::FLAG_DEFAULT;
else
pSettingOpt->flags&=~CSetting::FLAG_DEFAULT;
pSettingOpt->flags&=~CSetting::FLAG_DEFAULT;
}
}
pSettingVar=FindSetting(L"SkinVariationA");
@@ -4679,10 +4643,7 @@ void UpgradeSettings( bool bShared )
if (!pSetting->IsDefault())
{
pSettingVar->value=pSetting->value;
if (pSettingVar->value==pSettingVar->defValue)
pSettingVar->flags|=CSetting::FLAG_DEFAULT;
else
pSettingVar->flags&=~CSetting::FLAG_DEFAULT;
pSettingVar->flags&=~CSetting::FLAG_DEFAULT;
}
}
}

View File

@@ -1300,7 +1300,7 @@ BEGIN
IDS_NO_DBLCLICK "Single-click to open folder shortcuts"
IDS_NO_DBLCLICK_TIP "When this is checked, single-clicking shortcuts (links) to folders will open them in explorer. Hovering over the shortcut will still expand sub-menus"
IDS_BOLD_SETTINGS "Highlight modified settings"
IDS_BOLD_SETTINGS_TIP "When this is checked, settings that have been modified from their defaults will be highlighted in bold"
IDS_BOLD_SETTINGS_TIP "When this is checked, settings that have been modified will be highlighted in bold"
IDS_SEARCH_HINT "Custom search hint"
IDS_SEARCH_HINT_TIP "When this is checked, the hint text in the search box will be replaced"
IDS_NEW_SEARCH_HINT "Custom search hint text"

View File

@@ -18,6 +18,8 @@ deploy:
- provider: GitHub
tag: v$(APPVEYOR_BUILD_VERSION)
release: $(APPVEYOR_BUILD_VERSION)
on:
APPVEYOR_ACCOUNT_NAME: passionate-coder
auth_token:
secure: 01CsOFRdj9KFb1hp/RlFK/F1UzGhzwGQfok6OoqcL1ipbOwRF//Phbdm7iaFVWIx
secure: D0QZnRZfea3qJlWOwrxE6M2jrbiSrOfz/6U7RzdeeG8N0qNDFKI7LFjYyw2I/PcR
prerelease: true