Revision 1 (by moose, 2006/03/06 10:35:57) Initial Import
#include <qdebug.h>
#include "SciQApp.h"
#include "SciQUtil.h"
#include "SciQWorkspace.h"

SciQWorkspaceItem::SciQWorkspaceItem(Type t, QString n, SciQWorkspaceItem *p, SciQWorkspace *w) :
	name(n),
	parent(p),
	ws(w),
	type(t)
{
	if(!parent) {
		if(!ws)
			path = QDir::currentPath();
		else
			path = ws->getPath();
	} else
		path = parent->getPath();

	QFileInfo fi(n);
	if(fi.isAbsolute())
		path = n;
	else
		path = catdir(QStringList() + path + n);

	info = QFileInfo(path);

	//qDebug() << __PRETTY_FUNCTION__ << ": " << path;
}

QString SciQWorkspaceItem::getPath()
{
//	QFileInfo fi(name);
//	return fi.absoluteFilePath(); //catdir(QStringList() + (ws ? ws->getPath() : QDir::currentPath()) + fi.fileName());
//	if(fi.isAbsolute())
//		return name;

	return path; //catdir(QStringList() + ((parent && (parent->asDirItem() || parent->asWorkspace())) ? parent->getPath() : "") + name);
}

int SciQWorkspaceItem::row()
{
//	update();
	SciQWorkspaceItemList l;
	if(parent && parent->asDirItem())
		l = parent->asDirItem()->list;
	else
	if(parent && parent->asWorkspace())
		l = parent->asWorkspace()->list;
	else
	if(ws)
		l = ws->list;

	int index = l.indexOf(this);

//	qDebug() << __PRETTY_FUNCTION__ << ": " << name << " row: " << index;

	return index >= 0 ? index : 0;
}

QIcon SciQWorkspaceItem::getIcon() { return SciQApp::getIcon(icon); }
SciQWorkspace         *SciQWorkspaceItem::asWorkspace() { return static_cast<SciQWorkspace         *>(type == Workspace ? this : 0); }
SciQWorkspaceFileItem *SciQWorkspaceItem::asFileItem()  { return static_cast<SciQWorkspaceFileItem *>(type == File      ? this : 0); }
SciQWorkspaceDirItem  *SciQWorkspaceItem::asDirItem()   { return static_cast<SciQWorkspaceDirItem  *>(type == Dir       ? this : 0); }

SciQWorkspaceItem::~SciQWorkspaceItem() { }