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