From 686f58c997dce499ab90c7ba035e2c387ab96ec4 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 13 May 2018 16:58:53 +0200 Subject: Download widget item tooltip Simplified ElidedLabel --- lib/downloads/widgets/elidedlabel.cpp | 72 +++++++---------------------------- 1 file changed, 13 insertions(+), 59 deletions(-) (limited to 'lib/downloads/widgets/elidedlabel.cpp') diff --git a/lib/downloads/widgets/elidedlabel.cpp b/lib/downloads/widgets/elidedlabel.cpp index f5db921..d898da0 100644 --- a/lib/downloads/widgets/elidedlabel.cpp +++ b/lib/downloads/widgets/elidedlabel.cpp @@ -1,58 +1,9 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ /* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/smolbote.hg * - * SPDX-License-Identifier: BSD-3-Clause + * SPDX-License-Identifier: GPL-3.0 */ #include "elidedlabel.h" @@ -62,23 +13,26 @@ ElidedLabel::ElidedLabel(QWidget *parent) : QLabel(parent) - , elided(false) - , content("elided_label") { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); } -void ElidedLabel::setContent(const QString &newText) +void ElidedLabel::setText(const QString &text) { - content = newText; - setText(newText); + setToolTip(text); + content = text; + elideText(); } -void ElidedLabel::resizeEvent(QResizeEvent *event) +void ElidedLabel::elideText() { - QLabel::resizeEvent(event); - QFontMetrics font = this->fontMetrics(); QString elidedLine = font.elidedText(content, Qt::ElideRight, width()); - setText(elidedLine); + QLabel::setText(elidedLine); +} + +void ElidedLabel::resizeEvent(QResizeEvent *event) +{ + QLabel::resizeEvent(event); + elideText(); } -- cgit v1.2.1