def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) # Set window title to start with self.setWindowTitle(programinfo.NAME + " " + programinfo.VERSION) # First set the menu actions self.mnu_action_load_images.triggered.connect(self.loadimages) self.action_Quit.triggered.connect(self.quit_application) app.aboutToQuit.connect(self.quit_application) #--- Extra menu self.mnu_action_modifydatetime.triggered.connect(self.modify_datetime) self.mnu_action_create_args.triggered.connect(self.create_args) self.mnu_action_export_metadata.triggered.connect(self.export_metadata) self.mnu_action_remove_metadata.triggered.connect(self.remove_metadata) self.mnu_action_date_to_DateTimeOriginal.triggered.connect( self.date_to_datetimeoriginal) self.mnu_action_repair_jpg.triggered.connect(self.repair_jpg_metadata) self.mnu_action_copytoxmp.triggered.connect(self.copymetadatatoxmp) self.mnu_action_renaming.triggered.connect(self.rename_photos) #self.mnu_action_define_lens.triggered.connect(self.lensdialog) #self.menuExtra.removeAction(self.mnu_action_renaming) #--- help menu self.mnu_action_pyexiftoolgui_home.triggered.connect( self.open_pyexiftoolgui_homepage) self.mnu_action_exiftool.triggered.connect(self.open_exiftool_homepage) self.mnu_action_manual.triggered.connect(self.open_manual) #self.mnu_action_mapcoordinates_tab.triggered.connect(self.mapcoordinates_help) self.mnu_action_license.triggered.connect(self.show_license) self.mnu_action_Donate.triggered.connect(self.open_donate_page) self.mnu_action_Info.triggered.connect(self.show_about_window) # Set extra actions for context menu (others taken from normal menu) self.imagereference = QAction( "Select photo as reference for \"Extra\" menu", self, triggered=self.reference_image) self.displayphoto = QAction("Display selected photo", self, triggered=self.showimage) # Load several views, buttons, comboboxes, spinboxes and labels from main screen self.btn_loadimages.clicked.connect(self.loadimages) self.showimagebutton.clicked.connect(self.showimage) self.showimagebutton.setEnabled(False) self.statusbar.showMessage("") self.progressbar.hide() self.comboBox_languages.currentIndexChanged.connect( self.comboBox_languageschanged) # Load several buttons from the Edit -> GPS tab self.dec2dmsbutton.clicked.connect(self.convertd2dms) self.dms2decbutton.clicked.connect(self.convertdms2d) self.btn_resetgps.clicked.connect(self.clear_gps_fields) self.btn_copy_calc_to_gps.clicked.connect(self.copy_calc_to_gpsinput) self.btn_gpshelp.clicked.connect(self.gps_help) self.btn_gps_copyfrom.clicked.connect(self.copygpsfromselected) self.btn_gps_copyfrom.setEnabled(False) self.btn_savegps.clicked.connect(self.savegpsdata) self.btn_savegps.setEnabled(False) self.btn_mapcoordinates.clicked.connect(self.open_mapcoordinates) # Load several buttons from the Edit -> EXIF tab self.btn_exifhelp.clicked.connect(self.exif_help) self.btn_exif_copyfrom.clicked.connect(self.copyexiffromselected) self.btn_exif_copyfrom.setEnabled(False) self.btn_saveexif.clicked.connect(self.saveexifdata) self.btn_saveexif.setEnabled(False) self.btn_resetexif.clicked.connect(self.clear_exif_fields) self.btn_copy_exif_defaults.clicked.connect(self.exif_defaults) # Load several buttons from the Edit -> xmp tab self.btn_xmphelp.clicked.connect(self.xmp_help) self.btn_xmp_copyfrom.clicked.connect(self.copyxmpfromselected) self.btn_xmp_copyfrom.setEnabled(False) self.btn_savexmp.clicked.connect(self.savexmpdata) self.btn_savexmp.setEnabled(False) self.btn_resetxmp.clicked.connect(self.clear_xmp_fields) self.btn_copy_xmp_defaults.clicked.connect(self.xmp_defaults) # Load several buttons from the Edit -> GPano tab self.btn_gpanohelp.clicked.connect(self.gpano_help) self.btn_gpano_copyfrom.clicked.connect(self.copygpanofromselected) self.btn_gpano_copyfrom.setEnabled(False) self.btn_savegpano.clicked.connect(self.savegpanodata) self.btn_savegpano.setEnabled(False) self.btn_resetgpano.clicked.connect(self.clear_gpano_fields) # Load several buttons from the Edit -> Geotagging tab self.btn_geotagging_help.clicked.connect(self.geotagging_help) self.btn_geotag_img_browse.clicked.connect(self.geotag_source_folder) self.btn_geotag_gps_track_browse.clicked.connect(self.geotag_gps_file) self.btn_write_geotaginfo.clicked.connect(self.write_geotag_info) self.btn_write_geotaginfo.setEnabled(False) # Load several buttons from the Edit -> lens tab self.chk_predefined_lenses.clicked.connect( self.check_self_defined_lenses) self.btn_lenshelp.clicked.connect(self.lens_help) self.btn_lens_copyfrom.clicked.connect(self.copylensfromselected) self.btn_lens_copyfrom.setEnabled(False) self.btn_savelens.clicked.connect(self.savelensdata) self.btn_savelens.setEnabled(False) self.btn_resetlens.clicked.connect(self.clear_lens_fields) self.btn_save_lens.clicked.connect(self.savelens) self.btn_update_lens.clicked.connect(self.updatelens) self.btn_delete_lens.clicked.connect(self.deletelens) self.predefined_lenses.currentIndexChanged.connect( self.definedlenschanged) # For the time being hide the button #self.btn_copy_lens_defaults.setVisible(False) # Load several buttons from the Edit -> Your commands tab self.btn_yourcommands_clearinput.clicked.connect( self.clear_yourcommands_input) self.btn_yourcommands_clearoutput.clicked.connect( self.clear_yourcommands_output) self.btn_yourcommands_go.clicked.connect(self.yourcommands_go) self.btn_yourcommands_help.clicked.connect(self.yourcommands_help) # Load several buttons from the Preferences tab self.btn_preferences_save.clicked.connect(self.preferences_save) self.btn_preferenceshelp.clicked.connect(self.preferences_help) self.btn_choose_exiftool.clicked.connect(self.select_exiftool) self.btn_choose_defstartupfolder.clicked.connect( self.select_defstartupfolder) #------------------------------------------------------------------------ # Define a few globals and variables self.DebugMsg = False self.allDebugMsg = False self.logging = "" self.logtofile = 0 # self.tmpworkdir = tempfile.gettempdir() +"/pyGPSTtmp" self.OSplatform = platform.system() #petgfunctions.read_config(self) petgfilehandling.read_xml_config(self) # First clean up and recreate our temporary workspace # petgfunctions.remove_workspace( self ) # try: # fldr = os.mkdir(self.tmpworkdir) # except: # if self.logtofile: # logging.info(self.tmpworkdir + " already exists.") #------------------------------------------------------------------------ # Initialize file paths self.realfile_dir = os.path.dirname(os.path.abspath(__file__)) self.parent_dir = os.path.dirname(self.realfile_dir) self.ui_dir = os.path.join(self.realfile_dir, "ui") #------------------------------------------------------------------------ # Start up functions # OSplatform, img_converter, enfuseprg, aisprg = petgfunctions.startup_checks(self) # self.OSplatform = OSplatform # if self.allDebugMsg: # ret = QMessageBox.about(self, "returned check values", # "platform: %s\nconverter: %s\nenfuse: %s\nais: %s" # % (OSplatform, img_converter, enfuseprg, aisprg)) # Startup check for available tools self.exiftoolversion = "0.00" petgfunctions.tool_check(self) # Now that we know that we have exiftool version and languages available split the languages petgfunctions.exitool_languages(self) # Initialize Combobox on lens tab with loaded lenses (if any) self.lens_current_index = '' # We need this later when updating or deleting lenses petgfilehandling.read_defined_lenses(self, qApp) # Initialize Combobox mass change tab '''self.grouplist = [
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) # Set window title to start with self.setWindowTitle(programinfo.NAME + " " + programinfo.VERSION ) # First set the menu actions self.mnu_action_load_images.triggered.connect(self.loadimages) self.action_Quit.triggered.connect(self.quit_application) app.aboutToQuit.connect(self.quit_application) #--- Extra menu self.mnu_action_modifydatetime.triggered.connect(self.modify_datetime) self.mnu_action_create_args.triggered.connect(self.create_args) self.mnu_action_export_metadata.triggered.connect(self.export_metadata) self.mnu_action_remove_metadata.triggered.connect(self.remove_metadata) self.mnu_action_date_to_DateTimeOriginal.triggered.connect(self.date_to_datetimeoriginal) self.mnu_action_repair_jpg.triggered.connect(self.repair_jpg_metadata) self.mnu_action_copytoxmp.triggered.connect(self.copymetadatatoxmp) self.mnu_action_renaming.triggered.connect(self.rename_photos) #self.mnu_action_define_lens.triggered.connect(self.lensdialog) #self.menuExtra.removeAction(self.mnu_action_renaming) #--- help menu self.mnu_action_pyexiftoolgui_home.triggered.connect(self.open_pyexiftoolgui_homepage) self.mnu_action_exiftool.triggered.connect(self.open_exiftool_homepage) self.mnu_action_manual.triggered.connect(self.open_manual) #self.mnu_action_mapcoordinates_tab.triggered.connect(self.mapcoordinates_help) self.mnu_action_license.triggered.connect(self.show_license) self.mnu_action_Donate.triggered.connect(self.open_donate_page) self.mnu_action_Info.triggered.connect(self.show_about_window) # Set extra actions for context menu (others taken from normal menu) self.imagereference = QAction("Select photo as reference for \"Extra\" menu", self, triggered = self.reference_image) self.displayphoto = QAction("Display selected photo", self, triggered = self.showimage) # Load several views, buttons, comboboxes, spinboxes and labels from main screen self.btn_loadimages.clicked.connect(self.loadimages) self.showimagebutton.clicked.connect(self.showimage) self.showimagebutton.setEnabled(False) self.statusbar.showMessage("") self.progressbar.hide() self.comboBox_languages.currentIndexChanged.connect(self.comboBox_languageschanged) # Load several buttons from the Edit -> GPS tab self.dec2dmsbutton.clicked.connect(self.convertd2dms) self.dms2decbutton.clicked.connect(self.convertdms2d) self.btn_resetgps.clicked.connect(self.clear_gps_fields) self.btn_copy_calc_to_gps.clicked.connect(self.copy_calc_to_gpsinput) self.btn_gpshelp.clicked.connect(self.gps_help) self.btn_gps_copyfrom.clicked.connect(self.copygpsfromselected) self.btn_gps_copyfrom.setEnabled(False) self.btn_savegps.clicked.connect(self.savegpsdata) self.btn_savegps.setEnabled(False) self.btn_mapcoordinates.clicked.connect(self.open_mapcoordinates) # Load several buttons from the Edit -> EXIF tab self.btn_exifhelp.clicked.connect(self.exif_help) self.btn_exif_copyfrom.clicked.connect(self.copyexiffromselected) self.btn_exif_copyfrom.setEnabled(False) self.btn_saveexif.clicked.connect(self.saveexifdata) self.btn_saveexif.setEnabled(False) self.btn_resetexif.clicked.connect(self.clear_exif_fields) self.btn_copy_exif_defaults.clicked.connect(self.exif_defaults) # Load several buttons from the Edit -> xmp tab self.btn_xmphelp.clicked.connect(self.xmp_help) self.btn_xmp_copyfrom.clicked.connect(self.copyxmpfromselected) self.btn_xmp_copyfrom.setEnabled(False) self.btn_savexmp.clicked.connect(self.savexmpdata) self.btn_savexmp.setEnabled(False) self.btn_resetxmp.clicked.connect(self.clear_xmp_fields) self.btn_copy_xmp_defaults.clicked.connect(self.xmp_defaults) # Load several buttons from the Edit -> GPano tab self.btn_gpanohelp.clicked.connect(self.gpano_help) self.btn_gpano_copyfrom.clicked.connect(self.copygpanofromselected) self.btn_gpano_copyfrom.setEnabled(False) self.btn_savegpano.clicked.connect(self.savegpanodata) self.btn_savegpano.setEnabled(False) self.btn_resetgpano.clicked.connect(self.clear_gpano_fields) # Load several buttons from the Edit -> Geotagging tab self.btn_geotagging_help.clicked.connect(self.geotagging_help) self.btn_geotag_img_browse.clicked.connect(self.geotag_source_folder) self.btn_geotag_gps_track_browse.clicked.connect(self.geotag_gps_file) self.btn_write_geotaginfo.clicked.connect(self.write_geotag_info) self.btn_write_geotaginfo.setEnabled(False) # Load several buttons from the Edit -> lens tab self.chk_predefined_lenses.clicked.connect(self.check_self_defined_lenses) self.btn_lenshelp.clicked.connect(self.lens_help) self.btn_lens_copyfrom.clicked.connect(self.copylensfromselected) self.btn_lens_copyfrom.setEnabled(False) self.btn_savelens.clicked.connect(self.savelensdata) self.btn_savelens.setEnabled(False) self.btn_resetlens.clicked.connect(self.clear_lens_fields) self.btn_save_lens.clicked.connect(self.savelens) self.btn_update_lens.clicked.connect(self.updatelens) self.btn_delete_lens.clicked.connect(self.deletelens) self.predefined_lenses.currentIndexChanged.connect(self.definedlenschanged) # For the time being hide the button #self.btn_copy_lens_defaults.setVisible(False) # Load several buttons from the Edit -> Your commands tab self.btn_yourcommands_clearinput.clicked.connect(self.clear_yourcommands_input) self.btn_yourcommands_clearoutput.clicked.connect(self.clear_yourcommands_output) self.btn_yourcommands_go.clicked.connect(self.yourcommands_go) self.btn_yourcommands_help.clicked.connect(self.yourcommands_help) # Load several buttons from the Preferences tab self.btn_preferences_save.clicked.connect(self.preferences_save) self.btn_preferenceshelp.clicked.connect(self.preferences_help) self.btn_choose_exiftool.clicked.connect(self.select_exiftool) self.btn_choose_defstartupfolder.clicked.connect(self.select_defstartupfolder) #------------------------------------------------------------------------ # Define a few globals and variables self.DebugMsg = False self.allDebugMsg = False self.logging = "" self.logtofile = 0 # self.tmpworkdir = tempfile.gettempdir() +"/pyGPSTtmp" self.OSplatform = platform.system() #petgfunctions.read_config(self) petgfilehandling.read_xml_config(self) # First clean up and recreate our temporary workspace # petgfunctions.remove_workspace( self ) # try: # fldr = os.mkdir(self.tmpworkdir) # except: # if self.logtofile: # logging.info(self.tmpworkdir + " already exists.") #------------------------------------------------------------------------ # Initialize file paths self.realfile_dir = os.path.dirname(os.path.abspath(__file__)) self.parent_dir = os.path.dirname(self.realfile_dir) self.ui_dir = os.path.join(self.realfile_dir, "ui") #------------------------------------------------------------------------ # Start up functions # OSplatform, img_converter, enfuseprg, aisprg = petgfunctions.startup_checks(self) # self.OSplatform = OSplatform # if self.allDebugMsg: # ret = QMessageBox.about(self, "returned check values", # "platform: %s\nconverter: %s\nenfuse: %s\nais: %s" # % (OSplatform, img_converter, enfuseprg, aisprg)) # Startup check for available tools self.exiftoolversion = "0.00" petgfunctions.tool_check(self) # Now that we know that we have exiftool version and languages available split the languages petgfunctions.exitool_languages(self) # Initialize Combobox on lens tab with loaded lenses (if any) self.lens_current_index = '' # We need this later when updating or deleting lenses petgfilehandling.read_defined_lenses(self, qApp) # Initialize Combobox mass change tab '''self.grouplist = [