Make line edit clear buttons available in more places. Fixes #1933538 [[Enhancement] Add clear buttons to the fields in the Convert book window](https://bugs.launchpad.net/calibre/+bug/1933538)

This commit is contained in:
Kovid Goyal 2021-07-05 09:12:17 +05:30
parent 8eb05c2a69
commit 0c03155074
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
17 changed files with 193 additions and 103 deletions

View File

@ -291,6 +291,7 @@ class LineEdit(QLineEdit, LineEditECM):
def __init__(self, parent=None, completer_widget=None, sort_func=sort_key, strip_completion_entries=True):
QLineEdit.__init__(self, parent)
self.setClearButtonEnabled(True)
self.sep = ','
self.space_before_sep = False
@ -480,6 +481,9 @@ class EditWithComplete(EnComboBox):
def set_elide_mode(self, val):
self.lineEdit().set_elide_mode(val)
def set_clear_button_enabled(self, val=True):
self.lineEdit().setClearButtonEnabled(bool(val))
# }}}
def text(self):

View File

@ -35,7 +35,11 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="opt_toc_title"/>
<widget class="QLineEdit" name="opt_toc_title">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="opt_mobi_toc_at_start">

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>599</width>
<height>415</height>
<height>445</height>
</rect>
</property>
<property name="windowTitle">
@ -157,7 +157,11 @@
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="opt_comic_image_size"/>
<widget class="QLineEdit" name="opt_comic_image_size">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="opt_dont_add_comic_pages_to_toc">

View File

@ -116,7 +116,11 @@
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="opt_toc_title"/>
<widget class="QLineEdit" name="opt_toc_title">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_3">

View File

@ -70,7 +70,11 @@
</widget>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="font_size_key"/>
<widget class="QLineEdit" name="font_size_key">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QDoubleSpinBox" name="output_base_font_size">

View File

@ -466,6 +466,9 @@
<property name="toolTip">
<string>Comma separated list of CSS properties to remove. For example: display, color, font-family</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>

View File

@ -135,7 +135,11 @@
</widget>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLineEdit" name="opt_header_format"/>
<widget class="QLineEdit" name="opt_header_format">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
@ -176,13 +180,13 @@
</widget>
</item>
<item row="0" column="1">
<widget class="FontFamilyChooser" name="opt_serif_family"/>
<widget class="FontFamilyChooser" name="opt_serif_family" native="true"/>
</item>
<item row="1" column="1">
<widget class="FontFamilyChooser" name="opt_sans_family"/>
<widget class="FontFamilyChooser" name="opt_sans_family" native="true"/>
</item>
<item row="2" column="1">
<widget class="FontFamilyChooser" name="opt_mono_family"/>
<widget class="FontFamilyChooser" name="opt_mono_family" native="true"/>
</item>
</layout>
</widget>

View File

@ -138,6 +138,9 @@
<property name="toolTip">
<string>Change the title of this book</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
@ -177,6 +180,9 @@
<property name="toolTip">
<string>Change the author(s) of this book. Multiple authors should be separated by a comma</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">

View File

@ -32,7 +32,11 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="opt_toc_title"/>
<widget class="QLineEdit" name="opt_toc_title">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="opt_mobi_toc_at_start">
@ -99,7 +103,11 @@
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="opt_personal_doc"/>
<widget class="QLineEdit" name="opt_personal_doc">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="opt_share_not_sync">

View File

@ -54,6 +54,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -109,7 +112,11 @@
</widget>
</item>
<item row="8" column="1">
<widget class="QLineEdit" name="opt_toc_title"/>
<widget class="QLineEdit" name="opt_toc_title">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="label_4">
@ -208,7 +215,11 @@
</widget>
</item>
<item row="16" column="1">
<widget class="QLineEdit" name="opt_pdf_page_number_map"/>
<widget class="QLineEdit" name="opt_pdf_page_number_map">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="18" column="0" colspan="2">
<widget class="QGroupBox" name="page_margins_box">
@ -247,7 +258,11 @@
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="opt_pdf_header_template"/>
<widget class="QLineEdit" name="opt_pdf_header_template">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_13">
@ -260,7 +275,11 @@
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="opt_pdf_footer_template"/>
<widget class="QLineEdit" name="opt_pdf_footer_template">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>

View File

@ -26,7 +26,11 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="regex"/>
<widget class="QLineEdit" name="regex">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="test">

View File

