[chronojump] DB: 1.41. preferences maximized can be undecorated



commit 24280454b35978ebfb68e46738c28f7027647e9f
Author: Xavier de Blas <xaviblas gmail com>
Date:   Sat Apr 15 22:32:08 2017 +0200

    DB: 1.41. preferences maximized can be undecorated

 glade/preferences_win.glade |   31 +++++++++++++++++++++++++++----
 src/config.cs               |    4 ++--
 src/gui/networks.cs         |   12 ++++++++----
 src/gui/preferences.cs      |   41 ++++++++++++++++++++++++++++++++++-------
 src/preferences.cs          |    3 ++-
 src/sqlite/main.cs          |   13 +++++++++++--
 src/sqlite/preferences.cs   |    5 +++--
 7 files changed, 87 insertions(+), 22 deletions(-)
---
diff --git a/glade/preferences_win.glade b/glade/preferences_win.glade
index 2eb334c..1b2dc47 100644
--- a/glade/preferences_win.glade
+++ b/glade/preferences_win.glade
@@ -53,6 +53,7 @@
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="draw_indicator">True</property>
+                                <signal name="toggled" handler="on_check_appearance_maximized_toggled" 
swapped="no"/>
                               </widget>
                               <packing>
                                 <property name="expand">False</property>
@@ -61,6 +62,28 @@
                               </packing>
                             </child>
                             <child>
+                              <widget class="GtkAlignment" id="alignment_undecorated">
+                                <property name="visible">True</property>
+                                <property name="can_focus">False</property>
+                                <property name="bottom_padding">10</property>
+                                <property name="left_padding">30</property>
+                                <child>
+                                  <widget class="GtkCheckButton" id="check_appearance_maximized_undecorated">
+                                    <property name="label" translatable="yes">Undecorated (remove title bar 
and resize controls)</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="draw_indicator">True</property>
+                                  </widget>
+                                </child>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="fill">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
                               <widget class="GtkCheckButton" id="check_appearance_person_win_hide">
                                 <property name="label" translatable="yes">Persons on top</property>
                                 <property name="visible">True</property>
@@ -71,7 +94,7 @@
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
-                                <property name="position">1</property>
+                                <property name="position">2</property>
                               </packing>
                             </child>
                             <child>
@@ -92,7 +115,7 @@
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
-                                <property name="position">2</property>
+                                <property name="position">3</property>
                               </packing>
                             </child>
                             <child>
@@ -107,7 +130,7 @@
                               <packing>
                                 <property name="expand">False</property>
                                 <property name="fill">False</property>
-                                <property name="position">3</property>
+                                <property name="position">4</property>
                               </packing>
                             </child>
                             <child>
@@ -150,7 +173,7 @@
                               <packing>
                                 <property name="expand">True</property>
                                 <property name="fill">True</property>
-                                <property name="position">4</property>
+                                <property name="position">5</property>
                               </packing>
                             </child>
                           </widget>
