File indexing completed on 2024-04-28 05:49:33
0001 /* 0002 SPDX-FileCopyrightText: 2014 Christoph Cullmann <cullmann@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QPointer> 0010 #include <QWidget> 0011 0012 class KateUpdateDisabler 0013 { 0014 public: 0015 /** 0016 * Disable updates for given widget. 0017 * Will auto-enable them on destruction, like a mutex locker releases its lock. 0018 * @param widget widget to disable updates for 0019 */ 0020 explicit KateUpdateDisabler(QWidget *widget) 0021 : m_widget((widget && widget->updatesEnabled()) ? widget : nullptr) 0022 { 0023 if (m_widget) { 0024 m_widget->setUpdatesEnabled(false); 0025 } 0026 } 0027 0028 /** 0029 * Enable updates again on destruction. 0030 */ 0031 ~KateUpdateDisabler() 0032 { 0033 if (m_widget) { 0034 m_widget->setUpdatesEnabled(true); 0035 } 0036 } 0037 0038 private: 0039 /** 0040 * No copying please 0041 */ 0042 Q_DISABLE_COPY(KateUpdateDisabler) 0043 0044 /** 0045 * pointer to widget, if not null, enable/disable widgets 0046 */ 0047 QPointer<QWidget> m_widget; 0048 };