diff options
Diffstat (limited to 'Swift/QtUI/QtElidingLabel.cpp')
-rw-r--r-- | Swift/QtUI/QtElidingLabel.cpp | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/Swift/QtUI/QtElidingLabel.cpp b/Swift/QtUI/QtElidingLabel.cpp index f5a39f0..4707f9f 100644 --- a/Swift/QtUI/QtElidingLabel.cpp +++ b/Swift/QtUI/QtElidingLabel.cpp @@ -8,17 +8,17 @@ namespace Swift { QtElidingLabel::QtElidingLabel(QWidget* parent, Qt::WindowFlags f) : QLabel(parent, f) { - fullText_ = ""; - dirty_ = true; - setSizes(); - setTextFormat(Qt::PlainText); + fullText_ = ""; + dirty_ = true; + setSizes(); + setTextFormat(Qt::PlainText); } QtElidingLabel::QtElidingLabel(const QString& text, QWidget* parent, Qt::WindowFlags f) : QLabel(text, parent, f) { - fullText_ = text; - dirty_ = true; - setSizes(); - setTextFormat(Qt::PlainText); + fullText_ = text; + dirty_ = true; + setSizes(); + setTextFormat(Qt::PlainText); } QtElidingLabel::~QtElidingLabel() { @@ -26,35 +26,35 @@ QtElidingLabel::~QtElidingLabel() { } QSize QtElidingLabel::sizeHint() const { - return sizeHint_; + return sizeHint_; } void QtElidingLabel::setSizes() { - setMinimumSize(1, minimumHeight()); + setMinimumSize(1, minimumHeight()); } void QtElidingLabel::setText(const QString& text) { - fullText_ = text; - QLabel::setText(text); - sizeHint_ = QLabel::sizeHint(); - dirty_ = true; + fullText_ = text; + QLabel::setText(text); + sizeHint_ = QLabel::sizeHint(); + dirty_ = true; } void QtElidingLabel::paintEvent(QPaintEvent* event) { - QRect rect = contentsRect(); - dirty_ = dirty_ || rect != lastRect_; - if (dirty_) { - lastRect_ = rect; - int fontWidth = fontMetrics().width(fullText_); - if (fontWidth > rect.width()) { - QString elidedText(fontMetrics().elidedText(fullText_, Qt::ElideRight, rect.width(), Qt::TextShowMnemonic)); - QLabel::setText(elidedText); - } else { - QLabel::setText(fullText_); - } - dirty_ = false; - } - QLabel::paintEvent(event); + QRect rect = contentsRect(); + dirty_ = dirty_ || rect != lastRect_; + if (dirty_) { + lastRect_ = rect; + int fontWidth = fontMetrics().width(fullText_); + if (fontWidth > rect.width()) { + QString elidedText(fontMetrics().elidedText(fullText_, Qt::ElideRight, rect.width(), Qt::TextShowMnemonic)); + QLabel::setText(elidedText); + } else { + QLabel::setText(fullText_); + } + dirty_ = false; + } + QLabel::paintEvent(event); } } |