/*
 * Copyright (C) 2023 Tianjin KYLIN Information Technology Co., Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 *
**/
#include "klabel.h"
#include "configuration.h"
#include "commonfunc.h"
#include <QFont>
#include <QApplication>
#include <QToolTip>

KLabel::KLabel(QWidget *parent)
    : QLabel(parent),
      configuration(Configuration::instance())
{
     curFontSize = configuration->getFontSize();
     m_ptToPx = configuration->getPtToPx();
     this->setStyleSheet("QLabel{color: white;}"
                         "QToolTip{border-radius:4px; background-color:#FFFFFF; color:black;}");
}

void KLabel::setFontSize(int fontSize)
{
    sysFont.setPointSize((fontSize +curFontSize) *m_ptToPx);
    this->setFont(sysFont);
    QToolTip::setFont(sysFont);
}

void KLabel::setElideText(const QString text, int width, int size)
{
    sysFont.setPointSize((size + curFontSize) *m_ptToPx);
    QString str = ElideText(sysFont,width,text);
    if(text != str)
         this->setToolTip(text);
    if(text == str)
        this->setToolTip("");
    this->setText(str);
}
