Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
  • abdsaber000/vlc
  • falbrechtskirchinger/vlc
  • b.sullender/vlc
  • hulxv/vlc
  • zyad-ayad/vlc
408 results
Show changes
Commits on Source (3)
  • nurupo's avatar
    plugin: add HTML help · faf8b85a
    nurupo authored and Steve Lhomme's avatar Steve Lhomme committed
    HTML help that is shown instead of the plain help text where appropriate
    and supported by the interface. The command-line help output and the Qt
    GUI plugin tooltips show the plain help text, while the Qt GUI plugin
    preferences page displays the HTML help, if available, falling back to
    displaying the plain help otherwise.
    
    Allows to present the help text in a more structured and expressive way.
    Also useful for out-of-tree plugins, in case they want to link to
    plugin's home page, bug tracker, donation page, etc.
    
    For the supported HTML subset, see
    https://doc.qt.io/qt-6/richtext-html-subset.html
    
    Fixes #27798
    faf8b85a
  • nurupo's avatar
    qt: add HTML help · caf14331
    nurupo authored and Steve Lhomme's avatar Steve Lhomme committed
    The Qt GUI part of the previous commit.
    caf14331
  • nurupo's avatar
    qt: remove some of unnecessary QString clears · 0f19973e
    nurupo authored and Steve Lhomme's avatar Steve Lhomme committed
    QString::clear() makes QString::isNull() == true, but a
    default-constructed QString is already QString::isNull() == true, so
    clearing it is unnecessary.
    0f19973e
