1
0
mirror of https://github.com/ciromattia/kcc synced 2025-12-12 17:26:23 +00:00

Moved expert mode to separate profile

This commit is contained in:
Paweł Jastrzębski
2013-06-19 11:37:44 +02:00
parent d12a94401d
commit fdc265eaea
9 changed files with 219 additions and 135 deletions

View File

@@ -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">

View File

@@ -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">

49
KCC.ui
View File

@@ -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">

BIN
icons/Other.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -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)

View File

@@ -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\
"

View File

@@ -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))

View File

@@ -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]

View File

@@ -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'
}