2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
|
|
|
|
#include "toonz/toonzfolders.h"
|
|
|
|
#include "tsystem.h"
|
|
|
|
#include "tenv.h"
|
|
|
|
//#include "appmainshell.h"
|
|
|
|
#include "tconvert.h"
|
2016-06-02 23:36:29 +12:00
|
|
|
#include "toonz/preferences.h"
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
using namespace TEnv;
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getModulesDir() {
|
|
|
|
return getProfileFolder() + "layouts";
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePathSet ToonzFolder::getProjectsFolders() {
|
|
|
|
TFilePathSet fps =
|
|
|
|
getSystemVarPathSetValue(getSystemVarPrefix() + "PROJECTS");
|
|
|
|
if (fps.empty()) fps.push_back(TEnv::getStuffDir() + "Projects");
|
|
|
|
return fps;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getFirstProjectsFolder() {
|
|
|
|
TFilePathSet fps = getProjectsFolders();
|
|
|
|
if (fps.empty())
|
|
|
|
return TFilePath();
|
|
|
|
else
|
|
|
|
return *fps.begin();
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getLibraryFolder() {
|
|
|
|
TFilePath fp = getSystemVarPathValue(getSystemVarPrefix() + "LIBRARY");
|
|
|
|
if (fp == TFilePath()) fp = getStuffDir() + "library";
|
|
|
|
return fp;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getStudioPaletteFolder() {
|
|
|
|
TFilePath fp = getSystemVarPathValue(getSystemVarPrefix() + "STUDIOPALETTE");
|
|
|
|
if (fp == TFilePath()) fp = getStuffDir() + "studiopalette";
|
|
|
|
return fp;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getFxPresetFolder() {
|
|
|
|
TFilePath fp = getSystemVarPathValue(getSystemVarPrefix() + "FXPRESETS");
|
|
|
|
if (fp == TFilePath()) fp = getStuffDir() + "fxs";
|
|
|
|
return fp;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getCacheRootFolder() {
|
|
|
|
TFilePath fp = getSystemVarPathValue(getSystemVarPrefix() + "CACHEROOT");
|
|
|
|
if (fp == TFilePath()) fp = getStuffDir() + "cache";
|
|
|
|
return fp;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getProfileFolder() {
|
|
|
|
TFilePath fp = getSystemVarPathValue(getSystemVarPrefix() + "PROFILES");
|
|
|
|
if (fp == TFilePath()) fp = getStuffDir() + "profiles";
|
|
|
|
return fp;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getReslistPath(bool forCleanup) {
|
|
|
|
return getFirstProjectsFolder() +
|
|
|
|
(forCleanup ? "cleanupreslist.txt" : "reslist.txt");
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getTemplateModuleDir() {
|
|
|
|
// return getModulesDir() + getModuleName();
|
|
|
|
return getModulesDir() + "settings";
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getMyModuleDir() {
|
|
|
|
TFilePath fp(getTemplateModuleDir());
|
|
|
|
return fp.withName(fp.getWideName() + L"." +
|
|
|
|
TSystem::getUserName().toStdWString());
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getModuleFile(TFilePath filename) {
|
|
|
|
TFilePath fp = getMyModuleDir() + filename;
|
|
|
|
if (TFileStatus(fp).doesExist()) return fp;
|
|
|
|
fp = getTemplateModuleDir() + filename;
|
|
|
|
return fp;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getModuleFile(std::string fn) {
|
|
|
|
return ToonzFolder::getModuleFile(TFilePath(fn));
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
// turtle
|
|
|
|
TFilePath ToonzFolder::getRoomsDir() {
|
|
|
|
return getProfileFolder() + "layouts/rooms";
|
2016-06-02 23:36:29 +12:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getTemplateRoomsDir() {
|
|
|
|
return getRoomsDir() +
|
|
|
|
Preferences::instance()->getCurrentRoomChoice().toStdWString();
|
|
|
|
// TFilePath fp(getMyModuleDir() + TFilePath(mySettingsFileName));
|
|
|
|
// return getRoomsDir() + getModuleName();
|
2016-06-02 23:36:29 +12:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getMyRoomsDir() {
|
|
|
|
// TFilePath fp(getTemplateRoomsDir());
|
|
|
|
TFilePath fp(getProfileFolder());
|
|
|
|
return fp.withName(
|
|
|
|
fp.getWideName() + L"/layouts/personal/" +
|
|
|
|
Preferences::instance()->getCurrentRoomChoice().toStdWString() + L"." +
|
|
|
|
TSystem::getUserName().toStdWString());
|
2016-06-02 23:36:29 +12:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getRoomsFile(TFilePath filename) {
|
|
|
|
TFilePath fp = getMyRoomsDir() + filename;
|
|
|
|
if (TFileStatus(fp).doesExist()) return fp;
|
|
|
|
fp = getTemplateRoomsDir() + filename;
|
|
|
|
return fp;
|
2016-06-02 23:36:29 +12:00
|
|
|
}
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
TFilePath ToonzFolder::getRoomsFile(std::string fn) {
|
|
|
|
return ToonzFolder::getRoomsFile(TFilePath(fn));
|
2016-06-02 23:36:29 +12:00
|
|
|
}
|
|
|
|
|
2016-03-19 06:57:51 +13:00
|
|
|
//===================================================================
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
FolderListenerManager::FolderListenerManager() {}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
FolderListenerManager::~FolderListenerManager() {}
|
2016-03-19 06:57:51 +13:00
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
FolderListenerManager *FolderListenerManager::instance() {
|
|
|
|
static FolderListenerManager _instance;
|
|
|
|
return &_instance;
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void FolderListenerManager::notifyFolderChanged(const TFilePath &path) {
|
|
|
|
for (std::set<Listener *>::iterator i = m_listeners.begin();
|
|
|
|
i != m_listeners.end(); ++i)
|
|
|
|
(*i)->onFolderChanged(path);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void FolderListenerManager::addListener(Listener *listener) {
|
|
|
|
m_listeners.insert(listener);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
2016-06-15 18:43:10 +12:00
|
|
|
void FolderListenerManager::removeListener(Listener *listener) {
|
|
|
|
m_listeners.erase(listener);
|
2016-03-19 06:57:51 +13:00
|
|
|
}
|