110 lines
2.3 KiB
C++
110 lines
2.3 KiB
C++
/* 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.
|
|
*/
|
|
|
|
#include "instancebase.h"
|
|
|
|
#include <QFileInfo>
|
|
#include <QDir>
|
|
|
|
#include "../util/pathutils.h"
|
|
|
|
InstanceBase::InstanceBase(QString dir, QObject *parent) :
|
|
QObject(parent),
|
|
rootDir(dir)
|
|
{
|
|
QFileInfo cfgFile(PathCombine(rootDir, "instance.cfg"));
|
|
|
|
if (cfgFile.exists())
|
|
{
|
|
if(!config.loadFile(cfgFile.absoluteFilePath()))
|
|
{
|
|
QString debugmsg("Can't load instance config file for instance ");
|
|
debugmsg+= getInstID();
|
|
qDebug(debugmsg.toLocal8Bit());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
QString debugmsg("Can't find instance config file for instance ");
|
|
debugmsg+= getInstID();
|
|
debugmsg += " : ";
|
|
debugmsg +=
|
|
debugmsg+=" ... is this an instance even?";
|
|
qDebug(debugmsg.toLocal8Bit());
|
|
}
|
|
currentGroup = nullptr;
|
|
}
|
|
|
|
QString InstanceBase::getRootDir() const
|
|
{
|
|
return rootDir;
|
|
}
|
|
|
|
|
|
///////////// Config Values /////////////
|
|
|
|
// Name
|
|
QString InstanceBase::getInstName() const
|
|
{
|
|
return config.get("name", "Unnamed").toString();
|
|
}
|
|
|
|
void InstanceBase::setInstName(QString name)
|
|
{
|
|
config.set("name", name);
|
|
}
|
|
|
|
QString InstanceBase::getInstID() const
|
|
{
|
|
return QDir(rootDir).dirName();
|
|
}
|
|
|
|
InstanceModelItem* InstanceBase::getParent() const
|
|
{
|
|
return currentGroup;
|
|
}
|
|
|
|
QVariant InstanceBase::data ( int role ) const
|
|
{
|
|
switch(role)
|
|
{
|
|
case Qt::DisplayRole:
|
|
return getInstName();
|
|
default:
|
|
return QVariant();
|
|
}
|
|
}
|
|
int InstanceBase::getRow() const
|
|
{
|
|
return currentGroup->getIndexOf((InstanceBase*)this);
|
|
}
|
|
|
|
InstanceModelItem* InstanceBase::getChild ( int index ) const
|
|
{
|
|
return nullptr;
|
|
}
|
|
InstanceModel* InstanceBase::getModel() const
|
|
{
|
|
return currentGroup->getModel();
|
|
}
|
|
IMI_type InstanceBase::getModelItemType() const
|
|
{
|
|
return IMI_Instance;
|
|
}
|
|
int InstanceBase::numChildren() const
|
|
{
|
|
return 0;
|
|
}
|