@ -72,6 +72,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
@ -80,7 +83,7 @@
<item row="2" column="0">
<layout class="QHBoxLayout" name="buttonsLayout">
<property name="spacing">
<number>-1</number>
<number>6</number>
</property>
<property name="leftMargin">
<number>0</number>
@ -146,94 +149,94 @@
</item>
<item>
<widget class="QPushButton" name="sr_save">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Save this list of expressions so that you can re-use it easily</string>
</property>
<property name="text">
<string>&amp;Save</string>
</property>
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Save this list of expressions so that you can re-use it easily</string>
</property>
<property name="text">
<string>&amp;Save</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="3" column="0">
<layout class="QHBoxLayout" name="searchReplaceLayout">
<property name="spacing">
<number>-1</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QTableWidget" name="search_replace">
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="positionLayout">
<item>
<widget class="QPushButton" name="sr_up">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>16777215</height>
</size>
</property>
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move expression up.</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/images/arrow-up.png</normaloff>:/images/arrow-up.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="sr_down">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>16777215</height>
</size>
</property>
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>Move expression down.</string>
</property>
<property name="icon">
<iconset>
<normaloff>:/images/arrow-down.png</normaloff>:/images/arrow-down.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
</layout>
<layout class="QHBoxLayout" name="searchReplaceLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QTableWidget" name="search_replace">
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="positionLayout">
<item>
<widget class="QPushButton" name="sr_up">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Move expression up.</string>
</property>
<property name="icon">
<iconset resource="../../../../resources/images.qrc">
<normaloff>:/images/arrow-up.png</normaloff>:/images/arrow-up.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="sr_down">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>32</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Move expression down.</string>
</property>
<property name="icon">
<iconset resource="../../../../resources/images.qrc">
<normaloff>:/images/arrow-down.png</normaloff>:/images/arrow-down.png</iconset>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QLabel" name="rh_label">

View File

@ -99,7 +99,11 @@
<widget class="XPathEdit" name="opt_level2_toc" native="true"/>
</item>
<item row="8" column="1">
<widget class="QLineEdit" name="opt_toc_filter"/>
<widget class="QLineEdit" name="opt_toc_filter">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<widget class="XPathEdit" name="opt_level1_toc" native="true"/>

View File

@ -122,7 +122,11 @@
</widget>
</item>
<item>
<widget class="QLineEdit" name="value"/>
<widget class="QLineEdit" name="value">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="example_label">

View File

@ -15,7 +15,7 @@ from qt.core import (Qt, QComboBox, QLabel, QSpinBox, QDoubleSpinBox,
QMessageBox, QToolButton, QPlainTextEdit, QApplication, QStyle, QDialog)
from calibre.utils.date import qt_to_dt, now, as_local_time, as_utc, internal_iso_format_string
from calibre.gui2.complete2 import EditWithComplete
from calibre.gui2.complete2 import EditWithComplete as EWC
from calibre.gui2.comments_editor import Editor as CommentsEditor
from calibre.gui2 import UNDEFINED_QDATETIME, error_dialog, elided_text
from calibre.gui2.dialogs.tag_editor import TagEditor
@ -27,6 +27,13 @@ from calibre.gui2.widgets2 import RatingEditor, DateTimeEdit as DateTimeEditBase
from polyglot.builtins import unicode_type
class EditWithComplete(EWC):
def __init__(self, *a, **kw):
super().__init__(*a, **kw)
self.set_clear_button_enabled(False)
def safe_disconnect(signal):
try:
signal.disconnect()

View File

@ -107,6 +107,9 @@
<property name="toolTip">
<string>Specify how the author(s) of this book should be sorted. For example Charles Dickens should be sorted as Dickens, Charles.</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">

View File

@ -341,6 +341,7 @@ class AuthorsEdit(EditWithComplete, ToMetadataMixin):
self.dialog = parent
self.books_to_refresh = set()
EditWithComplete.__init__(self, parent)
self.set_clear_button_enabled(False)
self.setToolTip(self.TOOLTIP)
self.setWhatsThis(self.TOOLTIP)
self.setEditable(True)
@ -598,6 +599,7 @@ class SeriesEdit(EditWithComplete, ToMetadataMixin):
def __init__(self, parent):
EditWithComplete.__init__(self, parent)
self.set_clear_button_enabled(False)
self.set_separator(None)
self.dialog = parent
self.setSizeAdjustPolicy(
@ -1379,6 +1381,7 @@ class TagsEdit(EditWithComplete, ToMetadataMixin): # {{{
def __init__(self, parent):
EditWithComplete.__init__(self, parent)
self.set_clear_button_enabled(False)
self.set_elide_mode(Qt.TextElideMode.ElideMiddle)
self.currentTextChanged.connect(self.data_changed)
self.lineEdit().setMaxLength(655360) # see https://bugs.launchpad.net/bugs/1630944
@ -1462,6 +1465,7 @@ class LanguagesEdit(LE, ToMetadataMixin): # {{{
def __init__(self, *args, **kwargs):
LE.__init__(self, *args, **kwargs)
self.set_clear_button_enabled(False)
self.textChanged.connect(self.data_changed)
self.setToolTip(self.TOOLTIP)
@ -1779,6 +1783,7 @@ class PublisherEdit(EditWithComplete, ToMetadataMixin): # {{{
def __init__(self, parent):
EditWithComplete.__init__(self, parent)
self.set_clear_button_enabled(False)
self.currentTextChanged.connect(self.data_changed)
self.set_separator(None)
self.setSizeAdjustPolicy(