File indexing completed on 2024-11-10 07:17:54
0001 /* This file is part of the KDE project 0002 Copyright (C) 2003-2010 Jarosław Staniek <staniek@kde.org> 0003 0004 This library is free software; you can redistribute it and/or 0005 modify it under the terms of the GNU Library General Public 0006 License as published by the Free Software Foundation; either 0007 version 2 of the License, or (at your option) any later version. 0008 0009 This library is distributed in the hope that it will be useful, 0010 but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0012 Library General Public License for more details. 0013 0014 You should have received a copy of the GNU Library General Public License 0015 along with this library; see the file COPYING.LIB. If not, write to 0016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0017 * Boston, MA 02110-1301, USA. 0018 */ 0019 0020 #ifndef KDB_OBJECT_H 0021 #define KDB_OBJECT_H 0022 0023 #include "kdb_export.h" 0024 #include "KDbGlobal.h" 0025 0026 /*! Provides common attributes for KDb objects: id, name, caption, 0027 help text. A KDb object is typically storable in database, for example: 0028 table schema or query schema. 0029 Default type of object is KDb::UnknownObjectType. 0030 */ 0031 class KDB_EXPORT KDbObject //SDC: operator== virtual_dtor 0032 { 0033 public: 0034 /*! 0035 @getter 0036 @return the type of this object. 0037 */ 0038 int type; //SDC: default=KDb::UnknownObjectType no_setter 0039 0040 /*! 0041 @getter 0042 @return the identifier of this object, default is -1. 0043 @setter 0044 Sets the identifier for this object. 0045 */ 0046 int id; //SDC: default=-1 0047 0048 /*! 0049 @getter 0050 @return the name of this object. 0051 @setter 0052 Sets the name for this object. It should be valid identifier, 0053 i.e. start with underscore or latin letter, contain underscores, latin letters and digits. 0054 */ 0055 QString name; //SDC: 0056 0057 /*! 0058 @getter 0059 @return the caption of this object, which is user-visible extended name which can be used 0060 in user interfaces and translated. 0061 @setter 0062 Sets the caption for this object. 0063 */ 0064 QString caption; //SDC: 0065 0066 /*! 0067 @getter 0068 @return the description of this object, which is explanation 0069 of the object's purpose, etc. 0070 It can be any text and can be used in user interfaces and translated. 0071 @setter 0072 Sets the description for this object. 0073 */ 0074 QString description; //SDC: 0075 0076 /*! @return caption of this object if it is not empty, else returns object's name. 0077 */ 0078 inline QString captionOrName() const { 0079 return d->caption.isEmpty() ? d->name : d->caption; 0080 } 0081 0082 //! Creates new object of type @a type. */ 0083 explicit KDbObject(int type); 0084 0085 protected: 0086 //! Clears all properties except 'type'. 0087 virtual void clear(); 0088 }; 0089 0090 //! Sends information about object @a object to debug output @a dbg. 0091 KDB_EXPORT QDebug operator<<(QDebug dbg, const KDbObject& object); 0092 0093 #endif