about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gui/KCC.ui5
-rw-r--r--kindlecomicconverter/KCC_gui.py53
-rw-r--r--kindlecomicconverter/KCC_ui.py1
-rw-r--r--kindlecomicconverter/metadata.py4
4 files changed, 40 insertions, 23 deletions
diff --git a/gui/KCC.ui b/gui/KCC.ui
index 1c49bc2..09a7b92 100644
--- a/gui/KCC.ui
+++ b/gui/KCC.ui
@@ -320,6 +320,9 @@
          <property name="text">
           <string>Editor</string>
          </property>
+         <property name="toolTip">
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p style='white-space:pre'&gt;Shift+Click to edit directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+         </property>
          <property name="icon">
           <iconset resource="KCC.qrc">
            <normaloff>:/Other/icons/editor.png</normaloff>:/Other/icons/editor.png</iconset>
@@ -454,7 +457,7 @@
           </font>
          </property>
          <property name="toolTip">
-          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p  style='white-space:pre'&gt;Shift+Click to select the output directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p style='white-space:pre'&gt;Shift+Click to select the output directory.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
          </property>
          <property name="text">
           <string>Convert</string>
diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py
index 9191a49..a98585a 100644
--- a/kindlecomicconverter/KCC_gui.py
+++ b/kindlecomicconverter/KCC_gui.py
@@ -500,28 +500,38 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
                 GUI.jobList.scrollToBottom()
 
     def selectFileMetaEditor(self):
-        if self.UnRAR:
-            if self.sevenza:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz *.cbr *.cb7)')
-            else:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz *.cbr)')
+        sname = ''
+        if QtWidgets.QApplication.keyboardModifiers() == QtCore.Qt.ShiftModifier:
+            dname = QtWidgets.QFileDialog.getExistingDirectory(MW, 'Select directory', self.lastPath)
+            if dname != '':
+                sname = os.path.join(dname, 'ComicInfo.xml')
+                if sys.platform.startswith('win'):
+                    sname = sname.replace('/', '\\')
+                self.lastPath = os.path.abspath(sname)
         else:
-            if self.sevenza:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz *.cb7)')
-            else:
-                fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
-                                                              'Comic (*.cbz)')
-        if fname[0] != '':
-            if sys.platform.startswith('win'):
-                fname = fname[0].replace('/', '\\')
+            if self.UnRAR:
+                if self.sevenza:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz *.cbr *.cb7)')
+                else:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz *.cbr)')
             else:
-                fname = fname[0]
-            self.lastPath = os.path.abspath(os.path.join(fname, os.pardir))
+                if self.sevenza:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz *.cb7)')
+                else:
+                    fname = QtWidgets.QFileDialog.getOpenFileName(MW, 'Select file', self.lastPath,
+                                                                  'Comic (*.cbz)')
+            if fname[0] != '':
+                if sys.platform.startswith('win'):
+                    sname = fname[0].replace('/', '\\')
+                else:
+                    sname = fname[0]
+                self.lastPath = os.path.abspath(os.path.join(sname, os.pardir))
+        if sname != '':
             try:
-                self.editor.loadData(fname)
+                self.editor.loadData(sname)
             except Exception as err:
                 _, _, traceback = sys.exc_info()
                 GUI.sentry.captureException()
@@ -1109,7 +1119,10 @@ class KCCGUI_MetaEditor(KCC_ui_editor.Ui_editorDialog):
         for field in (self.writerLine, self.pencillerLine, self.inkerLine, self.coloristLine):
             field.setText(', '.join(self.parser.data[field.objectName().capitalize()[:-4] + 's']))
         if self.seriesLine.text() == '':
-            self.seriesLine.setText(file.split('\\')[-1].split('/')[-1].split('.')[0])
+            if file.endswith('.xml'):
+                self.seriesLine.setText(file.split('\\')[-2])
+            else:
+                self.seriesLine.setText(file.split('\\')[-1].split('/')[-1].split('.')[0])
 
     def saveData(self):
         for field in (self.volumeLine, self.numberLine, self.muidLine):
diff --git a/kindlecomicconverter/KCC_ui.py b/kindlecomicconverter/KCC_ui.py
index ef8fcbf..b70f3ef 100644
--- a/kindlecomicconverter/KCC_ui.py
+++ b/kindlecomicconverter/KCC_ui.py
@@ -258,6 +258,7 @@ class Ui_mainWindow(object):
         self.colorBox.setText(_translate("mainWindow", "Color mode"))
         self.gammaLabel.setText(_translate("mainWindow", "Gamma: Auto"))
         self.editorButton.setText(_translate("mainWindow", "Editor"))
+        self.editorButton.setToolTip(_translate("mainWindow", "<html><head/><body><p  style=\'white-space:pre\'>Shift+Click to edit directory.</p></body></html>"))
         self.wikiButton.setText(_translate("mainWindow", "Wiki"))
         self.directoryButton.setToolTip(_translate("mainWindow", "<html><head/><body><p style=\'white-space:pre\'>Add directory containing JPG, PNG or GIF files to queue.<br/><span style=\" font-weight:600;\">CBR, CBZ and CB7 files inside will not be processed!</span></p></body></html>"))
         self.directoryButton.setText(_translate("mainWindow", "Add directory"))
diff --git a/kindlecomicconverter/metadata.py b/kindlecomicconverter/metadata.py
index f2cf488..714dcd1 100644
--- a/kindlecomicconverter/metadata.py
+++ b/kindlecomicconverter/metadata.py
@@ -43,10 +43,10 @@ class MetadataParser:
                      'Bookmarks': []}
         self.rawdata = None
         self.compressor = None
-        if self.source.endswith('.xml'):
+        if self.source.endswith('.xml') and os.path.exists(self.source):
             self.rawdata = parse(self.source)
             self.parseXML()
-        else:
+        elif not self.source.endswith('.xml'):
             if is_zipfile(self.source):
                 self.compressor = 'zip'
                 with ZipFile(self.source) as zip_file: