autosaver.h
上传用户:huahtool
上传日期:2015-12-10
资源大小:1089k
文件大小:2k
源码类别:

浏览器

开发平台:

Visual C++

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the demonstration applications of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. #ifndef AUTOSAVER_H
  38. #define AUTOSAVER_H
  39. #include <QtCore/QObject>
  40. #include <QtCore/QBasicTimer>
  41. #include <QtCore/QTime>
  42. /*
  43.     This class will call the save() slot on the parent object when the parent changes.
  44.     It will wait several seconds after changed() to combining multiple changes and
  45.     prevent continuous writing to disk.
  46.   */
  47. class AutoSaver : public QObject {
  48. Q_OBJECT
  49. public:
  50.     AutoSaver(QObject *parent);
  51.     ~AutoSaver();
  52.     void saveIfNeccessary();
  53. public slots:
  54.     void changeOccurred();
  55. protected:
  56.     void timerEvent(QTimerEvent *event);
  57. private:
  58.     QBasicTimer m_timer;
  59.     QTime m_firstChange;
  60. };
  61. #endif // AUTOSAVER_H