Esempio n. 1
0
def addNote(caller,scroll,ar,plalts,target,fileid,dval = None,cval = None,i = 0):
  path = [fileid,"info","notes"]
  if not preRead(True,'l',path,3):
    return
  data = places.get(fileid)
  if i == 0:
    i = str(len(data['info'].get("notes")))
    path.append(i)
    if not preRead(True,'l',path,4):
      return
    else:
      places[path[0]][path[1]][path[2]][path[3]]['content'] = ["",False]
      places[path[0]][path[1]][path[2]][path[3]]['date'] = [skrTimeStamp(config['datestyle']),False]
  row = gtk.HBox()
  row.show()
  if not dval: dval = skrTimeStamp(config['datestyle'])
  date = gtk.Label(dval)
  date.show()
  date.set_width_chars(10)
  row.pack_end(date,0,0,2)
  content = gtk.Entry(500)
  content.show()
  if cval: content.set_text(cval)
  row.pack_end(content,1,1,2)
  target.pack_start(row,False,False,2)
  activateNoteEntry(content,ar,plalts, scroll, data, fileid,i,date)
Esempio n. 2
0
def saveThisL(caller,fileid):
  global status
  if places.get(fileid):
    if savePlace(fileid,places[fileid]):
      status.push(0,"%s saved successfully." % fileid)
    else:
      status.push(0,"Error encountered saving %s." % fileid)
  else:
    bsay(caller,"saveThisL: Could not find place %s." % fileid)
Esempio n. 3
0
def preClose(caller,fileid,target = None):
  result = -8
  if places.get(fileid):
    if places[fileid].get("changed"):
      result = 0
      caller.set_sensitive(False)
      asker = gtk.MessageDialog(None,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,gtk.MESSAGE_INFO,gtk.BUTTONS_YES_NO,None)
      asker.set_markup("Are you sure you want to close %s?\nYou will lose all unsaved changes." % fileid)
      asker.connect("destroy",lambda x: caller.set_sensitive(True))
      (x,y,w,h) = caller.get_allocation()
      asker.move(x - 50,y - 50)
      result = asker.run()
      asker.destroy()
  if result == -8: # Yes
    print "Destroying tab %s" % fileid
    kill(caller,target)
    return True
  else: # No
    print "Cancel"
    return False
Esempio n. 4
0
def getCat(fileid):
  cat = None
  x = people.get(fileid,None)
  if x is not None: cat = "person"
  else:
    x = places.get(fileid,None)
    if x is not None: cat = "place"
    else:
      x = cities.get(fileid,None)
      if x is not None: cat = "city"
      else:
        x = states.get(fileid,None)
        if x is not None: cat = "state"
        else:
          x = orgs.get(fileid,None)
          if x is not None: cat = "org"
          else:
            x = items.get(fileid,None)
            if x is not None: cat = "item"
  return [cat,True]
Esempio n. 5
0
def displayPlace(callingWidget,fileid, tabrow):
  global places
  plalts = []
  ar = gtk.Label()
  warnme = False
  if places.get(fileid,None):
    tab = places[fileid].get("tab")
    if tab is not None:
      warnme = True
      if not config['duplicatetabs']:
        status.push(0,"'" + fileid + "' is Already open. Switching to existing tab instead of loading...")
        tabrow.set_current_page(tab)
        for i in range(len(tabrow)):
          if fileid == tabrow.get_tab_label_text(tabrow.get_nth_page(i)):
            tabrow.set_current_page(i)
        return # No need to load again. If revert needed, use a different function
  else:
    L = loadPlace(fileid)
    places[fileid] = {}
    places[fileid]['info'] = L[0]
    places[fileid]['relat'] = L[1]
    places[fileid]['changed'] = False
    places[fileid]['cat'] = 'l'
  displayStage1(tabrow,fileid,'l',saveThisL,showPlace,preClose,displayPlace,ar,plalts)
  tabrow.vbox.connect("destroy",tabdestroyed,fileid)
  tabrow.labeli = gtk.Label("Information")
  tabrow.labelr = gtk.Label("Connections")
  tabrow.vbox.ftabs.infpage = displayStage2(tabrow.vbox.ftabs,tabrow.labeli)
  tabrow.vbox.ftabs.relpage = displayStage2(tabrow.vbox.ftabs,tabrow.labelr)
  if config['debug'] > 2: print "Loading " + tabrow.get_tab_label_text(tabrow.vbox)
  ar.show()
  ar.set_alignment(0.5,0.5)
  setRuletext(ar,len(plalts))
  tabrow.vbox.pack_end(ar,0,0,2)
  initLinfo(tabrow.vbox.ftabs.infpage, fileid,ar,plalts)
  initLrels(tabrow.vbox.ftabs.relpage, fileid,tabrow,ar,plalts)
  tabrow.set_current_page(tabrow.page_num(tabrow.vbox))
  places[fileid]["tab"] = tabrow.page_num(tabrow.vbox)
