From 105d468b0f2de7f12b820ec3f3c645ff2b3dd950 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 20 Nov 2023 21:11:15 +0530 Subject: [PATCH] Fix #2043998 [Default Published date on Basic metadata page is Dec 0100](https://bugs.launchpad.net/calibre/+bug/2043998) --- src/calibre/gui2/__init__.py | 7 ++++--- src/calibre/utils/date.py | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index ab79ff1a86..86d52eee3d 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -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'] diff --git a/src/calibre/utils/date.py b/src/calibre/utils/date.py index f77cd4e677..f1c26b1015 100644 --- a/src/calibre/utils/date.py +++ b/src/calibre/utils/date.py @@ -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: