[meld] Add right margin and line breaking to commit messages (bgo#698982)
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld] Add right margin and line breaking to commit messages (bgo#698982)
- Date: Sun, 23 Jun 2013 00:50:46 +0000 (UTC)
commit 8f762ce5c0ed623dd058bb09a7bc64fc15f895b1
Author: Kai Willadsen <kai willadsen gmail com>
Date: Sun Jun 23 10:39:22 2013 +1000
Add right margin and line breaking to commit messages (bgo#698982)
data/ui/preferences.ui | 169 +++++++++++++++++++++++++++++++++++++++++++++
data/ui/vcview.ui | 2 +-
meld/preferences.py | 30 ++++++++-
meld/ui/vcdialogs.py | 10 +++
meld/util/sourceviewer.py | 2 +
5 files changed, 211 insertions(+), 2 deletions(-)
---
diff --git a/data/ui/preferences.ui b/data/ui/preferences.ui
index 0abd33c..3a13aec 100644
--- a/data/ui/preferences.ui
+++ b/data/ui/preferences.ui
@@ -9,6 +9,13 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkAdjustment" id="adjustment2">
+ <property name="lower">70</property>
+ <property name="upper">120</property>
+ <property name="value">72</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">10</property>
+ </object>
<object class="GtkDialog" id="preferencesdialog">
<property name="can_focus">False</property>
<property name="border_width">5</property>
@@ -831,6 +838,168 @@
</packing>
</child>
<child>
+ <object class="GtkVBox" id="vc_comparison_tab">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkVBox" id="vbox5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Commit Messages</property>
+ <property name="use_markup">True</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">12</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkHBox" id="hbox6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_show_commit_margin">
+ <property name="label" translatable="yes">Show _right margin
at:</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0.51999998092651367</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled"
handler="on_checkbutton_show_commit_margin_toggled" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spinbutton_commit_margin">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">adjustment2</property>
+ <property name="climb_rate">1</property>
+ <signal name="value-changed"
handler="on_spinbutton_commit_margin_value_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">18</property>
+ <child>
+ <object class="GtkCheckButton" id="checkbutton_break_commit_lines">
+ <property name="label" translatable="yes">Automatically _break lines at
right margin</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0.51999998092651367</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled"
handler="on_checkbutton_break_commit_lines_toggled" swapped="no"/>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="vc_comparison_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Version Control</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkVBox" id="file_filters_tab">
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/data/ui/vcview.ui b/data/ui/vcview.ui
index 3448050..ac99430 100644
--- a/data/ui/vcview.ui
+++ b/data/ui/vcview.ui
@@ -376,7 +376,7 @@
<property name="vscrollbar_policy">automatic</property>
<property name="shadow_type">in</property>
<child>
- <object class="GtkTextView" id="textview">
+ <object class="MeldSourceView" id="textview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="wrap_mode">word</property>
diff --git a/meld/preferences.py b/meld/preferences.py
index 658b7c0..c017f34 100644
--- a/meld/preferences.py
+++ b/meld/preferences.py
@@ -143,7 +143,8 @@ class PreferencesDialog(gnomeglade.Component):
def __init__(self, parent, prefs):
gnomeglade.Component.__init__(self, paths.ui_dir("preferences.ui"),
- "preferencesdialog", ["adjustment1"])
+ "preferencesdialog",
+ ["adjustment1", "adjustment2"])
self.widget.set_transient_for(parent)
self.prefs = prefs
if not self.prefs.use_custom_font:
@@ -220,6 +221,15 @@ class PreferencesDialog(gnomeglade.Component):
self.combo_timestamp.set_active(active_idx)
self.combo_timestamp.lock = False
+ self.checkbutton_show_commit_margin.set_active(
+ self.prefs.vc_show_commit_margin)
+ self.spinbutton_commit_margin.set_value(
+ self.prefs.vc_commit_margin)
+ self.checkbutton_break_commit_lines.set_sensitive(
+ self.prefs.vc_show_commit_margin)
+ self.checkbutton_break_commit_lines.set_active(
+ self.prefs.vc_break_commit_message)
+
self.widget.show()
def on_fontpicker_font_set(self, picker):
@@ -265,6 +275,20 @@ class PreferencesDialog(gnomeglade.Component):
# Called on "activate" and "focus-out-event"
self.prefs.edit_command_custom = entry.props.text
+ def on_checkbutton_show_line_numbers_toggled(self, check):
+ self.prefs.show_line_numbers = check.get_active()
+
+ def on_checkbutton_show_commit_margin_toggled(self, check):
+ show_margin = check.get_active()
+ self.prefs.vc_show_commit_margin = show_margin
+ self.checkbutton_break_commit_lines.set_sensitive(show_margin)
+
+ def on_spinbutton_commit_margin_value_changed(self, spin):
+ self.prefs.vc_commit_margin = int(spin.get_value())
+
+ def on_checkbutton_break_commit_lines_toggled(self, check):
+ self.prefs.vc_break_commit_message = check.get_active()
+
#
# filters
#
@@ -344,6 +368,10 @@ class MeldPreferences(prefs.Preferences):
"permissions 0"]),
"dirdiff_shallow_comparison" : prefs.Value(prefs.BOOL, False),
"dirdiff_time_resolution_ns" : prefs.Value(prefs.INT, 100),
+
+ "vc_show_commit_margin": prefs.Value(prefs.BOOL, True),
+ "vc_commit_margin": prefs.Value(prefs.INT, 72),
+ "vc_break_commit_message": prefs.Value(prefs.BOOL, False),
}
def __init__(self):
diff --git a/meld/ui/vcdialogs.py b/meld/ui/vcdialogs.py
index c653557..1bab324 100644
--- a/meld/ui/vcdialogs.py
+++ b/meld/ui/vcdialogs.py
@@ -19,6 +19,7 @@
from __future__ import print_function
import os
+import textwrap
from gettext import gettext as _
import gtk
@@ -78,12 +79,21 @@ class CommitDialog(gnomeglade.Component):
self.widget.show_all()
def run(self):
+ margin = self.parent.prefs.vc_commit_margin
+ self.textview.set_right_margin_position(
+ margin)
+ self.textview.set_show_right_margin(
+ self.parent.prefs.vc_show_commit_margin)
+
self.previousentry.set_active(-1)
self.textview.grab_focus()
response = self.widget.run()
if response == gtk.RESPONSE_OK:
buf = self.textview.get_buffer()
msg = buf.get_text(*buf.get_bounds(), include_hidden_chars=False)
+ if self.parent.prefs.vc_break_commit_message:
+ paragraphs = msg.split("\n\n")
+ msg = "\n\n".join(textwrap.fill(p, margin) for p in paragraphs)
self.parent._command_on_selected(
self.parent.vc.commit_command(msg))
if msg.strip():
diff --git a/meld/util/sourceviewer.py b/meld/util/sourceviewer.py
index e3249c1..9394870 100644
--- a/meld/util/sourceviewer.py
+++ b/meld/util/sourceviewer.py
@@ -172,6 +172,8 @@ class nullsourceview(_srcviewer):
set_show_line_numbers = lambda *args: None
set_insert_spaces_instead_of_tabs = lambda *args: None
set_draw_spaces = lambda *args: None
+ set_right_margin_position = lambda *args: None
+ set_show_right_margin = lambda *args: None
gobject.type_register(NullTextView)
self.GtkTextView = NullTextView
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]