Basic Tracking done
This commit is contained in:
216
OpticsModel.py
216
OpticsModel.py
@@ -1,67 +1,170 @@
|
||||
import sys
|
||||
import json
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
from onlinemodel.core import Facility
|
||||
from onlinemodel.code import CMadX
|
||||
from onlinemodel.madx import CMadX
|
||||
|
||||
class Model:
|
||||
def __init__(self, phase=0, parent=None):
|
||||
print('Initializing online model ...')
|
||||
self.phase = phase # current planned future
|
||||
self.parent=parent
|
||||
self.om = Facility(phase)
|
||||
self.om = Facility(init=1, alt = phase)
|
||||
self.order = None
|
||||
|
||||
self.madx = CMadX()
|
||||
self.twiss = None
|
||||
# hook up events
|
||||
self.eventHandling()
|
||||
|
||||
|
||||
def getSettings(self):
|
||||
elements = self.om.listElement('*',1)
|
||||
quadrupoles={}
|
||||
sextupoles={}
|
||||
dipoles={}
|
||||
rf={}
|
||||
undulators={}
|
||||
kicker={}
|
||||
loc = 'SINLH01.DBAM010'
|
||||
energy={'location': loc, 'energy':self.om.EnergyAt(loc)}
|
||||
for ele in elements:
|
||||
if 'MQUA' in ele.Name:
|
||||
quadrupoles[ele.Name]={'k1':ele.k1,'k1L':ele.k1*ele.Length}
|
||||
elif 'MSEX' in ele.Name:
|
||||
sextupoles[ele.Name]={'k2':ele.k2,'k2L':ele.k2*ele.Length}
|
||||
elif 'MBND' in ele.Name:
|
||||
if 'SINLH' in ele.Name or 'SINBC' in ele.Name or 'S10BC' in ele.Name or 'SATMA' in ele.Name or 'SATUN' in ele.Name:
|
||||
dipoles[ele.Name]={'angle':ele.angle}
|
||||
elif 'UIND' in ele.Name:
|
||||
undulators[ele.Name]={'K':ele.K,'kx':ele.kx,'ky':ele.ky}
|
||||
elif 'RACC' in ele.Name:
|
||||
rf[ele.Name]={'Gradient':ele.Gradient,'Phase':ele.Phase}
|
||||
elif 'MKAC' in ele.Name or 'MKDC' in ele.Name:
|
||||
kicker[ele.Name] = {'cory': ele.cory}
|
||||
return {'Quadrupole':quadrupoles,'Sextupole':sextupoles,'Dipole':dipoles,'RF':rf,'Undulator':undulators,'Kicker':kicker,'Energy':energy}
|
||||
|
||||
def loadSettingsGroup(self,group,fields):
|
||||
for key in group.keys():
|
||||
ele = self.om.getElement(key)
|
||||
for field in fields:
|
||||
ele.__dict__[field]=group[key][field]
|
||||
|
||||
def loadSettings(self,settings):
|
||||
self.loadSettingsGroup(settings['Quadrupole'],['k1'])
|
||||
self.loadSettingsGroup(settings['Sextupole'], ['k2'])
|
||||
self.loadSettingsGroup(settings['Dipole'], ['angle'])
|
||||
self.loadSettingsGroup(settings['RF'], ['Gradient','Phase'])
|
||||
self.loadSettingsGroup(settings['Undulator'], ['K','kx','ky'])
|
||||
self.loadSettingsGroup(settings['Kicker'], ['cory'])
|
||||
self.om.forceEnergyAt(settings['Energy']['location'],settings['Energy']['energy'][0])
|
||||
|
||||
|
||||
|
||||
|
||||
def updateModel(self):
|
||||
file ='SwissFELRef.json'
|
||||
with open(file) as f:
|
||||
data = json.load(f)
|
||||
for key in data['settings'].keys():
|
||||
tags=key.split(':')
|
||||
elename = tags[0].replace('-','.')
|
||||
fld = tags[1]
|
||||
ele = self.om.getElement(elename)
|
||||
if 'K1L' == fld:
|
||||
ele.k1 = data['settings'][key]/ele.Length
|
||||
elif 'K2L' == fld:
|
||||
ele.k2 = data['settings'][key]/ele.Length
|
||||
elif 'Grad' == fld:
|
||||
ele.Gradient = data['settings'][key]
|
||||
elif 'Phase' == fld:
|
||||
ele.Phase = data['settings'][key]
|
||||
elif 'kx' == fld:
|
||||
ele.kx = data['settings'][key]
|
||||
elif 'ky' == fld:
|
||||
ele.ky = data['settings'][key]
|
||||
elif 'K' == fld:
|
||||
ele.K = data['settings'][key]
|
||||
elif 'Gap' == fld:
|
||||
ele.Gap = data['settings'][key]
|
||||
elif 'Offset' == fld:
|
||||
ele.Offset = data['settings'][key]
|
||||
elif 'K0L' == fld:
|
||||
ele.angle = data['settings'][key]
|
||||
elif 'KICK' == fld:
|
||||
ele.cory=data['settings'][key]
|
||||
else:
|
||||
print('Unknown tag:', key, data['settings'][key])
|
||||
|
||||
def eventHandling(self):
|
||||
self.parent.UITrack.clicked.connect(self.track)
|
||||
|
||||
def track(self):
|
||||
start = str(self.parent.UITrackStart.text())
|
||||
end = str(self.parent.UITrackEnd.text())
|
||||
twiss = {}
|
||||
twiss['betax0'] = float(str(self.parent.UIBetax.text()))
|
||||
twiss['betay0'] = float(str(self.parent.UIBetay.text()))
|
||||
twiss['alphax0'] = float(str(self.parent.UIAlphax.text()))
|
||||
twiss['alphay0'] = float(str(self.parent.UIAlphay.text()))
|
||||
twiss['energy0'] = 150
|
||||
self.doTrack(start,end,'SINLH02.MQUA410$START',twiss)
|
||||
start = str(self.parent.UITrackStart.text()).upper()
|
||||
end = str(self.parent.UITrackEnd.text()).upper()
|
||||
if len(start)>7:
|
||||
start = start[0:7]
|
||||
if len(end)>7:
|
||||
end = end[0:7]
|
||||
twiss0 = self.parent.reference.getReferencePoint()
|
||||
refloc = self.parent.reference.getReferenceLocation().upper()
|
||||
twiss0['energy'] = 150.
|
||||
start, end = self.checkRange(start, end, refloc[0:7])
|
||||
if start is None:
|
||||
return
|
||||
print('Tracking from',start,'to',end)
|
||||
self.doTrack(start,end,refloc,twiss0)
|
||||
|
||||
|
||||
def doBackTrack(self,start=None,end=None,twiss=None):
|
||||
twiss['alphax0'] = -twiss['alphax0']
|
||||
twiss['alphay0'] = -twiss['alphay0']
|
||||
self.madx.updateVariables(twiss)
|
||||
self.madx.updateLattice(self.om)
|
||||
twiss = self.madx.track(start, end, reverse=True)
|
||||
#self.parent.plot.newData(twiss)
|
||||
twiss0 = {}
|
||||
twiss0['betax0']= twiss.betx[-1]
|
||||
twiss0['betay0'] = twiss.bety[-1]
|
||||
twiss0['alphax0'] = -twiss.alfx[-1]
|
||||
twiss0['alphay0'] = -twiss.alfy[-1]
|
||||
self.madx.clear()
|
||||
return twiss0
|
||||
|
||||
|
||||
def doTrack(self, start,end,refloc, twiss):
|
||||
self.setBranch(start,end)
|
||||
# check if refloc is in the range of start and end
|
||||
def doTrack(self, start,end, refloc, twiss_in, plot = True):
|
||||
twiss0={key+'0':twiss_in[key] for key in twiss_in.keys()}
|
||||
self.setBranch(end.upper())
|
||||
if not refloc == start:
|
||||
twiss = self.doBackTrack(refloc,start,twiss)
|
||||
twiss0 = self.doBackTrack(refloc,start,twiss0)
|
||||
self.madx.updateVariables(twiss0)
|
||||
twiss = self.madx.track(start+'$START',end+'$END')
|
||||
|
||||
self.madx.updateVariables(twiss)
|
||||
self.madx.updateLattice(self.om)
|
||||
energy = np.array([0. for i in range(len(twiss.betx))])
|
||||
|
||||
twiss = self.madx.track()
|
||||
self.parent.plot.newData(twiss)
|
||||
e0 = 0.
|
||||
de = 0
|
||||
for i, name in enumerate(twiss.name):
|
||||
if len(name) > 15:
|
||||
elename = name[0:15]
|
||||
ele = self.om.getElement(elename)
|
||||
if not ele is None:
|
||||
erg= self.om.EnergyAt(ele)
|
||||
if e0 == 0.:
|
||||
energy[:i]+=erg[0]*1e-6
|
||||
e0 = (erg[0]+erg[1])*1e-6
|
||||
energy[i]=e0
|
||||
if plot:
|
||||
self.parent.plot.newData(twiss,energy)
|
||||
|
||||
def setBranch(self,start,end):
|
||||
start0 = start[0:7]
|
||||
end0 = end[0:7]
|
||||
def doBackTrack(self,start=None,end=None,twiss0=None):
|
||||
twiss0['alphax0'] = -twiss0['alphax0'] # revert particle trajectories
|
||||
twiss0['alphay0'] = -twiss0['alphay0']
|
||||
twiss0['etapx0'] = -twiss0['etapx0']
|
||||
twiss0['etapy0'] = -twiss0['etapx0']
|
||||
twiss0['px0'] = -twiss0['px0']
|
||||
twiss0['py0'] = -twiss0['py0']
|
||||
self.madx.updateVariables(twiss0)
|
||||
twiss = self.madx.track(start, end+'$START', reverse=True)
|
||||
twiss1 = {}
|
||||
twiss1['betax0'] = twiss.betx[-1] # revert trajectory back
|
||||
twiss1['betay0'] = twiss.bety[-1]
|
||||
twiss1['alphax0'] = -twiss.alfx[-1]
|
||||
twiss1['alphay0'] = -twiss.alfy[-1]
|
||||
twiss1['etax0'] = twiss.dx[-1]
|
||||
twiss1['etay0'] = twiss.dy[-1]
|
||||
twiss1['etapx0'] = -twiss.dpx[-1]
|
||||
twiss1['etapy0'] = -twiss.dpy[-1]
|
||||
twiss1['x0'] = twiss.x[-1]
|
||||
twiss1['y0'] = twiss.y[-1]
|
||||
twiss1['px0'] = -twiss.px[-1]
|
||||
twiss1['py0'] = -twiss.py[-1]
|
||||
return twiss1
|
||||
|
||||
def setBranch(self,end):
|
||||
destination = 'ARAMIS'
|
||||
if 'SPO' in end:
|
||||
destination = 'PORTHOS'
|
||||
@@ -69,4 +172,31 @@ class Model:
|
||||
destination = 'ATHOS'
|
||||
elif 'S10BD' in end or 'SIN' in end:
|
||||
destination = 'INJECTOR'
|
||||
self.om.setBranch(destination,start0,end0)
|
||||
self.om.setBranch(destination,'SINLH01')
|
||||
self.order=self.om.getBranchElements()
|
||||
self.madx.updateLattice(self.om,destination)
|
||||
|
||||
def checkRange(self,start,end,ref):
|
||||
if self.om.getSection(start) is None:
|
||||
print('Invalid staring point for tracking. Setting to SINLH01')
|
||||
startsec='SINLH01'
|
||||
else:
|
||||
startsec = self.om.getSection(start).Element[0].Name
|
||||
if self.om.getSection(end) is None:
|
||||
print('Invalid staring point for tracking. Setting to starting section')
|
||||
endsec = startsec
|
||||
else:
|
||||
endsec = self.om.getSection(end).Element[0].Name
|
||||
if self.om.getSection(ref) is None:
|
||||
print('Invalid section for reference. Aborting tracking')
|
||||
return None,None
|
||||
refsec = self.om.getSection(ref).Element[0].Name
|
||||
if not self.om.isUpstream(startsec,endsec):
|
||||
return self.checkRange(end,start,ref)
|
||||
if not self.om.isUpstream(startsec,refsec):
|
||||
start = ref
|
||||
print('Reference point is upstream the tracking range. Extending range')
|
||||
if not self.om.isUpstream(refsec,endsec):
|
||||
end = ref
|
||||
print('Reference point is downstream the tracking range. Extending range')
|
||||
return start,end
|
||||
|
||||
@@ -28,6 +28,7 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
|
||||
self.initmpl(self.mplvl, self.mplwindow)
|
||||
|
||||
self.twiss=None
|
||||
self.energy=None
|
||||
|
||||
# all action for optics plotting
|
||||
self.PBetax.toggled.connect(self.doplot)
|
||||
@@ -37,12 +38,14 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
|
||||
self.PEtax.toggled.connect(self.doplot)
|
||||
self.PEtay.toggled.connect(self.doplot)
|
||||
self.PR56.toggled.connect(self.doplot)
|
||||
self.PEnergy.toggled.connect(self.doplot)
|
||||
self.PStart.editingFinished.connect(self.doplot)
|
||||
self.PEnd.editingFinished.connect(self.doplot)
|
||||
|
||||
|
||||
def newData(self,twiss):
|
||||
def newData(self,twiss,energy):
|
||||
self.twiss=twiss
|
||||
self.energy=energy
|
||||
self.updateOpticsTable()
|
||||
self.doplot()
|
||||
|
||||
@@ -52,10 +55,10 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
|
||||
return
|
||||
|
||||
nrow = len(self.twiss.s)
|
||||
ncol = 9
|
||||
ncol = 10
|
||||
self.UITwissValues.setColumnCount(ncol)
|
||||
self.UITwissValues.setRowCount(nrow)
|
||||
self.UITwissValues.setHorizontalHeaderLabels(['Name','s','betax','betay','alphax','alphay','etax','etay','r56'])
|
||||
self.UITwissValues.setHorizontalHeaderLabels(['Name','s','betax','betay','alphax','alphay','etax','etay','r56','energy'])
|
||||
for i in range(nrow):
|
||||
self.UITwissValues.setItem(i, 0, QtWidgets.QTableWidgetItem(self.twiss.name[i].split(':')[0]))
|
||||
self.UITwissValues.setItem(i, 1, QtWidgets.QTableWidgetItem('%10.6f' % self.twiss.s[i]))
|
||||
@@ -66,6 +69,7 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
|
||||
self.UITwissValues.setItem(i, 6, QtWidgets.QTableWidgetItem('%10.6f' % self.twiss.dx[i]))
|
||||
self.UITwissValues.setItem(i, 7, QtWidgets.QTableWidgetItem('%10.6f' % self.twiss.dy[i]))
|
||||
self.UITwissValues.setItem(i, 8, QtWidgets.QTableWidgetItem('%10.6f' % self.twiss.re56[i]))
|
||||
self.UITwissValues.setItem(i, 9, QtWidgets.QTableWidgetItem('%10.6f' % self.energy[i]))
|
||||
self.UITwissValues.resizeColumnsToContents()
|
||||
self.UITwissValues.verticalHeader().hide()
|
||||
self.UITwissValues.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
|
||||
@@ -91,7 +95,7 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
|
||||
filt['DX']=self.PEtax.isChecked()
|
||||
filt['DY']=self.PEtay.isChecked()
|
||||
filt['RE56']=self.PR56.isChecked()
|
||||
# filt['Energy']=self.PEnergy.isChecked()
|
||||
filt['Energy']=self.PEnergy.isChecked()
|
||||
|
||||
s = self.twiss.s
|
||||
i1 = np.argmin(np.abs(s - z0))
|
||||
@@ -122,9 +126,9 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
|
||||
if filt['RE56']:
|
||||
self.plotSingle(s[i1:i2], self.twiss.re56[i1:i2], (0, 0, 0, 1), r'$R_{56}$')
|
||||
ylabel = ylabel + r'$R_{56}$ (m), '
|
||||
# if filt['Energy']:
|
||||
# self.plotSingle(s[i1:i2], data['Energy'][i1:i2], (0, 1, 0, 1), r'$E$')
|
||||
# ylabel = ylabel + r'$E$ (MeV), '
|
||||
if filt['Energy']:
|
||||
self.plotSingle(s[i1:i2], self.energy[i1:i2], (0, 1, 0, 1), r'$E$')
|
||||
ylabel = ylabel + r'$E$ (MeV), '
|
||||
|
||||
if len(ylabel) < 3:
|
||||
self.canvas.draw()
|
||||
|
||||
@@ -1,27 +1,20 @@
|
||||
import sys
|
||||
#import re
|
||||
#import numpy as np
|
||||
#import copy
|
||||
#import os
|
||||
#import json
|
||||
import json
|
||||
from datetime import datetime
|
||||
import time
|
||||
#from shutil import copyfile
|
||||
#from os.path import isfile, join
|
||||
|
||||
from PyQt5 import QtWidgets,QtGui
|
||||
from PyQt5.uic import loadUiType
|
||||
#from PyQt5.QtGui import QPixmap, QTransform
|
||||
#from PyQt5.QtWidgets import QMessageBox
|
||||
|
||||
from ui.OpticsToolsGui import Ui_OpticsGUI
|
||||
from OpticsPlot import OpticsPlot
|
||||
from OpticsModel import Model
|
||||
from OpticsMachine import Machine
|
||||
from reference import ReferenceManager
|
||||
from sandbox import Sandbox
|
||||
|
||||
|
||||
class OpticsTools(QtWidgets.QMainWindow, Ui_OpticsGUI):
|
||||
def __init__(self,phase=0):
|
||||
def __init__(self,phase=0, office = False):
|
||||
super(OpticsTools, self).__init__()
|
||||
self.setupUi(self)
|
||||
|
||||
@@ -34,16 +27,51 @@ class OpticsTools(QtWidgets.QMainWindow, Ui_OpticsGUI):
|
||||
|
||||
# initialize online model
|
||||
self.model = Model(phase=phase,parent=self)
|
||||
# if phase == 0:
|
||||
# self.machine = Machine()
|
||||
# else:
|
||||
# self.machine = None
|
||||
if phase == 0 and office == False:
|
||||
self.machine = Machine()
|
||||
else:
|
||||
self.machine = None
|
||||
|
||||
self.reference = ReferenceManager(parent = self)
|
||||
self.sandbox = Sandbox(parent = self, machine = self.machine)
|
||||
|
||||
|
||||
self.loadSettingsdirect("/sf/data/applications/BD-OpticsTools/reference/settings/ReferenceSetting.json")
|
||||
# events handling
|
||||
self.actionOpen_2.triggered.connect(self.loadSettings)
|
||||
self.actionSave.triggered.connect(self.saveSettings)
|
||||
|
||||
def closeEvent(self, event):
|
||||
self.plot.close()
|
||||
event.accept()
|
||||
|
||||
def saveSettings(self):
|
||||
options = QtWidgets.QFileDialog.Options()
|
||||
options |= QtWidgets.QFileDialog.DontUseNativeDialog
|
||||
fileName, _ = QtWidgets.QFileDialog.getSaveFileName(self, "Save Settings",
|
||||
"/sf/data/applications/BD-OpticsTools/saved_settings/newSetting.json",
|
||||
"Json Files (*.json)", options=options)
|
||||
if not fileName:
|
||||
return
|
||||
settings=self.model.getSettings()
|
||||
with open(fileName, 'w', encoding='utf-8') as f:
|
||||
json.dump(settings, f, ensure_ascii=False, indent=4)
|
||||
|
||||
|
||||
def loadSettings(self):
|
||||
options = QtWidgets.QFileDialog.Options()
|
||||
options |= QtWidgets.QFileDialog.DontUseNativeDialog
|
||||
fileName, _ = QtWidgets.QFileDialog.getOpenFileName(self, "Open Settings",
|
||||
"/sf/data/applications/BD-OpticsTools/saved_settings/newSetting.json",
|
||||
"Json Files (*.json)", options=options)
|
||||
if not fileName:
|
||||
return
|
||||
self.loadSettingsdirect(fileName)
|
||||
|
||||
def loadSettingsdirect(self,fileName):
|
||||
with open(fileName, 'r', encoding='utf-8') as f:
|
||||
settings = json.load(f)
|
||||
self.model.loadSettings(settings)
|
||||
# --------------------------------
|
||||
# Main routine
|
||||
|
||||
@@ -55,6 +83,6 @@ if __name__ == '__main__':
|
||||
arg=int(sys.argv[1])
|
||||
else:
|
||||
arg=0
|
||||
main = OpticsTools()
|
||||
main = OpticsTools(phase = 0 , office = True)
|
||||
main.show()
|
||||
sys.exit(app.exec_())
|
||||
|
||||
99244
SwissFELRef.json
Normal file
99244
SwissFELRef.json
Normal file
File diff suppressed because it is too large
Load Diff
88
reference.py
Normal file
88
reference.py
Normal file
@@ -0,0 +1,88 @@
|
||||
class ReferenceManager:
|
||||
def __init__(self, parent):
|
||||
self.parent = parent
|
||||
self.reference={}
|
||||
self.twisswidget={'betax':self.parent.UIBetax,'betay':self.parent.UIBetay,
|
||||
'alphax':self.parent.UIAlphax,'alphay':self.parent.UIAlphay,
|
||||
'etax':self.parent.UIEtax,'etay':self.parent.UIEtay,
|
||||
'etapx':self.parent.UIEtapx,'etapy':self.parent.UIEtapy,
|
||||
'x':self.parent.UIX,'y':self.parent.UIY,
|
||||
'px':self.parent.UIPX,'py':self.parent.UIPY}
|
||||
|
||||
|
||||
self.defineReferencePoints()
|
||||
self.updateReferenceComboBox()
|
||||
self.updateReferenceWidgets()
|
||||
self.parent.UITrackReference.currentIndexChanged.connect(self.updateReferenceWidgets)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#### all event selecting some tracking points
|
||||
|
||||
def updateReferencePoint(self,twiss):
|
||||
for key in self.twisswidget.keys():
|
||||
if key in twiss.keys():
|
||||
value = twiss[key]
|
||||
else:
|
||||
value = 0
|
||||
if 'beta' in key:
|
||||
value = 30
|
||||
self.twisswidget[key].setText(str(value))
|
||||
|
||||
def getReferencePoint(self):
|
||||
self.updateReferenceWidgets() # enforce that the data is consistent
|
||||
twiss = {key:float(str(self.twisswidget[key].text())) for key in self.twisswidget.keys()}
|
||||
return twiss
|
||||
|
||||
def getReferenceLocation(self):
|
||||
return str(self.parent.UITrackLocation.text())
|
||||
|
||||
|
||||
def updateReferenceWidgets(self):
|
||||
key = str(self.parent.UITrackReference.currentText())
|
||||
if key == 'User Defined':
|
||||
return
|
||||
twiss = self.reference['Reference'][key]['twiss']
|
||||
name = self.reference['Reference'][key]['location']
|
||||
self.parent.UITrackLocation.setText(name)
|
||||
self.updateReferencePoint(twiss)
|
||||
|
||||
def updateReferenceComboBox(self):
|
||||
self.parent.UITrackReference.clear()
|
||||
for ref in self.reference['Reference'].keys():
|
||||
self.parent.UITrackReference.addItem(ref)
|
||||
self.parent.UITrackReference.addItem('User Defined')
|
||||
|
||||
def defineReferencePoints(self):
|
||||
self.reference={'Reference':{}}
|
||||
self.reference['Reference']['Laser Heater']=self.defineRef('sinlh02.mqua410$start',
|
||||
{'betax':11.2,'alphax':3.2,
|
||||
'betay':0.8,'alphay':0.75})
|
||||
self.reference['Reference']['Bunch Compressor1']=self.defineRef('sindi02.mqua020$start',
|
||||
{'betax': 11.1557,'alphax': -1.17,
|
||||
'betay': 50, 'alphay': 0.})
|
||||
self.reference['Reference']['Bunch Compressor 2']=self.defineRef('s10ma01.mqua020$start',
|
||||
{'betax': 6.14, 'alphax': -0.83,
|
||||
'betay': 22.86,'alphay': -1.18})
|
||||
self.reference['Reference']['Switchyard']=self.defineRef('s20sy02.mqua070$start',
|
||||
{'betax': 12.99, 'alphax': 3.7011,
|
||||
'betay': 46.339,'alphay': -6.501})
|
||||
self.reference['Reference']['Linac3']=self.defineRef('s30cb10.mqua430$start',
|
||||
{'betax': 8.83, 'alphax': 0.548,
|
||||
'betay': 30.44, 'alphay': -1.866})
|
||||
self.reference['Reference']['Aramis Stopper']=self.defineRef('sarma01.mqua010$start',
|
||||
{'betax': 2.304, 'alphax': -1.4045,
|
||||
'betay': 25.929, 'alphay': -6.363})
|
||||
self.reference['Reference']['Athos HERO']=self.defineRef('satdi01.mqua250$start',
|
||||
{'betax': 35.76, 'alphax': -1.166,
|
||||
'betay': 24.087, 'alphay': 0.648})
|
||||
self.reference['Reference']['Athos Deflector']=self.defineRef('satbd01.mqua010$start',
|
||||
{'betax': 50, 'alphax': 0,
|
||||
'betay': 50, 'alphay': 0})
|
||||
|
||||
def defineRef(self,location,twiss):
|
||||
ref={'location':location,'twiss':twiss}
|
||||
return ref
|
||||
10
sandbox.py
Normal file
10
sandbox.py
Normal file
@@ -0,0 +1,10 @@
|
||||
|
||||
class Sandbox:
|
||||
def __init__(self, parent=None,machine=False):
|
||||
self.parent=parent
|
||||
self.machine=machine
|
||||
|
||||
|
||||
def updateSandbox(self):
|
||||
a = 1
|
||||
|
||||
@@ -70,7 +70,7 @@ class Ui_OpticsPlotGUI(object):
|
||||
self.PR56.setObjectName("PR56")
|
||||
self.gridLayout_4.addWidget(self.PR56, 3, 0, 1, 1)
|
||||
self.PEnergy = QtWidgets.QPushButton(self.widget_2)
|
||||
self.PEnergy.setEnabled(False)
|
||||
self.PEnergy.setEnabled(True)
|
||||
self.PEnergy.setCheckable(True)
|
||||
self.PEnergy.setObjectName("PEnergy")
|
||||
self.gridLayout_4.addWidget(self.PEnergy, 3, 1, 1, 1)
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="PEnergy">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Energy</string>
|
||||
|
||||
@@ -32,19 +32,13 @@ class Ui_OpticsGUI(object):
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.widget_2 = QtWidgets.QWidget(self.tab_3)
|
||||
self.widget_2.setObjectName("widget_2")
|
||||
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.widget_2)
|
||||
self.verticalLayout_5.setObjectName("verticalLayout_5")
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget_2)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.UITrack = QtWidgets.QPushButton(self.widget_2)
|
||||
self.UITrack.setObjectName("UITrack")
|
||||
self.verticalLayout_5.addWidget(self.UITrack)
|
||||
self.label = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
|
||||
self.label.setSizePolicy(sizePolicy)
|
||||
self.label.setObjectName("label")
|
||||
self.verticalLayout_5.addWidget(self.label)
|
||||
self.verticalLayout.addWidget(self.UITrack)
|
||||
self.gridLayout_4 = QtWidgets.QGridLayout()
|
||||
self.gridLayout_4.setObjectName("gridLayout_4")
|
||||
self.UITrackStart = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -52,7 +46,7 @@ class Ui_OpticsGUI(object):
|
||||
sizePolicy.setHeightForWidth(self.UITrackStart.sizePolicy().hasHeightForWidth())
|
||||
self.UITrackStart.setSizePolicy(sizePolicy)
|
||||
self.UITrackStart.setObjectName("UITrackStart")
|
||||
self.verticalLayout_5.addWidget(self.UITrackStart)
|
||||
self.gridLayout_4.addWidget(self.UITrackStart, 1, 0, 1, 1)
|
||||
self.label_2 = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -60,7 +54,15 @@ class Ui_OpticsGUI(object):
|
||||
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
|
||||
self.label_2.setSizePolicy(sizePolicy)
|
||||
self.label_2.setObjectName("label_2")
|
||||
self.verticalLayout_5.addWidget(self.label_2)
|
||||
self.gridLayout_4.addWidget(self.label_2, 0, 1, 1, 1)
|
||||
self.label = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
|
||||
self.label.setSizePolicy(sizePolicy)
|
||||
self.label.setObjectName("label")
|
||||
self.gridLayout_4.addWidget(self.label, 0, 0, 1, 1)
|
||||
self.UITrackEnd = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -68,17 +70,42 @@ class Ui_OpticsGUI(object):
|
||||
sizePolicy.setHeightForWidth(self.UITrackEnd.sizePolicy().hasHeightForWidth())
|
||||
self.UITrackEnd.setSizePolicy(sizePolicy)
|
||||
self.UITrackEnd.setObjectName("UITrackEnd")
|
||||
self.verticalLayout_5.addWidget(self.UITrackEnd)
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout()
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.UIAlphay = QtWidgets.QLineEdit(self.widget_2)
|
||||
self.gridLayout_4.addWidget(self.UITrackEnd, 1, 1, 1, 1)
|
||||
self.verticalLayout.addLayout(self.gridLayout_4)
|
||||
self.label_9 = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_9.sizePolicy().hasHeightForWidth())
|
||||
self.label_9.setSizePolicy(sizePolicy)
|
||||
self.label_9.setObjectName("label_9")
|
||||
self.verticalLayout.addWidget(self.label_9)
|
||||
self.UITrackReference = QtWidgets.QComboBox(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIAlphay.sizePolicy().hasHeightForWidth())
|
||||
self.UIAlphay.setSizePolicy(sizePolicy)
|
||||
self.UIAlphay.setObjectName("UIAlphay")
|
||||
self.gridLayout_3.addWidget(self.UIAlphay, 3, 2, 1, 1)
|
||||
sizePolicy.setHeightForWidth(self.UITrackReference.sizePolicy().hasHeightForWidth())
|
||||
self.UITrackReference.setSizePolicy(sizePolicy)
|
||||
self.UITrackReference.setObjectName("UITrackReference")
|
||||
self.verticalLayout.addWidget(self.UITrackReference)
|
||||
self.label_10 = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_10.sizePolicy().hasHeightForWidth())
|
||||
self.label_10.setSizePolicy(sizePolicy)
|
||||
self.label_10.setObjectName("label_10")
|
||||
self.verticalLayout.addWidget(self.label_10)
|
||||
self.UITrackLocation = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UITrackLocation.sizePolicy().hasHeightForWidth())
|
||||
self.UITrackLocation.setSizePolicy(sizePolicy)
|
||||
self.UITrackLocation.setObjectName("UITrackLocation")
|
||||
self.verticalLayout.addWidget(self.UITrackLocation)
|
||||
self.gridLayout_3 = QtWidgets.QGridLayout()
|
||||
self.gridLayout_3.setObjectName("gridLayout_3")
|
||||
self.UIBetax = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -87,6 +114,9 @@ class Ui_OpticsGUI(object):
|
||||
self.UIBetax.setSizePolicy(sizePolicy)
|
||||
self.UIBetax.setObjectName("UIBetax")
|
||||
self.gridLayout_3.addWidget(self.UIBetax, 1, 1, 1, 1)
|
||||
self.label_5 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_3.addWidget(self.label_5, 1, 0, 1, 1)
|
||||
self.UIAlphax = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -103,20 +133,18 @@ class Ui_OpticsGUI(object):
|
||||
self.UIBetay.setSizePolicy(sizePolicy)
|
||||
self.UIBetay.setObjectName("UIBetay")
|
||||
self.gridLayout_3.addWidget(self.UIBetay, 1, 2, 1, 1)
|
||||
self.label_3 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_3.setObjectName("label_3")
|
||||
self.gridLayout_3.addWidget(self.label_3, 4, 0, 1, 1)
|
||||
self.label_7 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_7.setObjectName("label_7")
|
||||
self.gridLayout_3.addWidget(self.label_7, 6, 0, 1, 1)
|
||||
self.label_4 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_4.setObjectName("label_4")
|
||||
self.gridLayout_3.addWidget(self.label_4, 5, 0, 1, 1)
|
||||
self.label_6 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_6.setObjectName("label_6")
|
||||
self.gridLayout_3.addWidget(self.label_6, 3, 0, 1, 1)
|
||||
self.label_5 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_5.setObjectName("label_5")
|
||||
self.gridLayout_3.addWidget(self.label_5, 1, 0, 1, 1)
|
||||
self.label_29 = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_29.sizePolicy().hasHeightForWidth())
|
||||
self.label_29.setSizePolicy(sizePolicy)
|
||||
self.label_29.setObjectName("label_29")
|
||||
self.gridLayout_3.addWidget(self.label_29, 0, 1, 1, 1)
|
||||
self.label_30 = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -125,9 +153,92 @@ class Ui_OpticsGUI(object):
|
||||
self.label_30.setSizePolicy(sizePolicy)
|
||||
self.label_30.setObjectName("label_30")
|
||||
self.gridLayout_3.addWidget(self.label_30, 0, 2, 1, 1)
|
||||
self.verticalLayout_5.addLayout(self.gridLayout_3)
|
||||
self.label_29 = QtWidgets.QLabel(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.label_29.sizePolicy().hasHeightForWidth())
|
||||
self.label_29.setSizePolicy(sizePolicy)
|
||||
self.label_29.setObjectName("label_29")
|
||||
self.gridLayout_3.addWidget(self.label_29, 0, 1, 1, 1)
|
||||
self.UIAlphay = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIAlphay.sizePolicy().hasHeightForWidth())
|
||||
self.UIAlphay.setSizePolicy(sizePolicy)
|
||||
self.UIAlphay.setObjectName("UIAlphay")
|
||||
self.gridLayout_3.addWidget(self.UIAlphay, 3, 2, 1, 1)
|
||||
self.label_8 = QtWidgets.QLabel(self.widget_2)
|
||||
self.label_8.setObjectName("label_8")
|
||||
self.gridLayout_3.addWidget(self.label_8, 7, 0, 1, 1)
|
||||
self.UIEtax = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIEtax.sizePolicy().hasHeightForWidth())
|
||||
self.UIEtax.setSizePolicy(sizePolicy)
|
||||
self.UIEtax.setObjectName("UIEtax")
|
||||
self.gridLayout_3.addWidget(self.UIEtax, 4, 1, 1, 1)
|
||||
self.UIEtapx = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIEtapx.sizePolicy().hasHeightForWidth())
|
||||
self.UIEtapx.setSizePolicy(sizePolicy)
|
||||
self.UIEtapx.setObjectName("UIEtapx")
|
||||
self.gridLayout_3.addWidget(self.UIEtapx, 5, 1, 1, 1)
|
||||
self.UIX = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIX.sizePolicy().hasHeightForWidth())
|
||||
self.UIX.setSizePolicy(sizePolicy)
|
||||
self.UIX.setObjectName("UIX")
|
||||
self.gridLayout_3.addWidget(self.UIX, 6, 1, 1, 1)
|
||||
self.UIPX = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIPX.sizePolicy().hasHeightForWidth())
|
||||
self.UIPX.setSizePolicy(sizePolicy)
|
||||
self.UIPX.setObjectName("UIPX")
|
||||
self.gridLayout_3.addWidget(self.UIPX, 7, 1, 1, 1)
|
||||
self.UIEtay = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIEtay.sizePolicy().hasHeightForWidth())
|
||||
self.UIEtay.setSizePolicy(sizePolicy)
|
||||
self.UIEtay.setObjectName("UIEtay")
|
||||
self.gridLayout_3.addWidget(self.UIEtay, 4, 2, 1, 1)
|
||||
self.UIEtapy = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIEtapy.sizePolicy().hasHeightForWidth())
|
||||
self.UIEtapy.setSizePolicy(sizePolicy)
|
||||
self.UIEtapy.setObjectName("UIEtapy")
|
||||
self.gridLayout_3.addWidget(self.UIEtapy, 5, 2, 1, 1)
|
||||
self.UIY = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIY.sizePolicy().hasHeightForWidth())
|
||||
self.UIY.setSizePolicy(sizePolicy)
|
||||
self.UIY.setObjectName("UIY")
|
||||
self.gridLayout_3.addWidget(self.UIY, 6, 2, 1, 1)
|
||||
self.UIPY = QtWidgets.QLineEdit(self.widget_2)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(self.UIPY.sizePolicy().hasHeightForWidth())
|
||||
self.UIPY.setSizePolicy(sizePolicy)
|
||||
self.UIPY.setObjectName("UIPY")
|
||||
self.gridLayout_3.addWidget(self.UIPY, 7, 2, 1, 1)
|
||||
self.verticalLayout.addLayout(self.gridLayout_3)
|
||||
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||
self.verticalLayout_5.addItem(spacerItem)
|
||||
self.verticalLayout.addItem(spacerItem)
|
||||
self.horizontalLayout.addWidget(self.widget_2)
|
||||
spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
|
||||
self.horizontalLayout.addItem(spacerItem1)
|
||||
@@ -247,22 +358,14 @@ class Ui_OpticsGUI(object):
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.menuFile = QtWidgets.QMenu(self.menubar)
|
||||
self.menuFile.setObjectName("menuFile")
|
||||
self.menuRun = QtWidgets.QMenu(self.menubar)
|
||||
self.menuRun.setObjectName("menuRun")
|
||||
self.menuHelp = QtWidgets.QMenu(self.menubar)
|
||||
self.menuHelp.setObjectName("menuHelp")
|
||||
self.menuEdit = QtWidgets.QMenu(self.menubar)
|
||||
self.menuEdit.setObjectName("menuEdit")
|
||||
self.menuSettings = QtWidgets.QMenu(self.menubar)
|
||||
self.menuSettings.setObjectName("menuSettings")
|
||||
self.menuElegant = QtWidgets.QMenu(self.menubar)
|
||||
self.menuElegant.setObjectName("menuElegant")
|
||||
OpticsGUI.setMenuBar(self.menubar)
|
||||
self.statusbar = QtWidgets.QStatusBar(OpticsGUI)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
OpticsGUI.setStatusBar(self.statusbar)
|
||||
self.actionNew = QtWidgets.QAction(OpticsGUI)
|
||||
self.actionNew.setObjectName("actionNew")
|
||||
self.actionOpen_2 = QtWidgets.QAction(OpticsGUI)
|
||||
self.actionOpen_2.setObjectName("actionOpen_2")
|
||||
self.actionOpen = QtWidgets.QAction(OpticsGUI)
|
||||
self.actionOpen.setObjectName("actionOpen")
|
||||
self.actionSave_Model = QtWidgets.QAction(OpticsGUI)
|
||||
@@ -365,37 +468,15 @@ class Ui_OpticsGUI(object):
|
||||
self.actionSave_Reference.setObjectName("actionSave_Reference")
|
||||
self.actionNew_Reference = QtWidgets.QAction(OpticsGUI)
|
||||
self.actionNew_Reference.setObjectName("actionNew_Reference")
|
||||
self.menuFile.addAction(self.actionNew)
|
||||
self.menuFile.addAction(self.actionOpen)
|
||||
self.menuFile.addAction(self.actionSave_Model)
|
||||
self.menuFile.addAction(self.actionSave_Model_as)
|
||||
self.actionSave = QtWidgets.QAction(OpticsGUI)
|
||||
self.actionSave.setObjectName("actionSave")
|
||||
self.menuFile.addAction(self.actionOpen_2)
|
||||
self.menuFile.addAction(self.actionSave)
|
||||
self.menuFile.addSeparator()
|
||||
self.menuFile.addAction(self.actionNew_Script)
|
||||
self.menuFile.addAction(self.actionOpen_Script)
|
||||
self.menuFile.addAction(self.actionSave_Script)
|
||||
self.menuFile.addAction(self.actionDuplicate_Script)
|
||||
self.menuFile.addSeparator()
|
||||
self.menuFile.addAction(self.actionBackup)
|
||||
self.menuFile.addAction(self.actionQuit)
|
||||
self.menuRun.addAction(self.actionTrack)
|
||||
self.menuRun.addAction(self.actionMatch)
|
||||
self.menuRun.addSeparator()
|
||||
self.menuRun.addAction(self.actionExport_Lattice)
|
||||
self.menuHelp.addAction(self.actionInfo)
|
||||
self.menuHelp.addAction(self.actionWebsite)
|
||||
self.menuEdit.addAction(self.actionCut)
|
||||
self.menuEdit.addAction(self.actionCopy)
|
||||
self.menuEdit.addAction(self.actionPaste)
|
||||
self.menuSettings.addAction(self.actionRefreshSettings)
|
||||
self.menuSettings.addAction(self.actionLoad_From_LongTracker)
|
||||
self.menuSettings.addAction(self.actionExport_Optics_Functions)
|
||||
self.menuElegant.addAction(self.actionImport_Initial_Distribution)
|
||||
self.menuElegant.addAction(self.actionExport_Lattice_for_Elegant)
|
||||
self.menubar.addAction(self.menuFile.menuAction())
|
||||
self.menubar.addAction(self.menuEdit.menuAction())
|
||||
self.menubar.addAction(self.menuSettings.menuAction())
|
||||
self.menubar.addAction(self.menuRun.menuAction())
|
||||
self.menubar.addAction(self.menuElegant.menuAction())
|
||||
self.menubar.addAction(self.menuHelp.menuAction())
|
||||
|
||||
self.retranslateUi(OpticsGUI)
|
||||
@@ -407,18 +488,32 @@ class Ui_OpticsGUI(object):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
OpticsGUI.setWindowTitle(_translate("OpticsGUI", "SwissFEL Optics"))
|
||||
self.UITrack.setText(_translate("OpticsGUI", "Track"))
|
||||
self.label.setText(_translate("OpticsGUI", "Start"))
|
||||
self.UITrackStart.setText(_translate("OpticsGUI", "SINLH01"))
|
||||
self.label_2.setText(_translate("OpticsGUI", "End"))
|
||||
self.label_2.setText(_translate("OpticsGUI", "End-Section"))
|
||||
self.label.setText(_translate("OpticsGUI", "Start-Section"))
|
||||
self.UITrackEnd.setText(_translate("OpticsGUI", "SINDI02"))
|
||||
self.UIAlphay.setText(_translate("OpticsGUI", "0"))
|
||||
self.label_9.setText(_translate("OpticsGUI", "Reference Point"))
|
||||
self.label_10.setText(_translate("OpticsGUI", "Location"))
|
||||
self.UIBetax.setText(_translate("OpticsGUI", "30"))
|
||||
self.label_5.setText(_translate("OpticsGUI", "beta"))
|
||||
self.UIAlphax.setText(_translate("OpticsGUI", "0"))
|
||||
self.UIBetay.setText(_translate("OpticsGUI", "30"))
|
||||
self.label_3.setText(_translate("OpticsGUI", "eta"))
|
||||
self.label_7.setText(_translate("OpticsGUI", "offset"))
|
||||
self.label_4.setText(_translate("OpticsGUI", "eta\'"))
|
||||
self.label_6.setText(_translate("OpticsGUI", "alpha"))
|
||||
self.label_5.setText(_translate("OpticsGUI", "beta"))
|
||||
self.label_29.setText(_translate("OpticsGUI", "x"))
|
||||
self.label_30.setText(_translate("OpticsGUI", "y"))
|
||||
self.label_29.setText(_translate("OpticsGUI", "x"))
|
||||
self.UIAlphay.setText(_translate("OpticsGUI", "0"))
|
||||
self.label_8.setText(_translate("OpticsGUI", "angle"))
|
||||
self.UIEtax.setText(_translate("OpticsGUI", "0"))
|
||||
self.UIEtapx.setText(_translate("OpticsGUI", "0"))
|
||||
self.UIX.setText(_translate("OpticsGUI", "30"))
|
||||
self.UIPX.setText(_translate("OpticsGUI", "30"))
|
||||
self.UIEtay.setText(_translate("OpticsGUI", "30"))
|
||||
self.UIEtapy.setText(_translate("OpticsGUI", "30"))
|
||||
self.UIY.setText(_translate("OpticsGUI", "30"))
|
||||
self.UIPY.setText(_translate("OpticsGUI", "30"))
|
||||
self.TabMaster.setTabText(self.TabMaster.indexOf(self.tab_3), _translate("OpticsGUI", "Track"))
|
||||
self.groupBox_8.setTitle(_translate("OpticsGUI", "Magnets (Angle/ k1L / k2L)"))
|
||||
self.label_23.setText(_translate("OpticsGUI", "Start"))
|
||||
@@ -437,13 +532,9 @@ class Ui_OpticsGUI(object):
|
||||
self.SB2ModRF.setText(_translate("OpticsGUI", "Model <- Sandbox"))
|
||||
self.TabMaster.setTabText(self.TabMaster.indexOf(self.tab_8), _translate("OpticsGUI", "Settings Sandbox"))
|
||||
self.menuFile.setTitle(_translate("OpticsGUI", "File"))
|
||||
self.menuRun.setTitle(_translate("OpticsGUI", "MadX"))
|
||||
self.menuHelp.setTitle(_translate("OpticsGUI", "Help"))
|
||||
self.menuEdit.setTitle(_translate("OpticsGUI", "Edit"))
|
||||
self.menuSettings.setTitle(_translate("OpticsGUI", "Settings"))
|
||||
self.menuElegant.setTitle(_translate("OpticsGUI", "Elegant"))
|
||||
self.actionNew.setText(_translate("OpticsGUI", "New Model"))
|
||||
self.actionNew.setShortcut(_translate("OpticsGUI", "Ctrl+N"))
|
||||
self.actionOpen_2.setText(_translate("OpticsGUI", "Open Settings..."))
|
||||
self.actionOpen_2.setShortcut(_translate("OpticsGUI", "Ctrl+O"))
|
||||
self.actionOpen.setText(_translate("OpticsGUI", "Open Model..."))
|
||||
self.actionOpen.setShortcut(_translate("OpticsGUI", "Ctrl+O"))
|
||||
self.actionSave_Model.setText(_translate("OpticsGUI", "Save Model"))
|
||||
@@ -495,3 +586,4 @@ class Ui_OpticsGUI(object):
|
||||
self.actionLoad_Reference.setText(_translate("OpticsGUI", "Load Reference..."))
|
||||
self.actionSave_Reference.setText(_translate("OpticsGUI", "Save Reference"))
|
||||
self.actionNew_Reference.setText(_translate("OpticsGUI", "New Reference"))
|
||||
self.actionSave.setText(_translate("OpticsGUI", "Save Settings..."))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab_3">
|
||||
<attribute name="title">
|
||||
@@ -33,7 +33,7 @@
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_2" native="true">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="UITrack">
|
||||
<property name="text">
|
||||
@@ -42,61 +42,9 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Start</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="UITrackStart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>SINLH01</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>End</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="UITrackEnd">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>SINDI02</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="3" column="2">
|
||||
<widget class="QLineEdit" name="UIAlphay">
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLineEdit" name="UITrackStart">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
@@ -104,10 +52,99 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
<string>SINLH01</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>End-Section</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Start-Section</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="UITrackEnd">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>SINDI02</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Reference Point</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="UITrackReference">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Location</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="UITrackLocation">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="UIBetax">
|
||||
<property name="sizePolicy">
|
||||
@@ -121,6 +158,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>beta</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="UIAlphax">
|
||||
<property name="sizePolicy">
|
||||
@@ -147,6 +191,27 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>eta</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>offset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>eta'</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
@@ -154,26 +219,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>beta</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>x</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QLabel" name="label_30">
|
||||
<property name="sizePolicy">
|
||||
@@ -187,10 +232,147 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>x</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLineEdit" name="UIAlphay">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>angle</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="UIEtax">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="UIEtapx">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QLineEdit" name="UIX">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QLineEdit" name="UIPX">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLineEdit" name="UIEtay">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLineEdit" name="UIEtapy">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2">
|
||||
<widget class="QLineEdit" name="UIY">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="2">
|
||||
<widget class="QLineEdit" name="UIPY">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>30</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_5">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
@@ -222,7 +404,7 @@
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_8">
|
||||
<attribute name="title">
|
||||
<string>Settings Sandbox</string>
|
||||
<string>Sandbox</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
@@ -423,28 +605,11 @@
|
||||
<property name="title">
|
||||
<string>File</string>
|
||||
</property>
|
||||
<addaction name="actionNew"/>
|
||||
<addaction name="actionOpen"/>
|
||||
<addaction name="actionSave_Model"/>
|
||||
<addaction name="actionSave_Model_as"/>
|
||||
<addaction name="actionOpen_2"/>
|
||||
<addaction name="actionSave"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionNew_Script"/>
|
||||
<addaction name="actionOpen_Script"/>
|
||||
<addaction name="actionSave_Script"/>
|
||||
<addaction name="actionDuplicate_Script"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionBackup"/>
|
||||
<addaction name="actionQuit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuRun">
|
||||
<property name="title">
|
||||
<string>MadX</string>
|
||||
</property>
|
||||
<addaction name="actionTrack"/>
|
||||
<addaction name="actionMatch"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionExport_Lattice"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuHelp">
|
||||
<property name="title">
|
||||
<string>Help</string>
|
||||
@@ -452,43 +617,16 @@
|
||||
<addaction name="actionInfo"/>
|
||||
<addaction name="actionWebsite"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuEdit">
|
||||
<property name="title">
|
||||
<string>Edit</string>
|
||||
</property>
|
||||
<addaction name="actionCut"/>
|
||||
<addaction name="actionCopy"/>
|
||||
<addaction name="actionPaste"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuSettings">
|
||||
<property name="title">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
<addaction name="actionRefreshSettings"/>
|
||||
<addaction name="actionLoad_From_LongTracker"/>
|
||||
<addaction name="actionExport_Optics_Functions"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuElegant">
|
||||
<property name="title">
|
||||
<string>Elegant</string>
|
||||
</property>
|
||||
<addaction name="actionImport_Initial_Distribution"/>
|
||||
<addaction name="actionExport_Lattice_for_Elegant"/>
|
||||
</widget>
|
||||
<addaction name="menuFile"/>
|
||||
<addaction name="menuEdit"/>
|
||||
<addaction name="menuSettings"/>
|
||||
<addaction name="menuRun"/>
|
||||
<addaction name="menuElegant"/>
|
||||
<addaction name="menuHelp"/>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
<action name="actionNew">
|
||||
<action name="actionOpen_2">
|
||||
<property name="text">
|
||||
<string>New Model</string>
|
||||
<string>Open Settings...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+N</string>
|
||||
<string>Ctrl+O</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionOpen">
|
||||
@@ -790,6 +928,11 @@
|
||||
<string>New Reference</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSave">
|
||||
<property name="text">
|
||||
<string>Save Settings...</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
|
||||
Reference in New Issue
Block a user