def __init__(self, core=None): FreeseerApp.__init__(self) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/freeseer/logo.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) self.resize(960, 400) self.mainWidget = QtGui.QWidget() self.mainLayout = QtGui.QHBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.editorWidget = ReportEditorWidget() self.editorWidget.editor.setColumnHidden(5, True) self.mainLayout.addWidget(self.editorWidget) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.config = Config(settings.configdir) self.db = QtDBConnector(settings.configdir) # # Setup Menubar # self.actionExportCsv = QtGui.QAction(self) self.actionExportCsv.setObjectName(_fromUtf8("actionExportCsv")) # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) # --- End Menubar # # Report Editor Connections # # Editor Widget self.connect(self.editorWidget.removeButton, QtCore.SIGNAL("clicked()"), self.remove_talk) self.connect(self.editorWidget.clearButton, QtCore.SIGNAL("clicked()"), self.confirm_reset) self.connect(self.editorWidget.closeButton, QtCore.SIGNAL("clicked()"), self.close) # Main Window Connections self.connect(self.actionExportCsv, QtCore.SIGNAL("triggered()"), self.export_reports_to_csv) self.connect( self.editorWidget.editor, QtCore.SIGNAL("clicked (const QModelIndex&)"), self.editorSelectionChanged ) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break self.load_failures_model() self.editorWidget.editor.resizeColumnsToContents() self.editorWidget.editor.resizeRowsToContents()
def __init__(self): FreeseerApp.__init__(self) self.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/freeseer/logo.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) configdir = os.path.abspath(os.path.expanduser('~/.freeseer/')) self.logger = Logger(configdir) logging.info("Logger initialized") self.server = QTcpServer(self) logging.info("Starting Freeseer Server") # Setup Widget self.mainWidget = ControllerServerWidget() self.setCentralWidget(self.mainWidget) self.mainWidget.hostCombo.addItem(QtCore.QString("0.0.0.0")) #Connections self.connect(self.server, QtCore.SIGNAL('newConnection()'), self.acceptConnection) self.connect(self.mainWidget.startButton, QtCore.SIGNAL('pressed()'), self.startServer) self.connect(self.mainWidget.hostCombo, QtCore.SIGNAL('currentIndexChanged(int)'), self.ipComboBoxHandler) self.connect(self.mainWidget.passEdit, QtCore.SIGNAL('textChanged(QString)'), self.onPassChanged) # Initialize Passphrase Field self.mainWidget.passEdit.setPlaceholderText("Passphrase required to start server") self.mainWidget.startButton.setEnabled(False) # Client Control self.connect(self.mainWidget.clientStartButton, QtCore.SIGNAL('pressed()'), self.sendRecordCommand) self.connect(self.mainWidget.clientStopButton, QtCore.SIGNAL('pressed()'), self.sendStopCommand) self.connect(self.mainWidget.clientDisconnectButton, QtCore.SIGNAL('pressed()'), self.disconnectClients) self.connect(self.mainWidget.clientList, QtCore.SIGNAL('itemSelectionChanged()'), self.updateClientButtons) self.load_settings() self.updateStatus(self.status)
def __init__(self): FreeseerApp.__init__(self) self.resize(400, 300) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/freeseer/logo.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) self.server = QTcpServer(self) log.info("Starting Freeseer Server") # Setup Widget self.mainWidget = ControllerServerWidget() self.setCentralWidget(self.mainWidget) self.mainWidget.hostCombo.addItem(QtCore.QString("0.0.0.0")) addresses = QNetworkInterface().allAddresses() for address in addresses: self.mainWidget.hostCombo.addItem(address.toString()) # Connections self.connect(self.server, QtCore.SIGNAL("newConnection()"), self.acceptConnection) self.connect(self.mainWidget.startButton, QtCore.SIGNAL("pressed()"), self.startServer) self.connect(self.mainWidget.hostCombo, QtCore.SIGNAL("currentIndexChanged(int)"), self.ipComboBoxHandler) self.connect(self.mainWidget.passEdit, QtCore.SIGNAL("textChanged(QString)"), self.onPassChanged) # Initialize Passphrase Field self.mainWidget.passEdit.setPlaceholderText("Passphrase required to start server") self.mainWidget.startButton.setEnabled(False) # Client Control self.connect(self.mainWidget.clientStartButton, QtCore.SIGNAL("pressed()"), self.sendRecordCommand) self.connect(self.mainWidget.clientStopButton, QtCore.SIGNAL("pressed()"), self.sendStopCommand) self.connect(self.mainWidget.clientDisconnectButton, QtCore.SIGNAL("pressed()"), self.disconnectClients) self.connect(self.mainWidget.clientList, QtCore.SIGNAL("itemSelectionChanged()"), self.updateClientButtons) self.load_settings() self.updateStatus(self.status)
def __init__(self, config, db): FreeseerApp.__init__(self) self.config = config self.db = db icon = QIcon() icon.addPixmap(QPixmap(':/freeseer/logo.png'), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(960, 600) # # Setup Layout # self.mainWidget = QWidget() self.mainLayout = QVBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.mainLayout.setAlignment(Qt.AlignTop) # Add custom widgets self.commandButtons = CommandButtons() self.tableView = QTableView() self.tableView.setSortingEnabled(True) self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.talkDetailsWidget = TalkDetailsWidget() self.importTalksWidget = ImportTalksWidget() self.newTalkWidget = NewTalkWidget() self.mainLayout.addWidget(self.importTalksWidget) #self.mainLayout.addLayout(self.titleLayout) self.mainLayout.addWidget(self.commandButtons) self.mainLayout.addWidget(self.tableView) self.mainLayout.addWidget(self.talkDetailsWidget) self.mainLayout.addWidget(self.importTalksWidget) # --- End Layout # Initialize geometry, to be used for restoring window positioning. self.geometry = None # # Setup Menubar # self.actionExportCsv = QAction(self) self.actionExportCsv.setObjectName('actionExportCsv') self.actionRemoveAll = QAction(self) self.actionRemoveAll.setObjectName('actionRemoveAll') # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) self.menuFile.insertAction(self.actionExit, self.actionRemoveAll) # --- End Menubar # # TableView Connections # self.connect(self.tableView, SIGNAL('activated(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('selected(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('clicked(const QModelIndex)'), self.talk_selected) # Import Widget self.connect(self.importTalksWidget.csvRadioButton, SIGNAL('toggled(bool)'), self.toggle_import) self.connect(self.importTalksWidget.importButton, SIGNAL('clicked()'), self.import_talks) self.connect(self.importTalksWidget.cancelButton, SIGNAL('clicked()'), self.hide_import_talks_widget) self.importTalksWidget.setHidden(True) self.connect(self.importTalksWidget.csvFileSelectButton, SIGNAL('clicked()'), self.csv_file_select) self.connect(self.importTalksWidget.csvLineEdit, SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.importTalksWidget.rssLineEdit, SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.actionExportCsv, SIGNAL('triggered()'), self.export_talks_to_csv) self.connect(self.actionRemoveAll, SIGNAL('triggered()'), self.confirm_reset) # Command Buttons self.connect(self.commandButtons.addButton, SIGNAL('clicked()'), self.show_new_talk_popup) self.connect(self.commandButtons.removeButton, SIGNAL('clicked()'), self.remove_talk) self.connect(self.commandButtons.removeAllButton, SIGNAL('clicked()'), self.confirm_reset) self.connect(self.commandButtons.importButton, SIGNAL('clicked()'), self.show_import_talks_widget) self.connect(self.commandButtons.exportButton, SIGNAL('clicked()'), self.export_talks_to_csv) self.connect(self.commandButtons.searchButton, SIGNAL('clicked()'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('textEdited(QString)'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('returnPressed()'), self.search_talks) # Talk Details Buttons self.connect(self.talkDetailsWidget.saveButton, SIGNAL('clicked()'), self.update_talk) # Talk Details Widget self.connect(self.talkDetailsWidget.titleLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.presenterLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.categoryLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.eventLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.roomLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.descriptionTextEdit, SIGNAL('modificationChanged(bool)'), self.enable_save) self.connect(self.talkDetailsWidget.dateEdit, SIGNAL('dateChanged(const QDate)'), self.enable_save) self.connect(self.talkDetailsWidget.startTimeEdit, SIGNAL('timeChanged(const QTime)'), self.enable_save) self.connect(self.talkDetailsWidget.endTimeEdit, SIGNAL('timeChanged(const QTime)'), self.enable_save) # New Talk Widget self.newTalkWidget.connect(self.newTalkWidget.addButton, SIGNAL('clicked()'), self.add_talk) self.newTalkWidget.connect(self.newTalkWidget.cancelButton, SIGNAL('clicked()'), self.newTalkWidget.reject) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break # Load Talk Database self.load_presentations_model() # Setup Autocompletion self.update_autocomplete_fields() self.talkDetailsWidget.saveButton.setEnabled(False)
def __init__(self, config, db): FreeseerApp.__init__(self) self.config = config self.db = db icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8(":/freeseer/logo.png")), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(960, 400) self.mainWidget = QWidget() self.mainLayout = QHBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.editorWidget = ReportEditorWidget() self.editorWidget.editor.setColumnHidden(5, True) self.mainLayout.addWidget(self.editorWidget) # Initialize geometry, to be used for restoring window positioning. self.geometry = None # # Setup Menubar # self.actionExportCsv = QAction(self) self.actionExportCsv.setObjectName(_fromUtf8("actionExportCsv")) # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) # --- End Menubar # # Report Editor Connections # # Editor Widget self.connect(self.editorWidget.removeButton, SIGNAL('clicked()'), self.remove_talk) self.connect(self.editorWidget.clearButton, SIGNAL('clicked()'), self.confirm_reset) self.connect(self.editorWidget.closeButton, SIGNAL('clicked()'), self.close) # Main Window Connections self.connect(self.actionExportCsv, SIGNAL('triggered()'), self.export_reports_to_csv) self.connect(self.editorWidget.editor, SIGNAL('clicked (const QModelIndex&)'), self.editorSelectionChanged) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break self.load_failures_model() self.editorWidget.editor.resizeColumnsToContents() self.editorWidget.editor.resizeRowsToContents()
def __init__(self, core=None): FreeseerApp.__init__(self) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/freeseer/logo.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) self.resize(960, 400) self.mainWidget = QtGui.QWidget() self.mainLayout = QtGui.QHBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.editorWidget = EditorWidget() self.editorWidget.editor.setColumnHidden(5, True) self.addTalkWidget = AddTalkWidget() self.mainLayout.addWidget(self.editorWidget) self.mainLayout.addWidget(self.addTalkWidget) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.config = Config(settings.configdir) self.db = QtDBConnector(settings.configdir) # # Setup Menubar # self.actionExportCsv = QtGui.QAction(self) self.actionExportCsv.setObjectName(_fromUtf8("actionExportCsv")) # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) # --- End Menubar # # Talk Editor Connections # # Add Talk Widget self.connect(self.addTalkWidget.addButton, QtCore.SIGNAL("clicked()"), self.add_talk) self.connect(self.addTalkWidget.cancelButton, QtCore.SIGNAL("clicked()"), self.hide_add_talk_widget) self.addTalkWidget.setHidden(True) # Editor Widget self.connect( self.editorWidget.rssLineEdit, QtCore.SIGNAL("returnPressed()"), self.editorWidget.rssPushButton.click ) self.connect(self.editorWidget.rssPushButton, QtCore.SIGNAL("clicked()"), self.add_talks_from_rss) self.connect(self.editorWidget.addButton, QtCore.SIGNAL("clicked()"), self.show_add_talk_widget) self.connect(self.editorWidget.removeButton, QtCore.SIGNAL("clicked()"), self.remove_talk) self.connect(self.editorWidget.clearButton, QtCore.SIGNAL("clicked()"), self.confirm_reset) self.connect(self.editorWidget.closeButton, QtCore.SIGNAL("clicked()"), self.close) # CSV Widget self.connect(self.editorWidget.csvFileSelectButton, QtCore.SIGNAL("clicked()"), self.csv_file_select) self.connect(self.editorWidget.csvPushButton, QtCore.SIGNAL("clicked()"), self.add_talks_from_csv) self.connect(self.actionExportCsv, QtCore.SIGNAL("triggered()"), self.export_talks_to_csv) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break self.load_presentations_model()
def __init__(self, profile, config): FreeseerApp.__init__(self) self.db = profile.get_database() self.config = config self.controller = RecordingController(profile, self.db, self.config) self.recently_recorded_video = None self.resize(550, 450) # Setup custom widgets self.mainWidget = RecordingWidget() self.setCentralWidget(self.mainWidget) self.reportWidget = ReportDialog() self.reportWidget.setModal(True) self.autoRecordWidget = AutoRecordWidget() self.configToolApp = ConfigToolApp(profile, config) self.configToolApp.setWindowModality(QtCore.Qt.ApplicationModal) self.configToolApp.setWindowFlags(QtCore.Qt.Dialog) self.talkEditorApp = TalkEditorApp(self.config, self.db) self.talkEditorApp.setWindowModality(QtCore.Qt.ApplicationModal) self.talkEditorApp.setWindowFlags(QtCore.Qt.Dialog) self.statusBar().addPermanentWidget(self.mainWidget.statusLabel) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.current_event = None self.current_room = None self.controller.set_window_id(self.mainWidget.previewWidget.winId()) self.controller.set_audio_feedback_handler(self.audio_feedback) # Set timer for recording how much time elapsed during a recording self.reset_timer() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.update_timer) # Initialize variables for auto-recording self.singleID = None self.timeUntilStart = None self.timeUntilEnd = None self.autoTalks = None self.recorded = False self.beforeStartTimer = QtCore.QTimer(self) self.beforeStartTimer.timeout.connect(self.start_single_record) self.beforeEndTimer = QtCore.QTimer(self) self.beforeEndTimer.timeout.connect(self.single_auto_record) # # Setup Menubar # # Build the options Menu, TalkEditor and ConfigTool self.menuOptions = QtGui.QMenu(self.menubar) self.menuOptions.setObjectName(_fromUtf8("menuOptions")) self.menubar.insertMenu(self.menuHelp.menuAction(), self.menuOptions) self.actionConfigTool = QtGui.QAction(self) self.actionConfigTool.setShortcut("Ctrl+C") self.actionConfigTool.setObjectName(_fromUtf8("actionConfigTool")) self.actionTalkEditor = QtGui.QAction(self) self.actionTalkEditor.setShortcut("Ctrl+E") self.actionTalkEditor.setObjectName(_fromUtf8("actionTalkEditor")) self.actionAutoRecord = QtGui.QAction(self) leaveButtonShortcut = "Ctrl+R" self.actionAutoRecord.setShortcut(leaveButtonShortcut) self.actionAutoRecord.setCheckable(True) self.actionAutoRecord.setObjectName(_fromUtf8("actionAutoRecord")) self.menuOptions.addAction(self.actionConfigTool) self.menuOptions.addAction(self.actionTalkEditor) self.menuOptions.addAction(self.actionAutoRecord) folderIcon = QtGui.QIcon.fromTheme("folder") self.actionOpenVideoFolder = QtGui.QAction(self) self.actionOpenVideoFolder.setShortcut("Ctrl+O") self.actionOpenVideoFolder.setObjectName( _fromUtf8("actionOpenVideoFolder")) self.actionOpenVideoFolder.setIcon(folderIcon) self.actionReport = QtGui.QAction(self) self.actionReport.setObjectName(_fromUtf8("actionReport")) # Actions self.menuFile.insertAction(self.actionExit, self.actionOpenVideoFolder) self.menuHelp.addAction(self.actionReport) # --- End Menubar # # Systray Setup # self.systray = QtGui.QSystemTrayIcon(self.icon) self.systray.show() self.systray.menu = QtGui.QMenu() self.systray.setContextMenu(self.systray.menu) self.visibilityAction = QtGui.QAction(self) self.recordAction = QtGui.QAction(self) self.systray.menu.addAction(self.visibilityAction) self.systray.menu.addAction(self.recordAction) self.connect(self.visibilityAction, QtCore.SIGNAL('triggered()'), self.toggle_window_visibility) self.connect(self.recordAction, QtCore.SIGNAL('triggered()'), self.toggle_record_button) self.connect( self.systray, QtCore.SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self._icon_activated) # --- End Systray Setup # main tab connections self.connect(self.mainWidget.eventComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_rooms_from_event) self.connect(self.mainWidget.roomComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_dates_from_event_room) self.connect(self.mainWidget.dateComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_talks_from_date) self.connect(self.mainWidget.talkComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.set_talk_tooltip) self.connect(self.mainWidget.standbyButton, QtCore.SIGNAL("toggled(bool)"), self.standby) self.connect(self.mainWidget.disengageButton, QtCore.SIGNAL("clicked()"), functools.partial(self.standby, state=False)) self.connect(self.mainWidget.recordButton, QtCore.SIGNAL('clicked()'), self.record) self.connect(self.mainWidget.pauseButton, QtCore.SIGNAL('toggled(bool)'), self.pause) self.connect(self.mainWidget.audioFeedbackCheckbox, QtCore.SIGNAL('toggled(bool)'), self.toggle_audio_feedback) self.connect(self.mainWidget.playButton, QtCore.SIGNAL('clicked()'), self.play_video) self.connect(self.autoRecordWidget.leaveButton, QtCore.SIGNAL('clicked()'), functools.partial(self.auto_record, state=False)) self.autoRecordWidget.leaveButton.setShortcut(leaveButtonShortcut) # Main Window Connections self.connect(self.actionConfigTool, QtCore.SIGNAL('triggered()'), self.open_configtool) self.connect(self.actionTalkEditor, QtCore.SIGNAL('triggered()'), self.open_talkeditor) self.connect(self.actionAutoRecord, QtCore.SIGNAL('toggled(bool)'), self.auto_record) self.connect(self.actionOpenVideoFolder, QtCore.SIGNAL('triggered()'), self.open_video_directory) self.connect(self.actionReport, QtCore.SIGNAL('triggered()'), self.show_report_widget) # # ReportWidget Connections # self.connect(self.reportWidget.reportButton, QtCore.SIGNAL("clicked()"), self.report) self.load_settings() # Setup spacebar key. self.mainWidget.pauseButton.setShortcut(QtCore.Qt.Key_Space) self.mainWidget.pauseButton.setFocus() self.retranslate()
def __init__(self): FreeseerApp.__init__(self) self.controller = RecordingController() self.config = self.controller.config self.db = self.controller.db self.resize(550, 450) # Setup custom widgets self.mainWidget = RecordingWidget() self.setCentralWidget(self.mainWidget) self.reportWidget = ReportDialog() self.reportWidget.setModal(True) self.clientWidget = ClientDialog(self.config.configdir, self.db) self.configToolApp = ConfigToolApp(self) self.configToolApp.setWindowModality(QtCore.Qt.ApplicationModal) self.configToolApp.setWindowFlags(QtCore.Qt.Dialog) self.talkEditorApp = TalkEditorApp(self) self.talkEditorApp.setWindowModality(QtCore.Qt.ApplicationModal) self.talkEditorApp.setWindowFlags(QtCore.Qt.Dialog) self.statusBar().addPermanentWidget(self.mainWidget.statusLabel) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.current_event = None self.current_room = None self.controller.set_window_id(self.mainWidget.previewWidget.winId()) self.controller.set_audio_feedback_handler(self.audio_feedback) # Set timer for recording how much time elapsed during a recording self.reset_timer() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.update_timer) # # Setup Menubar # # Build the options Menu, TalkEditor and ConfigTool self.menuOptions = QtGui.QMenu(self.menubar) self.menuOptions.setObjectName(_fromUtf8("menuOptions")) self.menubar.insertMenu(self.menuHelp.menuAction(), self.menuOptions) self.actionConfigTool = QtGui.QAction(self) self.actionConfigTool.setShortcut("Ctrl+C") self.actionConfigTool.setObjectName(_fromUtf8("actionConfigTool")) self.actionTalkEditor = QtGui.QAction(self) self.actionTalkEditor.setShortcut("Ctrl+E") self.actionTalkEditor.setObjectName(_fromUtf8("actionTalkEditor")) self.menuOptions.addAction(self.actionConfigTool) self.menuOptions.addAction(self.actionTalkEditor) folderIcon = QtGui.QIcon.fromTheme("folder") self.actionOpenVideoFolder = QtGui.QAction(self) self.actionOpenVideoFolder.setShortcut("Ctrl+O") self.actionOpenVideoFolder.setObjectName(_fromUtf8("actionOpenVideoFolder")) self.actionOpenVideoFolder.setIcon(folderIcon) self.actionReport = QtGui.QAction(self) self.actionReport.setObjectName(_fromUtf8("actionReport")) self.actionClient = QtGui.QAction(self) self.actionClient.setIcon(self.icon) # Actions self.menuFile.insertAction(self.actionExit, self.actionOpenVideoFolder) # Hide the controller client configuration screen for Freeseer 3.0.0 # release. This feature's not ready for public use so lets keep it # hidden for now. # self.menuFile.insertAction(self.actionExit, self.actionClient) self.menuHelp.addAction(self.actionReport) # --- End Menubar # # Systray Setup # self.systray = QtGui.QSystemTrayIcon(self.icon) self.systray.show() self.systray.menu = QtGui.QMenu() self.systray.setContextMenu(self.systray.menu) self.visibilityAction = QtGui.QAction(self) self.recordAction = QtGui.QAction(self) self.systray.menu.addAction(self.visibilityAction) self.systray.menu.addAction(self.recordAction) self.connect(self.visibilityAction, QtCore.SIGNAL("triggered()"), self.toggle_window_visibility) self.connect(self.recordAction, QtCore.SIGNAL("triggered()"), self.toggle_record_button) self.connect(self.systray, QtCore.SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self._icon_activated) # --- End Systray Setup # main tab connections self.connect( self.mainWidget.eventComboBox, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.load_rooms_from_event, ) self.connect( self.mainWidget.roomComboBox, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.load_dates_from_event_room, ) self.connect( self.mainWidget.dateComboBox, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.load_talks_from_date, ) self.connect( self.mainWidget.talkComboBox, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.set_talk_tooltip ) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.standby) self.connect(self.mainWidget.recordPushButton, QtCore.SIGNAL("toggled(bool)"), self.record) self.connect(self.mainWidget.pauseToolButton, QtCore.SIGNAL("toggled(bool)"), self.pause) self.connect(self.mainWidget.audioFeedbackCheckbox, QtCore.SIGNAL("toggled(bool)"), self.toggle_audio_feedback) # Main Window Connections self.connect(self.actionConfigTool, QtCore.SIGNAL("triggered()"), self.open_configtool) self.connect(self.actionTalkEditor, QtCore.SIGNAL("triggered()"), self.open_talkeditor) self.connect(self.actionOpenVideoFolder, QtCore.SIGNAL("triggered()"), self.open_video_directory) self.connect(self.actionReport, QtCore.SIGNAL("triggered()"), self.show_report_widget) self.connect(self.actionClient, QtCore.SIGNAL("triggered()"), self.show_client_widget) # GUI Disabling/Enabling Connections self.connect( self.mainWidget.recordPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.pauseToolButton.setEnabled ) # Client Connections self.connect(self.clientWidget.socket, QtCore.SIGNAL("readyRead()"), self.getAction) # # ReportWidget Connections # self.connect(self.reportWidget.reportButton, QtCore.SIGNAL("clicked()"), self.report) self.load_settings() # Setup spacebar key. self.mainWidget.recordPushButton.setShortcut(QtCore.Qt.Key_Space) self.mainWidget.recordPushButton.setFocus() self.retranslate()
def __init__(self, recordapp=None): FreeseerApp.__init__(self) self.recordapp = recordapp icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/freeseer/logo.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.mainWidget = ConfigToolWidget() self.setCentralWidget(self.mainWidget) self.currentWidget = None self.mainWidgetLayout = QtGui.QVBoxLayout() self.mainWidget.rightPanelWidget.setLayout(self.mainWidgetLayout) # Load all ConfigTool Widgets self.generalWidget = GeneralWidget() self.avWidget = AVWidget() self.pluginloaderWidget = PluginLoaderWidget() self.config = Config(settings.configdir) self.plugman = PluginManager(settings.configdir) # Custom Menu Items self.actionSaveProfile = QtGui.QAction(self) self.menuFile.insertAction(self.actionExit, self.actionSaveProfile) # # --- Language Related # # Fill in the langauges combobox and load the default language for language in self.languages: translator = QtCore.QTranslator() # Create a translator to translate Language Display Text translator.load(":/languages/%s" % language) language_display_text = translator.translate("Translation", "Language Display Text") self.generalWidget.languageComboBox.addItem(language_display_text, language) # Load default language. actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break # --- End Language Related # connections self.connect(self.actionSaveProfile, QtCore.SIGNAL('triggered()'), self.show_save_profile_dialog) self.connect(self.mainWidget.closePushButton, QtCore.SIGNAL('clicked()'), self.close) self.connect(self.mainWidget.optionsTreeWidget, QtCore.SIGNAL('itemSelectionChanged()'), self.change_option) # # general tab connections # self.connect(self.generalWidget.languageComboBox, QtCore.SIGNAL('currentIndexChanged(int)'), self.set_default_language) self.connect(self.generalWidget.recordDirPushButton, QtCore.SIGNAL('clicked()'), self.browse_video_directory) self.connect(self.generalWidget.recordDirLineEdit, QtCore.SIGNAL('editingFinished()'), self.update_record_directory) self.connect(self.generalWidget.autoHideCheckBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_autohide) # # AV tab connections # self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_audiomixer_state) self.connect(self.avWidget.audioMixerComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_audiomixer) self.connect(self.avWidget.audioMixerSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_audio_mixer) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_videomixer_state) self.connect(self.avWidget.videoMixerComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_videomixer) self.connect(self.avWidget.videoMixerSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_video_mixer) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_record_to_file) self.connect(self.avWidget.fileComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_file_format) self.connect(self.avWidget.fileSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_file_format) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_record_to_stream) self.connect(self.avWidget.streamComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_stream_format) self.connect(self.avWidget.streamSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_stream_format) # GUI Disabling/Enabling Connections self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.audioMixerLabel.setEnabled) self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.audioMixerComboBox.setEnabled) self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.audioMixerSetupPushButton.setEnabled) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.videoMixerLabel.setEnabled) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.videoMixerComboBox.setEnabled) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.videoMixerSetupPushButton.setEnabled) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.fileLabel.setEnabled) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.fileComboBox.setEnabled) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.fileSetupPushButton.setEnabled) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.streamLabel.setEnabled) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.streamComboBox.setEnabled) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.streamSetupPushButton.setEnabled) self.retranslate() # load active plugin widgets self.load_plugin_widgets() # Start off with displaying the General Settings items = self.mainWidget.optionsTreeWidget.findItems(self.generalString, QtCore.Qt.MatchExactly) if len(items) > 0: item = items[0] self.mainWidget.optionsTreeWidget.setCurrentItem(item)
def __init__(self, profile, config): FreeseerApp.__init__(self) self.db = profile.get_database() self.config = config self.controller = RecordingController(profile, self.db, self.config) self.recently_recorded_video = None self.resize(550, 450) # Setup custom widgets self.mainWidget = RecordingWidget() self.setCentralWidget(self.mainWidget) self.reportWidget = ReportDialog() self.reportWidget.setModal(True) self.autoRecordWidget = AutoRecordWidget() self.configToolApp = ConfigToolApp(profile, config) self.configToolApp.setWindowModality(QtCore.Qt.ApplicationModal) self.configToolApp.setWindowFlags(QtCore.Qt.Dialog) self.talkEditorApp = TalkEditorApp(self.config, self.db) self.talkEditorApp.setWindowModality(QtCore.Qt.ApplicationModal) self.talkEditorApp.setWindowFlags(QtCore.Qt.Dialog) self.statusBar().addPermanentWidget(self.mainWidget.statusLabel) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.current_event = None self.current_room = None self.controller.set_window_id(self.mainWidget.previewWidget.winId()) self.controller.set_audio_feedback_handler(self.audio_feedback) # Set timer for recording how much time elapsed during a recording self.reset_timer() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.update_timer) # Initialize variables for auto-recording self.singleID = None self.timeUntilStart = None self.timeUntilEnd = None self.autoTalks = None self.recorded = False self.beforeStartTimer = QtCore.QTimer(self) self.beforeStartTimer.timeout.connect(self.start_single_record) self.beforeEndTimer = QtCore.QTimer(self) self.beforeEndTimer.timeout.connect(self.single_auto_record) # # Setup Menubar # # Build the options Menu, TalkEditor and ConfigTool self.menuOptions = QtGui.QMenu(self.menubar) self.menuOptions.setObjectName(_fromUtf8("menuOptions")) self.menubar.insertMenu(self.menuHelp.menuAction(), self.menuOptions) self.actionConfigTool = QtGui.QAction(self) self.actionConfigTool.setShortcut("Ctrl+C") self.actionConfigTool.setObjectName(_fromUtf8("actionConfigTool")) self.actionTalkEditor = QtGui.QAction(self) self.actionTalkEditor.setShortcut("Ctrl+E") self.actionTalkEditor.setObjectName(_fromUtf8("actionTalkEditor")) self.actionAutoRecord = QtGui.QAction(self) leaveButtonShortcut = "Ctrl+R" self.actionAutoRecord.setShortcut(leaveButtonShortcut) self.actionAutoRecord.setCheckable(True) self.actionAutoRecord.setObjectName(_fromUtf8("actionAutoRecord")) self.menuOptions.addAction(self.actionConfigTool) self.menuOptions.addAction(self.actionTalkEditor) self.menuOptions.addAction(self.actionAutoRecord) folderIcon = QtGui.QIcon.fromTheme("folder") self.actionOpenVideoFolder = QtGui.QAction(self) self.actionOpenVideoFolder.setShortcut("Ctrl+O") self.actionOpenVideoFolder.setObjectName(_fromUtf8("actionOpenVideoFolder")) self.actionOpenVideoFolder.setIcon(folderIcon) self.actionReport = QtGui.QAction(self) self.actionReport.setObjectName(_fromUtf8("actionReport")) # Actions self.menuFile.insertAction(self.actionExit, self.actionOpenVideoFolder) self.menuHelp.addAction(self.actionReport) # --- End Menubar # # Systray Setup # self.systray = QtGui.QSystemTrayIcon(self.icon) self.systray.show() self.systray.menu = QtGui.QMenu() self.systray.setContextMenu(self.systray.menu) self.visibilityAction = QtGui.QAction(self) self.recordAction = QtGui.QAction(self) self.systray.menu.addAction(self.visibilityAction) self.systray.menu.addAction(self.recordAction) self.connect(self.visibilityAction, QtCore.SIGNAL('triggered()'), self.toggle_window_visibility) self.connect(self.recordAction, QtCore.SIGNAL('triggered()'), self.toggle_record_button) self.connect(self.systray, QtCore.SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self._icon_activated) # --- End Systray Setup # main tab connections self.connect(self.mainWidget.eventComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_rooms_from_event) self.connect(self.mainWidget.roomComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_dates_from_event_room) self.connect(self.mainWidget.dateComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_talks_from_date) self.connect(self.mainWidget.talkComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.set_talk_tooltip) self.connect(self.mainWidget.standbyButton, QtCore.SIGNAL("toggled(bool)"), self.standby) self.connect(self.mainWidget.disengageButton, QtCore.SIGNAL("clicked()"), functools.partial(self.standby, state=False)) self.connect(self.mainWidget.recordButton, QtCore.SIGNAL('clicked()'), self.record) self.connect(self.mainWidget.pauseButton, QtCore.SIGNAL('toggled(bool)'), self.pause) self.connect(self.mainWidget.audioFeedbackCheckbox, QtCore.SIGNAL('toggled(bool)'), self.toggle_audio_feedback) self.connect(self.mainWidget.playButton, QtCore.SIGNAL('clicked()'), self.play_video) self.connect(self.autoRecordWidget.leaveButton, QtCore.SIGNAL('clicked()'), functools.partial(self.auto_record, state=False)) self.autoRecordWidget.leaveButton.setShortcut(leaveButtonShortcut) # Main Window Connections self.connect(self.actionConfigTool, QtCore.SIGNAL('triggered()'), self.open_configtool) self.connect(self.actionTalkEditor, QtCore.SIGNAL('triggered()'), self.open_talkeditor) self.connect(self.actionAutoRecord, QtCore.SIGNAL('toggled(bool)'), self.auto_record) self.connect(self.actionOpenVideoFolder, QtCore.SIGNAL('triggered()'), self.open_video_directory) self.connect(self.actionReport, QtCore.SIGNAL('triggered()'), self.show_report_widget) # # ReportWidget Connections # self.connect(self.reportWidget.reportButton, QtCore.SIGNAL("clicked()"), self.report) self.load_settings() # Setup spacebar key. self.mainWidget.pauseButton.setShortcut(QtCore.Qt.Key_Space) self.mainWidget.pauseButton.setFocus() self.retranslate()
def __init__(self, config, db): FreeseerApp.__init__(self) self.config = config self.db = db icon = QIcon() icon.addPixmap(QPixmap(':/freeseer/logo.png'), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(960, 600) # # Setup Layout # self.mainWidget = QWidget() self.mainLayout = QVBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.mainLayout.setAlignment(Qt.AlignTop) # Add custom widgets self.commandButtons = CommandButtons() self.tableView = QTableView() self.tableView.setSortingEnabled(True) self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.talkDetailsWidget = TalkDetailsWidget() self.importTalksWidget = ImportTalksWidget() self.newTalkWidget = NewTalkWidget() self.mainLayout.addWidget(self.importTalksWidget) #self.mainLayout.addLayout(self.titleLayout) self.mainLayout.addWidget(self.commandButtons) self.mainLayout.addWidget(self.tableView) self.mainLayout.addWidget(self.talkDetailsWidget) self.mainLayout.addWidget(self.importTalksWidget) # --- End Layout # Initialize geometry, to be used for restoring window positioning. self.geometry = None # # Setup Menubar # self.actionExportCsv = QAction(self) self.actionExportCsv.setObjectName('actionExportCsv') self.actionRemoveAll = QAction(self) self.actionRemoveAll.setObjectName('actionRemoveAll') # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) self.menuFile.insertAction(self.actionExit, self.actionRemoveAll) # --- End Menubar # # TableView Connections # self.connect(self.tableView, SIGNAL('activated(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('selected(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('clicked(const QModelIndex)'), self.talk_selected) # Import Widget self.connect(self.importTalksWidget.csvRadioButton, SIGNAL('toggled(bool)'), self.toggle_import) self.connect(self.importTalksWidget.importButton, SIGNAL('clicked()'), self.import_talks) self.connect(self.importTalksWidget.cancelButton, SIGNAL('clicked()'), self.hide_import_talks_widget) self.importTalksWidget.setHidden(True) self.connect(self.importTalksWidget.csvFileSelectButton, SIGNAL('clicked()'), self.csv_file_select) self.connect(self.importTalksWidget.csvLineEdit, SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.importTalksWidget.rssLineEdit, SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.actionExportCsv, SIGNAL('triggered()'), self.export_talks_to_csv) self.connect(self.actionRemoveAll, SIGNAL('triggered()'), self.confirm_reset) # Command Buttons self.connect(self.commandButtons.addButton, SIGNAL('clicked()'), self.show_new_talk_popup) self.connect(self.commandButtons.removeButton, SIGNAL('clicked()'), self.remove_talk) self.connect(self.commandButtons.removeAllButton, SIGNAL('clicked()'), self.confirm_reset) self.connect(self.commandButtons.importButton, SIGNAL('clicked()'), self.show_import_talks_widget) self.connect(self.commandButtons.exportButton, SIGNAL('clicked()'), self.export_talks_to_csv) self.connect(self.commandButtons.searchButton, SIGNAL('clicked()'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('textEdited(QString)'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('returnPressed()'), self.search_talks) # Talk Details Buttons self.connect(self.talkDetailsWidget.saveButton, SIGNAL('clicked()'), self.update_talk) # Talk Details Widget self.connect(self.talkDetailsWidget.titleLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.presenterLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.categoryLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.eventLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.roomLineEdit, SIGNAL('textEdited(const QString)'), self.enable_save) self.connect(self.talkDetailsWidget.descriptionTextEdit, SIGNAL('modificationChanged(bool)'), self.enable_save) self.connect(self.talkDetailsWidget.dateEdit, SIGNAL('dateChanged(const QDate)'), self.enable_save) self.connect(self.talkDetailsWidget.startTimeEdit, SIGNAL('timeChanged(const QTime)'), self.enable_save) self.connect(self.talkDetailsWidget.endTimeEdit, SIGNAL('timeChanged(const QTime)'), self.enable_save) # New Talk Widget self.newTalkWidget.connect(self.newTalkWidget.addButton, SIGNAL('clicked()'), self.add_talk) self.newTalkWidget.connect(self.newTalkWidget.cancelButton, SIGNAL('clicked()'), self.newTalkWidget.reject) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break # Load Talk Database self.load_presentations_model() # Setup Autocompletion self.update_autocomplete_fields() self.talkDetailsWidget.saveButton.setEnabled(False)
def __init__(self): FreeseerApp.__init__(self) self.controller = RecordingController() self.config = self.controller.config self.db = self.controller.db self.resize(550, 450) # Setup custom widgets self.mainWidget = RecordingWidget() self.setCentralWidget(self.mainWidget) self.reportWidget = ReportDialog() self.reportWidget.setModal(True) self.clientWidget = ClientDialog(self.config.configdir, self.db) self.configToolApp = ConfigToolApp(self) self.configToolApp.setWindowModality(QtCore.Qt.ApplicationModal) self.configToolApp.setWindowFlags(QtCore.Qt.Dialog) self.talkEditorApp = TalkEditorApp(self) self.talkEditorApp.setWindowModality(QtCore.Qt.ApplicationModal) self.talkEditorApp.setWindowFlags(QtCore.Qt.Dialog) self.statusBar().addPermanentWidget(self.mainWidget.statusLabel) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.current_event = None self.current_room = None self.controller.set_window_id(self.mainWidget.previewWidget.winId()) self.controller.set_audio_feedback_handler(self.audio_feedback) # Set timer for recording how much time elapsed during a recording self.reset_timer() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.update_timer) # # Setup Menubar # # Build the options Menu, TalkEditor and ConfigTool self.menuOptions = QtGui.QMenu(self.menubar) self.menuOptions.setObjectName(_fromUtf8("menuOptions")) self.menubar.insertMenu(self.menuHelp.menuAction(), self.menuOptions) self.actionConfigTool = QtGui.QAction(self) self.actionConfigTool.setShortcut("Ctrl+C") self.actionConfigTool.setObjectName(_fromUtf8("actionConfigTool")) self.actionTalkEditor = QtGui.QAction(self) self.actionTalkEditor.setShortcut("Ctrl+E") self.actionTalkEditor.setObjectName(_fromUtf8("actionTalkEditor")) self.menuOptions.addAction(self.actionConfigTool) self.menuOptions.addAction(self.actionTalkEditor) folderIcon = QtGui.QIcon.fromTheme("folder") self.actionOpenVideoFolder = QtGui.QAction(self) self.actionOpenVideoFolder.setShortcut("Ctrl+O") self.actionOpenVideoFolder.setObjectName(_fromUtf8("actionOpenVideoFolder")) self.actionOpenVideoFolder.setIcon(folderIcon) self.actionReport = QtGui.QAction(self) self.actionReport.setObjectName(_fromUtf8("actionReport")) self.actionClient = QtGui.QAction(self) self.actionClient.setIcon(self.icon) # Actions self.menuFile.insertAction(self.actionExit, self.actionOpenVideoFolder) # Hide the controller client configuration screen for Freeseer 3.0.0 # release. This feature's not ready for public use so lets keep it # hidden for now. #self.menuFile.insertAction(self.actionExit, self.actionClient) self.menuHelp.addAction(self.actionReport) # --- End Menubar # # Systray Setup # self.systray = QtGui.QSystemTrayIcon(self.icon) self.systray.show() self.systray.menu = QtGui.QMenu() self.systray.setContextMenu(self.systray.menu) self.visibilityAction = QtGui.QAction(self) self.recordAction = QtGui.QAction(self) self.systray.menu.addAction(self.visibilityAction) self.systray.menu.addAction(self.recordAction) self.connect(self.visibilityAction, QtCore.SIGNAL('triggered()'), self.toggle_window_visibility) self.connect(self.recordAction, QtCore.SIGNAL('triggered()'), self.toggle_record_button) self.connect(self.systray, QtCore.SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self._icon_activated) # --- End Systray Setup # main tab connections self.connect(self.mainWidget.eventComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_rooms_from_event) self.connect(self.mainWidget.roomComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_dates_from_event_room) self.connect(self.mainWidget.dateComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_talks_from_date) self.connect(self.mainWidget.talkComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.set_talk_tooltip) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.standby) self.connect(self.mainWidget.recordPushButton, QtCore.SIGNAL('toggled(bool)'), self.record) self.connect(self.mainWidget.pauseToolButton, QtCore.SIGNAL('toggled(bool)'), self.pause) self.connect(self.mainWidget.audioFeedbackCheckbox, QtCore.SIGNAL('toggled(bool)'), self.toggle_audio_feedback) # Main Window Connections self.connect(self.actionConfigTool, QtCore.SIGNAL('triggered()'), self.open_configtool) self.connect(self.actionTalkEditor, QtCore.SIGNAL('triggered()'), self.open_talkeditor) self.connect(self.actionOpenVideoFolder, QtCore.SIGNAL('triggered()'), self.open_video_directory) self.connect(self.actionReport, QtCore.SIGNAL('triggered()'), self.show_report_widget) self.connect(self.actionClient, QtCore.SIGNAL('triggered()'), self.show_client_widget) # GUI Disabling/Enabling Connections self.connect(self.mainWidget.recordPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.pauseToolButton.setEnabled) #Client Connections self.connect(self.clientWidget.socket, QtCore.SIGNAL('readyRead()'), self.getAction) # # ReportWidget Connections # self.connect(self.reportWidget.reportButton, QtCore.SIGNAL("clicked()"), self.report) self.load_settings() # Setup spacebar key. self.mainWidget.recordPushButton.setShortcut(QtCore.Qt.Key_Space) self.mainWidget.recordPushButton.setFocus() self.retranslate()
def __init__(self, recordapp=None): FreeseerApp.__init__(self) self.recordapp = recordapp icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8(":/freeseer/logo.png")), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(960, 400) self.mainWidget = QWidget() self.mainLayout = QHBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.editorWidget = EditorWidget() self.editorWidget.editor.setColumnHidden(5, True) self.addTalkWidget = AddTalkWidget() self.mainLayout.addWidget(self.editorWidget) self.mainLayout.addWidget(self.addTalkWidget) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.config = Config(settings.configdir) self.db = QtDBConnector(settings.configdir) # # Setup Menubar # self.actionExportCsv = QAction(self) self.actionExportCsv.setObjectName(_fromUtf8("actionExportCsv")) # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) # --- End Menubar # # Talk Editor Connections # # Add Talk Widget self.connect(self.addTalkWidget.addButton, SIGNAL('clicked()'), self.add_talk) self.connect(self.addTalkWidget.cancelButton, SIGNAL('clicked()'), self.hide_add_talk_widget) self.addTalkWidget.setHidden(True) # Editor Widget self.connect(self.editorWidget.rssLineEdit, SIGNAL('returnPressed()'), self.editorWidget.rssPushButton.click) self.connect(self.editorWidget.rssPushButton, SIGNAL('clicked()'), self.add_talks_from_rss) self.connect(self.editorWidget.addButton, SIGNAL('clicked()'), self.show_add_talk_widget) self.connect(self.editorWidget.removeButton, SIGNAL('clicked()'), self.remove_talk) self.connect(self.editorWidget.clearButton, SIGNAL('clicked()'), self.confirm_reset) self.connect(self.editorWidget.closeButton, SIGNAL('clicked()'), self.close) # CSV Widget self.connect(self.editorWidget.csvLineEdit, SIGNAL('returnPressed()'), self.editorWidget.csvPushButton.click) self.connect(self.editorWidget.csvFileSelectButton, SIGNAL('clicked()'), self.csv_file_select) self.connect(self.editorWidget.csvPushButton, SIGNAL('clicked()'), self.add_talks_from_csv) self.connect(self.actionExportCsv, SIGNAL('triggered()'), self.export_talks_to_csv) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break self.load_presentations_model()
def __init__(self): FreeseerApp.__init__(self) self.resize(550, 450) self.talks_to_save = [] self.talks_to_delete = [] self.mainWidget = RecordingWidget() self.setCentralWidget(self.mainWidget) self.reportWidget = ReportDialog() self.reportWidget.setModal(True) self.statusBar().addPermanentWidget(self.mainWidget.statusLabel) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.config = Config(settings.configdir) self.db = QtDBConnector(settings.configdir) self.logger = Logger(settings.configdir) self.plugman = PluginManager(settings.configdir) self.media = Gstreamer(self.config, self.plugman, self.mainWidget.previewWidget.winId(), self.audio_feedback) # ClientDialog needs to be loaded after core to get the config directory self.clientWidget = ClientDialog(self.config.configdir, self.db) # Set timer for recording how much time elapsed during a recording self.reset_timer() self.timer = QtCore.QTimer(self) self.timer.timeout.connect(self.update_timer) # # Setup Menubar # folderIcon = QtGui.QIcon.fromTheme("folder") self.actionOpenVideoFolder = QtGui.QAction(self) self.actionOpenVideoFolder.setShortcut("Ctrl+O") self.actionOpenVideoFolder.setObjectName(_fromUtf8("actionOpenVideoFolder")) self.actionOpenVideoFolder.setIcon(folderIcon) self.actionReport = QtGui.QAction(self) self.actionReport.setObjectName(_fromUtf8("actionReport")) self.actionClient = QtGui.QAction(self) self.actionClient.setIcon(self.icon) # Actions self.menuFile.insertAction(self.actionExit, self.actionOpenVideoFolder) self.menuFile.insertAction(self.actionExit, self.actionClient) self.menuHelp.addAction(self.actionReport) # --- End Menubar # # Systray Setup # self.systray = QtGui.QSystemTrayIcon(self.icon) self.systray.show() self.systray.menu = QtGui.QMenu() self.systray.setContextMenu(self.systray.menu) self.visibilityAction = QtGui.QAction(self) self.recordAction = QtGui.QAction(self) self.systray.menu.addAction(self.visibilityAction) self.systray.menu.addAction(self.recordAction) self.connect(self.visibilityAction, QtCore.SIGNAL('triggered()'), self.toggle_window_visibility) self.connect(self.recordAction, QtCore.SIGNAL('triggered()'), self.toggle_record_button) self.connect(self.systray, QtCore.SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self._icon_activated) # --- End Systray Setup # main tab connections self.connect(self.mainWidget.eventComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_rooms_from_event) self.connect(self.mainWidget.roomComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_dates_from_event_room) self.connect(self.mainWidget.dateComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.load_talks_from_date) self.connect(self.mainWidget.talkComboBox, QtCore.SIGNAL('currentIndexChanged(const QString&)'), self.set_talk_tooltip) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.standby) self.connect(self.mainWidget.recordPushButton, QtCore.SIGNAL('toggled(bool)'), self.record) self.connect(self.mainWidget.pauseToolButton, QtCore.SIGNAL('toggled(bool)'), self.pause) self.connect(self.mainWidget.audioFeedbackCheckbox, QtCore.SIGNAL('toggled(bool)'), self.toggle_audio_feedback) # Main Window Connections #self.connect(self.actionOpenVideoFolder, QtCore.SIGNAL('triggered()'), self.open_video_directory) self.connect(self.actionReport, QtCore.SIGNAL('triggered()'), self.show_report_widget) self.connect(self.actionClient, QtCore.SIGNAL('triggered()'), self.show_client_widget) # GUI Disabling/Enabling Connections self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.standbyPushButton.setHidden) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.recordPushButton.setVisible) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.recordPushButton.setEnabled) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.pauseToolButton.setVisible) self.connect(self.mainWidget.recordPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.pauseToolButton.setEnabled) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.eventComboBox.setDisabled) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.roomComboBox.setDisabled) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.dateComboBox.setDisabled) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.talkComboBox.setDisabled) self.connect(self.mainWidget.standbyPushButton, QtCore.SIGNAL("toggled(bool)"), self.mainWidget.audioFeedbackCheckbox.setDisabled) #Client Connections self.connect(self.clientWidget.socket, QtCore.SIGNAL('readyRead()'), self.getAction) # # ReportWidget Connections # self.connect(self.reportWidget.reportButton, QtCore.SIGNAL("clicked()"), self.report) self.load_settings() # Setup spacebar key. self.mainWidget.recordPushButton.setShortcut(QtCore.Qt.Key_Space) self.mainWidget.recordPushButton.setFocus() self.retranslate()
def __init__(self, config, db): FreeseerApp.__init__(self) self.config = config self.db = db icon = QIcon() icon.addPixmap(QPixmap(':/freeseer/logo.png'), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(960, 600) # # Setup Layout # self.mainWidget = QWidget() self.mainLayout = QVBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.mainLayout.setAlignment(QtCore.Qt.AlignTop) # Add the Title Row (Use BOLD / Big Font) #self.titleLayout = QHBoxLayout() #self.backButton = QPushButton('Back to Recorder') #if backButton: # Only show the back button if requested by caller # self.titleLayout.addWidget(self.backButton) #self.titleLayout.addStretch() # Add custom widgets self.commandButtons = CommandButtons() self.tableView = QTableView() self.tableView.setSortingEnabled(True) self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.talkDetailsWidget = TalkDetailsWidget() self.importTalksWidget = ImportTalksWidget() self.mainLayout.addWidget(self.importTalksWidget) #self.mainLayout.addLayout(self.titleLayout) self.mainLayout.addWidget(self.commandButtons) self.mainLayout.addWidget(self.tableView) self.mainLayout.addWidget(self.talkDetailsWidget) self.mainLayout.addWidget(self.importTalksWidget) # --- End Layout # Initialize geometry, to be used for restoring window positioning. self.geometry = None # # Setup Menubar # self.actionExportCsv = QAction(self) self.actionExportCsv.setObjectName('actionExportCsv') self.actionRemoveAll = QAction(self) self.actionRemoveAll.setObjectName('actionRemoveAll') # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) self.menuFile.insertAction(self.actionExit, self.actionRemoveAll) # --- End Menubar # # TableView Connections # self.connect(self.tableView, SIGNAL('activated(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('selected(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('clicked(const QModelIndex)'), self.talk_selected) # Import Widget self.connect(self.importTalksWidget.csvRadioButton, SIGNAL('toggled(bool)'), self.toggle_import) self.connect(self.importTalksWidget.importButton, SIGNAL('clicked()'), self.import_talks) self.connect(self.importTalksWidget.cancelButton, SIGNAL('clicked()'), self.hide_import_talks_widget) self.importTalksWidget.setHidden(True) self.connect(self.importTalksWidget.csvFileSelectButton, QtCore.SIGNAL('clicked()'), self.csv_file_select) self.connect(self.importTalksWidget.csvLineEdit, QtCore.SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.importTalksWidget.rssLineEdit, QtCore.SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.actionExportCsv, QtCore.SIGNAL('triggered()'), self.export_talks_to_csv) self.connect(self.actionRemoveAll, QtCore.SIGNAL('triggered()'), self.confirm_reset) # Command Buttons self.connect(self.commandButtons.removeButton, SIGNAL('clicked()'), self.remove_talk) self.connect(self.commandButtons.removeAllButton, SIGNAL('clicked()'), self.confirm_reset) self.connect(self.commandButtons.importButton, SIGNAL('clicked()'), self.show_import_talks_widget) self.connect(self.commandButtons.exportButton, SIGNAL('clicked()'), self.export_talks_to_csv) self.connect(self.commandButtons.searchButton, SIGNAL('clicked()'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('textEdited(QString)'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('returnPressed()'), self.search_talks) # Talk Details Buttons self.connect(self.talkDetailsWidget.addButton, SIGNAL('clicked()'), self.clear_talk_details_widget) self.connect(self.talkDetailsWidget.saveButton, SIGNAL('clicked()'), self.add_talk) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break # Load Talk Database self.load_presentations_model() # Setup Autocompletion self.update_autocomple_fields()
def __init__(self, profile, config): FreeseerApp.__init__(self) # Load Config Stuff self.profile = profile self.config = config icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8(":/freeseer/logo.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.setWindowIcon(icon) # Initialize geometry, to be used for restoring window positioning. self.geometry = None self.mainWidget = ConfigToolWidget() self.setCentralWidget(self.mainWidget) self.currentWidget = None self.mainWidgetLayout = QtGui.QVBoxLayout() self.mainWidget.rightPanelWidget.setLayout(self.mainWidgetLayout) # Load all ConfigTool Widgets self.generalWidget = GeneralWidget() self.avWidget = AVWidget() self.pluginloaderWidget = PluginLoaderWidget() self.plugman = PluginManager(profile) # Custom Menu Items self.actionSaveProfile = QtGui.QAction(self) self.menuFile.insertAction(self.actionExit, self.actionSaveProfile) # # --- Language Related # # Fill in the langauges combobox and load the default language for language in self.languages: translator = QtCore.QTranslator( ) # Create a translator to translate Language Display Text translator.load(":/languages/%s" % language) language_display_text = translator.translate( "Translation", "Language Display Text") self.generalWidget.languageComboBox.addItem( language_display_text, language) # Load default language. actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break # --- End Language Related # connections self.connect(self.actionSaveProfile, QtCore.SIGNAL('triggered()'), self.show_save_profile_dialog) self.connect(self.mainWidget.closePushButton, QtCore.SIGNAL('clicked()'), self.close) self.connect(self.mainWidget.optionsTreeWidget, QtCore.SIGNAL('itemSelectionChanged()'), self.change_option) # # general tab connections # self.connect(self.generalWidget.languageComboBox, QtCore.SIGNAL('currentIndexChanged(int)'), self.set_default_language) self.connect(self.generalWidget.recordDirPushButton, QtCore.SIGNAL('clicked()'), self.browse_video_directory) self.connect(self.generalWidget.recordDirLineEdit, QtCore.SIGNAL('editingFinished()'), self.update_record_directory) self.connect(self.generalWidget.autoHideCheckBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_autohide) # # AV tab connections # self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_audiomixer_state) self.connect(self.avWidget.audioMixerComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_audiomixer) self.connect(self.avWidget.audioMixerSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_audio_mixer) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_videomixer_state) self.connect(self.avWidget.videoMixerComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_videomixer) self.connect(self.avWidget.videoMixerSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_video_mixer) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_record_to_file) self.connect(self.avWidget.fileComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_file_format) self.connect(self.avWidget.fileSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_file_format) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL('toggled(bool)'), self.toggle_record_to_stream) self.connect(self.avWidget.streamComboBox, QtCore.SIGNAL('activated(const QString&)'), self.change_stream_format) self.connect(self.avWidget.streamSetupPushButton, QtCore.SIGNAL('clicked()'), self.setup_stream_format) # GUI Disabling/Enabling Connections self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.audioMixerLabel.setEnabled) self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.audioMixerComboBox.setEnabled) self.connect(self.avWidget.audioGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.audioMixerSetupPushButton.setEnabled) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.videoMixerLabel.setEnabled) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.videoMixerComboBox.setEnabled) self.connect(self.avWidget.videoGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.videoMixerSetupPushButton.setEnabled) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.fileLabel.setEnabled) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.fileComboBox.setEnabled) self.connect(self.avWidget.fileGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.fileSetupPushButton.setEnabled) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.streamLabel.setEnabled) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.streamComboBox.setEnabled) self.connect(self.avWidget.streamGroupBox, QtCore.SIGNAL("toggled(bool)"), self.avWidget.streamSetupPushButton.setEnabled) self.retranslate() # load active plugin widgets self.load_plugin_widgets() # Start off with displaying the General Settings items = self.mainWidget.optionsTreeWidget.findItems( self.generalString, QtCore.Qt.MatchExactly) if len(items) > 0: item = items[0] self.mainWidget.optionsTreeWidget.setCurrentItem(item)
def __init__(self, config, db): FreeseerApp.__init__(self) self.config = config self.db = db icon = QIcon() icon.addPixmap(QPixmap(':/freeseer/logo.png'), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) self.resize(960, 600) # # Setup Layout # self.mainWidget = QWidget() self.mainLayout = QVBoxLayout() self.mainWidget.setLayout(self.mainLayout) self.setCentralWidget(self.mainWidget) self.mainLayout.setAlignment(QtCore.Qt.AlignTop) # Add the Title Row (Use BOLD / Big Font) #self.titleLayout = QHBoxLayout() #self.backButton = QPushButton('Back to Recorder') #if backButton: # Only show the back button if requested by caller # self.titleLayout.addWidget(self.backButton) #self.titleLayout.addStretch() # Add custom widgets self.commandButtons = CommandButtons() self.tableView = QTableView() self.tableView.setSortingEnabled(True) self.tableView.setSelectionBehavior(QAbstractItemView.SelectRows) self.talkDetailsWidget = TalkDetailsWidget() self.importTalksWidget = ImportTalksWidget() self.mainLayout.addWidget(self.importTalksWidget) #self.mainLayout.addLayout(self.titleLayout) self.mainLayout.addWidget(self.commandButtons) self.mainLayout.addWidget(self.tableView) self.mainLayout.addWidget(self.talkDetailsWidget) self.mainLayout.addWidget(self.importTalksWidget) # --- End Layout # Initialize geometry, to be used for restoring window positioning. self.geometry = None # # Setup Menubar # self.actionExportCsv = QAction(self) self.actionExportCsv.setObjectName('actionExportCsv') self.actionRemoveAll = QAction(self) self.actionRemoveAll.setObjectName('actionRemoveAll') # Actions self.menuFile.insertAction(self.actionExit, self.actionExportCsv) self.menuFile.insertAction(self.actionExit, self.actionRemoveAll) # --- End Menubar # # TableView Connections # self.connect(self.tableView, SIGNAL('activated(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('selected(const QModelIndex)'), self.talk_selected) self.connect(self.tableView, SIGNAL('clicked(const QModelIndex)'), self.talk_selected) # Import Widget self.connect(self.importTalksWidget.csvRadioButton, SIGNAL('toggled(bool)'), self.toggle_import) self.connect(self.importTalksWidget.importButton, SIGNAL('clicked()'), self.import_talks) self.connect(self.importTalksWidget.cancelButton, SIGNAL('clicked()'), self.hide_import_talks_widget) self.importTalksWidget.setHidden(True) self.connect(self.importTalksWidget.csvFileSelectButton, QtCore.SIGNAL('clicked()'), self.csv_file_select) self.connect(self.importTalksWidget.csvLineEdit, QtCore.SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.importTalksWidget.rssLineEdit, QtCore.SIGNAL('returnPressed()'), self.importTalksWidget.importButton.click) self.connect(self.actionExportCsv, QtCore.SIGNAL('triggered()'), self.export_talks_to_csv) self.connect(self.actionRemoveAll, QtCore.SIGNAL('triggered()'), self.confirm_reset) # Command Buttons self.connect(self.commandButtons.removeButton, SIGNAL('clicked()'), self.remove_talk) self.connect(self.commandButtons.removeAllButton, SIGNAL('clicked()'), self.confirm_reset) self.connect(self.commandButtons.importButton, SIGNAL('clicked()'), self.show_import_talks_widget) self.connect(self.commandButtons.exportButton, SIGNAL('clicked()'), self.export_talks_to_csv) self.connect(self.commandButtons.searchButton, SIGNAL('clicked()'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('textEdited(QString)'), self.search_talks) self.connect(self.commandButtons.searchLineEdit, SIGNAL('returnPressed()'), self.search_talks) # Talk Details Buttons self.connect(self.talkDetailsWidget.addButton, SIGNAL('clicked()'), self.confirm_add) self.connect(self.talkDetailsWidget.saveButton, SIGNAL('clicked()'), self.add_talk) # Load default language actions = self.menuLanguage.actions() for action in actions: if action.data().toString() == self.config.default_language: action.setChecked(True) self.translate(action) break # Load Talk Database self.load_presentations_model() # Setup Autocompletion self.update_autocomple_fields()