hggtk/hgignore.py
author Germán Póo-Caamaño <gpoo@calcifer.org>
Mon, 21 Jul 2008 11:51:12 -0400
changeset 1182 cbe418752174
parent 1021 e25af93c1354
permissions -rw-r--r--
hggtk: get rid of close buttons
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1021
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     1
#
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     2
# hgignore.py - TortoiseHg's dialog for editing .hgignore
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     3
#
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     4
# Copyright (C) 2008 Steve Borho <steve@borho.org>
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     5
#
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     6
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     7
import os
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     8
import gobject
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
     9
import gtk
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    10
import pango
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    11
import string
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    12
from dialog import *
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    13
import hglib
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    14
from mercurial import hg, ui
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    15
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    16
class HgIgnoreDialog(gtk.Window):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    17
    """ Edit a reposiory .hgignore file """
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    18
    def __init__(self, root=''):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    19
        """ Initialize the Dialog """
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    20
        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    21
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    22
        self.root = root
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    23
        self.set_title('Ignore mask for ' + os.path.basename(root))
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    24
        self.set_default_size(630, 400)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    25
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    26
        self.tbar = gtk.Toolbar()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    27
        self.tips = gtk.Tooltips()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    28
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    29
        tbuttons = [
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    30
                self._toolbutton(gtk.STOCK_REFRESH,
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    31
                    'Refresh',
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    32
                    self._refresh_clicked,
1182
cbe418752174 hggtk: get rid of close buttons
Germán Póo-Caamaño <gpoo@calcifer.org>
parents: 1021
diff changeset
    33
                    tip='Reload hgignore')
1021
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    34
            ]
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    35
        for btn in tbuttons:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    36
            self.tbar.insert(btn, -1)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    37
        mainvbox = gtk.VBox()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    38
        self.add(mainvbox)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    39
        mainvbox.pack_start(self.tbar, False, False, 2)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    40
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    41
        hbox = gtk.HBox()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    42
        lbl = gtk.Label('Glob:')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    43
        lbl.set_property("width-chars", 7)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    44
        lbl.set_alignment(1.0, 0.5)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    45
        hbox.pack_start(lbl, False, False, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    46
        glob_entry = gtk.Entry()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    47
        hbox.pack_start(glob_entry, True, True, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    48
        glob_button = gtk.Button('add')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    49
        hbox.pack_start(glob_button, False, False, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    50
        glob_button.connect('clicked', self.add_glob, glob_entry)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    51
        glob_entry.connect('activate', self.add_glob, glob_entry)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    52
        mainvbox.pack_start(hbox, False, False)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    53
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    54
        hbox = gtk.HBox()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    55
        lbl = gtk.Label('Regexp:')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    56
        lbl.set_property("width-chars", 7)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    57
        lbl.set_alignment(1.0, 0.5)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    58
        hbox.pack_start(lbl, False, False, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    59
        regexp_entry = gtk.Entry()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    60
        hbox.pack_start(regexp_entry, True, True, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    61
        regexp_button = gtk.Button('add')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    62
        hbox.pack_start(regexp_button, False, False, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    63
        regexp_button.connect('clicked', self.add_regexp, regexp_entry)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    64
        regexp_entry.connect('activate', self.add_regexp, regexp_entry)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    65
        mainvbox.pack_start(hbox, False, False)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    66
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    67
        hbox = gtk.HBox()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    68
        frame = gtk.Frame('Filters')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    69
        hbox.pack_start(frame, True, True, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    70
        pattree = gtk.TreeView()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    71
        sel = pattree.get_selection()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    72
        sel.connect("changed", self.pattern_rowchanged)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    73
        col = gtk.TreeViewColumn('Patterns', gtk.CellRendererText(), text=0)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    74
        pattree.append_column(col) 
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    75
        scrolledwindow = gtk.ScrolledWindow()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    76
        scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    77
        scrolledwindow.set_border_width(4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    78
        scrolledwindow.add(pattree)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    79
        pattree.set_headers_visible(False)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    80
        self.pattree = pattree
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    81
        frame.add(scrolledwindow)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    82
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    83
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    84
        frame = gtk.Frame('Unknown Files')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    85
        hbox.pack_start(frame, True, True, 4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    86
        unknowntree = gtk.TreeView()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    87
        sel = unknowntree.get_selection()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    88
        sel.connect("changed", self.unknown_rowchanged)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    89
        col = gtk.TreeViewColumn('Files', gtk.CellRendererText(), text=0)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    90
        unknowntree.append_column(col) 
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    91
        scrolledwindow = gtk.ScrolledWindow()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    92
        scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    93
        scrolledwindow.set_border_width(4)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    94
        scrolledwindow.add(unknowntree)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    95
        model = gtk.ListStore(gobject.TYPE_STRING)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    96
        unknowntree.set_model(model)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    97
        unknowntree.set_headers_visible(False)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    98
        frame.add(scrolledwindow)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
    99
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   100
        mainvbox.pack_start(hbox, True, True)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   101
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   102
        glob_entry.grab_focus()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   103
        self.connect('map_event', self._on_window_map_event)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   104
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   105
    def pattern_rowchanged(self, sel):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   106
        model, iter = sel.get_selected()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   107
        if not iter:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   108
            return
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   109
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   110
    def unknown_rowchanged(self, sel):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   111
        model, iter = sel.get_selected()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   112
        if not iter:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   113
            return
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   114
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   115
    def add_glob(self, widget, glob_entry):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   116
        pass
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   117
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   118
    def add_regexp(self, widget, glob_entry):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   119
        pass
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   120
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   121
    def _on_window_map_event(self, event, param):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   122
        self._refresh_clicked(None)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   123
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   124
    def _refresh_clicked(self, togglebutton, data=None):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   125
        try:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   126
            l = open(os.path.join(self.root, '.hgignore'), 'rb').readlines()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   127
            if l[0].endswith('\r\n'):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   128
                self.doseoln = True
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   129
        except IOError, ValueError:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   130
            self.doseoln = os.name == 'nt'
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   131
            l = []
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   132
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   133
        model = gtk.ListStore(gobject.TYPE_STRING)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   134
        l = [string.strip(line) for line in l]
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   135
        for line in l:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   136
            model.append([line])
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   137
        self.pattree.set_model(model)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   138
        self.ignorelines = l
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   139
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   140
    def write_ignore_lines(self):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   141
        if doseoln:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   142
            out = [line + '\r\n' for line in self.ignorelines]
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   143
        else:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   144
            out = [line + '\n' for line in self.ignorelines]
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   145
        try:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   146
            f = open(os.path.join(self.root, '.hgignore'), 'wb')
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   147
            f.writelines(out)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   148
            f.close()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   149
        except IOError:
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   150
            pass
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   151
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   152
    def _toolbutton(self, stock, label, handler, tip):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   153
        tbutton = gtk.ToolButton(stock)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   154
        tbutton.set_label(label)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   155
        tbutton.set_tooltip(self.tips, tip)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   156
        tbutton.connect('clicked', handler)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   157
        return tbutton
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   158
        
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   159
def run(root='', **opts):
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   160
    dialog = HgIgnoreDialog(root)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   161
    dialog.show_all()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   162
    dialog.connect('destroy', gtk.main_quit)
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   163
    gtk.gdk.threads_init()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   164
    gtk.gdk.threads_enter()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   165
    gtk.main()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   166
    gtk.gdk.threads_leave()
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   167
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   168
if __name__ == "__main__":
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   169
    opts = {'root' : hglib.rootpath()}
e25af93c1354 hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff changeset
   170
    run(**opts)