You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ksquirrel/ksquirrel/sq_dir.cpp

93 lines
2.5 KiB

/***************************************************************************
sq_dir.cpp - description
-------------------
begin : ??? ??? 20 2004
copyright : (C) 2004 by Baryshev Dmitry
email : ksquirrel.iv@gmail.com
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <tqstringlist.h>
#include <tqfile.h>
#include <tqdatetime.h>
#include <tqfileinfo.h>
#include <kurl.h>
#include "sq_dir.h"
#include "sq_thumbnailinfo.h"
SQ_Dir::SQ_Dir() : TQDir()
{}
SQ_Dir::SQ_Dir(Prefix p) : TQDir()
{
switch(p)
{
case SQ_Dir::DirectoryBasket:
setRoot("directorybasket");
break;
case SQ_Dir::Basket:
setRoot("basket");
break;
case SQ_Dir::Categories:
setRoot("categories");
break;
}
}
SQ_Dir::~SQ_Dir()
{}
/*
* Create relative directory in storage.
*
* For example, if prefix == Thumbnails,
* mkdir("/mnt/win_c") will create
* ~/.ksquirrel/thumbnails/mnt/win_c.
*/
bool SQ_Dir::mkdir(const TQString &relpath)
{
TQStringList paths = TQStringList::split('/', TQDir::cleanDirPath(relpath));
cd(m_root);
// recursively create directories
for(TQStringList::iterator it = paths.begin();it != paths.end();++it)
{
if(!exists(*it, false))
if(!TQDir::mkdir(*it))
return false;
cd(*it);
}
return true;
}
void SQ_Dir::setRoot(const TQString &name)
{
m_root = TQDir::cleanDirPath(homeDirPath() + TQDir::separator() + TQString::fromLatin1(".ksquirrel"));
TQDir::mkdir(m_root);
m_root = TQDir::cleanDirPath(m_root + TQDir::separator() + name);
TQDir::mkdir(m_root);
}
TQString SQ_Dir::absPath(const KURL &relurl)
{
return m_root + TQDir::separator() + relurl.path();
}