| 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() { }