def rbnLinks_Clicked(self): if self.rbnLinks.isChecked(): self.gbxToGraph.setTitle( transl8("frmGraph", "Links to Graph", None)) self.cboParameter.clear() attr_list = [] for att in ENR_link_type.Attributes: if att.name == "Quality": if self.project.options.quality.quality.value == 2: # 'chemical' attr_list.append("Chemical") # units = attribute.units(self.output.unit_system) elif self.project.options.quality.quality.value == 3: # 'Age' attr_list.append("Age") # units = "hours" elif self.project.options.quality.quality.value == 4: # 'Trace' attr_list.append( "Trace " + self.project.options.quality.trace_node) # units = "percent" else: attr_list.append(att.name) self.cboParameter.addItems(attr_list) self.lstToGraph.clear() self.list_items = self.output.links self.add_element()
def rbnLinks_Clicked(self): if self.rbnLinks.isChecked(): self.gbxToGraph.setTitle(transl8("frmGraph", "Links to Graph", None)) self.cboParameter.clear() self.cboParameter.addItems(ENR_LinkAttributeNames) self.lstToGraph.clear() self.lstToGraph.addItems(self.report.all_link_ids())
def rbnTimeseriesLink_Clicked(self): if self.rbnTimeseriesLink.isChecked(): self.item_type = ENR_link_type self.set_attributes() self.cbxSort.setEnabled(False) self.cbxSort.setText(transl8("frmTable", "Sort by", None)) self.rbnNodes.setChecked(False) self.rbnLinks.setChecked(False) self.rbnTimeseriesNode.setChecked(False)
def rbnLinks_Clicked(self): if self.rbnLinks.isChecked(): self.gbxToGraph.setTitle( transl8("frmGraph", "Links to Graph", None)) self.cboParameter.clear() self.cboParameter.addItems( [att.name for att in ENR_link_type.Attributes]) self.lstToGraph.clear() self.list_items = self.output.links self.lstToGraph.addItems(self.list_items.keys())
def rbnNodes_Clicked(self): if self.rbnNodes.isChecked(): self.gbxToGraph.setTitle(transl8("frmGraph", "Nodes to Graph", None)) self.cboParameter.clear() self.cboParameter.addItems(ENR_NodeAttributeNames) self.lstToGraph.clear() # for index in range(0, self.output.nodeCount - 1): # self.lstToGraph.addItem(str(self.output.get_NodeID(index))) for node_id in self.report.all_node_ids(): self.lstToGraph.addItem(node_id)
def rbnTimeseriesLink_Clicked(self): if self.rbnTimeseriesLink.isChecked(): self.cbxSort.setEnabled(False) self.cbxSort.setText(transl8("frmTable", "Sort by", None)) self.lstColumns.clear() self.lstColumns.addItems(ENR_LinkAttributeNames) self.lstColumns.selectAll() self.cboFilter.clear() self.cboFilter.addItems(ENR_LinkAttributeNames) self.rbnNodes.setChecked(False) self.rbnLinks.setChecked(False) self.rbnTimeseriesNode.setChecked(False)
def __init__(self, q_application): self.model = "EPANET" self.program_settings = QtCore.QSettings(QtCore.QSettings.IniFormat, QtCore.QSettings.UserScope, "EPA", self.model) print("Read program settings from " + self.program_settings.fileName()) self.model_path = '' # Set this only if needed later when running model self.output = None # Set this when model output is available self.status_suffix = "_status.txt" self.status_file_name = '' # Set this when model status is available self.output_filename = '' # Set this when model output is available self.project_type = Project # Use the model-specific Project as defined in core.epanet.project self.project_reader_type = ProjectReader self.project_writer_type = ProjectWriter self.project = Project() self.assembly_path = os.path.dirname(os.path.abspath(__file__)) frmMain.__init__(self, q_application) self.on_load(tree_top_item_list=self.tree_top_items) self.tree_types = { self.tree_Patterns[0]: Pattern, self.tree_Curves[0]: Curve, self.tree_Junctions[0]: Junction, self.tree_Reservoirs[0]: Reservoir, self.tree_Tanks[0]: Tank, self.tree_Pipes[0]: Pipe, self.tree_Pumps[0]: Pump, self.tree_Valves[0]: Valve, self.tree_Labels[0]: Label } self.section_types = { Pattern: "patterns", Curve: "curves", Junction: "junctions", Reservoir: "reservoirs", Tank: "tanks", Pipe: "pipes", Pump: "pumps", Valve: "valves", Label: "labels" } if self.map_widget: # initialize empty model map layers, ready to have model elements added self.model_layers = ModelLayersEPANET(self.map_widget) HelpHandler.init_class(os.path.join(self.assembly_path, "epanet.qhc")) self.help_topic = "" # TODO: specify topic to open when Help key is pressed on main form self.helper = HelpHandler(self) self.actionStdProjSummary.triggered.connect( lambda: self.show_edit_window(self.get_editor("Title/Notes"))) self.actionStatus_ReportMenu = QtGui.QAction(self) self.actionStatus_ReportMenu.setObjectName( from_utf8("actionStatus_ReportMenu")) self.actionStatus_ReportMenu.setText(transl8("frmMain", "Status", None)) self.actionStatus_ReportMenu.setToolTip( transl8("frmMain", "Display Simulation Status", None)) self.menuReport.addAction(self.actionStatus_ReportMenu) QtCore.QObject.connect(self.actionStatus_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_status) self.actionProjStatus.triggered.connect(self.report_status) self.actionEnergy_ReportMenu = QtGui.QAction(self) self.actionEnergy_ReportMenu.setObjectName( from_utf8("actionEnergy_ReportMenu")) self.actionEnergy_ReportMenu.setText(transl8("frmMain", "Energy", None)) self.actionEnergy_ReportMenu.setToolTip( transl8("frmMain", "Display Simulation Energy", None)) self.menuReport.addAction(self.actionEnergy_ReportMenu) QtCore.QObject.connect(self.actionEnergy_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_energy) self.actionCalibration_ReportMenu = QtGui.QAction(self) self.actionCalibration_ReportMenu.setObjectName( from_utf8("actionCalibration_ReportMenu")) self.actionCalibration_ReportMenu.setText( transl8("frmMain", "Calibration", None)) self.actionCalibration_ReportMenu.setToolTip( transl8("frmMain", "Display Simulation Calibration", None)) self.menuReport.addAction(self.actionCalibration_ReportMenu) QtCore.QObject.connect(self.actionCalibration_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_calibration) self.actionReaction_ReportMenu = QtGui.QAction(self) self.actionReaction_ReportMenu.setObjectName( from_utf8("actionReaction_ReportMenu")) self.actionReaction_ReportMenu.setText( transl8("frmMain", "Reaction", None)) self.actionReaction_ReportMenu.setToolTip( transl8("frmMain", "Display Simulation Reaction", None)) self.menuReport.addAction(self.actionReaction_ReportMenu) QtCore.QObject.connect(self.actionReaction_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_reaction) self.actionFull_ReportMenu = QtGui.QAction(self) self.actionFull_ReportMenu.setObjectName( from_utf8("actionFull_ReportMenu")) self.actionFull_ReportMenu.setText(transl8("frmMain", "Full...", None)) self.actionFull_ReportMenu.setToolTip( transl8("frmMain", "Save full report as text file", None)) self.menuReport.addAction(self.actionFull_ReportMenu) QtCore.QObject.connect(self.actionFull_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_full) self.actionGraph_ReportMenu = QtGui.QAction(self) self.actionGraph_ReportMenu.setObjectName( from_utf8("actionGraph_ReportMenu")) self.actionGraph_ReportMenu.setText( transl8("frmMain", "Graph...", None)) self.actionGraph_ReportMenu.setToolTip( transl8("frmMain", "Display graph selection options", None)) self.menuReport.addAction(self.actionGraph_ReportMenu) QtCore.QObject.connect(self.actionGraph_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_graph) self.actionProjPlotTimeseries.triggered.connect(self.report_graph) self.actionProjPlotScatter.triggered.connect(self.report_graph) self.actionProjPlotProfile.triggered.connect(self.report_graph) self.actionTable_ReportMenu = QtGui.QAction(self) self.actionTable_ReportMenu.setObjectName( from_utf8("actionTable_ReportMenu")) self.actionTable_ReportMenu.setText( transl8("frmMain", "Table...", None)) self.actionTable_ReportMenu.setToolTip( transl8("frmMain", "Display table selection options", None)) self.menuReport.addAction(self.actionTable_ReportMenu) QtCore.QObject.connect(self.actionTable_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_table) self.actionProjTableTimeseries.triggered.connect(self.report_table) self.Help_Topics_Menu = QtGui.QAction(self) self.Help_Topics_Menu.setObjectName(from_utf8("Help_Topics_Menu")) self.Help_Topics_Menu.setText(transl8("frmMain", "Help Topics", None)) self.Help_Topics_Menu.setToolTip( transl8("frmMain", "Display Help Topics", None)) self.menuHelp.addAction(self.Help_Topics_Menu) QtCore.QObject.connect(self.Help_Topics_Menu, QtCore.SIGNAL('triggered()'), self.help_topics) self.Help_About_Menu = QtGui.QAction(self) self.Help_About_Menu.setObjectName(from_utf8("Help_About_Menu")) self.Help_About_Menu.setText(transl8("frmMain", "About", None)) self.Help_About_Menu.setToolTip( transl8("frmMain", "About EPANET", None)) self.menuHelp.addAction(self.Help_About_Menu) QtCore.QObject.connect(self.Help_About_Menu, QtCore.SIGNAL('triggered()'), self.help_about) self.cbFlowUnits.clear() self.cbFlowUnits.addItems([ 'Flow Units: CFS', 'Flow Units: GPM', 'Flow Units: MGD', 'Flow Units: IMGD', 'Flow Units: AFD', 'Flow Units: LPS', 'Flow Units: LPM', 'Flow Units: MLD', 'Flow Units: CMH', 'Flow Units: CMD' ]) self.cbFlowUnits.currentIndexChanged.connect( self.cbFlowUnits_currentIndexChanged) self.cbOffset.setVisible(False) if self.map_widget: self.map_widget.applyLegend() self.map_widget.LegendDock.setVisible(False) self.cboMapSubcatchments.setVisible(False) self.lblMapSubcatchments.setVisible(False) self.set_thematic_controls() self.cboMapNodes.currentIndexChanged.connect( self.update_thematic_map) self.cboMapLinks.currentIndexChanged.connect( self.update_thematic_map) self.signalTimeChanged.connect(self.update_thematic_map_time)
def __init__(self, q_application): frmMain.__init__(self, q_application) self.model = "SWMM" self.model_path = '' # Set this only if needed later when running model self.output = None # Set this when model output is available self.status_suffix = "_status.txt" self.status_file_name = '' # Set this when model status is available self.output_filename = '' # Set this when model output is available self.project_type = Project # Use the model-specific Project as defined in core.swmm.project self.project = Project() self.assembly_path = os.path.dirname(os.path.abspath(__file__)) self.on_load(tree_top_item_list=self.tree_top_items) HelpHandler.init_class(os.path.join(self.assembly_path, "swmm.qhc")) self.helper = HelpHandler(self) self.help_topic = "swmm/src/src/swmmsmainwindow.htm" self.actionStatus_ReportMenu = QtGui.QAction(self) self.actionStatus_ReportMenu.setObjectName(from_utf8("actionStatus_ReportMenu")) self.actionStatus_ReportMenu.setText(transl8("frmMain", "Status", None)) self.actionStatus_ReportMenu.setToolTip(transl8("frmMain", "Display Simulation Status", None)) self.menuReport.addAction(self.actionStatus_ReportMenu) QtCore.QObject.connect(self.actionStatus_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_status) self.actionSummary_ReportMenu = QtGui.QAction(self) self.actionSummary_ReportMenu.setObjectName(from_utf8("actionSummary_ReportMenu")) self.actionSummary_ReportMenu.setText(transl8("frmMain", "Summary", None)) self.actionSummary_ReportMenu.setToolTip(transl8("frmMain", "Display Results Summary", None)) self.menuReport.addAction(self.actionSummary_ReportMenu) QtCore.QObject.connect(self.actionSummary_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_summary) menu = QtGui.QMenu() submenuGraph = QtGui.QMenu(self.menuReport) submenuGraph.setTitle("Graph") self.menuReport.addMenu(submenuGraph) self.actionGraph_ProfileMenu = QtGui.QAction(self) self.actionGraph_ProfileMenu.setObjectName(from_utf8("actionGraph_ProfileMenu")) self.actionGraph_ProfileMenu.setText(transl8("frmMain", "Profile", None)) self.actionGraph_ProfileMenu.setToolTip(transl8("frmMain", "Display Profile Plot", None)) submenuGraph.addAction(self.actionGraph_ProfileMenu) QtCore.QObject.connect(self.actionGraph_ProfileMenu, QtCore.SIGNAL('triggered()'), self.report_profile) self.actionGraph_TimeSeriesMenu = QtGui.QAction(self) self.actionGraph_TimeSeriesMenu.setObjectName(from_utf8("actionGraph_TimeSeriesMenu")) self.actionGraph_TimeSeriesMenu.setText(transl8("frmMain", "Time Series", None)) self.actionGraph_TimeSeriesMenu.setToolTip(transl8("frmMain", "Display Time Series Plot", None)) submenuGraph.addAction(self.actionGraph_TimeSeriesMenu) QtCore.QObject.connect(self.actionGraph_TimeSeriesMenu, QtCore.SIGNAL('triggered()'), self.report_timeseries) self.actionGraph_ScatterMenu = QtGui.QAction(self) self.actionGraph_ScatterMenu.setObjectName(from_utf8("actionGraph_ScatterMenu")) self.actionGraph_ScatterMenu.setText(transl8("frmMain", "Scatter", None)) self.actionGraph_ScatterMenu.setToolTip(transl8("frmMain", "Display Scatter Plot", None)) submenuGraph.addAction(self.actionGraph_ScatterMenu) QtCore.QObject.connect(self.actionGraph_ScatterMenu, QtCore.SIGNAL('triggered()'), self.report_scatter) self.actionTable_VariableMenu = QtGui.QAction(self) self.actionTable_VariableMenu.setObjectName(from_utf8("actionTable_VariableMenu")) self.actionTable_VariableMenu.setText(transl8("frmMain", "Table", None)) self.actionTable_VariableMenu.setToolTip(transl8("frmMain", "Display Table", None)) self.menuReport.addAction(self.actionTable_VariableMenu) QtCore.QObject.connect(self.actionTable_VariableMenu, QtCore.SIGNAL('triggered()'), self.report_variable) self.actionStatistics_ReportMenu = QtGui.QAction(self) self.actionStatistics_ReportMenu.setObjectName(from_utf8("actionStatistics_ReportMenu")) self.actionStatistics_ReportMenu.setText(transl8("frmMain", "Statistics", None)) self.actionStatistics_ReportMenu.setToolTip(transl8("frmMain", "Display Results Statistics", None)) self.menuReport.addAction(self.actionStatistics_ReportMenu) QtCore.QObject.connect(self.actionStatistics_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_statistics) self.Help_Topics_Menu = QtGui.QAction(self) self.Help_Topics_Menu.setObjectName(from_utf8("Help_Topics_Menu")) self.Help_Topics_Menu.setText(transl8("frmMain", "Help Topics", None)) self.Help_Topics_Menu.setToolTip(transl8("frmMain", "Display Help Topics", None)) self.menuHelp.addAction(self.Help_Topics_Menu) QtCore.QObject.connect(self.Help_Topics_Menu, QtCore.SIGNAL('triggered()'), self.help_topics) self.Help_About_Menu = QtGui.QAction(self) self.Help_About_Menu.setObjectName(from_utf8("Help_About_Menu")) self.Help_About_Menu.setText(transl8("frmMain", "About", None)) self.Help_About_Menu.setToolTip(transl8("frmMain", "About SWMM", None)) self.menuHelp.addAction(self.Help_About_Menu) QtCore.QObject.connect(self.Help_About_Menu, QtCore.SIGNAL('triggered()'), self.help_about)
class frmRunSimulation(QMainWindow, Ui_frmRunSimulation): SHORT_TERM_LIMIT = 20 # Simulations running fewer days than this will have time of day displayed while running context = "RunSimulation" TXT_STATUS_COMPUTING = transl8(context, "Computing...") TXT_STATUS_WRONGVERSION = transl8(context, "Wrong version of simulator.") TXT_STATUS_FAILED = transl8(context, "Run was unsuccessful due to system error.") TXT_STATUS_ERROR = transl8( context, "Run was unsuccessful. See Status Report for reasons.") TXT_STATUS_WARNING = transl8( context, "Warning messages were generated. See Status Report for details.") TXT_STATUS_SUCCESS = transl8(context, "Run was successful.") TXT_STATUS_SHUTDOWN = transl8( context, "Simulator performed an illegal operation and was shut down.") # TXT_STATUS_STOPPED = transl8(context, "Run was successful but was stopped before completion.") TXT_STATUS_IMPORT_ERROR = transl8(context, "Import Error") TXT_STATUS_CANCELLED = transl8(context, "Run cancelled by user.") TXT_STATUS_NONE = transl8(context, "Unable to run simulator.") TXT_STATUS_INIT = transl8(context, "Initializing") TXT_STATUS_COMPILING = transl8(context, "Compiling network data...") TXT_REORDERING = transl8(context, "Re-ordering network nodes...") TXT_SOLVING_HYD = transl8(context, "Solving hydraulics") TXT_SAVING_HYD = transl8(context, "Saving hydraulics") TXT_SOLVING_WQ = transl8(context, "Solving quality") TXT_COMPLETE = transl8(context, " complete") TXT_SAVING = transl8(context, "Saving project data...") TXT_READING = transl8(context, "Reading project data..") TXT_CHECKING = transl8(context, "Checking project data...") TXT_CONTINUITY_ERROR = transl8(context, "Continuity Error") TXT_SURF_RUNOFF = transl8(context, "Surface Runoff:") TXT_FLOW_ROUTING = transl8(context, "Flow Routing:") TXT_QUAL_ROUTING = transl8(context, "Quality Routing:") StatusLabelDict = { RunStatus.rsSuccess: TXT_STATUS_SUCCESS, RunStatus.rsWarning: TXT_STATUS_WARNING, RunStatus.rsError: TXT_STATUS_ERROR, RunStatus.rsWrongVersion: TXT_STATUS_WRONGVERSION, RunStatus.rsFailed: TXT_STATUS_FAILED, RunStatus.rsShutdown: TXT_STATUS_SHUTDOWN, # RunStatus.rsStopped: TXT_STATUS_STOPPED, RunStatus.rsImportError: TXT_STATUS_IMPORT_ERROR, RunStatus.rsCancelled: TXT_STATUS_CANCELLED, RunStatus.rsNone: TXT_STATUS_NONE, RunStatus.rsInit: TXT_STATUS_INIT, RunStatus.rsComputing: TXT_STATUS_COMPUTING, RunStatus.rsCompiling: TXT_STATUS_COMPILING, RunStatus.rsHydraulics: TXT_SOLVING_HYD, RunStatus.rsWQ: TXT_SOLVING_WQ } def __init__(self, main_form=None): QMainWindow.__init__(self, main_form) self.setupUi(self) self.progressBar.setValue(0) # It looks redundant to have both lines below, but the first is needed to establish the run_status attribute self.run_status = RunStatus.rsInit self.set_status(RunStatus.rsInit) self.cmdStop.clicked.connect(self.stop_clicked) self.cmdMinimize.clicked.connect(self.minimize_clicked) self.cmdOK.clicked.connect(self.ok_clicked) self._main_form = main_form self._last_displayed_days = -1 def ok_clicked(self): self.close() # # OnClick procedure for the OK button. # self.hide() # self.ModalResult = mrOK def minimize_clicked(self): # OnClick procedure for the Minimize button. self.showMinimized() if self._main_form: try: self._main_form.showMinimized() except: pass # procedure TSimulationForm.CancelBtnClick(Sender: TObject) # RunStatus := rsCancelled def stop_clicked(self): # OnClick procedure for the Stop button. self.set_status(RunStatus.rsCancelled) self.cmdStop.setVisible(False) self.cmdOK.setVisible(True) self.cmdOK.setFocus() # // Restore original directory # ChDir(OldDir) def set_status(self, status): self.run_status = status self.set_status_text(self.StatusLabelDict[self.run_status]) def set_status_text(self, text): self.StatusLabel.setText(text) self.StatusLabel.update() process_events() def update_progress_bar(self, elapsed, total): if total <= 0: percent = 0 else: percent = int(elapsed * 100 / total) if percent != self.progressBar.value(): self.progressBar.setValue(percent) # self.progressBar.update() # process_events() def update_progress_days(self, elapsed_days, total_days): int_days = int(elapsed_days) update = False if int_days != self._last_displayed_days: self._last_displayed_days = int_days self.txtDays.setText(str(int_days)) self.txtDays.update() update = True if total_days <= self.SHORT_TERM_LIMIT: float_hours = (elapsed_days - int_days) * 24 int_hours = int(float_hours) minutes = int((float_hours - int_hours) * 60) self.txtHrsMin.setText("{:02}:{:02}".format(int_hours, minutes)) self.txtHrsMin.update() update = True if update: process_events()
def __init__(self, q_application): frmMain.__init__(self, q_application) self.model = "EPANET" self.model_path = '' # Set this only if needed later when running model self.output = None # Set this when model output is available self.status_suffix = "_status.txt" self.status_file_name = '' # Set this when model status is available self.output_filename = '' # Set this when model output is available self.project_type = Project # Use the model-specific Project as defined in core.epanet.project self.project = Project() self.assembly_path = os.path.dirname(os.path.abspath(__file__)) self.on_load(tree_top_item_list=self.tree_top_items) HelpHandler.init_class(os.path.join(self.assembly_path, "epanet.qhc")) self.help_topic = "" # TODO: specify topic to open when Help key is pressed on main form self.helper = HelpHandler(self) self.actionStatus_ReportMenu = QtGui.QAction(self) self.actionStatus_ReportMenu.setObjectName(from_utf8("actionStatus_ReportMenu")) self.actionStatus_ReportMenu.setText(transl8("frmMain", "Status", None)) self.actionStatus_ReportMenu.setToolTip(transl8("frmMain", "Display Simulation Status", None)) self.menuReport.addAction(self.actionStatus_ReportMenu) QtCore.QObject.connect(self.actionStatus_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_status) self.actionEnergy_ReportMenu = QtGui.QAction(self) self.actionEnergy_ReportMenu.setObjectName(from_utf8("actionEnergy_ReportMenu")) self.actionEnergy_ReportMenu.setText(transl8("frmMain", "Energy", None)) self.actionEnergy_ReportMenu.setToolTip(transl8("frmMain", "Display Simulation Energy", None)) self.menuReport.addAction(self.actionEnergy_ReportMenu) QtCore.QObject.connect(self.actionEnergy_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_energy) self.actionCalibration_ReportMenu = QtGui.QAction(self) self.actionCalibration_ReportMenu.setObjectName(from_utf8("actionCalibration_ReportMenu")) self.actionCalibration_ReportMenu.setText(transl8("frmMain", "Calibration", None)) self.actionCalibration_ReportMenu.setToolTip(transl8("frmMain", "Display Simulation Calibration", None)) self.menuReport.addAction(self.actionCalibration_ReportMenu) QtCore.QObject.connect(self.actionCalibration_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_calibration) self.actionReaction_ReportMenu = QtGui.QAction(self) self.actionReaction_ReportMenu.setObjectName(from_utf8("actionReaction_ReportMenu")) self.actionReaction_ReportMenu.setText(transl8("frmMain", "Reaction", None)) self.actionReaction_ReportMenu.setToolTip(transl8("frmMain", "Display Simulation Reaction", None)) self.menuReport.addAction(self.actionReaction_ReportMenu) QtCore.QObject.connect(self.actionReaction_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_reaction) self.actionFull_ReportMenu = QtGui.QAction(self) self.actionFull_ReportMenu.setObjectName(from_utf8("actionFull_ReportMenu")) self.actionFull_ReportMenu.setText(transl8("frmMain", "Full...", None)) self.actionFull_ReportMenu.setToolTip(transl8("frmMain", "Save full report as text file", None)) self.menuReport.addAction(self.actionFull_ReportMenu) QtCore.QObject.connect(self.actionFull_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_full) self.actionGraph_ReportMenu = QtGui.QAction(self) self.actionGraph_ReportMenu.setObjectName(from_utf8("actionGraph_ReportMenu")) self.actionGraph_ReportMenu.setText(transl8("frmMain", "Graph...", None)) self.actionGraph_ReportMenu.setToolTip(transl8("frmMain", "Display graph selection options", None)) self.menuReport.addAction(self.actionGraph_ReportMenu) QtCore.QObject.connect(self.actionGraph_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_graph) self.actionTable_ReportMenu = QtGui.QAction(self) self.actionTable_ReportMenu.setObjectName(from_utf8("actionTable_ReportMenu")) self.actionTable_ReportMenu.setText(transl8("frmMain", "Table...", None)) self.actionTable_ReportMenu.setToolTip(transl8("frmMain", "Display table selection options", None)) self.menuReport.addAction(self.actionTable_ReportMenu) QtCore.QObject.connect(self.actionTable_ReportMenu, QtCore.SIGNAL('triggered()'), self.report_table) self.Help_Topics_Menu = QtGui.QAction(self) self.Help_Topics_Menu.setObjectName(from_utf8("Help_Topics_Menu")) self.Help_Topics_Menu.setText(transl8("frmMain", "Help Topics", None)) self.Help_Topics_Menu.setToolTip(transl8("frmMain", "Display Help Topics", None)) self.menuHelp.addAction(self.Help_Topics_Menu) QtCore.QObject.connect(self.Help_Topics_Menu, QtCore.SIGNAL('triggered()'), self.help_topics) self.Help_About_Menu = QtGui.QAction(self) self.Help_About_Menu.setObjectName(from_utf8("Help_About_Menu")) self.Help_About_Menu.setText(transl8("frmMain", "About", None)) self.Help_About_Menu.setToolTip(transl8("frmMain", "About EPANET", None)) self.menuHelp.addAction(self.Help_About_Menu) QtCore.QObject.connect(self.Help_About_Menu, QtCore.SIGNAL('triggered()'), self.help_about)