Bläddra i källkod

code refactor, reduce updating interval of maximize/restore button

MaysWind 3 år sedan
förälder
incheckning
adacab3118
3 ändrade filer med 27 tillägg och 18 borttagningar
  1. 6 7
      app/index.html
  2. 17 7
      app/scripts/core/root.js
  3. 4 4
      app/styles/core/app-title.css

+ 6 - 7
app/index.html

@@ -88,19 +88,18 @@
             <div class="navbar-app-title pull-right">
                 <ul class="nav navbar-nav">
                     <li>
-                        <a class="toolbar btn-title-minimize" title="{{'Minimize' | translate}}" ng-click="minimizeWindow()">
-                            <i class="fa fa-window-minimize"></i>
+                        <a id="native-title-minimize-btn" class="toolbar btn-title-minimize" title="{{'Minimize' | translate}}" ng-click="minimizeWindow()">
+                            <i id="native-title-minimize-icon" class="fa fa-window-minimize"></i>
                         </a>
                     </li>
                     <li>
-                        <a class="toolbar btn-title-maxmize" title="{{(nativeWindowContext.maximized ? 'Restore Down' : 'Maximize') | translate}}" ng-click="maximizeOrRestoreWindow()">
-                            <i class="fa fa-window-maximize" ng-if="!nativeWindowContext.maximized"></i>
-                            <i class="fa fa-window-restore ng-cloak" ng-if="nativeWindowContext.maximized"></i>
+                        <a id="native-title-maximize-btn" class="toolbar btn-title-maximize" title="{{'Maximize' | translate}}" ng-click="maximizeOrRestoreWindow()">
+                            <i id="native-title-maximize-icon" class="fa fa-window-maximize"></i>
                         </a>
                     </li>
                     <li>
-                        <a class="toolbar btn-title-close" title="{{'Close' | translate}}" ng-click="exitApp()">
-                            <i class="fa fa-lg fa-close"></i>
+                        <a id="native-title-close-btn" class="toolbar btn-title-close" title="{{'Close' | translate}}" ng-click="exitApp()">
+                            <i id="native-title-close-icon" class="fa fa-lg fa-close"></i>
                         </a>
                     </li>
                 </ul>

+ 17 - 7
app/scripts/core/root.js

@@ -202,6 +202,16 @@
             return angular.element('body').hasClass('sidebar-open');
         };
 
+        var toggleMaximizeButton = function () {
+            angular.element('#native-title-maximize-icon').addClass('fa-window-maximize').removeClass('fa-window-restore');
+            angular.element('#native-title-maximize-btn').attr('title', ariaNgLocalizationService.getLocalizedText('Maximize'));
+        };
+
+        var toggleRestoreButton = function () {
+            angular.element('#native-title-maximize-icon').addClass('fa-window-restore').removeClass('fa-window-maximize');
+            angular.element('#native-title-maximize-btn').attr('title', ariaNgLocalizationService.getLocalizedText('Restore Down'));
+        };
+
         $rootScope.currentTheme = 'light';
 
         $rootScope.searchContext = {
@@ -466,14 +476,14 @@
             }
         };
 
-        $rootScope.nativeWindowContext = {
-            maximized: false
-        };
-
         $rootScope.useCustomAppTitle = ariaNgNativeElectronService.useCustomAppTitle();
 
         ariaNgNativeElectronService.getWindowMaximizedAsync(function (maximized) {
-            $rootScope.nativeWindowContext.maximized = maximized;
+            if (maximized) {
+                toggleRestoreButton();
+            } else {
+                toggleMaximizeButton();
+            }
         });
 
         $window.addEventListener('keydown', function (event) {
@@ -495,11 +505,11 @@
         }, true);
 
         ariaNgNativeElectronService.onMainWindowMaximize(function () {
-            $rootScope.nativeWindowContext.maximized = true;
+            toggleRestoreButton();
         });
 
         ariaNgNativeElectronService.onMainWindowUnmaximize(function () {
-            $rootScope.nativeWindowContext.maximized = false;
+            toggleMaximizeButton();
         });
 
         ariaNgNativeElectronService.onMainProcessNavigateTo(function (event, routeUrl) {

+ 4 - 4
app/styles/core/app-title.css

@@ -52,7 +52,7 @@
     padding: 0 8px 0 8px;
 }
 
-.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maxmize {
+.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maximize {
     padding: 0 6px 0 8px;
 }
 
@@ -68,13 +68,13 @@
 
 .custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-minimize:hover,
 .custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-minimize:focus,
-.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maxmize:hover,
-.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maxmize:focus{
+.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maximize:hover,
+.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maximize:focus{
     color: #0080ff !important;
 }
 
 .custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-minimize:active,
-.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maxmize:active{
+.custom-app-title .main-header .navbar-app-title .navbar-nav > li > a.btn-title-maximize:active{
     color: #0069c3 !important;
 }