Index: src/urifilters/fixhost/CMakeLists.txt =================================================================== --- src/urifilters/fixhost/CMakeLists.txt +++ src/urifilters/fixhost/CMakeLists.txt @@ -1,13 +1,5 @@ -set(fixhosturifilter_PART_SRCS fixhosturifilter.cpp ) +set(fixhosturifilter_SRCS fixhosturifilter.cpp ) -add_library(fixhosturifilter MODULE ${fixhosturifilter_PART_SRCS}) +kcoreaddons_add_plugin(fixhosturifilter INSTALL_NAMESPACE "kf5/urifilters" JSON fixhosturifilter.json SOURCES ${fixhosturifilter_SRCS}) target_link_libraries(fixhosturifilter KF5::KIOWidgets) - -set_target_properties(fixhosturifilter PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/urifilters") -install(TARGETS fixhosturifilter DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/urifilters) - -########### install files ############### - -install(FILES fixhosturifilter.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) - Index: src/urifilters/fixhost/fixhosturifilter.h =================================================================== --- src/urifilters/fixhost/fixhosturifilter.h +++ src/urifilters/fixhost/fixhosturifilter.h @@ -31,7 +31,7 @@ */ class FixHostUriFilter : public KUriFilterPlugin { -Q_OBJECT + Q_OBJECT public: FixHostUriFilter(QObject* parent, const QVariantList& args); Index: src/urifilters/fixhost/fixhosturifilter.cpp =================================================================== --- src/urifilters/fixhost/fixhosturifilter.cpp +++ src/urifilters/fixhost/fixhosturifilter.cpp @@ -90,6 +90,6 @@ return (info.error() == QHostInfo::NoError); } -K_PLUGIN_FACTORY(FixHostUriFilterFactory, registerPlugin();) +K_PLUGIN_FACTORY_WITH_JSON(FixHostUriFilterFactory, "fixhosturifilter.json", registerPlugin();) #include "fixhosturifilter.moc" Index: src/urifilters/fixhost/fixhosturifilter.desktop =================================================================== --- src/urifilters/fixhost/fixhosturifilter.desktop +++ /dev/null @@ -1,88 +0,0 @@ -[Desktop Entry] -Type=Service -Name=FixHostFilter -Name[af]=FixHostFilter -Name[ast]=FixHostFilter -Name[be]=FixHostFilter -Name[be@latin]=FixHostFilter -Name[bg]=FixHostFilter -Name[bn]=FixHostFilter -Name[bn_IN]=FixHostFilter -Name[bs]=Filter za popravku domaćina -Name[ca]=FixHostFilter -Name[ca@valencia]=FixHostFilter -Name[cs]=FixHostFilter -Name[csb]=Filter FixHost -Name[da]=FixHostFilter -Name[de]=Rechnernamen-Korrektur-Filter -Name[el]=FixHostFilter -Name[en_GB]=FixHostFilter -Name[eo]=FixHostFilter -Name[es]=FixHostFilter -Name[et]=FixHostFilter -Name[eu]=FixHostFilter -Name[fa]=FixHostFilter -Name[fi]=FixHostFilter -Name[fr]=FixHostFilter -Name[fy]=FixHostFilter -Name[ga]=FixHostFilter -Name[gd]=Criathrag càraidh nan òstairean -Name[gl]=FixHostFilter -Name[gu]=FixHostFilter -Name[he]=FixHostFilter -Name[hi]=फ़िक्स-होस्ट-फ़िल्टर -Name[hne]=फिक्स-होस्ट-फिल्टर -Name[hr]=FixHostFilter -Name[hsb]=FixHostFilter -Name[hu]=FixHostFilter -Name[ia]=FixHostFilter -Name[id]=Perbaiki Filter Host -Name[is]=LagaHostSía -Name[it]=Filtro degli host fissi -Name[kk]=FixHostFilter -Name[km]=FixHostFilter -Name[kn]=ಫಿಕ್ಸ್ ಹೋಸ್ಟ್ ಫಿಲ್ಟರ್ -Name[ko]=FixHostFilter -Name[ku]=FixHostFilter -Name[lt]=FixHostFilter -Name[lv]=FixHostFilter -Name[mai]=फिक्स-होस्ट-फिल्टर -Name[mk]=FixHostFilter -Name[ml]=ഫിക്സ്ഹൊസ്റ്റ് അരിപ്പകള്‍ -Name[mr]=फिक्स होस्ट गाळणी -Name[nb]=FixHostFilter -Name[nds]=Fast Reeknerfilter -Name[ne]=होस्ट फिल्टर निश्चित गर्नुहोस् -Name[nl]=FixHostFilter -Name[nn]=FiksVertFilter -Name[or]=FixHostFilter -Name[pa]=FixHostFilter -Name[pl]=Filtr nazw komputerów -Name[pt]=Filtro de Correcção da Máquina -Name[pt_BR]=FixHostFilter -Name[ro]=FixHostFilter -Name[ru]=FixHostFilter -Name[se]=FixHostFilter -Name[si]=සැකසූ ධාරක පෙරහන -Name[sk]=FixHostFilter -Name[sl]=FixHostFilter -Name[sr]=Филтер за поправку домаћина -Name[sr@ijekavian]=Филтер за поправку домаћина -Name[sr@ijekavianlatin]=Filter za popravku domaćina -Name[sr@latin]=Filter za popravku domaćina -Name[sv]=Fast värddatorfilter -Name[ta]=FixHostFilter -Name[te]=FixHostFilter -Name[tg]=FixHostFilter -Name[th]=FixHostFilter -Name[tr]=FixHostFilter -Name[ug]=مۇقىم ماشىنا سۈزگۈچ -Name[uk]=FixHostFilter -Name[vi]=FixHostFilter -Name[wa]=FixHostFilter -Name[x-test]=xxFixHostFilterxx -Name[zh_CN]=固定主机过滤器 -Name[zh_TW]=固定主機過濾 -X-KDE-Library=kf5/urifilters/fixhosturifilter -X-KDE-ServiceTypes=KUriFilter/Plugin -InitialPreference=1 Index: src/urifilters/fixhost/fixhosturifilter.json =================================================================== --- /dev/null +++ src/urifilters/fixhost/fixhosturifilter.json @@ -0,0 +1,7 @@ +{ + "KPlugin": { + "ServiceTypes": [ "KUriFilter/Plugin" ] + }, + "X-KDE-InitialPreference": 1 +} + Index: src/urifilters/ikws/CMakeLists.txt =================================================================== --- src/urifilters/ikws/CMakeLists.txt +++ src/urifilters/ikws/CMakeLists.txt @@ -1,43 +1,40 @@ add_subdirectory(searchproviders) -set(kuriikwsfilter_PART_SRCS kuriikwsfiltereng.cpp kuriikwsfilter.cpp searchprovider.cpp) +#### -ki18n_wrap_ui(kuriikwsfilter_PART_SRCS ikwsopts_ui.ui searchproviderdlg_ui.ui) +set(kuriikwsfilter_SRCS kuriikwsfiltereng.cpp kuriikwsfilter.cpp searchprovider.cpp) -add_library(kuriikwsfilter MODULE ${kuriikwsfilter_PART_SRCS}) +ki18n_wrap_ui(kuriikwsfilter_SRCS ikwsopts_ui.ui searchproviderdlg_ui.ui) + +kcoreaddons_add_plugin(kuriikwsfilter INSTALL_NAMESPACE "kf5/urifilters" JSON kuriikwsfilter.json SOURCES ${kuriikwsfilter_SRCS}) target_link_libraries(kuriikwsfilter KF5::ConfigWidgets # KCModule KF5::KIOWidgets # KUriFilter KF5::I18n Qt5::DBus ) -set_target_properties(kuriikwsfilter PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/urifilters") -install(TARGETS kuriikwsfilter DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/urifilters) +##### -set(kurisearchfilter_PART_SRCS +set(kurisearchfilter_SRCS kurisearchfilter.cpp kuriikwsfiltereng.cpp ikwsopts.cpp searchproviderdlg.cpp searchprovider.cpp ) -ki18n_wrap_ui(kurisearchfilter_PART_SRCS ikwsopts_ui.ui searchproviderdlg_ui.ui) +ki18n_wrap_ui(kurisearchfilter_SRCS ikwsopts_ui.ui searchproviderdlg_ui.ui) -add_library(kurisearchfilter MODULE ${kurisearchfilter_PART_SRCS}) +kcoreaddons_add_plugin(kurisearchfilter INSTALL_NAMESPACE "kf5/urifilters" JSON kurisearchfilter.json SOURCES ${kurisearchfilter_SRCS}) target_link_libraries(kurisearchfilter KF5::ConfigWidgets # KCModule KF5::KIOWidgets # KUriFilter KF5::I18n Qt5::DBus ) -set_target_properties(kurisearchfilter PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/urifilters") -install(TARGETS kurisearchfilter DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/urifilters) - ########### install files ############### -install( FILES kuriikwsfilter.desktop kurisearchfilter.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) install( FILES searchprovider.desktop DESTINATION ${KDE_INSTALL_KSERVICETYPES5DIR} ) Index: src/urifilters/ikws/kuriikwsfilter.cpp =================================================================== --- src/urifilters/ikws/kuriikwsfilter.cpp +++ src/urifilters/ikws/kuriikwsfilter.cpp @@ -40,7 +40,7 @@ * regression test (this should be included as part of "make test"). */ -K_PLUGIN_FACTORY(KAutoWebSearchFactory, registerPlugin();) +K_PLUGIN_FACTORY_WITH_JSON(KAutoWebSearchFactory, "kuriikwsfilter.json", registerPlugin();) KAutoWebSearch::KAutoWebSearch(QObject *parent, const QVariantList&) :KUriFilterPlugin( QStringLiteral("kuriikwsfilter"), parent ) @@ -78,7 +78,7 @@ // Get rid of duplicates... favEngines.removeDuplicates(); - + // Sort the items... qStableSort(favEngines); Index: src/urifilters/ikws/kuriikwsfilter.desktop =================================================================== --- src/urifilters/ikws/kuriikwsfilter.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Type=Service -Name=InternetKeywordsFilter -Name[af]=Internetsleutelwoordefilter -Name[ast]=InternetKeywordsFilter -Name[be]=Фільтр ключавых словаў -Name[be@latin]=InternetKeywordsFilter -Name[bg]=InternetKeywordsFilter -Name[bn]=InternetKeywordsFilter -Name[bn_IN]=InternetKeywordsFilter -Name[br]=SilGerioùAlc'hwezArKenrouedad -Name[bs]=Filter ključnih riječi Interneta -Name[ca]=Filtre per a les paraules clau d'Internet -Name[ca@valencia]=Filtre per a les paraules clau d'Internet -Name[cs]=InternetKeywordsFilter -Name[csb]=Filter internetowëch kluczowëch słów -Name[cy]=HidlAllweddeiriauRhyngrwyd -Name[da]=InternetNøgleordsFilter -Name[de]=Internet-Stichwort-Filter -Name[el]=Φίλτρο λέξεων κλειδιών διαδικτύου -Name[en_GB]=InternetKeywordsFilter -Name[eo]=InternetKeywordsFilter -Name[es]=Filtro de palabras clave de Internet -Name[et]=Interneti võtmesõnade filter -Name[eu]=InternetKeywordsFilter -Name[fa]=پالایه واژه‌های کلیدی اینترنت -Name[fi]=InternetKeywordsFilter -Name[fr]=Filtre de mots clés Internet -Name[fy]=YnternetSykwurdenFilter -Name[ga]=InternetKeywordsFilter -Name[gd]=Criathrag faclan-luirg an eadar-lìn -Name[gl]=InternetKeywordsFilter -Name[gu]=InternetKeywordsFilter -Name[he]=InternetKeywordsFilter -Name[hi]=इंटरनेट-की-वर्ड्स-फ़िल्टर -Name[hne]=इंटरनेट-की-वर्ड्स-फिल्टर -Name[hr]=Filtar internetskih ključnih riječi -Name[hsb]=InternetKeywordsFilter -Name[hu]=Internetes kulcsszavak szűrője -Name[ia]=InternetKeywordsFilter -Name[id]=Filter Kata Kunci Filter -Name[is]=InternetStikkorðaSía -Name[it]=Filtro delle parole chiave di Internet -Name[kk]=ИнтернетТүйіндіСөздерСүзгісі -Name[km]=InternetKeywordsFilter -Name[kn]=ಅಂತರ್ಜಾಲ ಕೀಲಿಪದಗಳ (ಕೀವರ್ಡ್) ಶೋಧಕ -Name[ko]=InternetKeywordsFilter -Name[ku]=ParzînaPeyvênmifteyêTorê -Name[lt]=InternetoRaktažodžiųfiltras -Name[lv]=InternetaAtslēgvārduFiltrs -Name[mai]=इंटरनेट-की-वर्ड्स-फिल्टर -Name[mk]=InternetKeywordsFilter -Name[ml]=ഇന്റര്‍നെറ്റ് കീവാക്കുകളുടെ അരിപ്പകള്‍ -Name[mr]=इंटरनेट मूळ शब्द गाळणी -Name[ms]=InternetKeywordsFilter -Name[nb]=InternetKeywordsFilter -Name[nds]=Internet-Slötelwöörfilter -Name[ne]=इन्टरनेट शब्दकुञ्जी फिल्टर -Name[nl]=InternetZoektermenFilter -Name[nn]=InternettNøkkelordFilter -Name[or]=InternetKeywordsFilter -Name[pa]=ਇੰਟਰਨੈੱਟ ਸ਼ਬਦ ਫਿਲਟਰ -Name[pl]=Filtr internetowych słów kluczowych -Name[pt]=Filtro de Palavras-chave na Internet -Name[pt_BR]=Filtro de palavras chave da Internet -Name[ro]=InternetKeywordsFilter -Name[ru]=InternetKeywordsFilter -Name[se]=InternetKeywordsFilter -Name[si]=අන්තර්ජාල යතුරු වදන් පෙරහන -Name[sk]=Filter kľúčových slov pre Internet -Name[sl]=Filter ključnih besed za internet -Name[sr]=Филтер кључних речи Интернета -Name[sr@ijekavian]=Филтер кључних ријечи Интернета -Name[sr@ijekavianlatin]=Filter ključnih riječi Interneta -Name[sr@latin]=Filter ključnih reči Interneta -Name[sv]=Internet-nyckelordsfilter -Name[ta]=தேடல் மூலச்சொற்கள் வடிகட்டி -Name[te]=InternetKeywordsFilter -Name[tg]=InternetKeywordsFilter -Name[th]=ตัวกรองคำค้นหาบนอินเทอร์เน็ต -Name[tr]=İnternetAnahtarSözcükSüzgeci -Name[ug]=ئىنتېرنېت ئاچقۇچلۇق سۆز سۈزگۈچ -Name[uk]=Фільтр ключових слів інтернет -Name[uz]=Internet kalit soʻzlar filteri -Name[uz@cyrillic]=Интернет калит сўзлар филтери -Name[vi]=InternetKeywordsFilter -Name[wa]=PasseteMotsclésDaegntoele -Name[xh]=Amagama Angundoqo ecebo lokucoca ulwelo e Internet -Name[x-test]=xxInternetKeywordsFilterxx -Name[zh_CN]=互联网关键字过滤 -Name[zh_TW]=網際網路關鍵字過濾 -X-KDE-Library=kf5/urifilters/kuriikwsfilter -X-KDE-ServiceTypes=KUriFilter/Plugin -InitialPreference=0 Index: src/urifilters/ikws/kuriikwsfilter.json =================================================================== --- /dev/null +++ src/urifilters/ikws/kuriikwsfilter.json @@ -0,0 +1,6 @@ +{ + "KPlugin": { + "ServiceTypes": [ "KUriFilter/Plugin" ] + }, + "X-KDE-InitialPreference": 0 +} Index: src/urifilters/ikws/kurisearchfilter.cpp =================================================================== --- src/urifilters/ikws/kurisearchfilter.cpp +++ src/urifilters/ikws/kurisearchfilter.cpp @@ -33,7 +33,7 @@ * regression test (this should be included as part of "make test"). */ -K_PLUGIN_FACTORY(KUriSearchFilterFactory, registerPlugin();) +K_PLUGIN_FACTORY_WITH_JSON(KUriSearchFilterFactory, "kurisearchfilter.json", registerPlugin();) namespace { QLoggingCategory category("org.kde.kurifilter-ikws", QtWarningMsg); Index: src/urifilters/ikws/kurisearchfilter.desktop =================================================================== --- src/urifilters/ikws/kurisearchfilter.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Type=Service -Name=SearchKeywordsFilter -Name[af]=Soektogsleutelwoordfilter -Name[ast]=SearchKeywordsFilter -Name[be]=Фільтр пошуку ключавых словаў -Name[be@latin]=SearchKeywordsFilter -Name[bg]=SearchKeywordsFilter -Name[bn]=SearchKeywordsFilter -Name[bn_IN]=SearchKeywordsFilter -Name[br]=SilGerioùAlc'hwezKlask -Name[bs]=Filter riječi za pretraživanje -Name[ca]=Filtre per a les paraules clau de cerca -Name[ca@valencia]=Filtre per a les paraules clau de busca -Name[cs]=SearchKeywordsFilter -Name[csb]=Filter kluczowëch słów -Name[cy]=HidlChwilioAllweddeiriau -Name[da]=SøgNøgleordsFilter -Name[de]=Suchstichwort-Filter -Name[el]=Φίλτρο λέξεων κλειδιών αναζήτησης -Name[en_GB]=SearchKeywordsFilter -Name[eo]=SearchKeywordsFilter -Name[es]=Filtro de palabras clave de búsqueda -Name[et]=SearchKeywordsFilter -Name[eu]=SearchKeywordsFilter -Name[fa]=پالایه واژه‌های کلیدی جستجو -Name[fi]=SearchKeywordsFilter -Name[fr]=Filtre de mots clés de recherche -Name[fy]=SykwurdenFilter -Name[ga]=SearchKeywordsFilter -Name[gd]=Criathrag nam faclan-luirg -Name[gl]=SearchKeywordsFilter -Name[gu]=SearchKeywordsFilter -Name[he]=SearchKeywordsFilter -Name[hi]=सर्च-की-वर्ड्स-फ़िल्टर -Name[hne]=सर्च-की-वर्ड्स-फिल्टर -Name[hr]=Filtar ključnih riječi pretraživanja -Name[hsb]=SearchKeywordsFilter -Name[hu]=Kulcsszavak keresési szűrője -Name[ia]=SearchKeywordsFilter -Name[id]=Filter Kata Kunci Pencarian -Name[is]=StikkorðaLeitarSía -Name[it]=Filtro delle chiavi di ricerca -Name[kk]=ТүйіндіСөздерІздеуСүзгісі -Name[km]=SearchKeywordsFilter -Name[kn]=ಹುಡುಕು ಕೀಲಿಪದ (ಕೀವರ್ಡ್) ಶೋಧಕ -Name[ko]=SearchKeywordsFilter -Name[ku]=ParzûnaPeyvênmifteyêLêgerînê -Name[lt]=PaieškosRaktažodžiųFiltras -Name[lv]=MeklēšanasAtslēgvārduFiltrs -Name[mai]=सर्च-की-वर्ड्स-फिल्टर -Name[mk]=SearchKeywordsFilter -Name[ml]=തെരച്ചില്‍ കീവാക്കുകളുടെ അരിപ്പകള്‍ -Name[mr]=शोध मूळ शब्द गाळणी -Name[ms]=SearchKeywordsFilter -Name[nb]=SearchKeywordsFilter -Name[nds]=Filter för Söökafkörten -Name[ne]=शब्दकुञ्जी फिल्टर खोजी गर्नुहोस् -Name[nl]=ZoekTermenFilter -Name[nn]=SøkjeuttrykkFilter -Name[or]=SearchKeywordsFilter -Name[pa]=ਖੋਜ ਸ਼ਬਦ ਫਿਲਟਰ -Name[pl]=Filtr słów kluczowych -Name[pt]=Filtro de Pesquisa de Palavras-Chave -Name[pt_BR]=Filtro de busca de palavras chave -Name[ro]=SearchKeywordsFilter -Name[ru]=SearchKeywordsFilter -Name[se]=SearchKeywordsFilter -Name[si]=සෙවුම් යතුරුවදන් පෙරහණ -Name[sk]=Filter kľúčových slov hľadania -Name[sl]=Filter ključnih besed za iskanje -Name[sr]=Филтер речи за претраживање -Name[sr@ijekavian]=Филтер ријечи за претраживање -Name[sr@ijekavianlatin]=Filter riječi za pretraživanje -Name[sr@latin]=Filter reči za pretraživanje -Name[sv]=Sök-nyckelordsfilter -Name[ta]=முக்கிய வார்த்தைகள் வடிகட்டியை தேடு -Name[te]=SearchKeywordsFilter -Name[tg]=SearchKeywordsFilter -Name[th]=ตัวกรองคำค้นหา -Name[tr]=TaramaKelimeSüzgeci -Name[ug]=ئىزدەش ئاچقۇچلۇق سۆز سۈزگۈچى -Name[uk]=Фільтр ключових слів інтернет -Name[uz]=Qidirish kalit soʻzlar filteri -Name[uz@cyrillic]=Қидириш калит сўзлар филтери -Name[vi]=SearchKeywordsFilter -Name[wa]=PasseteTapreceCweraedje -Name[xh]=Phendla Amagama Angundoqo Ecebo Lokucoca Ulwelo -Name[x-test]=xxSearchKeywordsFilterxx -Name[zh_CN]=搜索关键字过滤 -Name[zh_TW]=搜索關鍵字過濾 -X-KDE-Library=kf5/urifilters/kurisearchfilter -X-KDE-ServiceTypes=KUriFilter/Plugin -InitialPreference=4 Index: src/urifilters/ikws/kurisearchfilter.json =================================================================== --- /dev/null +++ src/urifilters/ikws/kurisearchfilter.json @@ -0,0 +1,6 @@ +{ + "KPlugin": { + "ServiceTypes": [ "KUriFilter/Plugin" ] + }, + "X-KDE-InitialPreference": 4 +} Index: src/urifilters/localdomain/CMakeLists.txt =================================================================== --- src/urifilters/localdomain/CMakeLists.txt +++ src/urifilters/localdomain/CMakeLists.txt @@ -1,12 +1,6 @@ -set(localdomainurifilter_PART_SRCS localdomainurifilter.cpp ) +set(localdomainurifilter_SRCS localdomainurifilter.cpp ) -add_library(localdomainurifilter MODULE ${localdomainurifilter_PART_SRCS}) +kcoreaddons_add_plugin(localdomainurifilter INSTALL_NAMESPACE "kf5/urifilters" JSON localdomainurifilter.json SOURCES ${localdomainurifilter_SRCS}) target_link_libraries(localdomainurifilter KF5::KIOWidgets) -set_target_properties(localdomainurifilter PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/urifilters") -install(TARGETS localdomainurifilter DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/urifilters) - -########### install files ############### - -install(FILES localdomainurifilter.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) Index: src/urifilters/localdomain/localdomainurifilter.cpp =================================================================== --- src/urifilters/localdomain/localdomainurifilter.cpp +++ src/urifilters/localdomain/localdomainurifilter.cpp @@ -84,6 +84,6 @@ } -K_PLUGIN_FACTORY(LocalDomainUriFilterFactory, registerPlugin();) +K_PLUGIN_FACTORY_WITH_JSON(LocalDomainUriFilterFactory, "localdomainurifilter.json", registerPlugin();) #include "localdomainurifilter.moc" Index: src/urifilters/localdomain/localdomainurifilter.desktop =================================================================== --- src/urifilters/localdomain/localdomainurifilter.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Type=Service -Name=LocalDomainFilter -Name[af]=Plaaslike domein filter -Name[as]=LocalDomainFilter -Name[ast]=LocalDomainFilter -Name[be]=LocalDomainFilter -Name[be@latin]=LocalDomainFilter -Name[bg]=LocalDomainFilter -Name[bn]=LocalDomainFilter -Name[bn_IN]=LocalDomainFilter -Name[bs]=Filter lokalnog domena -Name[ca]=Filtre de dominis locals -Name[ca@valencia]=Filtre de dominis locals -Name[cs]=Filtr pro lokální doménu -Name[csb]=Filter môlowi domenë -Name[cy]=HidlParthLleol -Name[da]=LocalDomainFilter -Name[de]=LocalDomainFilter -Name[el]=Φίλτρο τοπικού τομέα -Name[en_GB]=LocalDomainFilter -Name[eo]=LocalDomainFilter -Name[es]=FiltrodeDominioLocal -Name[et]=LocalDomainFilter -Name[eu]=LocalDomainFilter -Name[fa]=LocalDomainFilter -Name[fi]=LocalDomainFilter -Name[fr]=Filtre de domaine local -Name[fy]=Lokaaldomeinfilter -Name[ga]=LocalDomainFilter -Name[gd]=Criathrag nan àrainnean ionadail -Name[gl]=LocalDomainFilter -Name[gu]=સ્થાનિકડોમેઇનગાળક -Name[he]=LocalDomainFilter -Name[hi]=लोकल-डोमेन-फ़िल्टर -Name[hne]=लोकल-डोमेन-फिल्टर -Name[hr]=Filtar lokalnih domena -Name[hsb]=LocalDomainFilter -Name[hu]=HelyiTartománySzűrő -Name[ia]=LocalDomainFilter -Name[id]=LocalDomainFilter -Name[is]=LocalDomainFilter -Name[it]=Filtro di dominio locale -Name[kk]=LocalDomainFilter -Name[km]=LocalDomainFilter -Name[kn]=LocalDomainFilter -Name[ko]=LocalDomainFilter -Name[ku]=LocalDomainFilter -Name[lt]=LocalDomainFilter -Name[lv]=LokāloDomēnuFiltrs -Name[mai]=लोकल-डोमेन-फिल्टर -Name[mk]=LocalDomainFilter -Name[ml]=ലോക്കല്‍ഡൊമൈന്‍ഫില്‍ട്ടര്‍ -Name[mr]=स्थानिक क्षेत्र गाळणी -Name[ms]=LocalDomainFilter -Name[nb]=LocalDomainFilter -Name[nds]=Lokaaldomään-Filter -Name[ne]=स्थानीय डोमेन फिल्टर -Name[nl]=Lokaaldomeinfilter -Name[nn]=LocalDomainFilter -Name[or]=LocalDomainFilter -Name[pa]=ਲੋਕਲ ਡੋਮੇਨ ਫਿਲਟਰ -Name[pl]=Filtr lokalnej domeny -Name[pt]=LocalDomainFilter -Name[pt_BR]=Filtro de domínio local -Name[ro]=Filtru de domeniu local -Name[ru]=LocalDomainFilter -Name[se]=LocalDomainFilter -Name[si]=දේශීය ඩොමේන පෙරහන -Name[sk]=Filter lokálnej domény -Name[sl]=FilterLokalneDomene -Name[sr]=Филтер локалног домена -Name[sr@ijekavian]=Филтер локалног домена -Name[sr@ijekavianlatin]=Filter lokalnog domena -Name[sr@latin]=Filter lokalnog domena -Name[sv]=Lokal domänfilter -Name[ta]=LocalDomainFilter -Name[te]=LocalDomainFilter -Name[tg]=LocalDomainFilter -Name[th]=ตัวกรองโดเมนท้องถื่น -Name[tr]=LocalDomainFilter -Name[ug]=يەرلىك دائىرە سۈزگۈچ -Name[uk]=Фільтр локальних доменів -Name[uz]=LocalDomainFilter -Name[uz@cyrillic]=LocalDomainFilter -Name[vi]=LocalDomainFilter -Name[wa]=Passete Dominne coinrece -Name[xh]=LocalDomainFilter -Name[x-test]=xxLocalDomainFilterxx -Name[zh_CN]=本地域名过滤 -Name[zh_TW]=區域網域過濾器 -X-KDE-Library=kf5/urifilters/localdomainurifilter -X-KDE-ServiceTypes=KUriFilter/Plugin -InitialPreference=2 Index: src/urifilters/localdomain/localdomainurifilter.json =================================================================== --- /dev/null +++ src/urifilters/localdomain/localdomainurifilter.json @@ -0,0 +1,6 @@ +{ + "KPlugin": { + "ServiceTypes": [ "KUriFilter/Plugin" ] + }, + "X-KDE-InitialPreference": 2 +} Index: src/urifilters/shorturi/CMakeLists.txt =================================================================== --- src/urifilters/shorturi/CMakeLists.txt +++ src/urifilters/shorturi/CMakeLists.txt @@ -1,13 +1,8 @@ -add_library(kshorturifilter MODULE kshorturifilter.cpp) +set(kshorturifilter_SRCS kshorturifilter.cpp) -target_link_libraries(kshorturifilter KF5::I18n KF5::KIOWidgets Qt5::DBus) - -set_target_properties(kshorturifilter PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/kf5/urifilters") -install(TARGETS kshorturifilter DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/urifilters) +kcoreaddons_add_plugin(kshorturifilter INSTALL_NAMESPACE "kf5/urifilters" JSON kshorturifilter.json SERVICETYPES ${CMAKE_SOURCE_DIR}/src/widgets/kurifilterplugin.desktop SOURCES ${kshorturifilter_SRCS}) +target_link_libraries(kshorturifilter KF5::I18n KF5::KIOWidgets Qt5::DBus) -########### install files ############### - -install( FILES kshorturifilter.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR} ) install( FILES kshorturifilterrc DESTINATION ${KDE_INSTALL_CONFDIR} ) Index: src/urifilters/shorturi/kshorturifilter.cpp =================================================================== --- src/urifilters/shorturi/kshorturifilter.cpp +++ src/urifilters/shorturi/kshorturifilter.cpp @@ -568,6 +568,6 @@ } } -K_PLUGIN_FACTORY(KShortUriFilterFactory, registerPlugin();) +K_PLUGIN_FACTORY_WITH_JSON(KShortUriFilterFactory, "kshorturifilter.json", registerPlugin();) #include "kshorturifilter.moc" Index: src/urifilters/shorturi/kshorturifilter.desktop =================================================================== --- src/urifilters/shorturi/kshorturifilter.desktop +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] -Type=Service -Name=ShortURIFilter -Name[af]=KortURIfilter -Name[as]=ShortURIFilter -Name[ast]=ShortURIFilter -Name[be]=ShortURIFilter -Name[be@latin]=ShortURIFilter -Name[bg]=ShortURIFilter -Name[bn]=ShortURIFilter -Name[bn_IN]=ShortURIFilter -Name[br]=SilURLBerr -Name[bs]=Filter kratkih URI‑ja -Name[ca]=Filtre d'URI curt -Name[ca@valencia]=Filtre d'URI curt -Name[cs]=ShortURIFilter -Name[csb]=Filter krótczich URI -Name[cy]=HidlURIByr -Name[da]=KortURIFilter -Name[de]=Kurz-URL-Filter -Name[el]=Φίλτρο σύντομων URI -Name[en_GB]=ShortURIFilter -Name[eo]=ShortURIFilter -Name[es]=Filtro de URI cortas -Name[et]=Lühi-URL-ide filter -Name[eu]=ShortURIFilter -Name[fa]=ShortURIFilter -Name[fi]=ShortURIFilter -Name[fr]=Filtres d'URL courtes -Name[fy]=ShortURIFilter -Name[ga]=ShortURIFilter -Name[gd]=Criathrag nan URichean goirid -Name[gl]=ShortURIFilter -Name[gu]=ટૂંકુંURIગાળક -Name[he]=ShortURIFilter -Name[hi]=शॉर्ट-यूआरआई-फ़िल्टर -Name[hne]=सार्ट-यूआरआई-फिल्टर -Name[hr]=Filtar kratkih URI-a -Name[hsb]=ShortURIFilter -Name[hu]=RövidURISzűrő -Name[ia]=ShortURIFilter -Name[id]=ShortURIFilter -Name[is]=ShortURIFilter -Name[it]=Filtro di URI brevi -Name[kk]=ShortURIFilter -Name[km]=ShortURIFilter -Name[kn]=ShortURIFilter -Name[ko]=ShortURIFilter -Name[ku]=ShortURIFilter -Name[lt]=ShortURIFilter -Name[lv]=ĪssURIFiltrs -Name[mai]=शार्ट-यूआरआई-फिल्टर -Name[mk]=ShortURIFilter -Name[ml]=ഷോര്‍ട്ട്‌യുആര്‍ഐഫില്‍ട്ടര്‍ -Name[mr]=शॉर्ट URI गाळणी -Name[ms]=ShortURIFilter -Name[nb]=ShortURIFilter -Name[nds]=KortURI-Filter -Name[ne]=छोटो यूआरआई फिल्टर -Name[nl]=ShortURIFilter -Name[nn]=ShortURIFilter -Name[or]=ShortURIFilter -Name[pa]=ShortURI ਫਿਲਟਰ -Name[pl]=Filtr Krótkich URI -Name[pt]=ShortURIFilter -Name[pt_BR]=Filtro URI -Name[ro]=Filtru de URI-uri scurte -Name[ru]=ShortURIFilter -Name[se]=ShortURIFilter -Name[si]=කෙටි URI පෙරණය -Name[sk]=KrátkyURIFilter -Name[sl]=FilterZaKratkeURI -Name[sr]=Филтер кратких УРИ‑ја -Name[sr@ijekavian]=Филтер кратких УРИ‑ја -Name[sr@ijekavianlatin]=Filter kratkih URI‑ja -Name[sr@latin]=Filter kratkih URI‑ja -Name[sv]=Kort webbadressfilter -Name[ta]=ShortURIFilter -Name[te]=ShortURIFilter -Name[tg]=ShortURIFilter -Name[th]=ShortURIFilter -Name[tr]=KısaURISüzgeci -Name[ug]=قىسقا URI سۈزگۈچ -Name[uk]=Фільтр коротких URI -Name[uz]=ShortURIFilter -Name[uz@cyrillic]=ShortURIFilter -Name[vi]=ShortURIFilter -Name[wa]=Passete Coûte URI -Name[xh]=ShortURIFilter -Name[x-test]=xxShortURIFilterxx -Name[zh_CN]=短 URI 过滤 -Name[zh_TW]=短 URI 過濾器 -X-KDE-Library=kf5/urifilters/kshorturifilter -X-KDE-ServiceTypes=KUriFilter/Plugin -InitialPreference=5 Index: src/urifilters/shorturi/kshorturifilter.json =================================================================== --- /dev/null +++ src/urifilters/shorturi/kshorturifilter.json @@ -0,0 +1,6 @@ +{ + "KPlugin": { + "ServiceTypes": [ "KUriFilter/Plugin" ] + }, + "X-KDE-InitialPreference": 5 +} Index: src/widgets/kurifilter.cpp =================================================================== --- src/widgets/kurifilter.cpp +++ src/widgets/kurifilter.cpp @@ -23,9 +23,11 @@ #include "hostinfo.h" #include -#include +#include #include +#include + #include #include #include @@ -672,21 +674,25 @@ void KUriFilter::loadPlugins() { - const KService::List offers = KServiceTypeTrader::self()->query(QStringLiteral("KUriFilter/Plugin")); - - // NOTE: Plugin priority is determined by the InitialPreference entry in - // the .desktop files, so the trader result is already sorted and should - // not be manually sorted. - Q_FOREACH (const KService::Ptr &ptr, offers) { - KUriFilterPlugin *plugin = ptr->createInstance(); - if (plugin) { - const QString &pluginName = plugin->objectName(); - Q_ASSERT(!pluginName.isEmpty()); - d->plugins.insert(pluginName, plugin); - // Needed to ensure the order of filtering is honored since - // items are ordered arbitrarily in a QHash and QMap always - // sorts by keys. Both undesired behavior. - d->pluginNames << pluginName; + QVector plugins = KPluginLoader::findPlugins("kf5/urifilters"); + // Sort the plugins by order of priority + std::sort(plugins.begin(), plugins.end(), [](const KPluginMetaData &a, const KPluginMetaData &b) { + return a.rawData().value("X-KDE-InitialPreference").toInt() > b.rawData().value("X-KDE-InitialPreference").toInt(); + }); + + for (const KPluginMetaData &pluginMetaData : plugins) { + KPluginFactory *factory = qobject_cast(pluginMetaData.instantiate()); + if (factory) { + KUriFilterPlugin *plugin = factory->create(nullptr); + if (plugin) { + const QString &pluginName = plugin->objectName(); + Q_ASSERT(!pluginName.isEmpty()); + d->plugins.insert(pluginName, plugin); + // Needed to ensure the order of filtering is honored since + // items are ordered arbitrarily in a QHash and QMap always + // sorts by keys. Both undesired behavior. + d->pluginNames << pluginName; + } } } } Index: src/widgets/kurifilterplugin.desktop =================================================================== --- src/widgets/kurifilterplugin.desktop +++ src/widgets/kurifilterplugin.desktop @@ -53,3 +53,6 @@ Name[zh_CN]=增强的浏览插件 Name[zh_HK]=增強功能的瀏覽外掛程式 Name[zh_TW]=增強的瀏覽外掛程式 + +[PropertyDef::X-KDE-InitialPreference] +Type=int