ShareDialog: handle resize properly with elided text
authorKlaas Freitag <freitag@owncloud.com>
Thu, 26 Mar 2015 16:23:29 +0000 (17:23 +0100)
committerKlaas Freitag <freitag@owncloud.com>
Tue, 7 Apr 2015 11:38:01 +0000 (13:38 +0200)
binary
src/gui/sharedialog.cpp
src/gui/sharedialog.h

diff --git a/binary b/binary
index 1fb9ddfa9a9a1b4dbc447eee10dbed89172d968a..01d73965dc8b862d1b2310d3ef801c297b697ec7 160000 (submodule)
--- a/binary
+++ b/binary
@@ -1 +1 @@
-Subproject commit 1fb9ddfa9a9a1b4dbc447eee10dbed89172d968a
+Subproject commit 01d73965dc8b862d1b2310d3ef801c297b697ec7
index bbcf05b1c2cc5c18e1e56513d09b0ee69f3ccfd1..a1d67a03e243ca4a1d4102abda8084be382aa817 100644 (file)
@@ -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("<a href=\"%1\">%2</a>").arg(realUrl.toString(QUrl::None)).arg(elidedUrl);
-        _ui->_labelShareLink->setText(u);
+        u = QString("<a href=\"%1\">%2</a>").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();
 
 }
 
index 50710de38d467515f26505a761cd6753ef3d6bb7..d7131766204b0340126c175c1425a9b47de1438c 100644 (file)
@@ -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;