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