[gnome-terminal] Bug 155147 - gnome-terminal default size only by setting --geometry



commit b84547ebc07077f958fa73fea0866b177d64f393
Author: Behdad Esfahbod <behdad behdad org>
Date:   Tue Dec 15 01:47:27 2009 -0500

    Bug 155147 - gnome-terminal default size only by setting --geometry
    
    Add per-profile (and hence gconf) options for setting default size.

 src/gnome-terminal.schemas.in |   28 ++++++++
 src/profile-editor.c          |   16 ++++
 src/profile-preferences.glade |  152 +++++++++++++++++++++++++++++++++++++++++
 src/terminal-profile.c        |    8 ++
 src/terminal-profile.h        |    2 +
 src/terminal-screen.c         |    4 +
 6 files changed, 210 insertions(+), 0 deletions(-)
---
diff --git a/src/gnome-terminal.schemas.in b/src/gnome-terminal.schemas.in
index 3f03fe7..4c5230a 100644
--- a/src/gnome-terminal.schemas.in
+++ b/src/gnome-terminal.schemas.in
@@ -296,6 +296,34 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/gnome-terminal/profiles/Default/default_size_columns</key>
+      <applyto>/apps/gnome-terminal/profiles/Default/default_size_columns</applyto>
+      <owner>gnome-terminal</owner>
+      <type>int</type>
+      <default>80</default>
+      <locale name="C">
+         <short>Default number of columns</short>
+         <long>
+	   Number of columns in newly created terminal windows.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/gnome-terminal/profiles/Default/default_size_rows</key>
+      <applyto>/apps/gnome-terminal/profiles/Default/default_size_rows</applyto>
+      <owner>gnome-terminal</owner>
+      <type>int</type>
+      <default>24</default>
+      <locale name="C">
+         <short>Default number of rows</short>
+         <long>
+	   Number of rows in newly created terminal windows.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/gnome-terminal/profiles/Default/scrollbar_position</key>
       <applyto>/apps/gnome-terminal/profiles/Default/scrollbar_position</applyto>
       <owner>gnome-terminal</owner>
diff --git a/src/profile-editor.c b/src/profile-editor.c
index 491c4e9..8073a4b 100644
--- a/src/profile-editor.c
+++ b/src/profile-editor.c
@@ -236,6 +236,20 @@ profile_notify_sensitivity_cb (TerminalProfile *profile,
     SET_SENSITIVE ("word-chars-entry",
                    !terminal_profile_property_locked (profile, TERMINAL_PROFILE_WORD_CHARS));
 
+  if (!prop_name ||
+      prop_name == I_(TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS) ||
+      prop_name == I_(TERMINAL_PROFILE_DEFAULT_SIZE_ROWS))
+    {
+      gboolean columns_locked = terminal_profile_property_locked (profile, TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS);
+      gboolean rows_locked = terminal_profile_property_locked (profile, TERMINAL_PROFILE_DEFAULT_SIZE_ROWS);
+
+      SET_SENSITIVE ("default-size-label", !columns_locked || !rows_locked);
+      SET_SENSITIVE ("default-size-columns-label", !columns_locked);
+      SET_SENSITIVE ("default-size-columns-spinbutton", !columns_locked);
+      SET_SENSITIVE ("default-size-rows-label", !rows_locked);
+      SET_SENSITIVE ("default-size-rows-spinbutton", !rows_locked);
+    }
+
   if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SCROLLBAR_POSITION))
     SET_SENSITIVE ("scrollbar-position-combobox",
                    !terminal_profile_property_locked (profile, TERMINAL_PROFILE_SCROLLBAR_POSITION));
