File indexing completed on 2024-04-21 04:58:12
0001 /* 0002 This file is part of the KDE project 0003 SPDX-FileCopyrightText: 2008 David Faure <faure@kde.org> 0004 SPDX-FileCopyrightText: 2009 Christoph Feck <christoph@maxiom.de> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "konqanimatedlogo_p.h" 0010 0011 #include <KIconLoader> 0012 0013 #include <QEvent> 0014 #include <QToolBar> 0015 0016 KonqAnimatedLogo::KonqAnimatedLogo(QWidget *parent) 0017 : KAnimatedButton(parent) 0018 { 0019 setAutoRaise(true); 0020 setFocusPolicy(Qt::NoFocus); 0021 setToolButtonStyle(Qt::ToolButtonIconOnly); 0022 QToolBar *bar = qobject_cast<QToolBar *>(parent); 0023 if (bar) { 0024 connectToToolBar(bar); 0025 } 0026 setAnimatedLogoSize(iconSize()); 0027 } 0028 0029 void KonqAnimatedLogo::changeEvent(QEvent *event) 0030 { 0031 KAnimatedButton::changeEvent(event); 0032 if (event->type() == QEvent::ParentAboutToChange) { 0033 if (parentWidget()) { 0034 disconnect(parentWidget(), SIGNAL(iconSizeChanged(QSize)), this, SLOT(setAnimatedLogoSize())); 0035 } 0036 } else if (event->type() == QEvent::ParentChange) { 0037 QToolBar *bar = qobject_cast<QToolBar *>(parentWidget()); 0038 if (bar) { 0039 connectToToolBar(bar); 0040 } 0041 } 0042 } 0043 0044 void KonqAnimatedLogo::connectToToolBar(QToolBar *bar) 0045 { 0046 setAnimatedLogoSize(bar->iconSize()); 0047 connect(bar, SIGNAL(iconSizeChanged(QSize)), SLOT(setAnimatedLogoSize(QSize))); 0048 } 0049 0050 void KonqAnimatedLogo::setAnimatedLogoSize(const QSize &size) 0051 { 0052 setIconSize(size); 0053 const int sizeToLoad = qMin(size.width(), size.height()); 0054 setAnimationPath(KIconLoader::global()->iconPath(QStringLiteral("process-working-kde"), -sizeToLoad)); 0055 }