diff options
Diffstat (limited to 'Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp')
| -rw-r--r-- | Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp | 49 | 
1 files changed, 49 insertions, 0 deletions
diff --git a/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp new file mode 100644 index 0000000..efe04dc --- /dev/null +++ b/Swift/QtUI/QtVCardWidget/QtResizableLineEdit.cpp @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2012 Tobias Markmann + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +#include "QtResizableLineEdit.h" + +namespace Swift { + +QtResizableLineEdit::QtResizableLineEdit(QWidget* parent) : +	QLineEdit(parent) { +	connect(this, SIGNAL(textChanged(QString)), SLOT(textChanged(QString))); +	setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); +	int marginHeight = 6; +	setMaximumHeight(fontMetrics().height() + marginHeight); +} + +QtResizableLineEdit::~QtResizableLineEdit() { +} + +bool QtResizableLineEdit::isEditable() const { +	return editable; +} +void QtResizableLineEdit::setEditable(const bool editable) { +	this->editable = editable; +	if (editable) { +		setReadOnly(false); +	} else { +		setReadOnly(true); +	} +} + + +QSize QtResizableLineEdit::sizeHint() const { +	int horizontalMargin = 10; +#if QT_VERSION >= 0x040700 +	int w = fontMetrics().boundingRect(text().isEmpty() ? placeholderText() : text()).width() + horizontalMargin; +#else +	int w = fontMetrics().boundingRect(text().isEmpty() ? QString("   ") : text()).width() + horizontalMargin; +#endif +	return QSize(w, height()); +} + +void QtResizableLineEdit::textChanged(QString) { +	updateGeometry(); +} + +}  | 
 Swift