diff options
author | Eric Messick <ericm@nanorex.com> | 2008-05-28 23:46:31 +0000 |
---|---|---|
committer | Eric Messick <ericm@nanorex.com> | 2008-05-28 23:46:31 +0000 |
commit | cd79624efeae87da57a3a67068db2123fc66f06e (patch) | |
tree | 2078fee263a82978d745f27eb5cc8a72382a8344 /cad/src/ne1_ui/prefs | |
parent | 26e9388b57464b35e86c0ea21ac54cafbcd4ee2f (diff) | |
download | nanoengineer-theirix-cd79624efeae87da57a3a67068db2123fc66f06e.tar.gz nanoengineer-theirix-cd79624efeae87da57a3a67068db2123fc66f06e.zip |
Move user preferences files
Diffstat (limited to 'cad/src/ne1_ui/prefs')
-rw-r--r-- | cad/src/ne1_ui/prefs/Preferences.py | 3443 | ||||
-rw-r--r-- | cad/src/ne1_ui/prefs/PreferencesDialog.py | 3325 | ||||
-rw-r--r-- | cad/src/ne1_ui/prefs/PreferencesDialog.ui | 6518 | ||||
-rw-r--r-- | cad/src/ne1_ui/prefs/WhatsThisText_for_PreferencesDialog.py | 224 | ||||
-rw-r--r-- | cad/src/ne1_ui/prefs/__init__.py | 0 |
5 files changed, 13510 insertions, 0 deletions
diff --git a/cad/src/ne1_ui/prefs/Preferences.py b/cad/src/ne1_ui/prefs/Preferences.py new file mode 100644 index 000000000..be4359a35 --- /dev/null +++ b/cad/src/ne1_ui/prefs/Preferences.py @@ -0,0 +1,3443 @@ +# Copyright 2005-2008 Nanorex, Inc. See LICENSE file for details. +""" +Preferences.py + +@author: Mark +@version: $Id$ +@copyright: 2005-2008 Nanorex, Inc. See LICENSE file for details. + +History: +-Mark 2008-05-20: Created by Mark from a copy of UserPrefs.py +""" + +import os, sys + +from PyQt4 import QtCore, QtGui +from PyQt4.Qt import QDialog +from PyQt4.Qt import QFileDialog +from PyQt4.Qt import QMessageBox +from PyQt4.Qt import QButtonGroup +from PyQt4.Qt import QAbstractButton +from PyQt4.Qt import QDoubleValidator +from PyQt4.Qt import SIGNAL +from PyQt4.Qt import QPalette +from PyQt4.Qt import QColorDialog +from PyQt4.Qt import QString +from PyQt4.Qt import QFont +from PyQt4.Qt import Qt +from PyQt4.Qt import QWhatsThis +from PyQt4.Qt import QTreeWidget + +from ne1_ui.prefs.PreferencesDialog import Ui_PreferencesDialog +import foundation.preferences as preferences +from utilities.debug import print_compact_traceback +from utilities.debug_prefs import debug_pref, Choice_boolean_False +import foundation.env as env +from widgets.widget_helpers import RGBf_to_QColor, QColor_to_RGBf +from widgets.widget_helpers import double_fixup +from widgets.prefs_widgets import connect_colorpref_to_colorframe, connect_checkbox_with_boolean_pref +from utilities import debug_flags +from platform.PlatformDependent import screen_pos_size +from platform.PlatformDependent import get_rootdir +from platform.Paths import get_default_plugin_path +from utilities.icon_utilities import geticon + +from utilities.prefs_constants import displayCompass_prefs_key +from utilities.prefs_constants import displayCompassLabels_prefs_key +from utilities.prefs_constants import displayPOVAxis_prefs_key +from utilities.prefs_constants import animateStandardViews_prefs_key +from utilities.prefs_constants import displayVertRuler_prefs_key +from utilities.prefs_constants import displayHorzRuler_prefs_key +from utilities.prefs_constants import rulerPosition_prefs_key +from utilities.prefs_constants import rulerColor_prefs_key +from utilities.prefs_constants import rulerOpacity_prefs_key +from utilities.prefs_constants import showRulersInPerspectiveView_prefs_key +from utilities.prefs_constants import Adjust_watchRealtimeMinimization_prefs_key +from utilities.prefs_constants import Adjust_minimizationEngine_prefs_key +from utilities.prefs_constants import electrostaticsForDnaDuringAdjust_prefs_key +from utilities.prefs_constants import Adjust_cutoverRMS_prefs_key +from utilities.prefs_constants import qutemol_enabled_prefs_key +from utilities.prefs_constants import qutemol_path_prefs_key +from utilities.prefs_constants import nanohive_enabled_prefs_key +from utilities.prefs_constants import nanohive_path_prefs_key +from utilities.prefs_constants import povray_enabled_prefs_key +from utilities.prefs_constants import povray_path_prefs_key +from utilities.prefs_constants import megapov_enabled_prefs_key +from utilities.prefs_constants import megapov_path_prefs_key +from utilities.prefs_constants import povdir_enabled_prefs_key +from utilities.prefs_constants import gamess_enabled_prefs_key +from utilities.prefs_constants import gmspath_prefs_key +from utilities.prefs_constants import gromacs_enabled_prefs_key +from utilities.prefs_constants import gromacs_path_prefs_key +from utilities.prefs_constants import cpp_enabled_prefs_key +from utilities.prefs_constants import cpp_path_prefs_key +from utilities.prefs_constants import nv1_enabled_prefs_key +from utilities.prefs_constants import nv1_path_prefs_key +from utilities.prefs_constants import startupGlobalDisplayStyle_prefs_key +from utilities.prefs_constants import buildModeAutobondEnabled_prefs_key +from utilities.prefs_constants import buildModeWaterEnabled_prefs_key +from utilities.prefs_constants import buildModeHighlightingEnabled_prefs_key +from utilities.prefs_constants import buildModeSelectAtomsOfDepositedObjEnabled_prefs_key +from utilities.prefs_constants import light1Color_prefs_key +from utilities.prefs_constants import light2Color_prefs_key +from utilities.prefs_constants import light3Color_prefs_key +from utilities.prefs_constants import atomHighlightColor_prefs_key +from utilities.prefs_constants import bondpointHighlightColor_prefs_key +from utilities.prefs_constants import levelOfDetail_prefs_key +from utilities.prefs_constants import diBALL_AtomRadius_prefs_key +from utilities.prefs_constants import cpkScaleFactor_prefs_key +from utilities.prefs_constants import showBondStretchIndicators_prefs_key +from utilities.prefs_constants import showValenceErrors_prefs_key + +# Color (page) prefs +from utilities.prefs_constants import backgroundColor_prefs_key +from utilities.prefs_constants import backgroundGradient_prefs_key +from utilities.prefs_constants import hoverHighlightingColorStyle_prefs_key +from utilities.prefs_constants import hoverHighlightingColor_prefs_key +from utilities.prefs_constants import selectionColorStyle_prefs_key +from utilities.prefs_constants import selectionColor_prefs_key + +# Mouse wheel prefs +from utilities.prefs_constants import mouseWheelDirection_prefs_key +from utilities.prefs_constants import zoomInAboutScreenCenter_prefs_key +from utilities.prefs_constants import zoomOutAboutScreenCenter_prefs_key +from utilities.prefs_constants import mouseWheelTimeoutInterval_pref_key + +# DNA prefs +from utilities.prefs_constants import bdnaBasesPerTurn_prefs_key +from utilities.prefs_constants import bdnaRise_prefs_key +from utilities.prefs_constants import dnaDefaultSegmentColor_prefs_key +from utilities.prefs_constants import dnaStrutScaleFactor_prefs_key +from utilities.prefs_constants import arrowsOnBackBones_prefs_key +from utilities.prefs_constants import arrowsOnThreePrimeEnds_prefs_key +from utilities.prefs_constants import arrowsOnFivePrimeEnds_prefs_key +from utilities.prefs_constants import useCustomColorForThreePrimeArrowheads_prefs_key +from utilities.prefs_constants import dnaStrandThreePrimeArrowheadsCustomColor_prefs_key +from utilities.prefs_constants import useCustomColorForFivePrimeArrowheads_prefs_key +from utilities.prefs_constants import dnaStrandFivePrimeArrowheadsCustomColor_prefs_key + +# DNA Minor Groove Error Indicator prefs +from utilities.prefs_constants import dnaDisplayMinorGrooveErrorIndicators_prefs_key +from utilities.prefs_constants import dnaMinMinorGrooveAngle_prefs_key +from utilities.prefs_constants import dnaMaxMinorGrooveAngle_prefs_key +from utilities.prefs_constants import dnaMinorGrooveErrorIndicatorColor_prefs_key + +# DNA style prefs 080310 piotr +from utilities.prefs_constants import dnaStyleStrandsShape_prefs_key +from utilities.prefs_constants import dnaStyleStrandsColor_prefs_key +from utilities.prefs_constants import dnaStyleStrandsScale_prefs_key +from utilities.prefs_constants import dnaStyleStrandsArrows_prefs_key +from utilities.prefs_constants import dnaStyleAxisShape_prefs_key +from utilities.prefs_constants import dnaStyleAxisColor_prefs_key +from utilities.prefs_constants import dnaStyleAxisScale_prefs_key +from utilities.prefs_constants import dnaStyleAxisEndingStyle_prefs_key +from utilities.prefs_constants import dnaStyleStrutsShape_prefs_key +from utilities.prefs_constants import dnaStyleStrutsColor_prefs_key +from utilities.prefs_constants import dnaStyleStrutsScale_prefs_key +from utilities.prefs_constants import dnaStyleBasesShape_prefs_key +from utilities.prefs_constants import dnaStyleBasesColor_prefs_key +from utilities.prefs_constants import dnaStyleBasesScale_prefs_key + +# DNA labels and base indicators. 080325 piotr +from utilities.prefs_constants import dnaStrandLabelsEnabled_prefs_key +from utilities.prefs_constants import dnaStrandLabelsColor_prefs_key +from utilities.prefs_constants import dnaStrandLabelsColorMode_prefs_key +from utilities.prefs_constants import dnaBaseIndicatorsEnabled_prefs_key +from utilities.prefs_constants import dnaBaseInvIndicatorsEnabled_prefs_key +from utilities.prefs_constants import dnaBaseIndicatorsAngle_prefs_key +from utilities.prefs_constants import dnaBaseIndicatorsColor_prefs_key +from utilities.prefs_constants import dnaBaseInvIndicatorsColor_prefs_key +from utilities.prefs_constants import dnaBaseIndicatorsDistance_prefs_key +from utilities.prefs_constants import dnaStyleBasesDisplayLetters_prefs_key +from utilities.prefs_constants import dnaBaseIndicatorsPlaneNormal_prefs_key + +# Undo prefs +from utilities.prefs_constants import undoRestoreView_prefs_key +from utilities.prefs_constants import undoAutomaticCheckpoints_prefs_key +from utilities.prefs_constants import undoStackMemoryLimit_prefs_key +from utilities.prefs_constants import historyMsgSerialNumber_prefs_key +from utilities.prefs_constants import historyMsgTimestamp_prefs_key +from utilities.prefs_constants import historyHeight_prefs_key +from utilities.prefs_constants import rememberWinPosSize_prefs_key +from utilities.prefs_constants import captionFullPath_prefs_key +from utilities.prefs_constants import dynamicToolTipAtomChunkInfo_prefs_key +from utilities.prefs_constants import dynamicToolTipAtomMass_prefs_key +from utilities.prefs_constants import dynamicToolTipAtomPosition_prefs_key +from utilities.prefs_constants import dynamicToolTipAtomDistanceDeltas_prefs_key +from utilities.prefs_constants import dynamicToolTipBondLength_prefs_key +from utilities.prefs_constants import dynamicToolTipBondChunkInfo_prefs_key +from utilities.prefs_constants import dynamicToolTipAtomDistancePrecision_prefs_key +from utilities.prefs_constants import captionPrefix_prefs_key +from utilities.prefs_constants import captionSuffix_prefs_key +from utilities.prefs_constants import compassPosition_prefs_key +from utilities.prefs_constants import defaultProjection_prefs_key +from utilities.prefs_constants import displayOriginAsSmallAxis_prefs_key +from utilities.prefs_constants import displayOriginAxis_prefs_key +from utilities.prefs_constants import animateMaximumTime_prefs_key +from utilities.prefs_constants import mouseSpeedDuringRotation_prefs_key +from utilities.prefs_constants import Adjust_endRMS_prefs_key +from utilities.prefs_constants import Adjust_endMax_prefs_key +from utilities.prefs_constants import Adjust_cutoverMax_prefs_key +from utilities.prefs_constants import sponsor_permanent_permission_prefs_key +from utilities.prefs_constants import sponsor_download_permission_prefs_key +from utilities.prefs_constants import bondpointHotspotColor_prefs_key +from utilities.prefs_constants import diBALL_bondcolor_prefs_key +from utilities.prefs_constants import bondHighlightColor_prefs_key +from utilities.prefs_constants import bondStretchColor_prefs_key +from utilities.prefs_constants import bondVaneColor_prefs_key +from utilities.prefs_constants import pibondStyle_prefs_key +from utilities.prefs_constants import pibondLetters_prefs_key +from utilities.prefs_constants import linesDisplayModeThickness_prefs_key +from utilities.prefs_constants import diBALL_BondCylinderRadius_prefs_key +from utilities.prefs_constants import startupMode_prefs_key +from utilities.prefs_constants import defaultMode_prefs_key +from utilities.prefs_constants import material_specular_highlights_prefs_key +from utilities.prefs_constants import material_specular_shininess_prefs_key +from utilities.prefs_constants import material_specular_brightness_prefs_key +from utilities.prefs_constants import material_specular_finish_prefs_key +from utilities.prefs_constants import povdir_path_prefs_key +from utilities.prefs_constants import dynamicToolTipBendAnglePrecision_prefs_key +from utilities.prefs_constants import dynamicToolTipVdwRadiiInAtomDistance_prefs_key +from utilities.prefs_constants import displayFontPointSize_prefs_key +from utilities.prefs_constants import useSelectedFont_prefs_key +from utilities.prefs_constants import displayFont_prefs_key +from utilities.prefs_constants import keepBondsDuringTransmute_prefs_key +from utilities.prefs_constants import indicateOverlappingAtoms_pref_key +from utilities.prefs_constants import fogEnabled_prefs_key + +#global display preferences +from utilities.constants import diDEFAULT ,diTrueCPK, diLINES +from utilities.constants import diBALL, diTUBES, diDNACYLINDER + +from utilities.constants import black, white, gray + +# = +# Preferences widgets constants. I suggest that these be moved to another +# file (i.e. prefs_constants.py or another file). Discuss with Bruce. -Mark + +# Widget constants for the "Model View" page. + +BG_BLUE_SKY = 0 +BG_EVENING_SKY = 1 +BG_BLACK = 2 +BG_WHITE = 3 +BG_GRAY = 4 +BG_CUSTOM = 5 + +# GDS = global display style +GDS_INDEXES = [diLINES, diTUBES, diBALL, diTrueCPK, diDNACYLINDER] +GDS_NAMES = ["Lines", "Tubes", "Ball and Stick", "CPK", "DNA Cylinder"] +GDS_ICONS = ["Lines", "Tubes", "Ball_and_Stick", "CPK", "DNACylinder" ] + +# Widget constants for the "Colors" page. + +# HHS = hover highlighting styles +HHS_SOLID = 0 +HHS_SCREENDOOR1 = 1 +HHS_CROSSHATCH1 = 2 +HHS_BW_PATTERN = 3 +HHS_POLYGON_EDGES = 4 +HHS_HALO = 5 +HHS_DISABLED = 6 + +HHS_INDEXES = [HHS_SOLID, HHS_SCREENDOOR1, HHS_CROSSHATCH1, HHS_BW_PATTERN, + HHS_POLYGON_EDGES, HHS_HALO, HHS_DISABLED] + +HHS_OPTIONS = ["Highlight in solid color", + "Highlight in screendoor pattern", + "Highlight in crosshatch pattern", + "Highlight with black-and-white pattern", + "Highlight in colored polygon edges", + "Highlight in colored halo", + "Disable hover highlighting"] + +# SS = selection styles + +SS_SOLID = 0 +SS_SCREENDOOR1 = 1 +SS_CROSSHATCH1 = 2 +SS_BW_PATTERN = 3 +SS_POLYGON_EDGES = 4 +SS_HALO = 5 + +SS_INDEXES = [SS_SOLID, SS_SCREENDOOR1, SS_CROSSHATCH1, + SS_BW_PATTERN, SS_POLYGON_EDGES, SS_HALO] + +SS_OPTIONS = ["Solid color", + "Screendoor pattern", + "Crosshatch pattern", + "Black-and-white pattern", + "Colored polygon edges", + "Colored halo"] + +# = end of Preferences widgets constants. + +debug_sliders = False # Do not commit as True + +def debug_povdir_signals(): + return 0 and env.debug() + +# This list of mode names correspond to the names listed in the modes combo box. +modes = ['SELECTMOLS', 'MODIFY', 'DEPOSIT', 'COOKIE', 'EXTRUDE', 'FUSECHUNKS', 'MOVIE'] + +# List of Default Modes and Startup Modes. Mark 050921. +# [bruce 060403 guesses these need to correspond to certain combobox indices.] + +#ninad070430, 070501 For A9 , startup mode = default mode = SELECTMOLS mode +#but not changing the values in the list per Bruc's suggestions. +#instead, default_commandName and startup_commandName will return 'SELMOLS' +#Although the following lists contain "illegal values", +#there is code that cares about their indices in the lists. + +default_modes = ['SELECTMOLS', 'MODIFY', 'DEPOSIT'] +startup_modes = ['$DEFAULT_MODE', 'DEPOSIT'] + +def fix_commandName_pref( commandName, commandName_list, commandName_fallback = None): #bruce 060403 + """ + commandName came from prefs db; if it's in commandName_list, return it unchanged, + but if not, return one of the commandNames in commandName_list to be used in place of it, or commandName_fallback. + This is REQUIRED for decoding any commandName-valued prefs value. + """ + assert len(commandName_list) > 0 or commandName_fallback + if commandName in commandName_list: + return commandName + # handle SELECTATOMS being superseded by DEPOSIT + if commandName == 'SELECTATOMS' and 'DEPOSIT' in commandName_list: + return 'DEPOSIT' + # handle future modes not yet supported by current code + # (at this point it might be better to return the user's default mode; + # callers wanting this can pass it as commandName_fallback) + return commandName_fallback or commandName_list[-1] + # could use any arbitrary element rather than the last one (at -1), + # but in the list constants above, the last choices seem to be best + +def default_commandName(): #bruce 060403 + """ + Return the commandName string of the user's default mode. + External code should use this, rather than directly using env.prefs[ defaultMode_prefs_key ]. + """ + #ninad070501 For A9 , startup mode = default mode = SELECTMOLS mode + return 'SELECTMOLS' + ##return fix_commandName_pref( env.prefs[ defaultMode_prefs_key ], default_modes) + +def startup_commandName(): #bruce 060403 + """ + Return the commandName string (literal or symbolic, e.g. '$DEFAULT_MODE') + of the user's startup mode. External code should use this, rather than + directly using env.prefs[ startupMode_prefs_key ]. + """ + #ninad 070501 For A9 , startup mode = default mode = SELECTMOLS mode + return 'SELECTMOLS' + ##return fix_commandName_pref( env.prefs[ startupMode_prefs_key ], startup_modes, startup_modes[0] ) + +def parentless_open_dialog_pref(): #bruce 060710 for Mac A8 + # see if setting this True fixes the Mac-specific bugs in draggability of this dialog, and CPU usage while it's up + from utilities.debug_prefs import debug_pref, Choice_boolean_False + return debug_pref("parentless open file dialogs?", Choice_boolean_False, + prefs_key = "A8.1 devel/parentless open file dialogs") + +parentless_open_dialog_pref() + +def get_filename_and_save_in_prefs(parent, prefs_key, caption=''): + """ + Present user with the Qt file chooser to select a file. + prefs_key is the key to save the filename in the prefs db + caption is the string for the dialog caption. + """ + # see also get_dirname_and_save_in_prefs, which has similar code + + if parentless_open_dialog_pref(): + parent = None + + filename = str(QFileDialog.getOpenFileName( + parent, + caption, + get_rootdir(), # '/' on Mac or Linux, something else on Windows + )) + + if not filename: # Cancelled. + return None + + # Save filename in prefs db. + prefs = preferences.prefs_context() + prefs[prefs_key] = os.path.normpath(str(filename)) + + return filename + +def get_dirname_and_save_in_prefs(parent, prefs_key, caption=''): #bruce 060710 for Mac A8 + """ + Present user with the Qt file chooser to select an existing directory. + If they do that, and if prefs_key is not null, save its full pathname in + env.prefs[prefs_key]. + + @param prefs_key: the pref_key to save the pathname. + @type prefs_key: text + + @param caption: the string for the dialog caption. + @type caption: text + """ + # see also get_filename_and_save_in_prefs, which has similar code + + if parentless_open_dialog_pref(): + parent = None + + filename = str(QFileDialog.getExistingDirectory( + parent,### if this was None, it might fix the Mac bug where you can't drag the dialog around [bruce 060710] + caption, + get_rootdir(), # '/' on Mac or Linux -- maybe not the best choice if they've chosen one before? + )) + + if not filename: # Cancelled. + return None + + # Save filename in prefs db. + prefs = preferences.prefs_context() + prefs[prefs_key] = str(filename) + + return filename + +# main window layout save/restore + +def _fullkey(keyprefix, *subkeys): #e this func belongs in preferences.py + res = keyprefix + for subkey in subkeys: + res += "/" + subkey + return res + +def _size_pos_keys( keyprefix): + return _fullkey(keyprefix, "geometry", "size"), _fullkey(keyprefix, "geometry", "pos") + +def _tupleFromQPoint(qpoint): + return qpoint.x(), qpoint.y() + +def _tupleFromQSize(qsize): + return qsize.width(), qsize.height() + +def _get_window_pos_size(win): + size = _tupleFromQSize( win.size()) + pos = _tupleFromQPoint( win.pos()) + return pos, size + +def save_window_pos_size( win, keyprefix): #bruce 050913 removed histmessage arg + """ + Save the size and position of the given main window, win, + in the preferences database, using keys based on the given keyprefix, + which caller ought to reserve for geometry aspects of the main window. + (#e Someday, maybe save more aspects like dock layout and splitter bar + positions??) + """ +## from preferences import prefs_context +## prefs = prefs_context() + ksize, kpos = _size_pos_keys( keyprefix) + pos, size = _get_window_pos_size(win) + changes = { ksize: size, kpos: pos } + env.prefs.update( changes) # use update so it only opens/closes dbfile once + env.history.message("saved window position %r and size %r" % (pos,size)) + return + +def load_window_pos_size( win, keyprefix, defaults = None, screen = None): #bruce 050913 removed histmessage arg; 060517 revised + """ + Load the last-saved size and position of the given main window, win, + from the preferences database, using keys based on the given keyprefix, + which caller ought to reserve for geometry aspects of the main window. + (If no prefs have been stored, return reasonable or given defaults.) + Then set win's actual position and size (using supplied defaults, and + limited by supplied screen size, both given as ((pos_x,pos_y),(size_x,size_y)). + (#e Someday, maybe restore more aspects like dock layout and splitter bar + positions??) + """ + if screen is None: + screen = screen_pos_size() + ((x0, y0), (w, h)) = screen + x1 = x0 + w + y1 = y0 + h + + pos, size = _get_prefs_for_window_pos_size( win, keyprefix, defaults) + # now use pos and size, within limits set by screen + px, py = pos + sx, sy = size + if sx > w: sx = w + if sy > h: sy = h + if px < x0: px = x0 + if py < y0: py = y0 + if px > x1 - sx: px = x1 - sx + if py > y1 - sy: py = y1 - sy + env.history.message("restoring last-saved window position %r and size %r" \ + % ((px, py),(sx, sy))) + win.resize(sx, sy) + win.move(px, py) + return + +def _get_prefs_for_window_pos_size( win, keyprefix, defaults = None): + """ + Load and return the last-saved size and position of the given main window, win, + from the preferences database, using keys based on the given keyprefix, + which caller ought to reserve for geometry aspects of the main window. + (If no prefs have been stored, return reasonable or given defaults.) + """ + #bruce 060517 split this out of load_window_pos_size + if defaults is None: + defaults = _get_window_pos_size(win) + dpos, dsize = defaults + px, py = dpos # check correctness of args, even if not used later + sx, sy = dsize + import foundation.preferences as preferences + prefs = preferences.prefs_context() + ksize, kpos = _size_pos_keys( keyprefix) + pos = prefs.get(kpos, dpos) + size = prefs.get(ksize, dsize) + return pos, size + +def validate_gamess_path(parent, gmspath): + """ + Checks that gmspath (GAMESS executable) exists. If not, the user is asked + if they want to use the File Chooser to select the GAMESS executable. + This function does not check whether the GAMESS path is actually GAMESS + or if it is the correct version of GAMESS for this platform (i.e. PC GAMESS + for Windows). + + @return: "gmspath" if it is validated or if the user does not want to + change it for any reason, or + "new_gmspath" if gmspath is invalid and the user selected a new + GAMESS executable. Return value might be "". + """ + + if not gmspath: # It is OK if gmspath is empty. + return "" + elif os.path.exists(gmspath): + return gmspath + else: + ret = QMessageBox.warning( parent, "GAMESS Executable Path", + gmspath + " does not exist.\nDo you want to use the File Chooser to browse for the GAMESS executable?", + "&Yes", "&No", "", + 0, 1 ) + + if ret == 0: # Yes + new_gmspath = get_gamess_path(parent) + if not new_gmspath: + return gmspath # Cancelled from file chooser. Just return the original gmspath. + else: + return new_gmspath + + else: # No + return gmspath + +def get_pref_or_optval(key, val, optval): + """ + Return <key>'s value. If <val> is equal to <key>'s value, return <optval> + instead. + """ + if env.prefs[key] == val: + return optval + else: + return env.prefs[key] + +class Preferences(QDialog, Ui_PreferencesDialog): + """ + The Preferences dialog used for accessing and changing user + preferences. + """ + pagenameList = [] # List of page names in prefsStackedWidget. + + def __init__(self, assy): + QDialog.__init__(self) + self.setupUi(self) + + # Some important attrs. + self.glpane = assy.o + self.w = assy.w + self.assy = assy + self.pagenameList = self.getPagenameList() + + # Start of dialog setup. + self._setupDialog_TopLevelWidgets() + self._setupPage_General() + self._setupPage_Color() + self._setupPage_ModelView() + self._setupPage_ZoomPanRotate() + self._setupPage_Rulers() + self._setupPage_Atoms() + self._setupPage_Bonds() + self._setupPage_Dna() + self._setupPage_DnaMinorGrooveErrorIndicator() + self._setupPage_DnaBaseOrientationIndicators() + self._setupPage_Adjust() + self._setupPage_Lighting() + self._setupPage_Plugins() + self._setupPage_Undo() + self._setupPage_Window() + self._setupPage_Reports() + self._setupPage_Tooltips() + + # Assign "What's This" text for all widgets. + from ne1_ui.prefs.WhatsThisText_for_PreferencesDialog import whatsThis_PreferencesDialog + whatsThis_PreferencesDialog(self) + + self._hideOrShowWidgets() + return + # End of _init_() + + def _setupDialog_TopLevelWidgets(self): + """ + Setup all the main dialog widgets and their signal-slot connection(s). + """ + + self.setWindowIcon(geticon("ui/actions/Tools/Options.png")) + + # This connects the "itemSelectedChanged" signal generated when the + # user selects an item in the "Category" QTreeWidget on the left + # side of the Preferences dialog (inside the "Systems Option" tab) + # to the slot for turning to the correct page in the QStackedWidget + # on the right side. + self.connect(self.categoryTreeWidget, SIGNAL("itemSelectionChanged()"), self.showPage) + + # Connections for OK and What's This buttons at the bottom of the dialog. + self.connect(self.okButton, SIGNAL("clicked()"), self.accept) + self.connect(self.whatsThisToolButton, SIGNAL("clicked()"),QWhatsThis.enterWhatsThisMode) + + self.whatsThisToolButton.setIcon( + geticon("ui/actions/Help/WhatsThis.png")) + + # Set the margin and spacing for these two gridlayouts: + # gridlayout = grid layout for the Preference dialog + # gridlayout1 = grid layout for the System Options tab + self.gridlayout.setMargin(2) + self.gridlayout.setSpacing(2) + + self.gridlayout1.setMargin(4) + self.gridlayout1.setSpacing(0) + return + + def _setupPage_General(self): + """ + Setup the "General" page. + """ + # Sponsor logos download permission options in General tab + self.logosDownloadPermissionBtnGroup = QButtonGroup() + self.logosDownloadPermissionBtnGroup.setExclusive(True) + for button in self.sponsorLogosGroupBox.children(): + if isinstance(button, QAbstractButton): + self.logosDownloadPermissionBtnGroup.addButton(button) + buttonId = 0 + if button.text().startsWith("Never ask"): + buttonId = 1 + elif button.text().startsWith("Never download"): + buttonId = 2 + self.logosDownloadPermissionBtnGroup.setId(button, buttonId) + + # Check the correct permission radio button. + if env.prefs[sponsor_permanent_permission_prefs_key]: + if env.prefs[sponsor_download_permission_prefs_key]: + self.logoNeverAskRadioBtn.setChecked(True) + else: + self.logoNeverDownLoadRadioBtn.setChecked(True) + else: + self.logoAlwaysAskRadioBtn.setChecked(True) + + self.connect(self.logosDownloadPermissionBtnGroup, SIGNAL("buttonClicked(int)"), self.setPrefsLogoDownloadPermissions) + + # Build Chunks option connections. + connect_checkbox_with_boolean_pref( self.autobond_checkbox, buildModeAutobondEnabled_prefs_key ) + connect_checkbox_with_boolean_pref( self.water_checkbox, buildModeWaterEnabled_prefs_key ) + connect_checkbox_with_boolean_pref( self.buildmode_highlighting_checkbox, buildModeHighlightingEnabled_prefs_key ) + connect_checkbox_with_boolean_pref( self.buildmode_select_atoms_checkbox, buildModeSelectAtomsOfDepositedObjEnabled_prefs_key ) + return + + def _setupPage_Color(self): + """ + Setup the "Color" page. + """ + # Background color widgets and connection(s). + self._loadBackgroundColorItems() + self.connect(self.backgroundColorComboBox, SIGNAL("activated(int)"), self.changeBackgroundColor) + + # Hover highlighting color style widgets and connection(s). + self._loadHoverHighlightingColorStylesItems() + self.hoverHighlightingStyleComboBox.setCurrentIndex(env.prefs[hoverHighlightingColorStyle_prefs_key]) + self.connect(self.hoverHighlightingStyleComboBox, SIGNAL("activated(int)"), self._change_hhStyle) + connect_colorpref_to_colorframe( hoverHighlightingColor_prefs_key, self.hoverHighlightingColorFrame) + self.connect(self.hoverHighlightingColorButton, SIGNAL("clicked()"), self._change_hhColor) + + # Selection color style widgets and connection(s). + self._loadSelectionColorStylesItems() + self.selectionStyleComboBox.setCurrentIndex(env.prefs[selectionColorStyle_prefs_key]) + self.connect(self.selectionStyleComboBox, SIGNAL("activated(int)"), self._change_selectionStyle) + connect_colorpref_to_colorframe( selectionColor_prefs_key, self.selectionColorFrame) + self.connect(self.selectionColorButton, SIGNAL("clicked()"), self._change_selectionColor) + return + + def _setupPage_ModelView(self): + """ + Setup widgets to initial (default or defined) values on the + 'Model View' page. + """ + # Setup the Global Display Style at start-up combobox + self._setupGlobalDisplayStyleAtStartup_ComboBox() + + + self.connect(self.compassGroupBox, SIGNAL("stateChanged(int)"), self.display_compass) + self.connect(self.compass_position_combox, SIGNAL("activated(int)"), self.set_compass_position) + + connect_checkbox_with_boolean_pref( self.compassGroupBox, displayCompass_prefs_key ) + connect_checkbox_with_boolean_pref( self.display_compass_labels_checkbox, displayCompassLabels_prefs_key ) + connect_checkbox_with_boolean_pref( self.display_origin_axis_checkbox, displayOriginAxis_prefs_key ) + connect_checkbox_with_boolean_pref( self.display_pov_axis_checkbox, displayPOVAxis_prefs_key ) + self.compass_position_combox.setCurrentIndex(self.glpane.compassPosition) + + connect_checkbox_with_boolean_pref( self.enableFogCheckBox, fogEnabled_prefs_key ) + return + + def _setupPage_ZoomPanRotate(self): + """ + Setup widgets to initial (default or defined) values on the + 'Zoom, Pan Rotate' page. + """ + self.connect(self.animation_speed_slider, SIGNAL("sliderReleased()"), self.change_view_animation_speed) + connect_checkbox_with_boolean_pref( self.animate_views_checkbox, animateStandardViews_prefs_key ) + + speed = int (env.prefs[animateMaximumTime_prefs_key] * -100) + self.animation_speed_slider.setValue(speed) + + #mouse speed during rotation slider - ninad060906 + mouseSpeedDuringRotation = int(env.prefs[mouseSpeedDuringRotation_prefs_key]*100) + + if mouseSpeedDuringRotation == 60: + self.resetMouseSpeedDuringRotation_btn.setEnabled(0) + else: + self.resetMouseSpeedDuringRotation_btn.setEnabled(1) + + self.resetMouseSpeedDuringRotation_btn.setIcon( + geticon('ui/dialogs/Reset.png')) + + self.mouseSpeedDuringRotation_slider.setValue(mouseSpeedDuringRotation) # generates signal + + # Mouse wheel zoom settings combo boxes + self.mouseWheelDirectionComboBox.setCurrentIndex( + env.prefs[mouseWheelDirection_prefs_key]) + self.mouseWheelZoomInPointComboBox.setCurrentIndex( + env.prefs[zoomInAboutScreenCenter_prefs_key]) + self.mouseWheelZoomOutPointComboBox.setCurrentIndex( + env.prefs[zoomOutAboutScreenCenter_prefs_key]) + + self.hhTimeoutIntervalDoubleSpinBox.setValue(env.prefs[mouseWheelTimeoutInterval_pref_key]) + + # Connections for "Mouse controls" page. + self.connect(self.mouseWheelDirectionComboBox, SIGNAL("currentIndexChanged(int)"), self.set_mouse_wheel_direction) + self.connect(self.mouseWheelZoomInPointComboBox, SIGNAL("currentIndexChanged(int)"), self.set_mouse_wheel_zoom_in_position) + self.connect(self.mouseWheelZoomOutPointComboBox, SIGNAL("currentIndexChanged(int)"), self.set_mouse_wheel_zoom_out_position) + self.connect(self.hhTimeoutIntervalDoubleSpinBox, SIGNAL("valueChanged(double)"), self.set_mouse_wheel_timeout_interval) + return + + def _setupPage_Rulers(self): + """ + Setup the "Rulers" page. + """ + + self.connect(self.rulerDisplayComboBox, SIGNAL("currentIndexChanged(int)"), self.set_ruler_display) + self.connect(self.rulerPositionComboBox, SIGNAL("currentIndexChanged(int)"), self.set_ruler_position) + self.connect(self.ruler_color_btn, SIGNAL("clicked()"), self.change_ruler_color) + self.connect(self.rulerOpacitySpinBox, SIGNAL("valueChanged(int)"), self.change_ruler_opacity) + + if env.prefs[displayVertRuler_prefs_key] and env.prefs[displayHorzRuler_prefs_key]: + self.rulerDisplayComboBox.setCurrentIndex(0) + elif not env.prefs[displayHorzRuler_prefs_key]: + self.rulerDisplayComboBox.setCurrentIndex(1) + elif not env.prefs[displayVertRuler_prefs_key]: + self.rulerDisplayComboBox.setCurrentIndex(2) + + self.rulerPositionComboBox.setCurrentIndex(env.prefs[rulerPosition_prefs_key]) + connect_colorpref_to_colorframe( rulerColor_prefs_key, self.ruler_color_frame) + self.rulerOpacitySpinBox.setValue(int(env.prefs[rulerOpacity_prefs_key] * 100)) + connect_checkbox_with_boolean_pref( self.showRulersInPerspectiveViewCheckBox, showRulersInPerspectiveView_prefs_key ) + return + + def _setupPage_Atoms(self): + """ + Setup the "Atoms" page. + """ + self.connect(self.hotspot_color_btn, SIGNAL("clicked()"), self.change_hotspot_color) + self.connect(self.reset_cpk_scale_factor_btn, SIGNAL("clicked()"), self.reset_cpk_scale_factor) + self.connect(self.reset_atom_colors_btn, SIGNAL("clicked()"), self.reset_atom_colors) + self.connect(self.change_element_colors_btn, SIGNAL("clicked()"), self.change_element_colors) + self.connect(self.cpk_atom_rad_spinbox, SIGNAL("valueChanged(int)"), self.change_ballstick_atom_radius) + self.connect(self.cpk_cylinder_rad_spinbox, SIGNAL("valueChanged(int)"), self.change_ballstick_cylinder_radius) + self.connect(self.cpk_scale_factor_slider, SIGNAL("sliderReleased()"), self.save_cpk_scale_factor) + self.connect(self.cpk_scale_factor_slider, SIGNAL("valueChanged(int)"), self.change_cpk_scale_factor) + self.connect(self.atom_hilite_color_btn, SIGNAL("clicked()"), self.change_atom_hilite_color) + connect_checkbox_with_boolean_pref( self.overlappingAtomIndicatorsCheckBox, indicateOverlappingAtoms_pref_key ) + self.connect(self.level_of_detail_combox, SIGNAL("activated(int)"), self.change_level_of_detail) + + #bruce 050805 new way (see comment in _setup_bonds_page): + connect_colorpref_to_colorframe( atomHighlightColor_prefs_key, self.atom_hilite_color_frame) + connect_colorpref_to_colorframe( bondpointHighlightColor_prefs_key, self.bondpoint_hilite_color_frame) + connect_colorpref_to_colorframe( bondpointHotspotColor_prefs_key, self.hotspot_color_frame) + + lod = env.prefs[ levelOfDetail_prefs_key ] + lod = int(lod) + loditem = lod # index of corresponding spinbox item -- this is only correct for 0,1,2; other cases handled below + if lod <= -1: # 'variable' (only -1 is used now, but other negative values might be used in future) + # [bruce 060215 changed prefs value for 'variable' from 3 to -1, in case we have more LOD levels in the future] + # [bruce 060317 fixed bug 1551 (in two files) by removing lod == 3 case from if/elif statement.] + loditem = 3 # index of the spinbox item that says "variable" + elif lod > 2: + loditem = 2 + self.level_of_detail_combox.setCurrentIndex(loditem) + + # Set Ball & Stick Atom radius (percentage). Mark 051003. + self.cpk_atom_rad_spinbox.setValue(int (env.prefs[diBALL_AtomRadius_prefs_key] * 100.0)) + + cpk_sf = env.prefs[cpkScaleFactor_prefs_key] + # This slider generate signals whenever its 'setValue()' slot is called (below). + # This creates problems (bugs) for us, so we disconnect it temporarily. + self.disconnect(self.cpk_scale_factor_slider, SIGNAL("valueChanged(int)"), self.change_cpk_scale_factor) + self.cpk_scale_factor_slider.setValue(int (cpk_sf * 200.0)) # generates signal + self.connect(self.cpk_scale_factor_slider, SIGNAL("valueChanged(int)"), self.change_cpk_scale_factor) + self.cpk_scale_factor_linedit.setText(str(cpk_sf)) + + connect_checkbox_with_boolean_pref( + self.keepBondsTransmuteCheckBox, keepBondsDuringTransmute_prefs_key) + + # I couldn't figure out a way to get a pref's default value without changing its current value. + # Something like this would be very handy: + # default_cpk_sf = env.prefs.get_default_value(cpkScaleFactor_prefs_key) + # Talk to Bruce about this. mark 060309. + # + # (I think there is a way, but I forget the details -- see some + # "restore defaults" code to look for a use of it. -- bruce 070831) + + if cpk_sf == 0.775: # Hardcoded for now. + # Disable the reset button if the CPK Scale Factor is currently the default value. + self.reset_cpk_scale_factor_btn.setEnabled(0) + else: + self.reset_cpk_scale_factor_btn.setEnabled(1) + + self.reset_cpk_scale_factor_btn.setIcon( + geticon('ui/dialogs/Reset.png')) + return + + def _setupPage_Bonds(self): + """ + Setup the "Bonds" page. + """ + + # Create "High order bond display" button group, which lives inside + # of self.high_order_bond_display_groupbox (a QGroupBox). + self.high_order_bond_display_btngrp = QButtonGroup() + self.high_order_bond_display_btngrp.setExclusive(True) + + objId = 0 + for obj in [self.multCyl_radioButton, self.vanes_radioButton, + self.ribbons_radioButton]: + self.high_order_bond_display_btngrp.addButton(obj) + self.high_order_bond_display_btngrp.setId(obj, objId) + objId +=1 + + self.connect(self.high_order_bond_display_btngrp, SIGNAL("buttonClicked(int)"), self.change_high_order_bond_display) + self.connect(self.reset_bond_colors_btn, SIGNAL("clicked()"), self.reset_bond_colors) + self.connect(self.show_bond_labels_checkbox, SIGNAL("toggled(bool)"), self.change_bond_labels) + self.connect(self.show_valence_errors_checkbox, SIGNAL("toggled(bool)"), self.change_show_valence_errors) + self.connect(self.ballstick_bondcolor_btn, SIGNAL("clicked()"), self.change_ballstick_bondcolor) + self.connect(self.bond_hilite_color_btn, SIGNAL("clicked()"), self.change_bond_hilite_color) + self.connect(self.bond_line_thickness_spinbox, SIGNAL("valueChanged(int)"), self.change_bond_line_thickness) + self.connect(self.bond_stretch_color_btn, SIGNAL("clicked()"), self.change_bond_stretch_color) + self.connect(self.bond_vane_color_btn, SIGNAL("clicked()"), self.change_bond_vane_color) + self.connect(self.bondpoint_hilite_color_btn, SIGNAL("clicked()"), self.change_bondpoint_hilite_color) + + #bruce 050805 here's the new way: subscribe to the preference value, + # but make sure to only have one such subs (for one widget's bgcolor) at a time. + # The colors in these frames will now automatically update whenever the prefs value changes. + ##e (should modify this code to share its prefskey list with the one for restore_defaults) + connect_colorpref_to_colorframe( + bondHighlightColor_prefs_key, self.bond_hilite_color_frame) + connect_colorpref_to_colorframe( + bondStretchColor_prefs_key, self.bond_stretch_color_frame) + connect_colorpref_to_colorframe( + bondVaneColor_prefs_key, self.bond_vane_color_frame) + connect_colorpref_to_colorframe( + diBALL_bondcolor_prefs_key, self.ballstick_bondcolor_frame) + connect_checkbox_with_boolean_pref( + self.showBondStretchIndicators_checkBox, + showBondStretchIndicators_prefs_key) + + # also handle the non-color prefs on this page: + # ('pi_bond_style', ['multicyl','vane','ribbon'], pibondStyle_prefs_key, 'multicyl' ), + pibondstyle_sym = env.prefs[ pibondStyle_prefs_key] + button_code = { 'multicyl':0,'vane':1, 'ribbon':2 }.get( pibondstyle_sym, 0) + # Errors in prefs db are not detected -- we just use the first button because (we happen to know) it's the default. + # This int encoding is specific to this buttongroup. + # The prefs db and the rest of the code uses the symbolic strings listed above. + if button_code == 0: + self.multCyl_radioButton.setChecked(True) + elif button_code ==1: + self.vanes_radioButton.setChecked(True) + else: + self.ribbons_radioButton.setChecked(True) + + # ('pi_bond_letters', 'boolean', pibondLetters_prefs_key, False ), + self.show_bond_labels_checkbox.setChecked( env.prefs[ pibondLetters_prefs_key] ) + # I don't know whether this sends the signal as if the user changed it + # (and even if Qt doc says no, this needs testing since I've seen it be wrong about those things before), + # but in the present code it doesn't matter unless it causes storing default value explicitly into prefs db + # (I can't recall whether or not it does). Later this might matter more, e.g. if we have prefs-value modtimes. + # [bruce 050806] + + # ('show_valence_errors', 'boolean', showValenceErrors_prefs_key, True ), + # (This is a per-atom warning, but I decided to put it on the Bonds page since you need it when + # working on high order bonds. And, since I could fit that into the UI more easily.) + + if hasattr(self, 'show_valence_errors_checkbox'): + self.show_valence_errors_checkbox.setChecked( env.prefs[ showValenceErrors_prefs_key] ) + # note: this does cause the checkbox to send its "toggled(bool)" signal to our slot method. + + # Set Lines Dislplay Mode line thickness. Mark 050831. + self.update_bond_line_thickness_suffix() + self.bond_line_thickness_spinbox.setValue( env.prefs[linesDisplayModeThickness_prefs_key] ) + + # Set CPK Cylinder radius (percentage). Mark 051003. + self.cpk_cylinder_rad_spinbox.setValue(int (env.prefs[diBALL_BondCylinderRadius_prefs_key] * 100.0)) + return + + def _setupPage_Dna(self): + """ + Setup the "DNA" page. + """ + # Connections for "DNA defaults" groupbox widgets. + self.connect(self.dnaBasesPerTurnDoubleSpinBox, SIGNAL("valueChanged(double)"), self.save_dnaBasesPerTurn) + self.connect(self.dnaRiseDoubleSpinBox, SIGNAL("valueChanged(double)"), self.save_dnaRise) + self.connect(self.dnaRestoreFactoryDefaultsPushButton, SIGNAL("clicked()"), self.dnaRestoreFactoryDefaults) + connect_colorpref_to_colorframe(dnaDefaultSegmentColor_prefs_key, self.dnaDefaultSegmentColorFrame) + self.connect(self.dnaDefaultSegmentColorPushButton, SIGNAL("clicked()"), self.changeDnaDefaultSegmentColor) + + self.dnaBasesPerTurnDoubleSpinBox.setValue(env.prefs[bdnaBasesPerTurn_prefs_key]) + self.dnaRiseDoubleSpinBox.setValue(env.prefs[bdnaRise_prefs_key]) + + # Connections for "DNA Strand Arrowheads" groupbox widgets. + self.connect(self.strandThreePrimeArrowheadsCustomColorPushButton, SIGNAL("clicked()"), self.change_dnaStrandThreePrimeArrowheadCustomColor) + self.connect(self.strandFivePrimeArrowheadsCustomColorPushButton, SIGNAL("clicked()"), self.change_dnaStrandFivePrimeArrowheadCustomColor) + self.connect(self.strandThreePrimeArrowheadsCustomColorCheckBox, SIGNAL("toggled(bool)"), self.update_dnaStrandThreePrimeArrowheadCustomColorWidgets) + self.connect(self.strandFivePrimeArrowheadsCustomColorCheckBox, SIGNAL("toggled(bool)"), self.update_dnaStrandFivePrimeArrowheadCustomColorWidgets) + + # DNA strand arrowheads preferences + connect_checkbox_with_boolean_pref(self.arrowsOnBackBones_checkBox, arrowsOnBackBones_prefs_key) + connect_checkbox_with_boolean_pref(self.arrowsOnThreePrimeEnds_checkBox, arrowsOnThreePrimeEnds_prefs_key) + + connect_checkbox_with_boolean_pref( + self.arrowsOnFivePrimeEnds_checkBox, + arrowsOnFivePrimeEnds_prefs_key) + + connect_checkbox_with_boolean_pref( + self.strandThreePrimeArrowheadsCustomColorCheckBox, + useCustomColorForThreePrimeArrowheads_prefs_key) + + connect_checkbox_with_boolean_pref( + self.strandFivePrimeArrowheadsCustomColorCheckBox, + useCustomColorForFivePrimeArrowheads_prefs_key) + + connect_colorpref_to_colorframe( + dnaStrandThreePrimeArrowheadsCustomColor_prefs_key, + self.strandThreePrimeArrowheadsCustomColorFrame) + + connect_colorpref_to_colorframe( + dnaStrandFivePrimeArrowheadsCustomColor_prefs_key, + self.strandFivePrimeArrowheadsCustomColorFrame) + + self.update_dnaStrandThreePrimeArrowheadCustomColorWidgets( + env.prefs[useCustomColorForThreePrimeArrowheads_prefs_key]) + + self.update_dnaStrandFivePrimeArrowheadCustomColorWidgets( + env.prefs[useCustomColorForFivePrimeArrowheads_prefs_key]) + + def _setupPage_DnaMinorGrooveErrorIndicator(self): + """ + Setup the "DNA Minor Groove Error Indicator" page. + """ + # Connections for "DNA Minor Groove Error Indicator" groupbox widgets. + self.connect(self.dnaMinGrooveAngleSpinBox, SIGNAL("valueChanged(int)"), self.save_dnaMinMinorGrooveAngles) + self.connect(self.dnaMaxGrooveAngleSpinBox, SIGNAL("valueChanged(int)"), self.save_dnaMaxMinorGrooveAngles) + self.connect(self.dnaGrooveIndicatorColorButton, SIGNAL("clicked()"), self.change_dnaMinorGrooveErrorIndicatorColor) + self.connect(self.dnaMinorGrooveRestoreFactoryDefaultsPushButton, SIGNAL("clicked()"), self._restore_dnaMinorGrooveFactoryDefaults) + + # Display Minor Groove Error Indicator groupbox widgets. + + connect_checkbox_with_boolean_pref( + self.dnaDisplayMinorGrooveErrorGroupBox, + dnaDisplayMinorGrooveErrorIndicators_prefs_key) + + self.dnaMinGrooveAngleSpinBox.setValue( + env.prefs[dnaMinMinorGrooveAngle_prefs_key]) + + self.dnaMaxGrooveAngleSpinBox.setValue( + env.prefs[dnaMaxMinorGrooveAngle_prefs_key]) + + connect_colorpref_to_colorframe( + dnaMinorGrooveErrorIndicatorColor_prefs_key, + self.dnaGrooveIndicatorColorFrame) + + def _setupPage_DnaBaseOrientationIndicators(self): + """ + Setup the "DNA Base Orientation Indicators" page. + """ + # Connections for "DNA base orientation indicator" groupbox widgets. + self.connect(self.dnaDisplayBaseOrientationIndicatorsGroupBox, SIGNAL("toggled(bool)"), self.toggle_dnaDisplayBaseOrientationIndicatorsGroupBox) + self.connect(self.dnaBaseOrientationIndicatorsInverseCheckBox, SIGNAL("toggled(bool)"), self.toggle_dnaDisplayBaseOrientationInvIndicatorsCheckBox) + self.connect(self.dnaBaseOrientationIndicatorsThresholdSpinBox, SIGNAL("valueChanged(double)"), self.change_dnaBaseIndicatorsAngle) + self.connect(self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox, SIGNAL("valueChanged(double)"), self.change_dnaBaseIndicatorsDistance) + self.connect(self.dnaChooseBaseOrientationIndicatorsColorButton, SIGNAL("clicked()"), self.change_dnaBaseIndicatorsColor) + self.connect(self.dnaChooseBaseOrientationIndicatorsInvColorButton, SIGNAL("clicked()"), self.change_dnaBaseInvIndicatorsColor) + self.connect(self.dnaBaseIndicatorsPlaneNormalComboBox, SIGNAL("activated(int)"), self.change_dnaBaseOrientIndicatorsPlane) + + # DNA Base Orientation Indicator stuff. + self.dnaDisplayBaseOrientationIndicatorsGroupBox.setChecked( + env.prefs[dnaBaseIndicatorsEnabled_prefs_key]) + self.dnaBaseIndicatorsPlaneNormalComboBox.setCurrentIndex( + env.prefs[dnaBaseIndicatorsPlaneNormal_prefs_key]) + self.dnaBaseOrientationIndicatorsInverseCheckBox.setChecked( + env.prefs[dnaBaseInvIndicatorsEnabled_prefs_key]) + self.update_dnaBaseIndicatorsAngle() + self.update_dnaBaseIndicatorsDistance() + connect_colorpref_to_colorframe(dnaBaseIndicatorsColor_prefs_key, + self.dnaBaseOrientationIndicatorsColorFrame) + connect_colorpref_to_colorframe(dnaBaseInvIndicatorsColor_prefs_key, + self.dnaBaseOrientationIndicatorsInvColorFrame) + + def _setupPage_Adjust(self): + """ + Setup the "Adjust" page. + """ + self.connect(self.adjustEngineCombobox, SIGNAL("activated(int)"), self.set_adjust_minimization_engine) + self.connect(self.endRmsDoubleSpinBox, SIGNAL("valueChanged(double)"), self.changeEndRms) + self.connect(self.endMaxDoubleSpinBox, SIGNAL("valueChanged(double)"), self.changeEndMax) + self.connect(self.cutoverRmsDoubleSpinBox, SIGNAL("valueChanged(double)"), self.changeCutoverRms) + self.connect(self.cutoverMaxDoubleSpinBox, SIGNAL("valueChanged(double)"), self.changeCutoverMax) + + self.endRmsDoubleSpinBox.setSpecialValueText("Automatic") + self.endMaxDoubleSpinBox.setSpecialValueText("Automatic") + self.cutoverRmsDoubleSpinBox.setSpecialValueText("Automatic") + self.cutoverMaxDoubleSpinBox.setSpecialValueText("Automatic") + + # "Settings for Adjust" groupbox. ########################### + + # Adjust Engine combobox. + self.adjustEngineCombobox.setCurrentIndex( + env.prefs[Adjust_minimizationEngine_prefs_key]) + # Watch motion in real time checkbox. + connect_checkbox_with_boolean_pref( + self.update_btngrp, + Adjust_watchRealtimeMinimization_prefs_key ) + #Preference for enabling/disabling electrostatics during Adjustment + #for the DNA reduced model. Ninad 20070809 + connect_checkbox_with_boolean_pref( + self.electrostaticsForDnaDuringAdjust_checkBox, + electrostaticsForDnaDuringAdjust_prefs_key) + + # "Update..." radio btngroup + self.update_btngrp.setEnabled( + env.prefs[Adjust_watchRealtimeMinimization_prefs_key]) + + # Convergence Criteria groupbox + # [WARNING: bruce 060705 copied this into MinimizeEnergyProp.py] + self.endrms = get_pref_or_optval(Adjust_endRMS_prefs_key, -1.0, 0.0) + self.endRmsDoubleSpinBox.setValue(self.endrms) + + self.endmax = get_pref_or_optval(Adjust_endMax_prefs_key, -1.0, 0.0) + self.endMaxDoubleSpinBox.setValue(self.endmax) + + self.cutoverrms = get_pref_or_optval(Adjust_cutoverRMS_prefs_key, -1.0, 0.0) + self.cutoverRmsDoubleSpinBox.setValue(self.cutoverrms) + + self.cutovermax = get_pref_or_optval(Adjust_cutoverMax_prefs_key, -1.0, 0.0) + self.cutoverMaxDoubleSpinBox.setValue(self.cutovermax) + + self.endRmsDoubleSpinBox.setValue(self.endrms) + return + + def _setupPage_Lighting(self): + """ + Setup the "Lighting" page. + """ + # Connections for "Lighting" page. + self.connect(self.light_ambient_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.connect(self.light_ambient_slider, SIGNAL("sliderReleased()"), self.save_lighting) + self.connect(self.light_checkbox, SIGNAL("toggled(bool)"), self.toggle_light) + self.connect(self.light_color_btn, SIGNAL("clicked()"), self.change_light_color) + self.connect(self.light_combobox, SIGNAL("activated(int)"), self.change_active_light) + self.connect(self.light_diffuse_slider, SIGNAL("sliderReleased()"), self.save_lighting) + self.connect(self.light_diffuse_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.connect(self.light_specularity_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.connect(self.light_specularity_slider, SIGNAL("sliderReleased()"), self.save_lighting) + self.connect(self.light_x_linedit, SIGNAL("returnPressed()"), self.save_lighting) + self.connect(self.light_y_linedit, SIGNAL("returnPressed()"), self.save_lighting) + self.connect(self.light_z_linedit, SIGNAL("returnPressed()"), self.save_lighting) + self.connect(self.lighting_restore_defaults_btn, SIGNAL("clicked()"), self.restore_default_lighting) + self.connect(self.ms_brightness_slider, SIGNAL("sliderReleased()"), self.change_material_brightness_stop) + self.connect(self.ms_brightness_slider, SIGNAL("valueChanged(int)"), self.change_material_brightness) + self.connect(self.ms_brightness_slider, SIGNAL("sliderPressed()"), self.change_material_brightness_start) + self.connect(self.ms_finish_slider, SIGNAL("valueChanged(int)"), self.change_material_finish) + self.connect(self.ms_finish_slider, SIGNAL("sliderReleased()"), self.change_material_finish_stop) + self.connect(self.ms_finish_slider, SIGNAL("sliderPressed()"), self.change_material_finish_start) + self.connect(self.ms_on_checkbox, SIGNAL("toggled(bool)"), self.toggle_material_specularity) + self.connect(self.ms_shininess_slider, SIGNAL("sliderReleased()"), self.change_material_shininess_stop) + self.connect(self.ms_shininess_slider, SIGNAL("sliderPressed()"), self.change_material_shininess_start) + self.connect(self.ms_shininess_slider, SIGNAL("valueChanged(int)"), self.change_material_shininess) + + self._updatePage_Lighting() + return + + def _updatePage_Lighting(self, lights = None): #mark 051124 + """ + Setup widgets to initial (default or defined) values on the Lighting page. + """ + if not lights: + self.lights = self.original_lights = self.glpane.getLighting() + else: + self.lights = lights + + light_num = self.light_combobox.currentIndex() + + self.update_light_combobox_items() + + # Move lc_prefs_keys upstairs. Mark. + lc_prefs_keys = [light1Color_prefs_key, light2Color_prefs_key, light3Color_prefs_key] + self.current_light_key = lc_prefs_keys[light_num] # Get prefs key for current light color. + connect_colorpref_to_colorframe(self.current_light_key, self.light_color_frame) + self.light_color = env.prefs[self.current_light_key] + + # These sliders generate signals whenever their 'setValue()' slot is called (below). + # This creates problems (bugs) for us, so we disconnect them temporarily. + self.disconnect(self.light_ambient_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.disconnect(self.light_diffuse_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.disconnect(self.light_specularity_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + + # self.lights[light_num][0] contains 'color' attribute. + # We already have it (self.light_color) from the prefs key (above). + a = self.lights[light_num][1] # ambient intensity + d = self.lights[light_num][2] # diffuse intensity + s = self.lights[light_num][3] # specular intensity + + self.light_ambient_slider.setValue(int (a * 100)) # generates signal + self.light_diffuse_slider.setValue(int (d * 100)) # generates signal + self.light_specularity_slider.setValue(int (s * 100)) # generates signal + + self.light_ambient_linedit.setText(str(a)) + self.light_diffuse_linedit.setText(str(d)) + self.light_specularity_linedit.setText(str(s)) + + self.light_x_linedit.setText(str (self.lights[light_num][4])) + self.light_y_linedit.setText(str (self.lights[light_num][5])) + self.light_z_linedit.setText(str (self.lights[light_num][6])) + self.light_checkbox.setChecked(self.lights[light_num][7]) + + # Reconnect the slots to the light sliders. + self.connect(self.light_ambient_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.connect(self.light_diffuse_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + self.connect(self.light_specularity_slider, SIGNAL("valueChanged(int)"), self.change_lighting) + + self._setup_material_group() + return + + # _setup_material_group() should be folded back into _updatePage_Lighting(). Mark 051204. + def _setup_material_group(self, reset = False): + """ + Setup Material Specularity widgets to initial (default or defined) values on the Lighting page. + If reset = False, widgets are reset from the prefs db. + If reset = True, widgets are reset from their previous values. + """ + + if reset: + self.material_specularity = self.original_material_specularity + self.whiteness = self.original_whiteness + self.shininess = self.original_shininess + self.brightness = self.original_brightness + else: + self.material_specularity = self.original_material_specularity = \ + env.prefs[material_specular_highlights_prefs_key] + self.whiteness = self.original_whiteness = \ + int(env.prefs[material_specular_finish_prefs_key] * 100) + self.shininess = self.original_shininess = \ + int(env.prefs[material_specular_shininess_prefs_key]) + self.brightness = self.original_brightness= \ + int(env.prefs[material_specular_brightness_prefs_key] * 100) + + # Enable/disable specular highlights. + self.ms_on_checkbox.setChecked(self.material_specularity ) + + # For whiteness, the stored range is 0.0 (Plastic) to 1.0 (Metal). The Qt slider range + # is 0 - 100, so we multiply by 100 (above) to set the slider. Mark. 051129. + self.ms_finish_slider.setValue(self.whiteness) # generates signal + self.ms_finish_linedit.setText(str(self.whiteness * .01)) + + # For shininess, the range is 15 (low) to 60 (high). Mark. 051129. + self.ms_shininess_slider.setValue(self.shininess) # generates signal + self.ms_shininess_linedit.setText(str(self.shininess)) + + # For brightness, the range is 0.0 (low) to 1.0 (high). Mark. 051203. + self.ms_brightness_slider.setValue(self.brightness) # generates signal + self.ms_brightness_linedit.setText(str(self.brightness * .01)) + return + + def _setupPage_Plugins(self): + """ + Setup the "Plug-ins" page. + """ + # QuteMolX signal-slot connections. + self.connect(self.qutemol_checkbox, SIGNAL("toggled(bool)"), self.enable_qutemol) + self.connect( self.qutemol_path_lineedit, SIGNAL("textEdited (const QString&) "), self.set_qutemol_path) + self.connect(self.qutemol_choose_btn, SIGNAL("clicked()"), self.choose_qutemol_path) + + # NanoHive-1 signal-slot connections. + self.connect(self.nanohive_checkbox, SIGNAL("toggled(bool)"), self.enable_nanohive) + self.connect( self.nanohive_path_lineedit, SIGNAL("textEdited (const QString&) "), self.set_nanohive_path) + self.connect(self.nanohive_choose_btn, SIGNAL("clicked()"), self.choose_nanohive_path) + + # POV-Ray signal-slot connections. + self.connect(self.povray_checkbox, SIGNAL("toggled(bool)"), self.enable_povray) + self.connect( self.povray_path_lineedit, SIGNAL("textEdited (const QString&) "), self.set_povray_path) + self.connect(self.povray_choose_btn, SIGNAL("clicked()"), self.choose_povray_path) + + # POV dir signal-slot connections. + self.connect(self.povdir_checkbox, SIGNAL("toggled(bool)"), self.enable_povdir) + self.connect( self.povdir_lineedit, SIGNAL("textEdited (const QString&) "), self.povdir_lineedit_textChanged ) + self.connect(self.povdir_choose_btn, SIGNAL("clicked()"), self.set_povdir) + self.connect( self.povdir_lineedit, SIGNAL("returnPressed()"), self.povdir_lineedit_returnPressed ) + + # MegaPOV signal-slot connections. + self.connect(self.megapov_checkbox, SIGNAL("toggled(bool)"), self.enable_megapov) + self.connect( self.megapov_path_lineedit, SIGNAL("textEdited (const QString&) "), self.set_megapov_path ) + self.connect(self.megapov_choose_btn, SIGNAL("clicked()"), self.choose_megapov_path) + + # GAMESS signal-slot connections. + self.connect(self.gamess_checkbox, SIGNAL("toggled(bool)"), self.enable_gamess) + self.connect(self.gamess_path_lineedit, SIGNAL("textEdited(const QString&)"), self.set_gamess_path) + self.connect(self.gamess_choose_btn, SIGNAL("clicked()"), self.choose_gamess_path) + + # GROMACS signal-slot connections. + self.connect(self.gromacs_checkbox, SIGNAL("toggled(bool)"), self.enable_gromacs) + self.connect(self.gromacs_path_lineedit, SIGNAL("textEdited(const QString&)"), self.set_gromacs_path) + self.connect(self.gromacs_choose_btn, SIGNAL("clicked()"), self.choose_gromacs_path) + + # cpp signal-slot connections. + self.connect(self.cpp_checkbox, SIGNAL("toggled(bool)"), self.enable_cpp) + self.connect(self.cpp_path_lineedit, SIGNAL("textEdited(const QString&)"), self.set_cpp_path) + self.connect(self.cpp_choose_btn, SIGNAL("clicked()"), self.choose_cpp_path) + + # NanoVision-1 signal-slots connections. + self.connect(self.nv1_checkbox, SIGNAL("toggled(bool)"), self.enable_nv1) + self.connect(self.nv1_path_lineedit, SIGNAL("textEdited(const QString&)"), self.set_nv1_path) + self.connect(self.nv1_choose_btn, SIGNAL("clicked()"), self.choose_nv1_path) + return + + def _setupPage_Undo(self): + """ + Setup the "Undo" page. + """ + # Connections for "Undo" page. + self.connect(self.undo_stack_memory_limit_spinbox, SIGNAL("valueChanged(int)"), self.change_undo_stack_memory_limit) + self.connect(self.update_number_spinbox, SIGNAL("valueChanged(int)"), self.update_number_spinbox_valueChanged) + return + + def _setupPage_Window(self): + """ + Setup the "Window" page. + """ + # Connections for "Window" page. + self.connect(self.caption_fullpath_checkbox, SIGNAL("stateChanged(int)"), self.set_caption_fullpath) + self.connect(self.current_height_spinbox, SIGNAL("valueChanged(int)"), self.change_window_size) + self.connect(self.current_width_spinbox, SIGNAL("valueChanged(int)"), self.change_window_size) + self.connect(self.restore_saved_size_btn, SIGNAL("clicked()"), self.restore_saved_size) + self.connect(self.save_current_btn, SIGNAL("clicked()"), self.save_current_win_pos_and_size) + + # Connections for font widgets (in "Windows" page). Mark 2007-05-27. + self.connect(self.selectedFontGroupBox, SIGNAL("toggled(bool)"), self.change_use_selected_font) + self.connect(self.fontComboBox, SIGNAL("currentFontChanged (const QFont &)"), self.change_font) + self.connect(self.fontSizeSpinBox, SIGNAL("valueChanged(int)"), self.change_fontsize) + self.connect(self.makeDefaultFontPushButton, SIGNAL("clicked()"), self.change_selected_font_to_default_font) + + # Update the max value of the Current Size spinboxes + screen = screen_pos_size() + ((x0, y0), (w, h)) = screen + self.current_width_spinbox.setRange(1, w) + self.current_height_spinbox.setRange(1, h) + + # Set value of the Current Size Spinboxes + pos, size = _get_window_pos_size(self.w) + self.current_width_spinbox.setValue(size[0]) + self.current_height_spinbox.setValue(size[1]) + + # Set string of Saved Size Lineedits + from utilities.prefs_constants import mainwindow_geometry_prefs_key_prefix + keyprefix = mainwindow_geometry_prefs_key_prefix + pos, size = _get_prefs_for_window_pos_size( self.w, keyprefix) + self.update_saved_size(size[0], size[1]) + + connect_checkbox_with_boolean_pref( self.remember_win_pos_and_size_checkbox, rememberWinPosSize_prefs_key ) + + self.caption_prefix_linedit.setText(env.prefs[captionPrefix_prefs_key]) + self.caption_suffix_linedit.setText(env.prefs[captionSuffix_prefs_key]) + ##e someday we should make a 2-way connector function for LineEdits too + connect_checkbox_with_boolean_pref( self.caption_fullpath_checkbox, captionFullPath_prefs_key ) + + # Update Display Font widgets + self.set_font_widgets(setFontFromPrefs = True) # Also sets the current display font. + + # Connect all QLineEdit widgets last. Otherwise they'll generate signals. + self.connect( self.caption_prefix_linedit, SIGNAL("textChanged ( const QString & ) "), self.caption_prefix_linedit_textChanged ) + self.connect( self.caption_prefix_linedit, SIGNAL("returnPressed()"), self.caption_prefix_linedit_returnPressed ) + self.connect( self.caption_suffix_linedit, SIGNAL("textChanged ( const QString & ) "), self.caption_suffix_linedit_textChanged ) + self.connect( self.caption_suffix_linedit, SIGNAL("returnPressed()"), self.caption_suffix_linedit_returnPressed ) + return + + def _setupPage_Reports(self): + """ + Setup the "Reports" page. + """ + connect_checkbox_with_boolean_pref( self.msg_serial_number_checkbox, historyMsgSerialNumber_prefs_key ) + connect_checkbox_with_boolean_pref( self.msg_timestamp_checkbox, historyMsgTimestamp_prefs_key ) + return + + def _setupPage_Tooltips(self): + """ + Setup the "Tooltips" page. + """ + # Connections for "Tooltips" page. + self.connect(self.dynamicToolTipAtomDistancePrecision_spinbox, SIGNAL("valueChanged(int)"), self.change_dynamicToolTipAtomDistancePrecision) + self.connect(self.dynamicToolTipBendAnglePrecision_spinbox, SIGNAL("valueChanged(int)"), self.change_dynamicToolTipBendAnglePrecision) + self.connect(self.mouseSpeedDuringRotation_slider, SIGNAL("valueChanged(int)"), self.change_mouseSpeedDuringRotation) + self.connect(self.resetMouseSpeedDuringRotation_btn, SIGNAL("clicked()"), self.reset_mouseSpeedDuringRotation) + + #Atom related Dynamic tooltip preferences + connect_checkbox_with_boolean_pref(self.dynamicToolTipAtomChunkInfo_checkbox, dynamicToolTipAtomChunkInfo_prefs_key) + connect_checkbox_with_boolean_pref(self.dynamicToolTipAtomMass_checkbox, dynamicToolTipAtomMass_prefs_key) + connect_checkbox_with_boolean_pref(self.dynamicToolTipAtomPosition_checkbox, dynamicToolTipAtomPosition_prefs_key) + connect_checkbox_with_boolean_pref(self.dynamicToolTipAtomDistanceDeltas_checkbox, dynamicToolTipAtomDistanceDeltas_prefs_key) + connect_checkbox_with_boolean_pref( + self.includeVdwRadiiInAtomDistanceInfo, + dynamicToolTipVdwRadiiInAtomDistance_prefs_key) + + #Bond related dynamic tool tip preferences + connect_checkbox_with_boolean_pref(self.dynamicToolTipBondLength_checkbox, dynamicToolTipBondLength_prefs_key) + connect_checkbox_with_boolean_pref(self.dynamicToolTipBondChunkInfo_checkbox, dynamicToolTipBondChunkInfo_prefs_key) + + self.dynamicToolTipAtomDistancePrecision_spinbox.setValue(env.prefs[ dynamicToolTipAtomDistancePrecision_prefs_key ] ) + self.dynamicToolTipBendAnglePrecision_spinbox.setValue(env.prefs[ dynamicToolTipBendAnglePrecision_prefs_key ] ) + return + + def _hideOrShowWidgets(self): + """ + Permanently hides some widgets in the Preferences dialog. + This provides an easy and convenient way of hiding widgets that have + been added but not fully implemented. It is also possible to + show hidden widgets that have a debug pref set to enable them. + """ + widgetList = [self.nanohive_lbl, + self.nanohive_checkbox, + self.nanohive_path_lineedit, + self.nanohive_choose_btn, + self.gamess_checkbox, + self.gamess_lbl, + self.gamess_path_lineedit, + self.gamess_choose_btn] + + for widget in widgetList: + if debug_pref("Show GAMESS and ESP Image UI options", + Choice_boolean_False, + prefs_key = True): + widget.show() + else: + widget.hide() + return + + # caption_prefix slot methods [#e should probably refile these with other slot methods?] + def caption_prefix_linedit_textChanged(self, qstring): + ## print "caption_prefix_linedit_textChanged: %r" % str(qstring) # this works + self.any_caption_text_changed() + + def caption_prefix_linedit_returnPressed(self): + ## print "caption_prefix_linedit_returnPressed" + # This works, but the Return press also closes the dialog! + # [later, bruce 060710 -- probably due to a Qt Designer property on the button, fixable by .setAutoDefault(0) ###@@@] + # (Both for the lineedit whose signal we're catching, and the one whose signal catching is initially nim.) + # Certainly that makes it a good idea to catch it, though it'd be better to somehow "capture" it + # so it would not close the dialog. + self.any_caption_text_changed() + + # caption_suffix slot methods can be equivalent to the ones for caption_prefix + caption_suffix_linedit_textChanged = caption_prefix_linedit_textChanged + caption_suffix_linedit_returnPressed = caption_prefix_linedit_returnPressed + + ###### Private methods ############################### + + def _loadBackgroundColorItems(self): + """ + Load the background color combobox with all the color options and sets + the current background color + """ + backgroundIndexes = [BG_BLUE_SKY, BG_EVENING_SKY, + BG_BLACK, BG_WHITE, BG_GRAY, BG_CUSTOM] + + backgroundNames = ["Blue Sky (default)", "Evening Sky", + "Black", "White", "Gray", "Custom..."] + + backgroundIcons = ["Background_BlueSky", "Background_EveningSky", + "Background_Black", "Background_White", + "Background_Gray", "Background_Custom"] + + backgroundIconsDict = dict(zip(backgroundNames, backgroundIcons)) + backgroundNamesDict = dict(zip(backgroundIndexes, backgroundNames)) + + for backgroundName in backgroundNames: + + basename = backgroundIconsDict[backgroundName] + ".png" + iconPath = os.path.join("ui/dialogs/Preferences/", + basename) + self.backgroundColorComboBox.addItem(geticon(iconPath), + backgroundName) + + self._updateBackgroundColorComboBoxIndex() + return + + def _updateBackgroundColorComboBoxIndex(self): + """ + Set current index in the background color combobox. + """ + if self.glpane.backgroundGradient: + self.backgroundColorComboBox.setCurrentIndex(self.glpane.backgroundGradient - 1) + else: + if (env.prefs[ backgroundColor_prefs_key ] == black): + self.backgroundColorComboBox.setCurrentIndex(BG_BLACK) + elif (env.prefs[ backgroundColor_prefs_key ] == white): + self.backgroundColorComboBox.setCurrentIndex(BG_WHITE) + elif (env.prefs[ backgroundColor_prefs_key ] == gray): + self.backgroundColorComboBox.setCurrentIndex(BG_GRAY) + else: + self.backgroundColorComboBox.setCurrentIndex(BG_CUSTOM) + return + + def _loadHoverHighlightingColorStylesItems(self): + """ + Load the hover highlighting style combobox with items. + """ + for hoverHighlightingStyle in HHS_OPTIONS: + self.hoverHighlightingStyleComboBox.addItem(hoverHighlightingStyle) + return + + def _loadSelectionColorStylesItems(self): + """ + Load the selection color style combobox with items. + """ + for selectionStyle in SS_OPTIONS: + self.selectionStyleComboBox.addItem(selectionStyle) + return + + # = Methods for the "Model View" page. + + def _setupGlobalDisplayStyleAtStartup_ComboBox(self): + """ + Loads the global display style combobox with all the display options + and sets the current display style + """ + gdsIconDist = dict(zip(GDS_NAMES, GDS_ICONS)) + + for gdsName in GDS_NAMES: # gds = global display style + basename = gdsIconDist[gdsName] + ".png" + iconPath = os.path.join("ui/actions/View/Display/", + basename) + self.globalDisplayStyleStartupComboBox.addItem(geticon(iconPath), gdsName) + + display_style = env.prefs[ startupGlobalDisplayStyle_prefs_key ] + self.globalDisplayStyleStartupComboBox.setCurrentIndex(GDS_INDEXES.index(display_style)) + + self.connect(self.globalDisplayStyleStartupComboBox, SIGNAL("activated(int)"), self.setGlobalDisplayStyleAtStartUp) + + def setGlobalDisplayStyleAtStartUp(self, gdsIndexUnused): + """ + Slot method for the "Global Display Style at Start-up" combo box in + the Preferences dialog (and not the combobox in the status bar of + the main window). + + @param gdsIndexUnused: The current index of the combobox. It is unused. + @type gdsIndexUnused: int + + @note: This changes the global display style of the glpane. + """ + + # Get the GDS index from the current combox box index. + display_style = GDS_INDEXES[self.globalDisplayStyleStartupComboBox.currentIndex()] + + if display_style == env.prefs[startupGlobalDisplayStyle_prefs_key]: + return + + # set the pref + env.prefs[startupGlobalDisplayStyle_prefs_key] = display_style + + # Set the current display style in the glpane. + # (This will be noticed later by chunk.draw of affected chunks.) + self.glpane.setDisplay(display_style, True) + self.glpane.gl_update() + return + + #e this is really a slot method -- should refile it + def any_caption_text_changed(self): + # Update Caption prefs + # The prefix and suffix updates should be done via slots [bruce 050811 doing that now] and include a validator. + # Will do later. Mark 050716. + + # (in theory, only one of these has changed, and even though we resave prefs for both, + # only the changed one will trigger any formulas watching the prefs value for changes. [bruce 050811]) + #bruce 070503 Qt4 bugfix (prefix and suffix): str().strip() rather than QString().stripWhiteSpace() + # (but, like the old code, still only allows one space char on the side that can have one, + # in order to most easily require at least one on that side; if mot for that, we'd use rstrip and lstrip) + prefix = str(self.caption_prefix_linedit.text()) + prefix = prefix.strip() + if prefix: + prefix = prefix + ' ' + env.prefs[captionPrefix_prefs_key] = prefix + + suffix = str(self.caption_suffix_linedit.text()) + suffix = suffix.strip() + if suffix: + suffix = ' ' + suffix + env.prefs[captionSuffix_prefs_key] = suffix + return + + ###### End of private methods. ######################## + + ########## Slot methods for "General" page widgets ################ + + def display_compass(self, val): + """ + Slot for the Display Compass checkbox, which enables/disables the + Display Compass Labels checkbox. + """ + self.display_compass_labels_checkbox.setEnabled(val) + + def set_compass_position(self, val): + """ + Set position of compass. + + @param val: The position, where: + - 0 = upper right + - 1 = upper left + - 2 = lower left + - 3 = lower right + @type val: int + """ + # set the pref + env.prefs[compassPosition_prefs_key] = val + # update the glpane + self.glpane.compassPosition = val + self.glpane.gl_update() + + def set_default_projection_OBSOLETE(self, projection): + """ + Set the projection. + + @param projection: The projection, where: + - 0 = Perspective + - 1 = Orthographic + @type projection: int + + @deprecated: I'm removing this from the Preferences dialog. + The defaultProjection_prefs_key will be set instead by the + main window UI (View > Display menu). -Mark 2008-05-20 + """ + # set the pref + env.prefs[defaultProjection_prefs_key] = projection + self.glpane.setViewProjection(projection) + + def change_displayOriginAsSmallAxis(self, value): + """" + This sets the preference to view origin as small axis so that it is + sticky across sessions. + """ + #set the preference + env.prefs[displayOriginAsSmallAxis_prefs_key] = value + #niand060920 This condition might not be necessary as we are disabling the btn_grp + #for the oridin axis radiobuttons + if env.prefs[displayOriginAxis_prefs_key]: + self.glpane.gl_update() + + def change_high_quality_graphics(self, state): #mark 060315. + """ + Enable/disable high quality graphics during view animations. + + @attention: This has never been implemented. The checkbox has been + removed from the UI file for A9. Mark 060815. + """ + # Let the user know this is NIY. Addresses bug 1249 for A7. mark 060314. + msg = "High Quality Graphics is not implemented yet." + from utilities.Log import orangemsg + env.history.message(orangemsg(msg)) + + def change_view_animation_speed(self): + """ + Sets the view animation speed between .25 (fast) and 3.0 (slow) seconds. + """ + # To change the range, edit the maxValue and minValue attr for the slider. + # For example, if you want the fastest animation time to be .1 seconds, + # change maxValue to -10. If you want the slowest time to be 4.0 seconds, + # change minValue to -400. mark 060124. + env.prefs[animateMaximumTime_prefs_key] = \ + self.animation_speed_slider.value() / -100.0 + + def change_mouseSpeedDuringRotation(self, val): + """ + Slot that sets the factor controlling rotation speed during middle + mouse drag 0.3(slow) and 1(fast). + """ + env.prefs[mouseSpeedDuringRotation_prefs_key] = \ + self.mouseSpeedDuringRotation_slider.value() / 100.0 + + val = self.mouseSpeedDuringRotation_slider.value() + if val == 60: + self.resetMouseSpeedDuringRotation_btn.setEnabled(0) + else: + self.resetMouseSpeedDuringRotation_btn.setEnabled(1) + + def reset_mouseSpeedDuringRotation(self): + """ + Slot called when pressing the Mouse speed during rotation reset button. + Restores the default value of the mouse speed. + """ + env.prefs.restore_defaults([mouseSpeedDuringRotation_prefs_key]) + self.mouseSpeedDuringRotation_slider.setValue(int (env.prefs[mouseSpeedDuringRotation_prefs_key] * 100.0)) + self.resetMouseSpeedDuringRotation_btn.setEnabled(0) + + def changeEndRms(self, endRms): + """ + Slot for EndRMS. + """ + if endRms: + env.prefs[Adjust_endRMS_prefs_key] = endRms + else: + env.prefs[Adjust_endRMS_prefs_key] = -1.0 + + def changeEndMax(self, endMax): + """ + Slot for EndMax. + """ + if endMax: + env.prefs[Adjust_endMax_prefs_key] = endMax + else: + env.prefs[Adjust_endMax_prefs_key] = -1.0 + + def changeCutoverRms(self, cutoverRms): + """ + Slot for CutoverRMS. + """ + if cutoverRms: + env.prefs[Adjust_cutoverRMS_prefs_key] = cutoverRms + else: + env.prefs[Adjust_cutoverRMS_prefs_key] = -1.0 + + def changeCutoverMax(self, cutoverMax): + """ + Slot for CutoverMax. + """ + if cutoverRms: + env.prefs[Adjust_cutoverMax_prefs_key] = cutoverMax + else: + env.prefs[Adjust_cutoverMax_prefs_key] = -1.0 + + def set_adjust_minimization_engine(self, engine): + """ + Combobox action, sets Adjust_minimizationEngine preference + """ + env.prefs[Adjust_minimizationEngine_prefs_key] = engine + + def setPrefsLogoDownloadPermissions(self, permission): + """ + Set the sponsor logos download permissions in the persistent user + preferences database. + + @param permission: The permission, where: + 0 = Always ask before downloading + 1 = Never ask before downloading + 2 = Never download + @type permission: int + """ + if permission == 1: + env.prefs[sponsor_permanent_permission_prefs_key] = True + env.prefs[sponsor_download_permission_prefs_key] = True + + elif permission == 2: + env.prefs[sponsor_permanent_permission_prefs_key] = True + env.prefs[sponsor_download_permission_prefs_key] = False + + else: + env.prefs[sponsor_permanent_permission_prefs_key] = False + + # = BG color slot methods + + def changeBackgroundColor(self, idx): + """ + Slot method for the background color combobox. + + @note: the pref_keys are set in setBackgroundGradient() + and setBackgroundColor(). + """ + #print "changeBackgroundColor(): Slot method called. Idx =", idx + + if idx == BG_BLUE_SKY: + self.glpane.setBackgroundGradient(idx + 1) + elif idx == BG_EVENING_SKY: + self.glpane.setBackgroundGradient(idx + 1) + elif idx == BG_BLACK: + self.glpane.setBackgroundColor(black) + elif idx == BG_WHITE: + self.glpane.setBackgroundColor(white) + elif idx == BG_GRAY: + self.glpane.setBackgroundColor(gray) + elif idx == BG_CUSTOM: + #change background color to Custom Color + self.chooseCustomBackgroundColor() + else: + msg = "Unknown color idx=", idx + print_compact_traceback(msg) + + self.glpane.gl_update() # Needed! + return + + def chooseCustomBackgroundColor(self): + """ + Choose a custom background color. + """ + c = QColorDialog.getColor(RGBf_to_QColor(self.glpane.getBackgroundColor()), self) + if c.isValid(): + self.glpane.setBackgroundColor(QColor_to_RGBf(c)) + else: + # User cancelled. Reset the combobox to the previous item. + self._updateBackgroundColorComboBoxIndex() + + def _change_hhStyle(self, idx): + """ + Slot method for Hover Highlighting combobox. + Change the (3D) hover highlighting style. + """ + env.prefs[hoverHighlightingColorStyle_prefs_key] = HHS_INDEXES[idx] + + def _change_hhColor(self): + """ + Change the 3D hover highlighting color. + """ + self.usual_change_color(hoverHighlightingColor_prefs_key) + + def _change_selectionStyle(self, idx): + """ + Slot method for Selection Style combobox used to + Change the (3D) selection color style. + """ + env.prefs[selectionColorStyle_prefs_key] = SS_INDEXES[idx] + + def _change_selectionColor(self): + """ + Change the 3D selection color. + """ + self.usual_change_color(selectionColor_prefs_key) + + def set_mouse_wheel_direction(self, direction): + """ + Slot for Mouse Wheel Direction combo box. + + @param direction: The mouse wheel direction for zooming in. + 0 = Pull (default), 1 = Push + @type direction: int + """ + env.prefs[mouseWheelDirection_prefs_key] = direction + self.w.updateMouseWheelSettings() + return + + def set_mouse_wheel_zoom_in_position(self, position): + """ + Slot for Mouse Wheel "Zoom In Position" combo box. + + @param position: The mouse wheel zoom in position, where: + 0 = Cursor position (default) + 1 = Graphics area center + @type position: int + """ + env.prefs[zoomInAboutScreenCenter_prefs_key] = position + self.w.updateMouseWheelSettings() + return + + def set_mouse_wheel_zoom_out_position(self, position): + """ + Slot for Mouse Wheel "Zoom Out Position" combo box. + + @param position: The mouse wheel zoom out position, where: + 0 = Cursor position (default) + 1 = Graphics area center + @type position: int + """ + env.prefs[zoomOutAboutScreenCenter_prefs_key] = position + self.w.updateMouseWheelSettings() + return + + def set_mouse_wheel_timeout_interval(self, interval): + """ + Slot method for the I{Hover highlighting timeout interval} spinbox. + @param interval: The timeout interval in seconds. + @type interval: double + """ + env.prefs[mouseWheelTimeoutInterval_pref_key] = interval + + # = Ruler slot methods + + def set_ruler_display(self, display): + """ + Set display of individual rulers. + + @param display: The ruler display, where: + - 0 = display both rulers + - 1 = display vertical ruler only + - 2 = display horizontal ruler only + + @type display: int + """ + env.prefs[displayVertRuler_prefs_key] = True + env.prefs[displayHorzRuler_prefs_key] = True + + if display == 1: + env.prefs[displayHorzRuler_prefs_key] = False + + elif display == 2: + env.prefs[displayVertRuler_prefs_key] = False + + # update the glpane + self.glpane.gl_update() + + def set_ruler_position(self, position): + """ + Set position of ruler(s). + + @param position: The ruler position, where: + - 0 = lower left + - 1 = upper left + - 2 = lower right + - 3 = upper right + + @type position: int + """ + # set the pref + env.prefs[rulerPosition_prefs_key] = position + + # update the glpane + self.glpane.gl_update() + + def change_ruler_color(self): + """ + Change the ruler color. + """ + self.usual_change_color( rulerColor_prefs_key) + + def change_ruler_opacity(self, opacity): + """ + Change the ruler opacity. + """ + env.prefs[rulerOpacity_prefs_key] = opacity * 0.01 + + ########## End of slot methods for "General" page widgets ########### + + ########## Slot methods for "Atoms" page widgets ################ + + def change_element_colors(self): + """ + Display the Element Color Settings Dialog. + """ + # Since the prefs dialog is modal, the element color settings dialog must be modal. + self.w.showElementColorSettings(self) + + def usual_change_color(self, prefs_key, caption = "choose"): #bruce 050805 + from widgets.prefs_widgets import colorpref_edit_dialog + colorpref_edit_dialog( self, prefs_key, caption = caption) + + def change_atom_hilite_color(self): + """ + Change the atom highlight color. + """ + self.usual_change_color( atomHighlightColor_prefs_key) + + def change_bondpoint_hilite_color(self): + """ + Change the bondpoint highlight color. + """ + self.usual_change_color( bondpointHighlightColor_prefs_key) + + def change_hotspot_color(self): #bruce 050808 implement new slot which Mark recently added to .ui file + """ + Change the free valence hotspot color. + """ + #e fyi, we might rename hotspot to something like "bonding point" someday... + self.usual_change_color( bondpointHotspotColor_prefs_key) + + def reset_atom_colors(self): + #bruce 050805 let's try it like this: + env.prefs.restore_defaults([ #e this list should be defined in a more central place. + atomHighlightColor_prefs_key, + bondpointHighlightColor_prefs_key, + bondpointHotspotColor_prefs_key + ]) + + def change_level_of_detail(self, level_of_detail_item): #bruce 060215 revised this + """ + Change the level of detail, where <level_of_detail_item> is a value + between 0 and 3 where: + - 0 = low + - 1 = medium + - 2 = high + - 3 = variable (based on number of atoms in the part) + + @note: the prefs db value for 'variable' is -1, to allow for higher LOD + levels in the future. + """ + lod = level_of_detail_item + if level_of_detail_item == 3: + lod = -1 + env.prefs[levelOfDetail_prefs_key] = lod + self.glpane.gl_update() + # the redraw this causes will (as of tonight) always recompute the correct drawLevel (in Part._recompute_drawLevel), + # and chunks will invalidate their display lists as needed to accomodate the change. [bruce 060215] + return + + def change_ballstick_atom_radius(self, val): + """ + Change the CPK (Ball and Stick) atom radius by % value <val>. + """ + #bruce 060607 renamed change_cpk_atom_radius -> change_ballstick_atom_radius in this file and the .py/.ui dialog files. + env.prefs[diBALL_AtomRadius_prefs_key] = val * .01 + self.glpane.gl_update() #k this gl_update is probably not needed and sometimes a slowdown [bruce 060607] + + def change_cpk_scale_factor(self, val): + """ + Slot called when moving the slider. + Change the % value displayed in the LineEdit widget for CPK Scale Factor. + """ + sf = val * .005 + self.cpk_scale_factor_linedit.setText(str(sf)) + + def save_cpk_scale_factor(self): + """ + Slot called when releasing the slider. + Saves the CPK (VdW) scale factor. + """ + env.prefs[cpkScaleFactor_prefs_key] = self.cpk_scale_factor_slider.value() * .005 + self.glpane.gl_update() + self.reset_cpk_scale_factor_btn.setEnabled(1) + + def reset_cpk_scale_factor(self): + """ + Slot called when pressing the CPK Scale Factor reset button. + Restores the default value of the CPK Scale Factor. + """ + env.prefs.restore_defaults([cpkScaleFactor_prefs_key]) + self.cpk_scale_factor_slider.setValue(int (env.prefs[cpkScaleFactor_prefs_key] * 200.0)) + # generates signal (good), which calls slot save_cpk_scale_factor(). + self.reset_cpk_scale_factor_btn.setEnabled(0) + + ########## End of slot methods for "Atoms" page widgets ########### + + ########## Slot methods for "Bonds" page widgets ################ + + def change_bond_hilite_color(self): + """ + Change the bond highlight color. + """ + self.usual_change_color( bondHighlightColor_prefs_key) + + def change_bond_stretch_color(self): + """ + Change the bond stretch color. + """ + self.usual_change_color( bondStretchColor_prefs_key) + + def change_bond_vane_color(self): + """ + Change the bond vane color for pi orbitals. + """ + self.usual_change_color( bondVaneColor_prefs_key) + + def change_ballstick_bondcolor(self): #bruce 060607 renamed this in this file and .ui/.py dialog files + """ + Change the bond cylinder color used in Ball & Stick display mode. + """ + self.usual_change_color( diBALL_bondcolor_prefs_key) + + def reset_bond_colors(self): + #bruce 050805 let's try it like this: + env.prefs.restore_defaults([ #e this list should be defined in a more central place. + bondHighlightColor_prefs_key, + bondStretchColor_prefs_key, + bondVaneColor_prefs_key, + diBALL_bondcolor_prefs_key, + ]) + + def change_high_order_bond_display(self, val): #bruce 050806 filled this in + """ + Slot for the button group that sets the high order bond display. + """ + # ('pi_bond_style', ['multicyl','vane','ribbon'], pibondStyle_prefs_key, 'multicyl' ), + try: + symbol = {0:'multicyl', 1:'vane', 2:'ribbon'}[val] + # note: this decoding must use the same (arbitrary) int->symbol mapping as the button group does. + # It's just a coincidence that the order is the same as in the prefs-type listed above. + except KeyError: #bruce 060627 added specific exception class (untested) + print "bug in change_high_order_bond_display: unknown val ignored:", val + else: + env.prefs[ pibondStyle_prefs_key ] = symbol + return + + def change_bond_labels(self, val): #bruce 050806 filled this in + """ + Slot for the checkbox that turns Pi Bond Letters on/off. + """ + # (BTW, these are not "labels" -- someday we might add user-settable longer bond labels, + # and the term "labels" should refer to that. These are just letters indicating the bond type. [bruce 050806]) + env.prefs[ pibondLetters_prefs_key ] = not not val + # See also the other use of pibondLetters_prefs_key, where the checkbox is kept current when first shown. + return + + def change_show_valence_errors(self, val): #bruce 050806 made this up + """ + Slot for the checkbox that turns Show Valence Errors on/off. + """ + env.prefs[ showValenceErrors_prefs_key ] = not not val +## if debug_flags.atom_debug: +## print showValenceErrors_prefs_key, env.prefs[ showValenceErrors_prefs_key ] #k prints true, from our initial setup of page + return + + def change_bond_line_thickness(self, pixel_thickness): #mark 050831 + """ + Set the default bond line thickness for Lines display. + pixel_thickness can be 1, 2 or 3. + """ + env.prefs[linesDisplayModeThickness_prefs_key] = pixel_thickness + self.update_bond_line_thickness_suffix() + + def update_bond_line_thickness_suffix(self): + """ + Updates the suffix for the bond line thickness spinbox. + """ + if env.prefs[linesDisplayModeThickness_prefs_key] == 1: + self.bond_line_thickness_spinbox.setSuffix(' pixel') + else: + self.bond_line_thickness_spinbox.setSuffix(' pixels') + + def change_ballstick_cylinder_radius(self, val): + """ + Change the CPK (Ball and Stick) cylinder radius by % value <val>. + """ + #bruce 060607 renamed change_cpk_cylinder_radius -> change_ballstick_cylinder_radius (in this file and .ui/.py dialog files) + env.prefs[diBALL_BondCylinderRadius_prefs_key] = val *.01 + + # Bruce wrote: + #k gl_update is probably not needed and in some cases is a slowdown [bruce 060607 comment] + # so I tested it and confirmed that gl_update() isn't needed. + # Mark 2008-01-31 + #self.glpane.gl_update() + + ########## End of slot methods for "Bonds" page widgets ########### + + ########## Slot methods for "DNA" page widgets ################ + + def save_dnaBasesPerTurn(self, bases_per_turn): + """ + Slot for I{Bases per turn} spinbox. + @param bases_per_turn: The number of bases per turn. + @type bases_per_turn: double + """ + env.prefs[bdnaBasesPerTurn_prefs_key] = bases_per_turn + + def save_dnaRise(self, rise): + """ + Slot for B{Rise} spinbox. + @param rise: The rise. + @type rise: double + """ + env.prefs[bdnaRise_prefs_key] = rise + + def dnaRestoreFactoryDefaults(self): + """ + Slot for I{Restore Factory Defaults} button. + """ + env.prefs.restore_defaults([ + bdnaBasesPerTurn_prefs_key, + bdnaRise_prefs_key, + dnaDefaultSegmentColor_prefs_key + ]) + + # These generate signals (good), which calls slots + # save_dnaBasesPerTurn() and save_dnaRise() + self.dnaBasesPerTurnDoubleSpinBox.setValue(env.prefs[bdnaBasesPerTurn_prefs_key]) + self.dnaRiseDoubleSpinBox.setValue(env.prefs[bdnaRise_prefs_key]) + + def changeDnaDefaultSegmentColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA default segment color. + """ + self.usual_change_color( dnaDefaultSegmentColor_prefs_key ) + + def save_dnaStrutScale(self, scale_factor): + """ + Slot for B{Strut Scale Factor} spinbox. + @param scale_factor: The struct scale factor. + @type scale_factor: int + """ + env.prefs[dnaStrutScaleFactor_prefs_key] = scale_factor * .01 + + def update_dnaStrandThreePrimeArrowheadCustomColorWidgets(self, enabled_flag): + """ + Slot for the "Custom color" checkbox,for three prime arrowhead + used to disable/enable thecolor related widgets (frame and choose button). + """ + self.strandThreePrimeArrowheadsCustomColorFrame.setEnabled(enabled_flag) + self.strandThreePrimeArrowheadsCustomColorPushButton.setEnabled(enabled_flag) + return + + def update_dnaStrandFivePrimeArrowheadCustomColorWidgets(self, enabled_flag): + """ + Slot for the "Custom color" checkbox, used to disable/enable the + color related widgets (frame and choose button). + """ + self.strandFivePrimeArrowheadsCustomColorFrame.setEnabled(enabled_flag) + self.strandFivePrimeArrowheadsCustomColorPushButton.setEnabled(enabled_flag) + return + + def change_dnaStrandThreePrimeArrowheadCustomColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA strand three prime arrowhead color. + """ + self.usual_change_color( dnaStrandThreePrimeArrowheadsCustomColor_prefs_key ) + + def change_dnaStrandFivePrimeArrowheadCustomColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA strand five prime arrowhead color. + """ + self.usual_change_color( dnaStrandFivePrimeArrowheadsCustomColor_prefs_key ) + + def save_dnaMinMinorGrooveAngles(self, minAngle): + """ + Slot for minimum minor groove angle spinboxes. + + @param minAngle: The minimum angle. + @type minAngle: int + """ + env.prefs[dnaMinMinorGrooveAngle_prefs_key] = minAngle + + def save_dnaMaxMinorGrooveAngles(self, maxAngle): + """ + Slot for maximum minor groove angle spinboxes. + + @param maxAngle: The maximum angle. + @type maxAngle: int + """ + env.prefs[dnaMaxMinorGrooveAngle_prefs_key] = maxAngle + + def change_dnaMinorGrooveErrorIndicatorColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA minor groove error indicator color. + """ + self.usual_change_color( dnaMinorGrooveErrorIndicatorColor_prefs_key ) + + def _restore_dnaMinorGrooveFactoryDefaults(self): + """ + Slot for Minor Groove Error Indicator I{Restore Factory Defaults} + button. + """ + env.prefs.restore_defaults([ + dnaMinMinorGrooveAngle_prefs_key, + dnaMaxMinorGrooveAngle_prefs_key, + dnaMinorGrooveErrorIndicatorColor_prefs_key, + ]) + + # These generate signals! + self.dnaMinGrooveAngleSpinBox.setValue( + env.prefs[dnaMinMinorGrooveAngle_prefs_key]) + self.dnaMaxGrooveAngleSpinBox.setValue( + env.prefs[dnaMaxMinorGrooveAngle_prefs_key]) + + # DNA display style piotr 080310 + def change_dnaStyleStrandsColor(self, value): + """ + Changes DNA Style strands color. + + @param color: The color mode: + - 0 = color same as chunk + - 1 = base oder + - 2 = strand order + @type color: int + """ + env.prefs[dnaStyleStrandsColor_prefs_key] = value + + def change_dnaStyleStrutsColor(self, color): + """ + Changes DNA Style struts color. + + @param color: The color mode: + - 0 = color same as chunk + - 1 = strand order + - 2 = base type + + @type color: int + """ + env.prefs[dnaStyleStrutsColor_prefs_key] = color + + def change_dnaStyleAxisColor(self, color): + """ + Changes DNA Style axis color. + + @param color: The color mode: + - 0 = color same as chunk + - 0 = color same as chunk + - 1 = base oder + - 2 = discrete bse order + - 3 = base type + - 4 = strand order + + @type color: int + """ + env.prefs[dnaStyleAxisColor_prefs_key] = color + + def change_dnaStyleBasesColor(self, color): + """ + Changes DNA Style bases color. + + @param color: The color mode: + - 0 = color same as chunk + - 1 = base order + - 2 = strand order + - 3 = base type + + @type color: int + """ + env.prefs[dnaStyleBasesColor_prefs_key] = color + + def change_dnaStyleStrandsShape(self, shape): + """ + Changes DNA Style strands shape. + + @param shape: The shape mode: + - 0 = none (hidden) + - 1 = cylinders + - 2 = tube + + @type shape: int + """ + env.prefs[dnaStyleStrandsShape_prefs_key] = shape + + def change_dnaStyleStrutsShape(self, shape): + """ + Changes DNA Style strands shape. + + @param shape: The shape mode: + - 0 = none (hidden) + - 1 = base-axis-base + - 2 = straight cylinders + + @type shape: int + """ + env.prefs[dnaStyleStrutsShape_prefs_key] = shape + + def change_dnaStyleAxisShape(self, shape): + """ + Changes DNA Style strands shape. + + @param shape: The shape mode: + - 0 = none (hidden) + - 1 = wide tube + - 2 = narrow tube + + @type shape: int + """ + env.prefs[dnaStyleAxisShape_prefs_key] = shape + + def change_dnaStyleBasesShape(self, shape): + """ + Changes DNA Style strands shape. + + @param shape: The shape mode: + - 0 = none (hidden) + - 1 = spheres + - 2 = cartoon-like + + @type shape: int + """ + env.prefs[dnaStyleBasesShape_prefs_key] = shape + + def change_dnaStyleStrandsScale(self, scale_factor): + """ + @param scale_factor: The strands scale factor. + @type scale_factor: float + """ + env.prefs[dnaStyleStrandsScale_prefs_key] = scale_factor + self.update_dnaStyleStrandsScale() + + def update_dnaStyleStrandsScale(self): + """ + Updates the DNA Style Strands Scale spin box. + """ + # Set strands scale. + self.dnaStyleStrandsScaleSpinBox.setValue( + float(env.prefs[dnaStyleStrandsScale_prefs_key])) + + def change_dnaStyleStrutsScale(self, scale_factor): + """ + @param scale_factor: The struts scale factor. + @type scale_factor: float + """ + env.prefs[dnaStyleStrutsScale_prefs_key] = scale_factor + + def change_dnaStyleAxisScale(self, scale_factor): + """ + @param scale_factor: The axis scale factor. + @type scale_factor: float + """ + env.prefs[dnaStyleAxisScale_prefs_key] = scale_factor + + def change_dnaStyleBasesScale(self, scale_factor): + """ + @param scale_factor: The bases scale factor. + @type scale_factor: float + """ + env.prefs[dnaStyleBasesScale_prefs_key] = scale_factor + self.update_dnaStyleBasesScale() + + def update_dnaStyleBasesScale(self): + """ + Updates the DNA Style bases scale spin box. + """ + # Set axis scale. + self.dnaStyleBasesScaleSpinBox.setValue( + float(env.prefs[dnaStyleBasesScale_prefs_key])) + + def change_dnaBaseIndicatorsAngle(self, angle): + """ + @param angle: The angular threshold for DNA base indicators. + @type angle: double + """ + print "angle (set) = ", angle + env.prefs[dnaBaseIndicatorsAngle_prefs_key] = angle + self.update_dnaBaseIndicatorsAngle() + + def update_dnaBaseIndicatorsAngle(self): + """ + Updates the DNA base orientation indicators angular threshold spinbox. + """ + self.dnaBaseOrientationIndicatorsThresholdSpinBox.setValue( + float(env.prefs[dnaBaseIndicatorsAngle_prefs_key])) + + def change_dnaBaseIndicatorsDistance(self, distance): + """ + @param distance: The distance threshold for DNA base indicators. + @type distance: double + """ + env.prefs[dnaBaseIndicatorsDistance_prefs_key] = distance + self.update_dnaBaseIndicatorsDistance() + + def update_dnaBaseIndicatorsDistance(self): + """ + Updates the DNA base orientation indicators distance threshold spinbox. + """ + self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox.setValue( + int(env.prefs[dnaBaseIndicatorsDistance_prefs_key])) + + def change_dnaStyleStrandsArrows(self, shape): + """ + Changes DNA Style strands shape. + + @param shape: The shape mode: + - 0 = none (hidden) + + @type shape: int + """ + env.prefs[dnaStyleStrandsArrows_prefs_key] = shape + + def change_dnaStyleAxisEndingStyle(self, shape): + """ + Changes DNA Style strands ends. + + @param shape: The ending style shape: + - 0 = flat + - 1 = taper beginning + - 2 = taper ending + - 3 = taper both ends + - 4 = spherical + + @type shape: int + """ + env.prefs[dnaStyleAxisEndingStyle_prefs_key] = shape + + def toggle_dnaDisplayStrandLabelsGroupBox(self, state): + """ + Toggles DNA Strand Labels GroupBox. + + @param state: Is the GroupBox enabled? + - True = on + - False = off + @type state: boolean + """ + env.prefs[dnaStrandLabelsEnabled_prefs_key] = state + + def toggle_dnaDisplayBaseOrientationIndicatorsGroupBox(self, state): + """ + Toggles DNA Base Orientation Indicators GroupBox. + + @param state: Is the GroupBox enabled? + - True = on + - False = off + @type state: boolean + """ + env.prefs[dnaBaseIndicatorsEnabled_prefs_key] = state + + def toggle_dnaDisplayBaseOrientationInvIndicatorsCheckBox(self, state): + """ + Toggles DNA Base Orientation Inverse Indicators CheckBox. + + @param state: Is the CheckBox enabled? + - True = on + - False = off + @type state: boolean + """ + env.prefs[dnaBaseInvIndicatorsEnabled_prefs_key] = state + + def toggle_dnaStyleBasesDisplayLettersCheckBox(self, state): + """ + Toggles DNA Base Letters. + + @param state: Is the CheckBox enabled? + - True = on + - False = off + @type state: boolean + """ + env.prefs[dnaStyleBasesDisplayLetters_prefs_key] = state + + def change_dnaBaseOrientIndicatorsPlane(self, idx): + """ + Slot for the "Plane" combobox for changing the + DNA base indicators plane. + """ + env.prefs[dnaBaseIndicatorsPlaneNormal_prefs_key] = idx + + def change_dnaBaseIndicatorsColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA base indicators color. + """ + self.usual_change_color( dnaBaseIndicatorsColor_prefs_key ) + + def change_dnaBaseInvIndicatorsColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA base inverse indicators color. + """ + self.usual_change_color( dnaBaseInvIndicatorsColor_prefs_key ) + + def change_dnaStrandLabelsColor(self): + """ + Slot for the I{Choose...} button for changing the + DNA strand labels color. + """ + self.usual_change_color( dnaStrandLabelsColor_prefs_key ) + + def change_dnaStrandLabelsColorMode(self, mode): + """ + Changes DNA Style strand labels color mode. + + @param mode: The color mode: + - 0 = same as chunk + - 1 = black + - 2 = white + - 3 = custom + + @type mode: int + """ + env.prefs[dnaStrandLabelsColorMode_prefs_key] = mode + + # == End of slot methods for "DNA" page widgets == + + # == Slot methods for "Lighting" page widgets == + + def change_lighting(self, specularityValueJunk = None): + """ + Updates glpane lighting using the current lighting parameters from + the light checkboxes and sliders. This is also the slot for the light + sliders. + @param specularityValueJunk: This value from the slider is not used + We are interested in valueChanged signal + only + @type specularityValueJunk = int or None + + """ + + light_num = self.light_combobox.currentIndex() + + light1, light2, light3 = self.glpane.getLighting() + + a = self.light_ambient_slider.value() * .01 + d = self.light_diffuse_slider.value() * .01 + s = self.light_specularity_slider.value() * .01 + + self.light_ambient_linedit.setText(str(a)) + self.light_diffuse_linedit.setText(str(d)) + self.light_specularity_linedit.setText(str(s)) + + new_light = [ self.light_color, a, d, s, \ + float(str(self.light_x_linedit.text())), \ + float(str(self.light_y_linedit.text())), \ + float(str(self.light_z_linedit.text())), \ + self.light_checkbox.isChecked()] + + # This is a kludge. I'm certain there is a more elegant way. Mark 051204. + if light_num == 0: + self.glpane.setLighting([new_light, light2, light3]) + elif light_num == 1: + self.glpane.setLighting([light1, new_light, light3]) + elif light_num == 2: + self.glpane.setLighting([light1, light2, new_light]) + else: + print "Unsupported light # ", light_num,". No lighting change made." + + def change_active_light(self, currentIndexJunk = None): + """ + Slot for the Light number combobox. This changes the current light. + @param currentIndexJunk: This index value from the combobox is not used + We are interested in 'activated' signal only + @type currentIndexJunk = int or None + """ + self._updatePage_Lighting() + + def change_light_color(self): + """ + Slot for light color "Choose" button. Saves the new color in the + prefs db. + + Changes the current Light color in the graphics area and the light + color swatch in the UI. + """ + self.usual_change_color(self.current_light_key) + self.light_color = env.prefs[self.current_light_key] + self.save_lighting() + + def update_light_combobox_items(self): + """Updates all light combobox items with '(On)' or '(Off)' label. + """ + for i in range(3): + if self.lights[i][7]: + txt = "%d (On)" % (i+1) + else: + txt = "%d (Off)" % (i+1) + self.light_combobox.setItemText(i, txt) + + def toggle_light(self, on): + """ + Slot for light 'On' checkbox. + It updates the current item in the light combobox with '(On)' or + '(Off)' label. + """ + if on: + txt = "%d (On)" % (self.light_combobox.currentIndex()+1) + else: + txt = "%d (Off)" % (self.light_combobox.currentIndex()+1) + self.light_combobox.setItemText(self.light_combobox.currentIndex(),txt) + + self.save_lighting() + + def save_lighting(self): + """ + Saves lighting parameters (but not material specularity parameters) + to pref db. This is also the slot for light sliders (only when + released). + """ + self.change_lighting() + self.glpane.saveLighting() + + def toggle_material_specularity(self, val): + """ + This is the slot for the Material Specularity Enabled checkbox. + """ + env.prefs[material_specular_highlights_prefs_key] = val + + def change_material_finish(self, finish): + """ + This is the slot for the Material Finish slider. + 'finish' is between 0 and 100. + Saves finish parameter to pref db. + """ + # For whiteness, the stored range is 0.0 (Metal) to 1.0 (Plastic). + # The Qt slider range is 0 - 100, so we multiply by 100 to set the slider. Mark. 051129. + env.prefs[material_specular_finish_prefs_key] = float(finish * 0.01) + self.ms_finish_linedit.setText(str(finish * 0.01)) + + def change_material_shininess(self, shininess): + """ + This is the slot for the Material Shininess slider. + 'shininess' is between 15 (low) and 60 (high). + """ + env.prefs[material_specular_shininess_prefs_key] = float(shininess) + self.ms_shininess_linedit.setText(str(shininess)) + + def change_material_brightness(self, brightness): + """ + This is the slot for the Material Brightness slider. + 'brightness' is between 0 (low) and 100 (high). + """ + env.prefs[material_specular_brightness_prefs_key] = float(brightness * 0.01) + self.ms_brightness_linedit.setText(str(brightness * 0.01)) + + def change_material_finish_start(self): + if debug_sliders: print "Finish slider pressed" + env.prefs.suspend_saving_changes() #bruce 051205 new prefs feature - keep updating to glpane but not (yet) to disk + + def change_material_finish_stop(self): + if debug_sliders: print "Finish slider released" + env.prefs.resume_saving_changes() #bruce 051205 new prefs feature - save accumulated changes now + + def change_material_shininess_start(self): + if debug_sliders: print "Shininess slider pressed" + env.prefs.suspend_saving_changes() + + def change_material_shininess_stop(self): + if debug_sliders: print "Shininess slider released" + env.prefs.resume_saving_changes() + + def change_material_brightness_start(self): + if debug_sliders: print "Brightness slider pressed" + env.prefs.suspend_saving_changes() + + def change_material_brightness_stop(self): + if debug_sliders: print "Brightness slider released" + env.prefs.resume_saving_changes() + + def reset_lighting(self): + """ + Slot for Reset button. + """ + # This has issues. + # I intend to remove the Reset button for A7. Confirm with Bruce. Mark 051204. + self._setup_material_group(reset = True) + self._updatePage_Lighting(self.original_lights) + self.glpane.saveLighting() + + def restore_default_lighting(self): + """ + Slot for Restore Defaults button. + """ + + self.glpane.restoreDefaultLighting() + + # Restore defaults for the Material Specularity properties + env.prefs.restore_defaults([ + material_specular_highlights_prefs_key, + material_specular_shininess_prefs_key, + material_specular_finish_prefs_key, + material_specular_brightness_prefs_key, #bruce 051203 bugfix + ]) + + self._updatePage_Lighting() + self.save_lighting() + + ########## End of slot methods for "Lighting" page widgets ########### + + ########## Slot methods for "Plug-ins" page widgets ################ + + def choose_gamess_path(self): + """ + Slot for GAMESS path "Choose" button. + """ + gamess_exe = get_filename_and_save_in_prefs(self, + gmspath_prefs_key, + 'Choose GAMESS Executable') + + if gamess_exe: + self.gamess_path_lineedit.setText(env.prefs[gmspath_prefs_key]) + + def set_gamess_path(self, newValue): + """ + Slot for GAMESS path line editor. + """ + env.prefs[gamess_path_prefs_key] = str(newValue) + + def enable_gamess(self, enable = True): + """ + Enables/disables GAMESS plugin. + + @param enable: Enabled when True. Disables when False. + @type enable: bool + """ + if enable: + self.gamess_path_lineedit.setEnabled(1) + self.gamess_choose_btn.setEnabled(1) + env.prefs[gamess_enabled_prefs_key] = True + + else: + self.gamess_path_lineedit.setEnabled(0) + self.gamess_choose_btn.setEnabled(0) + #self.gamess_path_lineedit.setText("") + #env.prefs[gmspath_prefs_key] = '' + env.prefs[gamess_enabled_prefs_key] = False + + # GROMACS slots ####################################### + + def choose_gromacs_path(self): + """ + Slot for GROMACS path "Choose" button. + """ + + mdrun_executable = \ + get_filename_and_save_in_prefs(self, + gromacs_path_prefs_key, + 'Choose mdrun executable (GROMACS)') + + if mdrun_executable: + self.gromacs_path_lineedit.setText(env.prefs[gromacs_path_prefs_key]) + + def set_gromacs_path(self, newValue): + """ + Slot for GROMACS path line editor. + """ + env.prefs[gromacs_path_prefs_key] = str(newValue) + + def enable_gromacs(self, enable = True): + """ + If True, GROMACS path is set in Preferences>Plug-ins + + @param enable: Is the path set? + @type enable: bool + """ + + state = self.gromacs_checkbox.checkState() + if enable: + if (state != Qt.Checked): + self.gromacs_checkbox.setCheckState(Qt.Checked) + self.gromacs_path_lineedit.setEnabled(True) + self.gromacs_choose_btn.setEnabled(True) + env.prefs[gromacs_enabled_prefs_key] = True + + # Sets the GROMACS (executable) path to the standard location, if it exists. + if not env.prefs[gromacs_path_prefs_key]: + env.prefs[gromacs_path_prefs_key] = get_default_plugin_path( \ + "C:\\GROMACS_3.3.2+HDF5_p2\\bin\\mdrun.exe", \ + "/Applications/GROMACS_3.3.2+HDF5_p2/bin/mdrun", + "/usr/local/GROMCAS_3.3.2+HDF5_p2/bin/mdrun") + + self.gromacs_path_lineedit.setText(env.prefs[gromacs_path_prefs_key]) + + else: + if (state != Qt.Unchecked): + self.gromacs_checkbox.setCheckState(Qt.Unchecked) + self.gromacs_path_lineedit.setEnabled(False) + self.gromacs_choose_btn.setEnabled(False) + #self.gromacs_path_lineedit.setText("") + #env.prefs[gromacs_path_prefs_key] = '' + env.prefs[gromacs_enabled_prefs_key] = False + + # cpp slots ####################################### + + def choose_cpp_path(self): + """ + Sets the path to cpp (C pre-processor) + """ + + cpp_executable = get_filename_and_save_in_prefs(self, + cpp_path_prefs_key, + 'Choose cpp Executable (used by GROMACS)') + + if cpp_executable: + self.cpp_path_lineedit.setText(env.prefs[cpp_path_prefs_key]) + + def set_cpp_path(self, newValue): + """ + Slot for cpp path line editor. + """ + env.prefs[cpp_path_prefs_key] = str(newValue) + + def enable_cpp(self, enable = True): + """ + Enables/disables cpp plugin. + + @param enable: Enabled when True. Disables when False. + @type enable: bool + """ + state = self.cpp_checkbox.checkState() + if enable: + if (state != Qt.Checked): + self.cpp_checkbox.setCheckState(Qt.Checked) + self.cpp_path_lineedit.setEnabled(True) + self.cpp_choose_btn.setEnabled(True) + env.prefs[cpp_enabled_prefs_key] = True + + # Sets the cpp path to the standard location, if it exists. + if not env.prefs[cpp_path_prefs_key]: + env.prefs[cpp_path_prefs_key] = get_default_plugin_path( \ + "C:\\GROMACS_3.3.2+HDF5_p2\\MCPP\\bin\\mcpp.exe", \ + "/Applications/GROMACS_3.3.2+HDF5_p2/mcpp/bin/mcpp", \ + "/usr/local/GROMACS_3.3.2+HDF5_p2/mcpp/bin/mcpp") + + self.cpp_path_lineedit.setText(env.prefs[cpp_path_prefs_key]) + + else: + if (state != Qt.Unchecked): + self.cpp_checkbox.setCheckState(Qt.Unchecked) + self.cpp_path_lineedit.setEnabled(False) + self.cpp_choose_btn.setEnabled(False) + #self.cpp_path_lineedit.setText("") + #env.prefs[cpp_path_prefs_key] = '' + env.prefs[cpp_enabled_prefs_key] = False + + # NanoVision-1 slots ####################################### + + def choose_nv1_path(self): + """ + Slot for NanoVision-1 path "Choose" button. + """ + + nv1_executable = get_filename_and_save_in_prefs(self, + nv1_path_prefs_key, + 'Choose NanoVision-1 Executable') + + if nv1_executable: + self.nv1_path_lineedit.setText(env.prefs[nv1_path_prefs_key]) + + def set_nv1_path(self, newValue): + """ + Slot for NanoVision-1 path line editor. + """ + env.prefs[nv1_path_prefs_key] = str(newValue) + + def enable_nv1(self, enable = True): + """ + If True, NV1 path is set in Preferences>Plug-ins + + @param enable: Is the path set? + @type enable: bool + """ + + state = self.nv1_checkbox.checkState() + if enable: + if (state != Qt.Checked): + self.nv1_checkbox.setCheckState(Qt.Checked) + self.nv1_path_lineedit.setEnabled(True) + self.nv1_choose_btn.setEnabled(True) + env.prefs[nv1_enabled_prefs_key] = True + + # Sets the NV1 (executable) path to the standard location, if it exists. + if not env.prefs[nv1_path_prefs_key]: + env.prefs[nv1_path_prefs_key] = get_default_plugin_path( \ + "C:\\Program Files\\Nanorex\\NanoVision-1\\NanoVision-1.exe", \ + "/Applications/Nanorex/NanoVision-1 0.1.0/NanoVision-1.app", \ + "/usr/local/Nanorex/NanoVision-1 0.1.0/NanoVision-1") + + self.nv1_path_lineedit.setText(env.prefs[nv1_path_prefs_key]) + + else: + if (state != Qt.Unchecked): + self.nv1_checkbox.setCheckState(Qt.Unchecked) + self.nv1_path_lineedit.setEnabled(False) + self.nv1_choose_btn.setEnabled(False) + #self.nv1_path_lineedit.setText("") + #env.prefs[nv1_path_prefs_key] = '' + env.prefs[nv1_enabled_prefs_key] = False + + # QuteMolX slots ####################################### + + def choose_qutemol_path(self): + """ + Slot for QuteMolX path "Choose" button. + """ + qp = get_filename_and_save_in_prefs(self, + qutemol_path_prefs_key, + 'Choose QuteMolX Executable') + + if qp: + self.qutemol_path_lineedit.setText(qp) + + def set_qutemol_path(self, newValue): + """ + Slot for QuteMol path line editor. + """ + env.prefs[qutemol_path_prefs_key] = str(newValue) + + def enable_qutemol(self, enable = True): + """ + Enables/disables QuteMolX plugin. + + @param enable: Enabled when True. Disables when False. + @type enable: bool + """ + if enable: + self.qutemol_path_lineedit.setEnabled(1) + self.qutemol_choose_btn.setEnabled(1) + env.prefs[qutemol_enabled_prefs_key] = True + + # Sets the QuteMolX (executable) path to the standard location, if it exists. + if not env.prefs[qutemol_path_prefs_key]: + env.prefs[qutemol_path_prefs_key] = get_default_plugin_path( \ + "C:\\Program Files\\Nanorex\\QuteMolX\\QuteMolX.exe", \ + "/Applications/Nanorex/QuteMolX 0.5.0/QuteMolX.app", \ + "/usr/local/Nanorex/QuteMolX 0.5.0/QuteMolX") + + self.qutemol_path_lineedit.setText(env.prefs[qutemol_path_prefs_key]) + + else: + self.qutemol_path_lineedit.setEnabled(0) + self.qutemol_choose_btn.setEnabled(0) + #self.qutemol_path_lineedit.setText("") + #env.prefs[qutemol_path_prefs_key] = '' + env.prefs[qutemol_enabled_prefs_key] = False + + # NanoHive-1 slots ##################################### + + def choose_nanohive_path(self): + """ + Slot for Nano-Hive path "Choose" button. + """ + + nh = get_filename_and_save_in_prefs(self, + nanohive_path_prefs_key, + 'Choose Nano-Hive Executable') + + if nh: + self.nanohive_path_lineedit.setText(nh) + + def set_nanohive_path(self, newValue): + """ + Slot for NanoHive path line editor. + """ + env.prefs[nanohive_path_prefs_key] = str(newValue) + + def enable_nanohive(self, enable = True): + """ + Enables/disables NanoHive-1 plugin. + + @param enable: Enabled when True. Disables when False. + @type enable: bool + + @attention: This is disabled since the NH1 plugin doesn't work yet. + """ + if enable: + self.nanohive_path_lineedit.setEnabled(1) + self.nanohive_choose_btn.setEnabled(1) + # Leave Nano-Hive action button/menu hidden for A7. Mark 2006-01-04. + # self.w.simNanoHiveAction.setVisible(1) + + # Sets the Nano-Hive (executable) path to the standard location, if it exists. + if not env.prefs[nanohive_path_prefs_key]: + env.prefs[nanohive_path_prefs_key] = get_default_plugin_path( + "C:\\Program Files\\Nano-Hive\\bin\\win32-x86\\NanoHive.exe", \ + "/usr/local/bin/NanoHive", \ + "/usr/local/bin/NanoHive") + + + env.prefs[nanohive_enabled_prefs_key] = True + self.nanohive_path_lineedit.setText(env.prefs[nanohive_path_prefs_key]) + + # Create the Nano-Hive dialog widget. + # Not needed for A7. Mark 2006-01-05. + #if not self.w.nanohive: + # from NanoHive import NanoHive + # self.w.nanohive = NanoHive(self.assy) + + else: + self.nanohive_path_lineedit.setEnabled(0) + self.nanohive_choose_btn.setEnabled(0) + self.w.nanohive = None + self.w.simNanoHiveAction.setVisible(0) + #self.nanohive_path_lineedit.setText("") + #env.prefs[nanohive_path_prefs_key] = '' + env.prefs[nanohive_enabled_prefs_key] = False + + # POV-Ray slots ##################################### + + def choose_povray_path(self): + """ + Slot for POV-Ray path "Choose" button. + """ + povray_exe = get_filename_and_save_in_prefs(self, + povray_path_prefs_key, + 'Choose POV-Ray Executable') + + if povray_exe: + self.povray_path_lineedit.setText(povray_exe) + + def set_povray_path(self, newValue): + """ + Slot for POV-Ray path line editor. + """ + env.prefs[povray_path_prefs_key] = str(newValue) + + def enable_povray(self, enable = True): + """ + Enables/disables POV-Ray plugin. + + @param enable: Enabled when True. Disables when False. + @type enable: bool + """ + if enable: + self.povray_path_lineedit.setEnabled(1) + self.povray_choose_btn.setEnabled(1) + env.prefs[povray_enabled_prefs_key] = True + + # Sets the POV-Ray (executable) path to the standard location, if it exists. + if not env.prefs[povray_path_prefs_key]: + env.prefs[povray_path_prefs_key] = get_default_plugin_path( \ + "C:\\Program Files\\POV-Ray for Windows v3.6\\bin\\pvengine.exe", \ + "/usr/local/bin/pvengine", \ + "/usr/local/bin/pvengine") + + self.povray_path_lineedit.setText(env.prefs[povray_path_prefs_key]) + + else: + self.povray_path_lineedit.setEnabled(0) + self.povray_choose_btn.setEnabled(0) + #self.povray_path_lineedit.setText("") + #env.prefs[povray_path_prefs_key] = '' + env.prefs[povray_enabled_prefs_key] = False + self._update_povdir_enables() #bruce 060710 + + # MegaPOV slots ##################################### + + def choose_megapov_path(self): + """ + Slot for MegaPOV path "Choose" button. + """ + megapov_exe = get_filename_and_save_in_prefs(self, megapov_path_prefs_key, 'Choose MegaPOV Executable') + + if megapov_exe: + self.megapov_path_lineedit.setText(megapov_exe) + + def set_megapov_path(self, newValue): + """ + Slot for MegaPOV path line editor. + """ + env.prefs[megapov_path_prefs_key] = str(newValue) + + def enable_megapov(self, enable = True): + """ + Enables/disables MegaPOV plugin. + + @param enable: Enabled when True. Disables when False. + @type enable: bool + """ + if enable: + self.megapov_path_lineedit.setEnabled(1) + self.megapov_choose_btn.setEnabled(1) + env.prefs[megapov_enabled_prefs_key] = True + + # Sets the MegaPOV (executable) path to the standard location, if it exists. + if not env.prefs[megapov_path_prefs_key]: + env.prefs[megapov_path_prefs_key] = get_default_plugin_path( \ + "C:\\Program Files\\POV-Ray for Windows v3.6\\bin\\megapov.exe", \ + "/usr/local/bin/megapov", \ + "/usr/local/bin/megapov") + + self.megapov_path_lineedit.setText(env.prefs[megapov_path_prefs_key]) + + else: + self.megapov_path_lineedit.setEnabled(0) + self.megapov_choose_btn.setEnabled(0) + #self.megapov_path_lineedit.setText("") + #env.prefs[megapov_path_prefs_key] = '' + env.prefs[megapov_enabled_prefs_key] = False + self._update_povdir_enables() #bruce 060710 + + # POV-Ray include slots ####################################### + + # pov include directory [bruce 060710 for Mac A8; will be A8.1 in Windows, not sure about Linux] + + def _update_povdir_enables(self): #bruce 060710 + """ + [private method] + Call this whenever anything changes regarding when to enable the povdir checkbox, line edit, or choose button. + We enable the checkbox when either of the POV-Ray or MegaPOV plugins is enabled. + We enable the line edit and choose button when that condition holds and when the checkbox is checked. + We update this when any relevant checkbox changes, or when showing this page. + This will work by reading prefs values, so only call it from slot methods after they have updated prefs values. + """ + enable_checkbox = env.prefs[povray_enabled_prefs_key] or env.prefs[megapov_enabled_prefs_key] + self.povdir_checkbox.setEnabled(enable_checkbox) + self.povdir_lbl.setEnabled(enable_checkbox) + enable_edits = enable_checkbox and env.prefs[povdir_enabled_prefs_key] + # note: that prefs value should and presumably does agree with self.povdir_checkbox.isChecked() + self.povdir_lineedit.setEnabled(enable_edits) + self.povdir_choose_btn.setEnabled(enable_edits) + return + + def enable_povdir(self, enable = True): #bruce 060710 + """ + Slot method for povdir checkbox. + povdir is enabled when enable = True. + povdir is disabled when enable = False. + """ + env.prefs[povdir_enabled_prefs_key] = not not enable + self._update_povdir_enables() +## self.povdir_lineedit.setText(env.prefs[povdir_path_prefs_key]) + return + + def set_povdir(self): #bruce 060710 + """ + Slot for Pov include dir "Choose" button. + """ + povdir_path = get_dirname_and_save_in_prefs(self, povdir_path_prefs_key, 'Choose Custom POV-Ray Include directory') + # note: return value can't be ""; if user cancels, value is None; + # to set "" you have to edit the lineedit text directly, but this doesn't work since + # no signal is caught to save that into the prefs db! + # ####@@@@ we ought to catch that signal... is it returnPressed?? would that be sent if they were editing it, then hit ok? + # or if they clicked elsewhere? (currently that fails to remove focus from the lineedits, on Mac, a minor bug IMHO) + # (or uncheck the checkbox for the same effect). (#e do we want a "clear" button, for A8.1?) + + if povdir_path: + self.povdir_lineedit.setText(env.prefs[povdir_path_prefs_key]) + # the function above already saved it in prefs, under the same condition + return + + def povdir_lineedit_textChanged(self, *args): #bruce 060710 + if debug_povdir_signals(): + print "povdir_lineedit_textChanged",args + # this happens on programmatic changes, such as when the page is shown or the choose button slot sets the text + try: + # note: Ideally we'd only do this when return was pressed, mouse was clicked elsewhere (with that also removing keyfocus), + # other keyfocus removals, including dialog ok or cancel. That is mostly nim, + # so we have to do it all the time for now -- this is the only way for the user to set the text to "". + # (This even runs on programmatic sets of the text. Hope that's ok.) + env.prefs[povdir_path_prefs_key] = path = str( self.povdir_lineedit.text() ).strip() + if debug_povdir_signals(): + print "debug fyi: set pov include dir to [%s]" % (path,) + except: + if env.debug(): + print_compact_traceback("bug, ignored: ") + return + + def povdir_lineedit_returnPressed(self, *args): #bruce 060710 + if debug_povdir_signals(): + print "povdir_lineedit_returnPressed",args + # this happens when return is pressed in the widget, but NOT when user clicks outside it + # or presses OK on the dialog -- which means it's useless when taken alone, + # in case user edits text and then presses ok without ever pressing return. + + ########## End of slot methods for "Plug-ins" page widgets ########### + + ########## Slot methods for "Undo" (former name "Caption") page widgets ################ + + def change_undo_stack_memory_limit(self, mb_val): + """ + Slot for 'Undo Stack Memory Limit' spinbox. + Sets the RAM limit for the Undo Stack. + <mb-val> can range from 0-99999 (MB). + """ + env.prefs[undoStackMemoryLimit_prefs_key] = mb_val + + def change_historyHeight(self, value): + """ + Slot for history height spinbox. + """ + env.prefs[ historyHeight_prefs_key] = value + + ########## End of slot methods for "Undo" page widgets ########### + + ########## Start slot methods for "ToolTips" page widgets ########### + def change_dynamicToolTipAtomDistancePrecision(self, value): + """ + Update the atom distance precision for the dynamic tool tip. + """ + env.prefs[ dynamicToolTipAtomDistancePrecision_prefs_key ] = value + + def change_dynamicToolTipBendAnglePrecision(self, value): + """ + Update the bend angle precision for the dynamic tool tip. + """ + env.prefs[ dynamicToolTipBendAnglePrecision_prefs_key ] = value + + ########## End of slot methods for "ToolTips" page widgets ########### + + ########## Slot methods for "Window" (former name "Caption") page widgets ################ + + #e there are some new slot methods for this in other places, which should be refiled here. [bruce 050811] + + def change_window_size(self, val = 0): + """ + Slot for both the width and height spinboxes that change the current + window size. + + Also called from other slots to change the window size based on new + values in spinboxes. <val> is not used. + """ + w = self.current_width_spinbox.value() + h = self.current_height_spinbox.value() + self.w.resize(w,h) + + def update_saved_size(self, w, h): + """ + Update the saved width and height text. + """ + self.saved_width_lineedit.setText(QString(str(w) + " pixels")) + self.saved_height_lineedit.setText(QString(str(h) + " pixels")) + + def save_current_win_pos_and_size(self): #bruce 051218; see also debug.py's _debug_save_window_layout + from utilities.prefs_constants import mainwindow_geometry_prefs_key_prefix + keyprefix = mainwindow_geometry_prefs_key_prefix + save_window_pos_size( self.w, keyprefix) # prints history message + size = self.w.size() + self.update_saved_size(size.width(), size.height()) + return + + def restore_saved_size(self): + """ + Restore the window size, but not the position, from the prefs db. + """ + from utilities.prefs_constants import mainwindow_geometry_prefs_key_prefix + keyprefix = mainwindow_geometry_prefs_key_prefix + pos, size = _get_prefs_for_window_pos_size( self.w, keyprefix) + w = size[0] + h = size[1] + self.update_saved_size(w, h) + self.current_width_spinbox.setValue(w) + self.current_height_spinbox.setValue(h) + self.change_window_size() + return + + def change_use_selected_font(self, use_selected_font): + """ + Slot for "Use Selected Font" checkbox on the groupbox. + Called when the checkbox is toggled. + """ + env.prefs[useSelectedFont_prefs_key] = use_selected_font + self.set_font() + return + + def change_font(self, font): + """ + Slot for the Font combobox. + Called whenever the font is changed. + """ + env.prefs[displayFont_prefs_key] = str(font.family()) + self.set_font() + return + + def change_fontsize(self, pointsize): + """ + Slot for the Font size spinbox. + """ + env.prefs[displayFontPointSize_prefs_key] = pointsize + self.set_font() + return + + def change_selected_font_to_default_font(self): + """ + Slot for "Make the selected font the default font" button. + The default font will be displayed in the Font and Size + widgets. + """ + font = self.w.defaultFont + env.prefs[displayFont_prefs_key] = str(font.family()) + env.prefs[displayFontPointSize_prefs_key] = font.pointSize() + self.set_font_widgets(setFontFromPrefs = True) # Also sets the current display font. + + if debug_flags.atom_debug: + print "change_selected_font_to_default_font(): " \ + "Button clicked. Default font: ", font.family(), \ + ", size=", font.pointSize() + return + + def set_font_widgets(self, setFontFromPrefs = True): + """ + Update font widgets based on font prefs. + Unconnects signals from slots, updates widgets, then reconnects slots. + + @param setFontFromPrefs: when True (default), sets the display font + (based on font prefs). + @type setFontFromPrefs: bool + """ + + if debug_flags.atom_debug: + print "set_font_widgets(): Here!" + + + if env.prefs[displayFont_prefs_key] == "defaultFont": + # Set the font and point size prefs to the application's default font. + # This code only called the first time NE1 is run (or the prefs db does not exist) + font = self.w.defaultFont + font_family = str(font.family()) + # note: this str() prevents NE1 from running on some international systems. + # we should leave it in place until we can reproduce the bug, + # then fix it. (Not necessarily by replacing it with unicode(), + # since ideally we'd use str if it works, unicode if it doesn't. + # Does string() do that??) + # [bruce comment 080514] + font_size = font.pointSize() + env.prefs[displayFont_prefs_key] = font_family + env.prefs[displayFontPointSize_prefs_key] = font_size + if debug_flags.atom_debug: + print "set_font_widgets(): No prefs db. " \ + "Using default font: ", font.family(), \ + ", size=", font.pointSize() + + else: + font_family = env.prefs[displayFont_prefs_key] + font_size = env.prefs[displayFontPointSize_prefs_key] + font = QFont(font_family, font_size) + + self.disconnect(self.selectedFontGroupBox, SIGNAL("toggled(bool)"), self.change_use_selected_font) + self.disconnect(self.fontComboBox, SIGNAL("currentFontChanged (const QFont &)"), self.change_font) + self.disconnect(self.fontSizeSpinBox, SIGNAL("valueChanged(int)"), self.change_fontsize) + self.disconnect(self.makeDefaultFontPushButton, SIGNAL("clicked()"), self.change_selected_font_to_default_font) + + self.selectedFontGroupBox.setChecked(env.prefs[useSelectedFont_prefs_key]) # Generates signal! + self.fontComboBox.setCurrentFont(font) # Generates signal! + self.fontSizeSpinBox.setValue(font_size) # Generates signal! + + self.connect(self.selectedFontGroupBox, SIGNAL("toggled(bool)"), self.change_use_selected_font) + self.connect(self.fontComboBox, SIGNAL("currentFontChanged (const QFont &)"), self.change_font) + self.connect(self.fontSizeSpinBox, SIGNAL("valueChanged(int)"), self.change_fontsize) + self.connect(self.makeDefaultFontPushButton, SIGNAL("clicked()"), self.change_selected_font_to_default_font) + + if setFontFromPrefs: + self.set_font() + return + + def set_font(self): + """ + Set the current display font using the font prefs. + """ + + use_selected_font = env.prefs[useSelectedFont_prefs_key] + + if use_selected_font: + font = self.fontComboBox.currentFont() + font_family = str(font.family()) + fontsize = self.fontSizeSpinBox.value() + font.setPointSize(fontsize) + env.prefs[displayFont_prefs_key] = font_family + env.prefs[displayFontPointSize_prefs_key] = fontsize + if debug_flags.atom_debug: + print "set_font(): Using selected font: ", font.family(), ", size=", font.pointSize() + + else: # Use default font + font = self.w.defaultFont + if debug_flags.atom_debug: + print "set_font(): Using default font: ", font.family(), ", size=", font.pointSize() + + # Set font + self.w.setFont(font) + return + + def set_caption_fullpath(self, val): #bruce 050810 revised this + # there is now a separate connection which sets the pref, so this is not needed: + ## self.win.caption_fullpath = val + # and there is now a Formula in MWsemantics which makes the following no longer needed: + ## self.win.update_mainwindow_caption(self.win.assy.has_changed()) + pass + + def update_number_spinbox_valueChanged(self,a0): + # some day we'll use this to set a user preferences, for now it's a no-op + pass + + ########## End of slot methods for "Window" page widgets ########### + + ########## Slot methods for top level widgets ################ + + def show(self, pagename = ""): + """ + Display the Preferences dialog with page I{pagename}. + + @param pagename: Name of the Preferences page. Default is "General". + @type pagename: string + """ + self.showPage(pagename) + + # Must use exec_() and not show() with self.modal=True. I tried it and + # it doesn't work whenever the user is prompted by NE1 to enable + # a plug-in via the Preferences dialog. -Mark 2008-05-22 + self.exec_() + return + + def showPage(self, pagename = ""): + """ + Show the current page of the Preferences dialog. If no page is + selected from the Category tree widget, show the "General" page. + + @param pagename: Name of the Preferences page. Default is "General". + Only names found in self.pagenameList are allowed. + @type pagename: string + + @note: This is the slot method for the "Category" QTreeWidget. + """ + + if not pagename: + selectedItemsList = self.categoryTreeWidget.selectedItems() + if selectedItemsList: + selectedItem = selectedItemsList[0] + pagename = str(selectedItem.text(0)) + else: + pagename = 'General' + + # Strip whitespaces, commas and dashes from pagename just before + # checking for it in self.pagenameList. + pagename = pagename.replace(" ", "") + pagename = pagename.replace(",", "") + pagename = pagename.replace("-", "") + + if not pagename in self.pagenameList: + msg = 'Preferences page unknown: pagename =%s\n' \ + 'pagename must be one of the following:\n%r\n' \ + % (pagename, self.pagenameList) + print_compact_traceback(msg) + + try: + # Show page <pagename>. + self.prefsStackedWidget.setCurrentIndex(self.pagenameList.index(pagename)) + except: + print_compact_traceback("Bug in showPage() ignored: ") + + self.setWindowTitle("Preferences - %s" % pagename) + return + + def getPagenameList(self): + """ + Returns a list of page names (i.e. the "stack of widgets") inside + prefsStackedWidget. + + @return: List of page names. + @rtype: List + + @attention: Qt Designer assigns the QStackedWidget property + "currentPageName" (which is not a formal attr) + to the QWidget (page) attr "objectName". + + @see: U{B{QStackedWidget}<http://doc.trolltech.com/4/qstackedwidget.html>}. + """ + _pagenameList = [] + + for _widgetIndex in range(self.prefsStackedWidget.count()): + _widget = self.prefsStackedWidget.widget(_widgetIndex) + _pagename = str(_widget.objectName()) + _pagenameList.append(_pagename) + + return _pagenameList + + def accept(self): + """ + The slot method for the 'OK' button. + """ + QDialog.accept(self) + return + + def reject(self): + """ + The slot method for the "Cancel" button. + """ + # The Cancel button has been removed, but this still gets called + # when the user hits the dialog's "Close" button in the dialog's + # window border (upper right X). + # Since I've not implemented 'Cancel', it is safer to go ahead and + # save all preferences anyway. Otherwise, any changed preferences + # will not be persistent (after this session). + # This will need to be removed when we implement a true cancel function. + # Mark 050629. + QDialog.reject(self) + return + + pass # end of class Preferences + +# end diff --git a/cad/src/ne1_ui/prefs/PreferencesDialog.py b/cad/src/ne1_ui/prefs/PreferencesDialog.py new file mode 100644 index 000000000..1d5df506c --- /dev/null +++ b/cad/src/ne1_ui/prefs/PreferencesDialog.py @@ -0,0 +1,3325 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'PreferencesDialog.ui' +# +# Created: Mon May 26 15:25:13 2008 +# by: PyQt4 UI code generator 4.2 +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore, QtGui + +class Ui_PreferencesDialog(object): + def setupUi(self, PreferencesDialog): + PreferencesDialog.setObjectName("PreferencesDialog") + PreferencesDialog.resize(QtCore.QSize(QtCore.QRect(0,0,600,600).size()).expandedTo(PreferencesDialog.minimumSizeHint())) + PreferencesDialog.setMinimumSize(QtCore.QSize(600,600)) + + self.gridlayout = QtGui.QGridLayout(PreferencesDialog) + self.gridlayout.setMargin(9) + self.gridlayout.setSpacing(6) + self.gridlayout.setObjectName("gridlayout") + + self.prefsTabWidget = QtGui.QTabWidget(PreferencesDialog) + self.prefsTabWidget.setObjectName("prefsTabWidget") + + self.systemOptionsTab = QtGui.QWidget() + self.systemOptionsTab.setObjectName("systemOptionsTab") + + self.gridlayout1 = QtGui.QGridLayout(self.systemOptionsTab) + self.gridlayout1.setMargin(9) + self.gridlayout1.setSpacing(6) + self.gridlayout1.setObjectName("gridlayout1") + + self.prefsStackedWidget = QtGui.QStackedWidget(self.systemOptionsTab) + self.prefsStackedWidget.setObjectName("prefsStackedWidget") + + self.General = QtGui.QWidget() + self.General.setObjectName("General") + + self.gridlayout2 = QtGui.QGridLayout(self.General) + self.gridlayout2.setMargin(9) + self.gridlayout2.setSpacing(6) + self.gridlayout2.setObjectName("gridlayout2") + + self.vboxlayout = QtGui.QVBoxLayout() + self.vboxlayout.setMargin(0) + self.vboxlayout.setSpacing(4) + self.vboxlayout.setObjectName("vboxlayout") + + self.sponsorLogosGroupBox = QtGui.QGroupBox(self.General) + self.sponsorLogosGroupBox.setObjectName("sponsorLogosGroupBox") + + self.vboxlayout1 = QtGui.QVBoxLayout(self.sponsorLogosGroupBox) + self.vboxlayout1.setMargin(4) + self.vboxlayout1.setSpacing(0) + self.vboxlayout1.setObjectName("vboxlayout1") + + self.logoAlwaysAskRadioBtn = QtGui.QRadioButton(self.sponsorLogosGroupBox) + self.logoAlwaysAskRadioBtn.setObjectName("logoAlwaysAskRadioBtn") + self.vboxlayout1.addWidget(self.logoAlwaysAskRadioBtn) + + self.logoNeverAskRadioBtn = QtGui.QRadioButton(self.sponsorLogosGroupBox) + self.logoNeverAskRadioBtn.setObjectName("logoNeverAskRadioBtn") + self.vboxlayout1.addWidget(self.logoNeverAskRadioBtn) + + self.logoNeverDownLoadRadioBtn = QtGui.QRadioButton(self.sponsorLogosGroupBox) + self.logoNeverDownLoadRadioBtn.setObjectName("logoNeverDownLoadRadioBtn") + self.vboxlayout1.addWidget(self.logoNeverDownLoadRadioBtn) + self.vboxlayout.addWidget(self.sponsorLogosGroupBox) + + self.buildmode_groupbox = QtGui.QGroupBox(self.General) + self.buildmode_groupbox.setObjectName("buildmode_groupbox") + + self.vboxlayout2 = QtGui.QVBoxLayout(self.buildmode_groupbox) + self.vboxlayout2.setMargin(4) + self.vboxlayout2.setSpacing(0) + self.vboxlayout2.setObjectName("vboxlayout2") + + self.autobond_checkbox = QtGui.QCheckBox(self.buildmode_groupbox) + self.autobond_checkbox.setObjectName("autobond_checkbox") + self.vboxlayout2.addWidget(self.autobond_checkbox) + + self.buildmode_highlighting_checkbox = QtGui.QCheckBox(self.buildmode_groupbox) + self.buildmode_highlighting_checkbox.setObjectName("buildmode_highlighting_checkbox") + self.vboxlayout2.addWidget(self.buildmode_highlighting_checkbox) + + self.water_checkbox = QtGui.QCheckBox(self.buildmode_groupbox) + self.water_checkbox.setObjectName("water_checkbox") + self.vboxlayout2.addWidget(self.water_checkbox) + + self.buildmode_select_atoms_checkbox = QtGui.QCheckBox(self.buildmode_groupbox) + self.buildmode_select_atoms_checkbox.setObjectName("buildmode_select_atoms_checkbox") + self.vboxlayout2.addWidget(self.buildmode_select_atoms_checkbox) + self.vboxlayout.addWidget(self.buildmode_groupbox) + + spacerItem = QtGui.QSpacerItem(20,1,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout.addItem(spacerItem) + self.gridlayout2.addLayout(self.vboxlayout,0,0,1,1) + + spacerItem1 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout2.addItem(spacerItem1,0,1,1,1) + self.prefsStackedWidget.addWidget(self.General) + + self.Color = QtGui.QWidget() + self.Color.setObjectName("Color") + + self.gridlayout3 = QtGui.QGridLayout(self.Color) + self.gridlayout3.setMargin(9) + self.gridlayout3.setSpacing(6) + self.gridlayout3.setObjectName("gridlayout3") + + self.vboxlayout3 = QtGui.QVBoxLayout() + self.vboxlayout3.setMargin(0) + self.vboxlayout3.setSpacing(6) + self.vboxlayout3.setObjectName("vboxlayout3") + + self.hboxlayout = QtGui.QHBoxLayout() + self.hboxlayout.setMargin(0) + self.hboxlayout.setSpacing(2) + self.hboxlayout.setObjectName("hboxlayout") + + self.label_8 = QtGui.QLabel(self.Color) + self.label_8.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_8.setObjectName("label_8") + self.hboxlayout.addWidget(self.label_8) + + self.backgroundColorComboBox = QtGui.QComboBox(self.Color) + self.backgroundColorComboBox.setObjectName("backgroundColorComboBox") + self.hboxlayout.addWidget(self.backgroundColorComboBox) + self.vboxlayout3.addLayout(self.hboxlayout) + + self.hoverHighlightingStyleGroupBox = QtGui.QGroupBox(self.Color) + self.hoverHighlightingStyleGroupBox.setObjectName("hoverHighlightingStyleGroupBox") + + self.gridlayout4 = QtGui.QGridLayout(self.hoverHighlightingStyleGroupBox) + self.gridlayout4.setMargin(4) + self.gridlayout4.setSpacing(2) + self.gridlayout4.setObjectName("gridlayout4") + + self.label_21 = QtGui.QLabel(self.hoverHighlightingStyleGroupBox) + self.label_21.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_21.setObjectName("label_21") + self.gridlayout4.addWidget(self.label_21,1,0,1,1) + + self.hboxlayout1 = QtGui.QHBoxLayout() + self.hboxlayout1.setMargin(0) + self.hboxlayout1.setSpacing(2) + self.hboxlayout1.setObjectName("hboxlayout1") + + self.hoverHighlightingColorFrame = QtGui.QFrame(self.hoverHighlightingStyleGroupBox) + self.hoverHighlightingColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.hoverHighlightingColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.hoverHighlightingColorFrame.setFrameShape(QtGui.QFrame.Box) + self.hoverHighlightingColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.hoverHighlightingColorFrame.setObjectName("hoverHighlightingColorFrame") + self.hboxlayout1.addWidget(self.hoverHighlightingColorFrame) + + self.hoverHighlightingColorButton = QtGui.QPushButton(self.hoverHighlightingStyleGroupBox) + self.hoverHighlightingColorButton.setAutoDefault(False) + self.hoverHighlightingColorButton.setObjectName("hoverHighlightingColorButton") + self.hboxlayout1.addWidget(self.hoverHighlightingColorButton) + self.gridlayout4.addLayout(self.hboxlayout1,1,1,1,1) + + self.hoverHighlightingStyleComboBox = QtGui.QComboBox(self.hoverHighlightingStyleGroupBox) + self.hoverHighlightingStyleComboBox.setObjectName("hoverHighlightingStyleComboBox") + self.gridlayout4.addWidget(self.hoverHighlightingStyleComboBox,0,0,1,2) + self.vboxlayout3.addWidget(self.hoverHighlightingStyleGroupBox) + + self.selectionColorStyleGroupBox = QtGui.QGroupBox(self.Color) + self.selectionColorStyleGroupBox.setObjectName("selectionColorStyleGroupBox") + + self.gridlayout5 = QtGui.QGridLayout(self.selectionColorStyleGroupBox) + self.gridlayout5.setMargin(4) + self.gridlayout5.setSpacing(2) + self.gridlayout5.setObjectName("gridlayout5") + + self.label_22 = QtGui.QLabel(self.selectionColorStyleGroupBox) + self.label_22.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_22.setObjectName("label_22") + self.gridlayout5.addWidget(self.label_22,1,0,1,1) + + self.hboxlayout2 = QtGui.QHBoxLayout() + self.hboxlayout2.setMargin(0) + self.hboxlayout2.setSpacing(2) + self.hboxlayout2.setObjectName("hboxlayout2") + + self.selectionColorFrame = QtGui.QFrame(self.selectionColorStyleGroupBox) + self.selectionColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.selectionColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.selectionColorFrame.setFrameShape(QtGui.QFrame.Box) + self.selectionColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.selectionColorFrame.setObjectName("selectionColorFrame") + self.hboxlayout2.addWidget(self.selectionColorFrame) + + self.selectionColorButton = QtGui.QPushButton(self.selectionColorStyleGroupBox) + self.selectionColorButton.setAutoDefault(False) + self.selectionColorButton.setObjectName("selectionColorButton") + self.hboxlayout2.addWidget(self.selectionColorButton) + self.gridlayout5.addLayout(self.hboxlayout2,1,1,1,1) + + self.selectionStyleComboBox = QtGui.QComboBox(self.selectionColorStyleGroupBox) + self.selectionStyleComboBox.setObjectName("selectionStyleComboBox") + self.gridlayout5.addWidget(self.selectionStyleComboBox,0,0,1,2) + self.vboxlayout3.addWidget(self.selectionColorStyleGroupBox) + + spacerItem2 = QtGui.QSpacerItem(20,16,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout3.addItem(spacerItem2) + self.gridlayout3.addLayout(self.vboxlayout3,0,0,1,1) + + spacerItem3 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout3.addItem(spacerItem3,1,1,1,1) + self.prefsStackedWidget.addWidget(self.Color) + + self.ModelView = QtGui.QWidget() + self.ModelView.setObjectName("ModelView") + + self.gridlayout6 = QtGui.QGridLayout(self.ModelView) + self.gridlayout6.setMargin(9) + self.gridlayout6.setSpacing(6) + self.gridlayout6.setObjectName("gridlayout6") + + self.vboxlayout4 = QtGui.QVBoxLayout() + self.vboxlayout4.setMargin(0) + self.vboxlayout4.setSpacing(6) + self.vboxlayout4.setObjectName("vboxlayout4") + + self.hboxlayout3 = QtGui.QHBoxLayout() + self.hboxlayout3.setMargin(0) + self.hboxlayout3.setSpacing(2) + self.hboxlayout3.setObjectName("hboxlayout3") + + self.label_9 = QtGui.QLabel(self.ModelView) + self.label_9.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_9.setObjectName("label_9") + self.hboxlayout3.addWidget(self.label_9) + + self.globalDisplayStyleStartupComboBox = QtGui.QComboBox(self.ModelView) + self.globalDisplayStyleStartupComboBox.setObjectName("globalDisplayStyleStartupComboBox") + self.hboxlayout3.addWidget(self.globalDisplayStyleStartupComboBox) + self.vboxlayout4.addLayout(self.hboxlayout3) + + self.compassGroupBox = QtGui.QGroupBox(self.ModelView) + self.compassGroupBox.setCheckable(True) + self.compassGroupBox.setChecked(True) + self.compassGroupBox.setObjectName("compassGroupBox") + + self.gridlayout7 = QtGui.QGridLayout(self.compassGroupBox) + self.gridlayout7.setMargin(4) + self.gridlayout7.setSpacing(4) + self.gridlayout7.setObjectName("gridlayout7") + + spacerItem4 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout7.addItem(spacerItem4,0,1,1,1) + + self.vboxlayout5 = QtGui.QVBoxLayout() + self.vboxlayout5.setMargin(0) + self.vboxlayout5.setSpacing(0) + self.vboxlayout5.setObjectName("vboxlayout5") + + self.hboxlayout4 = QtGui.QHBoxLayout() + self.hboxlayout4.setMargin(0) + self.hboxlayout4.setSpacing(4) + self.hboxlayout4.setObjectName("hboxlayout4") + + self.textLabel1_4 = QtGui.QLabel(self.compassGroupBox) + self.textLabel1_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_4.setObjectName("textLabel1_4") + self.hboxlayout4.addWidget(self.textLabel1_4) + + self.compass_position_combox = QtGui.QComboBox(self.compassGroupBox) + self.compass_position_combox.setObjectName("compass_position_combox") + self.hboxlayout4.addWidget(self.compass_position_combox) + self.vboxlayout5.addLayout(self.hboxlayout4) + + self.display_compass_labels_checkbox = QtGui.QCheckBox(self.compassGroupBox) + self.display_compass_labels_checkbox.setChecked(True) + self.display_compass_labels_checkbox.setObjectName("display_compass_labels_checkbox") + self.vboxlayout5.addWidget(self.display_compass_labels_checkbox) + self.gridlayout7.addLayout(self.vboxlayout5,0,0,1,1) + self.vboxlayout4.addWidget(self.compassGroupBox) + + self.groupBox7_2 = QtGui.QGroupBox(self.ModelView) + self.groupBox7_2.setObjectName("groupBox7_2") + + self.gridlayout8 = QtGui.QGridLayout(self.groupBox7_2) + self.gridlayout8.setMargin(4) + self.gridlayout8.setSpacing(0) + self.gridlayout8.setObjectName("gridlayout8") + + self.display_pov_axis_checkbox = QtGui.QCheckBox(self.groupBox7_2) + self.display_pov_axis_checkbox.setChecked(False) + self.display_pov_axis_checkbox.setObjectName("display_pov_axis_checkbox") + self.gridlayout8.addWidget(self.display_pov_axis_checkbox,1,0,1,1) + + self.display_origin_axis_checkbox = QtGui.QCheckBox(self.groupBox7_2) + self.display_origin_axis_checkbox.setChecked(True) + self.display_origin_axis_checkbox.setObjectName("display_origin_axis_checkbox") + self.gridlayout8.addWidget(self.display_origin_axis_checkbox,0,0,1,1) + self.vboxlayout4.addWidget(self.groupBox7_2) + + self.enableFogCheckBox = QtGui.QCheckBox(self.ModelView) + self.enableFogCheckBox.setObjectName("enableFogCheckBox") + self.vboxlayout4.addWidget(self.enableFogCheckBox) + + spacerItem5 = QtGui.QSpacerItem(20,41,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout4.addItem(spacerItem5) + self.gridlayout6.addLayout(self.vboxlayout4,0,0,1,1) + + spacerItem6 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout6.addItem(spacerItem6,0,1,1,1) + self.prefsStackedWidget.addWidget(self.ModelView) + + self.ZoomPanandRotate = QtGui.QWidget() + self.ZoomPanandRotate.setObjectName("ZoomPanandRotate") + + self.gridlayout9 = QtGui.QGridLayout(self.ZoomPanandRotate) + self.gridlayout9.setMargin(9) + self.gridlayout9.setSpacing(6) + self.gridlayout9.setObjectName("gridlayout9") + + self.vboxlayout6 = QtGui.QVBoxLayout() + self.vboxlayout6.setMargin(0) + self.vboxlayout6.setSpacing(6) + self.vboxlayout6.setObjectName("vboxlayout6") + + self.groupBox8 = QtGui.QGroupBox(self.ZoomPanandRotate) + self.groupBox8.setObjectName("groupBox8") + + self.gridlayout10 = QtGui.QGridLayout(self.groupBox8) + self.gridlayout10.setMargin(4) + self.gridlayout10.setSpacing(0) + self.gridlayout10.setObjectName("gridlayout10") + + self.hboxlayout5 = QtGui.QHBoxLayout() + self.hboxlayout5.setMargin(0) + self.hboxlayout5.setSpacing(0) + self.hboxlayout5.setObjectName("hboxlayout5") + + self.animate_views_checkbox = QtGui.QCheckBox(self.groupBox8) + self.animate_views_checkbox.setChecked(True) + self.animate_views_checkbox.setObjectName("animate_views_checkbox") + self.hboxlayout5.addWidget(self.animate_views_checkbox) + + spacerItem7 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout5.addItem(spacerItem7) + self.gridlayout10.addLayout(self.hboxlayout5,0,0,1,1) + + self.hboxlayout6 = QtGui.QHBoxLayout() + self.hboxlayout6.setMargin(0) + self.hboxlayout6.setSpacing(4) + self.hboxlayout6.setObjectName("hboxlayout6") + + self.vboxlayout7 = QtGui.QVBoxLayout() + self.vboxlayout7.setMargin(0) + self.vboxlayout7.setSpacing(0) + self.vboxlayout7.setObjectName("vboxlayout7") + + spacerItem8 = QtGui.QSpacerItem(101,20,QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Minimum) + self.vboxlayout7.addItem(spacerItem8) + + self.textLabel1_5 = QtGui.QLabel(self.groupBox8) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.textLabel1_5.sizePolicy().hasHeightForWidth()) + self.textLabel1_5.setSizePolicy(sizePolicy) + self.textLabel1_5.setScaledContents(False) + self.textLabel1_5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_5.setObjectName("textLabel1_5") + self.vboxlayout7.addWidget(self.textLabel1_5) + + spacerItem9 = QtGui.QSpacerItem(101,20,QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Minimum) + self.vboxlayout7.addItem(spacerItem9) + + self.rotationSensitivity_txtlbl = QtGui.QLabel(self.groupBox8) + self.rotationSensitivity_txtlbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.rotationSensitivity_txtlbl.setObjectName("rotationSensitivity_txtlbl") + self.vboxlayout7.addWidget(self.rotationSensitivity_txtlbl) + self.hboxlayout6.addLayout(self.vboxlayout7) + + self.gridlayout11 = QtGui.QGridLayout() + self.gridlayout11.setMargin(0) + self.gridlayout11.setSpacing(0) + self.gridlayout11.setObjectName("gridlayout11") + + spacerItem10 = QtGui.QSpacerItem(23,16,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout11.addItem(spacerItem10,2,3,1,1) + + self.textLabel2_3 = QtGui.QLabel(self.groupBox8) + self.textLabel2_3.setObjectName("textLabel2_3") + self.gridlayout11.addWidget(self.textLabel2_3,0,0,1,1) + + spacerItem11 = QtGui.QSpacerItem(87,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout11.addItem(spacerItem11,2,1,1,1) + + self.textLabel2_3_2 = QtGui.QLabel(self.groupBox8) + self.textLabel2_3_2.setObjectName("textLabel2_3_2") + self.gridlayout11.addWidget(self.textLabel2_3_2,2,0,1,1) + + spacerItem12 = QtGui.QSpacerItem(88,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout11.addItem(spacerItem12,0,1,1,1) + + spacerItem13 = QtGui.QSpacerItem(23,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout11.addItem(spacerItem13,1,3,1,1) + + self.mouseSpeedDuringRotation_slider = QtGui.QSlider(self.groupBox8) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(3),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.mouseSpeedDuringRotation_slider.sizePolicy().hasHeightForWidth()) + self.mouseSpeedDuringRotation_slider.setSizePolicy(sizePolicy) + self.mouseSpeedDuringRotation_slider.setMinimumSize(QtCore.QSize(125,0)) + self.mouseSpeedDuringRotation_slider.setMinimum(30) + self.mouseSpeedDuringRotation_slider.setMaximum(100) + self.mouseSpeedDuringRotation_slider.setProperty("value",QtCore.QVariant(50)) + self.mouseSpeedDuringRotation_slider.setOrientation(QtCore.Qt.Horizontal) + self.mouseSpeedDuringRotation_slider.setObjectName("mouseSpeedDuringRotation_slider") + self.gridlayout11.addWidget(self.mouseSpeedDuringRotation_slider,3,0,1,3) + + spacerItem14 = QtGui.QSpacerItem(23,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout11.addItem(spacerItem14,0,3,1,1) + + self.textLabel3_4_2 = QtGui.QLabel(self.groupBox8) + self.textLabel3_4_2.setObjectName("textLabel3_4_2") + self.gridlayout11.addWidget(self.textLabel3_4_2,2,2,1,1) + + self.resetMouseSpeedDuringRotation_btn = QtGui.QToolButton(self.groupBox8) + self.resetMouseSpeedDuringRotation_btn.setEnabled(False) + self.resetMouseSpeedDuringRotation_btn.setIcon(QtGui.QIcon("../../../../../:icons/UserPrefsDialog_image0")) + self.resetMouseSpeedDuringRotation_btn.setObjectName("resetMouseSpeedDuringRotation_btn") + self.gridlayout11.addWidget(self.resetMouseSpeedDuringRotation_btn,3,3,1,1) + + self.animation_speed_slider = QtGui.QSlider(self.groupBox8) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(3),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.animation_speed_slider.sizePolicy().hasHeightForWidth()) + self.animation_speed_slider.setSizePolicy(sizePolicy) + self.animation_speed_slider.setMinimumSize(QtCore.QSize(125,0)) + self.animation_speed_slider.setMinimum(-300) + self.animation_speed_slider.setMaximum(-25) + self.animation_speed_slider.setOrientation(QtCore.Qt.Horizontal) + self.animation_speed_slider.setObjectName("animation_speed_slider") + self.gridlayout11.addWidget(self.animation_speed_slider,1,0,1,3) + + self.textLabel3_4 = QtGui.QLabel(self.groupBox8) + self.textLabel3_4.setObjectName("textLabel3_4") + self.gridlayout11.addWidget(self.textLabel3_4,0,2,1,1) + self.hboxlayout6.addLayout(self.gridlayout11) + self.gridlayout10.addLayout(self.hboxlayout6,1,0,1,1) + self.vboxlayout6.addWidget(self.groupBox8) + + self.groupBox_4 = QtGui.QGroupBox(self.ZoomPanandRotate) + self.groupBox_4.setObjectName("groupBox_4") + + self.gridlayout12 = QtGui.QGridLayout(self.groupBox_4) + self.gridlayout12.setMargin(4) + self.gridlayout12.setSpacing(4) + self.gridlayout12.setObjectName("gridlayout12") + + self.hboxlayout7 = QtGui.QHBoxLayout() + self.hboxlayout7.setMargin(0) + self.hboxlayout7.setSpacing(4) + self.hboxlayout7.setObjectName("hboxlayout7") + + self.vboxlayout8 = QtGui.QVBoxLayout() + self.vboxlayout8.setMargin(0) + self.vboxlayout8.setSpacing(4) + self.vboxlayout8.setObjectName("vboxlayout8") + + self.label_19 = QtGui.QLabel(self.groupBox_4) + self.label_19.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_19.setObjectName("label_19") + self.vboxlayout8.addWidget(self.label_19) + + self.label_17 = QtGui.QLabel(self.groupBox_4) + self.label_17.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_17.setObjectName("label_17") + self.vboxlayout8.addWidget(self.label_17) + + self.label_18 = QtGui.QLabel(self.groupBox_4) + self.label_18.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_18.setObjectName("label_18") + self.vboxlayout8.addWidget(self.label_18) + self.hboxlayout7.addLayout(self.vboxlayout8) + + self.vboxlayout9 = QtGui.QVBoxLayout() + self.vboxlayout9.setMargin(0) + self.vboxlayout9.setSpacing(4) + self.vboxlayout9.setObjectName("vboxlayout9") + + self.mouseWheelDirectionComboBox = QtGui.QComboBox(self.groupBox_4) + self.mouseWheelDirectionComboBox.setObjectName("mouseWheelDirectionComboBox") + self.vboxlayout9.addWidget(self.mouseWheelDirectionComboBox) + + self.mouseWheelZoomInPointComboBox = QtGui.QComboBox(self.groupBox_4) + self.mouseWheelZoomInPointComboBox.setObjectName("mouseWheelZoomInPointComboBox") + self.vboxlayout9.addWidget(self.mouseWheelZoomInPointComboBox) + + self.mouseWheelZoomOutPointComboBox = QtGui.QComboBox(self.groupBox_4) + self.mouseWheelZoomOutPointComboBox.setObjectName("mouseWheelZoomOutPointComboBox") + self.vboxlayout9.addWidget(self.mouseWheelZoomOutPointComboBox) + self.hboxlayout7.addLayout(self.vboxlayout9) + self.gridlayout12.addLayout(self.hboxlayout7,0,0,1,1) + + self.hboxlayout8 = QtGui.QHBoxLayout() + self.hboxlayout8.setMargin(0) + self.hboxlayout8.setSpacing(4) + self.hboxlayout8.setObjectName("hboxlayout8") + + self.label_20 = QtGui.QLabel(self.groupBox_4) + self.label_20.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_20.setObjectName("label_20") + self.hboxlayout8.addWidget(self.label_20) + + self.hhTimeoutIntervalDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox_4) + self.hhTimeoutIntervalDoubleSpinBox.setDecimals(1) + self.hhTimeoutIntervalDoubleSpinBox.setMaximum(1.0) + self.hhTimeoutIntervalDoubleSpinBox.setSingleStep(0.1) + self.hhTimeoutIntervalDoubleSpinBox.setProperty("value",QtCore.QVariant(0.5)) + self.hhTimeoutIntervalDoubleSpinBox.setObjectName("hhTimeoutIntervalDoubleSpinBox") + self.hboxlayout8.addWidget(self.hhTimeoutIntervalDoubleSpinBox) + self.gridlayout12.addLayout(self.hboxlayout8,1,0,1,1) + self.vboxlayout6.addWidget(self.groupBox_4) + + spacerItem15 = QtGui.QSpacerItem(20,161,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout6.addItem(spacerItem15) + self.gridlayout9.addLayout(self.vboxlayout6,0,0,1,1) + + spacerItem16 = QtGui.QSpacerItem(231,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout9.addItem(spacerItem16,0,1,1,1) + self.prefsStackedWidget.addWidget(self.ZoomPanandRotate) + + self.Rulers = QtGui.QWidget() + self.Rulers.setObjectName("Rulers") + + self.gridlayout13 = QtGui.QGridLayout(self.Rulers) + self.gridlayout13.setMargin(9) + self.gridlayout13.setSpacing(6) + self.gridlayout13.setObjectName("gridlayout13") + + spacerItem17 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout13.addItem(spacerItem17,0,1,1,1) + + self.vboxlayout10 = QtGui.QVBoxLayout() + self.vboxlayout10.setMargin(0) + self.vboxlayout10.setSpacing(6) + self.vboxlayout10.setObjectName("vboxlayout10") + + self.rulersGroupBox = QtGui.QGroupBox(self.Rulers) + self.rulersGroupBox.setObjectName("rulersGroupBox") + + self.gridlayout14 = QtGui.QGridLayout(self.rulersGroupBox) + self.gridlayout14.setMargin(4) + self.gridlayout14.setSpacing(4) + self.gridlayout14.setObjectName("gridlayout14") + + self.label_5 = QtGui.QLabel(self.rulersGroupBox) + self.label_5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_5.setObjectName("label_5") + self.gridlayout14.addWidget(self.label_5,3,0,1,1) + + self.textLabel3_2_4 = QtGui.QLabel(self.rulersGroupBox) + self.textLabel3_2_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel3_2_4.setObjectName("textLabel3_2_4") + self.gridlayout14.addWidget(self.textLabel3_2_4,2,0,1,1) + + self.label_10 = QtGui.QLabel(self.rulersGroupBox) + self.label_10.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_10.setObjectName("label_10") + self.gridlayout14.addWidget(self.label_10,1,0,1,1) + + self.rulerPositionComboBox = QtGui.QComboBox(self.rulersGroupBox) + self.rulerPositionComboBox.setObjectName("rulerPositionComboBox") + self.gridlayout14.addWidget(self.rulerPositionComboBox,1,1,1,1) + + self.hboxlayout9 = QtGui.QHBoxLayout() + self.hboxlayout9.setMargin(0) + self.hboxlayout9.setSpacing(4) + self.hboxlayout9.setObjectName("hboxlayout9") + + self.ruler_color_frame = QtGui.QFrame(self.rulersGroupBox) + self.ruler_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.ruler_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.ruler_color_frame.setFrameShape(QtGui.QFrame.Box) + self.ruler_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.ruler_color_frame.setObjectName("ruler_color_frame") + self.hboxlayout9.addWidget(self.ruler_color_frame) + + self.ruler_color_btn = QtGui.QPushButton(self.rulersGroupBox) + self.ruler_color_btn.setAutoDefault(False) + self.ruler_color_btn.setObjectName("ruler_color_btn") + self.hboxlayout9.addWidget(self.ruler_color_btn) + self.gridlayout14.addLayout(self.hboxlayout9,2,1,1,1) + + self.rulerOpacitySpinBox = QtGui.QSpinBox(self.rulersGroupBox) + self.rulerOpacitySpinBox.setMaximum(100) + self.rulerOpacitySpinBox.setProperty("value",QtCore.QVariant(70)) + self.rulerOpacitySpinBox.setObjectName("rulerOpacitySpinBox") + self.gridlayout14.addWidget(self.rulerOpacitySpinBox,3,1,1,1) + + self.rulerDisplayComboBox = QtGui.QComboBox(self.rulersGroupBox) + self.rulerDisplayComboBox.setObjectName("rulerDisplayComboBox") + self.gridlayout14.addWidget(self.rulerDisplayComboBox,0,1,1,1) + + self.label_12 = QtGui.QLabel(self.rulersGroupBox) + self.label_12.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_12.setObjectName("label_12") + self.gridlayout14.addWidget(self.label_12,0,0,1,1) + + self.showRulersInPerspectiveViewCheckBox = QtGui.QCheckBox(self.rulersGroupBox) + self.showRulersInPerspectiveViewCheckBox.setObjectName("showRulersInPerspectiveViewCheckBox") + self.gridlayout14.addWidget(self.showRulersInPerspectiveViewCheckBox,4,0,1,2) + self.vboxlayout10.addWidget(self.rulersGroupBox) + + spacerItem18 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout10.addItem(spacerItem18) + self.gridlayout13.addLayout(self.vboxlayout10,0,0,1,1) + self.prefsStackedWidget.addWidget(self.Rulers) + + self.Atoms = QtGui.QWidget() + self.Atoms.setObjectName("Atoms") + + self.gridlayout15 = QtGui.QGridLayout(self.Atoms) + self.gridlayout15.setMargin(9) + self.gridlayout15.setSpacing(6) + self.gridlayout15.setObjectName("gridlayout15") + + spacerItem19 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout15.addItem(spacerItem19,0,1,1,1) + + self.vboxlayout11 = QtGui.QVBoxLayout() + self.vboxlayout11.setMargin(0) + self.vboxlayout11.setSpacing(4) + self.vboxlayout11.setObjectName("vboxlayout11") + + self.atom_colors_grpbox = QtGui.QGroupBox(self.Atoms) + self.atom_colors_grpbox.setObjectName("atom_colors_grpbox") + + self.gridlayout16 = QtGui.QGridLayout(self.atom_colors_grpbox) + self.gridlayout16.setMargin(4) + self.gridlayout16.setSpacing(4) + self.gridlayout16.setObjectName("gridlayout16") + + self.hboxlayout10 = QtGui.QHBoxLayout() + self.hboxlayout10.setMargin(0) + self.hboxlayout10.setSpacing(6) + self.hboxlayout10.setObjectName("hboxlayout10") + + spacerItem20 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout10.addItem(spacerItem20) + + self.change_element_colors_btn = QtGui.QPushButton(self.atom_colors_grpbox) + self.change_element_colors_btn.setAutoDefault(False) + self.change_element_colors_btn.setObjectName("change_element_colors_btn") + self.hboxlayout10.addWidget(self.change_element_colors_btn) + self.gridlayout16.addLayout(self.hboxlayout10,0,0,1,1) + + self.groupBox13 = QtGui.QGroupBox(self.atom_colors_grpbox) + self.groupBox13.setObjectName("groupBox13") + + self.vboxlayout12 = QtGui.QVBoxLayout(self.groupBox13) + self.vboxlayout12.setMargin(4) + self.vboxlayout12.setSpacing(4) + self.vboxlayout12.setObjectName("vboxlayout12") + + self.gridlayout17 = QtGui.QGridLayout() + self.gridlayout17.setMargin(0) + self.gridlayout17.setSpacing(2) + self.gridlayout17.setObjectName("gridlayout17") + + self.textLabel3_2_3 = QtGui.QLabel(self.groupBox13) + self.textLabel3_2_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel3_2_3.setObjectName("textLabel3_2_3") + self.gridlayout17.addWidget(self.textLabel3_2_3,0,0,1,1) + + self.hotspot_lbl_2 = QtGui.QLabel(self.groupBox13) + self.hotspot_lbl_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.hotspot_lbl_2.setObjectName("hotspot_lbl_2") + self.gridlayout17.addWidget(self.hotspot_lbl_2,2,0,1,1) + + self.hotspot_lbl = QtGui.QLabel(self.groupBox13) + self.hotspot_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.hotspot_lbl.setObjectName("hotspot_lbl") + self.gridlayout17.addWidget(self.hotspot_lbl,3,0,1,1) + + self.hboxlayout11 = QtGui.QHBoxLayout() + self.hboxlayout11.setMargin(0) + self.hboxlayout11.setSpacing(4) + self.hboxlayout11.setObjectName("hboxlayout11") + + self.bondpoint_hilite_color_frame = QtGui.QFrame(self.groupBox13) + self.bondpoint_hilite_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.bondpoint_hilite_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.bondpoint_hilite_color_frame.setFrameShape(QtGui.QFrame.Box) + self.bondpoint_hilite_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.bondpoint_hilite_color_frame.setObjectName("bondpoint_hilite_color_frame") + self.hboxlayout11.addWidget(self.bondpoint_hilite_color_frame) + + self.bondpoint_hilite_color_btn = QtGui.QPushButton(self.groupBox13) + self.bondpoint_hilite_color_btn.setAutoDefault(False) + self.bondpoint_hilite_color_btn.setDefault(False) + self.bondpoint_hilite_color_btn.setObjectName("bondpoint_hilite_color_btn") + self.hboxlayout11.addWidget(self.bondpoint_hilite_color_btn) + self.gridlayout17.addLayout(self.hboxlayout11,2,1,1,1) + + self.hboxlayout12 = QtGui.QHBoxLayout() + self.hboxlayout12.setMargin(0) + self.hboxlayout12.setSpacing(4) + self.hboxlayout12.setObjectName("hboxlayout12") + + self.atom_hilite_color_frame = QtGui.QFrame(self.groupBox13) + self.atom_hilite_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.atom_hilite_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.atom_hilite_color_frame.setFrameShape(QtGui.QFrame.Box) + self.atom_hilite_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.atom_hilite_color_frame.setObjectName("atom_hilite_color_frame") + self.hboxlayout12.addWidget(self.atom_hilite_color_frame) + + self.atom_hilite_color_btn = QtGui.QPushButton(self.groupBox13) + self.atom_hilite_color_btn.setAutoDefault(False) + self.atom_hilite_color_btn.setObjectName("atom_hilite_color_btn") + self.hboxlayout12.addWidget(self.atom_hilite_color_btn) + self.gridlayout17.addLayout(self.hboxlayout12,0,1,1,1) + + self.hboxlayout13 = QtGui.QHBoxLayout() + self.hboxlayout13.setMargin(0) + self.hboxlayout13.setSpacing(4) + self.hboxlayout13.setObjectName("hboxlayout13") + + self.hotspot_color_frame = QtGui.QFrame(self.groupBox13) + self.hotspot_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.hotspot_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.hotspot_color_frame.setFrameShape(QtGui.QFrame.Box) + self.hotspot_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.hotspot_color_frame.setObjectName("hotspot_color_frame") + self.hboxlayout13.addWidget(self.hotspot_color_frame) + + self.hotspot_color_btn = QtGui.QPushButton(self.groupBox13) + self.hotspot_color_btn.setAutoDefault(False) + self.hotspot_color_btn.setObjectName("hotspot_color_btn") + self.hboxlayout13.addWidget(self.hotspot_color_btn) + self.gridlayout17.addLayout(self.hboxlayout13,3,1,1,1) + self.vboxlayout12.addLayout(self.gridlayout17) + + self.hboxlayout14 = QtGui.QHBoxLayout() + self.hboxlayout14.setMargin(0) + self.hboxlayout14.setSpacing(6) + self.hboxlayout14.setObjectName("hboxlayout14") + + spacerItem21 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout14.addItem(spacerItem21) + + self.reset_atom_colors_btn = QtGui.QPushButton(self.groupBox13) + self.reset_atom_colors_btn.setAutoDefault(False) + self.reset_atom_colors_btn.setObjectName("reset_atom_colors_btn") + self.hboxlayout14.addWidget(self.reset_atom_colors_btn) + self.vboxlayout12.addLayout(self.hboxlayout14) + self.gridlayout16.addWidget(self.groupBox13,1,0,1,1) + self.vboxlayout11.addWidget(self.atom_colors_grpbox) + + self.hboxlayout15 = QtGui.QHBoxLayout() + self.hboxlayout15.setMargin(0) + self.hboxlayout15.setSpacing(6) + self.hboxlayout15.setObjectName("hboxlayout15") + + self.textLabel1_7 = QtGui.QLabel(self.Atoms) + self.textLabel1_7.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_7.setObjectName("textLabel1_7") + self.hboxlayout15.addWidget(self.textLabel1_7) + + self.level_of_detail_combox = QtGui.QComboBox(self.Atoms) + self.level_of_detail_combox.setObjectName("level_of_detail_combox") + self.hboxlayout15.addWidget(self.level_of_detail_combox) + + spacerItem22 = QtGui.QSpacerItem(20,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout15.addItem(spacerItem22) + self.vboxlayout11.addLayout(self.hboxlayout15) + + self.hboxlayout16 = QtGui.QHBoxLayout() + self.hboxlayout16.setMargin(0) + self.hboxlayout16.setSpacing(6) + self.hboxlayout16.setObjectName("hboxlayout16") + + self.textLabel1_3_2 = QtGui.QLabel(self.Atoms) + self.textLabel1_3_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_3_2.setObjectName("textLabel1_3_2") + self.hboxlayout16.addWidget(self.textLabel1_3_2) + + self.cpk_atom_rad_spinbox = QtGui.QSpinBox(self.Atoms) + self.cpk_atom_rad_spinbox.setMaximum(125) + self.cpk_atom_rad_spinbox.setMinimum(50) + self.cpk_atom_rad_spinbox.setProperty("value",QtCore.QVariant(100)) + self.cpk_atom_rad_spinbox.setObjectName("cpk_atom_rad_spinbox") + self.hboxlayout16.addWidget(self.cpk_atom_rad_spinbox) + + spacerItem23 = QtGui.QSpacerItem(16,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout16.addItem(spacerItem23) + self.vboxlayout11.addLayout(self.hboxlayout16) + + self.hboxlayout17 = QtGui.QHBoxLayout() + self.hboxlayout17.setMargin(0) + self.hboxlayout17.setSpacing(6) + self.hboxlayout17.setObjectName("hboxlayout17") + + self.textLabel1_3_2_2 = QtGui.QLabel(self.Atoms) + self.textLabel1_3_2_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_3_2_2.setObjectName("textLabel1_3_2_2") + self.hboxlayout17.addWidget(self.textLabel1_3_2_2) + + self.cpk_scale_factor_linedit = QtGui.QLineEdit(self.Atoms) + self.cpk_scale_factor_linedit.setMaximumSize(QtCore.QSize(40,32767)) + self.cpk_scale_factor_linedit.setReadOnly(True) + self.cpk_scale_factor_linedit.setObjectName("cpk_scale_factor_linedit") + self.hboxlayout17.addWidget(self.cpk_scale_factor_linedit) + + self.cpk_scale_factor_slider = QtGui.QSlider(self.Atoms) + self.cpk_scale_factor_slider.setMinimum(100) + self.cpk_scale_factor_slider.setMaximum(200) + self.cpk_scale_factor_slider.setProperty("value",QtCore.QVariant(155)) + self.cpk_scale_factor_slider.setOrientation(QtCore.Qt.Horizontal) + self.cpk_scale_factor_slider.setTickInterval(10) + self.cpk_scale_factor_slider.setObjectName("cpk_scale_factor_slider") + self.hboxlayout17.addWidget(self.cpk_scale_factor_slider) + + self.reset_cpk_scale_factor_btn = QtGui.QToolButton(self.Atoms) + self.reset_cpk_scale_factor_btn.setIcon(QtGui.QIcon("../../../../../:icons/UserPrefsDialog_image0")) + self.reset_cpk_scale_factor_btn.setObjectName("reset_cpk_scale_factor_btn") + self.hboxlayout17.addWidget(self.reset_cpk_scale_factor_btn) + self.vboxlayout11.addLayout(self.hboxlayout17) + + self.overlappingAtomIndicatorsCheckBox = QtGui.QCheckBox(self.Atoms) + self.overlappingAtomIndicatorsCheckBox.setObjectName("overlappingAtomIndicatorsCheckBox") + self.vboxlayout11.addWidget(self.overlappingAtomIndicatorsCheckBox) + + self.keepBondsTransmuteCheckBox = QtGui.QCheckBox(self.Atoms) + self.keepBondsTransmuteCheckBox.setObjectName("keepBondsTransmuteCheckBox") + self.vboxlayout11.addWidget(self.keepBondsTransmuteCheckBox) + + spacerItem24 = QtGui.QSpacerItem(20,30,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout11.addItem(spacerItem24) + self.gridlayout15.addLayout(self.vboxlayout11,0,0,1,1) + self.prefsStackedWidget.addWidget(self.Atoms) + + self.Bonds = QtGui.QWidget() + self.Bonds.setObjectName("Bonds") + + self.gridlayout18 = QtGui.QGridLayout(self.Bonds) + self.gridlayout18.setMargin(9) + self.gridlayout18.setSpacing(6) + self.gridlayout18.setObjectName("gridlayout18") + + spacerItem25 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout18.addItem(spacerItem25,0,1,1,1) + + self.vboxlayout13 = QtGui.QVBoxLayout() + self.vboxlayout13.setMargin(0) + self.vboxlayout13.setSpacing(6) + self.vboxlayout13.setObjectName("vboxlayout13") + + self.groupBox4 = QtGui.QGroupBox(self.Bonds) + self.groupBox4.setObjectName("groupBox4") + + self.vboxlayout14 = QtGui.QVBoxLayout(self.groupBox4) + self.vboxlayout14.setMargin(4) + self.vboxlayout14.setSpacing(4) + self.vboxlayout14.setObjectName("vboxlayout14") + + self.gridlayout19 = QtGui.QGridLayout() + self.gridlayout19.setMargin(0) + self.gridlayout19.setSpacing(2) + self.gridlayout19.setObjectName("gridlayout19") + + self.textLabel3_2 = QtGui.QLabel(self.groupBox4) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(5),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.textLabel3_2.sizePolicy().hasHeightForWidth()) + self.textLabel3_2.setSizePolicy(sizePolicy) + self.textLabel3_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel3_2.setObjectName("textLabel3_2") + self.gridlayout19.addWidget(self.textLabel3_2,0,0,1,1) + + self.hboxlayout18 = QtGui.QHBoxLayout() + self.hboxlayout18.setMargin(0) + self.hboxlayout18.setSpacing(4) + self.hboxlayout18.setObjectName("hboxlayout18") + + self.bond_stretch_color_frame = QtGui.QFrame(self.groupBox4) + self.bond_stretch_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.bond_stretch_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.bond_stretch_color_frame.setFrameShape(QtGui.QFrame.Box) + self.bond_stretch_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.bond_stretch_color_frame.setObjectName("bond_stretch_color_frame") + self.hboxlayout18.addWidget(self.bond_stretch_color_frame) + + self.bond_stretch_color_btn = QtGui.QPushButton(self.groupBox4) + self.bond_stretch_color_btn.setAutoDefault(False) + self.bond_stretch_color_btn.setDefault(False) + self.bond_stretch_color_btn.setObjectName("bond_stretch_color_btn") + self.hboxlayout18.addWidget(self.bond_stretch_color_btn) + self.gridlayout19.addLayout(self.hboxlayout18,2,1,1,1) + + self.hboxlayout19 = QtGui.QHBoxLayout() + self.hboxlayout19.setMargin(0) + self.hboxlayout19.setSpacing(4) + self.hboxlayout19.setObjectName("hboxlayout19") + + self.bond_hilite_color_frame = QtGui.QFrame(self.groupBox4) + self.bond_hilite_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.bond_hilite_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.bond_hilite_color_frame.setFrameShape(QtGui.QFrame.Box) + self.bond_hilite_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.bond_hilite_color_frame.setObjectName("bond_hilite_color_frame") + self.hboxlayout19.addWidget(self.bond_hilite_color_frame) + + self.bond_hilite_color_btn = QtGui.QPushButton(self.groupBox4) + self.bond_hilite_color_btn.setAutoDefault(False) + self.bond_hilite_color_btn.setObjectName("bond_hilite_color_btn") + self.hboxlayout19.addWidget(self.bond_hilite_color_btn) + self.gridlayout19.addLayout(self.hboxlayout19,0,1,1,1) + + self.textLabel3_3 = QtGui.QLabel(self.groupBox4) + self.textLabel3_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel3_3.setObjectName("textLabel3_3") + self.gridlayout19.addWidget(self.textLabel3_3,3,0,1,1) + + self.hboxlayout20 = QtGui.QHBoxLayout() + self.hboxlayout20.setMargin(0) + self.hboxlayout20.setSpacing(4) + self.hboxlayout20.setObjectName("hboxlayout20") + + self.ballstick_bondcolor_frame = QtGui.QFrame(self.groupBox4) + self.ballstick_bondcolor_frame.setMinimumSize(QtCore.QSize(23,23)) + self.ballstick_bondcolor_frame.setMaximumSize(QtCore.QSize(23,23)) + self.ballstick_bondcolor_frame.setFrameShape(QtGui.QFrame.Box) + self.ballstick_bondcolor_frame.setFrameShadow(QtGui.QFrame.Plain) + self.ballstick_bondcolor_frame.setObjectName("ballstick_bondcolor_frame") + self.hboxlayout20.addWidget(self.ballstick_bondcolor_frame) + + self.ballstick_bondcolor_btn = QtGui.QPushButton(self.groupBox4) + self.ballstick_bondcolor_btn.setAutoDefault(False) + self.ballstick_bondcolor_btn.setObjectName("ballstick_bondcolor_btn") + self.hboxlayout20.addWidget(self.ballstick_bondcolor_btn) + self.gridlayout19.addLayout(self.hboxlayout20,1,1,1,1) + + self.textLabel3 = QtGui.QLabel(self.groupBox4) + self.textLabel3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel3.setObjectName("textLabel3") + self.gridlayout19.addWidget(self.textLabel3,1,0,1,1) + + self.textLabel3_2_2 = QtGui.QLabel(self.groupBox4) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(5),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.textLabel3_2_2.sizePolicy().hasHeightForWidth()) + self.textLabel3_2_2.setSizePolicy(sizePolicy) + self.textLabel3_2_2.setMinimumSize(QtCore.QSize(0,0)) + self.textLabel3_2_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel3_2_2.setObjectName("textLabel3_2_2") + self.gridlayout19.addWidget(self.textLabel3_2_2,2,0,1,1) + + self.hboxlayout21 = QtGui.QHBoxLayout() + self.hboxlayout21.setMargin(0) + self.hboxlayout21.setSpacing(4) + self.hboxlayout21.setObjectName("hboxlayout21") + + self.bond_vane_color_frame = QtGui.QFrame(self.groupBox4) + self.bond_vane_color_frame.setMinimumSize(QtCore.QSize(23,23)) + self.bond_vane_color_frame.setMaximumSize(QtCore.QSize(23,23)) + self.bond_vane_color_frame.setFrameShape(QtGui.QFrame.Box) + self.bond_vane_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.bond_vane_color_frame.setObjectName("bond_vane_color_frame") + self.hboxlayout21.addWidget(self.bond_vane_color_frame) + + self.bond_vane_color_btn = QtGui.QPushButton(self.groupBox4) + self.bond_vane_color_btn.setAutoDefault(False) + self.bond_vane_color_btn.setObjectName("bond_vane_color_btn") + self.hboxlayout21.addWidget(self.bond_vane_color_btn) + self.gridlayout19.addLayout(self.hboxlayout21,3,1,1,1) + self.vboxlayout14.addLayout(self.gridlayout19) + + self.hboxlayout22 = QtGui.QHBoxLayout() + self.hboxlayout22.setMargin(0) + self.hboxlayout22.setSpacing(6) + self.hboxlayout22.setObjectName("hboxlayout22") + + spacerItem26 = QtGui.QSpacerItem(20,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout22.addItem(spacerItem26) + + self.reset_bond_colors_btn = QtGui.QPushButton(self.groupBox4) + self.reset_bond_colors_btn.setAutoDefault(False) + self.reset_bond_colors_btn.setObjectName("reset_bond_colors_btn") + self.hboxlayout22.addWidget(self.reset_bond_colors_btn) + self.vboxlayout14.addLayout(self.hboxlayout22) + self.vboxlayout13.addWidget(self.groupBox4) + + self.hboxlayout23 = QtGui.QHBoxLayout() + self.hboxlayout23.setMargin(0) + self.hboxlayout23.setSpacing(4) + self.hboxlayout23.setObjectName("hboxlayout23") + + self.vboxlayout15 = QtGui.QVBoxLayout() + self.vboxlayout15.setMargin(0) + self.vboxlayout15.setSpacing(2) + self.vboxlayout15.setObjectName("vboxlayout15") + + self.textLabel1_3 = QtGui.QLabel(self.Bonds) + self.textLabel1_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_3.setObjectName("textLabel1_3") + self.vboxlayout15.addWidget(self.textLabel1_3) + + self.textLabel1 = QtGui.QLabel(self.Bonds) + self.textLabel1.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1.setObjectName("textLabel1") + self.vboxlayout15.addWidget(self.textLabel1) + self.hboxlayout23.addLayout(self.vboxlayout15) + + self.vboxlayout16 = QtGui.QVBoxLayout() + self.vboxlayout16.setMargin(0) + self.vboxlayout16.setSpacing(2) + self.vboxlayout16.setObjectName("vboxlayout16") + + self.cpk_cylinder_rad_spinbox = QtGui.QSpinBox(self.Bonds) + self.cpk_cylinder_rad_spinbox.setMaximum(400) + self.cpk_cylinder_rad_spinbox.setMinimum(50) + self.cpk_cylinder_rad_spinbox.setProperty("value",QtCore.QVariant(100)) + self.cpk_cylinder_rad_spinbox.setObjectName("cpk_cylinder_rad_spinbox") + self.vboxlayout16.addWidget(self.cpk_cylinder_rad_spinbox) + + self.bond_line_thickness_spinbox = QtGui.QSpinBox(self.Bonds) + self.bond_line_thickness_spinbox.setMaximum(4) + self.bond_line_thickness_spinbox.setMinimum(1) + self.bond_line_thickness_spinbox.setObjectName("bond_line_thickness_spinbox") + self.vboxlayout16.addWidget(self.bond_line_thickness_spinbox) + self.hboxlayout23.addLayout(self.vboxlayout16) + + spacerItem27 = QtGui.QSpacerItem(16,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout23.addItem(spacerItem27) + self.vboxlayout13.addLayout(self.hboxlayout23) + + self.high_order_bond_display_groupbox = QtGui.QGroupBox(self.Bonds) + self.high_order_bond_display_groupbox.setObjectName("high_order_bond_display_groupbox") + + self.vboxlayout17 = QtGui.QVBoxLayout(self.high_order_bond_display_groupbox) + self.vboxlayout17.setMargin(4) + self.vboxlayout17.setSpacing(0) + self.vboxlayout17.setObjectName("vboxlayout17") + + self.multCyl_radioButton = QtGui.QRadioButton(self.high_order_bond_display_groupbox) + self.multCyl_radioButton.setChecked(True) + self.multCyl_radioButton.setObjectName("multCyl_radioButton") + self.vboxlayout17.addWidget(self.multCyl_radioButton) + + self.vanes_radioButton = QtGui.QRadioButton(self.high_order_bond_display_groupbox) + self.vanes_radioButton.setObjectName("vanes_radioButton") + self.vboxlayout17.addWidget(self.vanes_radioButton) + + self.ribbons_radioButton = QtGui.QRadioButton(self.high_order_bond_display_groupbox) + self.ribbons_radioButton.setObjectName("ribbons_radioButton") + self.vboxlayout17.addWidget(self.ribbons_radioButton) + self.vboxlayout13.addWidget(self.high_order_bond_display_groupbox) + + self.vboxlayout18 = QtGui.QVBoxLayout() + self.vboxlayout18.setMargin(0) + self.vboxlayout18.setSpacing(0) + self.vboxlayout18.setObjectName("vboxlayout18") + + self.show_bond_labels_checkbox = QtGui.QCheckBox(self.Bonds) + self.show_bond_labels_checkbox.setObjectName("show_bond_labels_checkbox") + self.vboxlayout18.addWidget(self.show_bond_labels_checkbox) + + self.show_valence_errors_checkbox = QtGui.QCheckBox(self.Bonds) + self.show_valence_errors_checkbox.setObjectName("show_valence_errors_checkbox") + self.vboxlayout18.addWidget(self.show_valence_errors_checkbox) + + self.showBondStretchIndicators_checkBox = QtGui.QCheckBox(self.Bonds) + self.showBondStretchIndicators_checkBox.setObjectName("showBondStretchIndicators_checkBox") + self.vboxlayout18.addWidget(self.showBondStretchIndicators_checkBox) + self.vboxlayout13.addLayout(self.vboxlayout18) + + spacerItem28 = QtGui.QSpacerItem(20,144,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout13.addItem(spacerItem28) + self.gridlayout18.addLayout(self.vboxlayout13,0,0,1,1) + self.prefsStackedWidget.addWidget(self.Bonds) + + self.DNA = QtGui.QWidget() + self.DNA.setObjectName("DNA") + + self.gridlayout20 = QtGui.QGridLayout(self.DNA) + self.gridlayout20.setMargin(9) + self.gridlayout20.setSpacing(6) + self.gridlayout20.setObjectName("gridlayout20") + + spacerItem29 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout20.addItem(spacerItem29,0,1,1,1) + + self.vboxlayout19 = QtGui.QVBoxLayout() + self.vboxlayout19.setMargin(0) + self.vboxlayout19.setSpacing(4) + self.vboxlayout19.setObjectName("vboxlayout19") + + self.groupBox = QtGui.QGroupBox(self.DNA) + self.groupBox.setObjectName("groupBox") + + self.gridlayout21 = QtGui.QGridLayout(self.groupBox) + self.gridlayout21.setMargin(4) + self.gridlayout21.setSpacing(2) + self.gridlayout21.setObjectName("gridlayout21") + + self.hboxlayout24 = QtGui.QHBoxLayout() + self.hboxlayout24.setMargin(0) + self.hboxlayout24.setSpacing(4) + self.hboxlayout24.setObjectName("hboxlayout24") + + spacerItem30 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout24.addItem(spacerItem30) + + self.dnaRestoreFactoryDefaultsPushButton = QtGui.QPushButton(self.groupBox) + self.dnaRestoreFactoryDefaultsPushButton.setAutoDefault(False) + self.dnaRestoreFactoryDefaultsPushButton.setObjectName("dnaRestoreFactoryDefaultsPushButton") + self.hboxlayout24.addWidget(self.dnaRestoreFactoryDefaultsPushButton) + self.gridlayout21.addLayout(self.hboxlayout24,1,0,1,1) + + self.gridlayout22 = QtGui.QGridLayout() + self.gridlayout22.setMargin(0) + self.gridlayout22.setSpacing(2) + self.gridlayout22.setObjectName("gridlayout22") + + self.label_11 = QtGui.QLabel(self.groupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_11.sizePolicy().hasHeightForWidth()) + self.label_11.setSizePolicy(sizePolicy) + self.label_11.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_11.setObjectName("label_11") + self.gridlayout22.addWidget(self.label_11,0,0,1,1) + + self.dnaConformationComboBox = QtGui.QComboBox(self.groupBox) + self.dnaConformationComboBox.setObjectName("dnaConformationComboBox") + self.gridlayout22.addWidget(self.dnaConformationComboBox,0,1,1,1) + + self.label_6 = QtGui.QLabel(self.groupBox) + self.label_6.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_6.setObjectName("label_6") + self.gridlayout22.addWidget(self.label_6,2,0,1,1) + + self.label_7 = QtGui.QLabel(self.groupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_7.sizePolicy().hasHeightForWidth()) + self.label_7.setSizePolicy(sizePolicy) + self.label_7.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_7.setObjectName("label_7") + self.gridlayout22.addWidget(self.label_7,3,0,1,1) + + self.label_4 = QtGui.QLabel(self.groupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_4.sizePolicy().hasHeightForWidth()) + self.label_4.setSizePolicy(sizePolicy) + self.label_4.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_4.setObjectName("label_4") + self.gridlayout22.addWidget(self.label_4,1,0,1,1) + + self.hboxlayout25 = QtGui.QHBoxLayout() + self.hboxlayout25.setMargin(0) + self.hboxlayout25.setSpacing(4) + self.hboxlayout25.setObjectName("hboxlayout25") + + self.dnaDefaultSegmentColorFrame = QtGui.QFrame(self.groupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dnaDefaultSegmentColorFrame.sizePolicy().hasHeightForWidth()) + self.dnaDefaultSegmentColorFrame.setSizePolicy(sizePolicy) + self.dnaDefaultSegmentColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.dnaDefaultSegmentColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.dnaDefaultSegmentColorFrame.setFrameShape(QtGui.QFrame.Box) + self.dnaDefaultSegmentColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.dnaDefaultSegmentColorFrame.setObjectName("dnaDefaultSegmentColorFrame") + self.hboxlayout25.addWidget(self.dnaDefaultSegmentColorFrame) + + self.dnaDefaultSegmentColorPushButton = QtGui.QPushButton(self.groupBox) + self.dnaDefaultSegmentColorPushButton.setAutoDefault(False) + self.dnaDefaultSegmentColorPushButton.setObjectName("dnaDefaultSegmentColorPushButton") + self.hboxlayout25.addWidget(self.dnaDefaultSegmentColorPushButton) + self.gridlayout22.addLayout(self.hboxlayout25,3,1,1,1) + + self.dnaRiseDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox) + self.dnaRiseDoubleSpinBox.setDecimals(3) + self.dnaRiseDoubleSpinBox.setSingleStep(0.01) + self.dnaRiseDoubleSpinBox.setObjectName("dnaRiseDoubleSpinBox") + self.gridlayout22.addWidget(self.dnaRiseDoubleSpinBox,2,1,1,1) + + self.dnaBasesPerTurnDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox) + self.dnaBasesPerTurnDoubleSpinBox.setDecimals(2) + self.dnaBasesPerTurnDoubleSpinBox.setSingleStep(0.1) + self.dnaBasesPerTurnDoubleSpinBox.setObjectName("dnaBasesPerTurnDoubleSpinBox") + self.gridlayout22.addWidget(self.dnaBasesPerTurnDoubleSpinBox,1,1,1,1) + self.gridlayout21.addLayout(self.gridlayout22,0,0,1,1) + self.vboxlayout19.addWidget(self.groupBox) + + self.dna_reduced_model_options_grpbox = QtGui.QGroupBox(self.DNA) + self.dna_reduced_model_options_grpbox.setObjectName("dna_reduced_model_options_grpbox") + + self.gridlayout23 = QtGui.QGridLayout(self.dna_reduced_model_options_grpbox) + self.gridlayout23.setMargin(4) + self.gridlayout23.setSpacing(2) + self.gridlayout23.setObjectName("gridlayout23") + + self.hboxlayout26 = QtGui.QHBoxLayout() + self.hboxlayout26.setMargin(0) + self.hboxlayout26.setSpacing(2) + self.hboxlayout26.setObjectName("hboxlayout26") + + self.strandFivePrimeArrowheadsCustomColorCheckBox = QtGui.QCheckBox(self.dna_reduced_model_options_grpbox) + self.strandFivePrimeArrowheadsCustomColorCheckBox.setObjectName("strandFivePrimeArrowheadsCustomColorCheckBox") + self.hboxlayout26.addWidget(self.strandFivePrimeArrowheadsCustomColorCheckBox) + + self.hboxlayout27 = QtGui.QHBoxLayout() + self.hboxlayout27.setMargin(0) + self.hboxlayout27.setSpacing(4) + self.hboxlayout27.setObjectName("hboxlayout27") + + self.strandFivePrimeArrowheadsCustomColorFrame = QtGui.QFrame(self.dna_reduced_model_options_grpbox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.strandFivePrimeArrowheadsCustomColorFrame.sizePolicy().hasHeightForWidth()) + self.strandFivePrimeArrowheadsCustomColorFrame.setSizePolicy(sizePolicy) + self.strandFivePrimeArrowheadsCustomColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.strandFivePrimeArrowheadsCustomColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.strandFivePrimeArrowheadsCustomColorFrame.setFrameShape(QtGui.QFrame.Box) + self.strandFivePrimeArrowheadsCustomColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.strandFivePrimeArrowheadsCustomColorFrame.setObjectName("strandFivePrimeArrowheadsCustomColorFrame") + self.hboxlayout27.addWidget(self.strandFivePrimeArrowheadsCustomColorFrame) + + self.strandFivePrimeArrowheadsCustomColorPushButton = QtGui.QPushButton(self.dna_reduced_model_options_grpbox) + self.strandFivePrimeArrowheadsCustomColorPushButton.setAutoDefault(False) + self.strandFivePrimeArrowheadsCustomColorPushButton.setObjectName("strandFivePrimeArrowheadsCustomColorPushButton") + self.hboxlayout27.addWidget(self.strandFivePrimeArrowheadsCustomColorPushButton) + self.hboxlayout26.addLayout(self.hboxlayout27) + self.gridlayout23.addLayout(self.hboxlayout26,4,0,1,1) + + self.hboxlayout28 = QtGui.QHBoxLayout() + self.hboxlayout28.setMargin(0) + self.hboxlayout28.setSpacing(2) + self.hboxlayout28.setObjectName("hboxlayout28") + + self.strandThreePrimeArrowheadsCustomColorCheckBox = QtGui.QCheckBox(self.dna_reduced_model_options_grpbox) + self.strandThreePrimeArrowheadsCustomColorCheckBox.setObjectName("strandThreePrimeArrowheadsCustomColorCheckBox") + self.hboxlayout28.addWidget(self.strandThreePrimeArrowheadsCustomColorCheckBox) + + self.hboxlayout29 = QtGui.QHBoxLayout() + self.hboxlayout29.setMargin(0) + self.hboxlayout29.setSpacing(4) + self.hboxlayout29.setObjectName("hboxlayout29") + + self.strandThreePrimeArrowheadsCustomColorFrame = QtGui.QFrame(self.dna_reduced_model_options_grpbox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.strandThreePrimeArrowheadsCustomColorFrame.sizePolicy().hasHeightForWidth()) + self.strandThreePrimeArrowheadsCustomColorFrame.setSizePolicy(sizePolicy) + self.strandThreePrimeArrowheadsCustomColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.strandThreePrimeArrowheadsCustomColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.strandThreePrimeArrowheadsCustomColorFrame.setFrameShape(QtGui.QFrame.Box) + self.strandThreePrimeArrowheadsCustomColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.strandThreePrimeArrowheadsCustomColorFrame.setObjectName("strandThreePrimeArrowheadsCustomColorFrame") + self.hboxlayout29.addWidget(self.strandThreePrimeArrowheadsCustomColorFrame) + + self.strandThreePrimeArrowheadsCustomColorPushButton = QtGui.QPushButton(self.dna_reduced_model_options_grpbox) + self.strandThreePrimeArrowheadsCustomColorPushButton.setAutoDefault(False) + self.strandThreePrimeArrowheadsCustomColorPushButton.setObjectName("strandThreePrimeArrowheadsCustomColorPushButton") + self.hboxlayout29.addWidget(self.strandThreePrimeArrowheadsCustomColorPushButton) + self.hboxlayout28.addLayout(self.hboxlayout29) + self.gridlayout23.addLayout(self.hboxlayout28,3,0,1,1) + + self.arrowsOnFivePrimeEnds_checkBox = QtGui.QCheckBox(self.dna_reduced_model_options_grpbox) + self.arrowsOnFivePrimeEnds_checkBox.setChecked(True) + self.arrowsOnFivePrimeEnds_checkBox.setObjectName("arrowsOnFivePrimeEnds_checkBox") + self.gridlayout23.addWidget(self.arrowsOnFivePrimeEnds_checkBox,2,0,1,1) + + self.arrowsOnThreePrimeEnds_checkBox = QtGui.QCheckBox(self.dna_reduced_model_options_grpbox) + self.arrowsOnThreePrimeEnds_checkBox.setChecked(True) + self.arrowsOnThreePrimeEnds_checkBox.setObjectName("arrowsOnThreePrimeEnds_checkBox") + self.gridlayout23.addWidget(self.arrowsOnThreePrimeEnds_checkBox,1,0,1,1) + + self.arrowsOnBackBones_checkBox = QtGui.QCheckBox(self.dna_reduced_model_options_grpbox) + self.arrowsOnBackBones_checkBox.setObjectName("arrowsOnBackBones_checkBox") + self.gridlayout23.addWidget(self.arrowsOnBackBones_checkBox,0,0,1,1) + self.vboxlayout19.addWidget(self.dna_reduced_model_options_grpbox) + + spacerItem31 = QtGui.QSpacerItem(20,421,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout19.addItem(spacerItem31) + self.gridlayout20.addLayout(self.vboxlayout19,0,0,1,1) + self.prefsStackedWidget.addWidget(self.DNA) + + self.MinorGrooveErrorIndicators = QtGui.QWidget() + self.MinorGrooveErrorIndicators.setObjectName("MinorGrooveErrorIndicators") + + self.gridlayout24 = QtGui.QGridLayout(self.MinorGrooveErrorIndicators) + self.gridlayout24.setMargin(9) + self.gridlayout24.setSpacing(6) + self.gridlayout24.setObjectName("gridlayout24") + + spacerItem32 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout24.addItem(spacerItem32,0,1,1,1) + + self.vboxlayout20 = QtGui.QVBoxLayout() + self.vboxlayout20.setMargin(0) + self.vboxlayout20.setSpacing(6) + self.vboxlayout20.setObjectName("vboxlayout20") + + self.dnaDisplayMinorGrooveErrorGroupBox = QtGui.QGroupBox(self.MinorGrooveErrorIndicators) + self.dnaDisplayMinorGrooveErrorGroupBox.setCheckable(True) + self.dnaDisplayMinorGrooveErrorGroupBox.setChecked(False) + self.dnaDisplayMinorGrooveErrorGroupBox.setObjectName("dnaDisplayMinorGrooveErrorGroupBox") + + self.gridlayout25 = QtGui.QGridLayout(self.dnaDisplayMinorGrooveErrorGroupBox) + self.gridlayout25.setMargin(4) + self.gridlayout25.setSpacing(4) + self.gridlayout25.setObjectName("gridlayout25") + + self.vboxlayout21 = QtGui.QVBoxLayout() + self.vboxlayout21.setMargin(0) + self.vboxlayout21.setSpacing(2) + self.vboxlayout21.setObjectName("vboxlayout21") + + self.label_15 = QtGui.QLabel(self.dnaDisplayMinorGrooveErrorGroupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_15.sizePolicy().hasHeightForWidth()) + self.label_15.setSizePolicy(sizePolicy) + self.label_15.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_15.setObjectName("label_15") + self.vboxlayout21.addWidget(self.label_15) + + self.label_16 = QtGui.QLabel(self.dnaDisplayMinorGrooveErrorGroupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_16.sizePolicy().hasHeightForWidth()) + self.label_16.setSizePolicy(sizePolicy) + self.label_16.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_16.setObjectName("label_16") + self.vboxlayout21.addWidget(self.label_16) + + self.bg1_color_lbl_3 = QtGui.QLabel(self.dnaDisplayMinorGrooveErrorGroupBox) + self.bg1_color_lbl_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.bg1_color_lbl_3.setObjectName("bg1_color_lbl_3") + self.vboxlayout21.addWidget(self.bg1_color_lbl_3) + self.gridlayout25.addLayout(self.vboxlayout21,0,0,1,1) + + self.vboxlayout22 = QtGui.QVBoxLayout() + self.vboxlayout22.setMargin(0) + self.vboxlayout22.setSpacing(2) + self.vboxlayout22.setObjectName("vboxlayout22") + + self.dnaMinGrooveAngleSpinBox = QtGui.QSpinBox(self.dnaDisplayMinorGrooveErrorGroupBox) + self.dnaMinGrooveAngleSpinBox.setMaximum(179) + self.dnaMinGrooveAngleSpinBox.setProperty("value",QtCore.QVariant(0)) + self.dnaMinGrooveAngleSpinBox.setObjectName("dnaMinGrooveAngleSpinBox") + self.vboxlayout22.addWidget(self.dnaMinGrooveAngleSpinBox) + + self.dnaMaxGrooveAngleSpinBox = QtGui.QSpinBox(self.dnaDisplayMinorGrooveErrorGroupBox) + self.dnaMaxGrooveAngleSpinBox.setMaximum(179) + self.dnaMaxGrooveAngleSpinBox.setProperty("value",QtCore.QVariant(0)) + self.dnaMaxGrooveAngleSpinBox.setObjectName("dnaMaxGrooveAngleSpinBox") + self.vboxlayout22.addWidget(self.dnaMaxGrooveAngleSpinBox) + + self.hboxlayout30 = QtGui.QHBoxLayout() + self.hboxlayout30.setMargin(0) + self.hboxlayout30.setSpacing(4) + self.hboxlayout30.setObjectName("hboxlayout30") + + self.dnaGrooveIndicatorColorFrame = QtGui.QFrame(self.dnaDisplayMinorGrooveErrorGroupBox) + self.dnaGrooveIndicatorColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.dnaGrooveIndicatorColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.dnaGrooveIndicatorColorFrame.setFrameShape(QtGui.QFrame.Box) + self.dnaGrooveIndicatorColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.dnaGrooveIndicatorColorFrame.setObjectName("dnaGrooveIndicatorColorFrame") + self.hboxlayout30.addWidget(self.dnaGrooveIndicatorColorFrame) + + self.dnaGrooveIndicatorColorButton = QtGui.QPushButton(self.dnaDisplayMinorGrooveErrorGroupBox) + self.dnaGrooveIndicatorColorButton.setAutoDefault(False) + self.dnaGrooveIndicatorColorButton.setObjectName("dnaGrooveIndicatorColorButton") + self.hboxlayout30.addWidget(self.dnaGrooveIndicatorColorButton) + self.vboxlayout22.addLayout(self.hboxlayout30) + self.gridlayout25.addLayout(self.vboxlayout22,0,1,1,1) + + self.hboxlayout31 = QtGui.QHBoxLayout() + self.hboxlayout31.setMargin(0) + self.hboxlayout31.setSpacing(4) + self.hboxlayout31.setObjectName("hboxlayout31") + + spacerItem33 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout31.addItem(spacerItem33) + + self.dnaMinorGrooveRestoreFactoryDefaultsPushButton = QtGui.QPushButton(self.dnaDisplayMinorGrooveErrorGroupBox) + self.dnaMinorGrooveRestoreFactoryDefaultsPushButton.setAutoDefault(False) + self.dnaMinorGrooveRestoreFactoryDefaultsPushButton.setObjectName("dnaMinorGrooveRestoreFactoryDefaultsPushButton") + self.hboxlayout31.addWidget(self.dnaMinorGrooveRestoreFactoryDefaultsPushButton) + self.gridlayout25.addLayout(self.hboxlayout31,1,0,1,2) + self.vboxlayout20.addWidget(self.dnaDisplayMinorGrooveErrorGroupBox) + + spacerItem34 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout20.addItem(spacerItem34) + self.gridlayout24.addLayout(self.vboxlayout20,0,0,1,1) + self.prefsStackedWidget.addWidget(self.MinorGrooveErrorIndicators) + + self.BaseOrientationIndicators = QtGui.QWidget() + self.BaseOrientationIndicators.setObjectName("BaseOrientationIndicators") + + self.gridlayout26 = QtGui.QGridLayout(self.BaseOrientationIndicators) + self.gridlayout26.setMargin(9) + self.gridlayout26.setSpacing(6) + self.gridlayout26.setObjectName("gridlayout26") + + spacerItem35 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout26.addItem(spacerItem35,0,1,1,1) + + self.vboxlayout23 = QtGui.QVBoxLayout() + self.vboxlayout23.setMargin(0) + self.vboxlayout23.setSpacing(4) + self.vboxlayout23.setObjectName("vboxlayout23") + + self.dnaDisplayBaseOrientationIndicatorsGroupBox = QtGui.QGroupBox(self.BaseOrientationIndicators) + self.dnaDisplayBaseOrientationIndicatorsGroupBox.setCheckable(True) + self.dnaDisplayBaseOrientationIndicatorsGroupBox.setChecked(False) + self.dnaDisplayBaseOrientationIndicatorsGroupBox.setObjectName("dnaDisplayBaseOrientationIndicatorsGroupBox") + + self.gridlayout27 = QtGui.QGridLayout(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.gridlayout27.setMargin(4) + self.gridlayout27.setSpacing(2) + self.gridlayout27.setObjectName("gridlayout27") + + self.dnaBaseIndicatorsPlaneNormalComboBox = QtGui.QComboBox(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaBaseIndicatorsPlaneNormalComboBox.setObjectName("dnaBaseIndicatorsPlaneNormalComboBox") + self.gridlayout27.addWidget(self.dnaBaseIndicatorsPlaneNormalComboBox,0,1,1,1) + + self.bg1_color_lbl_6 = QtGui.QLabel(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.bg1_color_lbl_6.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.bg1_color_lbl_6.setObjectName("bg1_color_lbl_6") + self.gridlayout27.addWidget(self.bg1_color_lbl_6,2,0,1,1) + + self.hboxlayout32 = QtGui.QHBoxLayout() + self.hboxlayout32.setMargin(0) + self.hboxlayout32.setSpacing(4) + self.hboxlayout32.setObjectName("hboxlayout32") + + self.dnaBaseOrientationIndicatorsInvColorFrame = QtGui.QFrame(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaBaseOrientationIndicatorsInvColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.dnaBaseOrientationIndicatorsInvColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.dnaBaseOrientationIndicatorsInvColorFrame.setFrameShape(QtGui.QFrame.Box) + self.dnaBaseOrientationIndicatorsInvColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.dnaBaseOrientationIndicatorsInvColorFrame.setObjectName("dnaBaseOrientationIndicatorsInvColorFrame") + self.hboxlayout32.addWidget(self.dnaBaseOrientationIndicatorsInvColorFrame) + + self.dnaChooseBaseOrientationIndicatorsInvColorButton = QtGui.QPushButton(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaChooseBaseOrientationIndicatorsInvColorButton.setAutoDefault(False) + self.dnaChooseBaseOrientationIndicatorsInvColorButton.setObjectName("dnaChooseBaseOrientationIndicatorsInvColorButton") + self.hboxlayout32.addWidget(self.dnaChooseBaseOrientationIndicatorsInvColorButton) + self.gridlayout27.addLayout(self.hboxlayout32,2,1,1,1) + + self.dnaBaseOrientationIndicatorsInverseCheckBox = QtGui.QCheckBox(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaBaseOrientationIndicatorsInverseCheckBox.setObjectName("dnaBaseOrientationIndicatorsInverseCheckBox") + self.gridlayout27.addWidget(self.dnaBaseOrientationIndicatorsInverseCheckBox,3,0,1,2) + + self.label_35 = QtGui.QLabel(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_35.sizePolicy().hasHeightForWidth()) + self.label_35.setSizePolicy(sizePolicy) + self.label_35.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_35.setObjectName("label_35") + self.gridlayout27.addWidget(self.label_35,0,0,1,1) + + self.label_13 = QtGui.QLabel(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_13.sizePolicy().hasHeightForWidth()) + self.label_13.setSizePolicy(sizePolicy) + self.label_13.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_13.setObjectName("label_13") + self.gridlayout27.addWidget(self.label_13,4,0,1,1) + + self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox = QtGui.QDoubleSpinBox(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox.setDecimals(0) + self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox.setMaximum(1000000.0) + self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox.setSingleStep(1.0) + self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox.setObjectName("dnaBaseOrientationIndicatorsTerminalDistanceSpinBox") + self.gridlayout27.addWidget(self.dnaBaseOrientationIndicatorsTerminalDistanceSpinBox,5,1,1,1) + + self.dnaBaseOrientationIndicatorsThresholdSpinBox = QtGui.QDoubleSpinBox(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaBaseOrientationIndicatorsThresholdSpinBox.setDecimals(1) + self.dnaBaseOrientationIndicatorsThresholdSpinBox.setMaximum(180.0) + self.dnaBaseOrientationIndicatorsThresholdSpinBox.setSingleStep(0.1) + self.dnaBaseOrientationIndicatorsThresholdSpinBox.setProperty("value",QtCore.QVariant(30.0)) + self.dnaBaseOrientationIndicatorsThresholdSpinBox.setObjectName("dnaBaseOrientationIndicatorsThresholdSpinBox") + self.gridlayout27.addWidget(self.dnaBaseOrientationIndicatorsThresholdSpinBox,4,1,1,1) + + self.hboxlayout33 = QtGui.QHBoxLayout() + self.hboxlayout33.setMargin(0) + self.hboxlayout33.setSpacing(4) + self.hboxlayout33.setObjectName("hboxlayout33") + + self.dnaBaseOrientationIndicatorsColorFrame = QtGui.QFrame(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaBaseOrientationIndicatorsColorFrame.setMinimumSize(QtCore.QSize(23,23)) + self.dnaBaseOrientationIndicatorsColorFrame.setMaximumSize(QtCore.QSize(23,23)) + self.dnaBaseOrientationIndicatorsColorFrame.setFrameShape(QtGui.QFrame.Box) + self.dnaBaseOrientationIndicatorsColorFrame.setFrameShadow(QtGui.QFrame.Plain) + self.dnaBaseOrientationIndicatorsColorFrame.setObjectName("dnaBaseOrientationIndicatorsColorFrame") + self.hboxlayout33.addWidget(self.dnaBaseOrientationIndicatorsColorFrame) + + self.dnaChooseBaseOrientationIndicatorsColorButton = QtGui.QPushButton(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.dnaChooseBaseOrientationIndicatorsColorButton.setAutoDefault(False) + self.dnaChooseBaseOrientationIndicatorsColorButton.setObjectName("dnaChooseBaseOrientationIndicatorsColorButton") + self.hboxlayout33.addWidget(self.dnaChooseBaseOrientationIndicatorsColorButton) + self.gridlayout27.addLayout(self.hboxlayout33,1,1,1,1) + + self.label_14 = QtGui.QLabel(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.label_14.sizePolicy().hasHeightForWidth()) + self.label_14.setSizePolicy(sizePolicy) + self.label_14.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_14.setObjectName("label_14") + self.gridlayout27.addWidget(self.label_14,5,0,1,1) + + self.bg1_color_lbl_5 = QtGui.QLabel(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + self.bg1_color_lbl_5.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.bg1_color_lbl_5.setObjectName("bg1_color_lbl_5") + self.gridlayout27.addWidget(self.bg1_color_lbl_5,1,0,1,1) + self.vboxlayout23.addWidget(self.dnaDisplayBaseOrientationIndicatorsGroupBox) + + spacerItem36 = QtGui.QSpacerItem(20,111,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout23.addItem(spacerItem36) + self.gridlayout26.addLayout(self.vboxlayout23,0,0,1,1) + self.prefsStackedWidget.addWidget(self.BaseOrientationIndicators) + + self.Adjust = QtGui.QWidget() + self.Adjust.setObjectName("Adjust") + + self.gridlayout28 = QtGui.QGridLayout(self.Adjust) + self.gridlayout28.setMargin(9) + self.gridlayout28.setSpacing(6) + self.gridlayout28.setObjectName("gridlayout28") + + self.vboxlayout24 = QtGui.QVBoxLayout() + self.vboxlayout24.setMargin(0) + self.vboxlayout24.setSpacing(6) + self.vboxlayout24.setObjectName("vboxlayout24") + + self.adjustPhysicsEngineGroupBox = QtGui.QGroupBox(self.Adjust) + self.adjustPhysicsEngineGroupBox.setObjectName("adjustPhysicsEngineGroupBox") + + self.vboxlayout25 = QtGui.QVBoxLayout(self.adjustPhysicsEngineGroupBox) + self.vboxlayout25.setMargin(4) + self.vboxlayout25.setSpacing(4) + self.vboxlayout25.setObjectName("vboxlayout25") + + self.adjustEngineCombobox = QtGui.QComboBox(self.adjustPhysicsEngineGroupBox) + self.adjustEngineCombobox.setObjectName("adjustEngineCombobox") + self.vboxlayout25.addWidget(self.adjustEngineCombobox) + + self.electrostaticsForDnaDuringAdjust_checkBox = QtGui.QCheckBox(self.adjustPhysicsEngineGroupBox) + self.electrostaticsForDnaDuringAdjust_checkBox.setObjectName("electrostaticsForDnaDuringAdjust_checkBox") + self.vboxlayout25.addWidget(self.electrostaticsForDnaDuringAdjust_checkBox) + self.vboxlayout24.addWidget(self.adjustPhysicsEngineGroupBox) + + self.update_btngrp = QtGui.QGroupBox(self.Adjust) + self.update_btngrp.setCheckable(True) + self.update_btngrp.setObjectName("update_btngrp") + + self.vboxlayout26 = QtGui.QVBoxLayout(self.update_btngrp) + self.vboxlayout26.setMargin(4) + self.vboxlayout26.setSpacing(0) + self.vboxlayout26.setObjectName("vboxlayout26") + + self.update_asap_rbtn = QtGui.QRadioButton(self.update_btngrp) + self.update_asap_rbtn.setChecked(True) + self.update_asap_rbtn.setObjectName("update_asap_rbtn") + self.vboxlayout26.addWidget(self.update_asap_rbtn) + + self.hboxlayout34 = QtGui.QHBoxLayout() + self.hboxlayout34.setMargin(0) + self.hboxlayout34.setSpacing(6) + self.hboxlayout34.setObjectName("hboxlayout34") + + self.update_every_rbtn = QtGui.QRadioButton(self.update_btngrp) + self.update_every_rbtn.setObjectName("update_every_rbtn") + self.hboxlayout34.addWidget(self.update_every_rbtn) + + self.update_number_spinbox = QtGui.QSpinBox(self.update_btngrp) + self.update_number_spinbox.setMaximum(9999) + self.update_number_spinbox.setMinimum(1) + self.update_number_spinbox.setProperty("value",QtCore.QVariant(1)) + self.update_number_spinbox.setObjectName("update_number_spinbox") + self.hboxlayout34.addWidget(self.update_number_spinbox) + + self.update_units_combobox = QtGui.QComboBox(self.update_btngrp) + self.update_units_combobox.setObjectName("update_units_combobox") + self.hboxlayout34.addWidget(self.update_units_combobox) + self.vboxlayout26.addLayout(self.hboxlayout34) + self.vboxlayout24.addWidget(self.update_btngrp) + + self.groupBox20 = QtGui.QGroupBox(self.Adjust) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(5),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.groupBox20.sizePolicy().hasHeightForWidth()) + self.groupBox20.setSizePolicy(sizePolicy) + self.groupBox20.setObjectName("groupBox20") + + self.hboxlayout35 = QtGui.QHBoxLayout(self.groupBox20) + self.hboxlayout35.setMargin(4) + self.hboxlayout35.setSpacing(4) + self.hboxlayout35.setObjectName("hboxlayout35") + + self.vboxlayout27 = QtGui.QVBoxLayout() + self.vboxlayout27.setMargin(0) + self.vboxlayout27.setSpacing(2) + self.vboxlayout27.setObjectName("vboxlayout27") + + self.endrms_lbl = QtGui.QLabel(self.groupBox20) + self.endrms_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.endrms_lbl.setObjectName("endrms_lbl") + self.vboxlayout27.addWidget(self.endrms_lbl) + + self.endmax_lbl = QtGui.QLabel(self.groupBox20) + self.endmax_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.endmax_lbl.setObjectName("endmax_lbl") + self.vboxlayout27.addWidget(self.endmax_lbl) + + self.cutoverrms_lbl = QtGui.QLabel(self.groupBox20) + self.cutoverrms_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.cutoverrms_lbl.setObjectName("cutoverrms_lbl") + self.vboxlayout27.addWidget(self.cutoverrms_lbl) + + self.cutovermax_lbl = QtGui.QLabel(self.groupBox20) + self.cutovermax_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.cutovermax_lbl.setObjectName("cutovermax_lbl") + self.vboxlayout27.addWidget(self.cutovermax_lbl) + self.hboxlayout35.addLayout(self.vboxlayout27) + + self.vboxlayout28 = QtGui.QVBoxLayout() + self.vboxlayout28.setMargin(0) + self.vboxlayout28.setSpacing(2) + self.vboxlayout28.setObjectName("vboxlayout28") + + self.endRmsDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox20) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(3),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.endRmsDoubleSpinBox.sizePolicy().hasHeightForWidth()) + self.endRmsDoubleSpinBox.setSizePolicy(sizePolicy) + self.endRmsDoubleSpinBox.setDecimals(2) + self.endRmsDoubleSpinBox.setMaximum(101.0) + self.endRmsDoubleSpinBox.setProperty("value",QtCore.QVariant(1.0)) + self.endRmsDoubleSpinBox.setObjectName("endRmsDoubleSpinBox") + self.vboxlayout28.addWidget(self.endRmsDoubleSpinBox) + + self.endMaxDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox20) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(3),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.endMaxDoubleSpinBox.sizePolicy().hasHeightForWidth()) + self.endMaxDoubleSpinBox.setSizePolicy(sizePolicy) + self.endMaxDoubleSpinBox.setDecimals(2) + self.endMaxDoubleSpinBox.setMaximum(101.0) + self.endMaxDoubleSpinBox.setProperty("value",QtCore.QVariant(0.0)) + self.endMaxDoubleSpinBox.setObjectName("endMaxDoubleSpinBox") + self.vboxlayout28.addWidget(self.endMaxDoubleSpinBox) + + self.cutoverRmsDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox20) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(3),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.cutoverRmsDoubleSpinBox.sizePolicy().hasHeightForWidth()) + self.cutoverRmsDoubleSpinBox.setSizePolicy(sizePolicy) + self.cutoverRmsDoubleSpinBox.setDecimals(2) + self.cutoverRmsDoubleSpinBox.setMaximum(101.0) + self.cutoverRmsDoubleSpinBox.setProperty("value",QtCore.QVariant(0.0)) + self.cutoverRmsDoubleSpinBox.setObjectName("cutoverRmsDoubleSpinBox") + self.vboxlayout28.addWidget(self.cutoverRmsDoubleSpinBox) + + self.cutoverMaxDoubleSpinBox = QtGui.QDoubleSpinBox(self.groupBox20) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(3),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.cutoverMaxDoubleSpinBox.sizePolicy().hasHeightForWidth()) + self.cutoverMaxDoubleSpinBox.setSizePolicy(sizePolicy) + self.cutoverMaxDoubleSpinBox.setDecimals(2) + self.cutoverMaxDoubleSpinBox.setMaximum(101.0) + self.cutoverMaxDoubleSpinBox.setProperty("value",QtCore.QVariant(0.0)) + self.cutoverMaxDoubleSpinBox.setObjectName("cutoverMaxDoubleSpinBox") + self.vboxlayout28.addWidget(self.cutoverMaxDoubleSpinBox) + self.hboxlayout35.addLayout(self.vboxlayout28) + + spacerItem37 = QtGui.QSpacerItem(80,20,QtGui.QSizePolicy.MinimumExpanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout35.addItem(spacerItem37) + self.vboxlayout24.addWidget(self.groupBox20) + + spacerItem38 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout24.addItem(spacerItem38) + self.gridlayout28.addLayout(self.vboxlayout24,0,0,2,1) + + self.grpbtn_4 = QtGui.QPushButton(self.Adjust) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.grpbtn_4.sizePolicy().hasHeightForWidth()) + self.grpbtn_4.setSizePolicy(sizePolicy) + self.grpbtn_4.setMaximumSize(QtCore.QSize(16,16)) + self.grpbtn_4.setIcon(QtGui.QIcon("../../../../../../../:icons/MinimizeEnergyPropDialog_image6")) + self.grpbtn_4.setAutoDefault(False) + self.grpbtn_4.setDefault(False) + self.grpbtn_4.setFlat(True) + self.grpbtn_4.setObjectName("grpbtn_4") + self.gridlayout28.addWidget(self.grpbtn_4,0,1,1,1) + + spacerItem39 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout28.addItem(spacerItem39,1,1,1,1) + self.prefsStackedWidget.addWidget(self.Adjust) + + self.Lighting = QtGui.QWidget() + self.Lighting.setObjectName("Lighting") + + self.gridlayout29 = QtGui.QGridLayout(self.Lighting) + self.gridlayout29.setMargin(9) + self.gridlayout29.setSpacing(6) + self.gridlayout29.setObjectName("gridlayout29") + + self.vboxlayout29 = QtGui.QVBoxLayout() + self.vboxlayout29.setMargin(0) + self.vboxlayout29.setSpacing(4) + self.vboxlayout29.setObjectName("vboxlayout29") + + self.groupBox8_2 = QtGui.QGroupBox(self.Lighting) + self.groupBox8_2.setEnabled(True) + self.groupBox8_2.setObjectName("groupBox8_2") + + self.gridlayout30 = QtGui.QGridLayout(self.groupBox8_2) + self.gridlayout30.setMargin(4) + self.gridlayout30.setSpacing(4) + self.gridlayout30.setObjectName("gridlayout30") + + self.vboxlayout30 = QtGui.QVBoxLayout() + self.vboxlayout30.setMargin(0) + self.vboxlayout30.setSpacing(2) + self.vboxlayout30.setObjectName("vboxlayout30") + + self.hboxlayout36 = QtGui.QHBoxLayout() + self.hboxlayout36.setMargin(0) + self.hboxlayout36.setSpacing(6) + self.hboxlayout36.setObjectName("hboxlayout36") + + self.light_combobox = QtGui.QComboBox(self.groupBox8_2) + self.light_combobox.setObjectName("light_combobox") + self.hboxlayout36.addWidget(self.light_combobox) + + spacerItem40 = QtGui.QSpacerItem(60,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout36.addItem(spacerItem40) + self.vboxlayout30.addLayout(self.hboxlayout36) + + self.hboxlayout37 = QtGui.QHBoxLayout() + self.hboxlayout37.setMargin(0) + self.hboxlayout37.setSpacing(6) + self.hboxlayout37.setObjectName("hboxlayout37") + + self.light_checkbox = QtGui.QCheckBox(self.groupBox8_2) + self.light_checkbox.setObjectName("light_checkbox") + self.hboxlayout37.addWidget(self.light_checkbox) + + spacerItem41 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout37.addItem(spacerItem41) + self.vboxlayout30.addLayout(self.hboxlayout37) + + self.hboxlayout38 = QtGui.QHBoxLayout() + self.hboxlayout38.setMargin(0) + self.hboxlayout38.setSpacing(6) + self.hboxlayout38.setObjectName("hboxlayout38") + + self.hboxlayout39 = QtGui.QHBoxLayout() + self.hboxlayout39.setMargin(0) + self.hboxlayout39.setSpacing(6) + self.hboxlayout39.setObjectName("hboxlayout39") + + self.light_color_frame = QtGui.QFrame(self.groupBox8_2) + self.light_color_frame.setMinimumSize(QtCore.QSize(25,0)) + self.light_color_frame.setFrameShape(QtGui.QFrame.Box) + self.light_color_frame.setFrameShadow(QtGui.QFrame.Plain) + self.light_color_frame.setObjectName("light_color_frame") + self.hboxlayout39.addWidget(self.light_color_frame) + + self.light_color_btn = QtGui.QPushButton(self.groupBox8_2) + self.light_color_btn.setAutoDefault(False) + self.light_color_btn.setObjectName("light_color_btn") + self.hboxlayout39.addWidget(self.light_color_btn) + self.hboxlayout38.addLayout(self.hboxlayout39) + + spacerItem42 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout38.addItem(spacerItem42) + self.vboxlayout30.addLayout(self.hboxlayout38) + + self.hboxlayout40 = QtGui.QHBoxLayout() + self.hboxlayout40.setMargin(0) + self.hboxlayout40.setSpacing(6) + self.hboxlayout40.setObjectName("hboxlayout40") + + self.light_ambient_linedit = QtGui.QLineEdit(self.groupBox8_2) + self.light_ambient_linedit.setMaximumSize(QtCore.QSize(40,32767)) + self.light_ambient_linedit.setReadOnly(True) + self.light_ambient_linedit.setObjectName("light_ambient_linedit") + self.hboxlayout40.addWidget(self.light_ambient_linedit) + + self.light_ambient_slider = QtGui.QSlider(self.groupBox8_2) + self.light_ambient_slider.setMaximum(100) + self.light_ambient_slider.setOrientation(QtCore.Qt.Horizontal) + self.light_ambient_slider.setTickInterval(10) + self.light_ambient_slider.setObjectName("light_ambient_slider") + self.hboxlayout40.addWidget(self.light_ambient_slider) + self.vboxlayout30.addLayout(self.hboxlayout40) + + self.hboxlayout41 = QtGui.QHBoxLayout() + self.hboxlayout41.setMargin(0) + self.hboxlayout41.setSpacing(6) + self.hboxlayout41.setObjectName("hboxlayout41") + + self.light_diffuse_linedit = QtGui.QLineEdit(self.groupBox8_2) + self.light_diffuse_linedit.setMaximumSize(QtCore.QSize(40,32767)) + self.light_diffuse_linedit.setReadOnly(True) + self.light_diffuse_linedit.setObjectName("light_diffuse_linedit") + self.hboxlayout41.addWidget(self.light_diffuse_linedit) + + self.light_diffuse_slider = QtGui.QSlider(self.groupBox8_2) + self.light_diffuse_slider.setMaximum(100) + self.light_diffuse_slider.setOrientation(QtCore.Qt.Horizontal) + self.light_diffuse_slider.setTickInterval(10) + self.light_diffuse_slider.setObjectName("light_diffuse_slider") + self.hboxlayout41.addWidget(self.light_diffuse_slider) + self.vboxlayout30.addLayout(self.hboxlayout41) + + self.hboxlayout42 = QtGui.QHBoxLayout() + self.hboxlayout42.setMargin(0) + self.hboxlayout42.setSpacing(6) + self.hboxlayout42.setObjectName("hboxlayout42") + + self.light_specularity_linedit = QtGui.QLineEdit(self.groupBox8_2) + self.light_specularity_linedit.setMaximumSize(QtCore.QSize(40,32767)) + self.light_specularity_linedit.setReadOnly(True) + self.light_specularity_linedit.setObjectName("light_specularity_linedit") + self.hboxlayout42.addWidget(self.light_specularity_linedit) + + self.light_specularity_slider = QtGui.QSlider(self.groupBox8_2) + self.light_specularity_slider.setMaximum(100) + self.light_specularity_slider.setOrientation(QtCore.Qt.Horizontal) + self.light_specularity_slider.setTickInterval(10) + self.light_specularity_slider.setObjectName("light_specularity_slider") + self.hboxlayout42.addWidget(self.light_specularity_slider) + self.vboxlayout30.addLayout(self.hboxlayout42) + + self.hboxlayout43 = QtGui.QHBoxLayout() + self.hboxlayout43.setMargin(0) + self.hboxlayout43.setSpacing(6) + self.hboxlayout43.setObjectName("hboxlayout43") + + self.light_x_linedit = QtGui.QLineEdit(self.groupBox8_2) + self.light_x_linedit.setObjectName("light_x_linedit") + self.hboxlayout43.addWidget(self.light_x_linedit) + + spacerItem43 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout43.addItem(spacerItem43) + self.vboxlayout30.addLayout(self.hboxlayout43) + + self.hboxlayout44 = QtGui.QHBoxLayout() + self.hboxlayout44.setMargin(0) + self.hboxlayout44.setSpacing(6) + self.hboxlayout44.setObjectName("hboxlayout44") + + self.light_y_linedit = QtGui.QLineEdit(self.groupBox8_2) + self.light_y_linedit.setObjectName("light_y_linedit") + self.hboxlayout44.addWidget(self.light_y_linedit) + + spacerItem44 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout44.addItem(spacerItem44) + self.vboxlayout30.addLayout(self.hboxlayout44) + + self.hboxlayout45 = QtGui.QHBoxLayout() + self.hboxlayout45.setMargin(0) + self.hboxlayout45.setSpacing(6) + self.hboxlayout45.setObjectName("hboxlayout45") + + self.light_z_linedit = QtGui.QLineEdit(self.groupBox8_2) + self.light_z_linedit.setMaxLength(32767) + self.light_z_linedit.setObjectName("light_z_linedit") + self.hboxlayout45.addWidget(self.light_z_linedit) + + spacerItem45 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout45.addItem(spacerItem45) + self.vboxlayout30.addLayout(self.hboxlayout45) + self.gridlayout30.addLayout(self.vboxlayout30,0,1,1,1) + + self.vboxlayout31 = QtGui.QVBoxLayout() + self.vboxlayout31.setMargin(0) + self.vboxlayout31.setSpacing(2) + self.vboxlayout31.setObjectName("vboxlayout31") + + self.light_label = QtGui.QLabel(self.groupBox8_2) + self.light_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.light_label.setObjectName("light_label") + self.vboxlayout31.addWidget(self.light_label) + + self.on_label = QtGui.QLabel(self.groupBox8_2) + self.on_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.on_label.setObjectName("on_label") + self.vboxlayout31.addWidget(self.on_label) + + self.color_label = QtGui.QLabel(self.groupBox8_2) + self.color_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.color_label.setObjectName("color_label") + self.vboxlayout31.addWidget(self.color_label) + + self.ambient_label = QtGui.QLabel(self.groupBox8_2) + self.ambient_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ambient_label.setObjectName("ambient_label") + self.vboxlayout31.addWidget(self.ambient_label) + + self.diffuse_label = QtGui.QLabel(self.groupBox8_2) + self.diffuse_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.diffuse_label.setObjectName("diffuse_label") + self.vboxlayout31.addWidget(self.diffuse_label) + + self.specularity_label = QtGui.QLabel(self.groupBox8_2) + self.specularity_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.specularity_label.setObjectName("specularity_label") + self.vboxlayout31.addWidget(self.specularity_label) + + self.x_label = QtGui.QLabel(self.groupBox8_2) + self.x_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.x_label.setObjectName("x_label") + self.vboxlayout31.addWidget(self.x_label) + + self.y_label = QtGui.QLabel(self.groupBox8_2) + self.y_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.y_label.setObjectName("y_label") + self.vboxlayout31.addWidget(self.y_label) + + self.z_label = QtGui.QLabel(self.groupBox8_2) + self.z_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.z_label.setObjectName("z_label") + self.vboxlayout31.addWidget(self.z_label) + self.gridlayout30.addLayout(self.vboxlayout31,0,0,1,1) + self.vboxlayout29.addWidget(self.groupBox8_2) + + self.groupBox9_2 = QtGui.QGroupBox(self.Lighting) + self.groupBox9_2.setEnabled(True) + self.groupBox9_2.setObjectName("groupBox9_2") + + self.hboxlayout46 = QtGui.QHBoxLayout(self.groupBox9_2) + self.hboxlayout46.setMargin(4) + self.hboxlayout46.setSpacing(4) + self.hboxlayout46.setObjectName("hboxlayout46") + + self.hboxlayout47 = QtGui.QHBoxLayout() + self.hboxlayout47.setMargin(0) + self.hboxlayout47.setSpacing(2) + self.hboxlayout47.setObjectName("hboxlayout47") + + self.vboxlayout32 = QtGui.QVBoxLayout() + self.vboxlayout32.setMargin(0) + self.vboxlayout32.setSpacing(0) + self.vboxlayout32.setObjectName("vboxlayout32") + + self.ms_on_label = QtGui.QLabel(self.groupBox9_2) + self.ms_on_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ms_on_label.setObjectName("ms_on_label") + self.vboxlayout32.addWidget(self.ms_on_label) + + spacerItem46 = QtGui.QSpacerItem(70,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.vboxlayout32.addItem(spacerItem46) + + self.ms_finish_label = QtGui.QLabel(self.groupBox9_2) + self.ms_finish_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ms_finish_label.setObjectName("ms_finish_label") + self.vboxlayout32.addWidget(self.ms_finish_label) + + spacerItem47 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.vboxlayout32.addItem(spacerItem47) + + self.ms_shininess_label = QtGui.QLabel(self.groupBox9_2) + self.ms_shininess_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ms_shininess_label.setObjectName("ms_shininess_label") + self.vboxlayout32.addWidget(self.ms_shininess_label) + + spacerItem48 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.vboxlayout32.addItem(spacerItem48) + + self.ms_brightness__label = QtGui.QLabel(self.groupBox9_2) + self.ms_brightness__label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.ms_brightness__label.setObjectName("ms_brightness__label") + self.vboxlayout32.addWidget(self.ms_brightness__label) + self.hboxlayout47.addLayout(self.vboxlayout32) + + self.vboxlayout33 = QtGui.QVBoxLayout() + self.vboxlayout33.setMargin(0) + self.vboxlayout33.setSpacing(0) + self.vboxlayout33.setObjectName("vboxlayout33") + + self.ms_on_checkbox = QtGui.QCheckBox(self.groupBox9_2) + self.ms_on_checkbox.setMinimumSize(QtCore.QSize(0,21)) + self.ms_on_checkbox.setObjectName("ms_on_checkbox") + self.vboxlayout33.addWidget(self.ms_on_checkbox) + + spacerItem49 = QtGui.QSpacerItem(50,20,QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Minimum) + self.vboxlayout33.addItem(spacerItem49) + + self.ms_finish_linedit = QtGui.QLineEdit(self.groupBox9_2) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(7),QtGui.QSizePolicy.Policy(0)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.ms_finish_linedit.sizePolicy().hasHeightForWidth()) + self.ms_finish_linedit.setSizePolicy(sizePolicy) + self.ms_finish_linedit.setMaximumSize(QtCore.QSize(50,32767)) + self.ms_finish_linedit.setMaxLength(5) + self.ms_finish_linedit.setReadOnly(True) + self.ms_finish_linedit.setObjectName("ms_finish_linedit") + self.vboxlayout33.addWidget(self.ms_finish_linedit) + + spacerItem50 = QtGui.QSpacerItem(50,20,QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Minimum) + self.vboxlayout33.addItem(spacerItem50) + + self.ms_shininess_linedit = QtGui.QLineEdit(self.groupBox9_2) + self.ms_shininess_linedit.setMaximumSize(QtCore.QSize(50,32767)) + self.ms_shininess_linedit.setMaxLength(5) + self.ms_shininess_linedit.setReadOnly(True) + self.ms_shininess_linedit.setObjectName("ms_shininess_linedit") + self.vboxlayout33.addWidget(self.ms_shininess_linedit) + + spacerItem51 = QtGui.QSpacerItem(50,20,QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Minimum) + self.vboxlayout33.addItem(spacerItem51) + + self.ms_brightness_linedit = QtGui.QLineEdit(self.groupBox9_2) + self.ms_brightness_linedit.setMaximumSize(QtCore.QSize(50,32767)) + self.ms_brightness_linedit.setMaxLength(5) + self.ms_brightness_linedit.setReadOnly(True) + self.ms_brightness_linedit.setObjectName("ms_brightness_linedit") + self.vboxlayout33.addWidget(self.ms_brightness_linedit) + self.hboxlayout47.addLayout(self.vboxlayout33) + + self.vboxlayout34 = QtGui.QVBoxLayout() + self.vboxlayout34.setMargin(0) + self.vboxlayout34.setSpacing(0) + self.vboxlayout34.setObjectName("vboxlayout34") + + spacerItem52 = QtGui.QSpacerItem(100,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.vboxlayout34.addItem(spacerItem52) + + self.hboxlayout48 = QtGui.QHBoxLayout() + self.hboxlayout48.setMargin(0) + self.hboxlayout48.setSpacing(4) + self.hboxlayout48.setObjectName("hboxlayout48") + + self.textLabel1_6 = QtGui.QLabel(self.groupBox9_2) + self.textLabel1_6.setObjectName("textLabel1_6") + self.hboxlayout48.addWidget(self.textLabel1_6) + + spacerItem53 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Fixed,QtGui.QSizePolicy.Minimum) + self.hboxlayout48.addItem(spacerItem53) + + self.textLabel2_4 = QtGui.QLabel(self.groupBox9_2) + self.textLabel2_4.setObjectName("textLabel2_4") + self.hboxlayout48.addWidget(self.textLabel2_4) + self.vboxlayout34.addLayout(self.hboxlayout48) + + self.ms_finish_slider = QtGui.QSlider(self.groupBox9_2) + self.ms_finish_slider.setMinimum(0) + self.ms_finish_slider.setMaximum(100) + self.ms_finish_slider.setProperty("value",QtCore.QVariant(50)) + self.ms_finish_slider.setOrientation(QtCore.Qt.Horizontal) + self.ms_finish_slider.setTickInterval(5) + self.ms_finish_slider.setObjectName("ms_finish_slider") + self.vboxlayout34.addWidget(self.ms_finish_slider) + + self.hboxlayout49 = QtGui.QHBoxLayout() + self.hboxlayout49.setMargin(0) + self.hboxlayout49.setSpacing(4) + self.hboxlayout49.setObjectName("hboxlayout49") + + self.textLabel1_6_2 = QtGui.QLabel(self.groupBox9_2) + self.textLabel1_6_2.setObjectName("textLabel1_6_2") + self.hboxlayout49.addWidget(self.textLabel1_6_2) + + spacerItem54 = QtGui.QSpacerItem(16,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout49.addItem(spacerItem54) + + self.textLabel2_4_2 = QtGui.QLabel(self.groupBox9_2) + self.textLabel2_4_2.setObjectName("textLabel2_4_2") + self.hboxlayout49.addWidget(self.textLabel2_4_2) + self.vboxlayout34.addLayout(self.hboxlayout49) + + self.ms_shininess_slider = QtGui.QSlider(self.groupBox9_2) + self.ms_shininess_slider.setMinimum(15) + self.ms_shininess_slider.setMaximum(60) + self.ms_shininess_slider.setProperty("value",QtCore.QVariant(15)) + self.ms_shininess_slider.setOrientation(QtCore.Qt.Horizontal) + self.ms_shininess_slider.setTickInterval(5) + self.ms_shininess_slider.setObjectName("ms_shininess_slider") + self.vboxlayout34.addWidget(self.ms_shininess_slider) + + self.hboxlayout50 = QtGui.QHBoxLayout() + self.hboxlayout50.setMargin(0) + self.hboxlayout50.setSpacing(4) + self.hboxlayout50.setObjectName("hboxlayout50") + + self.textLabel1_6_3 = QtGui.QLabel(self.groupBox9_2) + self.textLabel1_6_3.setObjectName("textLabel1_6_3") + self.hboxlayout50.addWidget(self.textLabel1_6_3) + + spacerItem55 = QtGui.QSpacerItem(16,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout50.addItem(spacerItem55) + + self.textLabel2_4_3 = QtGui.QLabel(self.groupBox9_2) + self.textLabel2_4_3.setObjectName("textLabel2_4_3") + self.hboxlayout50.addWidget(self.textLabel2_4_3) + self.vboxlayout34.addLayout(self.hboxlayout50) + + self.ms_brightness_slider = QtGui.QSlider(self.groupBox9_2) + self.ms_brightness_slider.setMinimum(0) + self.ms_brightness_slider.setMaximum(100) + self.ms_brightness_slider.setProperty("value",QtCore.QVariant(50)) + self.ms_brightness_slider.setOrientation(QtCore.Qt.Horizontal) + self.ms_brightness_slider.setTickInterval(5) + self.ms_brightness_slider.setObjectName("ms_brightness_slider") + self.vboxlayout34.addWidget(self.ms_brightness_slider) + self.hboxlayout47.addLayout(self.vboxlayout34) + self.hboxlayout46.addLayout(self.hboxlayout47) + self.vboxlayout29.addWidget(self.groupBox9_2) + + spacerItem56 = QtGui.QSpacerItem(20,5,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout29.addItem(spacerItem56) + self.gridlayout29.addLayout(self.vboxlayout29,0,0,2,1) + + self.hboxlayout51 = QtGui.QHBoxLayout() + self.hboxlayout51.setMargin(0) + self.hboxlayout51.setSpacing(6) + self.hboxlayout51.setObjectName("hboxlayout51") + + spacerItem57 = QtGui.QSpacerItem(20,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout51.addItem(spacerItem57) + + self.lighting_restore_defaults_btn = QtGui.QPushButton(self.Lighting) + self.lighting_restore_defaults_btn.setAutoDefault(False) + self.lighting_restore_defaults_btn.setObjectName("lighting_restore_defaults_btn") + self.hboxlayout51.addWidget(self.lighting_restore_defaults_btn) + self.gridlayout29.addLayout(self.hboxlayout51,1,1,1,1) + + spacerItem58 = QtGui.QSpacerItem(30,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout29.addItem(spacerItem58,0,1,1,1) + self.prefsStackedWidget.addWidget(self.Lighting) + + self.Plugins = QtGui.QWidget() + self.Plugins.setObjectName("Plugins") + + self.gridlayout31 = QtGui.QGridLayout(self.Plugins) + self.gridlayout31.setMargin(9) + self.gridlayout31.setSpacing(6) + self.gridlayout31.setObjectName("gridlayout31") + + spacerItem59 = QtGui.QSpacerItem(20,218,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.gridlayout31.addItem(spacerItem59,1,0,1,1) + + self.file_locations_grp = QtGui.QGroupBox(self.Plugins) + self.file_locations_grp.setObjectName("file_locations_grp") + + self.gridlayout32 = QtGui.QGridLayout(self.file_locations_grp) + self.gridlayout32.setMargin(2) + self.gridlayout32.setSpacing(2) + self.gridlayout32.setObjectName("gridlayout32") + + self.qutemol_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.qutemol_path_lineedit.setEnabled(False) + self.qutemol_path_lineedit.setObjectName("qutemol_path_lineedit") + self.gridlayout32.addWidget(self.qutemol_path_lineedit,0,1,1,1) + + self.nanohive_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.nanohive_path_lineedit.setEnabled(False) + self.nanohive_path_lineedit.setObjectName("nanohive_path_lineedit") + self.gridlayout32.addWidget(self.nanohive_path_lineedit,1,1,1,1) + + self.povray_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.povray_path_lineedit.setEnabled(False) + self.povray_path_lineedit.setMaximumSize(QtCore.QSize(32767,32767)) + self.povray_path_lineedit.setMaxLength(32767) + self.povray_path_lineedit.setObjectName("povray_path_lineedit") + self.gridlayout32.addWidget(self.povray_path_lineedit,2,1,1,1) + + self.megapov_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.megapov_path_lineedit.setEnabled(False) + self.megapov_path_lineedit.setMaximumSize(QtCore.QSize(32767,32767)) + self.megapov_path_lineedit.setMaxLength(32767) + self.megapov_path_lineedit.setObjectName("megapov_path_lineedit") + self.gridlayout32.addWidget(self.megapov_path_lineedit,3,1,1,1) + + self.povdir_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.povdir_lineedit.setEnabled(False) + self.povdir_lineedit.setObjectName("povdir_lineedit") + self.gridlayout32.addWidget(self.povdir_lineedit,4,1,1,1) + + self.gamess_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.gamess_path_lineedit.setEnabled(False) + self.gamess_path_lineedit.setMaximumSize(QtCore.QSize(32767,32767)) + self.gamess_path_lineedit.setMaxLength(32767) + self.gamess_path_lineedit.setObjectName("gamess_path_lineedit") + self.gridlayout32.addWidget(self.gamess_path_lineedit,5,1,1,1) + + self.gromacs_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.gromacs_path_lineedit.setEnabled(False) + self.gromacs_path_lineedit.setObjectName("gromacs_path_lineedit") + self.gridlayout32.addWidget(self.gromacs_path_lineedit,6,1,1,1) + + self.nv1_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.nv1_path_lineedit.setEnabled(False) + self.nv1_path_lineedit.setObjectName("nv1_path_lineedit") + self.gridlayout32.addWidget(self.nv1_path_lineedit,8,1,1,1) + + self.cpp_path_lineedit = QtGui.QLineEdit(self.file_locations_grp) + self.cpp_path_lineedit.setEnabled(False) + self.cpp_path_lineedit.setObjectName("cpp_path_lineedit") + self.gridlayout32.addWidget(self.cpp_path_lineedit,7,1,1,1) + + self.hboxlayout52 = QtGui.QHBoxLayout() + self.hboxlayout52.setMargin(0) + self.hboxlayout52.setSpacing(0) + self.hboxlayout52.setObjectName("hboxlayout52") + + self.nv1_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.nv1_checkbox.setObjectName("nv1_checkbox") + self.hboxlayout52.addWidget(self.nv1_checkbox) + + self.nv1_label = QtGui.QLabel(self.file_locations_grp) + self.nv1_label.setObjectName("nv1_label") + self.hboxlayout52.addWidget(self.nv1_label) + self.gridlayout32.addLayout(self.hboxlayout52,8,0,1,1) + + self.nv1_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.nv1_choose_btn.setEnabled(False) + self.nv1_choose_btn.setObjectName("nv1_choose_btn") + self.gridlayout32.addWidget(self.nv1_choose_btn,8,2,1,1) + + self.gromacs_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.gromacs_choose_btn.setEnabled(False) + self.gromacs_choose_btn.setObjectName("gromacs_choose_btn") + self.gridlayout32.addWidget(self.gromacs_choose_btn,6,2,1,1) + + self.hboxlayout53 = QtGui.QHBoxLayout() + self.hboxlayout53.setMargin(0) + self.hboxlayout53.setSpacing(0) + self.hboxlayout53.setObjectName("hboxlayout53") + + self.gromacs_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.gromacs_checkbox.setObjectName("gromacs_checkbox") + self.hboxlayout53.addWidget(self.gromacs_checkbox) + + self.gromacs_label = QtGui.QLabel(self.file_locations_grp) + self.gromacs_label.setObjectName("gromacs_label") + self.hboxlayout53.addWidget(self.gromacs_label) + self.gridlayout32.addLayout(self.hboxlayout53,6,0,1,1) + + self.hboxlayout54 = QtGui.QHBoxLayout() + self.hboxlayout54.setMargin(0) + self.hboxlayout54.setSpacing(0) + self.hboxlayout54.setObjectName("hboxlayout54") + + self.cpp_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.cpp_checkbox.setObjectName("cpp_checkbox") + self.hboxlayout54.addWidget(self.cpp_checkbox) + + self.cpp_label = QtGui.QLabel(self.file_locations_grp) + self.cpp_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.cpp_label.setObjectName("cpp_label") + self.hboxlayout54.addWidget(self.cpp_label) + self.gridlayout32.addLayout(self.hboxlayout54,7,0,1,1) + + self.hboxlayout55 = QtGui.QHBoxLayout() + self.hboxlayout55.setMargin(0) + self.hboxlayout55.setSpacing(0) + self.hboxlayout55.setObjectName("hboxlayout55") + + self.gamess_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.gamess_checkbox.setObjectName("gamess_checkbox") + self.hboxlayout55.addWidget(self.gamess_checkbox) + + self.gamess_lbl = QtGui.QLabel(self.file_locations_grp) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.gamess_lbl.sizePolicy().hasHeightForWidth()) + self.gamess_lbl.setSizePolicy(sizePolicy) + self.gamess_lbl.setMinimumSize(QtCore.QSize(60,0)) + self.gamess_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.gamess_lbl.setObjectName("gamess_lbl") + self.hboxlayout55.addWidget(self.gamess_lbl) + self.gridlayout32.addLayout(self.hboxlayout55,5,0,1,1) + + self.hboxlayout56 = QtGui.QHBoxLayout() + self.hboxlayout56.setMargin(0) + self.hboxlayout56.setSpacing(2) + self.hboxlayout56.setObjectName("hboxlayout56") + + self.povdir_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.povdir_checkbox.setEnabled(True) + self.povdir_checkbox.setMinimumSize(QtCore.QSize(15,15)) + self.povdir_checkbox.setMaximumSize(QtCore.QSize(15,15)) + self.povdir_checkbox.setObjectName("povdir_checkbox") + self.hboxlayout56.addWidget(self.povdir_checkbox) + + self.povdir_lbl = QtGui.QLabel(self.file_locations_grp) + self.povdir_lbl.setEnabled(True) + self.povdir_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.povdir_lbl.setObjectName("povdir_lbl") + self.hboxlayout56.addWidget(self.povdir_lbl) + self.gridlayout32.addLayout(self.hboxlayout56,4,0,1,1) + + self.hboxlayout57 = QtGui.QHBoxLayout() + self.hboxlayout57.setMargin(0) + self.hboxlayout57.setSpacing(0) + self.hboxlayout57.setObjectName("hboxlayout57") + + self.megapov_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.megapov_checkbox.setObjectName("megapov_checkbox") + self.hboxlayout57.addWidget(self.megapov_checkbox) + + self.megapov_lbl = QtGui.QLabel(self.file_locations_grp) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.megapov_lbl.sizePolicy().hasHeightForWidth()) + self.megapov_lbl.setSizePolicy(sizePolicy) + self.megapov_lbl.setMinimumSize(QtCore.QSize(60,0)) + self.megapov_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.megapov_lbl.setObjectName("megapov_lbl") + self.hboxlayout57.addWidget(self.megapov_lbl) + self.gridlayout32.addLayout(self.hboxlayout57,3,0,1,1) + + self.hboxlayout58 = QtGui.QHBoxLayout() + self.hboxlayout58.setMargin(0) + self.hboxlayout58.setSpacing(0) + self.hboxlayout58.setObjectName("hboxlayout58") + + self.povray_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.povray_checkbox.setObjectName("povray_checkbox") + self.hboxlayout58.addWidget(self.povray_checkbox) + + self.povray_lbl = QtGui.QLabel(self.file_locations_grp) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.povray_lbl.sizePolicy().hasHeightForWidth()) + self.povray_lbl.setSizePolicy(sizePolicy) + self.povray_lbl.setMinimumSize(QtCore.QSize(60,0)) + self.povray_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.povray_lbl.setObjectName("povray_lbl") + self.hboxlayout58.addWidget(self.povray_lbl) + self.gridlayout32.addLayout(self.hboxlayout58,2,0,1,1) + + self.hboxlayout59 = QtGui.QHBoxLayout() + self.hboxlayout59.setMargin(0) + self.hboxlayout59.setSpacing(0) + self.hboxlayout59.setObjectName("hboxlayout59") + + self.nanohive_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.nanohive_checkbox.setEnabled(True) + self.nanohive_checkbox.setObjectName("nanohive_checkbox") + self.hboxlayout59.addWidget(self.nanohive_checkbox) + + self.nanohive_lbl = QtGui.QLabel(self.file_locations_grp) + self.nanohive_lbl.setEnabled(True) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.nanohive_lbl.sizePolicy().hasHeightForWidth()) + self.nanohive_lbl.setSizePolicy(sizePolicy) + self.nanohive_lbl.setMinimumSize(QtCore.QSize(60,0)) + self.nanohive_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.nanohive_lbl.setObjectName("nanohive_lbl") + self.hboxlayout59.addWidget(self.nanohive_lbl) + self.gridlayout32.addLayout(self.hboxlayout59,1,0,1,1) + + self.hboxlayout60 = QtGui.QHBoxLayout() + self.hboxlayout60.setMargin(0) + self.hboxlayout60.setSpacing(0) + self.hboxlayout60.setObjectName("hboxlayout60") + + self.qutemol_checkbox = QtGui.QCheckBox(self.file_locations_grp) + self.qutemol_checkbox.setEnabled(True) + self.qutemol_checkbox.setObjectName("qutemol_checkbox") + self.hboxlayout60.addWidget(self.qutemol_checkbox) + + self.qutemol_lbl = QtGui.QLabel(self.file_locations_grp) + self.qutemol_lbl.setEnabled(True) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(1),QtGui.QSizePolicy.Policy(5)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.qutemol_lbl.sizePolicy().hasHeightForWidth()) + self.qutemol_lbl.setSizePolicy(sizePolicy) + self.qutemol_lbl.setMinimumSize(QtCore.QSize(60,0)) + self.qutemol_lbl.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.qutemol_lbl.setObjectName("qutemol_lbl") + self.hboxlayout60.addWidget(self.qutemol_lbl) + self.gridlayout32.addLayout(self.hboxlayout60,0,0,1,1) + + self.cpp_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.cpp_choose_btn.setEnabled(False) + self.cpp_choose_btn.setObjectName("cpp_choose_btn") + self.gridlayout32.addWidget(self.cpp_choose_btn,7,2,1,1) + + self.qutemol_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.qutemol_choose_btn.setEnabled(False) + self.qutemol_choose_btn.setAutoDefault(False) + self.qutemol_choose_btn.setObjectName("qutemol_choose_btn") + self.gridlayout32.addWidget(self.qutemol_choose_btn,0,2,1,1) + + self.povray_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.povray_choose_btn.setEnabled(False) + self.povray_choose_btn.setAutoDefault(False) + self.povray_choose_btn.setObjectName("povray_choose_btn") + self.gridlayout32.addWidget(self.povray_choose_btn,2,2,1,1) + + self.povdir_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.povdir_choose_btn.setEnabled(False) + self.povdir_choose_btn.setAutoDefault(False) + self.povdir_choose_btn.setObjectName("povdir_choose_btn") + self.gridlayout32.addWidget(self.povdir_choose_btn,4,2,1,1) + + self.megapov_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.megapov_choose_btn.setEnabled(False) + self.megapov_choose_btn.setAutoDefault(False) + self.megapov_choose_btn.setObjectName("megapov_choose_btn") + self.gridlayout32.addWidget(self.megapov_choose_btn,3,2,1,1) + + self.gamess_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.gamess_choose_btn.setEnabled(False) + self.gamess_choose_btn.setAutoDefault(False) + self.gamess_choose_btn.setObjectName("gamess_choose_btn") + self.gridlayout32.addWidget(self.gamess_choose_btn,5,2,1,1) + + self.nanohive_choose_btn = QtGui.QPushButton(self.file_locations_grp) + self.nanohive_choose_btn.setEnabled(False) + self.nanohive_choose_btn.setAutoDefault(False) + self.nanohive_choose_btn.setObjectName("nanohive_choose_btn") + self.gridlayout32.addWidget(self.nanohive_choose_btn,1,2,1,1) + self.gridlayout31.addWidget(self.file_locations_grp,0,0,1,1) + self.prefsStackedWidget.addWidget(self.Plugins) + + self.Undo = QtGui.QWidget() + self.Undo.setObjectName("Undo") + + self.gridlayout33 = QtGui.QGridLayout(self.Undo) + self.gridlayout33.setMargin(9) + self.gridlayout33.setSpacing(6) + self.gridlayout33.setObjectName("gridlayout33") + + spacerItem60 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout33.addItem(spacerItem60,0,1,1,1) + + self.vboxlayout35 = QtGui.QVBoxLayout() + self.vboxlayout35.setMargin(0) + self.vboxlayout35.setSpacing(4) + self.vboxlayout35.setObjectName("vboxlayout35") + + self.vboxlayout36 = QtGui.QVBoxLayout() + self.vboxlayout36.setMargin(0) + self.vboxlayout36.setSpacing(2) + self.vboxlayout36.setObjectName("vboxlayout36") + + self.undo_restore_view_checkbox = QtGui.QCheckBox(self.Undo) + self.undo_restore_view_checkbox.setObjectName("undo_restore_view_checkbox") + self.vboxlayout36.addWidget(self.undo_restore_view_checkbox) + + self.undo_automatic_checkpoints_checkbox = QtGui.QCheckBox(self.Undo) + self.undo_automatic_checkpoints_checkbox.setObjectName("undo_automatic_checkpoints_checkbox") + self.vboxlayout36.addWidget(self.undo_automatic_checkpoints_checkbox) + + self.hboxlayout61 = QtGui.QHBoxLayout() + self.hboxlayout61.setMargin(0) + self.hboxlayout61.setSpacing(6) + self.hboxlayout61.setObjectName("hboxlayout61") + + self.undo_stack_memory_limit_label = QtGui.QLabel(self.Undo) + self.undo_stack_memory_limit_label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.undo_stack_memory_limit_label.setObjectName("undo_stack_memory_limit_label") + self.hboxlayout61.addWidget(self.undo_stack_memory_limit_label) + + self.undo_stack_memory_limit_spinbox = QtGui.QSpinBox(self.Undo) + self.undo_stack_memory_limit_spinbox.setMaximum(99999) + self.undo_stack_memory_limit_spinbox.setObjectName("undo_stack_memory_limit_spinbox") + self.hboxlayout61.addWidget(self.undo_stack_memory_limit_spinbox) + self.vboxlayout36.addLayout(self.hboxlayout61) + self.vboxlayout35.addLayout(self.vboxlayout36) + + spacerItem61 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout35.addItem(spacerItem61) + self.gridlayout33.addLayout(self.vboxlayout35,0,0,1,1) + self.prefsStackedWidget.addWidget(self.Undo) + + self.Window = QtGui.QWidget() + self.Window.setObjectName("Window") + + self.gridlayout34 = QtGui.QGridLayout(self.Window) + self.gridlayout34.setMargin(9) + self.gridlayout34.setSpacing(6) + self.gridlayout34.setObjectName("gridlayout34") + + self.hboxlayout62 = QtGui.QHBoxLayout() + self.hboxlayout62.setMargin(0) + self.hboxlayout62.setSpacing(4) + self.hboxlayout62.setObjectName("hboxlayout62") + + self.groupBox10 = QtGui.QGroupBox(self.Window) + self.groupBox10.setObjectName("groupBox10") + + self.gridlayout35 = QtGui.QGridLayout(self.groupBox10) + self.gridlayout35.setMargin(4) + self.gridlayout35.setSpacing(4) + self.gridlayout35.setObjectName("gridlayout35") + + self.remember_win_pos_and_size_checkbox = QtGui.QCheckBox(self.groupBox10) + self.remember_win_pos_and_size_checkbox.setObjectName("remember_win_pos_and_size_checkbox") + self.gridlayout35.addWidget(self.remember_win_pos_and_size_checkbox,1,0,1,3) + + self.vboxlayout37 = QtGui.QVBoxLayout() + self.vboxlayout37.setMargin(0) + self.vboxlayout37.setSpacing(6) + self.vboxlayout37.setObjectName("vboxlayout37") + + self.save_current_btn = QtGui.QPushButton(self.groupBox10) + self.save_current_btn.setAutoDefault(False) + self.save_current_btn.setObjectName("save_current_btn") + self.vboxlayout37.addWidget(self.save_current_btn) + + self.restore_saved_size_btn = QtGui.QPushButton(self.groupBox10) + self.restore_saved_size_btn.setAutoDefault(False) + self.restore_saved_size_btn.setObjectName("restore_saved_size_btn") + self.vboxlayout37.addWidget(self.restore_saved_size_btn) + self.gridlayout35.addLayout(self.vboxlayout37,0,2,1,1) + + self.vboxlayout38 = QtGui.QVBoxLayout() + self.vboxlayout38.setMargin(0) + self.vboxlayout38.setSpacing(6) + self.vboxlayout38.setObjectName("vboxlayout38") + + self.textLabel1_2 = QtGui.QLabel(self.groupBox10) + self.textLabel1_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_2.setObjectName("textLabel1_2") + self.vboxlayout38.addWidget(self.textLabel1_2) + + self.textLabel1_2_2 = QtGui.QLabel(self.groupBox10) + self.textLabel1_2_2.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_2_2.setObjectName("textLabel1_2_2") + self.vboxlayout38.addWidget(self.textLabel1_2_2) + self.gridlayout35.addLayout(self.vboxlayout38,0,0,1,1) + + self.gridlayout36 = QtGui.QGridLayout() + self.gridlayout36.setMargin(0) + self.gridlayout36.setSpacing(6) + self.gridlayout36.setObjectName("gridlayout36") + + self.current_width_spinbox = QtGui.QSpinBox(self.groupBox10) + self.current_width_spinbox.setMaximum(2048) + self.current_width_spinbox.setMinimum(640) + self.current_width_spinbox.setProperty("value",QtCore.QVariant(640)) + self.current_width_spinbox.setObjectName("current_width_spinbox") + self.gridlayout36.addWidget(self.current_width_spinbox,0,0,1,1) + + self.saved_height_lineedit = QtGui.QLineEdit(self.groupBox10) + self.saved_height_lineedit.setReadOnly(True) + self.saved_height_lineedit.setObjectName("saved_height_lineedit") + self.gridlayout36.addWidget(self.saved_height_lineedit,1,2,1,1) + + self.current_height_spinbox = QtGui.QSpinBox(self.groupBox10) + self.current_height_spinbox.setMaximum(2000) + self.current_height_spinbox.setMinimum(480) + self.current_height_spinbox.setProperty("value",QtCore.QVariant(480)) + self.current_height_spinbox.setObjectName("current_height_spinbox") + self.gridlayout36.addWidget(self.current_height_spinbox,0,2,1,1) + + self.saved_width_lineedit = QtGui.QLineEdit(self.groupBox10) + self.saved_width_lineedit.setReadOnly(True) + self.saved_width_lineedit.setObjectName("saved_width_lineedit") + self.gridlayout36.addWidget(self.saved_width_lineedit,1,0,1,1) + + self.textLabel1_2_2_2 = QtGui.QLabel(self.groupBox10) + self.textLabel1_2_2_2.setAlignment(QtCore.Qt.AlignCenter) + self.textLabel1_2_2_2.setObjectName("textLabel1_2_2_2") + self.gridlayout36.addWidget(self.textLabel1_2_2_2,0,1,1,1) + + self.textLabel1_2_2_2_2 = QtGui.QLabel(self.groupBox10) + self.textLabel1_2_2_2_2.setAlignment(QtCore.Qt.AlignCenter) + self.textLabel1_2_2_2_2.setObjectName("textLabel1_2_2_2_2") + self.gridlayout36.addWidget(self.textLabel1_2_2_2_2,1,1,1,1) + self.gridlayout35.addLayout(self.gridlayout36,0,1,1,1) + self.hboxlayout62.addWidget(self.groupBox10) + + spacerItem62 = QtGui.QSpacerItem(70,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout62.addItem(spacerItem62) + self.gridlayout34.addLayout(self.hboxlayout62,0,0,1,1) + + self.hboxlayout63 = QtGui.QHBoxLayout() + self.hboxlayout63.setMargin(0) + self.hboxlayout63.setSpacing(4) + self.hboxlayout63.setObjectName("hboxlayout63") + + self.groupBox3 = QtGui.QGroupBox(self.Window) + self.groupBox3.setObjectName("groupBox3") + + self.gridlayout37 = QtGui.QGridLayout(self.groupBox3) + self.gridlayout37.setMargin(4) + self.gridlayout37.setSpacing(4) + self.gridlayout37.setObjectName("gridlayout37") + + self.caption_fullpath_checkbox = QtGui.QCheckBox(self.groupBox3) + self.caption_fullpath_checkbox.setObjectName("caption_fullpath_checkbox") + self.gridlayout37.addWidget(self.caption_fullpath_checkbox,4,0,1,1) + + self.caption_suffix_linedit = QtGui.QLineEdit(self.groupBox3) + self.caption_suffix_linedit.setMinimumSize(QtCore.QSize(0,0)) + self.caption_suffix_linedit.setMaximumSize(QtCore.QSize(32767,32767)) + self.caption_suffix_linedit.setObjectName("caption_suffix_linedit") + self.gridlayout37.addWidget(self.caption_suffix_linedit,3,0,1,1) + + self.textLabel2_2 = QtGui.QLabel(self.groupBox3) + self.textLabel2_2.setObjectName("textLabel2_2") + self.gridlayout37.addWidget(self.textLabel2_2,2,0,1,1) + + self.caption_prefix_linedit = QtGui.QLineEdit(self.groupBox3) + self.caption_prefix_linedit.setMinimumSize(QtCore.QSize(0,0)) + self.caption_prefix_linedit.setMaximumSize(QtCore.QSize(32767,32767)) + self.caption_prefix_linedit.setObjectName("caption_prefix_linedit") + self.gridlayout37.addWidget(self.caption_prefix_linedit,1,0,1,1) + + self.textLabel2 = QtGui.QLabel(self.groupBox3) + self.textLabel2.setObjectName("textLabel2") + self.gridlayout37.addWidget(self.textLabel2,0,0,1,1) + self.hboxlayout63.addWidget(self.groupBox3) + + spacerItem63 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout63.addItem(spacerItem63) + self.gridlayout34.addLayout(self.hboxlayout63,1,0,1,1) + + spacerItem64 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.gridlayout34.addItem(spacerItem64,3,0,1,1) + + self.hboxlayout64 = QtGui.QHBoxLayout() + self.hboxlayout64.setMargin(0) + self.hboxlayout64.setSpacing(4) + self.hboxlayout64.setObjectName("hboxlayout64") + + self.selectedFontGroupBox = QtGui.QGroupBox(self.Window) + self.selectedFontGroupBox.setCheckable(True) + self.selectedFontGroupBox.setChecked(False) + self.selectedFontGroupBox.setObjectName("selectedFontGroupBox") + + self.gridlayout38 = QtGui.QGridLayout(self.selectedFontGroupBox) + self.gridlayout38.setMargin(4) + self.gridlayout38.setSpacing(4) + self.gridlayout38.setObjectName("gridlayout38") + + self.makeDefaultFontPushButton = QtGui.QPushButton(self.selectedFontGroupBox) + self.makeDefaultFontPushButton.setAutoDefault(False) + self.makeDefaultFontPushButton.setObjectName("makeDefaultFontPushButton") + self.gridlayout38.addWidget(self.makeDefaultFontPushButton,1,0,1,2) + + self.vboxlayout39 = QtGui.QVBoxLayout() + self.vboxlayout39.setMargin(0) + self.vboxlayout39.setSpacing(6) + self.vboxlayout39.setObjectName("vboxlayout39") + + self.fontComboBox = QtGui.QFontComboBox(self.selectedFontGroupBox) + self.fontComboBox.setFontFilters(QtGui.QFontComboBox.AllFonts|QtGui.QFontComboBox.ProportionalFonts|QtGui.QFontComboBox.ScalableFonts) + + font = QtGui.QFont() + font.setFamily("Arial") + self.fontComboBox.setCurrentFont(font) + self.fontComboBox.setObjectName("fontComboBox") + self.vboxlayout39.addWidget(self.fontComboBox) + + self.hboxlayout65 = QtGui.QHBoxLayout() + self.hboxlayout65.setMargin(0) + self.hboxlayout65.setSpacing(6) + self.hboxlayout65.setObjectName("hboxlayout65") + + self.fontSizeSpinBox = QtGui.QSpinBox(self.selectedFontGroupBox) + self.fontSizeSpinBox.setMaximum(24) + self.fontSizeSpinBox.setMinimum(6) + self.fontSizeSpinBox.setProperty("value",QtCore.QVariant(9)) + self.fontSizeSpinBox.setObjectName("fontSizeSpinBox") + self.hboxlayout65.addWidget(self.fontSizeSpinBox) + + spacerItem65 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout65.addItem(spacerItem65) + self.vboxlayout39.addLayout(self.hboxlayout65) + self.gridlayout38.addLayout(self.vboxlayout39,0,1,1,1) + + self.vboxlayout40 = QtGui.QVBoxLayout() + self.vboxlayout40.setMargin(0) + self.vboxlayout40.setSpacing(6) + self.vboxlayout40.setObjectName("vboxlayout40") + + self.label = QtGui.QLabel(self.selectedFontGroupBox) + self.label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label.setObjectName("label") + self.vboxlayout40.addWidget(self.label) + + self.label_3 = QtGui.QLabel(self.selectedFontGroupBox) + self.label_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.label_3.setObjectName("label_3") + self.vboxlayout40.addWidget(self.label_3) + self.gridlayout38.addLayout(self.vboxlayout40,0,0,1,1) + self.hboxlayout64.addWidget(self.selectedFontGroupBox) + + spacerItem66 = QtGui.QSpacerItem(280,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout64.addItem(spacerItem66) + self.gridlayout34.addLayout(self.hboxlayout64,2,0,1,1) + self.prefsStackedWidget.addWidget(self.Window) + + self.Reports = QtGui.QWidget() + self.Reports.setObjectName("Reports") + + self.gridlayout39 = QtGui.QGridLayout(self.Reports) + self.gridlayout39.setMargin(9) + self.gridlayout39.setSpacing(6) + self.gridlayout39.setObjectName("gridlayout39") + + self.vboxlayout41 = QtGui.QVBoxLayout() + self.vboxlayout41.setMargin(0) + self.vboxlayout41.setSpacing(4) + self.vboxlayout41.setObjectName("vboxlayout41") + + self.groupBox17 = QtGui.QGroupBox(self.Reports) + self.groupBox17.setObjectName("groupBox17") + + self.gridlayout40 = QtGui.QGridLayout(self.groupBox17) + self.gridlayout40.setMargin(4) + self.gridlayout40.setSpacing(2) + self.gridlayout40.setObjectName("gridlayout40") + + self.msg_serial_number_checkbox = QtGui.QCheckBox(self.groupBox17) + self.msg_serial_number_checkbox.setObjectName("msg_serial_number_checkbox") + self.gridlayout40.addWidget(self.msg_serial_number_checkbox,0,0,1,2) + + self.msg_timestamp_checkbox = QtGui.QCheckBox(self.groupBox17) + self.msg_timestamp_checkbox.setObjectName("msg_timestamp_checkbox") + self.gridlayout40.addWidget(self.msg_timestamp_checkbox,1,0,1,2) + self.vboxlayout41.addWidget(self.groupBox17) + + spacerItem67 = QtGui.QSpacerItem(20,40,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout41.addItem(spacerItem67) + self.gridlayout39.addLayout(self.vboxlayout41,0,0,1,1) + + spacerItem68 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout39.addItem(spacerItem68,0,1,1,1) + self.prefsStackedWidget.addWidget(self.Reports) + + self.Tooltips = QtGui.QWidget() + self.Tooltips.setObjectName("Tooltips") + + self.gridlayout41 = QtGui.QGridLayout(self.Tooltips) + self.gridlayout41.setMargin(9) + self.gridlayout41.setSpacing(6) + self.gridlayout41.setObjectName("gridlayout41") + + spacerItem69 = QtGui.QSpacerItem(90,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.gridlayout41.addItem(spacerItem69,0,1,1,1) + + self.vboxlayout42 = QtGui.QVBoxLayout() + self.vboxlayout42.setMargin(0) + self.vboxlayout42.setSpacing(4) + self.vboxlayout42.setObjectName("vboxlayout42") + + self.atom_dynamic_tooltips_grpbox = QtGui.QGroupBox(self.Tooltips) + self.atom_dynamic_tooltips_grpbox.setObjectName("atom_dynamic_tooltips_grpbox") + + self.vboxlayout43 = QtGui.QVBoxLayout(self.atom_dynamic_tooltips_grpbox) + self.vboxlayout43.setMargin(4) + self.vboxlayout43.setSpacing(0) + self.vboxlayout43.setObjectName("vboxlayout43") + + self.dynamicToolTipAtomChunkInfo_checkbox = QtGui.QCheckBox(self.atom_dynamic_tooltips_grpbox) + self.dynamicToolTipAtomChunkInfo_checkbox.setChecked(False) + self.dynamicToolTipAtomChunkInfo_checkbox.setObjectName("dynamicToolTipAtomChunkInfo_checkbox") + self.vboxlayout43.addWidget(self.dynamicToolTipAtomChunkInfo_checkbox) + + self.dynamicToolTipAtomMass_checkbox = QtGui.QCheckBox(self.atom_dynamic_tooltips_grpbox) + self.dynamicToolTipAtomMass_checkbox.setObjectName("dynamicToolTipAtomMass_checkbox") + self.vboxlayout43.addWidget(self.dynamicToolTipAtomMass_checkbox) + + self.dynamicToolTipAtomPosition_checkbox = QtGui.QCheckBox(self.atom_dynamic_tooltips_grpbox) + self.dynamicToolTipAtomPosition_checkbox.setChecked(False) + self.dynamicToolTipAtomPosition_checkbox.setObjectName("dynamicToolTipAtomPosition_checkbox") + self.vboxlayout43.addWidget(self.dynamicToolTipAtomPosition_checkbox) + + self.dynamicToolTipAtomDistanceDeltas_checkbox = QtGui.QCheckBox(self.atom_dynamic_tooltips_grpbox) + self.dynamicToolTipAtomDistanceDeltas_checkbox.setObjectName("dynamicToolTipAtomDistanceDeltas_checkbox") + self.vboxlayout43.addWidget(self.dynamicToolTipAtomDistanceDeltas_checkbox) + + self.includeVdwRadiiInAtomDistanceInfo = QtGui.QCheckBox(self.atom_dynamic_tooltips_grpbox) + self.includeVdwRadiiInAtomDistanceInfo.setObjectName("includeVdwRadiiInAtomDistanceInfo") + self.vboxlayout43.addWidget(self.includeVdwRadiiInAtomDistanceInfo) + + self.hboxlayout66 = QtGui.QHBoxLayout() + self.hboxlayout66.setMargin(0) + self.hboxlayout66.setSpacing(4) + self.hboxlayout66.setObjectName("hboxlayout66") + + self.gridlayout42 = QtGui.QGridLayout() + self.gridlayout42.setMargin(0) + self.gridlayout42.setSpacing(2) + self.gridlayout42.setObjectName("gridlayout42") + + self.atomDistPrecisionLabel = QtGui.QLabel(self.atom_dynamic_tooltips_grpbox) + self.atomDistPrecisionLabel.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.atomDistPrecisionLabel.setObjectName("atomDistPrecisionLabel") + self.gridlayout42.addWidget(self.atomDistPrecisionLabel,0,0,1,1) + + self.dynamicToolTipAtomDistancePrecision_spinbox = QtGui.QSpinBox(self.atom_dynamic_tooltips_grpbox) + self.dynamicToolTipAtomDistancePrecision_spinbox.setMaximum(5) + self.dynamicToolTipAtomDistancePrecision_spinbox.setMinimum(1) + self.dynamicToolTipAtomDistancePrecision_spinbox.setProperty("value",QtCore.QVariant(3)) + self.dynamicToolTipAtomDistancePrecision_spinbox.setObjectName("dynamicToolTipAtomDistancePrecision_spinbox") + self.gridlayout42.addWidget(self.dynamicToolTipAtomDistancePrecision_spinbox,0,1,1,1) + + self.dynamicToolTipBendAnglePrecision_spinbox = QtGui.QSpinBox(self.atom_dynamic_tooltips_grpbox) + self.dynamicToolTipBendAnglePrecision_spinbox.setMaximum(5) + self.dynamicToolTipBendAnglePrecision_spinbox.setMinimum(1) + self.dynamicToolTipBendAnglePrecision_spinbox.setProperty("value",QtCore.QVariant(3)) + self.dynamicToolTipBendAnglePrecision_spinbox.setObjectName("dynamicToolTipBendAnglePrecision_spinbox") + self.gridlayout42.addWidget(self.dynamicToolTipBendAnglePrecision_spinbox,1,1,1,1) + + self.textLabel1_8_3 = QtGui.QLabel(self.atom_dynamic_tooltips_grpbox) + self.textLabel1_8_3.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter) + self.textLabel1_8_3.setObjectName("textLabel1_8_3") + self.gridlayout42.addWidget(self.textLabel1_8_3,1,0,1,1) + self.hboxlayout66.addLayout(self.gridlayout42) + + spacerItem70 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout66.addItem(spacerItem70) + self.vboxlayout43.addLayout(self.hboxlayout66) + self.vboxlayout42.addWidget(self.atom_dynamic_tooltips_grpbox) + + self.groupBox35 = QtGui.QGroupBox(self.Tooltips) + self.groupBox35.setObjectName("groupBox35") + + self.gridlayout43 = QtGui.QGridLayout(self.groupBox35) + self.gridlayout43.setMargin(4) + self.gridlayout43.setSpacing(0) + self.gridlayout43.setObjectName("gridlayout43") + + self.dynamicToolTipBondChunkInfo_checkbox = QtGui.QCheckBox(self.groupBox35) + self.dynamicToolTipBondChunkInfo_checkbox.setObjectName("dynamicToolTipBondChunkInfo_checkbox") + self.gridlayout43.addWidget(self.dynamicToolTipBondChunkInfo_checkbox,1,0,1,1) + + self.dynamicToolTipBondLength_checkbox = QtGui.QCheckBox(self.groupBox35) + self.dynamicToolTipBondLength_checkbox.setObjectName("dynamicToolTipBondLength_checkbox") + self.gridlayout43.addWidget(self.dynamicToolTipBondLength_checkbox,0,0,1,1) + self.vboxlayout42.addWidget(self.groupBox35) + + spacerItem71 = QtGui.QSpacerItem(20,161,QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Expanding) + self.vboxlayout42.addItem(spacerItem71) + self.gridlayout41.addLayout(self.vboxlayout42,0,0,1,1) + self.prefsStackedWidget.addWidget(self.Tooltips) + self.gridlayout1.addWidget(self.prefsStackedWidget,0,1,1,1) + + self.categoryTreeWidget = QtGui.QTreeWidget(self.systemOptionsTab) + self.categoryTreeWidget.setWindowModality(QtCore.Qt.NonModal) + + sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Policy(0),QtGui.QSizePolicy.Policy(7)) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.categoryTreeWidget.sizePolicy().hasHeightForWidth()) + self.categoryTreeWidget.setSizePolicy(sizePolicy) + self.categoryTreeWidget.setMinimumSize(QtCore.QSize(170,0)) + self.categoryTreeWidget.setObjectName("categoryTreeWidget") + self.gridlayout1.addWidget(self.categoryTreeWidget,0,0,1,1) + self.prefsTabWidget.addTab(self.systemOptionsTab,"") + self.gridlayout.addWidget(self.prefsTabWidget,0,0,1,1) + + self.hboxlayout67 = QtGui.QHBoxLayout() + self.hboxlayout67.setMargin(0) + self.hboxlayout67.setSpacing(4) + self.hboxlayout67.setObjectName("hboxlayout67") + + spacerItem72 = QtGui.QSpacerItem(40,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) + self.hboxlayout67.addItem(spacerItem72) + + self.okButton = QtGui.QPushButton(PreferencesDialog) + self.okButton.setObjectName("okButton") + self.hboxlayout67.addWidget(self.okButton) + + self.whatsThisToolButton = QtGui.QToolButton(PreferencesDialog) + self.whatsThisToolButton.setObjectName("whatsThisToolButton") + self.hboxlayout67.addWidget(self.whatsThisToolButton) + self.gridlayout.addLayout(self.hboxlayout67,1,0,1,1) + self.rotationSensitivity_txtlbl.setBuddy(self.mouseSpeedDuringRotation_slider) + self.atomDistPrecisionLabel.setBuddy(self.dynamicToolTipAtomDistancePrecision_spinbox) + self.textLabel1_8_3.setBuddy(self.dynamicToolTipBendAnglePrecision_spinbox) + + self.retranslateUi(PreferencesDialog) + self.prefsTabWidget.setCurrentIndex(0) + self.prefsStackedWidget.setCurrentIndex(3) + self.level_of_detail_combox.setCurrentIndex(2) + QtCore.QMetaObject.connectSlotsByName(PreferencesDialog) + + def retranslateUi(self, PreferencesDialog): + PreferencesDialog.setWindowTitle(QtGui.QApplication.translate("PreferencesDialog", "Preferences", None, QtGui.QApplication.UnicodeUTF8)) + self.sponsorLogosGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Sponsor logos download permission", None, QtGui.QApplication.UnicodeUTF8)) + self.logoAlwaysAskRadioBtn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Always ask permission to download sponsor logos from the Nanorex server", None, QtGui.QApplication.UnicodeUTF8)) + self.logoAlwaysAskRadioBtn.setText(QtGui.QApplication.translate("PreferencesDialog", "Always ask before downloading", None, QtGui.QApplication.UnicodeUTF8)) + self.logoNeverAskRadioBtn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Never ask permission before downloading sponsor logos from the Nanorex server", None, QtGui.QApplication.UnicodeUTF8)) + self.logoNeverAskRadioBtn.setText(QtGui.QApplication.translate("PreferencesDialog", "Never ask before downloading", None, QtGui.QApplication.UnicodeUTF8)) + self.logoNeverDownLoadRadioBtn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Never download sponsor logos from the Nanorex server", None, QtGui.QApplication.UnicodeUTF8)) + self.logoNeverDownLoadRadioBtn.setText(QtGui.QApplication.translate("PreferencesDialog", "Never download", None, QtGui.QApplication.UnicodeUTF8)) + self.buildmode_groupbox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Build Chunks settings", None, QtGui.QApplication.UnicodeUTF8)) + self.autobond_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Build mode\'s default setting for Autobonding at startup (enabled/disabled)", None, QtGui.QApplication.UnicodeUTF8)) + self.autobond_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Autobond", None, QtGui.QApplication.UnicodeUTF8)) + self.buildmode_highlighting_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Build mode\'s default setting for Highlighting at startup (enabled/disabled)", None, QtGui.QApplication.UnicodeUTF8)) + self.buildmode_highlighting_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Hover highlighting", None, QtGui.QApplication.UnicodeUTF8)) + self.water_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Build mode\'s default setting for Water at startup (enabled/disabled)", None, QtGui.QApplication.UnicodeUTF8)) + self.water_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Water", None, QtGui.QApplication.UnicodeUTF8)) + self.buildmode_select_atoms_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Automatically select atoms when depositing", None, QtGui.QApplication.UnicodeUTF8)) + self.buildmode_select_atoms_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Auto select atoms of deposited objects", None, QtGui.QApplication.UnicodeUTF8)) + self.label_8.setText(QtGui.QApplication.translate("PreferencesDialog", "Background color:", None, QtGui.QApplication.UnicodeUTF8)) + self.hoverHighlightingStyleGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Hover highlighting style", None, QtGui.QApplication.UnicodeUTF8)) + self.label_21.setText(QtGui.QApplication.translate("PreferencesDialog", "Color:", None, QtGui.QApplication.UnicodeUTF8)) + self.hoverHighlightingColorButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.selectionColorStyleGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Selection style", None, QtGui.QApplication.UnicodeUTF8)) + self.label_22.setText(QtGui.QApplication.translate("PreferencesDialog", "Color:", None, QtGui.QApplication.UnicodeUTF8)) + self.selectionColorButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.label_9.setText(QtGui.QApplication.translate("PreferencesDialog", "Global display style at start-up:", None, QtGui.QApplication.UnicodeUTF8)) + self.compassGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Display compass", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_4.setText(QtGui.QApplication.translate("PreferencesDialog", "Location :", None, QtGui.QApplication.UnicodeUTF8)) + self.compass_position_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Upper right", None, QtGui.QApplication.UnicodeUTF8)) + self.compass_position_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Upper left", None, QtGui.QApplication.UnicodeUTF8)) + self.compass_position_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Lower left", None, QtGui.QApplication.UnicodeUTF8)) + self.compass_position_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Lower right", None, QtGui.QApplication.UnicodeUTF8)) + self.display_compass_labels_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Show/Hide Display Compass", None, QtGui.QApplication.UnicodeUTF8)) + self.display_compass_labels_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Display compass labels", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox7_2.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Axes", None, QtGui.QApplication.UnicodeUTF8)) + self.display_pov_axis_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Show/Hide Point of View Axis", None, QtGui.QApplication.UnicodeUTF8)) + self.display_pov_axis_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Display point of view (POV) axis", None, QtGui.QApplication.UnicodeUTF8)) + self.display_origin_axis_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Show/Hide Origin Axis", None, QtGui.QApplication.UnicodeUTF8)) + self.display_origin_axis_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Display origin axis", None, QtGui.QApplication.UnicodeUTF8)) + self.enableFogCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Enable fog", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox8.setTitle(QtGui.QApplication.translate("PreferencesDialog", "View rotation settings", None, QtGui.QApplication.UnicodeUTF8)) + self.animate_views_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable/disable animation between current view and a new view", None, QtGui.QApplication.UnicodeUTF8)) + self.animate_views_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Animate between views", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_5.setText(QtGui.QApplication.translate("PreferencesDialog", "View animation speed:", None, QtGui.QApplication.UnicodeUTF8)) + self.rotationSensitivity_txtlbl.setText(QtGui.QApplication.translate("PreferencesDialog", "Mouse speed:", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Slow", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2_3_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Slow", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_4_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Fast", None, QtGui.QApplication.UnicodeUTF8)) + self.resetMouseSpeedDuringRotation_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Restore default value", None, QtGui.QApplication.UnicodeUTF8)) + self.animation_speed_slider.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "View Animation Speed", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_4.setText(QtGui.QApplication.translate("PreferencesDialog", "Fast", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox_4.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Mouse wheel settings", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox_4.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Mouse wheel zoom settings", None, QtGui.QApplication.UnicodeUTF8)) + self.label_19.setText(QtGui.QApplication.translate("PreferencesDialog", "Direction:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_17.setText(QtGui.QApplication.translate("PreferencesDialog", "Zoom in:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_18.setText(QtGui.QApplication.translate("PreferencesDialog", "Zoom out:", None, QtGui.QApplication.UnicodeUTF8)) + self.mouseWheelDirectionComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Pull/push wheel to zoom in/out", None, QtGui.QApplication.UnicodeUTF8)) + self.mouseWheelDirectionComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Push/pull wheel to zoom in/out", None, QtGui.QApplication.UnicodeUTF8)) + self.mouseWheelZoomInPointComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Center about cursor position", None, QtGui.QApplication.UnicodeUTF8)) + self.mouseWheelZoomInPointComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Center about screen", None, QtGui.QApplication.UnicodeUTF8)) + self.mouseWheelZoomOutPointComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Center about cursor position", None, QtGui.QApplication.UnicodeUTF8)) + self.mouseWheelZoomOutPointComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Center about screen", None, QtGui.QApplication.UnicodeUTF8)) + self.label_20.setText(QtGui.QApplication.translate("PreferencesDialog", "Hover highlighting timeout interval:", None, QtGui.QApplication.UnicodeUTF8)) + self.hhTimeoutIntervalDoubleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " seconds", None, QtGui.QApplication.UnicodeUTF8)) + self.rulersGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Rulers", None, QtGui.QApplication.UnicodeUTF8)) + self.label_5.setText(QtGui.QApplication.translate("PreferencesDialog", "Opacity:", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_2_4.setText(QtGui.QApplication.translate("PreferencesDialog", "Color:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_10.setText(QtGui.QApplication.translate("PreferencesDialog", "Origin:", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerPositionComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Lower left", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerPositionComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Upper left", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerPositionComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Lower right", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerPositionComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Upper right", None, QtGui.QApplication.UnicodeUTF8)) + self.ruler_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerOpacitySpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", "%", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerDisplayComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Both rulers", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerDisplayComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Vertical ruler only", None, QtGui.QApplication.UnicodeUTF8)) + self.rulerDisplayComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Horizontal ruler only", None, QtGui.QApplication.UnicodeUTF8)) + self.label_12.setText(QtGui.QApplication.translate("PreferencesDialog", "Display:", None, QtGui.QApplication.UnicodeUTF8)) + self.showRulersInPerspectiveViewCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show rulers in perspective view", None, QtGui.QApplication.UnicodeUTF8)) + self.atom_colors_grpbox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Colors", None, QtGui.QApplication.UnicodeUTF8)) + self.change_element_colors_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Change Element Colors...", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_2_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Atom highlighting :", None, QtGui.QApplication.UnicodeUTF8)) + self.hotspot_lbl_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Bondpoint highlighting :", None, QtGui.QApplication.UnicodeUTF8)) + self.hotspot_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "Bondpoint hotspot :", None, QtGui.QApplication.UnicodeUTF8)) + self.bondpoint_hilite_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.atom_hilite_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.hotspot_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.reset_atom_colors_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore Default Colors", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_7.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Level of detail for atoms (and bonds)", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_7.setText(QtGui.QApplication.translate("PreferencesDialog", "Level of detail :", None, QtGui.QApplication.UnicodeUTF8)) + self.level_of_detail_combox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Sets graphics quality for atoms (and bonds)", None, QtGui.QApplication.UnicodeUTF8)) + self.level_of_detail_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Low", None, QtGui.QApplication.UnicodeUTF8)) + self.level_of_detail_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Medium", None, QtGui.QApplication.UnicodeUTF8)) + self.level_of_detail_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "High", None, QtGui.QApplication.UnicodeUTF8)) + self.level_of_detail_combox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Variable", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_3_2.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Set Atom Scale factor for Ball and Stick display mode", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_3_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Ball and stick atom scale :", None, QtGui.QApplication.UnicodeUTF8)) + self.cpk_atom_rad_spinbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Set Atom Scale factor for Ball and Stick display mode", None, QtGui.QApplication.UnicodeUTF8)) + self.cpk_atom_rad_spinbox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", "%", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_3_2_2.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "CPK Atom Scale factor for CPK display mode", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_3_2_2.setText(QtGui.QApplication.translate("PreferencesDialog", "CPK atom scale :", None, QtGui.QApplication.UnicodeUTF8)) + self.cpk_scale_factor_linedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Displays the value of the CPK Atom Scale", None, QtGui.QApplication.UnicodeUTF8)) + self.cpk_scale_factor_slider.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Changes Atom Scale factor for CPK display mode", None, QtGui.QApplication.UnicodeUTF8)) + self.reset_cpk_scale_factor_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Restore default value", None, QtGui.QApplication.UnicodeUTF8)) + self.overlappingAtomIndicatorsCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Overlapping atom indicators", None, QtGui.QApplication.UnicodeUTF8)) + self.keepBondsTransmuteCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Force to keep bonds during transmute", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox4.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Colors", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Bond highlighting :", None, QtGui.QApplication.UnicodeUTF8)) + self.bond_stretch_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.bond_hilite_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Vane/Ribbon :", None, QtGui.QApplication.UnicodeUTF8)) + self.ballstick_bondcolor_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3.setText(QtGui.QApplication.translate("PreferencesDialog", "Ball and stick cylinder :", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel3_2_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Bond stretch :", None, QtGui.QApplication.UnicodeUTF8)) + self.bond_vane_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.reset_bond_colors_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore Default Colors", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_3.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Set scale (size) factor for the cylinder representing bonds in Ball and Stick display mode", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Ball and stick bond scale :", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Bond thickness (in pixels) for Lines Display Mode", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1.setText(QtGui.QApplication.translate("PreferencesDialog", "Bond line thickness :", None, QtGui.QApplication.UnicodeUTF8)) + self.cpk_cylinder_rad_spinbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Set scale (size) factor for the cylinder representing bonds in Ball and Stick display mode", None, QtGui.QApplication.UnicodeUTF8)) + self.cpk_cylinder_rad_spinbox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", "%", None, QtGui.QApplication.UnicodeUTF8)) + self.bond_line_thickness_spinbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Bond thickness (in pixels) for Lines Display Mode", None, QtGui.QApplication.UnicodeUTF8)) + self.bond_line_thickness_spinbox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pixel", None, QtGui.QApplication.UnicodeUTF8)) + self.high_order_bond_display_groupbox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "High Order Bonds", None, QtGui.QApplication.UnicodeUTF8)) + self.multCyl_radioButton.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Display high order bonds using multiple cylinders", None, QtGui.QApplication.UnicodeUTF8)) + self.multCyl_radioButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Multiple cylinders", None, QtGui.QApplication.UnicodeUTF8)) + self.vanes_radioButton.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Display pi systems in high order bonds as Vanes", None, QtGui.QApplication.UnicodeUTF8)) + self.vanes_radioButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Vanes", None, QtGui.QApplication.UnicodeUTF8)) + self.ribbons_radioButton.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Display pi systems in high order bonds as Ribbons", None, QtGui.QApplication.UnicodeUTF8)) + self.ribbons_radioButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Ribbons", None, QtGui.QApplication.UnicodeUTF8)) + self.show_bond_labels_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Display Bond Type Label", None, QtGui.QApplication.UnicodeUTF8)) + self.show_bond_labels_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show bond type letters", None, QtGui.QApplication.UnicodeUTF8)) + self.show_valence_errors_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable/Disable Valence Error Checker", None, QtGui.QApplication.UnicodeUTF8)) + self.show_valence_errors_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show valence errors", None, QtGui.QApplication.UnicodeUTF8)) + self.showBondStretchIndicators_checkBox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable/Disable Display of Bond Stretch Indicators", None, QtGui.QApplication.UnicodeUTF8)) + self.showBondStretchIndicators_checkBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show bond stretch indicators", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "DNA default values", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaRestoreFactoryDefaultsPushButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore Factory Defaults", None, QtGui.QApplication.UnicodeUTF8)) + self.label_11.setText(QtGui.QApplication.translate("PreferencesDialog", "Conformation:", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaConformationComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "B-DNA", None, QtGui.QApplication.UnicodeUTF8)) + self.label_6.setText(QtGui.QApplication.translate("PreferencesDialog", "Rise:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_7.setText(QtGui.QApplication.translate("PreferencesDialog", "Segment color:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_4.setText(QtGui.QApplication.translate("PreferencesDialog", "Bases per turn:", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaDefaultSegmentColorPushButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaRiseDoubleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " Angstroms", None, QtGui.QApplication.UnicodeUTF8)) + self.dna_reduced_model_options_grpbox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Strand arrowhead display options", None, QtGui.QApplication.UnicodeUTF8)) + self.strandFivePrimeArrowheadsCustomColorCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "5\' End Custom color:", None, QtGui.QApplication.UnicodeUTF8)) + self.strandFivePrimeArrowheadsCustomColorPushButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.strandThreePrimeArrowheadsCustomColorCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "3\' End Custom color:", None, QtGui.QApplication.UnicodeUTF8)) + self.strandThreePrimeArrowheadsCustomColorPushButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.arrowsOnFivePrimeEnds_checkBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show arrows on 5\' ends", None, QtGui.QApplication.UnicodeUTF8)) + self.arrowsOnThreePrimeEnds_checkBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show arrows on 3\' ends", None, QtGui.QApplication.UnicodeUTF8)) + self.arrowsOnBackBones_checkBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Show arrows on back bones", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaDisplayMinorGrooveErrorGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Display minor groove error indicators", None, QtGui.QApplication.UnicodeUTF8)) + self.label_15.setText(QtGui.QApplication.translate("PreferencesDialog", "Minimum angle:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_16.setText(QtGui.QApplication.translate("PreferencesDialog", "Maximum angle:", None, QtGui.QApplication.UnicodeUTF8)) + self.bg1_color_lbl_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Color:", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaMinGrooveAngleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " degrees", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaMaxGrooveAngleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " degrees", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaGrooveIndicatorColorButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaMinorGrooveRestoreFactoryDefaultsPushButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore Factory Defaults", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaDisplayBaseOrientationIndicatorsGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Display base orientation indicators", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaBaseIndicatorsPlaneNormalComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "View plane (up)", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaBaseIndicatorsPlaneNormalComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "View plane (out)", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaBaseIndicatorsPlaneNormalComboBox.addItem(QtGui.QApplication.translate("PreferencesDialog", "View plane (right)", None, QtGui.QApplication.UnicodeUTF8)) + self.bg1_color_lbl_6.setText(QtGui.QApplication.translate("PreferencesDialog", "Inverse indicators color:", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaChooseBaseOrientationIndicatorsInvColorButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaBaseOrientationIndicatorsInverseCheckBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Enable inverse indicators", None, QtGui.QApplication.UnicodeUTF8)) + self.label_35.setText(QtGui.QApplication.translate("PreferencesDialog", "Plane normal:", None, QtGui.QApplication.UnicodeUTF8)) + self.label_13.setText(QtGui.QApplication.translate("PreferencesDialog", "Angle threshold:", None, QtGui.QApplication.UnicodeUTF8)) + self.dnaChooseBaseOrientationIndicatorsColorButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.label_14.setText(QtGui.QApplication.translate("PreferencesDialog", "Terminal base distance:", None, QtGui.QApplication.UnicodeUTF8)) + self.bg1_color_lbl_5.setText(QtGui.QApplication.translate("PreferencesDialog", "Indicators color:", None, QtGui.QApplication.UnicodeUTF8)) + self.adjustPhysicsEngineGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Adjust physics engine", None, QtGui.QApplication.UnicodeUTF8)) + self.adjustEngineCombobox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose the simulation engine with which to minimize energy.", None, QtGui.QApplication.UnicodeUTF8)) + self.adjustEngineCombobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "NanoDynamics-1 (Default)", None, QtGui.QApplication.UnicodeUTF8)) + self.adjustEngineCombobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "GROMACS with ND1 Force Field", None, QtGui.QApplication.UnicodeUTF8)) + self.adjustEngineCombobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "Background GROMACS with ND1 Force Field", None, QtGui.QApplication.UnicodeUTF8)) + self.electrostaticsForDnaDuringAdjust_checkBox.setText(QtGui.QApplication.translate("PreferencesDialog", "Enable electrostatics for DNA reduced model", None, QtGui.QApplication.UnicodeUTF8)) + self.update_btngrp.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Watch motion in real time", None, QtGui.QApplication.UnicodeUTF8)) + self.update_asap_rbtn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Update every 2 seconds, or faster if it doesn\'t slow adjustments by more than 20%", None, QtGui.QApplication.UnicodeUTF8)) + self.update_asap_rbtn.setText(QtGui.QApplication.translate("PreferencesDialog", "Update as fast as possible", None, QtGui.QApplication.UnicodeUTF8)) + self.update_every_rbtn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Specify how often to update the screen during adjustments", None, QtGui.QApplication.UnicodeUTF8)) + self.update_every_rbtn.setText(QtGui.QApplication.translate("PreferencesDialog", "Update every", None, QtGui.QApplication.UnicodeUTF8)) + self.update_number_spinbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Specify how often to update the screen during adjustments", None, QtGui.QApplication.UnicodeUTF8)) + self.update_units_combobox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Specify how often to update the screen during adjustments", None, QtGui.QApplication.UnicodeUTF8)) + self.update_units_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "frames", None, QtGui.QApplication.UnicodeUTF8)) + self.update_units_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "seconds", None, QtGui.QApplication.UnicodeUTF8)) + self.update_units_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "minutes", None, QtGui.QApplication.UnicodeUTF8)) + self.update_units_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "hours", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox20.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Convergence criteria", None, QtGui.QApplication.UnicodeUTF8)) + self.endrms_lbl.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Target RMS force (pN)", None, QtGui.QApplication.UnicodeUTF8)) + self.endrms_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "EndRMS:", None, QtGui.QApplication.UnicodeUTF8)) + self.endmax_lbl.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Target max force (pN)", None, QtGui.QApplication.UnicodeUTF8)) + self.endmax_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "EndMax:", None, QtGui.QApplication.UnicodeUTF8)) + self.cutoverrms_lbl.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Cutover RMS force (pN)", None, QtGui.QApplication.UnicodeUTF8)) + self.cutoverrms_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "CutoverRMS:", None, QtGui.QApplication.UnicodeUTF8)) + self.cutovermax_lbl.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Cutover max force (pN)", None, QtGui.QApplication.UnicodeUTF8)) + self.cutovermax_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "CutoverMax:", None, QtGui.QApplication.UnicodeUTF8)) + self.endRmsDoubleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pN", None, QtGui.QApplication.UnicodeUTF8)) + self.endMaxDoubleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pN", None, QtGui.QApplication.UnicodeUTF8)) + self.cutoverRmsDoubleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pN", None, QtGui.QApplication.UnicodeUTF8)) + self.cutoverMaxDoubleSpinBox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pN", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox8_2.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Directional light properties", None, QtGui.QApplication.UnicodeUTF8)) + self.light_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "1 (On)", None, QtGui.QApplication.UnicodeUTF8)) + self.light_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "2 (On)", None, QtGui.QApplication.UnicodeUTF8)) + self.light_combobox.addItem(QtGui.QApplication.translate("PreferencesDialog", "3 (Off)", None, QtGui.QApplication.UnicodeUTF8)) + self.light_color_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Choose...", None, QtGui.QApplication.UnicodeUTF8)) + self.light_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Light :", None, QtGui.QApplication.UnicodeUTF8)) + self.on_label.setText(QtGui.QApplication.translate("PreferencesDialog", "On :", None, QtGui.QApplication.UnicodeUTF8)) + self.color_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Color :", None, QtGui.QApplication.UnicodeUTF8)) + self.ambient_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Ambient :", None, QtGui.QApplication.UnicodeUTF8)) + self.diffuse_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Diffuse :", None, QtGui.QApplication.UnicodeUTF8)) + self.specularity_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Specular :", None, QtGui.QApplication.UnicodeUTF8)) + self.x_label.setText(QtGui.QApplication.translate("PreferencesDialog", "X :", None, QtGui.QApplication.UnicodeUTF8)) + self.y_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Y :", None, QtGui.QApplication.UnicodeUTF8)) + self.z_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Z :", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox9_2.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Material specular properties", None, QtGui.QApplication.UnicodeUTF8)) + self.ms_on_label.setText(QtGui.QApplication.translate("PreferencesDialog", "On:", None, QtGui.QApplication.UnicodeUTF8)) + self.ms_finish_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Finish:", None, QtGui.QApplication.UnicodeUTF8)) + self.ms_shininess_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Shininess:", None, QtGui.QApplication.UnicodeUTF8)) + self.ms_brightness__label.setText(QtGui.QApplication.translate("PreferencesDialog", "Brightness:", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_6.setText(QtGui.QApplication.translate("PreferencesDialog", "Metal", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2_4.setText(QtGui.QApplication.translate("PreferencesDialog", "Plastic", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_6_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Flat", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2_4_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Glossy", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_6_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Low", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2_4_3.setText(QtGui.QApplication.translate("PreferencesDialog", "High", None, QtGui.QApplication.UnicodeUTF8)) + self.lighting_restore_defaults_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore Defaults", None, QtGui.QApplication.UnicodeUTF8)) + self.file_locations_grp.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Location of executables", None, QtGui.QApplication.UnicodeUTF8)) + self.qutemol_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the QuteMolX executable file.", None, QtGui.QApplication.UnicodeUTF8)) + self.nanohive_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the NanoHive-1 executable file.", None, QtGui.QApplication.UnicodeUTF8)) + self.povray_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the POV-Ray executable file.", None, QtGui.QApplication.UnicodeUTF8)) + self.megapov_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the MegaPOV executable file (megapov.exe).", None, QtGui.QApplication.UnicodeUTF8)) + self.povdir_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Select custom POV include directory", None, QtGui.QApplication.UnicodeUTF8)) + self.gamess_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The gamess executable file. Usually it\'s called gamess.??.x or ??gamess.exe.", None, QtGui.QApplication.UnicodeUTF8)) + self.gromacs_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the mdrun executable file for GROMACS.", None, QtGui.QApplication.UnicodeUTF8)) + self.nv1_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the mdrun executable file for GROMACS.", None, QtGui.QApplication.UnicodeUTF8)) + self.cpp_path_lineedit.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "The full path to the C-preprocessor (cpp) executable file for GROMACS to use.", None, QtGui.QApplication.UnicodeUTF8)) + self.nv1_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable GROMACS", None, QtGui.QApplication.UnicodeUTF8)) + self.nv1_label.setText(QtGui.QApplication.translate("PreferencesDialog", "NanoVision-1:", None, QtGui.QApplication.UnicodeUTF8)) + self.nv1_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose the mdrun executable file for GROMACS", None, QtGui.QApplication.UnicodeUTF8)) + self.nv1_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.gromacs_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose the mdrun executable file for GROMACS", None, QtGui.QApplication.UnicodeUTF8)) + self.gromacs_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.gromacs_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable GROMACS", None, QtGui.QApplication.UnicodeUTF8)) + self.gromacs_label.setText(QtGui.QApplication.translate("PreferencesDialog", "GROMACS:", None, QtGui.QApplication.UnicodeUTF8)) + self.cpp_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable cpp (needed by GROMACS)", None, QtGui.QApplication.UnicodeUTF8)) + self.cpp_label.setText(QtGui.QApplication.translate("PreferencesDialog", "cpp:", None, QtGui.QApplication.UnicodeUTF8)) + self.gamess_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable GAMESS", None, QtGui.QApplication.UnicodeUTF8)) + self.gamess_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "GAMESS:", None, QtGui.QApplication.UnicodeUTF8)) + self.povdir_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Custom directory for POV libraries", None, QtGui.QApplication.UnicodeUTF8)) + self.povdir_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "POV include dir:", None, QtGui.QApplication.UnicodeUTF8)) + self.megapov_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable MegaPOV", None, QtGui.QApplication.UnicodeUTF8)) + self.megapov_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "MegaPOV:", None, QtGui.QApplication.UnicodeUTF8)) + self.povray_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable POV-Ray", None, QtGui.QApplication.UnicodeUTF8)) + self.povray_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "POV-Ray:", None, QtGui.QApplication.UnicodeUTF8)) + self.nanohive_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable NanoHive-1", None, QtGui.QApplication.UnicodeUTF8)) + self.nanohive_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "NanoHive-1:", None, QtGui.QApplication.UnicodeUTF8)) + self.qutemol_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Enable QuteMolX", None, QtGui.QApplication.UnicodeUTF8)) + self.qutemol_lbl.setText(QtGui.QApplication.translate("PreferencesDialog", "QuteMolX:", None, QtGui.QApplication.UnicodeUTF8)) + self.cpp_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose the C-preprocessor (cpp) executable file for GROMACS to use.", None, QtGui.QApplication.UnicodeUTF8)) + self.cpp_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.qutemol_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose location of QuteMolX executable ", None, QtGui.QApplication.UnicodeUTF8)) + self.qutemol_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.povray_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose POV-Ray executable", None, QtGui.QApplication.UnicodeUTF8)) + self.povray_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.povdir_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose the POV include directory", None, QtGui.QApplication.UnicodeUTF8)) + self.povdir_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.megapov_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose MegaPOV executable (megapov.exe)", None, QtGui.QApplication.UnicodeUTF8)) + self.megapov_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.gamess_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose GAMESS executable", None, QtGui.QApplication.UnicodeUTF8)) + self.gamess_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.nanohive_choose_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Choose location of NanoHive-1 executable ", None, QtGui.QApplication.UnicodeUTF8)) + self.nanohive_choose_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Browse...", None, QtGui.QApplication.UnicodeUTF8)) + self.undo_restore_view_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Undo will switch to the view saved with each structural change.", None, QtGui.QApplication.UnicodeUTF8)) + self.undo_restore_view_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore view when undoing structural changes", None, QtGui.QApplication.UnicodeUTF8)) + self.undo_automatic_checkpoints_checkbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Specify Automatic or Manual Checkpoints at program startup.", None, QtGui.QApplication.UnicodeUTF8)) + self.undo_automatic_checkpoints_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Automatic checkpoints", None, QtGui.QApplication.UnicodeUTF8)) + self.undo_stack_memory_limit_label.setText(QtGui.QApplication.translate("PreferencesDialog", "Undo stack memory limit:", None, QtGui.QApplication.UnicodeUTF8)) + self.undo_stack_memory_limit_spinbox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " MB", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox10.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Window position and size", None, QtGui.QApplication.UnicodeUTF8)) + self.remember_win_pos_and_size_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Always save current position and size when quitting", None, QtGui.QApplication.UnicodeUTF8)) + self.save_current_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Save current window position and size for next startup", None, QtGui.QApplication.UnicodeUTF8)) + self.save_current_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Save Current Size", None, QtGui.QApplication.UnicodeUTF8)) + self.restore_saved_size_btn.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Save current window position and size for next startup", None, QtGui.QApplication.UnicodeUTF8)) + self.restore_saved_size_btn.setText(QtGui.QApplication.translate("PreferencesDialog", "Restore Saved Size", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Current size:", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_2_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Saved size:", None, QtGui.QApplication.UnicodeUTF8)) + self.current_width_spinbox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pixels", None, QtGui.QApplication.UnicodeUTF8)) + self.current_height_spinbox.setSuffix(QtGui.QApplication.translate("PreferencesDialog", " pixels", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_2_2_2.setText(QtGui.QApplication.translate("PreferencesDialog", "x", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_2_2_2_2.setText(QtGui.QApplication.translate("PreferencesDialog", "x", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox3.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Window Border Caption Format", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox3.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Window caption format", None, QtGui.QApplication.UnicodeUTF8)) + self.caption_fullpath_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Display full path of part", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2_2.setText(QtGui.QApplication.translate("PreferencesDialog", "Caption suffix for modified file:", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel2.setText(QtGui.QApplication.translate("PreferencesDialog", "Caption prefix for modified file:", None, QtGui.QApplication.UnicodeUTF8)) + self.selectedFontGroupBox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Use custom font", None, QtGui.QApplication.UnicodeUTF8)) + self.makeDefaultFontPushButton.setText(QtGui.QApplication.translate("PreferencesDialog", "Make selected font the default font", None, QtGui.QApplication.UnicodeUTF8)) + self.label.setText(QtGui.QApplication.translate("PreferencesDialog", "Font :", None, QtGui.QApplication.UnicodeUTF8)) + self.label_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Size :", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox17.setTitle(QtGui.QApplication.translate("PreferencesDialog", "History preferences", None, QtGui.QApplication.UnicodeUTF8)) + self.msg_serial_number_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Include message serial number", None, QtGui.QApplication.UnicodeUTF8)) + self.msg_timestamp_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Include message timestamp", None, QtGui.QApplication.UnicodeUTF8)) + self.atom_dynamic_tooltips_grpbox.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Dynamic tooltips for atoms", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipAtomChunkInfo_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Chunk information", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipAtomMass_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Mass information", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipAtomPosition_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "XYZ coordinates", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipAtomDistanceDeltas_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "XYZ distance deltas ", None, QtGui.QApplication.UnicodeUTF8)) + self.includeVdwRadiiInAtomDistanceInfo.setText(QtGui.QApplication.translate("PreferencesDialog", "Include Vdw radii in atom distance tooltip", None, QtGui.QApplication.UnicodeUTF8)) + self.atomDistPrecisionLabel.setText(QtGui.QApplication.translate("PreferencesDialog", "Distance precision:", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipAtomDistancePrecision_spinbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Sets the number of digits after the decimal places", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipBendAnglePrecision_spinbox.setToolTip(QtGui.QApplication.translate("PreferencesDialog", "Sets the number of digits after the decimal places", None, QtGui.QApplication.UnicodeUTF8)) + self.textLabel1_8_3.setText(QtGui.QApplication.translate("PreferencesDialog", "Angle precision:", None, QtGui.QApplication.UnicodeUTF8)) + self.groupBox35.setTitle(QtGui.QApplication.translate("PreferencesDialog", "Dynamic tooltips for bonds", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipBondChunkInfo_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Chunk information", None, QtGui.QApplication.UnicodeUTF8)) + self.dynamicToolTipBondLength_checkbox.setText(QtGui.QApplication.translate("PreferencesDialog", "Distance between atom centers", None, QtGui.QApplication.UnicodeUTF8)) + self.categoryTreeWidget.headerItem().setText(0,QtGui.QApplication.translate("PreferencesDialog", "Categories", None, QtGui.QApplication.UnicodeUTF8)) + self.categoryTreeWidget.clear() + + item = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item.setText(0,QtGui.QApplication.translate("PreferencesDialog", "General", None, QtGui.QApplication.UnicodeUTF8)) + + item1 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item1.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Color", None, QtGui.QApplication.UnicodeUTF8)) + + item2 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item2.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Model View", None, QtGui.QApplication.UnicodeUTF8)) + + item3 = QtGui.QTreeWidgetItem(item2) + item3.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Zoom, Pan and Rotate", None, QtGui.QApplication.UnicodeUTF8)) + + item4 = QtGui.QTreeWidgetItem(item2) + item4.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Rulers", None, QtGui.QApplication.UnicodeUTF8)) + + item5 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item5.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Atoms", None, QtGui.QApplication.UnicodeUTF8)) + + item6 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item6.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Bonds", None, QtGui.QApplication.UnicodeUTF8)) + + item7 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item7.setText(0,QtGui.QApplication.translate("PreferencesDialog", "DNA", None, QtGui.QApplication.UnicodeUTF8)) + + item8 = QtGui.QTreeWidgetItem(item7) + item8.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Minor Groove Error Indicators", None, QtGui.QApplication.UnicodeUTF8)) + + item9 = QtGui.QTreeWidgetItem(item7) + item9.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Base Orientation Indicators", None, QtGui.QApplication.UnicodeUTF8)) + + item10 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item10.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Adjust", None, QtGui.QApplication.UnicodeUTF8)) + + item11 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item11.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Lighting", None, QtGui.QApplication.UnicodeUTF8)) + + item12 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item12.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Plug-ins", None, QtGui.QApplication.UnicodeUTF8)) + + item13 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item13.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Undo", None, QtGui.QApplication.UnicodeUTF8)) + + item14 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item14.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Window", None, QtGui.QApplication.UnicodeUTF8)) + + item15 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item15.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Reports", None, QtGui.QApplication.UnicodeUTF8)) + + item16 = QtGui.QTreeWidgetItem(self.categoryTreeWidget) + item16.setText(0,QtGui.QApplication.translate("PreferencesDialog", "Tooltips", None, QtGui.QApplication.UnicodeUTF8)) + self.prefsTabWidget.setTabText(self.prefsTabWidget.indexOf(self.systemOptionsTab), QtGui.QApplication.translate("PreferencesDialog", "System Options", None, QtGui.QApplication.UnicodeUTF8)) + self.okButton.setText(QtGui.QApplication.translate("PreferencesDialog", "OK", None, QtGui.QApplication.UnicodeUTF8)) + diff --git a/cad/src/ne1_ui/prefs/PreferencesDialog.ui b/cad/src/ne1_ui/prefs/PreferencesDialog.ui new file mode 100644 index 000000000..9d21c1abc --- /dev/null +++ b/cad/src/ne1_ui/prefs/PreferencesDialog.ui @@ -0,0 +1,6518 @@ +<ui version="4.0" > + <class>PreferencesDialog</class> + <widget class="QWidget" name="PreferencesDialog" > + <property name="geometry" > + <rect> + <x>0</x> + <y>0</y> + <width>600</width> + <height>600</height> + </rect> + </property> + <property name="minimumSize" > + <size> + <width>600</width> + <height>600</height> + </size> + </property> + <property name="windowTitle" > + <string>Preferences</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <widget class="QTabWidget" name="prefsTabWidget" > + <property name="currentIndex" > + <number>0</number> + </property> + <widget class="QWidget" name="systemOptionsTab" > + <attribute name="title" > + <string>System Options</string> + </attribute> + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <widget class="QStackedWidget" name="prefsStackedWidget" > + <property name="currentIndex" > + <number>3</number> + </property> + <widget class="QWidget" name="General" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="sponsorLogosGroupBox" > + <property name="title" > + <string>Sponsor logos download permission</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QRadioButton" name="logoAlwaysAskRadioBtn" > + <property name="toolTip" > + <string>Always ask permission to download sponsor logos from the Nanorex server</string> + </property> + <property name="text" > + <string>Always ask before downloading</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="logoNeverAskRadioBtn" > + <property name="toolTip" > + <string>Never ask permission before downloading sponsor logos from the Nanorex server</string> + </property> + <property name="text" > + <string>Never ask before downloading</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="logoNeverDownLoadRadioBtn" > + <property name="toolTip" > + <string>Never download sponsor logos from the Nanorex server</string> + </property> + <property name="text" > + <string>Never download</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="buildmode_groupbox" > + <property name="title" > + <string>Build Chunks settings</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="autobond_checkbox" > + <property name="toolTip" > + <string>Build mode's default setting for Autobonding at startup (enabled/disabled)</string> + </property> + <property name="text" > + <string>Autobond</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="buildmode_highlighting_checkbox" > + <property name="toolTip" > + <string>Build mode's default setting for Highlighting at startup (enabled/disabled)</string> + </property> + <property name="text" > + <string>Hover highlighting</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="water_checkbox" > + <property name="toolTip" > + <string>Build mode's default setting for Water at startup (enabled/disabled)</string> + </property> + <property name="text" > + <string>Water</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="buildmode_select_atoms_checkbox" > + <property name="toolTip" > + <string>Automatically select atoms when depositing</string> + </property> + <property name="text" > + <string>Auto select atoms of deposited objects</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>1</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="Color" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QLabel" name="label_8" > + <property name="text" > + <string>Background color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="backgroundColorComboBox" /> + </item> + </layout> + </item> + <item> + <widget class="QGroupBox" name="hoverHighlightingStyleGroupBox" > + <property name="title" > + <string>Hover highlighting style</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="1" column="0" > + <widget class="QLabel" name="label_21" > + <property name="text" > + <string>Color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QFrame" name="hoverHighlightingColorFrame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="hoverHighlightingColorButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="0" colspan="2" > + <widget class="QComboBox" name="hoverHighlightingStyleComboBox" /> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="selectionColorStyleGroupBox" > + <property name="title" > + <string>Selection style</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="1" column="0" > + <widget class="QLabel" name="label_22" > + <property name="text" > + <string>Color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QFrame" name="selectionColorFrame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="selectionColorButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="0" colspan="2" > + <widget class="QComboBox" name="selectionStyleComboBox" /> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="ModelView" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QLabel" name="label_9" > + <property name="text" > + <string>Global display style at start-up:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="globalDisplayStyleStartupComboBox" /> + </item> + </layout> + </item> + <item> + <widget class="QGroupBox" name="compassGroupBox" > + <property name="title" > + <string>Display compass</string> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + <property name="checked" > + <bool>true</bool> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_4" > + <property name="text" > + <string>Location :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="compass_position_combox" > + <item> + <property name="text" > + <string>Upper right</string> + </property> + </item> + <item> + <property name="text" > + <string>Upper left</string> + </property> + </item> + <item> + <property name="text" > + <string>Lower left</string> + </property> + </item> + <item> + <property name="text" > + <string>Lower right</string> + </property> + </item> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="display_compass_labels_checkbox" > + <property name="toolTip" > + <string>Show/Hide Display Compass</string> + </property> + <property name="text" > + <string>Display compass labels</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox7_2" > + <property name="title" > + <string>Axes</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item row="1" column="0" > + <widget class="QCheckBox" name="display_pov_axis_checkbox" > + <property name="toolTip" > + <string>Show/Hide Point of View Axis</string> + </property> + <property name="text" > + <string>Display point of view (POV) axis</string> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QCheckBox" name="display_origin_axis_checkbox" > + <property name="toolTip" > + <string>Show/Hide Origin Axis</string> + </property> + <property name="text" > + <string>Display origin axis</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QCheckBox" name="enableFogCheckBox" > + <property name="text" > + <string>Enable fog</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>41</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="ZoomPanandRotate" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox8" > + <property name="title" > + <string>View rotation settings</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item row="0" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="animate_views_checkbox" > + <property name="toolTip" > + <string>Enable/disable animation between current view and a new view</string> + </property> + <property name="text" > + <string>Animate between views</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>101</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="textLabel1_5" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>View animation speed:</string> + </property> + <property name="scaledContents" > + <bool>false</bool> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>101</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="rotationSensitivity_txtlbl" > + <property name="text" > + <string>Mouse speed:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="buddy" > + <cstring>mouseSpeedDuringRotation_slider</cstring> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item row="2" column="3" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>23</width> + <height>16</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="textLabel2_3" > + <property name="text" > + <string>Slow</string> + </property> + </widget> + </item> + <item row="2" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>87</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="textLabel2_3_2" > + <property name="text" > + <string>Slow</string> + </property> + </widget> + </item> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>88</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="1" column="3" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>23</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="3" column="0" colspan="3" > + <widget class="QSlider" name="mouseSpeedDuringRotation_slider" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>125</width> + <height>0</height> + </size> + </property> + <property name="minimum" > + <number>30</number> + </property> + <property name="maximum" > + <number>100</number> + </property> + <property name="value" > + <number>50</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item row="0" column="3" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>23</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="2" > + <widget class="QLabel" name="textLabel3_4_2" > + <property name="text" > + <string>Fast</string> + </property> + </widget> + </item> + <item row="3" column="3" > + <widget class="QToolButton" name="resetMouseSpeedDuringRotation_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Restore default value</string> + </property> + <property name="text" > + <string/> + </property> + <property name="icon" > + <iconset>../../../../../:icons/UserPrefsDialog_image0</iconset> + </property> + </widget> + </item> + <item row="1" column="0" colspan="3" > + <widget class="QSlider" name="animation_speed_slider" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>125</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string>View Animation Speed</string> + </property> + <property name="minimum" > + <number>-300</number> + </property> + <property name="maximum" > + <number>-25</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QLabel" name="textLabel3_4" > + <property name="text" > + <string>Fast</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_4" > + <property name="toolTip" > + <string>Mouse wheel settings</string> + </property> + <property name="title" > + <string>Mouse wheel zoom settings</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="0" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QLabel" name="label_19" > + <property name="text" > + <string>Direction:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_17" > + <property name="text" > + <string>Zoom in:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_18" > + <property name="text" > + <string>Zoom out:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QComboBox" name="mouseWheelDirectionComboBox" > + <item> + <property name="text" > + <string>Pull/push wheel to zoom in/out</string> + </property> + </item> + <item> + <property name="text" > + <string>Push/pull wheel to zoom in/out</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QComboBox" name="mouseWheelZoomInPointComboBox" > + <item> + <property name="text" > + <string>Center about cursor position</string> + </property> + </item> + <item> + <property name="text" > + <string>Center about screen</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QComboBox" name="mouseWheelZoomOutPointComboBox" > + <item> + <property name="text" > + <string>Center about cursor position</string> + </property> + </item> + <item> + <property name="text" > + <string>Center about screen</string> + </property> + </item> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QLabel" name="label_20" > + <property name="text" > + <string>Hover highlighting timeout interval:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QDoubleSpinBox" name="hhTimeoutIntervalDoubleSpinBox" > + <property name="suffix" > + <string> seconds</string> + </property> + <property name="decimals" > + <number>1</number> + </property> + <property name="maximum" > + <double>1.000000000000000</double> + </property> + <property name="singleStep" > + <double>0.100000000000000</double> + </property> + <property name="value" > + <double>0.500000000000000</double> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>161</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>231</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="Rulers" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="rulersGroupBox" > + <property name="title" > + <string>Rulers</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="3" column="0" > + <widget class="QLabel" name="label_5" > + <property name="text" > + <string>Opacity:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="textLabel3_2_4" > + <property name="text" > + <string>Color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="label_10" > + <property name="text" > + <string>Origin:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QComboBox" name="rulerPositionComboBox" > + <item> + <property name="text" > + <string>Lower left</string> + </property> + </item> + <item> + <property name="text" > + <string>Upper left</string> + </property> + </item> + <item> + <property name="text" > + <string>Lower right</string> + </property> + </item> + <item> + <property name="text" > + <string>Upper right</string> + </property> + </item> + </widget> + </item> + <item row="2" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="ruler_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="ruler_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="1" > + <widget class="QSpinBox" name="rulerOpacitySpinBox" > + <property name="suffix" > + <string>%</string> + </property> + <property name="maximum" > + <number>100</number> + </property> + <property name="value" > + <number>70</number> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QComboBox" name="rulerDisplayComboBox" > + <item> + <property name="text" > + <string>Both rulers</string> + </property> + </item> + <item> + <property name="text" > + <string>Vertical ruler only</string> + </property> + </item> + <item> + <property name="text" > + <string>Horizontal ruler only</string> + </property> + </item> + </widget> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="label_12" > + <property name="text" > + <string>Display:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="4" column="0" colspan="2" > + <widget class="QCheckBox" name="showRulersInPerspectiveViewCheckBox" > + <property name="text" > + <string>Show rulers in perspective view</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="Atoms" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="atom_colors_grpbox" > + <property name="title" > + <string>Colors</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="0" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="change_element_colors_btn" > + <property name="text" > + <string>Change Element Colors...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0" > + <widget class="QGroupBox" name="groupBox13" > + <property name="title" > + <string/> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="0" > + <widget class="QLabel" name="textLabel3_2_3" > + <property name="text" > + <string>Atom highlighting :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="hotspot_lbl_2" > + <property name="text" > + <string>Bondpoint highlighting :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="3" column="0" > + <widget class="QLabel" name="hotspot_lbl" > + <property name="text" > + <string>Bondpoint hotspot :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="bondpoint_hilite_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="bondpoint_hilite_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + <property name="default" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="atom_hilite_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="atom_hilite_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="hotspot_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="hotspot_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="reset_atom_colors_btn" > + <property name="text" > + <string>Restore Default Colors</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_7" > + <property name="toolTip" > + <string>Level of detail for atoms (and bonds)</string> + </property> + <property name="text" > + <string>Level of detail :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="level_of_detail_combox" > + <property name="toolTip" > + <string>Sets graphics quality for atoms (and bonds)</string> + </property> + <property name="currentIndex" > + <number>2</number> + </property> + <item> + <property name="text" > + <string>Low</string> + </property> + </item> + <item> + <property name="text" > + <string>Medium</string> + </property> + </item> + <item> + <property name="text" > + <string>High</string> + </property> + </item> + <item> + <property name="text" > + <string>Variable</string> + </property> + </item> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_3_2" > + <property name="toolTip" > + <string>Set Atom Scale factor for Ball and Stick display mode</string> + </property> + <property name="text" > + <string>Ball and stick atom scale :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="cpk_atom_rad_spinbox" > + <property name="toolTip" > + <string>Set Atom Scale factor for Ball and Stick display mode</string> + </property> + <property name="suffix" > + <string>%</string> + </property> + <property name="maximum" > + <number>125</number> + </property> + <property name="minimum" > + <number>50</number> + </property> + <property name="value" > + <number>100</number> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>16</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_3_2_2" > + <property name="toolTip" > + <string>CPK Atom Scale factor for CPK display mode</string> + </property> + <property name="text" > + <string>CPK atom scale :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="cpk_scale_factor_linedit" > + <property name="maximumSize" > + <size> + <width>40</width> + <height>32767</height> + </size> + </property> + <property name="toolTip" > + <string>Displays the value of the CPK Atom Scale</string> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="cpk_scale_factor_slider" > + <property name="toolTip" > + <string>Changes Atom Scale factor for CPK display mode</string> + </property> + <property name="minimum" > + <number>100</number> + </property> + <property name="maximum" > + <number>200</number> + </property> + <property name="value" > + <number>155</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>10</number> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="reset_cpk_scale_factor_btn" > + <property name="toolTip" > + <string>Restore default value</string> + </property> + <property name="text" > + <string/> + </property> + <property name="icon" > + <iconset>../../../../../:icons/UserPrefsDialog_image0</iconset> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QCheckBox" name="overlappingAtomIndicatorsCheckBox" > + <property name="text" > + <string>Overlapping atom indicators</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="keepBondsTransmuteCheckBox" > + <property name="text" > + <string>Force to keep bonds during transmute</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>30</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="Bonds" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox4" > + <property name="title" > + <string>Colors</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="0" > + <widget class="QLabel" name="textLabel3_2" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Bond highlighting :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="bond_stretch_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="bond_stretch_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + <property name="default" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="bond_hilite_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="bond_hilite_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="0" > + <widget class="QLabel" name="textLabel3_3" > + <property name="text" > + <string>Vane/Ribbon :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="ballstick_bondcolor_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="ballstick_bondcolor_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="textLabel3" > + <property name="text" > + <string>Ball and stick cylinder :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="textLabel3_2_2" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="text" > + <string>Bond stretch :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="3" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="bond_vane_color_frame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="bond_vane_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="reset_bond_colors_btn" > + <property name="text" > + <string>Restore Default Colors</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_3" > + <property name="toolTip" > + <string>Set scale (size) factor for the cylinder representing bonds in Ball and Stick display mode</string> + </property> + <property name="text" > + <string>Ball and stick bond scale :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="textLabel1" > + <property name="toolTip" > + <string>Bond thickness (in pixels) for Lines Display Mode</string> + </property> + <property name="text" > + <string>Bond line thickness :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QSpinBox" name="cpk_cylinder_rad_spinbox" > + <property name="toolTip" > + <string>Set scale (size) factor for the cylinder representing bonds in Ball and Stick display mode</string> + </property> + <property name="suffix" > + <string>%</string> + </property> + <property name="maximum" > + <number>400</number> + </property> + <property name="minimum" > + <number>50</number> + </property> + <property name="value" > + <number>100</number> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="bond_line_thickness_spinbox" > + <property name="toolTip" > + <string>Bond thickness (in pixels) for Lines Display Mode</string> + </property> + <property name="suffix" > + <string> pixel</string> + </property> + <property name="maximum" > + <number>4</number> + </property> + <property name="minimum" > + <number>1</number> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>16</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <widget class="QGroupBox" name="high_order_bond_display_groupbox" > + <property name="title" > + <string>High Order Bonds</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QRadioButton" name="multCyl_radioButton" > + <property name="toolTip" > + <string>Display high order bonds using multiple cylinders</string> + </property> + <property name="text" > + <string>Multiple cylinders</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="vanes_radioButton" > + <property name="toolTip" > + <string>Display pi systems in high order bonds as Vanes</string> + </property> + <property name="text" > + <string>Vanes</string> + </property> + </widget> + </item> + <item> + <widget class="QRadioButton" name="ribbons_radioButton" > + <property name="toolTip" > + <string>Display pi systems in high order bonds as Ribbons</string> + </property> + <property name="text" > + <string>Ribbons</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="show_bond_labels_checkbox" > + <property name="toolTip" > + <string>Display Bond Type Label</string> + </property> + <property name="text" > + <string>Show bond type letters</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="show_valence_errors_checkbox" > + <property name="toolTip" > + <string>Enable/Disable Valence Error Checker</string> + </property> + <property name="text" > + <string>Show valence errors</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="showBondStretchIndicators_checkBox" > + <property name="toolTip" > + <string>Enable/Disable Display of Bond Stretch Indicators</string> + </property> + <property name="text" > + <string>Show bond stretch indicators</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>144</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="DNA" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox" > + <property name="title" > + <string>DNA default values</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="dnaRestoreFactoryDefaultsPushButton" > + <property name="text" > + <string>Restore Factory Defaults</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="0" > + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="0" > + <widget class="QLabel" name="label_11" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Conformation:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QComboBox" name="dnaConformationComboBox" > + <item> + <property name="text" > + <string>B-DNA</string> + </property> + </item> + </widget> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="label_6" > + <property name="text" > + <string>Rise:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="3" column="0" > + <widget class="QLabel" name="label_7" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Segment color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="label_4" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Bases per turn:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="3" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="dnaDefaultSegmentColorFrame" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="dnaDefaultSegmentColorPushButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="1" > + <widget class="QDoubleSpinBox" name="dnaRiseDoubleSpinBox" > + <property name="suffix" > + <string> Angstroms</string> + </property> + <property name="decimals" > + <number>3</number> + </property> + <property name="singleStep" > + <double>0.010000000000000</double> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QDoubleSpinBox" name="dnaBasesPerTurnDoubleSpinBox" > + <property name="decimals" > + <number>2</number> + </property> + <property name="singleStep" > + <double>0.100000000000000</double> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="dna_reduced_model_options_grpbox" > + <property name="title" > + <string>Strand arrowhead display options</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="4" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QCheckBox" name="strandFivePrimeArrowheadsCustomColorCheckBox" > + <property name="text" > + <string>5' End Custom color:</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="strandFivePrimeArrowheadsCustomColorFrame" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="strandFivePrimeArrowheadsCustomColorPushButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item row="3" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QCheckBox" name="strandThreePrimeArrowheadsCustomColorCheckBox" > + <property name="text" > + <string>3' End Custom color:</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="strandThreePrimeArrowheadsCustomColorFrame" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="strandThreePrimeArrowheadsCustomColorPushButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item row="2" column="0" > + <widget class="QCheckBox" name="arrowsOnFivePrimeEnds_checkBox" > + <property name="text" > + <string>Show arrows on 5' ends</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QCheckBox" name="arrowsOnThreePrimeEnds_checkBox" > + <property name="text" > + <string>Show arrows on 3' ends</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QCheckBox" name="arrowsOnBackBones_checkBox" > + <property name="text" > + <string>Show arrows on back bones</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>421</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="MinorGrooveErrorIndicators" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="dnaDisplayMinorGrooveErrorGroupBox" > + <property name="title" > + <string>Display minor groove error indicators</string> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + <property name="checked" > + <bool>false</bool> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QLabel" name="label_15" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Minimum angle:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_16" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Maximum angle:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="bg1_color_lbl_3" > + <property name="text" > + <string>Color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QSpinBox" name="dnaMinGrooveAngleSpinBox" > + <property name="suffix" > + <string> degrees</string> + </property> + <property name="maximum" > + <number>179</number> + </property> + <property name="value" > + <number>0</number> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="dnaMaxGrooveAngleSpinBox" > + <property name="suffix" > + <string> degrees</string> + </property> + <property name="maximum" > + <number>179</number> + </property> + <property name="value" > + <number>0</number> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="dnaGrooveIndicatorColorFrame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="dnaGrooveIndicatorColorButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item row="1" column="0" colspan="2" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="dnaMinorGrooveRestoreFactoryDefaultsPushButton" > + <property name="text" > + <string>Restore Factory Defaults</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="BaseOrientationIndicators" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="dnaDisplayBaseOrientationIndicatorsGroupBox" > + <property name="title" > + <string>Display base orientation indicators</string> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + <property name="checked" > + <bool>false</bool> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="1" > + <widget class="QComboBox" name="dnaBaseIndicatorsPlaneNormalComboBox" > + <item> + <property name="text" > + <string>View plane (up)</string> + </property> + </item> + <item> + <property name="text" > + <string>View plane (out)</string> + </property> + </item> + <item> + <property name="text" > + <string>View plane (right)</string> + </property> + </item> + </widget> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="bg1_color_lbl_6" > + <property name="text" > + <string>Inverse indicators color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="dnaBaseOrientationIndicatorsInvColorFrame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="dnaChooseBaseOrientationIndicatorsInvColorButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="0" colspan="2" > + <widget class="QCheckBox" name="dnaBaseOrientationIndicatorsInverseCheckBox" > + <property name="text" > + <string>Enable inverse indicators</string> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="label_35" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Plane normal:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="4" column="0" > + <widget class="QLabel" name="label_13" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Angle threshold:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="5" column="1" > + <widget class="QDoubleSpinBox" name="dnaBaseOrientationIndicatorsTerminalDistanceSpinBox" > + <property name="decimals" > + <number>0</number> + </property> + <property name="maximum" > + <double>1000000.000000000000000</double> + </property> + <property name="singleStep" > + <double>1.000000000000000</double> + </property> + </widget> + </item> + <item row="4" column="1" > + <widget class="QDoubleSpinBox" name="dnaBaseOrientationIndicatorsThresholdSpinBox" > + <property name="decimals" > + <number>1</number> + </property> + <property name="maximum" > + <double>180.000000000000000</double> + </property> + <property name="singleStep" > + <double>0.100000000000000</double> + </property> + <property name="value" > + <double>30.000000000000000</double> + </property> + </widget> + </item> + <item row="1" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QFrame" name="dnaBaseOrientationIndicatorsColorFrame" > + <property name="minimumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>23</width> + <height>23</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="dnaChooseBaseOrientationIndicatorsColorButton" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="5" column="0" > + <widget class="QLabel" name="label_14" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text" > + <string>Terminal base distance:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="bg1_color_lbl_5" > + <property name="text" > + <string>Indicators color:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>111</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="Adjust" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item rowspan="2" row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QGroupBox" name="adjustPhysicsEngineGroupBox" > + <property name="title" > + <string>Adjust physics engine</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QComboBox" name="adjustEngineCombobox" > + <property name="toolTip" > + <string>Choose the simulation engine with which to minimize energy.</string> + </property> + <item> + <property name="text" > + <string>NanoDynamics-1 (Default)</string> + </property> + </item> + <item> + <property name="text" > + <string>GROMACS with ND1 Force Field</string> + </property> + </item> + <item> + <property name="text" > + <string>Background GROMACS with ND1 Force Field</string> + </property> + </item> + </widget> + </item> + <item> + <widget class="QCheckBox" name="electrostaticsForDnaDuringAdjust_checkBox" > + <property name="text" > + <string>Enable electrostatics for DNA reduced model</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="update_btngrp" > + <property name="title" > + <string>Watch motion in real time</string> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QRadioButton" name="update_asap_rbtn" > + <property name="toolTip" > + <string>Update every 2 seconds, or faster if it doesn't slow adjustments by more than 20%</string> + </property> + <property name="text" > + <string>Update as fast as possible</string> + </property> + <property name="checked" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QRadioButton" name="update_every_rbtn" > + <property name="toolTip" > + <string>Specify how often to update the screen during adjustments</string> + </property> + <property name="text" > + <string>Update every</string> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="update_number_spinbox" > + <property name="toolTip" > + <string>Specify how often to update the screen during adjustments</string> + </property> + <property name="maximum" > + <number>9999</number> + </property> + <property name="minimum" > + <number>1</number> + </property> + <property name="value" > + <number>1</number> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="update_units_combobox" > + <property name="toolTip" > + <string>Specify how often to update the screen during adjustments</string> + </property> + <item> + <property name="text" > + <string>frames</string> + </property> + </item> + <item> + <property name="text" > + <string>seconds</string> + </property> + </item> + <item> + <property name="text" > + <string>minutes</string> + </property> + </item> + <item> + <property name="text" > + <string>hours</string> + </property> + </item> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox20" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="title" > + <string>Convergence criteria</string> + </property> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QLabel" name="endrms_lbl" > + <property name="toolTip" > + <string>Target RMS force (pN)</string> + </property> + <property name="text" > + <string>EndRMS:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="endmax_lbl" > + <property name="toolTip" > + <string>Target max force (pN)</string> + </property> + <property name="text" > + <string>EndMax:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="cutoverrms_lbl" > + <property name="toolTip" > + <string>Cutover RMS force (pN)</string> + </property> + <property name="text" > + <string>CutoverRMS:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="cutovermax_lbl" > + <property name="toolTip" > + <string>Cutover max force (pN)</string> + </property> + <property name="text" > + <string>CutoverMax:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QDoubleSpinBox" name="endRmsDoubleSpinBox" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="suffix" > + <string> pN</string> + </property> + <property name="decimals" > + <number>2</number> + </property> + <property name="maximum" > + <double>101.000000000000000</double> + </property> + <property name="value" > + <double>1.000000000000000</double> + </property> + </widget> + </item> + <item> + <widget class="QDoubleSpinBox" name="endMaxDoubleSpinBox" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="suffix" > + <string> pN</string> + </property> + <property name="decimals" > + <number>2</number> + </property> + <property name="maximum" > + <double>101.000000000000000</double> + </property> + <property name="value" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + <item> + <widget class="QDoubleSpinBox" name="cutoverRmsDoubleSpinBox" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="suffix" > + <string> pN</string> + </property> + <property name="decimals" > + <number>2</number> + </property> + <property name="maximum" > + <double>101.000000000000000</double> + </property> + <property name="value" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + <item> + <widget class="QDoubleSpinBox" name="cutoverMaxDoubleSpinBox" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>3</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="suffix" > + <string> pN</string> + </property> + <property name="decimals" > + <number>2</number> + </property> + <property name="maximum" > + <double>101.000000000000000</double> + </property> + <property name="value" > + <double>0.000000000000000</double> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::MinimumExpanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>80</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1" > + <widget class="QPushButton" name="grpbtn_4" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize" > + <size> + <width>16</width> + <height>16</height> + </size> + </property> + <property name="text" > + <string/> + </property> + <property name="icon" > + <iconset>../../../../../../../:icons/MinimizeEnergyPropDialog_image6</iconset> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + <property name="default" > + <bool>false</bool> + </property> + <property name="flat" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="1" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="Lighting" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item rowspan="2" row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox8_2" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="title" > + <string>Directional light properties</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="0" column="1" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QComboBox" name="light_combobox" > + <item> + <property name="text" > + <string>1 (On)</string> + </property> + </item> + <item> + <property name="text" > + <string>2 (On)</string> + </property> + </item> + <item> + <property name="text" > + <string>3 (Off)</string> + </property> + </item> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>60</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QCheckBox" name="light_checkbox" > + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QFrame" name="light_color_frame" > + <property name="minimumSize" > + <size> + <width>25</width> + <height>0</height> + </size> + </property> + <property name="frameShape" > + <enum>QFrame::Box</enum> + </property> + <property name="frameShadow" > + <enum>QFrame::Plain</enum> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="light_color_btn" > + <property name="text" > + <string>Choose...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLineEdit" name="light_ambient_linedit" > + <property name="maximumSize" > + <size> + <width>40</width> + <height>32767</height> + </size> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="light_ambient_slider" > + <property name="maximum" > + <number>100</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>10</number> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLineEdit" name="light_diffuse_linedit" > + <property name="maximumSize" > + <size> + <width>40</width> + <height>32767</height> + </size> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="light_diffuse_slider" > + <property name="maximum" > + <number>100</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>10</number> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLineEdit" name="light_specularity_linedit" > + <property name="maximumSize" > + <size> + <width>40</width> + <height>32767</height> + </size> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <widget class="QSlider" name="light_specularity_slider" > + <property name="maximum" > + <number>100</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>10</number> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLineEdit" name="light_x_linedit" /> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLineEdit" name="light_y_linedit" /> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLineEdit" name="light_z_linedit" > + <property name="maxLength" > + <number>32767</number> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QLabel" name="light_label" > + <property name="text" > + <string>Light :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="on_label" > + <property name="text" > + <string>On :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="color_label" > + <property name="text" > + <string>Color :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="ambient_label" > + <property name="text" > + <string>Ambient :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="diffuse_label" > + <property name="text" > + <string>Diffuse :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="specularity_label" > + <property name="text" > + <string>Specular :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="x_label" > + <property name="text" > + <string>X :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="y_label" > + <property name="text" > + <string>Y :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="z_label" > + <property name="text" > + <string>Z :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox9_2" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="title" > + <string>Material specular properties</string> + </property> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QLabel" name="ms_on_label" > + <property name="text" > + <string>On:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>70</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="ms_finish_label" > + <property name="text" > + <string>Finish:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="ms_shininess_label" > + <property name="text" > + <string>Shininess:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="ms_brightness__label" > + <property name="text" > + <string>Brightness:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="ms_on_checkbox" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>21</height> + </size> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>50</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLineEdit" name="ms_finish_linedit" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>7</hsizetype> + <vsizetype>0</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="maximumSize" > + <size> + <width>50</width> + <height>32767</height> + </size> + </property> + <property name="maxLength" > + <number>5</number> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>50</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLineEdit" name="ms_shininess_linedit" > + <property name="maximumSize" > + <size> + <width>50</width> + <height>32767</height> + </size> + </property> + <property name="maxLength" > + <number>5</number> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>50</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLineEdit" name="ms_brightness_linedit" > + <property name="maximumSize" > + <size> + <width>50</width> + <height>32767</height> + </size> + </property> + <property name="maxLength" > + <number>5</number> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>100</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_6" > + <property name="text" > + <string>Metal</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Fixed</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="textLabel2_4" > + <property name="text" > + <string>Plastic</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="ms_finish_slider" > + <property name="minimum" > + <number>0</number> + </property> + <property name="maximum" > + <number>100</number> + </property> + <property name="value" > + <number>50</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>5</number> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_6_2" > + <property name="text" > + <string>Flat</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>16</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="textLabel2_4_2" > + <property name="text" > + <string>Glossy</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="ms_shininess_slider" > + <property name="minimum" > + <number>15</number> + </property> + <property name="maximum" > + <number>60</number> + </property> + <property name="value" > + <number>15</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>5</number> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_6_3" > + <property name="text" > + <string>Low</string> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>16</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QLabel" name="textLabel2_4_3" > + <property name="text" > + <string>High</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <widget class="QSlider" name="ms_brightness_slider" > + <property name="minimum" > + <number>0</number> + </property> + <property name="maximum" > + <number>100</number> + </property> + <property name="value" > + <number>50</number> + </property> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="tickInterval" > + <number>5</number> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>5</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="1" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="lighting_restore_defaults_btn" > + <property name="text" > + <string>Restore Defaults</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>30</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="Plugins" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="1" column="0" > + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>218</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <widget class="QGroupBox" name="file_locations_grp" > + <property name="title" > + <string>Location of executables</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>2</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="1" > + <widget class="QLineEdit" name="qutemol_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>The full path to the QuteMolX executable file.</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QLineEdit" name="nanohive_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>The full path to the NanoHive-1 executable file.</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item row="2" column="1" > + <widget class="QLineEdit" name="povray_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="maximumSize" > + <size> + <width>32767</width> + <height>32767</height> + </size> + </property> + <property name="toolTip" > + <string>The full path to the POV-Ray executable file.</string> + </property> + <property name="text" > + <string/> + </property> + <property name="maxLength" > + <number>32767</number> + </property> + </widget> + </item> + <item row="3" column="1" > + <widget class="QLineEdit" name="megapov_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="maximumSize" > + <size> + <width>32767</width> + <height>32767</height> + </size> + </property> + <property name="toolTip" > + <string>The full path to the MegaPOV executable file (megapov.exe).</string> + </property> + <property name="text" > + <string/> + </property> + <property name="maxLength" > + <number>32767</number> + </property> + </widget> + </item> + <item row="4" column="1" > + <widget class="QLineEdit" name="povdir_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Select custom POV include directory</string> + </property> + </widget> + </item> + <item row="5" column="1" > + <widget class="QLineEdit" name="gamess_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="maximumSize" > + <size> + <width>32767</width> + <height>32767</height> + </size> + </property> + <property name="toolTip" > + <string>The gamess executable file. Usually it's called gamess.??.x or ??gamess.exe.</string> + </property> + <property name="text" > + <string/> + </property> + <property name="maxLength" > + <number>32767</number> + </property> + </widget> + </item> + <item row="6" column="1" > + <widget class="QLineEdit" name="gromacs_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>The full path to the mdrun executable file for GROMACS.</string> + </property> + </widget> + </item> + <item row="8" column="1" > + <widget class="QLineEdit" name="nv1_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>The full path to the mdrun executable file for GROMACS.</string> + </property> + </widget> + </item> + <item row="7" column="1" > + <widget class="QLineEdit" name="cpp_path_lineedit" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>The full path to the C-preprocessor (cpp) executable file for GROMACS to use.</string> + </property> + </widget> + </item> + <item row="8" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="nv1_checkbox" > + <property name="toolTip" > + <string>Enable GROMACS</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="nv1_label" > + <property name="text" > + <string>NanoVision-1:</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="8" column="2" > + <widget class="QPushButton" name="nv1_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose the mdrun executable file for GROMACS</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + </widget> + </item> + <item row="6" column="2" > + <widget class="QPushButton" name="gromacs_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose the mdrun executable file for GROMACS</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + </widget> + </item> + <item row="6" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="gromacs_checkbox" > + <property name="toolTip" > + <string>Enable GROMACS</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="gromacs_label" > + <property name="text" > + <string>GROMACS:</string> + </property> + </widget> + </item> + </layout> + </item> + <item row="7" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="cpp_checkbox" > + <property name="toolTip" > + <string>Enable cpp (needed by GROMACS)</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="cpp_label" > + <property name="text" > + <string>cpp:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="5" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="gamess_checkbox" > + <property name="toolTip" > + <string>Enable GAMESS</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="gamess_lbl" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>60</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string/> + </property> + <property name="text" > + <string>GAMESS:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="4" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QCheckBox" name="povdir_checkbox" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="minimumSize" > + <size> + <width>15</width> + <height>15</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>15</width> + <height>15</height> + </size> + </property> + <property name="toolTip" > + <string>Custom directory for POV libraries</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="povdir_lbl" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="text" > + <string>POV include dir:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="megapov_checkbox" > + <property name="toolTip" > + <string>Enable MegaPOV</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="megapov_lbl" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>60</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string/> + </property> + <property name="text" > + <string>MegaPOV:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="povray_checkbox" > + <property name="toolTip" > + <string>Enable POV-Ray</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="povray_lbl" > + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>60</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string/> + </property> + <property name="text" > + <string>POV-Ray:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="nanohive_checkbox" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="toolTip" > + <string>Enable NanoHive-1</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="nanohive_lbl" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>60</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string/> + </property> + <property name="text" > + <string>NanoHive-1:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="qutemol_checkbox" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="toolTip" > + <string>Enable QuteMolX</string> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="qutemol_lbl" > + <property name="enabled" > + <bool>true</bool> + </property> + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>1</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>60</width> + <height>0</height> + </size> + </property> + <property name="toolTip" > + <string/> + </property> + <property name="text" > + <string>QuteMolX:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="7" column="2" > + <widget class="QPushButton" name="cpp_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose the C-preprocessor (cpp) executable file for GROMACS to use.</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QPushButton" name="qutemol_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose location of QuteMolX executable </string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="2" column="2" > + <widget class="QPushButton" name="povray_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose POV-Ray executable</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="4" column="2" > + <widget class="QPushButton" name="povdir_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose the POV include directory</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="3" column="2" > + <widget class="QPushButton" name="megapov_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose MegaPOV executable (megapov.exe)</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="5" column="2" > + <widget class="QPushButton" name="gamess_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose GAMESS executable</string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="1" column="2" > + <widget class="QPushButton" name="nanohive_choose_btn" > + <property name="enabled" > + <bool>false</bool> + </property> + <property name="toolTip" > + <string>Choose location of NanoHive-1 executable </string> + </property> + <property name="text" > + <string>Browse...</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + </layout> + </widget> + <widget class="QWidget" name="Undo" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item> + <widget class="QCheckBox" name="undo_restore_view_checkbox" > + <property name="toolTip" > + <string>Undo will switch to the view saved with each structural change.</string> + </property> + <property name="text" > + <string>Restore view when undoing structural changes</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="undo_automatic_checkpoints_checkbox" > + <property name="toolTip" > + <string>Specify Automatic or Manual Checkpoints at program startup.</string> + </property> + <property name="text" > + <string>Automatic checkpoints</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="undo_stack_memory_limit_label" > + <property name="text" > + <string>Undo stack memory limit:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QSpinBox" name="undo_stack_memory_limit_spinbox" > + <property name="suffix" > + <string> MB</string> + </property> + <property name="maximum" > + <number>99999</number> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="Window" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox10" > + <property name="title" > + <string>Window position and size</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="1" column="0" colspan="3" > + <widget class="QCheckBox" name="remember_win_pos_and_size_checkbox" > + <property name="text" > + <string>Always save current position and size when quitting</string> + </property> + </widget> + </item> + <item row="0" column="2" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QPushButton" name="save_current_btn" > + <property name="toolTip" > + <string>Save current window position and size for next startup</string> + </property> + <property name="text" > + <string>Save Current Size</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="restore_saved_size_btn" > + <property name="toolTip" > + <string>Save current window position and size for next startup</string> + </property> + <property name="text" > + <string>Restore Saved Size</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="textLabel1_2" > + <property name="text" > + <string>Current size:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="textLabel1_2_2" > + <property name="text" > + <string>Saved size:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + <item row="0" column="1" > + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <widget class="QSpinBox" name="current_width_spinbox" > + <property name="suffix" > + <string> pixels</string> + </property> + <property name="maximum" > + <number>2048</number> + </property> + <property name="minimum" > + <number>640</number> + </property> + <property name="value" > + <number>640</number> + </property> + </widget> + </item> + <item row="1" column="2" > + <widget class="QLineEdit" name="saved_height_lineedit" > + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="2" > + <widget class="QSpinBox" name="current_height_spinbox" > + <property name="suffix" > + <string> pixels</string> + </property> + <property name="maximum" > + <number>2000</number> + </property> + <property name="minimum" > + <number>480</number> + </property> + <property name="value" > + <number>480</number> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLineEdit" name="saved_width_lineedit" > + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QLabel" name="textLabel1_2_2_2" > + <property name="text" > + <string>x</string> + </property> + <property name="alignment" > + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QLabel" name="textLabel1_2_2_2_2" > + <property name="text" > + <string>x</string> + </property> + <property name="alignment" > + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>70</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox3" > + <property name="toolTip" > + <string>Window Border Caption Format</string> + </property> + <property name="title" > + <string>Window caption format</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="4" column="0" > + <widget class="QCheckBox" name="caption_fullpath_checkbox" > + <property name="text" > + <string>Display full path of part</string> + </property> + </widget> + </item> + <item row="3" column="0" > + <widget class="QLineEdit" name="caption_suffix_linedit" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>32767</width> + <height>32767</height> + </size> + </property> + <property name="text" > + <string/> + </property> + </widget> + </item> + <item row="2" column="0" > + <widget class="QLabel" name="textLabel2_2" > + <property name="text" > + <string>Caption suffix for modified file:</string> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLineEdit" name="caption_prefix_linedit" > + <property name="minimumSize" > + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="maximumSize" > + <size> + <width>32767</width> + <height>32767</height> + </size> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QLabel" name="textLabel2" > + <property name="text" > + <string>Caption prefix for modified file:</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="3" column="0" > + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + <item row="2" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="selectedFontGroupBox" > + <property name="title" > + <string>Use custom font</string> + </property> + <property name="checkable" > + <bool>true</bool> + </property> + <property name="checked" > + <bool>false</bool> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item row="1" column="0" colspan="2" > + <widget class="QPushButton" name="makeDefaultFontPushButton" > + <property name="text" > + <string>Make selected font the default font</string> + </property> + <property name="autoDefault" > + <bool>false</bool> + </property> + </widget> + </item> + <item row="0" column="1" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QFontComboBox" name="fontComboBox" > + <property name="fontFilters" > + <set>QFontComboBox::AllFonts|QFontComboBox::ProportionalFonts|QFontComboBox::ScalableFonts</set> + </property> + <property name="currentFont" > + <font> + <family>Arial</family> + </font> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QSpinBox" name="fontSizeSpinBox" > + <property name="maximum" > + <number>24</number> + </property> + <property name="minimum" > + <number>6</number> + </property> + <property name="value" > + <number>9</number> + </property> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QLabel" name="label" > + <property name="text" > + <string>Font :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QLabel" name="label_3" > + <property name="text" > + <string>Size :</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>280</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + <widget class="QWidget" name="Reports" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="groupBox17" > + <property name="title" > + <string>History preferences</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="0" colspan="2" > + <widget class="QCheckBox" name="msg_serial_number_checkbox" > + <property name="text" > + <string>Include message serial number</string> + </property> + </widget> + </item> + <item row="1" column="0" colspan="2" > + <widget class="QCheckBox" name="msg_timestamp_checkbox" > + <property name="text" > + <string>Include message timestamp</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <widget class="QWidget" name="Tooltips" > + <layout class="QGridLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item row="0" column="1" > + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>90</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item row="0" column="0" > + <layout class="QVBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <widget class="QGroupBox" name="atom_dynamic_tooltips_grpbox" > + <property name="title" > + <string>Dynamic tooltips for atoms</string> + </property> + <layout class="QVBoxLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item> + <widget class="QCheckBox" name="dynamicToolTipAtomChunkInfo_checkbox" > + <property name="text" > + <string>Chunk information</string> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="dynamicToolTipAtomMass_checkbox" > + <property name="text" > + <string>Mass information</string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="dynamicToolTipAtomPosition_checkbox" > + <property name="text" > + <string>XYZ coordinates</string> + </property> + <property name="checked" > + <bool>false</bool> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="dynamicToolTipAtomDistanceDeltas_checkbox" > + <property name="text" > + <string>XYZ distance deltas </string> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="includeVdwRadiiInAtomDistanceInfo" > + <property name="text" > + <string>Include Vdw radii in atom distance tooltip</string> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <layout class="QGridLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>2</number> + </property> + <item row="0" column="0" > + <widget class="QLabel" name="atomDistPrecisionLabel" > + <property name="text" > + <string>Distance precision:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="buddy" > + <cstring>dynamicToolTipAtomDistancePrecision_spinbox</cstring> + </property> + </widget> + </item> + <item row="0" column="1" > + <widget class="QSpinBox" name="dynamicToolTipAtomDistancePrecision_spinbox" > + <property name="toolTip" > + <string>Sets the number of digits after the decimal places</string> + </property> + <property name="maximum" > + <number>5</number> + </property> + <property name="minimum" > + <number>1</number> + </property> + <property name="value" > + <number>3</number> + </property> + </widget> + </item> + <item row="1" column="1" > + <widget class="QSpinBox" name="dynamicToolTipBendAnglePrecision_spinbox" > + <property name="toolTip" > + <string>Sets the number of digits after the decimal places</string> + </property> + <property name="maximum" > + <number>5</number> + </property> + <property name="minimum" > + <number>1</number> + </property> + <property name="value" > + <number>3</number> + </property> + </widget> + </item> + <item row="1" column="0" > + <widget class="QLabel" name="textLabel1_8_3" > + <property name="text" > + <string>Angle precision:</string> + </property> + <property name="alignment" > + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="buddy" > + <cstring>dynamicToolTipBendAnglePrecision_spinbox</cstring> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox35" > + <property name="title" > + <string>Dynamic tooltips for bonds</string> + </property> + <layout class="QGridLayout" > + <property name="margin" > + <number>4</number> + </property> + <property name="spacing" > + <number>0</number> + </property> + <item row="1" column="0" > + <widget class="QCheckBox" name="dynamicToolTipBondChunkInfo_checkbox" > + <property name="text" > + <string>Chunk information</string> + </property> + </widget> + </item> + <item row="0" column="0" > + <widget class="QCheckBox" name="dynamicToolTipBondLength_checkbox" > + <property name="text" > + <string>Distance between atom centers</string> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Vertical</enum> + </property> + <property name="sizeType" > + <enum>QSizePolicy::Expanding</enum> + </property> + <property name="sizeHint" > + <size> + <width>20</width> + <height>161</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + </layout> + </widget> + </widget> + </item> + <item row="0" column="0" > + <widget class="QTreeWidget" name="categoryTreeWidget" > + <property name="windowModality" > + <enum>Qt::NonModal</enum> + </property> + <property name="sizePolicy" > + <sizepolicy> + <hsizetype>0</hsizetype> + <vsizetype>7</vsizetype> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize" > + <size> + <width>170</width> + <height>0</height> + </size> + </property> + <column> + <property name="text" > + <string>Categories</string> + </property> + </column> + <item> + <property name="text" > + <string>General</string> + </property> + </item> + <item> + <property name="text" > + <string>Color</string> + </property> + </item> + <item> + <property name="text" > + <string>Model View</string> + </property> + <item> + <property name="text" > + <string>Zoom, Pan and Rotate</string> + </property> + </item> + <item> + <property name="text" > + <string>Rulers</string> + </property> + </item> + </item> + <item> + <property name="text" > + <string>Atoms</string> + </property> + </item> + <item> + <property name="text" > + <string>Bonds</string> + </property> + </item> + <item> + <property name="text" > + <string>DNA</string> + </property> + <item> + <property name="text" > + <string>Minor Groove Error Indicators</string> + </property> + </item> + <item> + <property name="text" > + <string>Base Orientation Indicators</string> + </property> + </item> + </item> + <item> + <property name="text" > + <string>Adjust</string> + </property> + </item> + <item> + <property name="text" > + <string>Lighting</string> + </property> + </item> + <item> + <property name="text" > + <string>Plug-ins</string> + </property> + </item> + <item> + <property name="text" > + <string>Undo</string> + </property> + </item> + <item> + <property name="text" > + <string>Window</string> + </property> + </item> + <item> + <property name="text" > + <string>Reports</string> + </property> + </item> + <item> + <property name="text" > + <string>Tooltips</string> + </property> + </item> + </widget> + </item> + </layout> + </widget> + </widget> + </item> + <item row="1" column="0" > + <layout class="QHBoxLayout" > + <property name="margin" > + <number>0</number> + </property> + <property name="spacing" > + <number>4</number> + </property> + <item> + <spacer> + <property name="orientation" > + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" > + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="okButton" > + <property name="text" > + <string>OK</string> + </property> + </widget> + </item> + <item> + <widget class="QToolButton" name="whatsThisToolButton" > + <property name="text" > + <string/> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/cad/src/ne1_ui/prefs/WhatsThisText_for_PreferencesDialog.py b/cad/src/ne1_ui/prefs/WhatsThisText_for_PreferencesDialog.py new file mode 100644 index 000000000..538ac7fb8 --- /dev/null +++ b/cad/src/ne1_ui/prefs/WhatsThisText_for_PreferencesDialog.py @@ -0,0 +1,224 @@ +# Copyright 2007 Nanorex, Inc. See LICENSE file for details. +""" +WhatsThisText_for_PreferencesDialog.py + +This file provides functions for setting the "What's This" and tooltip text +for widgets in the NE1 Preferences dialog only. + +Edit WhatsThisText_for_MainWindow.py to set "What's This" and tooltip text +for widgets in the Main Window. + +@version: $Id$ +@copyright: 2008 Nanorex, Inc. See LICENSE file for details. + +""" + +def whatsThis_PreferencesDialog(preferencesDialog): + """ + Assigning the I{What's This} text for the Preferences dialog. + """ + + _pd = preferencesDialog + + # Bond line thickness + + _text = \ + "<b>Bond line thickness</b>"\ + "<p>"\ + "Sets the line thickness to <i>n</i> pixels wheneven bonds "\ + "are rendered as lines (i.e. when the Global Display Style is set to "\ + "<b>Lines</b> display style)."\ + "</p>" + + _pd.bond_line_thickness_spinbox.setWhatsThis(_text) # nice! + + # and What's This text for all the others widgets (yuk!) + + _pd.display_origin_axis_checkbox.setWhatsThis("""<p><b>Display Origin Axis</b></p><p>Shows/Hides the Origin Axis""") + _pd.display_pov_axis_checkbox.setWhatsThis("""<p><b>Display Point of View Axis</b></p><p>Shows/Hides the Point + of View Axis""") + _pd.compassGroupBox.setWhatsThis("""<p><b>Display Compass</b></p><p>Shows/Hides the Display Compass""") + _pd.display_compass_labels_checkbox.setWhatsThis("""<p><b>Display Compass</b></p><p>Shows/Hides the Display Compass""") + _pd.update_btngrp.setWhatsThis("""<p><b>Watch motion in real time</b> + </p>Enables/disables realtime graphical updates during adjust operations + when using <b>Adjust All</b> or <b>Adjust Selection</b>""") + _pd.update_number_spinbox.setWhatsThis("""<b>Update every <i>n units.</u></b> + <p>Specify how often to update + the model during the adjustment. This allows the user to monitor results during adjustments.</p>""") + _pd.update_units_combobox.setWhatsThis("""<b>Update every <i>n units.</u></b> + <p>Specify how often to update + the model during the adjustment. This allows the user to monitor results during adjustments.</p>""") + _pd.update_every_rbtn.setWhatsThis("""<b>Update every <i>n units.</u></b> + <p>Specify how often to update + the model during the adjustment. This allows the user to monitor results during adjustments.</p>""") + _pd.update_asap_rbtn.setWhatsThis("""<b>Update as fast as possible</b> + <p>Update every 2 seconds, or faster (up to 20x/sec) if it doesn't slow adjustments by more than 20%</p>""") + _pd.endrms_lbl.setWhatsThis("""<b>EndRMS</b> + <p>Continue until this RMS force is reached.</p>""") + _pd.endmax_lbl.setWhatsThis("""<b>EndMax</b> + <p>Continue until no interaction exceeds this force.</p>""") + _pd.endMaxDoubleSpinBox.setWhatsThis("""<b>EndMax</b> + <p>Continue until no interaction exceeds this force.</p>""") + _pd.endRmsDoubleSpinBox.setWhatsThis("""<b>EndRMS</b> + <p>Continue until this RMS force is reached.</p>""") + _pd.cutovermax_lbl.setWhatsThis("""<b>CutoverMax</b> + <p>Use steepest descent until no interaction + exceeds this force.</p>""") + _pd.cutoverMaxDoubleSpinBox.setWhatsThis("""<b>CutoverMax</b> + <p>Use steepest descent until no interaction + exceeds this force.</p>""") + _pd.cutoverRmsDoubleSpinBox.setWhatsThis("""<b>CutoverRMS</b> + <p>Use steepest descent until this RMS force + is reached.</p>""") + _pd.cutoverrms_lbl.setWhatsThis("""<b>CutoverRMS</b> + <p>Use steepest descent until this RMS force + is reached.</p>""") + # Sponsor Logos Download Permission + _pd.sponsorLogosGroupBox.setWhatsThis("""<b>Sponsor Logos Download Permission</b> + <p>This group of buttons sets the permission for downloading sponsor + logos.</p>""") + _pd.logoAlwaysAskRadioBtn.setWhatsThis("""<b>Always ask before downloading</b> + <p>When sponsor logos have been updated, ask permission to download + them.</p>""") + _pd.logoNeverAskRadioBtn.setWhatsThis("""<b>Never ask before downloading</b> + <p>When sponsor logos have been updated, download them without asking + permission to do so.</p>""") + _pd.logoNeverDownLoadRadioBtn.setWhatsThis("""<b>Never download</b> + <p>Don't ask permission to download sponsor logos and don't download + them.</p>""") + + _pd.animate_views_checkbox.setWhatsThis("""<p><b>Animate Between Views</b></p><p>Enables/disables animation + when switching between the current view and a new view.</p>""") + _pd.animation_speed_slider.setWhatsThis("""<p><b>View Animation Speed</b></p><p>Sets the animation speed when + animating between view (i.e. Front View to Right View). It is recommended that this be set to Fast when working on large + models.</p>""") + _pd.textLabel1_7.setWhatsThis("""<p><b>Level of Detail</b></p><p>Sets the <b>Level of Detail</b> + for atoms and bonds.<br><br> <b>High</b> = Best graphics quality (slowest rendering speed)<br><b>Medium</b> = Good graphics + quality<br> <b>Low</b> = Poor graphics quality (fastest rendering speed) <br><b>Variable</b> automatically switches between + High, Medium and Low based on the model size (number of atoms).</p>""") + _pd.level_of_detail_combox.setWhatsThis("""<p><b>Level of Detail</b></p><p>Sets the graphics quality for atoms + (and bonds)<br><br> <b>High</b> = Best graphics quality (slowest rendering speed)<br><b>Medium</b> = Good graphics quality<br> + <b>Low</b> = Poor graphics quality (fastest rendering speed) <br><b>Variable</b> automatically switches between High, Medium + and Low based on the number of atoms in the current part.""") + _pd.textLabel1_3_2.setWhatsThis("""<p><b>Ball and Stick Atom Scale</b></p><p>Sets the Ball and Stick + Atom Scale factor. It is best to change the scale factor while the current model is displayed in Ball and Stick mode.""") + _pd.cpk_atom_rad_spinbox.setWhatsThis("""<p><b>Ball and Stick Atom Scale</b></p><p>Sets the Ball and Stick + Atom Scale factor. It is best to change the scale factor while the current model is displayed in Ball and Stick mode.""") + _pd.textLabel1_3_2_2.setWhatsThis("""<p><b>CPK Atom Scale</b></p><p>Changes the CPK Atom Scale factor. + It is best to change the scale factor while in CPK display mode so you can see the graphical effect of changing the scale.""") + _pd.cpk_scale_factor_linedit.setWhatsThis("""Displays the value of the CPK Atom Scale""") + _pd.cpk_scale_factor_slider.setWhatsThis("""<p><b>CPK Atom Scale</b></p><p>Slider control for chaning the CPK + Atom Scale factor. It is best to change the scale factor while in CPK display mode so you can see the graphical effect of + changing the scale.""") + _pd.reset_cpk_scale_factor_btn.setWhatsThis("""Restore the default value of the CPK Scale Factor""") + _pd.multCyl_radioButton.setWhatsThis("""<p><b>Multiple Cylinders</b></p><p> + <p><b>High Order Bonds</b> are + displayed using <b>Multiple Cylinders.</b></p><p> + <b>Double bonds</b> are drawn with two cylinders.<br> + <b>Triple bonds</b> + are drawn with three cylinders.<br> + <b>Aromatic bonds</b> are drawn as a single cylinder with a short green cylinder in the + middle.""") + _pd.vanes_radioButton.setWhatsThis("""<p><b>Vanes</b></p><p> + <p><i>High Order Bonds</i> are displayed + using <b>Vanes.</b></p><p> + <p>Vanes represent <i>pi systems</i> in high order bonds and are rendered as rectangular polygons. + The orientation of the vanes approximates the orientation of the pi system(s).</p> + <p>Create an acetylene or ethene molecule + and select this option to see how vanes are rendered.</p>""") + _pd.ribbons_radioButton.setWhatsThis("""<p><b>Ribbons</b></p><p> + <p><i>High Order Bonds</i> are displayed + using <b>Ribbons.</b></p><p> + <p>Ribbons represent <i>pi systems</i> in high order bonds and are rendered as ribbons. The orientation of the ribbons approximates the orientation of the pi system.</p> + <p>Create an acetylene or ethene molecule and select this option to see how ribbons are rendered.</p>""") + _pd.show_bond_labels_checkbox.setWhatsThis("""<p><b>Show Bond Type Letters</b></p><p> + <p>Shows/Hides Bond Type + letters (labels) on top of bonds.</p> + <u>Bond Type Letters:</u><br> + <b>2</b> = Double bond<br> + <b>3</b> = Triple bond<br> + <b>A</b> + = Aromatic bond<br> + <b>G</b> = Graphitic bond<br>""") + _pd.show_valence_errors_checkbox.setWhatsThis("""<p><b>Show Valence Errors</b></p><p>Enables/Disables Valence + Error Checker.</p>When enabled, atoms with valence errors are displayed with a pink wireframe sphere. This indicates + that one or more of the atom's bonds are not of the correct order (type), or that the atom has the wrong number of bonds, + or (for PAM DNA pseudoatoms) that there is some error in bond directions or in which PAM elements are bonded. The error details can be seen in the tooltip for the atom.""") + _pd.textLabel1_3.setWhatsThis("""<p><b>Ball and Stick Bond Scale</b></p><p>Set scale (size) factor for the cylinder representing bonds in Ball and Stick display mode""") + _pd.cpk_cylinder_rad_spinbox.setWhatsThis("""<p><b>Ball and Stick Bond Scale</b></p><p>Set scale (size) factor + for the cylinder representing bonds in Ball and Stick display mode""") + + _pd.autobond_checkbox.setWhatsThis("""Build mode's default setting for Autobonding at startup (enabled/disabled)""") + _pd.water_checkbox.setWhatsThis("""Build mode's default setting for Water at startup (enabled/disabled)""") + _pd.buildmode_select_atoms_checkbox.setWhatsThis("""<p><b>Select Atoms of Deposited Object</b></p><p> + When depositing atoms, clipboard chunks or library parts, their atoms will automatically be selected.""") + _pd.buildmode_highlighting_checkbox.setWhatsThis("""Build mode's default setting for Highlighting at startup (enabled/disabled)""") + + _pd.gromacs_label.setWhatsThis("""Enable GROMACS and choose the mdrun executable path to use.""") + _pd.gromacs_checkbox.setWhatsThis("""This enables GROMACS as a plug-in. GROMACS is a free rendering program available from http://www.gromacs.org/. GROMACS must be installed on your computer before you can enable the GROMACS plug-in. Check this and choose the the path to the mdrun executable from your GROMACS distribution.""") + _pd.gromacs_path_lineedit.setWhatsThis("""The full path to the mdrun executable file for GROMACS.""") + _pd.gromacs_choose_btn.setWhatsThis("""This opens up a file chooser dialog so that you can specify the + location of the GROMACS executable (mdrun).""") + + _pd.cpp_label.setWhatsThis("""Specify the C-preprocessor (cpp) for GROMACS to use.""") + _pd.cpp_checkbox.setWhatsThis("""Specify the C-preprocessor (cpp) for GROMACS to use.""") + _pd.cpp_path_lineedit.setWhatsThis("""The full path to the C-preprocessor (cpp) executable file for GROMACS to use.""") + _pd.cpp_choose_btn.setWhatsThis("""Allows you to choose the path to the C-preprocessor (cpp) executable file for GROMACS to use.""") + + _pd.povray_checkbox.setWhatsThis("""This enables POV-Ray as a plug-in. POV-Ray is a free raytracing program available from http://www.povray.org/. POV-Ray must be installed on your computer before you can enable the POV-Ray plug-in.""") + _pd.povray_lbl.setWhatsThis("""This enables POV-Ray as a plug-in. POV-Ray is a free raytracing program available from http://www.povray.org/. POV-Ray must be installed on your computer before you can enable the POV-Ray plug-in.""") + + _pd.qutemol_lbl.setWhatsThis("""This enables QuteMolX as a plug-in. QuteMolX is available for download from http://nanoengineer-1.com/QuteMolX. QuteMolX must be installed on your computer before you can enable this plug-in.""") + _pd.qutemol_checkbox.setWhatsThis("""This enables QuteMolX as a plug-in. QuteMolX is available for download from http://nanoengineer-1.com/QuteMolX. QuteMolX must be installed on your computer before you can enable the this plug-in.""") + + _pd.nanohive_lbl.setWhatsThis("""This enables Nano-Hive as a plug-in. Nano-Hive is available for download from http://www.nano-hive.com/. Nano-Hive must be installed on your computer before you can enable the Nano-Hive plug-in.""") + _pd.nanohive_checkbox.setWhatsThis("""This enables Nano-Hive as a plug-in. Nano-Hive is available for download from http://www.nano-hive.com/. Nano-Hive must be installed on your computer before you can enable the Nano-Hive plug-in.""") + + _pd.povray_path_lineedit.setWhatsThis("""The full path to the POV-Ray executable file.""") + _pd.qutemol_path_lineedit.setWhatsThis("""The full path to the QuteMolX executable file.""") + _pd.nanohive_path_lineedit.setWhatsThis("""The full path to the Nano-Hive executable file.""") + _pd.gamess_lbl.setWhatsThis("""<p>This enables PC-GAMESS (Windows) or GAMESS (Linux or MacOS) as a plug-in. </p> + <p>For Windows users, PC-GAMESS is available for download from http://classic.chem.msu.su/gran/gamess/. + PC-GAMESS must be installed on your computer before you can enable the PC-GAMESS plug-in.</p> + <p>For Linux and MacOS users, + GAMESS is available for download from http://www.msg.ameslab.gov/GAMESS/GAMESS.html. GAMESS must be installed on your computer before you can enable the GAMESS plug-in.</p>""") + _pd.megapov_path_lineedit.setWhatsThis("""The full path to the MegaPOV executable file (megapov.exe).""") + _pd.megapov_checkbox.setWhatsThis("""This enables MegaPOV as a plug-in. MegaPOV is a free addon raytracing program available from http://megapov.inetart.net/. Both MegaPOV and POV-Ray must be installed on your computer before you can enable the MegaPOV plug-in. MegaPOV allows rendering to happen silently on Windows (i.e. no POV_Ray GUI is displayed while rendering).""") + _pd.gamess_path_lineedit.setWhatsThis("""The gamess executable file. Usually it's called gamess.??.x or + ??gamess.exe.""") + _pd.gamess_checkbox.setWhatsThis("""<p>This enables PC-GAMESS (Windows) or GAMESS (Linux or MacOS) + as a plug-in. </p> + <p>For Windows users, PC-GAMESS is available for download from http://classic.chem.msu.su/gran/gamess/. + PC-GAMESS must be installed on your computer before you can enable the PC-GAMESS plug-in.</p> + <p>For Linux and MacOS users, + GAMESS is available for download from http://www.msg.ameslab.gov/GAMESS/GAMESS.html. GAMESS must be installed on your computer before you can enable the GAMESS plug-in.</p>""") + _pd.povdir_lineedit.setWhatsThis("""Specify a directory for where to find POV-Ray or MegaPOV include + files such as transforms.inc.""") + + + _pd.qutemol_choose_btn.setWhatsThis("""This opens up a file chooser dialog so that you can specify the + location of the QuteMolX executable.""") + _pd.nanohive_choose_btn.setWhatsThis("""This opens up a file chooser dialog so that you can specify the + location of the Nano-Hive executable.""") + _pd.povray_choose_btn.setWhatsThis("""This opens up a file chooser dialog so that you can specify the + location of the POV-Ray executable.""") + _pd.megapov_choose_btn.setWhatsThis("""This opens up a file chooser dialog so that you can specify the + location of the MegaPOV executable (megapov.exe).""") + _pd.gamess_choose_btn.setWhatsThis("""This opens up a file chooser dialog so that you can specify the + location of the GAMESS or PC-GAMESS executable.""") + _pd.megapov_lbl.setWhatsThis("""This enables MegaPOV as a plug-in. MegaPOV is a free addon raytracing program available from http://megapov.inetart.net/. Both MegaPOV and POV-Ray must be installed on your computer before you can enable the MegaPOV plug-in. MegaPOV allows rendering to happen silently on Windows (i.e. no POV_Ray GUI is displayed while rendering).""") + _pd.povdir_checkbox.setWhatsThis("""Select a user-customized directory for POV-Ray and MegaPOV include files, such as transforms.inc.""") + _pd.undo_automatic_checkpoints_checkbox.setWhatsThis("""<p><b>Automatic Checkpoints</b></p><p>Specifies whether <b>Automatic + Checkpointing</b> is enabled/disabled during program startup only. It does not enable/disable <b>Automatic Checkpointing</b> + when the program is running. + <p><b>Automatic Checkpointing</b> can be enabled/disabled by the user at any time from <b>Edit > Automatic Checkpointing</b>. When enabled, the program maintains the Undo stack automatically. When disabled, the user is required to manually set Undo checkpoints using the <b>Set Checkpoint</b> button in the Edit Toolbar/Menu.</p> + <p><b>Automatic Checkpointing</b> can impact program performance. By disabling Automatic Checkpointing, the program will run faster.</p><p><b><i>Remember to you must set your own Undo checkpoints manually when Automatic Checkpointing is disabled.</i></b></p><p>""") + _pd.undo_restore_view_checkbox.setWhatsThis("""<p><b>Restore View when Undoing Structural Changes</b></p><p> + <p>When checked, the current view is stored along with each <b><i>structural change</i></b> on the undo stack. The view is then + restored when the user undoes a structural change.</p> + <p><b><i>Structural changes</i></b> include any operation that modifies the model. Examples include adding, deleting or moving an atom, chunk or jig. </p> + <p>Selection (picking/unpicking) and view changes are examples of operations that do not modify the model (i.e. are not structural changes).</p>""") + _pd.groupBox3.setWhatsThis("""Format Prefix and Suffix text the delimits the part name in the caption in window border.""") + _pd.save_current_btn.setWhatsThis("""Saves the main window's current position and size for the next time the program starts.""") + _pd.restore_saved_size_btn.setWhatsThis("""Saves the main window's current position and size for the next time the program starts.""") + return diff --git a/cad/src/ne1_ui/prefs/__init__.py b/cad/src/ne1_ui/prefs/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/cad/src/ne1_ui/prefs/__init__.py |