def __init__(self, design, operations, operation_index, sketch=None): super(Dialog, self).__init__() SketchListManager(design) self.optree = DraggableTreeWidget() self.optree.linklist(operations) self.sketchwidget = SketchListManager(design) button1 = qg.QPushButton('Ok') button1.clicked.connect(self.accept) button2 = qg.QPushButton('Cancel') button2.clicked.connect(self.reject) layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout = qg.QVBoxLayout() layout.addWidget(self.optree) layout.addWidget(self.sketchwidget) layout.addLayout(layout2) self.setLayout(layout) for ii in range(self.sketchwidget.itemlist.count()): item = self.sketchwidget.itemlist.item(ii) if item.value == sketch: item.setSelected(True) try: self.optree.selectIndeces([operation_index]) except NoOperation: pass
def __init__(self, design, operations, selectedop=None, outputref=0): super(Dialog, self).__init__() self.design = design self.le1 = DraggableTreeWidget() self.le1.linklist(operations) if selectedop is not None: self.le1.selectIndeces([(selectedop, outputref)]) layout = qg.QVBoxLayout() layout.addWidget(qg.QLabel('Operation to Flatten')) layout.addWidget(self.le1) button1 = qg.QPushButton('Ok') button2 = qg.QPushButton('Cancel') layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout.addLayout(layout2) self.setLayout(layout) button1.clicked.connect(self.accept) button2.clicked.connect(self.reject)
def __init__(self, operations, index, shift=0, flip=False, rotate=False, outputref=0): super(Dialog, self).__init__() self.operations = operations self.le1 = DraggableTreeWidget() self.le1.linklist(self.operations) self.le1.selectIndeces([(index, outputref)]) # self.le1.addItems([str(op) for op in operations]) layout5 = qg.QHBoxLayout() layout5.addWidget(qg.QLabel('Flip Layers')) self.flip = qg.QCheckBox() self.flip.setChecked(flip) layout5.addWidget(self.flip) layout6 = qg.QHBoxLayout() layout6.addWidget(qg.QLabel('Rotate Layers')) self.rotate = qg.QCheckBox() self.rotate.setChecked(rotate) layout6.addWidget(self.rotate) layout4 = qg.QHBoxLayout() layout4.addWidget(qg.QLabel('Shift Layers')) self.sb = qg.QSpinBox() self.sb.setRange(popupcad.gui_negative_infinity, popupcad.gui_positive_infinity) self.sb.setSingleStep(1) self.sb.setValue(shift) layout4.addWidget(self.sb) button1 = qg.QPushButton('Ok') button2 = qg.QPushButton('Cancel') layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout = qg.QVBoxLayout() layout.addWidget(qg.QLabel('Parent Operation')) layout.addWidget(self.le1) layout.addLayout(layout5) layout.addLayout(layout6) layout.addLayout(layout4) layout.addLayout(layout2) self.setLayout(layout) button1.clicked.connect(self.accept) button2.clicked.connect(self.reject)
def __init__(self, list_in, *args, **kwargs): super(DraggableTreeDialog, self).__init__(*args, **kwargs) self.listwidget = DraggableTreeWidget() button_ok = qg.QPushButton('Ok') button_cancel = qg.QPushButton('Cancel') sub_layout1 = qg.QHBoxLayout() sub_layout1.addWidget(button_ok) sub_layout1.addWidget(button_cancel) layout = qg.QVBoxLayout() layout.addWidget(self.listwidget) layout.addLayout(sub_layout1) self.setLayout(layout) button_ok.clicked.connect(self.accept) button_cancel.clicked.connect(self.reject) self.listwidget.linklist(list_in)
def build_dialog(self, design, prioroperations): self.prioroperations = prioroperations self.design = design # operation/part | sketch to tile in | sheet to tile into # 'Number of parts', 'Scale' # 'x-gap', 'y-gap' # 'Support offset' self.part = DraggableTreeWidget() self.part.linklist(prioroperations) # self.part.setCurrentItem() self.part.selectIndeces([(design.operation_index(self.part_opref_tp), 0)]) self.release = DraggableTreeWidget() self.release.linklist(prioroperations) self.release.selectIndeces([(design.operation_index(self.release_opref_tp), 0)]) self.sketch_to_tile = SketchListManager(design,name = 'Sketch of tile area') self.sketch_to_tile.refresh_list(selected_item = self.sketch_id_tp) self.sheet = DraggableTreeWidget() self.sheet.linklist(prioroperations) self.sheet.selectIndeces([(design.operation_index(self.sheet_opref_tp), 0)]) # operation/part | sketch to tile in | sheet to tile into layout_ops_sheet_sketch = qg.QHBoxLayout() layout_ops_sheet_sketch.addWidget(self.part) layout_ops_sheet_sketch.addWidget(self.release) layout_ops_sheet_sketch.addWidget(self.sketch_to_tile) layout_ops_sheet_sketch.addWidget(self.sheet) # layout_ops_sheet_sketch = qg.QHBoxLayout() # part_vbox = qg.QVBoxLayout() # part_vbox.addWidget(qg.QLabel('Part to tile')) # part_vbox.addWidget(self.part) # layout_ops_sheet_sketch.addLayout(part_vbox) # layout_ops_sheet_sketch.addStretch() # # rel_vbox = qg.QVBoxLayout() # rel_vbox.addWidget(qg.QLabel('Release cut (optional)')) # rel_vbox.addWidget(self.release) # layout_ops_sheet_sketch.addLayout(rel_vbox) # layout_ops_sheet_sketch.addStretch() # # sktch_vbox = qg.QVBoxLayout() # sktch_vbox.addWidget(self.sketch_to_tile) # layout_ops_sheet_sketch.addLayout(sktch_vbox) # layout_ops_sheet_sketch.addStretch() # # sht_vbox = qg.QVBoxLayout() # sht_vbox.addWidget(qg.QLabel('Sheet to tile into')) # sht_vbox.addWidget(self.release) # layout_ops_sheet_sketch.addLayout(sht_vbox) # 'Number of parts', 'Scale' number_of_parts_and_scale = qg.QHBoxLayout() number_of_parts_and_scale.addStretch() number_of_parts_and_scale.addWidget(qg.QLabel('Number of parts')) self.N = qg.QLineEdit() number_of_parts_and_scale.addWidget(self.N) number_of_parts_and_scale.addWidget(qg.QLabel('Scale')) self.scale = qg.QLineEdit() number_of_parts_and_scale.addWidget(self.scale) number_of_parts_and_scale.addStretch() # 'x-gap', 'y-gap' xy_gap = qg.QHBoxLayout() xy_gap.addStretch() xy_gap.addWidget(qg.QLabel('X-gap')) self.x_gap = qg.QLineEdit() xy_gap.addWidget(self.x_gap) xy_gap.addWidget(qg.QLabel('Y-gap')) self.y_gap = qg.QLineEdit() xy_gap.addWidget(self.y_gap) xy_gap.addStretch() s_offset = qg.QHBoxLayout() s_offset.addStretch() s_offset.addWidget(qg.QLabel('Support offset')) self.support_offset = qg.QLineEdit() s_offset.addWidget(self.support_offset) s_offset.addStretch() # Button 1 and 2 buttons = qg.QHBoxLayout() button1 = qg.QPushButton('Ok') button1.clicked.connect(self.accept) buttons.addWidget(button1) button2 = qg.QPushButton('Cancel') button2.clicked.connect(self.reject) buttons.addWidget(button2) instructions = qg.QHBoxLayout() instructions.addStretch() instructions.addWidget(qg.QLabel("Part to tile | Release cut (optional) | " "Bounding box sketch | Sheet to tile into")) instructions.addStretch() layout = qg.QVBoxLayout() layout.addLayout(instructions) layout.addLayout(layout_ops_sheet_sketch) layout.addLayout(number_of_parts_and_scale) layout.addLayout(xy_gap) layout.addLayout(s_offset) layout.addLayout(buttons) self.setLayout(layout) # set text of all boxes self.scale.setText(str(self.sc_tp)) self.N.setText(str(self.N_tp)) self.y_gap.setText(str(self.y_gap_tp)) self.x_gap.setText(str(self.x_gap_tp)) self.support_offset.setText(str(self.support_offset_tp))
def build_editor(self, parent, delegate): editor = DraggableTreeWidget(parent) editor.linklist(self.get_list()) # editor.editingFinished.connect(delegate.commitAndCloseEditor) return editor
def __init__(self, design, sketches, layers, operations, jointop=None,sketch = None): super(MainWidget, self).__init__() self.design = design self.sketches = sketches self.layers = layers self.operations = operations self.operation_list = DraggableTreeWidget() self.operation_list.linklist(self.operations) self.fixed = DraggableTreeWidget() self.fixed.linklist(self.operations) self.table = Table(JointRow(self.get_sketches, self.get_layers),Delegate) table_control= TableControl(self.table, self) self.sketchwidget = SketchListManager(self.design,name='Contact Points Sketch') for ii in range(self.sketchwidget.itemlist.count()): item = self.sketchwidget.itemlist.item(ii) if item.value == sketch: item.setSelected(True) button_ok = qg.QPushButton('Ok') button_cancel = qg.QPushButton('Cancel') button_ok.clicked.connect(self.accept) button_cancel.clicked.connect(self.reject) sublayout1 = qg.QHBoxLayout() sublayout1_1 = qg.QVBoxLayout() sublayout1_2 = qg.QVBoxLayout() sublayout1_3 = qg.QVBoxLayout() sublayout1_1.addWidget(qg.QLabel('Device')) sublayout1_1.addWidget(self.operation_list) sublayout1_2.addWidget(qg.QLabel('Fixed Region')) sublayout1_2.addWidget(self.fixed) sublayout1_3.addWidget(self.sketchwidget) sublayout1.addLayout(sublayout1_1) sublayout1.addLayout(sublayout1_2) sublayout1.addLayout(sublayout1_3) sublayout2 = qg.QHBoxLayout() sublayout2.addStretch() sublayout2.addWidget(button_ok) sublayout2.addWidget(button_cancel) sublayout2.addStretch() layout = qg.QVBoxLayout() layout.addLayout(sublayout1) layout.addWidget(table_control) layout.addLayout(sublayout2) self.setLayout(layout) if jointop is not None: try: op_ref, output_ii = jointop.operation_links['parent'][0] op_ii = design.operation_index(op_ref) self.operation_list.selectIndeces([(op_ii, output_ii)]) except(IndexError, KeyError): pass try: fixed_ref, fixed_output_ii = jointop.operation_links[ 'fixed'][0] fixed_ii = design.operation_index(fixed_ref) self.fixed.selectIndeces([(fixed_ii, fixed_output_ii)]) except(IndexError, KeyError): pass for item in jointop.joint_defs: sketch = self.design.sketches[item.sketch] joint_layer = self.design.return_layer_definition().getlayer( item.joint_layer) sublaminate_layers = [self.design.return_layer_definition().getlayer( item2) for item2 in item.sublaminate_layers] self.table.row_add( sketch, joint_layer, sublaminate_layers, item.width, item.stiffness, item.damping, item.preload_angle, item.limit_negative, item.limit_positive) else: self.table.row_add_empty() self.table.resizeColumnsToContents() self.table.reset_min_width() self.table.setHorizontalScrollBarPolicy(qc.Qt.ScrollBarAlwaysOff)
def __init__(self, design, prioroperations, placeop=None): super(Dialog, self).__init__() if placeop is None: self.placeop = TransformExternal( None, None, None, None, TransformExternal.transformtypes.scale, TransformExternal.transformtypes.scale, 0, False, 1., 1.) else: self.placeop = placeop self.prioroperations = prioroperations self.design = design self.designwidget = DesignListManager(design) self.operation_list = DraggableTreeWidget() self.operation_list.linklist(prioroperations) self.sketchwidget_from = SketchListViewer(design, name='From Line') self.sketchwidget_to = SketchListManager(design, name='To Lines') self.radiobox_scale_x = qg.QRadioButton('Scale X') self.radiobox_custom_x = qg.QRadioButton('Custom X') self.radiobox_scale_y = qg.QRadioButton('Scale Y') self.radiobox_custom_y = qg.QRadioButton('Custom Y') self.x_scale_option = qg.QButtonGroup() self.x_scale_option.addButton(self.radiobox_scale_x) self.x_scale_option.addButton(self.radiobox_custom_x) self.y_scale_option = qg.QButtonGroup() self.y_scale_option.addButton(self.radiobox_scale_y) self.y_scale_option.addButton(self.radiobox_custom_y) self.scalex = qg.QLineEdit() self.scaley = qg.QLineEdit() templayout1 = qg.QHBoxLayout() templayout1.addStretch() templayout1.addWidget(self.radiobox_scale_x) templayout1.addWidget(self.radiobox_custom_x) templayout1.addWidget(self.scalex) templayout1.addStretch() templayout2 = qg.QHBoxLayout() templayout2.addStretch() templayout2.addWidget(self.radiobox_scale_y) templayout2.addWidget(self.radiobox_custom_y) templayout2.addWidget(self.scaley) templayout2.addStretch() layout5 = qg.QHBoxLayout() layout5.addWidget(qg.QLabel('Flip Layers')) self.flip = qg.QCheckBox() layout5.addWidget(self.flip) layout4 = qg.QHBoxLayout() layout4.addWidget(qg.QLabel('Shift Layers')) self.sb = qg.QSpinBox() self.sb.setRange(popupcad.gui_negative_infinity, popupcad.gui_positive_infinity) self.sb.setSingleStep(1) layout4.addWidget(self.sb) button1 = qg.QPushButton('Ok') button1.clicked.connect(self.accept) button2 = qg.QPushButton('Cancel') button2.clicked.connect(self.reject) layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout3 = qg.QHBoxLayout() layout3.addWidget(self.sketchwidget_from) layout3.addWidget(self.sketchwidget_to) layout = qg.QVBoxLayout() layout.addWidget(self.designwidget) layout.addWidget(qg.QLabel('Operations')) layout.addWidget(self.operation_list) layout.addLayout(layout3) layout.addLayout(templayout1) layout.addLayout(templayout2) layout.addLayout(layout5) layout.addLayout(layout4) layout.addLayout(layout2) self.setLayout(layout) self.radiobox_scale_x.setChecked(False) self.radiobox_custom_x.setChecked(False) self.radiobox_scale_y.setChecked(False) self.radiobox_custom_y.setChecked(False) if self.placeop.transformtype_x == TransformExternal.transformtypes.scale: self.radiobox_scale_x.setChecked(True) elif self.placeop.transformtype_x == TransformExternal.transformtypes.custom: self.radiobox_custom_x.setChecked(True) if self.placeop.transformtype_y == TransformExternal.transformtypes.scale: self.radiobox_scale_y.setChecked(True) elif self.placeop.transformtype_y == TransformExternal.transformtypes.custom: self.radiobox_custom_y.setChecked(True) self.designwidget.itemlist.itemSelectionChanged.connect( self.loadoperations) if self.placeop.sketch_links is not None: sketch_to = self.design.sketches[ self.placeop.sketch_links['sketch_to'][0]] for ii in range(self.sketchwidget_to.itemlist.count()): item = self.sketchwidget_to.itemlist.item(ii) if item.value == sketch_to: item.setSelected(True) self.loadoperations() try: subdesign = design.subdesigns[ self.placeop.design_links['subdesign'][0]] for ii in range(self.designwidget.itemlist.count()): item = self.designwidget.itemlist.item(ii) if item.value == subdesign: item.setSelected(True) if self.placeop.subopref is not None: id, jj = self.placeop.subopref ii = subdesign.operation_index(id) self.operation_list.selectIndeces([(ii, jj)]) sketch_from = subdesign.sketches[self.placeop.sub_sketch_id] for ii in range(self.sketchwidget_from.itemlist.count()): item = self.sketchwidget_from.itemlist.item(ii) if item.value == sketch_from: item.setSelected(True) except TypeError: pass self.scalex.setText(str(self.placeop.scalex)) self.scaley.setText(str(self.placeop.scaley)) self.flip.setChecked(self.placeop.flip) self.sb.setValue(self.placeop.shift)
def setupLayout(self): self.constraint_editor = ListEditor() if self.selectops: self.optree = DraggableTreeWidget() self.propertieswindow = qg.QWidget() ok_button = qg.QPushButton('&Ok', self) cancel_button = qg.QPushButton('&Cancel', self) ok_button.clicked.connect(self.accept) cancel_button.clicked.connect(self.reject) sublayout = qg.QHBoxLayout() sublayout.addStretch(1) sublayout.addWidget(ok_button) sublayout.addWidget(cancel_button) sublayout.addStretch(1) self.graphicsview = GraphicsView() self.scene = GraphicsScene(self.graphicsview) self.graphicsview.setScene(self.scene) self.graphicsview.finish_init() self.scene.connect_mouse_modes(self.graphicsview) centrallayout = qg.QVBoxLayout() centrallayout.addWidget(self.graphicsview) centrallayout.addLayout(sublayout) centralwidget = qg.QWidget() centralwidget.setLayout(centrallayout) if self.selectops: self.optreedock = qg.QDockWidget() self.optreedock.setWidget(self.optree) self.optreedock.setAllowedAreas(qc.Qt.AllDockWidgetAreas) self.optreedock.setWindowTitle('Operatons') self.constraintdock = qg.QDockWidget() self.constraintdock.setWidget(self.constraint_editor) self.constraintdock.setAllowedAreas(qc.Qt.AllDockWidgetAreas) self.constraintdock.setWindowTitle('Constraints') self.constraintdock.setMinimumHeight(200) self.propdock = qg.QDockWidget() self.propdock.setWidget(self.propertieswindow) self.propdock.setAllowedAreas(qc.Qt.AllDockWidgetAreas) self.propdock.setWindowTitle('Properties') self.propdock.setMinimumHeight(200) if self.selectops: self.addDockWidget(qc.Qt.LeftDockWidgetArea, self.optreedock) self.addDockWidget(qc.Qt.RightDockWidgetArea, self.constraintdock) self.addDockWidget(qc.Qt.RightDockWidgetArea, self.propdock) self.setCentralWidget(centralwidget) self.setWindowTitle('Sketcher') # self.set_nominal_size() if self.selectops: self.optreedock.closeEvent = lambda event: self.action_uncheck( self.menu_system.actions['view_operations']) self.constraintdock.closeEvent = lambda event: self.action_uncheck( self.menu_system.actions['view_constraints']) self.propdock.closeEvent = lambda event: self.action_uncheck( self.menu_system.actions['view_properties'])
def __init__(self, keepouttypes, valuenames, defaults, operations, show, operationindeces=None, values=None, keepouttype=None): super(Dialog, self).__init__() self.operations = operations self.le1 = DraggableTreeWidget() self.le1.linklist(self.operations) self.le3 = DraggableTreeWidget() self.le3.linklist(self.operations) if operationindeces is not None: self.le1.selectIndeces(operationindeces[0:1]) self.le3.selectIndeces(operationindeces[1:2]) if values is None: values = defaults[:] layout = qg.QVBoxLayout() layout.addWidget(qg.QLabel('Sheet')) layout.addWidget(self.le1) layout.addWidget(qg.QLabel('Device')) layout.addWidget(self.le3) self.valueboxes = [] for valuename, v in zip(valuenames, values): templayout = qg.QHBoxLayout() valueedit = qg.QLineEdit() valueedit.setAlignment(qc.Qt.AlignRight) valueedit.setText(str(v)) # self.valueedit.setInputMask('#009.0') valueedit.setValidator( StrictDoubleValidator(popupcad.gui_negative_infinity, popupcad.gui_positive_infinity, popupcad.gui_default_decimals, valueedit)) templayout.addStretch() templayout.addWidget(qg.QLabel(valuename)) templayout.addWidget(valueedit) self.valueboxes.append(valueedit) layout.addLayout(templayout) self.radiobuttons = [] if 'keepout' in show: for key, value2 in keepouttypes.dict.items(): b = qg.QRadioButton(key) b.setChecked(keepouttype == value2) b.uservalue = value2 self.radiobuttons.append(b) layout.addWidget(b) button1 = qg.QPushButton('Ok') button2 = qg.QPushButton('Cancel') layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout.addLayout(layout2) self.setLayout(layout) button1.clicked.connect(self.accept) button2.clicked.connect(self.reject)
def __init__(self, operations, layerlist, index0=0, selectedop=None, selectedunary=None, selectedpair=None, selectedoutput=None, outputref=0): super(Dialog, self).__init__() sp = qg.QSizePolicy() sp.setHorizontalPolicy(sp.Minimum) sp.setVerticalPolicy(sp.Minimum) if selectedop is None: selectedop = len(operations) - 1 if selectedunary is None: selectedunary = [] if selectedpair is None: selectedpair = [] if selectedoutput is None: selectedoutput = layerlist from popupcad.widgets.operationlist import OperationList self.le0 = OperationList(LayerOp2.unaryoperationtypes, LayerOp2.pairoperationtypes, LayerOp2.displayorder) self.operations = operations self.operationselector = DraggableTreeWidget() self.operationselector.linklist(self.operations) self.operationselector.selectIndeces([(selectedop, outputref)]) self.unarylayerselector = qg.QListWidget() self.unarylayerselector.setSelectionBehavior(qg.QListWidget.SelectRows) self.unarylayerselector.setSelectionMode(qg.QListWidget.MultiSelection) unaryitems = [ ListWidgetItem(item, self.unarylayerselector) for item in layerlist ] self.pairlayerselector = qg.QListWidget() self.pairlayerselector.setSelectionBehavior(qg.QListWidget.SelectRows) self.pairlayerselector.setSelectionMode(qg.QListWidget.MultiSelection) pairitems = [ ListWidgetItem(item, self.pairlayerselector) for item in layerlist ] self.outputlayerselector = qg.QListWidget() self.outputlayerselector.setSelectionBehavior( qg.QListWidget.SelectRows) self.outputlayerselector.setSelectionMode( qg.QListWidget.MultiSelection) outputitems = [ ListWidgetItem(item, self.outputlayerselector) for item in layerlist ] layout2 = qg.QVBoxLayout() # self.layout2.setContentsMargins(0,0,0,0) layout2.addWidget(qg.QLabel('Unary Operators')) layout2.addWidget(self.unarylayerselector) layout3 = qg.QVBoxLayout() # self.layout2.setContentsMargins(0,0,0,0) layout3.addWidget(qg.QLabel('Binary Operators')) layout3.addWidget(self.pairlayerselector) layout4 = qg.QHBoxLayout() layout4.addLayout(layout2) layout4.addLayout(layout3) layout = qg.QVBoxLayout() layout.addWidget(self.le0) layout.addWidget(qg.QLabel('Parent Operation')) layout.addWidget(self.operationselector) layout.addLayout(layout4) layout.addWidget(qg.QLabel('Output Layers')) layout.addWidget(self.outputlayerselector) button1 = qg.QPushButton('Ok') button2 = qg.QPushButton('Cancel') layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout.addLayout(layout2) self.setLayout(layout) button1.clicked.connect(self.accept) button2.clicked.connect(self.reject) self.le0.unary_selected.connect( lambda: self.pairlayerselector.setEnabled(False)) self.le0.binary_selected.connect( lambda: self.pairlayerselector.setEnabled(True)) self.le0.setCurrentIndex(index0) [ item.setSelected(item.customdata.id in selectedunary) for item in unaryitems ] [ item.setSelected(item.customdata.id in selectedpair) for item in pairitems ] [ item.setSelected(item.customdata.id in selectedoutput) for item in outputitems ]
def __init__(self, design, sketches, layers, operations, jointop=None, buffer=.01): super(MainWidget, self).__init__() self.design = design self.sketches = sketches self.layers = layers self.operations = operations self.operation_list = DraggableTreeWidget() self.operation_list.linklist(self.operations) self.table = Table(JointRow(self.get_sketches, self.get_layers), Delegate) table_control = TableControl(self.table, self) button_ok = qg.QPushButton('Ok') button_cancel = qg.QPushButton('Cancel') button_ok.clicked.connect(self.accept) button_cancel.clicked.connect(self.reject) self.buffer_val = qg.QLineEdit() sublayout2 = qg.QHBoxLayout() sublayout2.addStretch() sublayout2.addWidget(button_ok) sublayout2.addWidget(button_cancel) sublayout2.addStretch() layout = qg.QVBoxLayout() layout.addWidget(qg.QLabel('Device')) layout.addWidget(self.operation_list) layout.addWidget(table_control) layout.addWidget(qg.QLabel('Buffer')) layout.addWidget(self.buffer_val) layout.addLayout(sublayout2) self.setLayout(layout) if jointop is not None: try: op_ref, output_ii = jointop.operation_links['parent'][0] op_ii = design.operation_index(op_ref) self.operation_list.selectIndeces([(op_ii, output_ii)]) except (IndexError, KeyError): pass try: fixed_ref, fixed_output_ii = jointop.operation_links['fixed'][ 0] fixed_ii = design.operation_index(fixed_ref) self.fixed.selectIndeces([(fixed_ii, fixed_output_ii)]) except (IndexError, KeyError): pass for item in jointop.joint_defs: sketch = self.design.sketches[item.sketch] joint_layer = self.design.return_layer_definition().getlayer( item.joint_layer) sublaminate_layers = [ self.design.return_layer_definition().getlayer(item2) for item2 in item.sublaminate_layers ] self.table.row_add(sketch, joint_layer, sublaminate_layers, item.width) else: self.table.row_add_empty() self.buffer_val.setText(str(buffer)) self.table.resizeColumnsToContents() self.table.reset_min_width() self.table.setHorizontalScrollBarPolicy(qc.Qt.ScrollBarAlwaysOff)
def __init__(self, operationlist, index0, operationindeces1=None, operationindeces2=None): super(Dialog, self).__init__() if operationindeces1 is None: operationindeces1 = [] if operationindeces2 is None: operationindeces2 = [] from popupcad.widgets.operationlist import OperationList self.le0 = OperationList(LaminateOperation2.unaryoperationtypes, LaminateOperation2.pairoperationtypes, LaminateOperation2.displayorder) self.operationlist = operationlist self.unarylistwidget = DraggableTreeWidget() self.unarylistwidget.linklist(self.operationlist) self.unarylistwidget.setSelectionMode(qg.QListWidget.ExtendedSelection) self.unarylistwidget.selectIndeces(operationindeces1) self.pairlistwidget = DraggableTreeWidget() self.pairlistwidget.linklist(self.operationlist) self.pairlistwidget.setSelectionMode(qg.QListWidget.ExtendedSelection) self.pairlistwidget.selectIndeces(operationindeces2) layout3 = qg.QVBoxLayout() layout3.addWidget(qg.QLabel('Unary Operators')) layout3.addWidget(self.unarylistwidget) layout4 = qg.QVBoxLayout() layout4.addWidget(qg.QLabel('Binary Operators')) layout4.addWidget(self.pairlistwidget) layout5 = qg.QHBoxLayout() layout5.addLayout(layout3) layout5.addLayout(layout4) button1 = qg.QPushButton('Ok') button2 = qg.QPushButton('Cancel') layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout = qg.QVBoxLayout() layout.addWidget(self.le0) layout.addLayout(layout5) # layout.addWidget(self.unarylistwidget) # layout.addWidget(self.pairlistwidget) layout.addLayout(layout2) self.setLayout(layout) button1.clicked.connect(self.accept) button2.clicked.connect(self.reject) self.le0.unary_selected.connect( lambda: self.pairlistwidget.setEnabled(False)) self.le0.binary_selected.connect( lambda: self.pairlistwidget.setEnabled(True)) self.le0.setCurrentIndex(index0)
def __init__(self, design, prioroperations, sketch=None, subdesign=None, subopref=None, transformtype_x=None, transformtype_y=None, shift=0, flip=False, scalex=1., scaley=1.): super(Dialog, self).__init__() if transformtype_x is None: self.transformtype_x = PlaceOperation8.transformtypes.scale else: self.transformtype_x = transformtype_x if transformtype_y is None: self.transformtype_y = PlaceOperation8.transformtypes.scale else: self.transformtype_y = transformtype_y self.prioroperations = prioroperations self.design = design self.designwidget = DesignListManager(design) self.optree = DraggableTreeWidget() self.sketchwidget = SketchListManager(design) self.radiobox_scale_x = qg.QRadioButton('Scale X') self.radiobox_custom_x = qg.QRadioButton('Custom X') self.radiobox_scale_y = qg.QRadioButton('Scale Y') self.radiobox_custom_y = qg.QRadioButton('Custom Y') self.x_scale_option = qg.QButtonGroup() self.x_scale_option.addButton(self.radiobox_scale_x) self.x_scale_option.addButton(self.radiobox_custom_x) self.y_scale_option = qg.QButtonGroup() self.y_scale_option.addButton(self.radiobox_scale_y) self.y_scale_option.addButton(self.radiobox_custom_y) # custom_layout = qg.QVBoxLayout() self.scalex = qg.QLineEdit() self.scaley = qg.QLineEdit() self.scalex.setText(str(scalex)) self.scaley.setText(str(scaley)) # custom_layout.addWidget(self.scalex) # custom_layout.addWidget(self.scaley) templayout1 = qg.QHBoxLayout() templayout1.addStretch() templayout1.addWidget(self.radiobox_scale_x) templayout1.addWidget(self.radiobox_custom_x) templayout1.addWidget(self.scalex) templayout1.addStretch() templayout2 = qg.QHBoxLayout() templayout2.addStretch() templayout2.addWidget(self.radiobox_scale_y) templayout2.addWidget(self.radiobox_custom_y) templayout2.addWidget(self.scaley) templayout2.addStretch() layout5 = qg.QHBoxLayout() layout5.addWidget(qg.QLabel('Flip Layers')) self.flip = qg.QCheckBox() self.flip.setChecked(flip) layout5.addWidget(self.flip) layout4 = qg.QHBoxLayout() layout4.addWidget(qg.QLabel('Shift Layers')) self.sb = qg.QSpinBox() self.sb.setRange(popupcad.gui_negative_infinity, popupcad.gui_positive_infinity) self.sb.setSingleStep(1) self.sb.setValue(shift) layout4.addWidget(self.sb) # layout3 = qg.QHBoxLayout() # layout3.addWidget(self.lineedit) # layout3.addWidget(button3) button1 = qg.QPushButton('Ok') button1.clicked.connect(self.accept) button2 = qg.QPushButton('Cancel') button2.clicked.connect(self.reject) layout2 = qg.QHBoxLayout() layout2.addWidget(button1) layout2.addWidget(button2) layout = qg.QVBoxLayout() # layout.addWidget(qg.QLabel('Design')) layout.addWidget(self.designwidget) layout.addWidget(qg.QLabel('Sub-Design Operations')) layout.addWidget(self.optree) # layout.addWidget(qg.QLabel('Sketch')) layout.addWidget(self.sketchwidget) layout.addLayout(templayout1) layout.addLayout(templayout2) layout.addLayout(layout5) layout.addLayout(layout4) layout.addLayout(layout2) self.setLayout(layout) self.radiobox_scale_x.setChecked(False) self.radiobox_custom_x.setChecked(False) self.radiobox_scale_y.setChecked(False) self.radiobox_custom_y.setChecked(False) if self.transformtype_x == PlaceOperation8.transformtypes.scale: self.radiobox_scale_x.setChecked(True) elif self.transformtype_x == PlaceOperation8.transformtypes.custom: self.radiobox_custom_x.setChecked(True) if self.transformtype_y == PlaceOperation8.transformtypes.scale: self.radiobox_scale_y.setChecked(True) elif self.transformtype_y == PlaceOperation8.transformtypes.custom: self.radiobox_custom_y.setChecked(True) self.designwidget.itemlist.itemSelectionChanged.connect( self.loadoperations) for ii in range(self.designwidget.itemlist.count()): item = self.designwidget.itemlist.item(ii) if item.value == subdesign: item.setSelected(True) for ii in range(self.sketchwidget.itemlist.count()): item = self.sketchwidget.itemlist.item(ii) if item.value == sketch: item.setSelected(True) self.loadoperations() try: if subopref is not None: id, jj = subopref if subdesign is not None: ii = subdesign.operation_index(id) self.optree.selectIndeces([(ii, jj)]) except NoOperation: pass