From b98040c7d5322b6b7ca1e9e0faf1118ce6da72bf Mon Sep 17 00:00:00 2001 From: Klaas Freitag Date: Thu, 26 Mar 2015 17:23:29 +0100 Subject: [PATCH] ShareDialog: handle resize properly with elided text --- binary | 2 +- src/gui/sharedialog.cpp | 30 +++++++++++++++++++++++------- src/gui/sharedialog.h | 2 ++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/binary b/binary index 1fb9ddfa9..01d73965d 160000 --- a/binary +++ b/binary @@ -1 +1 @@ -Subproject commit 1fb9ddfa9a9a1b4dbc447eee10dbed89172d968a +Subproject commit 01d73965dc8b862d1b2310d3ef801c297b697ec7 diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index bbcf05b1c..a1d67a03e 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -327,24 +327,40 @@ void ShareDialog::slotSharesFetched(const QString &reply) } } -void ShareDialog::setShareLink( const QString& url ) +void ShareDialog::resizeEvent(QResizeEvent *e) { - // FIXME: shorten the url for output. - const QUrl realUrl(url); - if( realUrl.isValid() ) { + QDialog::resizeEvent(e); + redrawElidedUrl(); +} + +void ShareDialog::redrawElidedUrl() +{ + QString u; + + if( !_shareUrl.isEmpty() ) { QFontMetrics fm( _ui->_labelShareLink->font() ); int linkLengthPixel = _ui->_labelShareLink->width(); - QString elidedUrl = fm.elidedText(url, Qt::ElideRight, linkLengthPixel); + const QUrl realUrl(_shareUrl); + QString elidedUrl = fm.elidedText(_shareUrl, Qt::ElideRight, linkLengthPixel); - const QString u = QString("%2").arg(realUrl.toString(QUrl::None)).arg(elidedUrl); - _ui->_labelShareLink->setText(u); + u = QString("%2").arg(realUrl.toString(QUrl::None)).arg(elidedUrl); + } + _ui->_labelShareLink->setText(u); +} + +void ShareDialog::setShareLink( const QString& url ) +{ + // FIXME: shorten the url for output. + const QUrl realUrl(url); + if( realUrl.isValid() ) { _shareUrl = url; _ui->pushButton_copy->setEnabled(true); } else { _shareUrl.clear(); _ui->_labelShareLink->setText(QString::null); } + redrawElidedUrl(); } diff --git a/src/gui/sharedialog.h b/src/gui/sharedialog.h index 50710de38..d71317662 100644 --- a/src/gui/sharedialog.h +++ b/src/gui/sharedialog.h @@ -81,6 +81,8 @@ private: void displayError(int code); void displayError(const QString& errMsg); void setShareLink( const QString& url ); + void resizeEvent(QResizeEvent *e); + void redrawElidedUrl(); Ui::ShareDialog *_ui; AccountPtr _account; -- 2.30.2