File indexing completed on 2024-04-28 04:37:31
0001 /* 0002 SPDX-FileCopyrightText: 2010 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #ifndef KDEVPLATFORM_HOLDUPDATES_H 0008 #define KDEVPLATFORM_HOLDUPDATES_H 0009 0010 #include "sublimeexport.h" 0011 0012 class QWidget; 0013 0014 namespace Sublime 0015 { 0016 /** 0017 This class makes it possible to have nested scoped calls to QWidget::setUpdatesEnabled. 0018 0019 For that matter: 0020 0021 @code 0022 { 0023 ... 0024 setUpdatesEnabled(false); 0025 someCall(); 0026 setUpdatesEnabled(true); 0027 ... 0028 } 0029 @endcode 0030 0031 Would be equivalent to 0032 0033 @code 0034 { 0035 ... 0036 HoldUpdates hu(this); 0037 someCall(); 0038 hu.stop();//if we need to, otherwise we can let it fall out of scope 0039 ... 0040 } 0041 @endcode 0042 0043 if someCall was using HoldUpdates too, it will make sure to only call setUpdatesEnabled(true) in case it's needed. 0044 0045 */ 0046 class KDEVPLATFORMSUBLIME_EXPORT HoldUpdates { 0047 public: 0048 explicit HoldUpdates(QWidget* w); 0049 ~HoldUpdates(); 0050 void stop(); 0051 0052 private: 0053 bool m_wasupdating; 0054 bool m_done; 0055 QWidget* const m_w; 0056 }; 0057 0058 } 0059 0060 #endif // KDEVPLATFORM_HOLDUPDATES_H 0061