@@ -816,6 +830,8 @@ terminal_profile_edit (TerminalProfile *profile,
   CONNECT ("cursor-shape-combobox", TERMINAL_PROFILE_CURSOR_SHAPE);
   CONNECT ("custom-command-entry", TERMINAL_PROFILE_CUSTOM_COMMAND);
   CONNECT ("darken-background-scale", TERMINAL_PROFILE_BACKGROUND_DARKNESS);
+  CONNECT ("default-size-columns-spinbutton", TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS);
+  CONNECT ("default-size-rows-spinbutton", TERMINAL_PROFILE_DEFAULT_SIZE_ROWS);
   CONNECT ("delete-binding-combobox", TERMINAL_PROFILE_DELETE_BINDING);
   CONNECT ("exit-action-combobox", TERMINAL_PROFILE_EXIT_ACTION);
   CONNECT ("font-selector", TERMINAL_PROFILE_FONT);
diff --git a/src/profile-preferences.glade b/src/profile-preferences.glade
index dd1f259..a725d36 100644
--- a/src/profile-preferences.glade
+++ b/src/profile-preferences.glade
@@ -401,6 +401,158 @@ Underline</property>
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox141">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">12</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="default-size-label">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Default si_ze:</property>
+		      <property name="use_underline">True</property>
+		      <property name="use_markup">False</property>
+		      <property name="justify">GTK_JUSTIFY_LEFT</property>
+		      <property name="wrap">False</property>
+		      <property name="selectable">False</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox143">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">6</property>
+
+		      <child>
+			<widget class="GtkSpinButton" id="default-size-columns-spinbutton">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="climb_rate">1</property>
+			  <property name="digits">0</property>
+			  <property name="numeric">False</property>
+			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			  <property name="snap_to_ticks">False</property>
+			  <property name="wrap">False</property>
+			  <property name="adjustment">80 1 2048 1 10 10</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="default-size-columns-label">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">columns</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox142">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">6</property>
+
+		      <child>
+			<widget class="GtkSpinButton" id="default-size-rows-spinbutton">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="climb_rate">1</property>
+			  <property name="digits">0</property>
+			  <property name="numeric">False</property>
+			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			  <property name="snap_to_ticks">False</property>
+			  <property name="wrap">False</property>
+			  <property name="adjustment">24 1 512 1 10 10</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="default-size-rows-label">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">rows</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+		<packing>
+		  <property name="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
 	    </widget>
 	    <packing>
 	      <property name="tab_expand">False</property>
diff --git a/src/terminal-profile.c b/src/terminal-profile.c
index 565d092..f050e87 100644
--- a/src/terminal-profile.c
+++ b/src/terminal-profile.c
@@ -59,6 +59,8 @@ enum
   PROP_CURSOR_BLINK_MODE,
   PROP_CURSOR_SHAPE,
   PROP_CUSTOM_COMMAND,
+  PROP_DEFAULT_SIZE_COLUMNS,
+  PROP_DEFAULT_SIZE_ROWS,
   PROP_DEFAULT_SHOW_MENUBAR,
   PROP_DELETE_BINDING,
   PROP_EXIT_ACTION,
@@ -98,6 +100,8 @@ enum
 #define KEY_CURSOR_SHAPE "cursor_shape"
 #define KEY_CUSTOM_COMMAND "custom_command"
 #define KEY_DEFAULT_SHOW_MENUBAR "default_show_menubar"
+#define KEY_DEFAULT_SIZE_COLUMNS "default_size_columns"
+#define KEY_DEFAULT_SIZE_ROWS "default_size_rows"
 #define KEY_DELETE_BINDING "delete_binding"
 #define KEY_EXIT_ACTION "exit_action"
 #define KEY_FONT "font"
@@ -134,6 +138,8 @@ enum
 #define DEFAULT_CURSOR_SHAPE          (VTE_CURSOR_SHAPE_BLOCK)
 #define DEFAULT_CUSTOM_COMMAND        ("")
 #define DEFAULT_DEFAULT_SHOW_MENUBAR  (TRUE)
+#define DEFAULT_DEFAULT_SIZE_COLUMNS  (80)
+#define DEFAULT_DEFAULT_SIZE_ROWS     (24)
 #define DEFAULT_DELETE_BINDING        (VTE_ERASE_DELETE_SEQUENCE)
 #define DEFAULT_EXIT_ACTION           (TERMINAL_EXIT_CLOSE)
 #define DEFAULT_FONT                  ("Monospace 12")
@@ -1316,6 +1322,8 @@ terminal_profile_class_init (TerminalProfileClass *klass)
   TERMINAL_PROFILE_PROPERTY_ENUM (SCROLLBAR_POSITION, TERMINAL_TYPE_SCROLLBAR_POSITION, DEFAULT_SCROLLBAR_POSITION, KEY_SCROLLBAR_POSITION);
   TERMINAL_PROFILE_PROPERTY_ENUM (TITLE_MODE, TERMINAL_TYPE_TITLE_MODE, DEFAULT_TITLE_MODE, KEY_TITLE_MODE);
 
+  TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_COLUMNS, 1, 1024, DEFAULT_DEFAULT_SIZE_COLUMNS, KEY_DEFAULT_SIZE_COLUMNS);
+  TERMINAL_PROFILE_PROPERTY_INT (DEFAULT_SIZE_ROWS, 1, 1024, DEFAULT_DEFAULT_SIZE_ROWS, KEY_DEFAULT_SIZE_ROWS);
   TERMINAL_PROFILE_PROPERTY_INT (SCROLLBACK_LINES, 1, G_MAXINT, DEFAULT_SCROLLBACK_LINES, KEY_SCROLLBACK_LINES);
 
   TERMINAL_PROFILE_PROPERTY_OBJECT (BACKGROUND_IMAGE, GDK_TYPE_PIXBUF, NULL);
diff --git a/src/terminal-profile.h b/src/terminal-profile.h
index cd3c374..f627935 100644
--- a/src/terminal-profile.h
+++ b/src/terminal-profile.h
@@ -78,6 +78,8 @@ typedef enum
 #define TERMINAL_PROFILE_CURSOR_SHAPE           "cursor-shape"
 #define TERMINAL_PROFILE_CUSTOM_COMMAND         "custom-command"
 #define TERMINAL_PROFILE_DEFAULT_SHOW_MENUBAR   "default-show-menubar"
+#define TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS   "default-size-columns"
+#define TERMINAL_PROFILE_DEFAULT_SIZE_ROWS      "default-size-rows"
 #define TERMINAL_PROFILE_DELETE_BINDING         "delete-binding"
 #define TERMINAL_PROFILE_EXIT_ACTION            "exit-action"
 #define TERMINAL_PROFILE_FONT                   "font"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 3726426..56856d1 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -734,6 +734,10 @@ terminal_screen_new (TerminalProfile *profile,
 
   terminal_screen_set_profile (screen, profile);
 
+  vte_terminal_set_size (VTE_TERMINAL (screen),
+			 terminal_profile_get_property_int (profile, TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS),
+			 terminal_profile_get_property_int (profile, TERMINAL_PROFILE_DEFAULT_SIZE_ROWS));
+
   if (title)
     terminal_screen_set_override_title (screen, title);
 



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