Add 'set to today' buttons to metadata editors

This commit is contained in:
Charles Haley 2010-07-12 10:05:14 +01:00
parent 924b8a3b3e
commit acdc3d864a

View File

@ -10,9 +10,10 @@ from functools import partial
from PyQt4.Qt import QComboBox, QLabel, QSpinBox, QDoubleSpinBox, QDateEdit, \ from PyQt4.Qt import QComboBox, QLabel, QSpinBox, QDoubleSpinBox, QDateEdit, \
QDate, QGroupBox, QVBoxLayout, QPlainTextEdit, QSizePolicy, \ QDate, QGroupBox, QVBoxLayout, QPlainTextEdit, QSizePolicy, \
QSpacerItem, QIcon, QCheckBox, QWidget, QHBoxLayout, SIGNAL QSpacerItem, QIcon, QCheckBox, QWidget, QHBoxLayout, SIGNAL, \
QPushButton
from calibre.utils.date import qt_to_dt from calibre.utils.date import qt_to_dt, now
from calibre.gui2.widgets import TagsLineEdit, EnComboBox from calibre.gui2.widgets import TagsLineEdit, EnComboBox
from calibre.gui2 import UNDEFINED_QDATE from calibre.gui2 import UNDEFINED_QDATE
from calibre.utils.config import tweaks from calibre.utils.config import tweaks
@ -138,19 +139,24 @@ class DateEdit(QDateEdit):
self.setSpecialValueText(_('Undefined')) self.setSpecialValueText(_('Undefined'))
QDateEdit.focusOutEvent(self, x) QDateEdit.focusOutEvent(self, x)
def set_to_today(self):
self.setDate(now())
class DateTime(Base): class DateTime(Base):
def setup_ui(self, parent): def setup_ui(self, parent):
self.widgets = [QLabel('&'+self.col_metadata['name']+':', parent), cm = self.col_metadata
DateEdit(parent)] self.widgets = [QLabel('&'+cm['name']+':', parent), DateEdit(parent),
QLabel(''), QPushButton(_('Set \'%s\' to today')%cm['name'], parent)]
w = self.widgets[1] w = self.widgets[1]
format = self.col_metadata['display'].get('date_format','') format = cm['display'].get('date_format','')
if not format: if not format:
format = 'dd MMM yyyy' format = 'dd MMM yyyy'
w.setDisplayFormat(format) w.setDisplayFormat(format)
w.setCalendarPopup(True) w.setCalendarPopup(True)
w.setMinimumDate(UNDEFINED_QDATE) w.setMinimumDate(UNDEFINED_QDATE)
w.setSpecialValueText(_('Undefined')) w.setSpecialValueText(_('Undefined'))
self.widgets[3].clicked.connect(w.set_to_today)
def setter(self, val): def setter(self, val):
if val is None: if val is None: