[meld] Fix some layout issues in commit dialog



commit fc83f810f4a88ac0f61e18377ec103536090b29a
Author: Kai Willadsen <kai willadsen gmail com>
Date:   Sat Apr 27 07:54:36 2013 +1000

    Fix some layout issues in commit dialog
    
    As commit messages are generally not formatted as freeform text, this
    commit makes the following changes:
      * Use a fixed width font for the commit message
      * Use word wrapping in the commit message TextView
      * Set an 80-character size request on the commit message Textview
      * Restrict the size of the previous log combo to avoid weird layout
        for very long lines, and ellipsize those entries

 data/ui/vcview.ui       |    4 ++--
 meld/ui/historyentry.py |    3 +++
 meld/vcview.py          |   10 ++++++++++
 3 files changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/data/ui/vcview.ui b/data/ui/vcview.ui
index 28dda75..579daa2 100644
--- a/data/ui/vcview.ui
+++ b/data/ui/vcview.ui
@@ -225,7 +225,7 @@
     </child>
   </object>
   <object class="GtkDialog" id="commitdialog">
-    <property name="width_request">450</property>
+    <property name="default_width">450</property>
     <property name="visible">True</property>
     <property name="border_width">12</property>
     <property name="can_focus">False</property>
@@ -369,7 +369,6 @@
                         <property name="spacing">6</property>
                         <child>
                           <object class="GtkScrolledWindow" id="scrolledwindow1">
-                            <property name="width_request">320</property>
                             <property name="height_request">200</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
@@ -380,6 +379,7 @@
                               <object class="GtkTextView" id="textview">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
+                                <property name="wrap_mode">word</property>
                               </object>
                             </child>
                           </object>
diff --git a/meld/ui/historyentry.py b/meld/ui/historyentry.py
index 5f79a50..25dd10e 100644
--- a/meld/ui/historyentry.py
+++ b/meld/ui/historyentry.py
@@ -21,6 +21,7 @@ import sys
 import gio
 import gtk
 import gobject
+import pango
 import atk
 # gconf is also imported; see end of HistoryEntry class for details
 from gettext import gettext as _
@@ -213,6 +214,8 @@ class HistoryCombo(gtk.ComboBox, HistoryWidget):
         HistoryWidget.__init__(self, history_id)
         self.set_model(gtk.ListStore(str, str))
         rentext = gtk.CellRendererText()
+        rentext.props.width_chars = 60
+        rentext.props.ellipsize = pango.ELLIPSIZE_END
         self.pack_start(rentext, True)
         self.set_attributes(rentext, text=0)
 
diff --git a/meld/vcview.py b/meld/vcview.py
index 19d7e24..fce0484 100644
--- a/meld/vcview.py
+++ b/meld/vcview.py
@@ -94,6 +94,16 @@ class CommitDialog(gnomeglade.Component):
         selected = ["\t" + s[len(topdir) + 1:] for s in selected]
         self.changedfiles.set_text("(in %s)\n%s" %
                                    (topdir, "\n".join(selected)))
+        fontdesc = pango.FontDescription(self.parent.prefs.get_current_font())
+        self.textview.modify_font(fontdesc)
+
+        # Try and make the textview wide enough for a standard 80-character
+        # commit message.
+        context = self.textview.get_pango_context()
+        metrics = context.get_metrics(fontdesc, context.get_language())
+        char_width = metrics.get_approximate_char_width()
+        self.textview.set_size_request(80 * pango.PIXELS(char_width), -1)
+
         self.widget.show_all()
 
     def run(self):


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