diff --git a/sftp/main.py b/sftp/main.py index 45967fb..2cd023e 100644 --- a/sftp/main.py +++ b/sftp/main.py @@ -21,6 +21,8 @@ def showSettingsUI(self, parentWidget): self.settingsDialog = self.uil.load(QFile(workingDir + "/settings.ui"), parentWidget) self.settingsDialog.group_server.combo_auth.connect("currentIndexChanged(QString)", self.authMethodChanged) self.settingsDialog.group_server.button_browse.connect("clicked()", self.browseForKeyfile) + self.settingsDialog.group_location.input_url.connect("textChanged(QString)", self.urlFormatEdited) + self.settingsDialog.group_location.checkbox_url_extension.connect("stateChanged(int)", self.urlExtensionEdited) self.settingsDialog.group_location.input_name.connect("textChanged(QString)", self.nameFormatEdited) self.settingsDialog.connect("accepted()", self.saveSettings) self.loadSettings() @@ -32,8 +34,9 @@ def showSettingsUI(self, parentWidget): self.settingsDialog.group_server.input_keyfile.text = self.keyfile self.settingsDialog.group_server.input_passphrase.text = self.passphrase self.settingsDialog.group_location.input_folder.text = self.folder - self.settingsDialog.group_location.input_url.text = self.url self.settingsDialog.group_location.input_name.text = self.nameFormat + self.settingsDialog.group_location.checkbox_url_extension.checked = self.urlExtension + self.settingsDialog.group_location.input_url.text = self.url self.settingsDialog.group_server.combo_auth.setCurrentIndex(self.settingsDialog.group_server.combo_auth.findText(self.authMethod)) self.settingsDialog.open() @@ -48,6 +51,7 @@ def loadSettings(self): self.keyfile = settings.value("keyfile", "") self.passphrase = settings.value("passphrase", "") self.url = settings.value("url", "") + self.urlExtension = settings.value("url-extension", "true") == "true" self.folder = settings.value("folder", "") self.nameFormat = settings.value("name-format", "Screenshot at %H-%M-%S") self.authMethod = settings.value("auth-method", "Password") @@ -65,6 +69,7 @@ def saveSettings(self): settings.setValue("keyfile", self.settingsDialog.group_server.input_keyfile.text) settings.setValue("passphrase", self.settingsDialog.group_server.input_passphrase.text) settings.setValue("url", self.settingsDialog.group_location.input_url.text) + settings.setValue("url-extension", self.settingsDialog.group_location.checkbox_url_extension.isChecked()) settings.setValue("folder", self.settingsDialog.group_location.input_folder.text) settings.setValue("name-format", self.settingsDialog.group_location.input_name.text) settings.setValue("auth-method", self.settingsDialog.group_server.combo_auth.currentText) @@ -142,7 +147,12 @@ def upload(self, screenshot, name): sftp.close() transport.close() if self.url: - ScreenCloud.setUrl(self.url + ScreenCloud.formatFilename(name)) + url = self.url + ScreenCloud.formatFilename(name) + if not self.urlExtension: + last_dot = url.rfind(".") + if last_dot != -1: + url = url[:last_dot] + ScreenCloud.setUrl(url) return True def authMethodChanged(self, method): @@ -154,5 +164,17 @@ def browseForKeyfile(self): if filename: self.settingsDialog.group_server.input_keyfile.setText(filename) + def urlFormatEdited(self, urlFormat): + url = urlFormat + self.settingsDialog.group_location.label_name_example.text + if not self.settingsDialog.group_location.checkbox_url_extension.isChecked(): + last_dot = url.rfind(".") + if last_dot != -1: + url = url[:last_dot] + self.settingsDialog.group_location.label_url_example.setText(url) + + def urlExtensionEdited(self, urlExtension): + self.urlFormatEdited(self.settingsDialog.group_location.input_url.text) + def nameFormatEdited(self, nameFormat): - self.settingsDialog.group_location.label_example.setText(ScreenCloud.formatFilename(nameFormat)) + self.settingsDialog.group_location.label_name_example.setText(ScreenCloud.formatFilename(nameFormat)) + self.urlFormatEdited(self.settingsDialog.group_location.input_url.text) diff --git a/sftp/settings.ui b/sftp/settings.ui index e986cfe..5472ca5 100644 --- a/sftp/settings.ui +++ b/sftp/settings.ui @@ -165,45 +165,73 @@ + + + + URL: + + + + + + + Example: http://example.com/imgs/ + + + + + + + True + + + - + - + Include file extension in URL - - + + - Result: + URL result: - - + + ex - + Name: - - + + - URL: + - - - - Example: http://example.com/imgs/ + + + + Name result: + + + + + + + ex