File indexing completed on 2025-03-09 03:52:10
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2014-09-18 0007 * Description : slideshow error view 0008 * 0009 * SPDX-FileCopyrightText: 2014-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * SPDX-FileCopyrightText: 2019-2020 by Minh Nghia Duong <minhnghiaduong997 at gmail dot com> 0011 * 0012 * SPDX-License-Identifier: GPL-2.0-or-later 0013 * 0014 * ============================================================ */ 0015 0016 #include "slideerror.h" 0017 0018 // Qt includes 0019 0020 #include <QLabel> 0021 #include <QGridLayout> 0022 #include <QPalette> 0023 #include <QApplication> 0024 #include <QStyle> 0025 0026 // KDE includes 0027 0028 #include <klocalizedstring.h> 0029 0030 namespace DigikamGenericSlideShowPlugin 0031 { 0032 0033 class Q_DECL_HIDDEN SlideError::Private 0034 { 0035 0036 public: 0037 0038 explicit Private() 0039 : errorMsg(nullptr) 0040 { 0041 } 0042 0043 QLabel* errorMsg; 0044 }; 0045 0046 SlideError::SlideError(QWidget* const parent) 0047 : QWidget(parent), 0048 d (new Private) 0049 { 0050 setMouseTracking(true); 0051 setAutoFillBackground(true); 0052 0053 const int spacing = qMin(QApplication::style()->pixelMetric(QStyle::PM_LayoutHorizontalSpacing), 0054 QApplication::style()->pixelMetric(QStyle::PM_LayoutVerticalSpacing)); 0055 0056 QPalette palette; 0057 palette.setColor(backgroundRole(), Qt::black); 0058 setPalette(palette); 0059 0060 d->errorMsg = new QLabel(this); 0061 d->errorMsg->setAlignment(Qt::AlignCenter); 0062 0063 QGridLayout* const grid = new QGridLayout(this); 0064 grid->addWidget(d->errorMsg, 1, 0, 1, 3 ); 0065 grid->setColumnStretch(0, 10); 0066 grid->setColumnStretch(2, 10); 0067 grid->setRowStretch(0, 10); 0068 grid->setRowStretch(2, 10); 0069 grid->setContentsMargins(spacing, spacing, spacing, spacing); 0070 grid->setSpacing(spacing); 0071 } 0072 0073 SlideError::~SlideError() 0074 { 0075 delete d; 0076 } 0077 0078 void SlideError::setCurrentUrl(const QUrl& url) 0079 { 0080 d->errorMsg->setText(i18n("An error has occurred to show item\n%1", url.fileName())); 0081 } 0082 0083 } // namespace DigikamGenericSlideShowPlugin 0084 0085 #include "moc_slideerror.cpp"