mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 07:23:09 +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 += '/';
|
||||
new_plugin.cfgfile = fname.append(new_plugin.filename);
|
||||
new_plugin.cfgfile.append(".cfg");
|
||||
new_plugin.plugindir = dir;
|
||||
bool plugin_ok = parseCfg(&new_plugin);
|
||||
if (plugin_ok)
|
||||
{
|
||||
@@ -209,6 +210,7 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
||||
plugin_data->hide = false;
|
||||
plugin_data->type = CPlugins::P_TYPE_DISABLED;
|
||||
plugin_data->integration = CPlugins::I_TYPE_DISABLED;
|
||||
plugin_data->hinticon = plugin_data->filename + "_hint";
|
||||
|
||||
for (int i = 0; i < linecount; i++)
|
||||
{
|
||||
@@ -239,6 +241,10 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
||||
{
|
||||
plugin_data->depend = parm;
|
||||
}
|
||||
else if (cmd == "hinticon")
|
||||
{
|
||||
plugin_data->hinticon = parm;
|
||||
}
|
||||
else if (cmd == "type")
|
||||
{
|
||||
plugin_data->type = getPluginType(atoi(parm));
|
||||
@@ -288,6 +294,10 @@ bool CPlugins::parseCfg(plugin *plugin_data)
|
||||
|
||||
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_game, P_TYPE_GAME) ||
|
||||
overrideType(plugin_data, g_settings.plugins_tool, P_TYPE_TOOL) ||
|
||||
|
@@ -80,6 +80,8 @@ class CPlugins
|
||||
int key;
|
||||
std::string cfgfile;
|
||||
std::string pluginfile;
|
||||
std::string plugindir;
|
||||
std::string hinticon;
|
||||
int version;
|
||||
std::string name; // 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 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 * 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 std::string & getDescription (const int number) const { return plugin_list[number].description ; }
|
||||
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));
|
||||
sprintf(id_plugin, "%d", count);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user