From e9ae80694875f869892f13f4fcaf1170a00dea41 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdewebdev@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kommander/editor/metadatabase.h | 222 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 kommander/editor/metadatabase.h (limited to 'kommander/editor/metadatabase.h') diff --git a/kommander/editor/metadatabase.h b/kommander/editor/metadatabase.h new file mode 100644 index 00000000..8bb79c38 --- /dev/null +++ b/kommander/editor/metadatabase.h @@ -0,0 +1,222 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qt Designer. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#ifndef METADATABASE_H +#define METADATABASE_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "pixmapchooser.h" + +class QObject; +class QPixmap; + +class MetaDataBase +{ +public: + struct Connection + { + QObject *sender, *receiver; + QCString signal, slot; + bool operator==( const Connection &c ) const { + return sender == c.sender && receiver == c.receiver && + signal == c.signal && slot == c.slot ; + } + }; + + struct Slot + { + QString returnType; + QCString slot; + QString specifier; + QString access; + QString language; + bool operator==( const Slot &s ) const { + return ( returnType == s.returnType && + slot == s.slot && + access == s.access && + specifier == s.specifier && + language == s.language + ); + } + }; + + struct Property + { + QCString property; + QString type; + bool operator==( const Property &p ) const { + return property == p.property && + type == p.type; + } + }; + + struct CustomWidget + { + CustomWidget(); + CustomWidget( const CustomWidget &w ); + ~CustomWidget() { delete pixmap; } // inlined to work around 2.7.2.3 bug + bool operator==( const CustomWidget &w ) const; + CustomWidget &operator=( const CustomWidget &w ); + + bool hasSignal( const QCString &signal ) const; + bool hasSlot( const QCString &slot ) const; + bool hasProperty( const QCString &prop ) const; + + enum IncludePolicy { Global, Local }; + QString className; + QString includeFile; + IncludePolicy includePolicy; + QSize sizeHint; + QSizePolicy sizePolicy; + QPixmap *pixmap; + QValueList lstSignals; + QValueList lstSlots; + QValueList lstProperties; + int id; + bool isContainer; + }; + + struct Include + { + Include() : header(), location(), implDecl( "in implementation" ) {} + QString header; + QString location; + bool operator==( const Include &i ) const { + return header == i.header && location == i.location; + } + QString implDecl; + }; + + struct MetaInfo + { + QString license; + QString version; + QString comment; + QString author; + }; + + struct EventDescription + { + QString name; + QStringList args; +#if defined(Q_FULL_TEMPLATE_INSTANTIATION) + bool operator==( const EventDescription& ) const { return FALSE; } +#endif + }; + + MetaDataBase(); + static void clearDataBase(); + + static void addEntry( QObject *o ); + static void removeEntry( QObject *o ); + static void setPropertyChanged( QObject *o, const QString &property, bool changed ); + static bool isPropertyChanged( QObject *o, const QString &property ); + static void setPropertyComment( QObject *o, const QString &property, const QString &comment ); + static QString propertyComment( QObject *o, const QString &property ); + static QStringList changedProperties( QObject *o ); + + static void setFakeProperty( QObject *o, const QString &property, const QVariant& value ); + static QVariant fakeProperty( QObject * o, const QString &property ); + static QMap* fakeProperties( QObject* o ); + + static void setSpacing( QObject *o, int spacing ); + static int spacing( QObject *o ); + static void setMargin( QObject *o, int margin ); + static int margin( QObject *o ); + + static void addConnection( QObject *o, QObject *sender, const QCString &signal, + QObject *receiver, const QCString &slot ); + static void removeConnection( QObject *o, QObject *sender, const QCString &signal, + QObject *receiver, const QCString &slot ); + static QValueList connections( QObject *o ); + static QValueList connections( QObject *o, QObject *sender, QObject *receiver ); + static QValueList connections( QObject *o, QObject *object ); + static void doConnections( QObject *o ); + + static void addSlot( QObject *o, const QCString &slot, const QString& specifier, const QString &access, const QString &language, const QString &returnType ); + static void removeSlot( QObject *o, const QCString &slot, const QString& specifier, const QString &access, const QString &language, const QString &returnType ); + static void removeSlot( QObject *o, const QString &slot ); + static QValueList slotList( QObject *o ); + static bool isSlotUsed( QObject *o, const QCString &slot ); + static bool hasSlot( QObject *o, const QCString &slot, bool onlyCustom = FALSE ); + static void changeSlot( QObject *o, const QCString &slot, const QCString &newName ); + static void changeSlotAttributes( QObject *o, const QCString &slot, + const QString& specifier, const QString &access, + const QString &language, const QString &returnType ); + static QString languageOfSlot( QObject *o, const QCString &slot ); + static void setSlotList( QObject *o, const QValueList &slotList ); + + static bool addCustomWidget( CustomWidget *w ); + static void removeCustomWidget( CustomWidget *w ); + static QPtrList *customWidgets(); + static CustomWidget *customWidget( int id ); + static bool isWidgetNameUsed( CustomWidget *w ); + static bool hasCustomWidget( const QString &className ); + + static void setTabOrder( QWidget *w, const QWidgetList &order ); + static QWidgetList tabOrder( QWidget *w ); + + static void setIncludes( QObject *o, const QValueList &incs ); + static QValueList includes( QObject *o ); + + static void setForwards( QObject *o, const QStringList &fwds ); + static QStringList forwards( QObject *o ); + + static void setSignalList( QObject *o, const QStringList &sigs ); + static QStringList signalList( QObject *o ); + + static void setMetaInfo( QObject *o, MetaInfo mi ); + static MetaInfo metaInfo( QObject *o ); + + static void setCursor( QWidget *w, const QCursor &c ); + static QCursor cursor( QWidget *w ); + + static void setPixmapArgument( QObject *o, int pixmap, const QString &arg ); + static QString pixmapArgument( QObject *o, int pixmap ); + static void clearPixmapArguments( QObject *o ); + + static void setPixmapKey( QObject *o, int pixmap, const QString &arg ); + static QString pixmapKey( QObject *o, int pixmap ); + static void clearPixmapKeys( QObject *o ); + + static void setColumnFields( QObject *o, const QMap &columnFields ); + static QMap columnFields( QObject *o ); + + static QString normalizeSlot( const QString &slot ); + + static void clear( QObject *o ); + + static void setExportMacro( QObject *o, const QString ¯o ); + static QString exportMacro( QObject *o ); + + static bool hasObject( QObject *o ); + +}; + +#endif -- cgit v1.2.1