kmail
kcursorsaver.h
Go to the documentation of this file.00001 #ifndef kcursorsaver_h 00002 #define kcursorsaver_h 00003 00004 #include <qcursor.h> 00005 #include <qapplication.h> 00006 00013 class KCursorSaver : public Qt 00014 { 00015 public: 00017 KCursorSaver(Qt::CursorShape shape) { 00018 QApplication::setOverrideCursor( QCursor(shape) ); 00019 inited = true; 00020 } 00021 00023 KCursorSaver( const KCursorSaver &rhs ) { 00024 *this = rhs; 00025 } 00026 00028 ~KCursorSaver() { 00029 if (inited) 00030 QApplication::restoreOverrideCursor(); 00031 } 00032 00034 inline void restoreCursor(void) { 00035 QApplication::restoreOverrideCursor(); 00036 inited = false; 00037 } 00038 00039 protected: 00040 void operator=( const KCursorSaver &rhs ) { 00041 inited = rhs.inited; 00042 rhs.inited = false; 00043 } 00044 00045 private: 00046 mutable bool inited; 00047 }; 00048 00052 namespace KBusyPtr { 00053 inline KCursorSaver idle() { 00054 return KCursorSaver(QCursor::ArrowCursor); 00055 } 00056 inline KCursorSaver busy() { 00057 return KCursorSaver(QCursor::WaitCursor); 00058 } 00059 } 00060 00061 #endif /*kbusyptr_h_*/