Ignore:
Timestamp:
Oct 18, 2018 4:25:25 PM (3 years ago)
Author:
vondreele
Message:

refactor MultiDataDialog? so it can show a line of multiple choice (or bool) entries in a row
use for run k-SUBGROUPSMAG - much nicer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrlGUI.py

    r3651 r3683  
    22682268            if event: event.Skip()
    22692269            Obj = event.GetEventObject()
    2270             id,limits,format = Indx[Obj]
    2271             if 'bool' in format:
    2272                 self.values[id] = Obj.GetValue()
     2270            format = Indx[Obj][-1]
     2271            if type(format) is list:
     2272                id,idl,limits = Indx[Obj][:3]
     2273                self.values[id][idl] = Obj.GetValue()
     2274            elif 'bool' in format:
     2275                self.values[Indx[Obj][0]] = Obj.GetValue()
    22732276            elif 'str' in format:
     2277                id,limits = Indx[Obj][:2]
    22742278                try:
    22752279                    val = Obj.GetValue()
     
    22812285                Obj.SetValue('%s'%(val))
    22822286            elif 'choice' in format:
    2283                 self.values[id] = Obj.GetValue()
     2287                self.values[Indx[Obj][0]] = Obj.GetValue()
    22842288            else:
     2289                id,limits = Indx[Obj][:2]
    22852290                try:
    22862291                    val = float(Obj.GetValue())
     
    22992304        for id,[prompt,value,limits,format] in enumerate(zip(self.prompts,self.values,self.limits,self.formats)):
    23002305            lineSizer.Add(wx.StaticText(self.panel,label=prompt),0,wx.ALIGN_CENTER)
    2301             if 'bool' in format:
     2306            if type(format) is list:  #let's assume these are 'choice' for now
     2307                valItem = wx.BoxSizer(wx.HORIZONTAL)
     2308                for idl,item in enumerate(format):
     2309                    listItem = wx.ComboBox(self.panel,value=limits[idl][0],choices=limits[idl],style=wx.CB_READONLY|wx.CB_DROPDOWN)
     2310                    listItem.Bind(wx.EVT_COMBOBOX,OnValItem)
     2311                    valItem.Add(listItem,0,WACV)
     2312                    Indx[listItem] = [id,idl,limits,format]
     2313            elif 'bool' in format:
    23022314                valItem = wx.CheckBox(self.panel,label='')
    23032315                valItem.Bind(wx.EVT_CHECKBOX,OnValItem)
Note: See TracChangeset for help on using the changeset viewer.