diff --git a/src/config.cs b/src/config.cs
index b4149e5..a418ed2 100644
--- a/src/config.cs
+++ b/src/config.cs
@@ -26,7 +26,7 @@ public class Config
 {
        public enum SessionModeEnum { STANDARD, UNIQUE, MONTHLY }
 
-       public bool Maximized;
+       public Preferences.MaximizedTypes Maximized;
        public bool CustomButtons;
        public bool UseVideo;
        public bool OnlyEncoderGravitatory;
@@ -42,7 +42,7 @@ public class Config
 
        public Config()
        {
-               Maximized = false;
+               Maximized = Preferences.MaximizedTypes.NO;
                CustomButtons = false;
                UseVideo = true;
                
diff --git a/src/gui/networks.cs b/src/gui/networks.cs
index 0187302..99fd990 100644
--- a/src/gui/networks.cs
+++ b/src/gui/networks.cs
@@ -99,10 +99,14 @@ public partial class ChronoJumpWindow
                 * But note this has to be executed only if it has changed!!
                 */
 
-               if(configChronojump.Maximized)
-                       app1.Maximize();
-               else
+               if(configChronojump.Maximized == Preferences.MaximizedTypes.NO)
+               {
                        app1.Unmaximize();
+                       app1.Decorated = true;
+               } else {
+                       app1.Maximize();
+                       app1.Decorated = (configChronojump.Maximized != 
Preferences.MaximizedTypes.YESUNDECORATED);
+               }
 
                if(configChronojump.CustomButtons)
                {
@@ -186,7 +190,7 @@ public partial class ChronoJumpWindow
                if(configChronojump.SessionMode == Config.SessionModeEnum.UNIQUE || 
configChronojump.SessionMode == Config.SessionModeEnum.MONTHLY)
                {
                        main_menu.Visible = false;
-                       app1.Decorated = false;
+                       //app1.Decorated = false;
                        hbox_menu_and_preferences_outside_menu.Visible = true;
 
                        if(configChronojump.SessionMode == Config.SessionModeEnum.UNIQUE)
diff --git a/src/gui/preferences.cs b/src/gui/preferences.cs
index 59c791a..7692f3c 100644
--- a/src/gui/preferences.cs
+++ b/src/gui/preferences.cs
@@ -47,8 +47,10 @@ public class PreferencesWindow
 
        //appearance tab
        [Widget] Gtk.CheckButton check_appearance_maximized;
+       [Widget] Gtk.CheckButton check_appearance_maximized_undecorated;
        [Widget] Gtk.CheckButton check_appearance_person_win_hide;
        [Widget] Gtk.CheckButton check_appearance_encoder_only_bars;
+       [Widget] Gtk.Alignment alignment_undecorated;
        [Widget] Gtk.Alignment alignment_restart;
 
        //database tab
@@ -201,10 +203,17 @@ public class PreferencesWindow
                PreferencesWindowBox.createComboLanguage();
 
                //appearence tab
-               if(preferences.maximized)
-                       PreferencesWindowBox.check_appearance_maximized.Active = true;
-               else
+               if(preferences.maximized == Preferences.MaximizedTypes.NO)
+               {
                        PreferencesWindowBox.check_appearance_maximized.Active = false;
+                       PreferencesWindowBox.alignment_undecorated.Visible = false;
+               }
+               else {
+                       PreferencesWindowBox.check_appearance_maximized.Active = true;
+                       PreferencesWindowBox.alignment_undecorated.Visible = true;
+                       PreferencesWindowBox.check_appearance_maximized_undecorated.Active =
+                               (preferences.maximized == Preferences.MaximizedTypes.YESUNDECORATED);
+               }
 
                if(preferences.personWinHide)
                        PreferencesWindowBox.check_appearance_person_win_hide.Active = true;
@@ -428,6 +437,11 @@ public class PreferencesWindow
                combo_camera.Active = UtilGtk.ComboMakeActive(devices, devices[current]);
        }
                
+       private void on_check_appearance_maximized_toggled (object obj, EventArgs args)
+       {
+               alignment_undecorated.Visible = check_appearance_maximized.Active;
+       }
+
        private void on_check_appearance_encoder_only_bars_toggled (object obj, EventArgs args) 
        {
                alignment_restart.Visible = ! check_appearance_encoder_only_bars.Active;
@@ -946,7 +960,6 @@ public class PreferencesWindow
                button_accept.Sensitive = ! start;
        }
 
-
        //change stuff in Sqlite and in preferences object that will be retrieved by GetPreferences
        void on_button_accept_clicked (object o, EventArgs args)
        {
@@ -954,10 +967,13 @@ public class PreferencesWindow
 
 
                //appearance tab
-               if( preferences.maximized != PreferencesWindowBox.check_appearance_maximized.Active ) {
-                       SqlitePreferences.Update("maximized", 
PreferencesWindowBox.check_appearance_maximized.Active.ToString(), true);
-                       preferences.maximized = PreferencesWindowBox.check_appearance_maximized.Active;
+               Preferences.MaximizedTypes maximizedTypeFromGUI = get_maximized_from_gui();
+               if(preferences.maximized != maximizedTypeFromGUI)
+               {
+                       SqlitePreferences.Update("maximized", maximizedTypeFromGUI.ToString(), true);
+                       preferences.maximized = maximizedTypeFromGUI;
                }
+
                if( preferences.personWinHide != PreferencesWindowBox.check_appearance_person_win_hide.Active 
) {
                        SqlitePreferences.Update("personWinHide", 
PreferencesWindowBox.check_appearance_person_win_hide.Active.ToString(), true);
                        preferences.personWinHide = 
PreferencesWindowBox.check_appearance_person_win_hide.Active;
@@ -1250,6 +1266,17 @@ public class PreferencesWindow
                PreferencesWindowBox = null;
        }
 
+       private Preferences.MaximizedTypes get_maximized_from_gui()
+       {
+               if( ! PreferencesWindowBox.check_appearance_maximized.Active )
+                       return Preferences.MaximizedTypes.NO;
+
+               if( ! PreferencesWindowBox.check_appearance_maximized_undecorated.Active )
+                       return Preferences.MaximizedTypes.YES;
+
+               return Preferences.MaximizedTypes.YESUNDECORATED;
+       }
+
        private bool preferencesChange(string prefName, bool prefValue, bool bNew) 
        {
                if(prefValue != bNew)
diff --git a/src/preferences.cs b/src/preferences.cs
index 176e570..25a0074 100644
--- a/src/preferences.cs
+++ b/src/preferences.cs
@@ -28,7 +28,8 @@ public class Preferences
         */
 
        //appearance tab
-       public bool maximized;
+       public enum MaximizedTypes { NO, YES, YESUNDECORATED};
+       public MaximizedTypes maximized;
        public bool personWinHide;
        public bool encoderCaptureShowOnlyBars;
 
diff --git a/src/sqlite/main.cs b/src/sqlite/main.cs
index f19bf16..ec1bfb5 100644
--- a/src/sqlite/main.cs
+++ b/src/sqlite/main.cs
@@ -125,7 +125,7 @@ class Sqlite
        /*
         * Important, change this if there's any update to database
         */
-       static string lastChronojumpDatabaseVersion = "1.40";
+       static string lastChronojumpDatabaseVersion = "1.41";
 
        public Sqlite() {
        }
@@ -2153,12 +2153,20 @@ class Sqlite
                        {
                                LogB.SQL("Added to preferences: maximized, personWinHide, 
encoderCaptureShowOnlyBars");
 
-                               SqlitePreferences.Insert ("maximized", "False");
+                               SqlitePreferences.Insert ("maximized", "0");
                                SqlitePreferences.Insert ("personWinHide", "False");
                                SqlitePreferences.Insert ("encoderCaptureShowOnlyBars", "False");
 
                                currentVersion = updateVersion("1.40");
                        }
+                       if(currentVersion == "1.40")
+                       {
+                               LogB.SQL("Updated preferences maximized: from true/false to 
no/yes/undecorated");
+
+                               SqlitePreferences.Update ("maximized", 
Preferences.MaximizedTypes.NO.ToString(), true);
+
+                               currentVersion = updateVersion("1.41");
+                       }
 
 
                        // --- add more updates here
@@ -2337,6 +2345,7 @@ class Sqlite
                SqliteTrigger.createTableTrigger();
 
                //changes [from - to - desc]
+               //1.40 - 1.41 Converted DB to 1.41 Updated preferences maximized: from true/false to 
no/yes/undecorated
                //1.39 - 1.40 Converted DB to 1.40 Added to preferences: maximized, personWinHide, 
encoderCaptureShowOnlyBars
                //1.38 - 1.39 Converted DB to 1.39 Created trigger table 
                //1.37 - 1.38 Converted DB to 1.38 encoderConfiguration always with 12 values. Empty 
encoderConfiguration list_d as '' instead of '-1' or '0'
diff --git a/src/sqlite/preferences.cs b/src/sqlite/preferences.cs
index ddc9eb2..7e52543 100644
--- a/src/sqlite/preferences.cs
+++ b/src/sqlite/preferences.cs
@@ -51,7 +51,7 @@ class SqlitePreferences : Sqlite
                                        Insert ("chronopicPort", Constants.ChronopicDefaultPortLinux, 
dbcmdTr);
 
                                //appearance
-                               Insert ("maximized", "False", dbcmdTr);
+                               Insert ("maximized", Preferences.MaximizedTypes.NO.ToString(), dbcmdTr);
                                Insert ("personWinHide", "False", dbcmdTr);
                                Insert ("encoderCaptureShowOnlyBars", "False", dbcmdTr);
                                Insert ("digitsNumber", "3", dbcmdTr);
@@ -205,7 +205,8 @@ class SqlitePreferences : Sqlite
 
                        //these are sent to preferences window
                        if(reader[0].ToString() == "maximized")
-                               preferences.maximized = reader[1].ToString() == "True";
+                               preferences.maximized = (Preferences.MaximizedTypes)
+                                       Enum.Parse(typeof(Preferences.MaximizedTypes), reader[1].ToString());
                        else if(reader[0].ToString() == "personWinHide")
                                preferences.personWinHide = reader[1].ToString() == "True";
                        else if(reader[0].ToString() == "encoderCaptureShowOnlyBars")


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]