mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 15:32:59 +02:00
- plugins: allow hinticons for plugins
Default is <plugin>_hint.png; an entry 'hinticon=another_name' in <plugin>.cfg overrides this; use icon in plugindir first; if not found use icon in one of the other wellknown neutrino icon directories.
This commit is contained in:
@@ -122,6 +122,7 @@ void CPlugins::scanDir(const char *dir)
|
|||||||
fname += '/';
|
fname += '/';
|
||||||
new_plugin.cfgfile = fname.append(new_plugin.filename);
|
new_plugin.cfgfile = fname.append(new_plugin.filename);
|
||||||
new_plugin.cfgfile.append(".cfg");
|
new_plugin.cfgfile.append(".cfg");
|
||||||
|
new_plugin.plugindir = dir;
|
||||||
bool plugin_ok = parseCfg(&new_plugin);
|
bool plugin_ok = parseCfg(&new_plugin);
|
||||||
if (plugin_ok)
|
if (plugin_ok)
|
||||||
{
|
{
|
||||||
@@ -209,6 +210,7 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
|||||||
plugin_data->hide = false;
|
plugin_data->hide = false;
|
||||||
plugin_data->type = CPlugins::P_TYPE_DISABLED;
|
plugin_data->type = CPlugins::P_TYPE_DISABLED;
|
||||||
plugin_data->integration = CPlugins::I_TYPE_DISABLED;
|
plugin_data->integration = CPlugins::I_TYPE_DISABLED;
|
||||||
|
plugin_data->hinticon = plugin_data->filename + "_hint";
|
||||||
|
|
||||||
for (int i = 0; i < linecount; i++)
|
for (int i = 0; i < linecount; i++)
|
||||||
{
|
{
|
||||||
@@ -239,6 +241,10 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
|||||||
{
|
{
|
||||||
plugin_data->depend = parm;
|
plugin_data->depend = parm;
|
||||||
}
|
}
|
||||||
|
else if (cmd == "hinticon")
|
||||||
|
{
|
||||||
|
plugin_data->hinticon = parm;
|
||||||
|
}
|
||||||
else if (cmd == "type")
|
else if (cmd == "type")
|
||||||
{
|
{
|
||||||
plugin_data->type = getPluginType(atoi(parm));
|
plugin_data->type = getPluginType(atoi(parm));
|
||||||
@@ -288,6 +294,10 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
|||||||
|
|
||||||
inFile.close();
|
inFile.close();
|
||||||
|
|
||||||
|
std::string _hintIcon = plugin_data->plugindir + "/" + plugin_data->hinticon + ".png";
|
||||||
|
if (access(_hintIcon.c_str(), F_OK) == 0)
|
||||||
|
plugin_data->hinticon = _hintIcon;
|
||||||
|
|
||||||
overrideType(plugin_data, g_settings.plugins_disabled, P_TYPE_DISABLED) ||
|
overrideType(plugin_data, g_settings.plugins_disabled, P_TYPE_DISABLED) ||
|
||||||
overrideType(plugin_data, g_settings.plugins_game, P_TYPE_GAME) ||
|
overrideType(plugin_data, g_settings.plugins_game, P_TYPE_GAME) ||
|
||||||
overrideType(plugin_data, g_settings.plugins_tool, P_TYPE_TOOL) ||
|
overrideType(plugin_data, g_settings.plugins_tool, P_TYPE_TOOL) ||
|
||||||
|
@@ -80,6 +80,8 @@ class CPlugins
|
|||||||
int key;
|
int key;
|
||||||
std::string cfgfile;
|
std::string cfgfile;
|
||||||
std::string pluginfile;
|
std::string pluginfile;
|
||||||
|
std::string plugindir;
|
||||||
|
std::string hinticon;
|
||||||
int version;
|
int version;
|
||||||
std::string name; // UTF-8 encoded
|
std::string name; // UTF-8 encoded
|
||||||
std::string description; // UTF-8 encoded
|
std::string description; // UTF-8 encoded
|
||||||
@@ -130,6 +132,8 @@ class CPlugins
|
|||||||
inline int getNumberOfPlugins (void ) const { return plugin_list.size() ; }
|
inline int getNumberOfPlugins (void ) const { return plugin_list.size() ; }
|
||||||
inline const char * getName (const int number) const { return plugin_list[number].name.c_str() ; }
|
inline const char * getName (const int number) const { return plugin_list[number].name.c_str() ; }
|
||||||
inline const char * getPluginFile (const int number) const { return plugin_list[number].pluginfile.c_str(); }
|
inline const char * getPluginFile (const int number) const { return plugin_list[number].pluginfile.c_str(); }
|
||||||
|
inline const char * getPluginDir (const int number) const { return plugin_list[number].plugindir.c_str() ; }
|
||||||
|
inline const char * getHintIcon (const int number) const { return plugin_list[number].hinticon.c_str() ; }
|
||||||
inline const char * getFileName (const int number) const { return plugin_list[number].filename.c_str() ; }
|
inline const char * getFileName (const int number) const { return plugin_list[number].filename.c_str() ; }
|
||||||
inline const std::string & getDescription (const int number) const { return plugin_list[number].description ; }
|
inline const std::string & getDescription (const int number) const { return plugin_list[number].description ; }
|
||||||
inline int getType (const int number) const { return plugin_list[number].type ; }
|
inline int getType (const int number) const { return plugin_list[number].type ; }
|
||||||
|
@@ -974,7 +974,7 @@ void CMenuWidget::integratePlugins(void *pluginsExec, CPlugins::i_type_t integra
|
|||||||
printf("[neutrino] integratePlugins: add %s\n", g_PluginList->getName(count));
|
printf("[neutrino] integratePlugins: add %s\n", g_PluginList->getName(count));
|
||||||
sprintf(id_plugin, "%d", count);
|
sprintf(id_plugin, "%d", count);
|
||||||
CMenuForwarder *fw_plugin = new CMenuForwarder(g_PluginList->getName(count), true, NULL, _pluginsExec, id_plugin);
|
CMenuForwarder *fw_plugin = new CMenuForwarder(g_PluginList->getName(count), true, NULL, _pluginsExec, id_plugin);
|
||||||
fw_plugin->setHint("", g_PluginList->getDescription(count));
|
fw_plugin->setHint(g_PluginList->getHintIcon(count), g_PluginList->getDescription(count));
|
||||||
addItem(fw_plugin);
|
addItem(fw_plugin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user