......@@ -29,6 +29,7 @@ Core:
- Flat, new random implementation
- Can't browse anymore (cf. mediatree)
* Add support for dual subtitles selection (via the player)
* Support of HTML help (via the vlc_plugin.h:set_help_html macro)
Audio output:
* ALSA: HDMI passthrough support.
......
......@@ -498,6 +498,7 @@ typedef struct libvlc_module_description_t
char *psz_shortname;
char *psz_longname;
char *psz_help;
char *psz_help_html;
struct libvlc_module_description_t *p_next;
} libvlc_module_description_t;
......
......@@ -219,6 +219,14 @@ VLC_API const char *module_get_name(const module_t *m, bool longname) VLC_USED;
*/
VLC_API const char *module_get_help(const module_t *m) VLC_USED;
/**
* Gets the help HTML for a module.
*
* \param m the module
* \return the help HTML
*/
VLC_API const char *module_get_help_html(const module_t *m) VLC_USED;
/**
* Gets the capability string of a module.
*
......
......@@ -48,6 +48,7 @@ enum vlc_module_properties
VLC_MODULE_DESCRIPTION,
VLC_MODULE_HELP,
VLC_MODULE_TEXTDOMAIN,
VLC_MODULE_HELP_HTML,
/* Insert new VLC_MODULE_* here */
/* DO NOT EVER REMOVE, INSERT OR REPLACE ANY ITEM! It would break the ABI!
......@@ -356,6 +357,10 @@ VLC_METADATA_EXPORTS
if (vlc_module_set (VLC_MODULE_HELP, VLC_CHECKED_TYPE(const char *, help))) \
goto error;
#define set_help_html( help_html ) \
if (vlc_module_set (VLC_MODULE_HELP_HTML, VLC_CHECKED_TYPE(const char *, help_html))) \
goto error;
#define set_capability( cap, score ) \
if (vlc_module_set (VLC_MODULE_CAPABILITY, VLC_CHECKED_TYPE(const char *, cap)) \
|| vlc_module_set (VLC_MODULE_SCORE, VLC_CHECKED_TYPE(int, score))) \
......
......@@ -187,10 +187,12 @@ static libvlc_module_description_t *module_description_list_get(
const char* shortname = module_GetShortName( p_module );
const char* longname = module_GetLongName( p_module );
const char* help = module_get_help( p_module );
const char* help_html = module_get_help_html( p_module );
p_actual->psz_name = name ? strdup( name ) : NULL;
p_actual->psz_shortname = shortname ? strdup( shortname ) : NULL;
p_actual->psz_longname = longname ? strdup( longname ) : NULL;
p_actual->psz_help = help ? strdup( help ) : NULL;
p_actual->psz_help_html = help_html ? strdup( help_html ) : NULL;
p_actual->p_next = NULL;
if ( p_previous )
......@@ -214,6 +216,7 @@ void libvlc_module_description_list_release( libvlc_module_description_t *p_list
free( p_actual->psz_shortname );
free( p_actual->psz_longname );
free( p_actual->psz_help );
free( p_actual->psz_help_html );
p_before = p_actual;
p_actual = p_before->p_next;
free( p_before );
......
......@@ -257,8 +257,9 @@ void PrefsTree::createPluginNode( QTreeWidgetItem * parent, module_t *mod )
const char *help = module_get_help( mod );
if( help )
item->help = qfut( help );
else
item->help.clear();
const char *help_html = module_get_help_html( mod );
if( help_html )
item->help_html = qfut( help_html );
item->setText( 0, item->name );
//item->setSizeHint( 0, QSize( -1, ITEM_HEIGHT ) );
......@@ -446,14 +447,12 @@ bool PrefsTreeItem::contains( const QString &text, Qt::CaseSensitivity cs )
/* check the node itself (its name/longname/helptext) */
QString head;
if( is_core )
head.clear();
else
if( !is_core )
head = QString( qfut( module_GetLongName( p_module ) ) );
if ( name.contains( text, cs )
|| (!is_core && head.contains( text, cs ))
|| help.contains( text, cs )
|| (!help_html.isEmpty() ? help_html.contains( text, cs ) : help.contains( text, cs ))
)
{
return true;
......@@ -566,8 +565,19 @@ AdvPrefsPanel::AdvPrefsPanel( qt_intf_t *_p_intf, QWidget *_parent,
title_line->setFrameShape(QFrame::HLine);
title_line->setFrameShadow(QFrame::Sunken);
QLabel *helpLabel = new QLabel( node->help, this );
QLabel *helpLabel = new QLabel( this );
helpLabel->setWordWrap( true );
if( node->help_html.isEmpty() )
{
helpLabel->setText( node->help );
helpLabel->setTextFormat( Qt::PlainText );
}
else
{
helpLabel->setText( node->help_html );
helpLabel->setTextFormat( Qt::RichText );
helpLabel->setOpenExternalLinks( true );
}
global_layout->addWidget( titleLabel );
global_layout->addWidget( title_line );
......
......@@ -77,6 +77,7 @@ public:
AdvPrefsPanel *panel;
QString name;
QString help;
QString help_html;
enum vlc_config_cat cat_id;
enum vlc_config_subcat subcat_id;
module_t *p_module;
......
......@@ -263,6 +263,7 @@ module_config_get
module_find
module_get_capability
module_get_help
module_get_help_html
module_get_name
module_get_object
module_get_score
......
......@@ -302,6 +302,7 @@ static int vlc_cache_load_module(vlc_plugin_t *plugin, block_t *file)
LOAD_STRING(module->psz_shortname);
LOAD_STRING(module->psz_longname);
LOAD_STRING(module->psz_help);
LOAD_STRING(module->psz_help_html);
LOAD_IMMEDIATE(module->i_shortcuts);
if (module->i_shortcuts > MODULE_SHORTCUT_MAX)
......@@ -582,6 +583,7 @@ static int CacheSaveModule(FILE *file, const module_t *module)
SAVE_STRING(module->psz_shortname);
SAVE_STRING(module->psz_longname);
SAVE_STRING(module->psz_help);
SAVE_STRING(module->psz_help_html);
SAVE_IMMEDIATE(module->i_shortcuts);
for (size_t j = 0; j < module->i_shortcuts; j++)
......
......@@ -66,6 +66,7 @@ module_t *vlc_module_create(vlc_plugin_t *plugin)
module->psz_shortname = NULL;
module->psz_longname = NULL;
module->psz_help = NULL;
module->psz_help_html = NULL;
module->pp_shortcuts = NULL;
module->i_shortcuts = 0;
module->psz_capability = NULL;
......@@ -310,6 +311,10 @@ static int vlc_plugin_desc_cb(void *ctx, void *tgt, int propid, ...)
module->psz_help = va_arg (ap, const char *);
break;
case VLC_MODULE_HELP_HTML:
module->psz_help_html = va_arg (ap, const char *);
break;
case VLC_MODULE_TEXTDOMAIN:
plugin->textdomain = va_arg(ap, const char *);
break;
......
......@@ -69,6 +69,11 @@ const char *module_get_help( const module_t *m )
return m->psz_help;
}
const char *module_get_help_html( const module_t *m )
{
return m->psz_help_html;
}
const char *module_get_capability (const module_t *m)
{
return (m->psz_capability != NULL) ? m->psz_capability : "none";
......
......@@ -86,7 +86,9 @@ struct module_t
*/
const char *psz_shortname; /**< Module name */
const char *psz_longname; /**< Module descriptive name */
const char *psz_help; /**< Long help string for "special" modules */
const char *psz_help; /**< Long help plain string for "special" modules */
const char *psz_help_html; /**< Long help HTML string, shown instead of the plain help where it makes sense to render HTML.
Supports only a limited HTML4 subset, see https://doc.qt.io/qt-6/richtext-html-subset.html */
const char *psz_capability; /**< Capability */
int i_score; /**< Score for the capability */
......
......@@ -46,6 +46,7 @@ static void test_moduledescriptionlist (libvlc_module_description_t *list)
assert (strlen (module->psz_shortname) );
assert (module->psz_longname == NULL || strlen (module->psz_longname));
assert (module->psz_help == NULL || strlen (module->psz_help));
assert (module->psz_help_html == NULL || strlen (module->psz_help_html));
module = module->p_next;
}
......