4 Commits
0.5 ... 0.5.1

Author SHA1 Message Date
BasioMeusPuga
c71985f621 Minor fixes 2019-03-09 10:11:12 -05:00
BasioMeusPuga
c8fe0ba8b6 Make dependency checks less... crashy 2019-03-03 07:56:05 -05:00
BasioMeusPuga
d6df28c503 Merge pull request #92 from guoyunhe/hidpi-icons
Make icons sharp in HiDPI screen
2019-03-02 19:47:50 -05:00
Guo Yunhe
75ace25c57 Make icons sharp in HiDPI screen 2019-03-02 13:37:04 +01:00
4 changed files with 36 additions and 23 deletions

View File

@@ -476,7 +476,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
ebooks_string = self._translate('Main_UI', 'eBooks')
opened_files = QtWidgets.QFileDialog.getOpenFileNames(
self, dialog_prompt, self.settings['last_open_path'],
f'{ebooks_string} ({self.available_parsers})')
f'{ebooks_string}({self.available_parsers})')
if not opened_files[0]:
return
@@ -742,7 +742,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
else:
self.settingsDialog.hide()
#____________________________________________
#==================================================================
# The contentView modification functions are in the guifunctions
# module. self.profile_functions is the reference here.
@@ -763,7 +763,7 @@ class MainUI(QtWidgets.QMainWindow, mainwindow.Ui_MainWindow):
self.profile_functions.modify_comic_view(
signal_sender, key_pressed)
#____________________________________________
#=================================================================
def change_page_view(self, key_pressed=False):
# Set zoom mode to best fit to
@@ -1059,6 +1059,8 @@ def main():
app = QtWidgets.QApplication(sys.argv)
app.setApplicationName('Lector') # This is needed for QStandardPaths
# and my own hubris
# Make icons sharp in HiDPI screen
app.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
# Internationalization support
translator = QtCore.QTranslator()

View File

@@ -101,18 +101,7 @@ class Library:
position = i[5]
if position:
position = pickle.loads(position)
if position['is_read']:
position_perc = 1
else:
try:
position_perc = (
position['current_block'] / position['total_blocks'])
except (KeyError, ZeroDivisionError):
try:
position_perc = (
position['current_chapter'] / position['total_chapters'])
except KeyError:
position_perc = None
position_perc = generate_position_percentage(position)
try:
file_exists = os.path.exists(path)
@@ -339,3 +328,23 @@ class Library:
# Remove invalid paths from the database as well
database.DatabaseFunctions(
self.main_window.database_path).delete_from_database('Path', invalid_paths)
def generate_position_percentage(position):
if not position:
return None
if position['is_read']:
position_perc = 1
else:
try:
position_perc = (
position['current_block'] / position['total_blocks'])
except (KeyError, ZeroDivisionError):
try:
position_perc = (
position['current_chapter'] / position['total_chapters'])
except KeyError:
position_perc = None
return position_perc

View File

@@ -14,7 +14,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
VERSION = '0.5.0'
VERSION = '0.5.1'
import os
import logging

View File

@@ -43,10 +43,6 @@ else:
from PyQt5 import QtCore, QtGui
from lector import database
from lector.parsers.epub import ParseEPUB
from lector.parsers.mobi import ParseMOBI
from lector.parsers.fb2 import ParseFB2
from lector.parsers.comicbooks import ParseCOMIC
logger = logging.getLogger(__name__)
@@ -69,7 +65,11 @@ else:
# python-lxml - Required for everything except comics
lxml_check = importlib.util.find_spec('lxml')
xmltodict_check = importlib.util.find_spec('xmltodict')
if lxml_check:
if lxml_check and xmltodict_check:
from lector.parsers.epub import ParseEPUB
from lector.parsers.mobi import ParseMOBI
from lector.parsers.fb2 import ParseFB2
lxml_dependent = {
'epub': ParseEPUB,
'mobi': ParseMOBI,
@@ -81,7 +81,7 @@ if lxml_check:
'fb2.zip': ParseFB2}
sorter.update(lxml_dependent)
else:
critical_sting = 'python-lxml / xmltodict is not installed. Only comics will load.'
critical_sting = 'lxml / xmltodict is not installed. Only comics will load.'
print(critical_sting)
logger.critical(critical_sting)
@@ -201,7 +201,9 @@ class BookSorter:
break
if not valid_extension:
logger.error('Unsupported extension: ' + filename)
this_error = 'Unsupported extension: ' + filename
self.errors.append(this_error)
logger.error(this_error)
return
book_ref = sorter[file_extension](filename, self.temp_dir, file_md5)