diff options
-rw-r--r-- | KCC-OSX.ui | 38 | ||||
-rw-r--r-- | KCC.qrc | 1 | ||||
-rw-r--r-- | KCC.ui | 49 | ||||
-rw-r--r-- | icons/Other.png | bin | 0 -> 1504 bytes | |||
-rw-r--r-- | kcc/KCC_gui.py | 116 | ||||
-rw-r--r-- | kcc/KCC_rc.py | 117 | ||||
-rw-r--r-- | kcc/KCC_ui.py | 22 | ||||
-rwxr-xr-x | kcc/comic2ebook.py | 5 | ||||
-rwxr-xr-x | kcc/image.py | 6 |
9 files changed, 219 insertions, 135 deletions
diff --git a/KCC-OSX.ui b/KCC-OSX.ui index 9f95c68..e935245 100644 --- a/KCC-OSX.ui +++ b/KCC-OSX.ui @@ -444,7 +444,7 @@ p, li { white-space: pre-wrap; } <rect> <x>5</x> <y>10</y> - <width>156</width> + <width>210</width> <height>41</height> </rect> </property> @@ -465,9 +465,9 @@ p, li { white-space: pre-wrap; } <widget class="QPushButton" name="AdvModeButton"> <property name="geometry"> <rect> - <x>160</x> + <x>207</x> <y>10</y> - <width>101</width> + <width>210</width> <height>41</height> </rect> </property> @@ -485,27 +485,6 @@ p, li { white-space: pre-wrap; } <string>Advanced</string> </property> </widget> - <widget class="QPushButton" name="ExpertModeButton"> - <property name="geometry"> - <rect> - <x>260</x> - <y>10</y> - <width>157</width> - <height>41</height> - </rect> - </property> - <property name="font"> - <font> - <pointsize>12</pointsize> - </font> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Expert</string> - </property> - </widget> <widget class="QFrame" name="OptionsAdvancedGamma"> <property name="enabled"> <bool>true</bool> @@ -659,7 +638,7 @@ p, li { white-space: pre-wrap; } </font> </property> <property name="toolTip"> - <string>Device profile width will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="text"> <string>Custom width: </string> @@ -692,7 +671,7 @@ p, li { white-space: pre-wrap; } <bool>false</bool> </property> <property name="toolTip"> - <string>Device profile width will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="inputMask"> <string>0000; </string> @@ -712,7 +691,7 @@ p, li { white-space: pre-wrap; } </font> </property> <property name="toolTip"> - <string>Device profile height will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="text"> <string>Custom height: </string> @@ -745,7 +724,7 @@ p, li { white-space: pre-wrap; } <bool>false</bool> </property> <property name="toolTip"> - <string>Device profile height will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="inputMask"> <string>0000; </string> @@ -759,8 +738,8 @@ p, li { white-space: pre-wrap; } </widget> </widget> <zorder>BasicModeButton</zorder> - <zorder>ExpertModeButton</zorder> <zorder>AdvModeButton</zorder> + <zorder>ProgressBar</zorder> <zorder>JobList</zorder> <zorder>OptionsAdvanced</zorder> <zorder>DeviceBox</zorder> @@ -771,7 +750,6 @@ p, li { white-space: pre-wrap; } <zorder>ClearButton</zorder> <zorder>OptionsBasic</zorder> <zorder>OptionsAdvancedGamma</zorder> - <zorder>ProgressBar</zorder> <zorder>OptionsExpert</zorder> </widget> <action name="ActionBasic"> diff --git a/KCC.qrc b/KCC.qrc index 01fe5b2..07f771d 100644 --- a/KCC.qrc +++ b/KCC.qrc @@ -3,6 +3,7 @@ <file>icons/comic2ebook.png</file> </qresource> <qresource prefix="Devices"> + <file>icons/Other.png</file> <file>icons/Kindle.png</file> </qresource> <qresource prefix="Formats"> diff --git a/KCC.ui b/KCC.ui index 664cad8..ee67fc1 100644 --- a/KCC.ui +++ b/KCC.ui @@ -394,7 +394,7 @@ p, li { white-space: pre-wrap; } <rect> <x>10</x> <y>10</y> - <width>141</width> + <width>195</width> <height>32</height> </rect> </property> @@ -413,9 +413,9 @@ p, li { white-space: pre-wrap; } <widget class="QPushButton" name="AdvModeButton"> <property name="geometry"> <rect> - <x>160</x> + <x>217</x> <y>10</y> - <width>91</width> + <width>195</width> <height>32</height> </rect> </property> @@ -431,27 +431,6 @@ p, li { white-space: pre-wrap; } <string>Advanced</string> </property> </widget> - <widget class="QPushButton" name="ExpertModeButton"> - <property name="geometry"> - <rect> - <x>260</x> - <y>10</y> - <width>151</width> - <height>32</height> - </rect> - </property> - <property name="font"> - <font> - <pointsize>9</pointsize> - </font> - </property> - <property name="focusPolicy"> - <enum>Qt::NoFocus</enum> - </property> - <property name="text"> - <string>Expert</string> - </property> - </widget> <widget class="QFrame" name="OptionsAdvancedGamma"> <property name="enabled"> <bool>true</bool> @@ -583,7 +562,7 @@ p, li { white-space: pre-wrap; } <item row="0" column="0"> <widget class="QLabel" name="wLabel"> <property name="toolTip"> - <string>Device profile width will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="text"> <string>Custom width: </string> @@ -611,7 +590,7 @@ p, li { white-space: pre-wrap; } <bool>false</bool> </property> <property name="toolTip"> - <string>Device profile width will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="inputMask"> <string>0000; </string> @@ -624,7 +603,7 @@ p, li { white-space: pre-wrap; } <item row="0" column="2"> <widget class="QLabel" name="hLabel"> <property name="toolTip"> - <string>Device profile height will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="text"> <string>Custom height: </string> @@ -652,7 +631,7 @@ p, li { white-space: pre-wrap; } <bool>false</bool> </property> <property name="toolTip"> - <string>Device profile height will be overwritten by this value.</string> + <string>Resolution of target device.</string> </property> <property name="inputMask"> <string>0000; </string> @@ -665,6 +644,20 @@ p, li { white-space: pre-wrap; } </layout> </widget> </widget> + <zorder>OptionsAdvanced</zorder> + <zorder>DeviceBox</zorder> + <zorder>FormatBox</zorder> + <zorder>ConvertButton</zorder> + <zorder>DirectoryButton</zorder> + <zorder>FileButton</zorder> + <zorder>ClearButton</zorder> + <zorder>OptionsBasic</zorder> + <zorder>JobList</zorder> + <zorder>BasicModeButton</zorder> + <zorder>AdvModeButton</zorder> + <zorder>OptionsAdvancedGamma</zorder> + <zorder>OptionsExpert</zorder> + <zorder>ProgressBar</zorder> </widget> <action name="ActionBasic"> <property name="checkable"> diff --git a/icons/Other.png b/icons/Other.png new file mode 100644 index 0000000..3e307ef --- /dev/null +++ b/icons/Other.png Binary files differdiff --git a/kcc/KCC_gui.py b/kcc/KCC_gui.py index aff3a4d..99a251b 100644 --- a/kcc/KCC_gui.py +++ b/kcc/KCC_gui.py @@ -39,6 +39,8 @@ class Icons: def __init__(self): self.deviceKindle = QtGui.QIcon() self.deviceKindle.addPixmap(QtGui.QPixmap(":/Devices/icons/Kindle.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.deviceOther = QtGui.QIcon() + self.deviceOther.addPixmap(QtGui.QPixmap(":/Devices/icons/Other.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.MOBIFormat = QtGui.QIcon() self.MOBIFormat.addPixmap(QtGui.QPixmap(":/Formats/icons/MOBI.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) @@ -97,28 +99,28 @@ class WorkerThread(QtCore.QThread): argv.append("--quality=1") elif GUI.QualityBox.checkState() == 2: argv.append("--quality=2") - if GUI.ProcessingBox.isChecked(): - argv.append("--noprocessing") - if GUI.UpscaleBox.isChecked() and not GUI.StretchBox.isChecked(): - argv.append("--upscale") - if GUI.NoRotateBox.isChecked(): - argv.append("--nosplitrotate") - if GUI.BorderBox.isChecked(): - argv.append("--blackborders") - if GUI.StretchBox.isChecked(): - argv.append("--stretch") - if GUI.NoDitheringBox.isChecked(): - argv.append("--nodithering") - if self.parent.GammaValue > 0.09: - argv.append("--gamma=" + self.parent.GammaValue) - if str(GUI.FormatBox.currentText()) == 'CBZ': - argv.append("--cbz-output") - if str(GUI.customWidth.text()) != '': + if self.parent.currentMode > 1: + if GUI.ProcessingBox.isChecked(): + argv.append("--noprocessing") + if GUI.UpscaleBox.isChecked() and not GUI.StretchBox.isChecked(): + argv.append("--upscale") + if GUI.NoRotateBox.isChecked(): + argv.append("--nosplitrotate") + if GUI.BorderBox.isChecked(): + argv.append("--blackborders") + if GUI.StretchBox.isChecked(): + argv.append("--stretch") + if GUI.NoDitheringBox.isChecked(): + argv.append("--nodithering") + if self.parent.GammaValue > 0.09: + argv.append("--gamma=" + self.parent.GammaValue) + if str(GUI.FormatBox.currentText()) == 'CBZ': + argv.append("--cbz-output") + if self.parent.currentMode > 2: argv.append("--customwidth=" + str(GUI.customWidth.text())) - if str(GUI.customHeight.text()) != '': argv.append("--customheight=" + str(GUI.customHeight.text())) - if GUI.ColorBox.isChecked(): - argv.append("--forcecolor") + if GUI.ColorBox.isChecked(): + argv.append("--forcecolor") for i in range(GUI.JobList.count()): currentJobs.append(str(GUI.JobList.item(i).text())) GUI.JobList.clear() @@ -150,7 +152,7 @@ class WorkerThread(QtCore.QThread): self.emit(QtCore.SIGNAL("addMessage"), 'Creating MOBI file...', 'info') self.emit(QtCore.SIGNAL("progressBarTick"), 1) try: - retcode = call('kindlegen "' + outputPath + '"', shell=True) + retcode = call('kindlegen -verbose "' + outputPath + '"', shell=True) except: continue if retcode == 0: @@ -174,7 +176,8 @@ class WorkerThread(QtCore.QThread): 'MOBI file will work correctly but it will be highly oversized.', 'warning') else: os.remove(outputPath) - os.remove(outputPath.replace('.epub', '.mobi')) + if os.path.exists(outputPath.replace('.epub', '.mobi')): + os.remove(outputPath.replace('.epub', '.mobi')) self.emit(QtCore.SIGNAL("addMessage"), 'KindleGen failed to create MOBI!', 'error') self.emit(QtCore.SIGNAL("addMessage"), 'Try converting a bit smaller batch.', 'error') else: @@ -246,7 +249,6 @@ class Ui_KCC(object): MainWindow.resize(420, 270) GUI.BasicModeButton.setStyleSheet('font-weight:Bold;') GUI.AdvModeButton.setStyleSheet('font-weight:Normal;') - GUI.ExpertModeButton.setStyleSheet('font-weight:Normal;') GUI.FormatBox.setCurrentIndex(0) GUI.FormatBox.setEnabled(False) GUI.OptionsAdvanced.setEnabled(False) @@ -255,16 +257,6 @@ class Ui_KCC(object): GUI.ProcessingBox.hide() GUI.UpscaleBox.hide() GUI.NoRotateBox.hide() - GUI.ProcessingBox.setChecked(False) - GUI.UpscaleBox.setChecked(False) - GUI.NoRotateBox.setChecked(False) - GUI.BorderBox.setChecked(False) - GUI.StretchBox.setChecked(False) - GUI.NoDitheringBox.setChecked(False) - GUI.GammaSlider.setValue(0) - GUI.customWidth.setText('') - GUI.customHeight.setText('') - GUI.ColorBox.setChecked(False) def modeAdvanced(self): self.currentMode = 2 @@ -273,7 +265,6 @@ class Ui_KCC(object): MainWindow.resize(420, 345) GUI.BasicModeButton.setStyleSheet('font-weight:Normal;') GUI.AdvModeButton.setStyleSheet('font-weight:Bold;') - GUI.ExpertModeButton.setStyleSheet('font-weight:Normal;') GUI.FormatBox.setEnabled(True) GUI.ProcessingBox.show() GUI.UpscaleBox.show() @@ -281,30 +272,19 @@ class Ui_KCC(object): GUI.OptionsAdvancedGamma.setEnabled(True) GUI.OptionsAdvanced.setEnabled(True) GUI.OptionsExpert.setEnabled(False) - GUI.customWidth.setText('') - GUI.customHeight.setText('') - GUI.ColorBox.setChecked(False) def modeExpert(self): + self.modeAdvanced() self.currentMode = 3 MainWindow.setMinimumSize(QtCore.QSize(420, 380)) MainWindow.setMaximumSize(QtCore.QSize(420, 380)) MainWindow.resize(420, 380) - GUI.BasicModeButton.setStyleSheet('font-weight:Normal;') - GUI.AdvModeButton.setStyleSheet('font-weight:Normal;') - GUI.ExpertModeButton.setStyleSheet('font-weight:Bold;') - GUI.FormatBox.setEnabled(True) - GUI.ProcessingBox.show() - GUI.UpscaleBox.show() - GUI.NoRotateBox.show() - GUI.OptionsAdvancedGamma.setEnabled(True) - GUI.OptionsAdvanced.setEnabled(True) GUI.OptionsExpert.setEnabled(True) def modeConvert(self, enable): - GUI.BasicModeButton.setEnabled(enable) - GUI.AdvModeButton.setEnabled(enable) - GUI.ExpertModeButton.setEnabled(enable) + if self.currentMode != 3: + GUI.BasicModeButton.setEnabled(enable) + GUI.AdvModeButton.setEnabled(enable) GUI.DirectoryButton.setEnabled(enable) GUI.ClearButton.setEnabled(enable) GUI.FileButton.setEnabled(enable) @@ -332,6 +312,21 @@ class Ui_KCC(object): self.GammaValue = value GUI.GammaLabel.setText('Gamma: ' + str(value)) + def changeDevice(self, value): + if value == 11 and self.currentMode != 3: + GUI.BasicModeButton.setEnabled(False) + GUI.AdvModeButton.setEnabled(False) + self.modeExpert() + elif self.currentMode == 3: + GUI.BasicModeButton.setEnabled(True) + GUI.AdvModeButton.setEnabled(True) + self.modeBasic() + if value in [0, 1, 5, 6, 7, 8, 9, 11]: + GUI.QualityBox.setCheckState(0) + GUI.QualityBox.setEnabled(False) + else: + GUI.QualityBox.setEnabled(True) + def addMessage(self, message, icon=None, replace=False): if icon: icon = eval('self.icons.' + icon) @@ -365,6 +360,11 @@ class Ui_KCC(object): self.addMessage('No files selected! Please choose files to convert.', 'error') self.needClean = True return + if self.currentMode > 2 and (str(GUI.customWidth.text()) == '' or str(GUI.customHeight.text()) == ''): + GUI.JobList.clear() + self.addMessage('Target resolution is not set!', 'error') + self.needClean = True + return self.worker.start() def hideProgressBar(self): @@ -374,6 +374,7 @@ class Ui_KCC(object): def saveSettings(self, event): self.settings.setValue('lastPath', self.lastPath) self.settings.setValue('lastDevice', GUI.DeviceBox.currentIndex()) + self.settings.setValue('currentMode', self.currentMode) self.settings.sync() def __init__(self, UI, KCC): @@ -385,6 +386,7 @@ class Ui_KCC(object): self.settings = QtCore.QSettings('KindleComicConverter', 'KindleComicConverter') self.lastPath = self.settings.value('lastPath', '', type=str) self.lastDevice = self.settings.value('lastDevice', 10, type=int) + self.currentMode = self.settings.value('currentMode', 1, type=int) self.worker = WorkerThread(self) self.versionCheck = VersionThread(self) self.needClean = True @@ -407,12 +409,12 @@ class Ui_KCC(object): GUI.BasicModeButton.clicked.connect(self.modeBasic) GUI.AdvModeButton.clicked.connect(self.modeAdvanced) - GUI.ExpertModeButton.clicked.connect(self.modeExpert) GUI.DirectoryButton.clicked.connect(self.selectDir) GUI.ClearButton.clicked.connect(self.clearJobs) GUI.FileButton.clicked.connect(self.selectFile) GUI.ConvertButton.clicked.connect(self.convertStart) GUI.GammaSlider.valueChanged.connect(self.changeGamma) + GUI.DeviceBox.activated.connect(self.changeDevice) KCC.connect(self.worker, QtCore.SIGNAL("progressBarTick"), self.updateProgressbar) KCC.connect(self.worker, QtCore.SIGNAL("modeConvert"), self.modeConvert) KCC.connect(self.worker, QtCore.SIGNAL("addMessage"), self.addMessage) @@ -422,12 +424,22 @@ class Ui_KCC(object): KCC.closeEvent = self.saveSettings for profile in profiles: - GUI.DeviceBox.addItem(self.icons.deviceKindle, profile) + if profile != "Other": + GUI.DeviceBox.addItem(self.icons.deviceKindle, profile) + else: + GUI.DeviceBox.addItem(self.icons.deviceOther, profile) GUI.DeviceBox.setCurrentIndex(self.lastDevice) + for f in formats: GUI.FormatBox.addItem(eval('self.icons.' + f + 'Format'), f) GUI.FormatBox.setCurrentIndex(0) - self.modeBasic() + if self.currentMode == 1: + self.modeBasic() + elif self.currentMode == 2: + self.modeAdvanced() + elif self.currentMode == 3: + self.modeExpert() self.versionCheck.start() self.hideProgressBar() + self.changeDevice(self.lastDevice) \ No newline at end of file diff --git a/kcc/KCC_rc.py b/kcc/KCC_rc.py index cf53258..0fa5393 100644 --- a/kcc/KCC_rc.py +++ b/kcc/KCC_rc.py @@ -2,7 +2,7 @@ # Resource object code # -# Created: Pt 14. cze 15:03:03 2013 +# Created: Śr 19. cze 10:35:51 2013 # by: The Resource Compiler for PyQt (Qt v4.8.4) # # WARNING! All changes made in this file will be lost! @@ -7680,6 +7680,102 @@ qt_resource_data = "\ \x30\x39\x2c\x80\xc9\x61\x01\x4c\x0e\x0b\x60\x72\xfe\x0d\x3d\x48\ \xb1\xea\xac\xcd\x38\x11\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ +\x00\x00\x05\xe0\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x00\x06\x62\x4b\x47\x44\x00\x00\x00\x00\x00\x00\xf9\x43\ +\xbb\x7f\x00\x00\x05\x95\x49\x44\x41\x54\x78\xda\xed\x5d\xc1\x6a\ +\x25\x45\x14\x3d\xd5\x69\xd1\x30\x82\x82\x0b\xa1\x47\x88\x9b\x2c\ +\x14\x5c\x48\xe1\x07\x08\x32\x2b\x41\x44\xc1\x9d\x0b\xc1\x45\xb2\ +\x57\xf0\x0f\xfc\x00\xc1\xac\xdd\x89\x2e\x5c\xa9\x2b\x71\x40\x44\ +\x1c\x0a\x92\x85\x0c\x48\x22\x44\x85\xde\x08\x2a\x12\x83\x3a\xe9\ +\x76\x31\x79\x43\xa7\xd2\xd5\xaf\xfa\xbd\x7e\xdd\xf7\x56\x9f\x03\ +\x43\x42\x32\x79\xdd\xef\x9e\x53\xa7\xee\xbd\x5d\xaf\x0a\x20\x08\ +\x82\x20\x08\x82\x20\x08\x82\x20\x08\x82\x20\x08\x22\x7d\x18\x09\ +\x37\x61\xad\xbd\x09\xe0\x16\x80\x1d\x00\x8f\xcd\x28\xfe\x7f\x03\ +\xf8\x15\xc0\xd7\xce\xb9\xbb\xb3\x13\x80\xb5\xf6\x19\x00\xef\x03\ +\x78\x19\x40\x36\xf3\xc1\xf8\x3d\x80\x77\x9d\x73\xb7\xc7\xbc\xe8\ +\xd6\x84\xe4\xbf\x06\xe0\x73\x00\xcf\x49\x71\xa2\x89\x71\x13\xc0\ +\x9b\x45\x51\xfc\x5b\x96\xe5\x37\x49\x0b\xc0\x5a\xfb\x22\x80\xcf\ +\x00\x3c\x42\xde\xaf\x39\xf2\x4b\x45\x51\xfc\x56\x96\xe5\x9d\x24\ +\xa7\x00\x6b\xed\x36\x80\x1f\x01\x3c\x45\xbe\x83\xf8\x07\xc0\xb3\ +\xce\xb9\x9f\x36\x7d\xa1\x29\xe6\xdd\xb7\x49\xfe\x52\x3c\x0c\xe0\ +\xbd\x31\x2e\x34\x85\x00\x5e\x27\xbf\x51\x78\xd5\x5a\xbb\x95\xa2\ +\x00\x9e\x27\xb7\x51\x78\xe2\xb2\x2c\x4e\x47\x00\xd6\xda\x1b\x00\ +\x1e\x25\xb7\xd1\x78\x32\x35\x07\x78\x88\x9c\xca\x8a\x57\xc6\x18\ +\xcf\x1b\xb9\xa4\x9b\xd9\xde\xde\xc6\xce\x4e\xdc\xb4\x67\xcc\xfd\ +\x0a\x36\xcb\x32\x18\x63\x50\xd7\xf5\x95\x7f\xd2\x71\x7e\x7e\x8e\ +\xd3\xd3\x53\x0a\xa0\x89\xdd\xdd\x5d\x1c\x1c\x1c\xcc\x62\xe4\x1d\ +\x1d\x1d\x61\x6f\x6f\x8f\x02\x58\x07\x0b\x17\xf0\xa1\xc1\x01\x38\ +\x05\x0c\x40\x7c\x53\x00\x8b\x69\xa0\xf9\x3d\x85\x90\xa0\x00\x8c\ +\x31\x57\x04\xe0\x8b\xa0\xe9\x00\x14\x42\x62\x02\x58\x10\xee\x8b\ +\x20\xf4\x7f\x9b\xc4\x53\x04\x89\x39\x40\x88\xf8\xb6\xa9\xa1\xaa\ +\x2a\x8a\x40\xbb\x00\xda\x46\x7f\x28\x19\x6c\x4e\x01\x8b\x52\xb1\ +\xae\x6b\x54\x55\x45\x11\x78\xc8\x52\x23\xbf\xed\x67\x8b\xbf\xcb\ +\xb2\xec\x41\xdf\x80\x50\xe2\x00\x7d\xc9\xef\x4a\x08\x59\x2e\x2a\ +\x13\x80\x4f\xfe\x2a\x23\xf7\x41\x32\x58\x5d\xc0\x64\x5b\xec\x1b\ +\x68\x11\xc0\x32\xf2\xfb\x88\xc1\x18\x83\xfa\x92\xfc\xc5\x6b\xb5\ +\xb5\x8d\xe7\x28\x84\x5c\x1a\xe9\x5d\x75\xbf\x3f\x6a\x7b\x8b\xa0\ +\x41\x70\x5f\x21\xa4\xda\x75\x14\x25\x80\x2c\xcb\xa2\x4a\xbd\x55\ +\x93\x38\x5f\x04\xcd\xd7\x6a\x8a\xa1\x99\x3f\xf4\xb9\x96\x46\x31\ +\x88\x76\x80\x50\xa7\x6f\xdd\x6b\x84\x44\xe0\x27\x8f\x21\x47\xf2\ +\x9d\x44\xf3\x34\x22\xd2\x01\x86\x22\x3b\x46\x68\x3e\x99\x31\x42\ +\xf0\x2b\x0c\xcd\x4e\x90\x4b\x1a\xfd\xcd\x29\x60\x28\xdb\x8f\x15\ +\x43\x88\xb4\x98\x52\xb3\xcd\x55\xb4\x88\x40\x5c\x15\xd0\x95\x6c\ +\x8d\xe1\x0a\xab\x12\xa7\xb5\xcf\x20\x46\x00\xcb\x82\xd5\x45\xfe\ +\x90\xe2\x58\x27\xe9\xd3\x28\x02\x51\xad\xe0\xae\x5e\xfd\xb2\x40\ +\x4e\x11\xe8\x50\x7f\x42\x53\xab\x59\x9c\x00\x34\x66\xd2\x5d\xfd\ +\x0b\xe9\x62\x10\x29\x80\x95\x45\x30\xa1\x70\xfc\x0a\x42\x8b\x13\ +\x88\x12\xc0\x2a\xa4\x5f\xf9\x1b\x81\x01\xa7\x03\xac\x40\x66\xf3\ +\x6b\x6c\x93\x45\x42\xa0\x43\x2e\x20\x59\x04\x62\xd7\x03\xc4\x26\ +\x83\x92\x83\xbb\x6c\xd9\x1a\x05\x10\x21\x02\xed\x09\xa1\x74\x17\ +\x50\xe1\x00\x9a\x45\x20\xdd\x05\x92\x70\x00\xe9\x89\x96\x64\x11\ +\xa8\x58\x13\xa8\x71\xe1\xc6\x3a\x0b\x58\x28\x00\xc5\x39\x80\x36\ +\x87\xca\xb5\x38\x80\x1f\xcc\xae\xc5\x9e\x44\x42\x53\x40\x97\x0b\ +\x68\x21\x5f\xb2\x8b\xa9\xd9\x20\x82\x9f\xf1\x63\x12\xa8\xaa\x24\ +\xd4\xb2\x40\x44\xd5\x16\x31\x5a\x57\xdd\xd0\x01\x06\x74\x01\x8d\ +\xa4\x4b\x76\x2f\x95\x9b\x44\x49\x17\x41\x5b\xcf\x82\x53\xc0\x86\ +\x12\x41\x89\x81\xe5\x8a\xa0\x99\x43\x53\xae\x42\x01\x30\x09\xd4\ +\x0d\x76\x02\x67\x24\x00\x92\x4d\x07\x50\xb7\xec\x9a\x02\x20\x28\ +\x80\x21\x47\xfe\xd0\x9f\x16\xa6\x00\x14\x0b\x80\x98\x89\x00\x48\ +\xfe\x8c\x05\x10\x5a\x5f\xcf\xb5\x00\x33\x10\x80\xf6\x91\xaf\xe1\ +\xc1\x95\x2a\x07\xd0\x0a\xc9\x4f\x31\x33\xe9\xc4\xb7\xd9\xbd\x64\ +\x31\x68\x5b\xb3\xa0\xc2\x01\xb4\x90\xcf\x29\x60\xc3\xe4\x6b\x9c\ +\xff\xa5\x2f\x62\xc9\x48\x3e\xcb\x40\x71\xa4\x87\xca\x3d\xe9\xa2\ +\xd0\xb8\x5c\x2d\x63\x00\x37\x7b\xef\xdc\x1f\x60\x26\xb6\xaf\x75\ +\xb3\x28\xf1\x0e\xa0\x7d\x37\x6f\x3a\xc0\x8c\xa6\x82\xae\x92\x95\ +\x9f\x0e\x5e\x41\x04\xcb\x1c\x81\x0e\x90\x78\x1f\x40\x43\x1d\x1d\ +\x9b\xc7\xd0\x01\x56\x24\x5e\xbb\x0b\x48\x9f\x06\x54\xee\x10\x22\ +\x5d\x04\x9a\xda\xd7\xb9\x06\xf2\x63\x8f\x6b\x31\xf7\xa3\xcd\x24\ +\x36\x25\x07\xe8\x3d\x7a\x04\x04\x5f\x53\x3f\x43\xf5\xf1\xf1\xb1\ +\x22\xa8\x47\x26\x85\x27\x86\x0c\x94\x30\xc5\x6c\xb7\x7a\xed\xe7\ +\x8b\xe0\x37\x5f\x6b\x82\xf7\xc1\x13\x43\x06\x4a\x9e\x7a\x9f\x19\ +\xc8\x1c\x40\x6f\x0e\xd0\x7c\x1a\xa8\xad\x9e\xbe\x7e\x8f\x5c\x0f\ +\x30\x48\xf2\x24\xae\x8e\x8e\x21\xb3\xae\x81\xba\x52\xe1\x0c\xfc\ +\x68\x58\x7f\x95\x46\xf4\x2c\xaa\x2b\x42\xe1\xa2\xd0\x35\xe6\x4e\ +\x4d\x4f\x03\x17\x44\xff\x77\xef\x02\xc8\x72\x15\x6d\x6c\xb1\x07\ +\x46\x4c\x7d\x28\x63\xdb\xe1\x15\xa1\xaf\xcd\xfb\x35\xc6\x20\xcf\ +\xf3\xe0\xef\x59\x05\xf4\x70\x80\xd0\xa9\x9e\x6d\x47\xb7\xfa\xbf\ +\x1f\xa2\x14\x8b\x15\x81\xe6\x6a\x40\xac\x00\x62\x4f\xf0\x0e\x91\ +\x31\x55\xf0\xfd\x4d\x2d\xa5\x4f\x03\xa2\x3b\x81\xd2\xcf\x08\x0a\ +\x09\x57\xd3\xce\xa6\x2a\x1e\x06\xf9\xd6\x2e\xdd\xb5\x34\x6d\x6b\ +\xab\x6e\xbb\xf8\xa1\xe6\xf7\xb1\xa7\x2f\x0a\x60\x43\x01\x96\xe2\ +\x08\x5a\xd7\x31\xaa\x7f\x1a\xc8\x0d\xa3\x13\x12\xc0\xd9\xd9\x19\ +\x0e\x0f\x0f\x67\x11\xf8\xe3\xe3\x63\x0a\xc0\xc7\xc9\xc9\x09\xf6\ +\xf7\xf7\x39\x2c\x47\x04\x9f\x05\x50\x00\x04\x05\x40\x50\x00\x04\ +\x05\x40\x50\x00\x04\x05\x40\x50\x00\x1b\x04\xdb\x76\xc2\xe2\x35\ +\xb6\x00\xfe\x02\x70\x8f\xbc\x46\xe3\x8f\xa4\x04\xe0\x9c\xab\x00\ +\xfc\x4c\x5e\xa3\x70\x31\x46\xac\xa6\xc8\x01\xbe\x20\xb7\x51\xf8\ +\xd6\x39\xf7\x67\x8a\x02\xf8\xf0\x52\xdd\x44\x37\x3e\x48\xb2\x0a\ +\x70\xce\xfd\x30\xd6\x9b\x53\x8c\xaf\x00\x7c\x92\x72\x19\xf8\x0e\ +\x80\x2f\xc9\x73\x2b\xee\x02\x78\xc3\x39\x37\x4a\xc5\xb4\x35\xc5\ +\x3b\x2c\xcb\xb2\x2a\x8a\xe2\x63\x00\x37\x00\xbc\x30\xd5\x7d\x08\ +\x2c\xf9\x3e\x05\xf0\x8a\x73\xee\xf7\xb1\x2e\x3a\xf9\x7a\x2a\x6b\ +\xed\x2e\x80\xb7\x00\xdc\x02\xf0\x34\x80\xc7\x67\x44\xfa\x19\x80\ +\x5f\x00\xdc\x06\xf0\x91\x73\xee\x3b\x8e\x03\x82\x20\x08\x82\x20\ +\x08\x82\x20\x08\x82\x20\x08\x62\x23\xf8\x1f\x8e\x96\x1e\x7d\x49\ +\xfc\xce\x76\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ @@ -7755,31 +7851,36 @@ qt_resource_name = "\ \x0b\x2e\x17\xc7\ \x00\x4b\ \x00\x69\x00\x6e\x00\x64\x00\x6c\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x09\ +\x0e\xc5\xfa\x07\ +\x00\x4f\ +\x00\x74\x00\x68\x00\x65\x00\x72\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x01\ -\x00\x00\x00\x28\x00\x02\x00\x00\x00\x01\x00\x00\x00\x15\ -\x00\x00\x00\x36\x00\x02\x00\x00\x00\x01\x00\x00\x00\x10\ -\x00\x00\x00\x46\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0c\ +\x00\x00\x00\x28\x00\x02\x00\x00\x00\x01\x00\x00\x00\x16\ +\x00\x00\x00\x36\x00\x02\x00\x00\x00\x01\x00\x00\x00\x11\ +\x00\x00\x00\x46\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0d\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0a\ \x00\x00\x00\x14\x00\x02\x00\x00\x00\x01\x00\x00\x00\x06\ \x00\x00\x00\x58\x00\x02\x00\x00\x00\x03\x00\x00\x00\x07\ \x00\x00\x01\x68\x00\x00\x00\x00\x00\x01\x00\x01\x89\x6e\ \x00\x00\x01\x52\x00\x00\x00\x00\x00\x01\x00\x01\x6d\x1f\ \x00\x00\x01\x7e\x00\x00\x00\x00\x00\x01\x00\x01\xa8\xaa\ -\x00\x00\x00\x58\x00\x02\x00\x00\x00\x01\x00\x00\x00\x0b\ +\x00\x00\x00\x58\x00\x02\x00\x00\x00\x02\x00\x00\x00\x0b\ \x00\x00\x01\x92\x00\x00\x00\x00\x00\x01\x00\x01\xd2\xa5\ -\x00\x00\x00\x58\x00\x02\x00\x00\x00\x03\x00\x00\x00\x0d\ +\x00\x00\x01\xac\x00\x00\x00\x00\x00\x01\x00\x01\xdd\xac\ +\x00\x00\x00\x58\x00\x02\x00\x00\x00\x03\x00\x00\x00\x0e\ \x00\x00\x00\x7e\x00\x00\x00\x00\x00\x01\x00\x00\x09\x5d\ \x00\x00\x00\x68\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x1e\x9a\ -\x00\x00\x00\x58\x00\x02\x00\x00\x00\x04\x00\x00\x00\x11\ +\x00\x00\x00\x58\x00\x02\x00\x00\x00\x04\x00\x00\x00\x12\ \x00\x00\x01\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x46\x38\ \x00\x00\x00\xce\x00\x00\x00\x00\x00\x01\x00\x00\x37\xa3\ \x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x3a\ \x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x00\x3c\x02\ -\x00\x00\x00\x58\x00\x02\x00\x00\x00\x01\x00\x00\x00\x16\ +\x00\x00\x00\x58\x00\x02\x00\x00\x00\x01\x00\x00\x00\x17\ \x00\x00\x01\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x4f\x8f\ " diff --git a/kcc/KCC_ui.py b/kcc/KCC_ui.py index 1e5f144..cb903c6 100644 --- a/kcc/KCC_ui.py +++ b/kcc/KCC_ui.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'KCC.ui' # -# Created: Tue Jun 18 22:41:54 2013 +# Created: Wed Jun 19 10:47:29 2013 # by: PyQt4 UI code generator 4.10.1 # # WARNING! All changes made in this file will be lost! @@ -155,26 +155,19 @@ class Ui_KCC(object): self.JobList.setSelectionMode(QtGui.QAbstractItemView.NoSelection) self.JobList.setObjectName(_fromUtf8("JobList")) self.BasicModeButton = QtGui.QPushButton(self.Form) - self.BasicModeButton.setGeometry(QtCore.QRect(10, 10, 141, 32)) + self.BasicModeButton.setGeometry(QtCore.QRect(10, 10, 195, 32)) font = QtGui.QFont() font.setPointSize(9) self.BasicModeButton.setFont(font) self.BasicModeButton.setFocusPolicy(QtCore.Qt.NoFocus) self.BasicModeButton.setObjectName(_fromUtf8("BasicModeButton")) self.AdvModeButton = QtGui.QPushButton(self.Form) - self.AdvModeButton.setGeometry(QtCore.QRect(160, 10, 91, 32)) + self.AdvModeButton.setGeometry(QtCore.QRect(217, 10, 195, 32)) font = QtGui.QFont() font.setPointSize(9) self.AdvModeButton.setFont(font) self.AdvModeButton.setFocusPolicy(QtCore.Qt.NoFocus) self.AdvModeButton.setObjectName(_fromUtf8("AdvModeButton")) - self.ExpertModeButton = QtGui.QPushButton(self.Form) - self.ExpertModeButton.setGeometry(QtCore.QRect(260, 10, 151, 32)) - font = QtGui.QFont() - font.setPointSize(9) - self.ExpertModeButton.setFont(font) - self.ExpertModeButton.setFocusPolicy(QtCore.Qt.NoFocus) - self.ExpertModeButton.setObjectName(_fromUtf8("ExpertModeButton")) self.OptionsAdvancedGamma = QtGui.QFrame(self.Form) self.OptionsAdvancedGamma.setEnabled(True) self.OptionsAdvancedGamma.setGeometry(QtCore.QRect(10, 305, 401, 41)) @@ -300,19 +293,18 @@ class Ui_KCC(object): self.RotateBox.setText(_translate("KCC", "Horizontal mode", None)) self.BasicModeButton.setText(_translate("KCC", "Basic", None)) self.AdvModeButton.setText(_translate("KCC", "Advanced", None)) - self.ExpertModeButton.setText(_translate("KCC", "Expert", None)) self.GammaLabel.setToolTip(_translate("KCC", "When converting color images setting this option to 1.0 MIGHT improve readability.", None)) self.GammaLabel.setText(_translate("KCC", "Gamma: Auto", None)) self.GammaSlider.setToolTip(_translate("KCC", "<html><head/><body><p>When converting color images setting this option to 1.0 <span style=\" font-weight:600;\">might</span> improve readability.</p></body></html>", None)) self.ColorBox.setToolTip(_translate("KCC", "Do not convert images to grayscale.", None)) self.ColorBox.setText(_translate("KCC", "Color mode", None)) - self.wLabel.setToolTip(_translate("KCC", "Device profile width will be overwritten by this value.", None)) + self.wLabel.setToolTip(_translate("KCC", "Resolution of target device.", None)) self.wLabel.setText(_translate("KCC", "Custom width: ", None)) - self.customWidth.setToolTip(_translate("KCC", "Device profile width will be overwritten by this value.", None)) + self.customWidth.setToolTip(_translate("KCC", "Resolution of target device.", None)) self.customWidth.setInputMask(_translate("KCC", "0000; ", None)) - self.hLabel.setToolTip(_translate("KCC", "Device profile height will be overwritten by this value.", None)) + self.hLabel.setToolTip(_translate("KCC", "Resolution of target device.", None)) self.hLabel.setText(_translate("KCC", "Custom height: ", None)) - self.customHeight.setToolTip(_translate("KCC", "Device profile height will be overwritten by this value.", None)) + self.customHeight.setToolTip(_translate("KCC", "Resolution of target device.", None)) self.customHeight.setInputMask(_translate("KCC", "0000; ", None)) self.ActionBasic.setText(_translate("KCC", "Basic", None)) self.ActionAdvanced.setText(_translate("KCC", "Advanced", None)) diff --git a/kcc/comic2ebook.py b/kcc/comic2ebook.py index 87a2658..b9243af 100755 --- a/kcc/comic2ebook.py +++ b/kcc/comic2ebook.py @@ -813,6 +813,11 @@ def checkOptions(): if options.rotate: options.panelview = True options.landscapemode = False + # Disable all Kindle features + if options.profile == 'OTHER': + options.landscapemode = False + options.panelview = False + options.quality = 0 # Override profile data if options.customwidth != 0 or options.customheight != 0: X = image.ProfileData.Profiles[options.profile][1][0] diff --git a/kcc/image.py b/kcc/image.py index 93b9bfc..3f32329 100755 --- a/kcc/image.py +++ b/kcc/image.py @@ -92,7 +92,8 @@ class ProfileData: 'KDXG': ("Kindle DXG", (824, 1200), Palette16, 1.8, (1236, 1800)), 'KF': ("Kindle Fire", (600, 1024), Palette16, 1.0, (900, 1536)), 'KFHD': ("Kindle Fire HD 7\"", (800, 1280), Palette16, 1.0, (1200, 1920)), - 'KFHD8': ("Kindle Fire HD 8.9\"", (1200, 1920), Palette16, 1.0, (1800, 2880)) + 'KFHD8': ("Kindle Fire HD 8.9\"", (1200, 1920), Palette16, 1.0, (1800, 2880)), + 'Other': ("Other", (0, 0), Palette16, 1.0, (0, 0)), } ProfileLabels = { @@ -106,7 +107,8 @@ class ProfileData: "Kindle DXG": 'KDXG', "Kindle Fire": 'KF', "Kindle Fire HD 7\"": 'KFHD', - "Kindle Fire HD 8.9\"": 'KFHD8' + "Kindle Fire HD 8.9\"": 'KFHD8', + "Other": 'OTHER' } |