Fix Windows compilation issues
authorKevin Sawicki <kevinsawicki@gmail.com>
Mon, 11 Jul 2016 19:29:01 +0000 (12:29 -0700)
committerKevin Sawicki <kevinsawicki@gmail.com>
Tue, 12 Jul 2016 16:10:47 +0000 (09:10 -0700)
atom/browser/browser_win.cc

index 88c2df3..522fffa 100644 (file)
@@ -274,47 +274,35 @@ bool Browser::SetBadgeCount(int count) {
 }
 
 void Browser::SetLoginItemSettings(LoginItemSettings settings) {
-  base::FilePath path;
-  if (!PathService::Get(base::FILE_EXE, &path)) {
-    LOG(ERROR) << "Error getting app exe path";
-    return;
-  }
-
-  // Main Registry Key
-  HKEY root = HKEY_CURRENT_USER;
-  std::string keyPathStr = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
-  std::wstring keyPath = std::wstring(keyPathStr.begin(), keyPathStr.end());
-
-  // Executable Path
-  std::wstring exePath(path.value());
-  base::win::RegKey key(root, keyPath.c_str(), KEY_ALL_ACCESS);
-
-  if (settings.open_at_login)
-    key.WriteValue(GetAppUserModelID(), exePath.c_str());
-  else {
-    key.DeleteValue(GetAppUserModelID())
+  std::wstring keyPath = L"Software\\Microsoft\\Windows\\CurrentVersion\\Run";
+  base::win::RegKey key(HKEY_CURRENT_USER, keyPath.c_str(), KEY_ALL_ACCESS);
+
+  if (settings.open_at_login) {
+    base::FilePath path;
+    if (PathService::Get(base::FILE_EXE, &path)) {
+      std::wstring exePath(path.value());
+      key.WriteValue(GetAppUserModelID(), exePath.c_str());
+    }
+  } else {
+    key.DeleteValue(GetAppUserModelID());
   }
 }
 
-LoginItemSettings Browser::GetLoginItemSettings() {
+Browser::LoginItemSettings Browser::GetLoginItemSettings() {
   LoginItemSettings settings;
+  std::wstring keyPath = L"Software\\Microsoft\\Windows\\CurrentVersion\\Run";
+  base::win::RegKey key(HKEY_CURRENT_USER, keyPath.c_str(), KEY_ALL_ACCESS);
+  std::wstring keyVal;
 
-  base::FilePath path;
-  if (!PathService::Get(base::FILE_EXE, &path)) {
-    LOG(ERROR) << "Error getting app exe path";
-    return;
+  if (!FAILED(key.ReadValue(GetAppUserModelID(), &keyVal))) {
+    base::FilePath path;
+    if (PathService::Get(base::FILE_EXE, &path)) {
+      std::wstring exePath(path.value());
+      settings.open_at_login = keyVal == exePath;
+    }
   }
 
-  // Main Registry Key
-  HKEY root = HKEY_CURRENT_USER;
-  std::string keyPathStr = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
-  std::wstring keyPath = std::wstring(keyPathStr.begin(), keyPathStr.end());
-
-  // Executable Path
-  std::wstring exePath(path.value());
-  base::win::RegKey key(root, keyPath.c_str(), KEY_ALL_ACCESS);
-
-  settings.open_at_login = key.HasValue(GetAppUserModelID());
+  return settings;
 }