/* QCD Utils - Qt bindings/utilites for CD Utils Ivan Pelipenko peri4ko@yandex.ru, Andrey Bychkov work.a.b@yandex.ru This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef QCD_CORE_H #define QCD_CORE_H #include #include #include #include "piobject.h" #include "cdutils_types.h" class QCDCore; class __QCore_Initializer__ { public: __QCore_Initializer__(); ~__QCore_Initializer__(); static int count_; static QCDCore * __instance__; }; class QCDCore: public QObject, public PIObject { Q_OBJECT PIOBJECT(QCDCore) friend class __QCore_Initializer__; public: static QCDCore * instance() {return __QCore_Initializer__::__instance__;} int bindWindow(QWidget * wnd); int bindWidgets(QList wl); bool bindWidget(QWidget * w); bool bindWidget(QWidget * w, const CDUtils::CDType & k); int unbindWindow(QWidget * wnd); int unbindWidgets(QList wl); bool unbindWidget(QWidget * w); void unbindAllWidgets(); void updateBindedWidget(const CDUtils::CDType & k_); void setDirectKEnabled(bool yes) {direct_on = yes;} bool isDirectKEnabled() const {return direct_on;} private: QCDCore(); ~QCDCore(); void bindView(QWidget * v); void setWidgetValue(QWidget * w, const CDUtils::CDType & k); void finishEdit(const QList > & pathes); EVENT_HANDLER(void, K_ChangedGlobal); QMultiMap > binded_widgets; bool updating, direct_on; private slots: void slotBool(bool v); void slotInt(int v); void slotDouble(double v); void slotText(QString v); void slotVariant(QVariant v); void slotDestroyed(QObject * ); public slots: void updateBindedWidgets(); signals: void updateViewRequest(); }; static __QCore_Initializer__ __QCore_initializer__; #endif // QCD_CORE_H