Fix #2043998 [Default Published date on Basic metadata page is Dec 0100](https://bugs.launchpad.net/calibre/+bug/2043998)

This commit is contained in:
Kovid Goyal 2023-11-20 21:11:15 +05:30
parent 7b0852c2ad
commit 105d468b0f
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 8 additions and 4 deletions

View File

@ -11,7 +11,7 @@ import threading
from contextlib import contextmanager, suppress
from functools import lru_cache
from qt.core import (
QApplication, QBuffer, QByteArray, QColor, QDesktopServices, QDialog,
QApplication, QBuffer, QByteArray, QColor, QDateTime, QDesktopServices, QDialog,
QDialogButtonBox, QEvent, QFile, QFileDialog, QFileIconProvider, QFileInfo, QFont,
QFontDatabase, QFontInfo, QFontMetrics, QGuiApplication, QIcon, QImageReader,
QImageWriter, QIODevice, QLocale, QNetworkProxyFactory, QObject, QPalette,
@ -37,7 +37,7 @@ from calibre.gui2.qt_file_dialogs import FileDialog
from calibre.ptempfile import base_dir
from calibre.utils.config import Config, ConfigProxy, JSONConfig, dynamic
from calibre.utils.config_base import tweaks
from calibre.utils.date import UNDEFINED_DATE, qt_from_dt
from calibre.utils.date import UNDEFINED_DATE
from calibre.utils.file_type_icons import EXT_MAP
from calibre.utils.img import set_image_allocation_limit
from calibre.utils.localization import get_lang
@ -446,7 +446,8 @@ create_defs()
del create_defs
# }}}
UNDEFINED_QDATETIME = qt_from_dt(UNDEFINED_DATE, as_utc=True)
UNDEFINED_QDATETIME = QDateTime(
UNDEFINED_DATE.year, UNDEFINED_DATE.month, UNDEFINED_DATE.day, UNDEFINED_DATE.hour, UNDEFINED_DATE.minute, UNDEFINED_DATE.second)
QT_HIDDEN_CLEAR_ACTION = '_q_qlineeditclearaction'
ALL_COLUMNS = ['title', 'ondevice', 'authors', 'size', 'timestamp', 'rating', 'publisher',
'tags', 'series', 'pubdate']

View File

@ -158,7 +158,7 @@ def safeyear(x):
def qt_to_dt(qdate_or_qdatetime, as_utc=True):
from qt.core import Qt, QDateTime
o = qdate_or_qdatetime
if o is None:
if o is None or is_date_undefined(qdate_or_qdatetime):
return UNDEFINED_DATE
if hasattr(o, 'toUTC'): # QDateTime
def c(o: QDateTime, tz=utc_tz):
@ -189,6 +189,9 @@ def qt_to_dt(qdate_or_qdatetime, as_utc=True):
def qt_from_dt(d: datetime, as_utc=False, assume_utc=False):
from qt.core import QDate, QDateTime, QTime, QTimeZone
if is_date_undefined(d):
from calibre.gui2 import UNDEFINED_QDATETIME
return UNDEFINED_QDATETIME
if d.tzinfo is None:
d = d.replace(tzinfo=utc_tz if assume_utc else local_tz)
if as_utc: