/* Copyright 2013 MultiMC Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef INSTANCEBASE_H #define INSTANCEBASE_H #include #include #include "../data/inifile.h" #include "instancemodel.h" class InstanceBase : public QObject, public InstanceModelItem { friend class InstanceGroup; Q_OBJECT public: explicit InstanceBase(QString rootDir, QObject *parent = 0); QString getRootDir() const; QString getInstName() const; void setInstName(QString name); QString getInstID() const; virtual IMI_type getModelItemType() const; virtual InstanceModelItem* getParent() const; virtual int numChildren() const; virtual InstanceModelItem* getChild ( int index ) const; virtual InstanceModel* getModel() const; virtual QVariant data ( int column ) const; virtual int getRow() const; private: void setGroup ( InstanceGroup* group ) { currentGroup = group; }; QString rootDir; INIFile config; InstanceGroup * currentGroup; }; #endif // INSTANCEBASE_H