ShareDialog: handle resize properly with elided text

This commit is contained in:
Klaas Freitag 2015-03-26 17:23:29 +01:00
parent 1240a8163d
commit b98040c7d5
3 changed files with 26 additions and 8 deletions

2
binary

@ -1 +1 @@
Subproject commit 1fb9ddfa9a9a1b4dbc447eee10dbed89172d968a
Subproject commit 01d73965dc8b862d1b2310d3ef801c297b697ec7

View file

@ -327,24 +327,40 @@ void ShareDialog::slotSharesFetched(const QString &reply)
}
}
void ShareDialog::resizeEvent(QResizeEvent *e)
{
QDialog::resizeEvent(e);
redrawElidedUrl();
}
void ShareDialog::redrawElidedUrl()
{
QString u;
if( !_shareUrl.isEmpty() ) {
QFontMetrics fm( _ui->_labelShareLink->font() );
int linkLengthPixel = _ui->_labelShareLink->width();
const QUrl realUrl(_shareUrl);
QString elidedUrl = fm.elidedText(_shareUrl, Qt::ElideRight, linkLengthPixel);
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() ) {
QFontMetrics fm( _ui->_labelShareLink->font() );
int linkLengthPixel = _ui->_labelShareLink->width();
QString elidedUrl = fm.elidedText(url, Qt::ElideRight, linkLengthPixel);
const QString u = QString("<a href=\"%1\">%2</a>").arg(realUrl.toString(QUrl::None)).arg(elidedUrl);
_ui->_labelShareLink->setText(u);
_shareUrl = url;
_ui->pushButton_copy->setEnabled(true);
} else {
_shareUrl.clear();
_ui->_labelShareLink->setText(QString::null);
}
redrawElidedUrl();
}

View 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;