Esempio n. 6
0
def showPlace(caller,fileid):
  if places.get(fileid):
    printPretty(places[fileid])
Esempio n. 7
0
def listRel(self,ar,plalts,r,fileid,relid,scroll,target = None):
  if not r.get("related"): return
  name = r['related'][0]
  if not r.get("cat"): return
  cat = r['cat'][0]
  if not target: target = self.get_parent().get_parent().get_parent().get_parent() #Which is better?
  namebutton = gtk.Button(relid)
  namebutton.connect("clicked",displayPlace,relid,target) # passing the target or figuring it from parentage?
  row1 = gtk.HBox()
  self.pack_start(row1,0,0,2)
  row1.pack_start(namebutton,1,1,2)
  row1.show()
  namebutton.show()
  namebutton.set_alignment(0.75,0.05)
  namebutton.set_size_request(int(self.size_request()[0] * 0.20),10)
  namelabel = gtk.Label("Name: ")
  namelabel.show()
  row1.pack_start(namelabel,0,0,2)
  namelabel.set_width_chars(6)
  nameentry = gtk.Entry()
  nameentry.show()
  nameentry.set_text(name)
  activateRelEntry(nameentry,ar,plalts,scroll,places.get(fileid),fileid,relid,"related")
  row1.pack_start(nameentry,1,1)
  relation = gtk.Label(r['relation'][0])
  relation.show()
  relation.set_width_chars(8)
  row1.pack_start(relation,1,1)
  relset = gtk.Button("Set")
  relset.show()
  relset.set_alignment(0.5,0.5)
  relset.set_size_request(36,24)
  data = places.get(relid,None)
  relset.connect("clicked",selectConnectionL,relation,fileid,relid,name,cat)
  row1.pack_start(relset,0,0,5)
  row2 = gtk.HBox()
  self.pack_start(row2,0,0,2)
  row2.show()
  mileadd = gtk.Button("New Milestone")
  mileadd.show()
  mileadd.set_alignment(0.75,0.05)
#  mileadd.set_size_request(int(self.size_request()[0] * 0.30),24)
  row2.pack_start(mileadd,0,0,5)
  dhead = gtk.Label("Date")
  dhead.show()
  dhead.set_width_chars(8)
  row2.pack_start(dhead,1,1,2)
  ehead = gtk.Label("Event")
  ehead.show()
  ehead.set_width_chars(18)
  row2.pack_start(ehead,1,1,2)
  row2.show_all()
  row3 = gtk.VBox()
  row3.show()
  self.pack_start(row3,0,0,2)
  boxwidth = self.size_request()[0]
  mileadd.connect("clicked",addMilestone,scroll,row3,places.get(fileid),fileid,"relat",relid,boxwidth)
  if r.get("events"):
    for i in r['events']:
#      showMile(row3,r,i,fileid,relid)

#def showMile(row3,r,i,fileid,relid):
      events = r['events'][i]
#  print str(events)
      if events.get("date") and events.get("event"):
        rowmile = gtk.HBox()
        rowmile.show()
        blank = gtk.Label()
        blank.show()
        blank.set_width_chars(12)
        rowmile.pack_start(blank,0,0,2)
        d = gtk.Entry()
        d.show()
        d.set_width_chars(12)
        d.set_text(events['date'][0])
        data = places.get(fileid)
        activateRelEntry(d,ar,plalts,scroll,data,fileid,relid,"date",i)
        rowmile.pack_start(d,1,1,2)
        datebut = gtk.Button()
        datebut.show()
        image = gtk.Image()
        image.set_from_file("img/date.png")
        datebut.set_image(image)
        datebut.unset_flags(gtk.CAN_FOCUS)
        datebut.connect("clicked",dateChoose,d,data,[fileid,'relat',relid,'events',i,'date'])
        rowmile.pack_start(datebut,0,0,2)
        e = gtk.Entry()
        e.show()
        e.set_width_chars(18)
        e.set_text(events['event'][0])
        activateRelEntry(e,ar,plalts,scroll,data,fileid,relid,"event",i)
        rowmile.pack_start(e,1,1,2)
        row3.add(rowmile)
