forked from mia/Aegisub
Commit the beginings of the Path class to hold the internal representation of paths, this is extremely rough since I have to wait until we can do charset conversion in libaegisub to handle windows paths before going any further.
Originally committed to SVN as r4359.
This commit is contained in:
parent
d171d0aef8
commit
2d57debd49
4 changed files with 181 additions and 0 deletions
35
aegisub/libaegisub/common/path.cpp
Normal file
35
aegisub/libaegisub/common/path.cpp
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
// Copyright (c) 2010, Amar Takhar <verm@aegisub.org>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
/// @file path.cpp
|
||||||
|
/// @brief Common paths.
|
||||||
|
/// @ingroup libaegisub
|
||||||
|
|
||||||
|
|
||||||
|
#include <libaegisub/path.h>
|
||||||
|
|
||||||
|
namespace agi {
|
||||||
|
|
||||||
|
Path::Path(const std::string &file, const std::string& default_path): path_file(file), path_default(default_path) {
|
||||||
|
opt = new agi::Options(file, default_path);
|
||||||
|
opt->ConfigUser();
|
||||||
|
}
|
||||||
|
|
||||||
|
Path::~Path() {
|
||||||
|
opt->Flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace agi
|
56
aegisub/libaegisub/include/libaegisub/path.h
Normal file
56
aegisub/libaegisub/include/libaegisub/path.h
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
// Copyright (c) 2010, Amar Takhar <verm@aegisub.org>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
/// @file path.h
|
||||||
|
/// @brief Common paths.
|
||||||
|
/// @ingroup libaegisub
|
||||||
|
|
||||||
|
#ifndef AGI_PRE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <libaegisub/option.h>
|
||||||
|
|
||||||
|
namespace agi {
|
||||||
|
|
||||||
|
/// @class Path
|
||||||
|
// Internal representation of all paths in aegisub.
|
||||||
|
class Path {
|
||||||
|
public:
|
||||||
|
|
||||||
|
/// Constructor
|
||||||
|
Path(const std::string &file, const std::string& default_path);
|
||||||
|
|
||||||
|
/// Destructor
|
||||||
|
~Path();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/// Location of path config file.
|
||||||
|
const std::string path_file;
|
||||||
|
|
||||||
|
/// Internal default config.
|
||||||
|
const std::string path_default;
|
||||||
|
|
||||||
|
/// Options object.
|
||||||
|
Options *opt;
|
||||||
|
|
||||||
|
const char *Data(); ///< Shared resources
|
||||||
|
const char *Doc(); ///< Documents
|
||||||
|
const char *User(); ///< User config directory
|
||||||
|
const char *Locale(); ///< Locale files
|
||||||
|
const char *Temp(); ///< Temporary storage
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace agi
|
63
aegisub/libaegisub/unix/path.cpp
Normal file
63
aegisub/libaegisub/unix/path.cpp
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
// Copyright (c) 2010, Amar Takhar <verm@aegisub.org>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
//
|
||||||
|
// $Id$
|
||||||
|
|
||||||
|
/// @file path.cpp
|
||||||
|
/// @brief Common paths.
|
||||||
|
/// @ingroup libaegisub
|
||||||
|
|
||||||
|
#include "acconf.h"
|
||||||
|
|
||||||
|
#include <libaegisub/path.h>
|
||||||
|
|
||||||
|
namespace agi {
|
||||||
|
|
||||||
|
const char *Path::Data() {
|
||||||
|
std::string tmp;
|
||||||
|
tmp.assign(INSTALL_PREFIX);
|
||||||
|
tmp.append("-");
|
||||||
|
tmp.append(AEGISUB_VERSION_DATA);
|
||||||
|
return tmp.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *Path::Doc() {
|
||||||
|
std::string tmp;
|
||||||
|
tmp.assign(INSTALL_PREFIX);
|
||||||
|
tmp.append("-");
|
||||||
|
tmp.append(AEGISUB_VERSION_DATA);
|
||||||
|
return tmp.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *Path::User() {
|
||||||
|
std::string tmp;
|
||||||
|
tmp.assign("~/.aegisub-");
|
||||||
|
tmp.append(AEGISUB_VERSION_DATA);
|
||||||
|
return tmp.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
const char *Path::Locale() {
|
||||||
|
std::string tmp;
|
||||||
|
tmp.assign("~/.aegisub-");
|
||||||
|
tmp.append(AEGISUB_VERSION_DATA);
|
||||||
|
return tmp.c_str();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const char *Path::Temp() {
|
||||||
|
const char *tmp = "/tmp";
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace agi
|
27
aegisub/src/libresrc/default_path.json
Normal file
27
aegisub/src/libresrc/default_path.json
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"Backup" : "^USER/backup",
|
||||||
|
"Autosave" : "^USER/autosave",
|
||||||
|
"Data" : "^DATA",
|
||||||
|
"User" : "^USER",
|
||||||
|
"Temp" : "^TEMP",
|
||||||
|
"Dictionary" : {
|
||||||
|
"Local" {
|
||||||
|
"Lang" : "^CONFIG/dictionary/lang",
|
||||||
|
"Thesarus" : "^CONFIG/dictionary/thesaurus",
|
||||||
|
"Personal" : "^CONFIG/dictionary/personal"
|
||||||
|
}
|
||||||
|
"Lang" : [],
|
||||||
|
"Thesaurus" : []
|
||||||
|
},
|
||||||
|
"Automation" {
|
||||||
|
"Autoload" : [],
|
||||||
|
"Include" : []
|
||||||
|
}
|
||||||
|
"Crash" : "^CONFIG/crash",
|
||||||
|
"Font" {
|
||||||
|
"FontConfig" {
|
||||||
|
"Cache" : "^CONFIG/fontconfig_cache"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Log" : "^CONFIG/log"
|
||||||
|
}
|
Loading…
Reference in a new issue