summaryrefslogtreecommitdiffstats
path: root/g-ed-it/docBar.py
diff options
context:
space:
mode:
Diffstat (limited to 'g-ed-it/docBar.py')
-rw-r--r--g-ed-it/docBar.py73
1 files changed, 49 insertions, 24 deletions
diff --git a/g-ed-it/docBar.py b/g-ed-it/docBar.py
index 990c850..a3d1712 100644
--- a/g-ed-it/docBar.py
+++ b/g-ed-it/docBar.py
@@ -22,6 +22,8 @@ import gedit
import gtk
import subprocess
+import docHelper
+
import os
import os.path
@@ -37,28 +39,35 @@ class DocBar (object):
'X':'Unknown',
'B':'pairing Broken'
})
- def __init__(self, tab, gitAction, window, docHelper):
- self.tab = tab
+ def __init__(self, gitAction, window):
self.gitAction = gitAction
- self.docHelper = docHelper
+ self.window = window
- self.docBar = gtk.HBox()
+ self.currentTab = None
+ self.create_docBar()
+
+ self.swap_to_currentTab(window.get_active_tab())
+
+ self.window.connect("active-tab-changed",self.active_tab_changed)
+ self.window.connect("active-tab-state-changed",self.active_tab_state_changed)
+ def create_docBar(self):
+ self.docBar = gtk.HBox()
self.lbl_status = gtk.Label("État du fichier")
self.commit_text = gtk.Entry()
self.btn_add = gtk.Button("add")
- self.btn_add.connect("clicked", self.gitAction.add, self.tab.get_document().get_uri_for_display)
+ self.btn_add.connect("clicked", self.gitAction.add)
self.btn_commit = gtk.Button("commit")
- self.btn_commit.connect("clicked", self.gitAction.commit, window, self.tab.get_document().get_uri_for_display,self.get_and_clear_commitText)
+ self.btn_commit.connect("clicked", self.gitAction.commit, self.window,self.get_and_clear_commitText)
self.btn_diff_head_index = gtk.Button("diff HEAD/INDEX")
- self.btn_diff_head_index.connect("clicked", self.gitAction.diff_head_index, self.tab.get_document().get_uri_for_display)
+ self.btn_diff_head_index.connect("clicked", self.gitAction.diff_head_index)
self.btn_diff_index_wt = gtk.Button("diff INDEX/WT")
- self.btn_diff_index_wt.connect("clicked", self.gitAction.diff_index_wt, self.tab.get_document().get_uri_for_display)
+ self.btn_diff_index_wt.connect("clicked", self.gitAction.diff_index_wt)
self.docBar.pack_start(self.btn_diff_head_index, False, False)
self.docBar.pack_start(self.btn_diff_index_wt, False, False)
@@ -67,11 +76,22 @@ class DocBar (object):
self.docBar.pack_start(self.btn_commit, False, False)
self.docBar.pack_start(self.btn_add, False, False)
- self.tab.pack_start(self.docBar, False, False)
-
- self.tab.show_all()
+ def active_tab_changed(self,window,tab):
+ print "tab_change"
+ self.swap_to_currentTab(tab)
+
+ def active_tab_state_changed(self,window):
+ print "tab_state_changed"
+ self.update_docBar_ui()
- self.update_ui()
+ def swap_to_currentTab(self, tab):
+ if self.currentTab:
+ self.currentTab.remove(self.docBar)
+ self.currentTab = tab
+ if self.currentTab:
+ self.currentTab.pack_start(self.docBar, False, False)
+ self.currentTab.show_all()
+ self.update_docBar_ui()
def get_and_clear_commitText(self):
text = self.commit_text.get_text()
@@ -79,26 +99,31 @@ class DocBar (object):
return text
def deactivate(self):
- self.tab.remove(self.docBar)
+ if self.currentTab:
+ self.currentTab.remove(self.docBar)
self.docBar = None
- self.tab = None
+ self.currentTab = None
- def update_ui(self):
- if not self.docHelper.inGitDir :
+ def update_docBar_ui(self):
+ if not self.currentTab:
+ return
+ _docHelper = self.currentTab.get_data(docHelper.DocHelper.KEY)
+ if not _docHelper or not _docHelper.inGitDir :
self.docBar.hide()
return
+
self.docBar.show()
- self.btn_add.set_sensitive(self.docHelper.index2WT!=None or not self.docHelper.isCached)
- self.btn_commit.set_sensitive(self.docHelper.HEAD2index!=None)
- self.commit_text.set_sensitive(self.docHelper.HEAD2index!=None)
- self.btn_diff_head_index.set_sensitive(self.docHelper.HEAD2index!=None)
- self.btn_diff_index_wt.set_sensitive(self.docHelper.index2WT!=None)
+ self.btn_add.set_sensitive(_docHelper.index2WT!=None or not _docHelper.isCached)
+ self.btn_commit.set_sensitive(_docHelper.HEAD2index!=None)
+ self.commit_text.set_sensitive(_docHelper.HEAD2index!=None)
+ self.btn_diff_head_index.set_sensitive(_docHelper.HEAD2index!=None)
+ self.btn_diff_index_wt.set_sensitive(_docHelper.index2WT!=None)
text = "HEAD <-"
- text = text + DocBar.code2status[self.docHelper.HEAD2index]
+ text = text + DocBar.code2status[_docHelper.HEAD2index]
text = text + "-> INDEX <-"
- if self.docHelper.isCached :
- text = text + DocBar.code2status[self.docHelper.index2WT]
+ if _docHelper.isCached :
+ text = text + DocBar.code2status[_docHelper.index2WT]
else:
text = text + DocBar.code2status['A']
text = text + "-> WT"