本文整理汇总了C++中Extension::deactivated方法的典型用法代码示例。如果您正苦于以下问题:C++ Extension::deactivated方法的具体用法?C++ Extension::deactivated怎么用?C++ Extension::deactivated使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Extension
的用法示例。
在下文中一共展示了Extension::deactivated方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: location
/**
\brief Check if the dependency passes.
\return Whether or not the dependency passes.
This function depends largely on all of the enums. The first level
that is evaluted is the \c _type.
If the type is \c TYPE_EXTENSION then the id for the extension is
looked up in the database. If the extension is found, and it is
not deactivated, the dependency passes.
If the type is \c TYPE_EXECUTABLE or \c TYPE_FILE things are getting
even more interesting because now the \c _location variable is also
taken into account. First, the difference between the two is that
the file test for \c TYPE_EXECUTABLE also tests to make sure the
file is executable, besides checking that it exists.
If the \c _location is \c LOCATION_EXTENSIONS then the \c INKSCAPE_EXTENSIONDIR
is put on the front of the string with \c build_filename. Then the
appopriate filetest is run.
If the \c _location is \c LOCATION_ABSOLUTE then the file test is
run directly on the string.
If the \c _location is \c LOCATION_PATH or not specified then the
path is used to find the file. Each entry in the path is stepped
through, attached to the string, and then tested. If the file is
found then a TRUE is returned. If we get all the way through the
path then a FALSE is returned, the command could not be found.
*/
bool
Dependency::check (void) const
{
// std::cout << "Checking: " << *this << std::endl;
if (_string == NULL) return FALSE;
switch (_type) {
case TYPE_EXTENSION: {
Extension * myext = db.get(_string);
if (myext == NULL) return FALSE;
if (myext->deactivated()) return FALSE;
break;
}
case TYPE_EXECUTABLE:
case TYPE_FILE: {
Glib::FileTest filetest = Glib::FILE_TEST_EXISTS;
if (_type == TYPE_EXECUTABLE) {
filetest |= Glib::FILE_TEST_IS_EXECUTABLE;
}
Glib::ustring location(_string);
switch (_location) {
case LOCATION_EXTENSIONS: {
for (unsigned int i=0; i<Inkscape::Extension::Extension::search_path.size(); i++) {
std::string temploc = Glib::build_filename(Inkscape::Extension::Extension::search_path[i], location);
if (Glib::file_test(temploc, filetest)) {
location = temploc;
break;
}
}
} /* PASS THROUGH!!! */
case LOCATION_ABSOLUTE: {
if (!Glib::file_test(location, filetest)) {
// std::cout << "Failing on location: " << location << std::endl;
return FALSE;
}
break;
}
/* The default case is to look in the path */
case LOCATION_PATH:
default: {
gchar * path = g_strdup(g_getenv("PATH"));
if (path == NULL) {
/* There is no `PATH' in the environment.
The default search path is the current directory */
path = g_strdup(G_SEARCHPATH_SEPARATOR_S);
}
gchar * orig_path = path;
for (; path != NULL;) {
gchar * local_path; // to have the path after detection of the separator
Glib::ustring final_name;
local_path = path;
path = g_utf8_strchr(path, -1, G_SEARCHPATH_SEPARATOR);
/* Not sure whether this is UTF8 happy, but it would seem
like it considering that I'm searching (and finding)
the ':' character */
if (path != NULL) {
path[0] = '\0';
path++;
}
if (*local_path == '\0') {
final_name = _string;
} else {
final_name = Glib::build_filename(local_path, _string);
//.........这里部分代码省略.........