Esempio n. 8
0
def initLinfo(self, fileid,ar,plalts):
  data = {}
  scroll = self.get_parent()
  try:
    data = places.get(fileid)
  except KeyError as e:
    print "initLinfo: An error occurred accessing %s: %s" % (fileid,e)
    return
  scroll = self.get_parent()
  self.namelabelbox = gtk.HBox()
  self.namelabelbox.show()
  label = gtk.Label("Place:")
  label.set_alignment(0,0)
  label.show()
  self.namelabelbox.pack_start(label,1,1,2)
  self.pack_start(self.namelabelbox)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  name = buildarow(scroll,"Name:",data,fileid,'name',ar,plalts)
  self.pack_start(name,0,0,2)
  commonname = buildarow(scroll,"Common Name:",data,fileid,'commonname',ar,plalts)
  self.pack_start(commonname,0,0,2)
  if commonname.e.get_text() == "" and name.e.get_text() != "":
    commonname.e.set_text(name.e.get_text())
    commonname.e.emit("focus-out-event",gtk.gdk.Event(gtk.gdk.FOCUS_CHANGE))
  row = gtk.HBox()
  row.show()
  path = ["info","start"]
  label = gtk.Label("Start Date:")
  label.show()
  row.pack_start(label,False,False,2)
  start = gtk.Entry(25)
  start.show()
  start.set_text(getInf(data,path))
  activateInfoEntry(start,ar,plalts,scroll,data,fileid,"start")
  row.pack_start(start,True,True,2)
  path2 = [fileid,"info"]
  path2.append(path[-1])
  placeCalendarButton(data,row,start,path2,plalts,counter=ar)
  label = gtk.Label("Cue:")
  label.show()
  row.pack_start(label,False,False,2)
  scue = gtk.Entry(25)
  scue.show()
  path[1] = "scue"
  scue.set_text(getInf(data,path))
  activateInfoEntry(scue,ar,plalts,scroll,data,fileid,"scue")
  row.pack_start(scue,True,True,2)
  self.pack_start(row,False,False,2)
  row = gtk.HBox()
  row.show()
  label = gtk.Label("End Date:")
  label.show()
  row.pack_start(label,False,False,2)
  end = gtk.Entry(25)
  end.show()
  path[1] = "end"
  end.set_text(getInf(data,path))
  activateInfoEntry(end,ar,plalts,scroll,data,fileid,"end")
  row.pack_start(end,True,True,2)
  path2 = [fileid,"info"]
  path2.append(path[-1])
  placeCalendarButton(data,row,end,path2,plalts,counter=ar)
  label = gtk.Label("Cue:")
  label.show()
  row.pack_start(label,False,False,2)
  ecue = gtk.Entry(25)
  ecue.show()
  path[1] = "ecue"
  ecue.set_text(getInf(data,path))
  activateInfoEntry(ecue,ar,plalts,scroll,data,fileid,"ecue")
  row.pack_start(ecue,True,True,2)
  self.pack_start(row,False,False,2)
  self.aspects = buildaspectrow(scroll,places.get(fileid),fileid,ar,plalts) # ,display = 0)
  self.add(self.aspects)
  label = gtk.Label("Stories")
  label.set_alignment(0,0)
  label.show()
  self.pack_start(label,False,False,2)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  self.stories = buildarow(scroll,"Stories:",data,fileid,'stories',ar,plalts,2)
  self.pack_start(self.stories,False,False,2)
  self.mention = buildarow(scroll,"First Mentions:",data,fileid,'mention',ar,plalts)
  self.pack_start(self.mention,False,False,2)
  self.l7 = gtk.Label("Specifications")
  self.l7.set_alignment(0,1)
  self.l7.show()
  self.pack_start(self.l7,False,False,2)
  self.s2 = gtk.HSeparator()
  self.pack_start(self.s2,False,False,2)
  self.s2.show()
  self.desc = buildarow(scroll,"Description:",data,fileid,'desc',ar,plalts)
  self.pack_start(self.desc,False,False,2)
  self.address = buildarow(scroll,"Address:",data,fileid,'address',ar,plalts)
  self.pack_start(self.address,False,False,2)
  self.location = buildLocRow(data,fileid)
  self.pack_start(self.location,False,False,2)
  label = gtk.Label("Notes")
  label.set_alignment(0,0)
  label.show()
  self.pack_start(label,False,False,2)
  self.s1 = gtk.HSeparator()
  self.pack_start(self.s1,False,False,2)
  self.s1.show()
  notebox = gtk.VBox()
  notebox.show()
  self.pack_start(notebox,True,True,2)
  newbut = gtk.Button("Add a note")
  newbut.show()
  image = gtk.Image()
  image.set_from_file("img/add.png")
  newbut.set_image(image)
  newbut.connect("clicked",addNote,scroll,ar,plalts,notebox,fileid)
  box = gtk.HBox()
  box.show()
  box.pack_end(newbut,0,0,2)
  label = gtk.Label("Date")
  label.show()
  box.pack_end(label,0,0,2)
  label = gtk.Label("Note")
  label.show()
  box.pack_end(label,1,1,2)
  notebox.pack_start(box,0,0,2)
  notes = data.get("info")
  if notes: notes = notes.get("notes")
  if notes:
    for i in sorted(notes.keys()):
      dval = notes[i].get("date")
      cval = notes[i].get("content")
      if dval: dval = dval[0]
      if cval: cval = cval[0]
      if dval and cval: addNote(self,scroll,notebox,fileid,dval,cval,i)
  el = gtk.Label("End of record")
  el.show()
  el.set_alignment(1,1)
  self.pack_start(el,0,0,3)