QAbstractItemView: Don't let editor width exceed item width if not needed
The editor geometry was adjusted in RTL but not in LTR mode before
Qt5.11. 3ed91da499 fixed this but now all
editors are shown with their default size instead adjusting to the item
width. This works in most cases but fails for small column widths and
e.g. a QDoubleSpinBox. Therefore adjust the size policy for the editors
so their default size is ignored and therefore the column width is used.
Don't do this for a QDateTimeEdit since this makes no sense to only show
a cut of part of the editor.
Fixes: QTBUG-74327
Change-Id: Ie526155571bf24a2d8f38e988d8b2af4bfcc92ba
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
bb10
parent
02c25f334d
commit
b8d5e0b4ce
|
|
@ -244,6 +244,7 @@ QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent)
|
|||
case QVariant::Bool: {
|
||||
QBooleanComboBox *cb = new QBooleanComboBox(parent);
|
||||
cb->setFrame(false);
|
||||
cb->setSizePolicy(QSizePolicy::Ignored, cb->sizePolicy().verticalPolicy());
|
||||
return cb; }
|
||||
#endif
|
||||
#if QT_CONFIG(spinbox)
|
||||
|
|
@ -252,12 +253,14 @@ QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent)
|
|||
sb->setFrame(false);
|
||||
sb->setMinimum(0);
|
||||
sb->setMaximum(INT_MAX);
|
||||
sb->setSizePolicy(QSizePolicy::Ignored, sb->sizePolicy().verticalPolicy());
|
||||
return sb; }
|
||||
case QVariant::Int: {
|
||||
QSpinBox *sb = new QSpinBox(parent);
|
||||
sb->setFrame(false);
|
||||
sb->setMinimum(INT_MIN);
|
||||
sb->setMaximum(INT_MAX);
|
||||
sb->setSizePolicy(QSizePolicy::Ignored, sb->sizePolicy().verticalPolicy());
|
||||
return sb; }
|
||||
#endif
|
||||
#if QT_CONFIG(datetimeedit)
|
||||
|
|
@ -284,6 +287,7 @@ QWidget *QDefaultItemEditorFactory::createEditor(int userType, QWidget *parent)
|
|||
sb->setFrame(false);
|
||||
sb->setMinimum(-DBL_MAX);
|
||||
sb->setMaximum(DBL_MAX);
|
||||
sb->setSizePolicy(QSizePolicy::Ignored, sb->sizePolicy().verticalPolicy());
|
||||
return sb; }
|
||||
#endif
|
||||
#if QT_CONFIG(lineedit)
|
||||
|
|
|
|||
Loading…
Reference in New Issue