projects
/
pygdb.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added a vim load-config feature
[pygdb.git]
/
StatusWindow.py
diff --git
a/StatusWindow.py
b/StatusWindow.py
index 121c0b8a7f5b9375e2b6614ffa90abf3ad427d1e..e021fed1a18b2f4c1b26d901ffbca4ac5e1786d2 100644
(file)
--- a/
StatusWindow.py
+++ b/
StatusWindow.py
@@
-5,8
+5,12
@@
__author__ = "shuber"
import gtk
import gtk
+import re
+import string
+import os
import vte
import vte
+import DbgTerminal
import BreakpointsFrame
import WatchesFrame
import BreakpointsFrame
import WatchesFrame
@@
-22,22
+26,29
@@
class StatusWindow (gtk.Window):
self.set_border_width(5)
self.set_title("Status")
self.set_default_size(400,600)
self.set_border_width(5)
self.set_title("Status")
self.set_default_size(400,600)
- self.connect("destroy",
lambda *w: gtk.main_quit()
)
+ self.connect("destroy",
DbgTerminal.quitHandler
)
vbox = gtk.VBox(False, 5)
self.add(vbox)
vbox = gtk.VBox(False, 5)
self.add(vbox)
+ hbox = gtk.HBox(False, 5)
+ vbox.pack_start(hbox, False, False)
+
+ self.viewBtn = gtk.Button("View")
+ self.viewBtn.connect("clicked", self.viewBtnClicked)
+ hbox.pack_start(self.viewBtn, False, False)
self.status = gtk.Label("Not Running")
self.status = gtk.Label("Not Running")
- vbox.pack_start(self.status, False, False)
- vpaned = gtk.VPaned()
- vbox.add(vpaned)
+ hbox.pack_start(self.status, False, False)
+
+ self.paned1 = gtk.VPaned()
+ vbox.add(self.paned1)
#Adding the frames
self.frames = []
self.frames += [WatchesFrame.WatchesFrame(debugger)]
self.frames += [BreakpointsFrame.BreakpointsFrame(debugger)]
#Adding the frames
self.frames = []
self.frames += [WatchesFrame.WatchesFrame(debugger)]
self.frames += [BreakpointsFrame.BreakpointsFrame(debugger)]
-
vpaned
.add1(self.frames[0])
-
vpaned
.add2(self.frames[1])
+
self.paned1
.add1(self.frames[0])
+
self.paned1
.add2(self.frames[1])
#Register callback function for new positions
#and update the values
#Register callback function for new positions
#and update the values
@@
-48,6
+59,16
@@
class StatusWindow (gtk.Window):
def applyConfiguration(self, conf):
def applyConfiguration(self, conf):
+ w = conf.findInt("statuswnd-width")
+ h = conf.findInt("statuswnd-height")
+ paned1 = conf.findInt("statuswnd-paned1")
+
+ if w!=None and h!=None:
+ self.resize(w,h)
+ if paned1!=None:
+ self.paned1.set_position(paned1)
+
+
while not self.debugger.isActive():
gtk.main_iteration()
while not self.debugger.isActive():
gtk.main_iteration()
@@
-56,6
+77,11
@@
class StatusWindow (gtk.Window):
def fillConfiguration(self, conf):
def fillConfiguration(self, conf):
+
+ conf.addInt("statuswnd-width", self.get_size()[0])
+ conf.addInt("statuswnd-height", self.get_size()[1])
+ conf.addInt("statuswnd-paned1", self.paned1.get_position())
+
for f in self.frames:
f.fillConfiguration(conf)
for f in self.frames:
f.fillConfiguration(conf)
@@
-72,3
+98,21
@@
class StatusWindow (gtk.Window):
f.updateValues(pos)
f.updateValues(pos)
+ def viewBtnClicked(self, btn):
+
+ status = self.status.get_label().strip()
+ rx = re.compile("\S+:\d+")
+
+ #It is a path
+ if rx.search(status):
+ try:
+ [file,lineno] = string.split(status,":")
+ lineno = int(lineno)
+
+ os.system('gvim -R -c ":%d" %s' % (lineno,file))
+
+ except OSError:
+ pass
+
+
+