[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/koffice/1.6/koffice/kexi/plugins/forms
From: Jaroslaw Staniek <js () iidea ! pl>
Date: 2006-10-23 8:36:37
Message-ID: 1161592597.222597.8628.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 598320 by staniek:
Forms
= fixed default size of combo box widgets
= removed crash when a combobox without a data source was clicked
2.0: merged
M +1 -1 kexiformdataiteminterface.cpp
M +3 -1 kexiformscrollview.cpp
M +2 -1 kexiformscrollview.h
M +29 -8 widgets/kexidbcombobox.cpp
M +6 -1 widgets/kexidbcombobox.h
--- branches/koffice/1.6/koffice/kexi/plugins/forms/kexiformdataiteminterface.cpp \
#598319:598320 @@ -46,7 +46,7 @@
KexiDB::Field* KexiFormDataItemInterface::field() const
{
- return m_columnInfo->field;
+ return m_columnInfo ? m_columnInfo->field : 0;
}
void KexiFormDataItemInterface::setDisplayDefaultValue(QWidget* widget, bool \
displayDefaultValue)
--- branches/koffice/1.6/koffice/kexi/plugins/forms/kexiformscrollview.cpp \
#598319:598320 @@ -162,10 +162,12 @@
//! @todo
}
-void KexiFormScrollView::addHeaderColumn(const QString& caption, const QString& \
description, int width) +void KexiFormScrollView::addHeaderColumn(const QString& \
caption, const QString& description, + const QIconSet& icon, int width)
{
Q_UNUSED( caption );
Q_UNUSED( description );
+ Q_UNUSED( icon );
Q_UNUSED( width );
//! @todo
--- branches/koffice/1.6/koffice/kexi/plugins/forms/kexiformscrollview.h \
#598319:598320 @@ -193,7 +193,8 @@
virtual void clearColumnsInternal(bool repaint);
//! Implementation for KexiDataAwareObjectInterface
- virtual void addHeaderColumn(const QString& caption, const QString& description, \
int width); + virtual void addHeaderColumn(const QString& caption, const QString& \
description, + const QIconSet& icon, int width);
//! Implementation for KexiDataAwareObjectInterface
virtual int currentLocalSortingOrder() const;
--- branches/koffice/1.6/koffice/kexi/plugins/forms/widgets/kexidbcombobox.cpp \
#598319:598320 @@ -46,7 +46,8 @@
}
KComboBox *paintedCombo; //!< fake combo used only to pass it as 'this' for QStyle \
(because styles use <static_cast>)
-
+ QSize sizeHint; //!< A cache for KexiDBComboBox::sizeHint(),
+ //!< rebuilt by KexiDBComboBox::fontChange() and \
KexiDBComboBox::styleChange() bool isEditable : 1;
bool buttonPressed : 1;
bool mouseOver : 1;
@@ -151,13 +152,6 @@
return r;
}
-void KexiDBComboBox::styleChange( QStyle& s )
-{
- KexiDBAutoField::styleChange( s );
- if (m_subwidget)
- m_subwidget->setGeometry( editorGeometry() );
-}
-
void KexiDBComboBox::createEditor()
{
if (!d->isEditable)
@@ -455,4 +449,31 @@
return m_popup->width();
}
+void KexiDBComboBox::fontChange( const QFont & oldFont )
+{
+ d->sizeHint = QSize(); //force rebuild the cache
+ KexiDBAutoField::fontChange(oldFont);
+}
+
+void KexiDBComboBox::styleChange( QStyle& oldStyle )
+{
+ KexiDBAutoField::styleChange( oldStyle );
+ d->sizeHint = QSize(); //force rebuild the cache
+ if (m_subwidget)
+ m_subwidget->setGeometry( editorGeometry() );
+}
+
+QSize KexiDBComboBox::sizeHint() const
+{
+ if ( isVisible() && d->sizeHint.isValid() )
+ return d->sizeHint;
+
+ const int maxWidth = 7 * fontMetrics().width(QChar('x')) + 18;
+ const int maxHeight = QMAX( fontMetrics().lineSpacing(), 14 ) + 2;
+ d->sizeHint = (style().sizeFromContents(QStyle::CT_ComboBox, d->paintedCombo,
+ QSize(maxWidth, maxHeight)).expandedTo(QApplication::globalStrut()));
+
+ return d->sizeHint;
+}
+
#include "kexidbcombobox.moc"
--- branches/koffice/1.6/koffice/kexi/plugins/forms/widgets/kexidbcombobox.h \
#598319:598320 @@ -66,6 +66,8 @@
virtual QVariant value() { return KexiComboBoxBase::value(); }
+ virtual QSize sizeHint() const;
+
/*
inline QString dataSource() const { return \
KexiFormDataItemInterface::dataSource(); } inline QCString dataSourceMimeType() \
const { return KexiFormDataItemInterface::dataSourceMimeType(); } @@ -139,8 +141,11 \
@@ virtual void createEditor();
/*! Reimplemented */
- virtual void styleChange( QStyle& s );
+ virtual void styleChange( QStyle& oldStyle );
+ /*! Reimplemented */
+ virtual void fontChange( const QFont & oldFont );
+
virtual bool subwidgetStretchRequired(KexiDBAutoField* autoField) const;
//! Implemented for KexiComboBoxBase
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic