def __init__(self, key, field, callback_f, parent=None): from vistrails.gui.application import linux_default_application_set if linux_default_application_set(): label = QtGui.QLabel(".vt, .vtl handlers installed") button = None else: label = QtGui.QLabel(".vt, .vtl handlers not installed") button = QtGui.QPushButton("Install...") button.setAutoDefault(False) button.clicked.connect(self.install_clicked) QConfigurationLabelButton.__init__(self, key, field, callback_f, label, button, parent)
def create_default_handler_button(self, parent, layout): if vistrails.core.system.systemType == 'Linux': from vistrails.gui.application import linux_default_application_set from vistrails.core.application import get_vistrails_application group = QtGui.QGroupBox(u"Open .vt .vtl files with VisTrails") layout.addWidget(group) layout2 = QtGui.QHBoxLayout() group.setLayout(layout2) if linux_default_application_set(): label = u".vt .vtl has a handler set" else: label = u".vt .vtl has no handler" self._handler_status = QtGui.QLabel(label) def set_dont_ask(state): self._configuration.handlerDontAsk = bool(state) self._temp_configuration.handlerDontAsk = bool(state) self.emit(QtCore.SIGNAL('configuration_changed'), 'handlerDontAsk', bool(state)) self._handler_dont_ask = QtGui.QCheckBox(u"Don't ask at startup") self.connect(self._handler_dont_ask, QtCore.SIGNAL('stateChanged(int)'), set_dont_ask) def install(): app = get_vistrails_application() if app.ask_update_default_application(False): self._handler_status.setText(u".vt .vtl has a handler set") install_button = QtGui.QPushButton(u"Install handler") self.connect(install_button, QtCore.SIGNAL('clicked()'), install) layout2.addWidget(self._handler_status) layout2.addWidget(self._handler_dont_ask) layout2.addWidget(install_button)
def update_state(self, persistent_config, temp_config): """ update_state(configuration: VistrailConfiguration) -> None Update the dialog state based on a new configuration """ self._configuration = persistent_config self._temp_configuration = temp_config #Autosave if self._configuration.has('autosave'): if self._configuration.autosave == True: self._autosave_always.setChecked(True) self._autosave_never.setChecked(False) self._autosave_cb.setText("No (for this session only)") self._autosave_cb.setChecked( not self._temp_configuration.autosave) else: self._autosave_always.setChecked(False) self._autosave_never.setChecked(True) self._autosave_cb.setText("Yes (for this session only)") self._autosave_cb.setChecked(self._temp_configuration.autosave) #Read/Write from DB by default if self._configuration.has('dbDefault'): if self._configuration.dbDefault == True: self._db_connect_always.setChecked(True) self._db_connect_never.setChecked(False) self._db_connect_cb.setText("No (for this session only)") self._db_connect_cb.setChecked( not self._temp_configuration.dbDefault) else: self._db_connect_always.setChecked(False) self._db_connect_never.setChecked(True) self._db_connect_cb.setText("Yes (for this session only)") self._db_connect_cb.setChecked( self._temp_configuration.dbDefault) #Caching if self._configuration.has('useCache'): if self._configuration.useCache == True: self._use_cache_always.setChecked(True) self._use_cache_never.setChecked(False) self._use_cache_cb.setText("No (for this session only)") self._use_cache_cb.setChecked( not self._temp_configuration.useCache) else: self._use_cache_always.setChecked(False) self._use_cache_never.setChecked(True) self._use_cache_cb.setText("Yes (for this session only)") self._use_cache_cb.setChecked(self._temp_configuration.useCache) if self._configuration.has('showSplash'): self._splash_cb.setChecked(self._configuration.showSplash) if self._configuration.has('maximizeWindows'): self._maximize_cb.setChecked(self._configuration.maximizeWindows) if self._configuration.has('multiHeads'): self._multi_head_cb.setChecked(self._configuration.multiHeads) #Default handler if vistrails.core.system.systemType == 'Linux': from vistrails.gui.application import \ linux_default_application_set, linux_update_default_application if linux_default_application_set(): self._handler_status.setText(u".vt .vtl has a handler set") else: self._handler_status.setText(u".vt .vtl has no handler") self._handler_dont_ask.setChecked( self._configuration.check('handlerDontAsk')) #other widgets self.update_other_state()