merge kcontrol files from kde-runtime

This commit is contained in:
Ivailo Monev 2014-11-15 03:14:34 +02:00
parent 4956fb024a
commit 8b8cf26e2c
96 changed files with 16153 additions and 0 deletions

View file

@ -35,6 +35,15 @@ add_subdirectory( desktoptheme )
add_subdirectory( standard_actions )
add_subdirectory( keys )
add_subdirectory( workspaceoptions )
add_subdirectory( icons )
add_subdirectory( locale )
add_subdirectory( kded )
add_subdirectory( knotify )
add_subdirectory( componentchooser )
add_subdirectory( menus )
add_subdirectory( dnssd )
add_subdirectory( emoticons )
add_subdirectory( spellchecking )
# TODO needs porting
#add_subdirectory( smartcard )

View file

@ -0,0 +1,51 @@
add_subdirectory( componentservices )
add_subdirectory( windowmanagers )
########### next target ###############
set(kcm_componentchooser_SRCS
componentchooser.cpp
componentchooserbrowser.cpp
componentchooserfilemanager.cpp
componentchooseremail.cpp
kcm_componentchooser.cpp
)
if(NOT WIN32)
set(kcm_componentchooser_SRCS ${kcm_componentchooser_SRCS}
componentchooserterminal.cpp ktimerdialog.cpp)
endif(NOT WIN32)
if(Q_WS_X11)
set(kcm_componentchooser_SRCS ${kcm_componentchooser_SRCS}
componentchooserwm.cpp )
endif(Q_WS_X11)
kde4_add_ui_files(kcm_componentchooser_SRCS
browserconfig_ui.ui
filemanagerconfig_ui.ui
emailclientconfig_ui.ui
componentchooser_ui.ui
componentconfig_ui.ui
)
if(NOT WIN32)
kde4_add_ui_files(kcm_componentchooser_SRCS terminalemulatorconfig_ui.ui wmconfig_ui.ui)
endif(NOT WIN32)
kde4_add_plugin(kcm_componentchooser ${kcm_componentchooser_SRCS})
target_link_libraries(kcm_componentchooser ${KDE4_KIO_LIBS})
install(TARGETS kcm_componentchooser DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES componentchooser.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -0,0 +1,184 @@
Name=A nice name you have chosen for your interface
Name[af]='n oulike naam jy het gekies vir jou koppelvlak
Name[ar]=اسم جميل قمت باختياره لواجهتك
Name[ast]=Un prestosu nome qu'escueyas pa la interface
Name[be]=Файная назва, якую вы выбралі для свайго інтэрфейса
Name[be@latin]=Nazva, vybranaja dla tvajho interfejsu
Name[bg]=Име на компонент
Name[bn]=
Name[bn_IN]= ি িি
Name[bs]=Lijepo ime koje ste izabrali za svoje sučelje
Name[ca]=Un bonic nom que heu triat per a la interfície
Name[ca@valencia]=Un bonic nom que heu triat per a la interfície
Name[cs]=Hezký název pro vaše rozhraní
Name[csb]=Miłé miono, jaczé òstało wëbróné dlô programë
Name[cy]=Enw neis yr ydych wedi dewis am eich rhyngwyneb
Name[da]=Et godt navn som du har valgt for din grænseflade
Name[de]=Der von Ihnen gewählte Name für die Schnittstelle
Name[el]=Ένα όμορφο όνομα που έχετε επιλέξει για τη διασύνδεσή σας
Name[en_GB]=A nice name you have chosen for your interface
Name[eo]=Plaĉa nomo, kiun vi elektis por via interfaco
Name[es]=Un bonito nombre de su elección para su interfaz
Name[et]=Mõni kena nimi, mille sa oma liidesele valinud oled
Name[eu]=Zure interfazerako aukeratu duzun izen polit bat
Name[fa]=لقبی که برای واسط خود انتخاب کردهاید
Name[fi]=Valitsemasi nimi rajapinnalle
Name[fr]=Un joli nom que vous avez choisi pour votre interface
Name[fy]=In namme dy jo koazen ha foar jo ynterface
Name[ga]=Ainm deas a chuir tú ar do chomhéadan
Name[gl]=Un bon nome que escolleu para a súa interface
Name[gu]=
Name[he]=שם נחמד שבחרת לממשק שלך
Name[hi]= ि
Name[hne]=
Name[hr]=Naziv koji ste odabrali za vaše sučelje
Name[hsb]=Rjane mjeno sće wubrali za Waš interfejs
Name[hu]=Egy Ön által választott név a felülethez
Name[ia]=Un nomine gratiose que tu ha seligite pro tu interfacie
Name[id]=Anda telah memilih sebuah nama yang bagus untuk antarmuka anda
Name[is]=Vingjarnlegt nafn þú hefur valið fyrir umhverfið þitt
Name[it]=Un bel nome per la tua interfaccia
Name[ja]=
Name[ka]=
Name[kk]=Интерфейсіңізге таңдаған атауыңыз
Name[km]=
Name[kn]=ಿ () ಿಿ
Name[ko]=
Name[ku]=te ji bo navrûyê navelî xweş hilbijart
Name[lt]=Gražus vardas, kurį Jūs pasirinkote savo sąsajai
Name[lv]=Jauks nosaukums, ko jūs izvēlējāties savai saskarnei
Name[mai]= '
Name[mk]=Убаво име што сте го избрале за вашиот интерфејс
Name[ml]=ി ിിി ി
Name[mr]= ि ि
Name[ms]=Nama yang anda pilih untuk antara muka anda
Name[nb]=Et fint navn som du har valgt for grensesnittet
Name[nds]=Dor hest Du Di'n smucken Naam för Dien Koppelsteed utsöcht
Name[ne]= ि
Name[nl]=Een naam die u hebt gekozen voor uw interface
Name[nn]=Eit fint namn du har valt for grensesnittet
Name[or]= ିି ି
Name[pa]=
Name[pl]=Zgrabna nazwa, którą wybrano dla interfejsu
Name[pt]=Um nome bonito que escolheu para a sua interface
Name[pt_BR]=Um bom nome que você escolheu para a sua interface
Name[ro]=Un nume drăguț ales de dumneavoastră pentru interfață
Name[ru]=Имя, которое вы выбрали для своего интерфейса
Name[se]=Du lavtta čáppa namma
Name[si]= .
Name[sk]=Pekný názov pre vaše rozhranie
Name[sl]=Lepo ime, ki ste ga izbrali za svoj vmesnik
Name[sr]=Лепо име које сте изабрали за своје сучеље
Name[sr@ijekavian]=Лијепо име које сте изабрали за своје сучеље
Name[sr@ijekavianlatin]=Lijepo ime koje ste izabrali za svoje sučelje
Name[sr@latin]=Lepo ime koje ste izabrali za svoje sučelje
Name[sv]=Ett bra namn som du har valt för gränssnittet
Name[ta]=
Name[te]= ి ి
Name[tg]=Номи аҷоибе, ки шумо барои интерфейси худ интихоб кардед
Name[th]=
Name[tr]=Arayüzünüz için seçtiğiniz güzel isim
Name[ug]=ئارايۈزگە ئاتتىن بىرنى تاللاڭ
Name[uk]=Гарна назва, вибрана вами для вашого інтерфейсу
Name[uz]=Interfeysingiz uchun chiroyli nom
Name[uz@cyrillic]=Интерфейсингиз учун чиройли ном
Name[vi]=Mt cái tên đp bn đã chn cho giao din ca mình
Name[wa]=On clapant no ki vos avoz tchoezi po voste eterface
Name[xh]=Igama elihle olikhetileyo kujongano lwakho
Name[x-test]=xxA nice name you have chosen for your interfacexx
Name[zh_CN]=
Name[zh_TW]=
Comment=A helpful description of the interface for the top right info box
Comment[af]='n hulpvaardig beskrywing van die koppelvlak vir die bo regterkant inligting boks
Comment[ar]=وصف مفيد للواجهة للواجهة لصندوق المعلومات في الزاوية العلوية اليمنى
Comment[ast]=Una descripción útil de la interface pal cuadru d'información superior derechu
Comment[be]=Карыснае апісанне інтэрфейсу для інфармацыйнай скрыні ў правым верхнім куце
Comment[be@latin]=Apisańnie dla vierchniaha pravaha pola źviestak
Comment[bg]=Описание на компонент
Comment[bn]=ি , ি -
Comment[bn_IN]= িি ি িি ি ি
Comment[bs]=Opis sučelja za gornje desno informativno polje
Comment[ca]=Una descripció útil de la interfície per al rètol informatiu superior dret
Comment[ca@valencia]=Una descripció útil de la interfície per al rètol informatiu superior dret
Comment[cs]=Smysluplný popis vašeho rozhraní pro informační box
Comment[csb]=Pòmòcny òpisënk programë (dlô wëdowiédzë w oczénkù w prawim, górnym rogù)
Comment[cy]=Disgrifiad cymorthwyol o'r rhyngwyneb i'r blwch gwybodaeth top de
Comment[da]=En nyttig beskrivelse af grænsefladen for infofeltet øverst til højre
Comment[de]=Hilfreiche Beschreibung der Schnittstelle für das Infofeld rechts oben
Comment[el]=Μια χρήσιμη περιγραφή της διασύνδεσης για το πάνω δεξιά πλαίσιο πληροφοριών
Comment[en_GB]=A helpful description of the interface for the top right info box
Comment[eo]=Helpema priskribo de la interfaco por la supre-dekstra informkesto
Comment[es]=Una descripción útil de la interfaz para el cuadro de información superior derecho
Comment[et]=Abiks kirjeldus
Comment[eu]=Interfazearen deskribapen lagungarria, goian eskuinean azalduko den informazio-koadrorako
Comment[fa]=یک توصیف مفید واسط برای سمت راست بالای جعبه اطلاعات
Comment[fi]=Tässä pitäisi olla pieni kuvaus rajapinnasta oikean yläkulman laatikkoon
Comment[fr]=Une description utile de l'interface pour la boîte d'informations en haut à droite
Comment[fy]=In helpzame omskriuwing fan de ynterface, Wat bedoelt is foar it ynformaasjefak rjochtboppe
Comment[ga]=Cur síos cabhrach ar chomhéadan an bhosca faisnéise ag an mbarr ar dheis
Comment[gl]=Unha descrición da interface para o botón de información de riba á dereita
Comment[gu]= િ
Comment[he]=תיאור שימושי של הממשק בשביל תיבת המידע המוצגת מצד שמאל למעלה
Comment[hi]= .
Comment[hne]= .
Comment[hr]=Koristan opis sučelja u info-okviru gore desno
Comment[hsb]=Spomožne wopisanje interfejsa za informaciski kašćik horjeka naprawo.
Comment[hu]=A felület leírása a jobb felső sarokban található tájékoztató ablakhoz
Comment[ia]=Un description utile del interface pro le cassa de info in alto a dextera
Comment[id]=Deskripsi yang berguna tentang antarmuka untuk kotak info di kanan atas
Comment[is]=Jamm, hér ætti að vera smá lýsing á viðbótinni
Comment[it]=Un'utile descrizione dell'interfaccia per la casella delle informazioni
Comment[ja]=
Comment[kk]=Жоғары оң жақтағы мәлімет терезесі үшін интерфейстің сипаттамасы
Comment[km]=
Comment[kn]= ಿಿ () ಿ ಿ
Comment[ko]=
Comment[ku]=Ravekirineke alîker ji bo agahiya qutîka jor-rastê a navrûyê
Comment[lt]=Naudingas sąsajos aprašymas, skirtas viršutinei dešinei informacijos langelio daliai
Comment[lv]=Noderīgs saskarnes apraksts augšējai labajai informācijas rūtij
Comment[mai]= ि ' .
Comment[mk]=Опис со објаснување за интерфејсот за горното десно поле за инфо.
Comment[ml]= ി ി ി ിി ി ിിി ി.
Comment[mr]= ि ि
Comment[ms]=Huraian antara muka yang sangat membantu untuk kotak maklumat kanan atas
Comment[nb]=Beskrivelse av grensesnittet for infoboksen øverst til høyre
Comment[nds]=En hölpsche Beschrieven vun de Koppelsteed för den Info-Kasten rechterhand baven
Comment[ne]=ि ि
Comment[nl]=Een behulpzame omschrijving van de interface, bedoelt voor het informatievak rechts boven
Comment[nn]=Ei hjelpsam skildring av grensesnittet for infoboksen oppe til høgre
Comment[or]= ି
Comment[pa]=
Comment[pl]=Pomocny opis programu (dla informacji w okienku w prawym, górnym rogu)
Comment[pt]=Uma descrição útil da interface para a zona de informação do canto superior direito
Comment[pt_BR]=Uma descrição útil da interface para a caixa de informação superior direita
Comment[ro]=Aici trebuie să fie descrierea interfeței pentru căsuța din dreapta-sus
Comment[ru]=Полезное описание интерфейса в верхнем правом информационном окне
Comment[se]=Laktaválddahus maid infoboksa badjin olgešbealde geavaha.
Comment[si]=
Comment[sk]=Pomocný popis rozhrania pre informačný box v pravom hornom rohu
Comment[sl]=Primeren opis vmesnika za gornjo desno okno z podrobnostmi
Comment[sr]=Опис сучеља за горње десно информативно поље
Comment[sr@ijekavian]=Опис сучеља за горње десно информативно поље
Comment[sr@ijekavianlatin]=Opis sučelja za gornje desno informativno polje
Comment[sr@latin]=Opis sučelja za gornje desno informativno polje
Comment[sv]=Hjälpsam beskrivning av gränssnittet för informationsrutan uppe till höger
Comment[ta]= ி ி
Comment[te]= ి
Comment[tg]=Тафсилоти кӯмаккунандаи интерфейс барои варақаи маълумот дар боло аз тарафи рост
Comment[th]=
Comment[tr]=Sağ üst bilgi kutucuğu için arayüzün açıklayıcı tanımı
Comment[ug]=ئوڭ ئۈستى ئۇچۇر قۇتىسىدا كۆرۈنىدىغان ئارايۈز ياردەم چۈشەندۈرۈشى
Comment[uk]=Допоміжний опис інтерфейсу для віконця інформації вгорі праворуч
Comment[vi]=Mt mô t giao din có ích cho hp thông tin trên cùng bên phi
Comment[wa]=Èn ahessåve discrijhaedje di l' eterface, pol boesse d' infôrmåcion del coine å dzeu a droete
Comment[xh]=Uchazo oluluncedo lojongano olungaphezulu ekunene kwebhokisi yolwazi
Comment[x-test]=xxA helpful description of the interface for the top right info boxxx
Comment[zh_CN]=
Comment[zh_TW]=
configurationType=Possible values are component and application. Only component is handled at the moment though
ServiceTypeToConfigure=The service type, which should be configured. If this line is empty you have to provide a plugin (not supported yet)
defaultImplementation=The name of the default implementation as it would be returned by KService::desktopEntryName()
storeInFile=default_components //the file where the setting should be saved (default_components sounds reasonable for a central storage)
valueSection=The desktop section, where the setting should be stored
valueName=the name of the value entry

View file

@ -0,0 +1,3 @@
#! /usr/bin/env bash
$EXTRACTRC *.ui >> rc.cpp
$XGETTEXT *.cpp -o $podir/kcmcomponentchooser.pot

View file

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>BrowserConfig_UI</class>
<widget class="QWidget" name="BrowserConfig_UI">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;qt&gt;Open &lt;b&gt;http&lt;/b&gt; and &lt;b&gt;https&lt;/b&gt; URLs&lt;/qt&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioKIO">
<property name="text">
<string>in an application based on the contents of the URL</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioExec">
<property name="text">
<string>in the following browser:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KLineEdit" name="lineExec">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnSelectBrowser">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header location="global">KDE/KLineEdit</header>
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>radioExec</sender>
<signal>toggled(bool)</signal>
<receiver>lineExec</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>radioExec</sender>
<signal>toggled(bool)</signal>
<receiver>btnSelectBrowser</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -0,0 +1,291 @@
/***************************************************************************
componentchooser.cpp - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License verstion 2 as *
* published by the Free Software Foundation *
* *
***************************************************************************/
#include "componentchooser.h"
#include "componentchooser.moc"
#include "componentchooserbrowser.h"
#include "componentchooseremail.h"
#include "componentchooserfilemanager.h"
#ifdef Q_OS_UNIX
#include "componentchooserterminal.h"
#endif
#ifdef Q_WS_X11
#include "componentchooserwm.h"
#endif
#include <QCheckBox>
#include <klocale.h>
#include <kmessagebox.h>
#include <kconfig.h>
#include <kstandarddirs.h>
#include <kmimetypetrader.h>
#include <kurlrequester.h>
#include <ktoolinvocation.h>
#include <klauncher_iface.h>
#include <kconfiggroup.h>
#include <KServiceTypeTrader>
//BEGIN General kpart based Component selection
CfgComponent::CfgComponent(QWidget *parent)
: QWidget(parent), Ui::ComponentConfig_UI(), CfgPlugin()
{
setupUi( this );
connect(ComponentSelector,SIGNAL(activated(const QString&)),this,SLOT(slotComponentChanged(const QString&)));
}
CfgComponent::~CfgComponent()
{
}
void CfgComponent::slotComponentChanged(const QString&) {
emit changed(true);
}
void CfgComponent::save(KConfig *cfg) {
// yes, this can happen if there are NO KTrader offers for this component
if (!m_lookupDict.contains(ComponentSelector->currentText()))
return;
KConfigGroup mainGroup = cfg->group(QByteArray());
QString serviceTypeToConfigure=mainGroup.readEntry("ServiceTypeToConfigure");
KConfig store(mainGroup.readPathEntry("storeInFile", "null"));
KConfigGroup cg(&store, mainGroup.readEntry("valueSection"));
cg.writePathEntry(mainGroup.readEntry("valueName", "kcm_componenchooser_null"),
m_lookupDict.value(ComponentSelector->currentText()));
store.sync();
emit changed(false);
}
void CfgComponent::load(KConfig *cfg) {
ComponentSelector->clear();
m_lookupDict.clear();
m_revLookupDict.clear();
const KConfigGroup mainGroup = cfg->group(QByteArray());
const QString serviceTypeToConfigure = mainGroup.readEntry("ServiceTypeToConfigure");
const KService::List offers = KServiceTypeTrader::self()->query(serviceTypeToConfigure);
for (KService::List::const_iterator tit = offers.begin(); tit != offers.end(); ++tit) {
ComponentSelector->addItem((*tit)->name());
m_lookupDict.insert((*tit)->name(), (*tit)->desktopEntryName());
m_revLookupDict.insert((*tit)->desktopEntryName(), (*tit)->name());
}
KConfig store(mainGroup.readPathEntry("storeInFile","null"));
const KConfigGroup group(&store, mainGroup.readEntry("valueSection"));
QString setting = group.readEntry(mainGroup.readEntry("valueName","kcm_componenchooser_null"), QString());
if (setting.isEmpty())
setting = mainGroup.readEntry("defaultImplementation", QString());
QString tmp = m_revLookupDict.value(setting);
if (!tmp.isEmpty()) {
for (int i=0;i<ComponentSelector->count();i++)
if (tmp==ComponentSelector->itemText(i))
{
ComponentSelector->setCurrentIndex(i);
break;
}
}
emit changed(false);
}
void CfgComponent::defaults()
{
//todo
}
//END General kpart based Component selection
ComponentChooser::ComponentChooser(QWidget *parent):
QWidget(parent), Ui::ComponentChooser_UI(), somethingChanged(false), configWidget(0)
{
setupUi(this);
static_cast<QGridLayout*>(layout())->setRowStretch(1, 1);
const QStringList services=KGlobal::dirs()->findAllResources( "data","kcm_componentchooser/*.desktop",
KStandardDirs::NoDuplicates);
for (QStringList::const_iterator it=services.constBegin(); it!=services.constEnd(); ++it)
{
KConfig cfg(*it, KConfig::SimpleConfig);
KConfigGroup cg = cfg.group(QByteArray());
QListWidgetItem *item = new QListWidgetItem(
KIcon(cg.readEntry("Icon",QString("preferences-desktop-default-applications"))),
cg.readEntry("Name",i18n("Unknown")));
item->setData(Qt::UserRole, (*it));
ServiceChooser->addItem(item);
}
ServiceChooser->setFixedWidth(ServiceChooser->sizeHintForColumn(0) + 20);
ServiceChooser->sortItems();
connect(ServiceChooser,SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)),this,SLOT(slotServiceSelected(QListWidgetItem*)));
ServiceChooser->setCurrentRow(0);
slotServiceSelected(ServiceChooser->item(0));
}
void ComponentChooser::slotServiceSelected(QListWidgetItem* it) {
if (!it) return;
if (somethingChanged) {
if (KMessageBox::questionYesNo(this,i18n("<qt>You changed the default component of your choice, do want to save that change now ?</qt>"),QString(),KStandardGuiItem::save(),KStandardGuiItem::discard())==KMessageBox::Yes) save();
}
KConfig cfg(it->data(Qt::UserRole).toString(), KConfig::SimpleConfig);
ComponentDescription->setText(cfg.group(QByteArray()).readEntry("Comment",i18n("No description available")));
ComponentDescription->setMinimumSize(ComponentDescription->sizeHint());
QString cfgType=cfg.group(QByteArray()).readEntry("configurationType");
QWidget *newConfigWidget = 0;
if (cfgType.isEmpty() || (cfgType=="component"))
{
if (!(configWidget && qobject_cast<CfgComponent*>(configWidget)))
{
CfgComponent* cfgcomp = new CfgComponent(configContainer);
cfgcomp->ChooserDocu->setText(i18n("Choose from the list below which component should be used by default for the %1 service.", it->text()));
newConfigWidget = cfgcomp;
}
else
{
static_cast<CfgComponent*>(configWidget)->ChooserDocu->setText(i18n("Choose from the list below which component should be used by default for the %1 service.", it->text()));
}
}
else if (cfgType=="internal_email")
{
if (!(configWidget && qobject_cast<CfgEmailClient*>(configWidget)))
{
newConfigWidget = new CfgEmailClient(configContainer);
}
}
#ifdef Q_OS_UNIX
else if (cfgType=="internal_terminal")
{
if (!(configWidget && qobject_cast<CfgTerminalEmulator*>(configWidget)))
{
newConfigWidget = new CfgTerminalEmulator(configContainer);
}
}
#ifdef Q_WS_X11
else if (cfgType=="internal_wm")
{
if (!(configWidget && qobject_cast<CfgWm*>(configWidget)))
{
newConfigWidget = new CfgWm(configContainer);
}
}
#endif
#endif
else if (cfgType=="internal_filemanager")
{
if (!(configWidget && qobject_cast<CfgFileManager*>(configWidget)))
{
newConfigWidget = new CfgFileManager(configContainer);
}
}
else if (cfgType=="internal_browser")
{
if (!(configWidget && qobject_cast<CfgBrowser*>(configWidget)))
{
newConfigWidget = new CfgBrowser(configContainer);
}
}
if (newConfigWidget)
{
configContainer->addWidget(newConfigWidget);
configContainer->setCurrentWidget (newConfigWidget);
configContainer->removeWidget(configWidget);
delete configWidget;
configWidget=newConfigWidget;
connect(configWidget,SIGNAL(changed(bool)),this,SLOT(emitChanged(bool)));
configContainer->setMinimumSize(configWidget->sizeHint());
}
if (configWidget)
dynamic_cast<CfgPlugin*>(configWidget)->load(&cfg);
emitChanged(false);
latestEditedService=it->data(Qt::UserRole).toString();
}
void ComponentChooser::emitChanged(bool val) {
somethingChanged=val;
emit changed(val);
}
ComponentChooser::~ComponentChooser()
{
delete configWidget;
}
void ComponentChooser::load() {
if( configWidget )
{
CfgPlugin * plugin = dynamic_cast<CfgPlugin*>( configWidget );
if( plugin )
{
KConfig cfg(latestEditedService, KConfig::SimpleConfig);
plugin->load( &cfg );
}
}
}
void ComponentChooser::save() {
if( configWidget )
{
CfgPlugin* plugin = dynamic_cast<CfgPlugin*>( configWidget );
if( plugin )
{
KConfig cfg(latestEditedService, KConfig::SimpleConfig);
plugin->save( &cfg );
}
}
}
void ComponentChooser::restoreDefault() {
if (configWidget)
{
dynamic_cast<CfgPlugin*>(configWidget)->defaults();
emitChanged(true);
}
/*
txtEMailClient->setText("kmail");
chkRunTerminal->setChecked(false);
// Check if -e is needed, I do not think so
terminalLE->setText("xterm"); //No need for i18n
terminalCB->setChecked(true);
emitChanged(false);
*/
}
// vim: sw=4 ts=4 noet

View file

@ -0,0 +1,250 @@
[Desktop Entry]
Exec=kcmshell4 componentchooser
Icon=preferences-desktop-default-applications
Type=Service
X-KDE-ServiceTypes=KCModule
X-KDE-Library=kcm_componentchooser
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=workspace-appearance-and-behavior
X-DocPath=kcontrol/componentchooser/index.html
Name=Default Applications
Name[af]=Verstektoepassings
Name[ar]=التطبيقات الافتراضية
Name[ast]=Aplicaciones predeterminaes
Name[be]=Праграмы па змаўчанні
Name[be@latin]=Zmoŭčanyja aplikacyi
Name[bg]=Стандартни програми
Name[bn]=ি ি
Name[bn_IN]=ি ি
Name[bs]=Podrazumijevani programi
Name[ca]=Aplicacions per omissió
Name[ca@valencia]=Aplicacions per omissió
Name[cs]=Výchozí aplikace
Name[csb]=Domëslné programë
Name[da]=Standardprogrammer
Name[de]=Standard-Komponenten
Name[el]=Προκαθορισμένες εφαρμογές
Name[en_GB]=Default Applications
Name[eo]=Aprioraj aplikaĵoj
Name[es]=Aplicaciones predeterminadas
Name[et]=Vaikimisi rakendused
Name[eu]=Aplikazio lehenetsiak
Name[fa]=کاربردهای پیشفرض
Name[fi]=Oletussovellukset
Name[fr]=Applications par défaut
Name[fy]=Standert applikaasjes
Name[ga]=Feidhmchláir Réamhshocraithe
Name[gl]=Programas predeterminados
Name[gu]=
Name[he]=תוכניות ברירת־מחדל
Name[hi]=ि
Name[hne]=ि
Name[hr]=Zadane aplikacije
Name[hsb]=Standardne aplikacije
Name[hu]=Alapértelmezett alkalmazások
Name[ia]=Applicationes predefinite
Name[id]=Aplikasi Standar
Name[is]=Sjálfgefin forrit
Name[it]=Applicazioni predefinite
Name[ja]=
Name[kk]=Әдетті қолданбалары
Name[km]=
Name[kn]=ಿಿ (ಿ)
Name[ko]=
Name[ku]=Sepanên Standard
Name[lt]=Numatytos programos
Name[lv]=Noklusētās programmas
Name[mai]=िि
Name[mk]=Стандардни апликации
Name[ml]=
Name[mr]=
Name[nb]=Standardprogrammer
Name[nds]=Standardprogrammen
Name[ne]=िि
Name[nl]=Standaard-toepassingen
Name[nn]=Standardprogram
Name[or]=ିି ି
Name[pa]=ਿ
Name[pl]=Domyślne programy
Name[pt]=Aplicações Predefinidas
Name[pt_BR]=Aplicativos padrão
Name[ro]=Aplicații implicite
Name[ru]=Приложения по умолчанию
Name[se]=Standárdprográmmat
Name[si]=
Name[sk]=Štandardné aplikácie
Name[sl]=Privzeti programi
Name[sr]=Подразумевани програми
Name[sr@ijekavian]=Подразумијевани програми
Name[sr@ijekavianlatin]=Podrazumijevani programi
Name[sr@latin]=Podrazumevani programi
Name[sv]=Standardprogram
Name[ta]=ி
Name[te]=
Name[tg]=Барномаҳои стандартӣ
Name[th]=
Name[tr]=Öntanımlı Uygulamalar
Name[ug]=كۆڭۈلدىكى پروگراممىلار
Name[uk]=Типові програми
Name[uz]=Andoza dasturlar
Name[uz@cyrillic]=Андоза дастурлар
Name[vi]=ng dng mc đnh
Name[wa]=Prémetous programes
Name[x-test]=xxDefault Applicationsxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Choose the default components for various services
Comment[af]=Kies die verstek komponente vir verskeie dienste
Comment[ar]=اختر المكونات المبدئية للخدمات المتنوعة
Comment[ast]=Escoyer los componentes predeterminaos pa dellos servicios
Comment[be]=Выбірае стандартныя кампаненты для розных сервісаў
Comment[be@latin]=Vybiery zmoŭčanyja kampanenty dla roznych słužbaŭ
Comment[bg]=Избор на предпочитани компоненти за е-поща, редактиране на текст и др.
Comment[bn]=িি ি ি ি
Comment[bn_IN]=িি ি ি ি
Comment[bs]=Izbor podrazumijevanih komponenti za razne servise
Comment[ca]=Selecció dels components predeterminats per a diversos serveis
Comment[ca@valencia]=Selecció dels components predeterminats per a diversos serveis
Comment[cs]=Vyberte výchozí komponenty pro různé služby
Comment[csb]=Wébiérk domëslnych kòmpònentów dlô wszelejaczich ùsłëżnotów
Comment[cy]=Dewiswch y cydrannau rhagosodedig i wasanaethau amrywiol
Comment[da]=Vælg standardkomponenterne for forskellige tjenester
Comment[de]=Die Standard-Komponenten für diverse Dienste
Comment[el]=Επιλέξτε τα προκαθορισμένα συστατικά για διάφορες υπηρεσίες
Comment[en_GB]=Choose the default components for various services
Comment[eo]=Elektu la apriorajn komponantojn por diversaj servoj
Comment[es]=Elegir los componentes predeterminados para varios servicios
Comment[et]=Mitmete teenuste vaikekomponentide valimine
Comment[eu]=Hainbat zerbitzuren osagai lehenetsiak aukeratzea
Comment[fa]=انتخاب مؤلفههای پیشفرض برای خدمات گوناگون
Comment[fi]=Palveluiden oletuskomponenttien asetukset
Comment[fr]=Choisir les composants par défaut pour les différents services
Comment[fy]=Kies de standertkomponinten foar de ferskate tsjinsten
Comment[ga]=Roghnaigh na comhpháirteanna réamhshocraithe le haghaidh seirbhísí éagsúla
Comment[gl]=Escolla as compoñentes predeterminadas para varios servizos
Comment[gu]=
Comment[he]=בחירת רכיבי ברירת־המחדל עבור שירותים שונים
Comment[hi]=ि ि ि
Comment[hne]=ि ि
Comment[hr]=Odaberite zadane komponente za različite usluge
Comment[hsb]=Wubjerće standardne komponenty za wšelake serwisy
Comment[hu]=Az alapértelmezett komponensek kiválasztása a különféle szolgáltatásokhoz
Comment[ia]=Selige le componentes predefinite pro varie servicios
Comment[id]=Pilih komponen standar untuk berbagai layanan
Comment[is]=Velja sjálfgefnar einingar fyrir ýmsar þjónustur
Comment[it]=Scelta dei componenti predefiniti per vari servizi
Comment[ja]=使
Comment[ka]=
Comment[kk]=Түрлі қызмет ететін әдетті компоненттерін таңдау
Comment[km]=
Comment[kn]=ಿಿ ಿ ಿಿ ಿ
Comment[ko]=
Comment[ku]=Ji bo xizmetên cuda parçeyên standard hilbijêre
Comment[lt]=Pasirinkite numatytus komponentus įvairioms tarnyboms
Comment[lv]=Izvēlieties noklusējuma komponentes dažādiem servisiem
Comment[mai]=ि ' िि
Comment[mk]=Изберете ги стандардните компоненти за разните сервиси
Comment[ml]=
Comment[mr]=िि ि ि ि
Comment[ms]=Pilih komponen piawai untuk pelbagai servis
Comment[nb]=Velg standardkomponenter for ulike tjenester
Comment[nds]=De Standardprogrammen för Deensten utsöken
Comment[ne]=िि ि िि
Comment[nl]=Kies de standaardcomponenten voor diverse services
Comment[nn]=Vel standardkomponentar for ymse tenester
Comment[or]=ିି ିି ିି ି
Comment[pa]= ਿ ਿ
Comment[pl]=Wybór domyślnych składników dla różnych usług
Comment[pt]=Escolha os componentes predefinidos para os vários serviços
Comment[pt_BR]=Escolha os componentes padrão para vários serviços
Comment[ro]=Alegeți componentele implicite pentru diferite servicii
Comment[ru]=Выбор программ для основных задач
Comment[se]=Vállje bálválusaid standárdosiid
Comment[si]=
Comment[sk]=Vyberte štandardné komponenty pre rôzne služby
Comment[sl]=Izberite privzete enote za različne storitve
Comment[sr]=Избор подразумеваних компоненти за разне сервисе
Comment[sr@ijekavian]=Избор подразумијеваних компоненти за разне сервисе
Comment[sr@ijekavianlatin]=Izbor podrazumijevanih komponenti za razne servise
Comment[sr@latin]=Izbor podrazumevanih komponenti za razne servise
Comment[sv]=Väljer normalkomponenter för olika sorters tjänster
Comment[ta]=ி ி ி
Comment[te]=ిి
Comment[tg]=Қисмҳои стандартиро барои хизматҳои гуногун интихоб кунед
Comment[th]=
Comment[tr]=Çeşitli servisler için öntanımlı bileşenleri seçin
Comment[ug]=ھەر خىل مۇلازىمەتلەرنىڭ كۆڭۈلدىكى بۆلەكلىرىنى تاللاڭ
Comment[uk]=Вибір типових компонентів для різноманітних служб
Comment[uz]=Turli xizmatlar uchun andoza komponentlarni tanlash
Comment[uz@cyrillic]=Турли хизматлар учун андоза компонентларни танлаш
Comment[vi]=Chn các thành phn mc đnh cho các dch v khác nhau
Comment[wa]=Tchoezi les prémetous compôzants po sacwants siervices
Comment[xh]=Khetha ingxenye zokungagqibekanga kweenkonzo eziliqela
Comment[x-test]=xxChoose the default components for various servicesxx
Comment[zh_CN]=
Comment[zh_TW]=
X-KDE-Keywords=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[ar]=التطبيقات الافتراضية، المكونات، مخير المكون، الموارد، البريد الإلكتروني، عميل البريد الإلكتروني، محرر نصوص، مرسال فوري، محاكي الطرفية،متصفح الشبكة، مسار، وصلات فائقة
X-KDE-Keywords[bg]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,програми по подразбиране,подразбиране,е-поща,съобщения,моментни съобщения,терминал, конзола,браузър,уеб-браузър
X-KDE-Keywords[bn]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[bs]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks, podrazumijevani programi, komponente, izbor komponenti, resursi, elektronska pošta, instant poruke
X-KDE-Keywords[ca]=aplicacions per defecte,components,selector de components,recursos,e-mail,client de correu electrònic,editor de text,missatgeria instantània,emulador de terminal,navegador web,URL,hiperenllaços
X-KDE-Keywords[ca@valencia]=aplicacions per defecte,components,selector de components,recursos,e-mail,client de correu electrònic,editor de text,missatgeria instantània,emulador de terminal,navegador web,URL,hiperenllaços
X-KDE-Keywords[cs]=výchozí aplikace,komponenty,výběr komponent,zdroje,e-mail,emailový klient,editor textu,komunikátor,emulátor terminálů,webový prohlížeč,URL,odkazy
X-KDE-Keywords[da]=standardprogrammer,komponenter,komponentvælger,ressourcer,e-mail,email klient,tekst-editor,instant messenger,terminal-emulator,webbrowser,URL,hyperlinks
X-KDE-Keywords[de]=Standard-Anwendungen,Standard-Komponenten,Komponenten,Ressourcen,E-Mail,E-Mail-Programm,Terminal-Emulation,Programme,Anwendungen,Web,Browser,URL
X-KDE-Keywords[el]=προκαθορισμένες εφαρμογές,συστατικά,επιλογέας συστατικών,πόροι,αλληλογραφία,εφαρμογή αλληλογραφίας,επεξεργαστής κειμένου,εφαρμογή στιγμιαίων μηνυμάτων,εξομοιωτής τερματικού,περιηγητής ιστού,URL,υπερσύνδεσμοι
X-KDE-Keywords[en_GB]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[eo]=aprioraj aplikaĵoj,komponantoj,elektilo de komponantoj,risurcoj,retpoŝto,kliento de retpoŝto,tekstredaktilo,tujmesaĝilo,terminalo,retumilo,URL,hiperligilo
X-KDE-Keywords[es]=aplicaciones predeterminadas,componentes,selector de componente,recursos,correo electrónico,cliente de correo electrónico,editor de texto,cliente de mensajería instantánea,emulador de terminal,navegador web,URL,hiperenlaces
X-KDE-Keywords[et]=vaikimisi rakendused,komponendid,komponentide valija,ressursid,e-post,e-posti klient,tekstiredaktor,kiirsuhtlus,terminaliemulaator,veebibrauser,URL,hüperlingid
X-KDE-Keywords[eu]=aplikazio lehenetsiak,osagaiak,osagai-hautatzailea,baliabideak,h. el.,posta-bezeroa,testu-editorea,berehalako mezularitza,terminal-emuladorea,web-arakatzailea,URLa,hiperestekak
X-KDE-Keywords[fa]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[fi]=oletussovellukset,komponentit,komponenttivalitsin,resurssit,e-mail,email,sähköposti,sähköpostiohjelma,tekstimuokkain,tekstieditori,pikaviestin,pikaviestiohjelma,pääte-emulaattori,WWW-selain,web-selain,verkkoselain,osoite,linkit
X-KDE-Keywords[fr]=applications par défaut, composants, sélecteur de composants, ressources, courriel, client de courrier électronique, éditeur de texte, messagerie instantanée, émulateur de terminal, navigateur Web, URL, liens hypertexte
X-KDE-Keywords[ga]=feidhmchlár réamhshocraithe,comhpháirteanna,roghnóir comhpháirte,acmhainní,ríomhphost,cliant ríomhphoist,eagarthóir téacs,cur teachtaireachtaí meandaracha,aithriseoir teirminéil,brabhsálaí,URL,hipearnaisc
X-KDE-Keywords[gl]=predeterminado, programas, aplicación, aplicativo, compoñente, recursos, correo, email, cliente, axente, editor de texto, mensaxería, emulador de terminal, navegador, URL, hiperligazón
X-KDE-Keywords[gu]= ,, ,,-, , , ,િ , ,URL,િ
X-KDE-Keywords[he]=יישומים ברירת מחדל,רכיבים, בוחר,משאבים,אימייל,דוא"ל,דואל,דואר,לקוח,עורך טקסט,מסרים מיידיים,מדמה מסוף,מסוף,דפדפן,כתובת,default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[hi]=ि , , , , - , - , , , ि , , ,ि
X-KDE-Keywords[hu]=alapértelmezett alkalmazások,komponensek,komponensválasztó,erőforrások,e-mail,e-mail kliens,szövegszerkesztő,azonnali üzenetküldő,terminálemulátor,webböngésző,URL,hiperhivatkozás
X-KDE-Keywords[ia]=applicationes predefinite,componentes,selector de componente,ressources,e-posta,cliente de e-posta, editor de texto,messagero instantanee,emulator de terminal,navigator web,hyperligamines de URL
X-KDE-Keywords[id]=aplikasi standar,komponen,pemilih komponen,sumber daya,surel,klien surel penyunting teks,pesan instan,emulator terminal,peramban web,URL,tautan hiper
X-KDE-Keywords[is]=sjálfgefin forrit,einingar,einingaval,aðföng,tölvupóstur,tölvupóstforrit,textaritill,skyndiskilaboð,skjáhermir,vafri,URL,slóð,veftengill
X-KDE-Keywords[it]=applicazioni predefinite,componenti,selettore componenti,risorse,email,posta elettronica,client di posta elettronica,editor di testo,messaggistica istantanea,emulatore di terminale,browser web,URL,collegamento ipertestuale
X-KDE-Keywords[ja]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[kk]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[km]= URL
X-KDE-Keywords[ko]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks, , ,,,,, , , ,,,, , ,
X-KDE-Keywords[lv]=noklusētās programmas,komponentes,komponenšu atlasītājs,resursi,e-pasts,e-pasta klients,teksta redaktors,tūlītējā ziņojumapmaiņa,termināļa emulators,tīmekļa pārlūks,URL,saites
X-KDE-Keywords[mr]= , , ि, , , , , ि , ि , , URL, ि
X-KDE-Keywords[nb]=standardprogrammer,komponenter,komponentvelger,ressurser,e-post,e-postklient,tekstprogram,lynmelding,terminalemulator,nettleser,URL,hyperlenker
X-KDE-Keywords[nds]=Standardprogrammen,Komponenten,Komponentköör,Ressourcen,Nettpost,Nettpostprogramm,Texteditor,Kortnarichtenprogramm,Konsool,Terminal,Nettkieker,URL,Hyperlinks
X-KDE-Keywords[nl]=standaard toepassingen,componenten,componentenkiezer,hulpbronnen,e-mail-client,tekstbewerker,instant-messenger,terminal-emulator,webbrowser,url-adres,hyperlinks
X-KDE-Keywords[nn]=standardprogram,komponentar,komponentveljar,ressursar,resursar,e-post,e-postklient,e-postprogram,lynmeldingar,terminalemulator,nettlesar,weblesar,URL,adresse,lenkjer,hyperlenkjer
X-KDE-Keywords[pa]=ਿ ,,, ,,,-, , , ,, , ,URL,ਿ
X-KDE-Keywords[pl]=domyślne programy,domyślne aplikacje,składniki,komponenty,wybór składników,zasoby,e-mail,poczta,klient pocztowy,edytor teksu,komunikator internetowy,emulator terminala,przeglądarka internetowa,URL,hiperodnośniki
X-KDE-Keywords[pt]=aplicações predefinidas,componentes,selector de componentes,recursos,e-mail,cliente de e-mail,editor de texto,mensageiro instantâneo,emulador de terminal,navegador Web,URL,hiperligações
X-KDE-Keywords[pt_BR]=aplicativos padrão,componentes,seletor de componentes,recursos,e-mail,cliente de e-mail,editor de texto,mensageiro instantâneo,emulador de terminal,navegador web,URL,hiperligações
X-KDE-Keywords[ro]=aplicații implicite,componente,alege componente,resurse,e-mail,email,client,editor text,mesager instant,emulator terminal, browser web,URL,link-uri
X-KDE-Keywords[ru]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,приложения по умолчанию,компоненты,ресурсы,электронная почта,контакт электронной почты,текстовый редактор,обмен мгновенными сообщениями,эмулятор терминала,браузер,гиперссылка
X-KDE-Keywords[sk]=predvolené aplikácie,komponenty,výber komponentu,zdroje,e-mail,emailový klient,textový editor,instant messenger,emulátor terminálu,webový prehliadač,URL,hyperlinky
X-KDE-Keywords[sl]=privzeti programi,enota,sestavni del,izbirnik enot,viri,e-pošta,epošta,urejevalnik besedila,hipno sporočanje,hipni sporočilnik,posnemovalnik terminala,spletni brskalnik,URL,hiperpovezave,hiper-povezave,povezave,naslov URL
X-KDE-Keywords[sr]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,подразумевани програми,компонента,бирач компоненти,ресурс,епошта,клијент епоште,уређивач текста,брзи гласник,емулатор терминала,веб прегледач,УРЛ,хипервеза
X-KDE-Keywords[sr@ijekavian]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,подразумевани програми,компонента,бирач компоненти,ресурс,епошта,клијент епоште,уређивач текста,брзи гласник,емулатор терминала,веб прегледач,УРЛ,хипервеза
X-KDE-Keywords[sr@ijekavianlatin]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,podrazumevani programi,komponenta,birač komponenti,resurs,epošta,klijent epošte,uređivač teksta,brzi glasnik,emulator terminala,veb pregledač,URL,hiperveza
X-KDE-Keywords[sr@latin]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,podrazumevani programi,komponenta,birač komponenti,resurs,epošta,klijent epošte,uređivač teksta,brzi glasnik,emulator terminala,veb pregledač,URL,hiperveza
X-KDE-Keywords[sv]=standardprogram,komponenter,komponentväljare,resurser,e-post,e-postprogram,texteditor,direktmeddelanden,terminalemulator,webbläsare,webbadress,hyperlänkar
X-KDE-Keywords[tg]=барномаҳои стандартӣ,қисмҳо,интихобкунандаи қисмҳо,манбаъҳо,почтаи электронӣ,мизоҷи почта,таҳриргари матнӣ,паёмнависии фаврӣ,эмулятори терминал,веб-браузер,URL,пайвандҳои интернетӣ
X-KDE-Keywords[tr]=öntanımlı uygulamalar,bileşenler,bileşen seçici,kaynaklar,e-posta,e-posta istemcisi,metin düzenleyici,hızlı mesajlaşma uygulaması,uçbirim,web tarayıcı,URL
X-KDE-Keywords[ug]=كۆڭۈلدىكى پروگراممىلار، بۆلەكلەر، بۆلەك تاللىغۇچ، مەنبەلەر، ئېلخەت، ئېلخەت خېرىدارى، تېكىست تەھرىرلىگۈچ، مۇڭداشقۇ، تېرمىنال تەقلىدلىگۈچ، توركۆرگۈ، URL، hyperlinks
X-KDE-Keywords[uk]=default applications;components;component chooser;resources;e-mail;email client;text editor;instant messenger;terminal emulator;web browser;URL;hyperlinks;програма;додаток;типовий;типова;вибір;компонент;ресурс;пошта;поштовий;повідомлення;редактор;текст;текстовий редактор;спілкування;обмін повідомленнями;емулятор;термінал;переглядач;перегляд;інтернет;сторінка;сторінки;посилання;адреси;адреса
X-KDE-Keywords[vi]=thành phn,b chn thành phn,tài nguyên,thư đin t,trình thư,mô phng thiết b cui,ng dng,default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks
X-KDE-Keywords[wa]=programes prémetou,componints,tchoezixheu d' componint,tchoezixheu di componint,rissource,emile,e-mail,cliyint,aspougneu di tecse,aspougneu d' tecse,messaedjî sol mounmint,messaedjreye sol moumint,MSM,terminå,emulateu d' terminå,emulateu di terminå,betchteu waibe,URL,adresse,hårdêyes,hårdêye
X-KDE-Keywords[x-test]=xxdefault applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinksxx
X-KDE-Keywords[zh_CN]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks,,,,,,,,,,,
X-KDE-Keywords[zh_TW]=default applications,components,component chooser,resources,e-mail,email client,text editor,instant messenger,terminal emulator,web browser,URL,hyperlinks

View file

@ -0,0 +1,90 @@
/***************************************************************************
componentchooser.h - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundationi *
* *
***************************************************************************/
#ifndef _COMPONENTCHOOSER_H_
#define _COMPONENTCHOOSER_H_
#include "ui_componentchooser_ui.h"
#include "ui_componentconfig_ui.h"
#include <QHash>
//Added by qt3to4:
#include <QVBoxLayout>
#include <kservice.h>
class QListWidgetItem;
class KConfig;
/* The CfgPlugin class is an exception. It is LGPL. It will be parted of the plugin interface
which I plan for KDE 3.2.
*/
class CfgPlugin
{
public:
CfgPlugin(){}
virtual ~CfgPlugin(){}
virtual void load(KConfig *cfg)=0;
virtual void save(KConfig *cfg)=0;
virtual void defaults()=0;
};
class CfgComponent: public QWidget, public Ui::ComponentConfig_UI, public CfgPlugin
{
Q_OBJECT
public:
CfgComponent(QWidget *parent);
virtual ~CfgComponent();
virtual void load(KConfig *cfg);
virtual void save(KConfig *cfg);
virtual void defaults();
protected:
QHash<QString, QString> m_lookupDict,m_revLookupDict;
protected Q_SLOTS:
void slotComponentChanged(const QString&);
Q_SIGNALS:
void changed(bool);
};
class ComponentChooser : public QWidget, public Ui::ComponentChooser_UI
{
Q_OBJECT
public:
ComponentChooser(QWidget *parent=0);
virtual ~ComponentChooser();
void load();
void save();
void restoreDefault();
private:
QString latestEditedService;
bool somethingChanged;
QWidget *configWidget;
QVBoxLayout *myLayout;
protected Q_SLOTS:
void emitChanged(bool);
void slotServiceSelected(QListWidgetItem *);
Q_SIGNALS:
void changed(bool);
};
#endif

View file

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ComponentChooser_UI</class>
<widget class="QWidget" name="ComponentChooser_UI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>427</width>
<height>192</height>
</rect>
</property>
<layout class="QGridLayout">
<property name="margin">
<number>0</number>
</property>
<item row="2" column="1">
<widget class="QGroupBox" name="GroupBox1">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="whatsThis">
<string>Here you can change the component program. Components are programs that handle basic tasks, like the terminal emulator, the text editor and the email client. Different KDE applications sometimes need to invoke a console emulator, send a mail or display some text. To do so consistently, these applications always call the same components. You can choose here which programs these components are.</string>
</property>
<property name="title">
<string>Default Component</string>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QStackedWidget" name="configContainer"/>
</item>
</layout>
</widget>
</item>
<item row="0" column="0" rowspan="3">
<widget class="KListWidget" name="ServiceChooser">
<property name="whatsThis">
<string>&lt;qt&gt;
&lt;p&gt;This list shows the configurable component types. Click the component you want to configure.&lt;/p&gt;
&lt;p&gt;In this dialog you can change KDE default components. Components are programs that handle basic tasks, like the terminal emulator, the text editor and the email client. Different KDE applications sometimes need to invoke a console emulator, send a mail or display some text. To do so consistently, these applications always call the same components. Here you can select which programs these components are.&lt;/p&gt;
&lt;/qt&gt;</string>
</property>
<property name="uniformItemSizes">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="ComponentDescription">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KListWidget</class>
<extends>QListWidget</extends>
<header>klistwidget.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,115 @@
/***************************************************************************
componentchooserbrowser.cpp
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundationi *
* *
***************************************************************************/
#include "componentchooserbrowser.h"
#include <kopenwithdialog.h>
#include <kglobalsettings.h>
#include <kconfiggroup.h>
#include <KUrl>
CfgBrowser::CfgBrowser(QWidget *parent)
: QWidget(parent), Ui::BrowserConfig_UI(),CfgPlugin()
{
setupUi(this);
connect(lineExec,SIGNAL(textChanged(const QString &)),this,SLOT(configChanged()));
connect(radioKIO,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
connect(radioExec,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
connect(btnSelectBrowser,SIGNAL(clicked()),this, SLOT(selectBrowser()));
}
CfgBrowser::~CfgBrowser() {
}
void CfgBrowser::configChanged()
{
emit changed(true);
}
void CfgBrowser::defaults()
{
load(0);
}
void CfgBrowser::load(KConfig *)
{
KConfigGroup config(KSharedConfig::openConfig("kdeglobals"), QLatin1String("General") );
QString exec = config.readPathEntry( QLatin1String("BrowserApplication"), QString("") );
if (exec.isEmpty())
{
radioKIO->setChecked(true);
m_browserExec = exec;
m_browserService = 0;
}
else
{
radioExec->setChecked(true);
if (exec.startsWith('!'))
{
m_browserExec = exec.mid(1);
m_browserService = 0;
}
else
{
m_browserService = KService::serviceByStorageId( exec );
if (m_browserService)
m_browserExec = m_browserService->desktopEntryName();
else
m_browserExec.clear();
}
}
lineExec->setText(m_browserExec);
emit changed(false);
}
void CfgBrowser::save(KConfig *)
{
KConfigGroup config(KSharedConfig::openConfig("kdeglobals"), QLatin1String("General") );
QString exec;
if (radioExec->isChecked())
{
exec = lineExec->text();
if (m_browserService && (exec == m_browserExec))
exec = m_browserService->storageId(); // Use service
else if (!exec.isEmpty())
exec = '!' + exec; // Literal command
}
config.writePathEntry( QLatin1String("BrowserApplication"), exec); // KConfig::Normal|KConfig::Global
config.sync();
KGlobalSettings::self()->emitChange(KGlobalSettings::SettingsChanged);
emit changed(false);
}
void CfgBrowser::selectBrowser()
{
KUrl::List urlList;
KOpenWithDialog dlg(urlList, i18n("Select preferred Web browser application:"), QString(), this);
if (dlg.exec() != QDialog::Accepted)
return;
m_browserService = dlg.service();
if (m_browserService) {
m_browserExec = m_browserService->desktopEntryName();
if (m_browserExec.isEmpty())
m_browserExec = m_browserService->exec();
} else {
m_browserExec = dlg.text();
}
lineExec->setText(m_browserExec);
}

View file

@ -0,0 +1,44 @@
/***************************************************************************
componentchooserbrowser.h
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundationi *
* *
***************************************************************************/
#ifndef COMPONENTCHOOSERBROWSER_H
#define COMPONENTCHOOSERBROWSER_H
#include "ui_browserconfig_ui.h"
#include "componentchooser.h"
class CfgBrowser: public QWidget, public Ui::BrowserConfig_UI, public CfgPlugin
{
Q_OBJECT
public:
CfgBrowser(QWidget *parent);
virtual ~CfgBrowser();
virtual void load(KConfig *cfg);
virtual void save(KConfig *cfg);
virtual void defaults();
protected Q_SLOTS:
void selectBrowser();
void configChanged();
Q_SIGNALS:
void changed(bool);
private:
QString m_browserExec;
KService::Ptr m_browserService;
};
#endif /* COMPONENTCHOOSERBROWSER_H */

View file

@ -0,0 +1,122 @@
/***************************************************************************
componentchooseremail.cpp
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License verstion 2 as *
* published by the Free Software Foundation *
* *
***************************************************************************/
#include "componentchooseremail.h"
#include <QtDBus/QtDBus>
#include <kemailsettings.h>
#include <QCheckBox>
#include <kopenwithdialog.h>
#include <kstandarddirs.h>
#include <KUrl>
// for chmod:
#include <sys/types.h>
#include <sys/stat.h>
CfgEmailClient::CfgEmailClient(QWidget *parent)
: QWidget(parent), Ui::EmailClientConfig_UI(), CfgPlugin()
{
setupUi( this );
pSettings = new KEMailSettings();
connect(kmailCB, SIGNAL(toggled(bool)), SLOT(configChanged()) );
connect(txtEMailClient, SIGNAL(textChanged(const QString&)), SLOT(configChanged()) );
#ifdef Q_OS_UNIX
connect(chkRunTerminal, SIGNAL(clicked()), SLOT(configChanged()) );
#else
chkRunTerminal->hide();
#endif
connect(btnSelectEmail, SIGNAL(clicked()), SLOT(selectEmailClient()) );
}
CfgEmailClient::~CfgEmailClient() {
delete pSettings;
}
void CfgEmailClient::defaults()
{
load(0);
}
void CfgEmailClient::load(KConfig *)
{
QString emailClient = pSettings->getSetting(KEMailSettings::ClientProgram);
bool useKMail = (emailClient.isEmpty());
kmailCB->setChecked(useKMail);
otherCB->setChecked(!useKMail);
txtEMailClient->setText(emailClient);
txtEMailClient->setFixedHeight(txtEMailClient->sizeHint().height());
chkRunTerminal->setChecked((pSettings->getSetting(KEMailSettings::ClientTerminal) == "true"));
emit changed(false);
}
void CfgEmailClient::configChanged()
{
emit changed(true);
}
void CfgEmailClient::selectEmailClient()
{
KUrl::List urlList;
KOpenWithDialog dlg(urlList, i18n("Select preferred email client:"), QString(), this);
// hide "Do not &close when command exits" here, we don't need it for a mail client
dlg.hideNoCloseOnExit();
if (dlg.exec() != QDialog::Accepted) return;
QString client = dlg.text();
// get the preferred Terminal Application
KConfigGroup confGroup( KGlobal::config(), QLatin1String("General") );
QString preferredTerminal = confGroup.readPathEntry("TerminalApplication", QLatin1String("konsole"));
preferredTerminal += QLatin1String(" -e ");
int len = preferredTerminal.length();
bool b = client.left(len) == preferredTerminal;
if (b) client = client.mid(len);
if (!client.isEmpty())
{
chkRunTerminal->setChecked(b);
txtEMailClient->setText(client);
}
}
void CfgEmailClient::save(KConfig *)
{
if (kmailCB->isChecked())
{
pSettings->setSetting(KEMailSettings::ClientProgram, QString());
pSettings->setSetting(KEMailSettings::ClientTerminal, "false");
}
else
{
pSettings->setSetting(KEMailSettings::ClientProgram, txtEMailClient->text());
pSettings->setSetting(KEMailSettings::ClientTerminal, (chkRunTerminal->isChecked()) ? "true" : "false");
}
// insure proper permissions -- contains sensitive data
QString cfgName(KGlobal::dirs()->findResource("config", "emails"));
if (!cfgName.isEmpty())
::chmod(QFile::encodeName(cfgName), 0600);
QDBusMessage message = QDBusMessage::createSignal("/Component", "org.kde.Kcontrol", "KDE_emailSettingsChanged" );
QDBusConnection::sessionBus().send(message);
emit changed(false);
}

View file

@ -0,0 +1,44 @@
/***************************************************************************
componentchooseremail.h
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundationi *
* *
***************************************************************************/
#ifndef COMPONENTCHOOSEREMAIL_H
#define COMPONENTCHOOSEREMAIL_H
class KEMailSettings;
#include "ui_emailclientconfig_ui.h"
#include "componentchooser.h"
class CfgEmailClient: public QWidget, public Ui::EmailClientConfig_UI, public CfgPlugin
{
Q_OBJECT
public:
CfgEmailClient(QWidget *parent);
virtual ~CfgEmailClient();
virtual void load(KConfig *cfg);
virtual void save(KConfig *cfg);
virtual void defaults();
private:
KEMailSettings *pSettings;
protected Q_SLOTS:
void selectEmailClient();
void configChanged();
Q_SIGNALS:
void changed(bool);
};
#endif

View file

@ -0,0 +1,111 @@
/* This file is part of the KDE project
Copyright (C) 2008 David Faure <faure@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License or ( at
your option ) version 3 or, at the discretion of KDE e.V. ( which shall
act as a proxy as in section 14 of the GPLv3 ), any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "componentchooserfilemanager.h"
#include <kbuildsycocaprogressdialog.h>
#include <kdebug.h>
#include <kprocess.h>
#include <kmimetypetrader.h>
#include <kopenwithdialog.h>
#include <kglobalsettings.h>
#include <kconfiggroup.h>
CfgFileManager::CfgFileManager(QWidget *parent)
: QWidget(parent), Ui::FileManagerConfig_UI(),CfgPlugin()
{
setupUi(this);
connect(btnSelectFileManager,SIGNAL(clicked()),this, SLOT(slotAddFileManager()));
}
CfgFileManager::~CfgFileManager() {
}
void CfgFileManager::configChanged()
{
emit changed(true);
}
void CfgFileManager::defaults()
{
load(0);
}
static KService::List appOffers()
{
return KMimeTypeTrader::self()->query("inode/directory", "Application");
}
void CfgFileManager::load(KConfig *) {
qDeleteAll(mDynamicWidgets);
mDynamicWidgets.clear();
const KService::List apps = appOffers();
bool first = true;
Q_FOREACH(const KService::Ptr& service, apps)
{
QRadioButton* button = new QRadioButton(service->name(), this);
connect(button,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
button->setProperty("storageId", service->storageId());
radioLayout->addWidget(button);
if (first) {
button->setChecked(true);
first = false;
}
mDynamicWidgets << button;
}
emit changed(false);
}
void CfgFileManager::save(KConfig *)
{
QString storageId;
Q_FOREACH(QRadioButton* button, qFindChildren<QRadioButton*>(this)) {
if (button->isChecked()) {
storageId = button->property("storageId").toString();
}
}
kDebug() << storageId;
if (!storageId.isEmpty()) {
// This is taken from filetypes/mimetypedata.cpp
KSharedConfig::Ptr profile = KSharedConfig::openConfig("mimeapps.list", KConfig::NoGlobals, "xdgdata-apps");
if (!profile->isConfigWritable(true)) // warn user if mimeapps.list is root-owned (#155126/#94504)
return;
KConfigGroup addedApps(profile, "Added Associations");
QStringList userApps = addedApps.readXdgListEntry("inode/directory");
userApps.removeAll(storageId); // remove if present, to make it first in the list
userApps.prepend(storageId);
addedApps.writeXdgListEntry("inode/directory", userApps);
profile->sync();
KBuildSycocaProgressDialog::rebuildKSycoca(this);
}
emit changed(false);
}
void CfgFileManager::slotAddFileManager()
{
KProcess proc;
proc << "keditfiletype";
proc << "inode/directory";
if (proc.execute() == 0) {
load(0);
}
}

View file

@ -0,0 +1,48 @@
/* This file is part of the KDE project
Copyright (C) 2008 David Faure <faure@kde.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License or ( at
your option ) version 3 or, at the discretion of KDE e.V. ( which shall
act as a proxy as in section 14 of the GPLv3 ), any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef COMPONENTCHOOSERFILEMANAGER_H
#define COMPONENTCHOOSERFILEMANAGER_H
#include "ui_filemanagerconfig_ui.h"
#include "componentchooser.h"
class CfgFileManager: public QWidget, public Ui::FileManagerConfig_UI, public CfgPlugin
{
Q_OBJECT
public:
CfgFileManager(QWidget *parent);
virtual ~CfgFileManager();
virtual void load(KConfig *cfg);
virtual void save(KConfig *cfg);
virtual void defaults();
protected Q_SLOTS:
void slotAddFileManager();
void configChanged();
Q_SIGNALS:
void changed(bool);
private:
QList<QObject *> mDynamicWidgets;
};
#endif

View file

@ -0,0 +1,106 @@
/***************************************************************************
componentchooser.cpp - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License verstion 2 as *
* published by the Free Software Foundation *
* *
***************************************************************************/
#include "componentchooserterminal.h"
#include "componentchooserterminal.moc"
#include <ktoolinvocation.h>
#include <klauncher_iface.h>
#include <QtDBus/QtDBus>
#include <QCheckBox>
#include <kdebug.h>
#include <kapplication.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <kopenwithdialog.h>
#include <kconfig.h>
#include <kstandarddirs.h>
#include <kmimetypetrader.h>
#include <kurlrequester.h>
#include <kconfiggroup.h>
#include <KUrl>
CfgTerminalEmulator::CfgTerminalEmulator(QWidget *parent)
: QWidget(parent), Ui::TerminalEmulatorConfig_UI(), CfgPlugin()
{
setupUi(this);
connect(terminalLE,SIGNAL(textChanged(QString)), this, SLOT(configChanged()));
connect(terminalCB,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
connect(otherCB,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
connect(btnSelectTerminal,SIGNAL(clicked()),this,SLOT(selectTerminalApp()));
}
CfgTerminalEmulator::~CfgTerminalEmulator() {
}
void CfgTerminalEmulator::configChanged()
{
emit changed(true);
}
void CfgTerminalEmulator::defaults()
{
load(0);
}
void CfgTerminalEmulator::load(KConfig *) {
KConfigGroup config(KSharedConfig::openConfig("kdeglobals"), "General");
QString terminal = config.readPathEntry("TerminalApplication","konsole");
if (terminal == "konsole")
{
terminalLE->setText("xterm");
terminalCB->setChecked(true);
}
else
{
terminalLE->setText(terminal);
otherCB->setChecked(true);
}
emit changed(false);
}
void CfgTerminalEmulator::save(KConfig *)
{
KConfigGroup config(KSharedConfig::openConfig("kdeglobals"), "General");
const QString terminal = terminalCB->isChecked() ? "konsole" : terminalLE->text();
config.writePathEntry("TerminalApplication", terminal); // KConfig::Normal|KConfig::Global);
config.sync();
KGlobalSettings::self()->emitChange(KGlobalSettings::SettingsChanged);
KToolInvocation::klauncher()->reparseConfiguration();
emit changed(false);
}
void CfgTerminalEmulator::selectTerminalApp()
{
KUrl::List urlList;
KOpenWithDialog dlg(urlList, i18n("Select preferred terminal application:"), QString(), this);
// hide "Run in &terminal" here, we don't need it for a Terminal Application
dlg.hideRunInTerminal();
if (dlg.exec() != QDialog::Accepted) return;
QString client = dlg.text();
if (!client.isEmpty())
{
terminalLE->setText(client);
}
}
// vim: sw=4 ts=4 noet

View file

@ -0,0 +1,42 @@
/***************************************************************************
componentchooserterminal.h - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundationi *
* *
***************************************************************************/
#ifndef _COMPONENTCHOOSERTERMINAL_H_
#define _COMPONENTCHOOSERTERMINAL_H_
#include "ui_terminalemulatorconfig_ui.h"
#include "componentchooser.h"
class KConfig;
class CfgPlugin;
class CfgTerminalEmulator: public QWidget, public Ui::TerminalEmulatorConfig_UI, public CfgPlugin
{
Q_OBJECT
public:
CfgTerminalEmulator(QWidget *parent);
virtual ~CfgTerminalEmulator();
virtual void load(KConfig *cfg);
virtual void save(KConfig *cfg);
virtual void defaults();
protected Q_SLOTS:
void selectTerminalApp();
void configChanged();
Q_SIGNALS:
void changed(bool);
};
#endif

View file

@ -0,0 +1,301 @@
/***************************************************************************
componentchooserwm.cpp - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License verstion 2 as *
* published by the Free Software Foundation *
* *
***************************************************************************/
#include "componentchooserwm.h"
#include "componentchooserwm.moc"
#include <kdebug.h>
#include <kdesktopfile.h>
#include <kmessagebox.h>
#include <kprocess.h>
#include <kshell.h>
#include <kstandarddirs.h>
#include <ktimerdialog.h>
#include <qdbusinterface.h>
#include <qdbusconnectioninterface.h>
#include <netwm.h>
#include <qx11info_x11.h>
CfgWm::CfgWm(QWidget *parent)
: QWidget(parent)
, Ui::WmConfig_UI()
, CfgPlugin()
, wmLaunchingState( WmNone )
, wmProcess( NULL )
{
setupUi(this);
connect(wmCombo,SIGNAL(activated(int)), this, SLOT(configChanged()));
connect(kwinRB,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
connect(differentRB,SIGNAL(toggled(bool)),this,SLOT(configChanged()));
connect(differentRB,SIGNAL(toggled(bool)),this,SLOT(checkConfigureWm()));
connect(wmCombo,SIGNAL(activated(int)),this,SLOT(checkConfigureWm()));
connect(configureButton,SIGNAL(clicked()),this,SLOT(configureWm()));
KGlobal::dirs()->addResourceType( "windowmanagers", "data", "ksmserver/windowmanagers" );
}
CfgWm::~CfgWm()
{
}
void CfgWm::configChanged()
{
emit changed(true);
}
void CfgWm::defaults()
{
wmCombo->setCurrentIndex( 0 );
}
void CfgWm::load(KConfig *)
{
KConfig cfg("ksmserverrc", KConfig::NoGlobals);
KConfigGroup c( &cfg, "General");
loadWMs(c.readEntry("windowManager", "kwin"));
emit changed(false);
}
void CfgWm::save(KConfig *)
{
saveAndConfirm();
}
bool CfgWm::saveAndConfirm()
{
KConfig cfg("ksmserverrc", KConfig::NoGlobals);
KConfigGroup c( &cfg, "General");
c.writeEntry("windowManager", currentWm());
emit changed(false);
if( oldwm == currentWm())
return true;
QString restartArgument = currentWmData().restartArgument;
if( restartArgument.isEmpty())
{
KMessageBox::information( this,
i18n( "The new window manager will be used when KDE is started the next time." ),
i18n( "Window Manager Change" ), "windowmanagerchange" );
oldwm = currentWm();
return true;
}
else
{
if( tryWmLaunch())
{
oldwm = currentWm();
cfg.sync();
QDBusInterface ksmserver("org.kde.ksmserver", "/KSMServer" );
ksmserver.call( QDBus::NoBlock, "wmChanged" );
KMessageBox::information( window(),
i18n( "A new window manager is running.\n"
"It is still recommended to restart this KDE session to make sure "
"all running applications adjust for this change." ),
i18n( "Window Manager Replaced" ), "restartafterwmchange" );
return true;
}
else
{ // revert config
emit changed(true);
c.writeEntry("windowManager", oldwm);
if( oldwm == "kwin" )
{
kwinRB->setChecked( true );
wmCombo->setEnabled( false );
}
else
{
differentRB->setChecked( true );
wmCombo->setEnabled( true );
for( QHash< QString, WmData >::ConstIterator it = wms.constBegin();
it != wms.constEnd();
++it )
{
if( (*it).internalName == oldwm ) // make it selected
wmCombo->setCurrentIndex( wmCombo->findText( it.key()));
}
}
return false;
}
}
}
bool CfgWm::tryWmLaunch()
{
if( currentWm() == "kwin"
&& qstrcmp( NETRootInfo( QX11Info::display(), NET::SupportingWMCheck ).wmName(), "KWin" ) == 0 )
{
return true; // it is already running, don't necessarily restart e.g. after a failure with other WM
}
KMessageBox::information( window(), i18n( "Your running window manager will be now replaced with "
"the configured one." ), i18n( "Window Manager Change" ), "windowmanagerchange" );
wmLaunchingState = WmLaunching;
wmProcess = new KProcess;
*wmProcess << KShell::splitArgs( currentWmData().exec ) << currentWmData().restartArgument;
connect( wmProcess, SIGNAL( error( QProcess::ProcessError )), this, SLOT( wmLaunchError()));
connect( wmProcess, SIGNAL( finished( int, QProcess::ExitStatus )),
this, SLOT( wmLaunchFinished( int, QProcess::ExitStatus )));
wmProcess->start();
wmDialog = new KTimerDialog( 20000, KTimerDialog::CountDown, window(), i18n( "Config Window Manager Change" ),
KTimerDialog::Ok | KTimerDialog::Cancel, KTimerDialog::Cancel );
wmDialog->setButtonGuiItem( KDialog::Ok, KGuiItem( i18n( "&Accept Change" ), "dialog-ok" ));
wmDialog->setButtonGuiItem( KDialog::Cancel, KGuiItem( i18n( "&Revert to Previous" ), "dialog-cancel" ));
QLabel *label = new QLabel(
i18n( "The configured window manager is being launched.\n"
"Please check it has started properly and confirm the change.\n"
"The launch will be automatically reverted in 20 seconds." ), wmDialog );
label->setWordWrap( true );
wmDialog->setMainWidget( label );
if( wmDialog->exec() == QDialog::Accepted ) // the user confirmed
wmLaunchingState = WmOk;
else // cancelled for some reason
{
if( wmLaunchingState == WmLaunching )
{ // time out
wmLaunchingState = WmFailed;
KProcess::startDetached( "kwin", QStringList() << "--replace" );
// Let's hope KWin never fails.
KMessageBox::sorry( window(),
i18n( "The running window manager has been reverted to the default KDE window manager KWin." ));
}
else if( wmLaunchingState == WmFailed )
{
KProcess::startDetached( "kwin", QStringList() << "--replace" );
// Let's hope KWin never fails.
KMessageBox::sorry( window(),
i18n( "The new window manager has failed to start.\n"
"The running window manager has been reverted to the default KDE window manager KWin." ));
}
}
bool ret = ( wmLaunchingState == WmOk );
wmLaunchingState = WmNone;
delete wmDialog;
wmDialog = NULL;
// delete wmProcess; - it is intentionally leaked, since there is no KProcess:detach()
wmProcess = NULL;
return ret;
}
void CfgWm::wmLaunchError()
{
if( wmLaunchingState != WmLaunching || sender() != wmProcess )
return;
wmLaunchingState = WmFailed;
wmDialog->reject();
}
void CfgWm::wmLaunchFinished( int exitcode, QProcess::ExitStatus exitstatus )
{
if( wmLaunchingState != WmLaunching || sender() != wmProcess )
return;
if( exitstatus == QProcess::NormalExit && exitcode == 0 )
{ // assume it's forked into background
wmLaunchingState = WmOk;
return;
}
// otherwise it's a failure
wmLaunchingState = WmFailed;
wmDialog->reject();
}
void CfgWm::loadWMs( const QString& current )
{
WmData kwin;
kwin.internalName = "kwin";
kwin.exec = "kwin";
kwin.configureCommand = "";
kwin.restartArgument = "--replace";
kwin.parentArgument = "";
wms[ "KWin" ] = kwin;
oldwm = "kwin";
kwinRB->setChecked( true );
wmCombo->setEnabled( false );
QStringList list = KGlobal::dirs()->findAllResources( "windowmanagers", QString(), KStandardDirs::NoDuplicates );
QRegExp reg( ".*/([^/\\.]*)\\.[^/\\.]*" );
foreach( const QString& wmfile, list )
{
KDesktopFile file( wmfile );
if( file.noDisplay())
continue;
if( !file.tryExec())
continue;
QString testexec = file.desktopGroup().readEntry( "X-KDE-WindowManagerTestExec" );
if( !testexec.isEmpty())
{
KProcess proc;
proc.setShellCommand( testexec );
if( proc.execute() != 0 )
continue;
}
QString name = file.readName();
if( name.isEmpty())
continue;
if( !reg.exactMatch( wmfile ))
continue;
QString wm = reg.cap( 1 );
if( wms.contains( name ))
continue;
WmData data;
data.internalName = wm;
data.exec = file.desktopGroup().readEntry( "Exec" );
if( data.exec.isEmpty())
continue;
data.configureCommand = file.desktopGroup().readEntry( "X-KDE-WindowManagerConfigure" );
data.restartArgument = file.desktopGroup().readEntry( "X-KDE-WindowManagerRestartArgument" );
data.parentArgument = file.desktopGroup().readEntry( "X-KDE-WindowManagerConfigureParentArgument" );
wms[ name ] = data;
wmCombo->addItem( name );
if( wms[ name ].internalName == current ) // make it selected
{
wmCombo->setCurrentIndex( wmCombo->count() - 1 );
oldwm = wm;
differentRB->setChecked( true );
wmCombo->setEnabled( true );
}
}
differentRB->setEnabled( wmCombo->count()>0 );
checkConfigureWm();
}
CfgWm::WmData CfgWm::currentWmData() const
{
return kwinRB->isChecked() ? wms[ "KWin" ] : wms[ wmCombo->currentText() ];
}
QString CfgWm::currentWm() const
{
return currentWmData().internalName;
}
void CfgWm::checkConfigureWm()
{
configureButton->setEnabled( !currentWmData().configureCommand.isEmpty());
}
void CfgWm::configureWm()
{
if( oldwm != currentWm() // needs switching first
&& !saveAndConfirm())
{
return;
}
QStringList args;
if( !currentWmData().parentArgument.isEmpty())
args << currentWmData().parentArgument << QString::number( window()->winId());
if( !KProcess::startDetached( currentWmData().configureCommand, args ))
KMessageBox::sorry( window(), i18n( "Running the configuration tool failed" ));
}

View file

@ -0,0 +1,73 @@
/***************************************************************************
componentchooserwm.h - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundationi *
* *
***************************************************************************/
#ifndef _COMPONENTCHOOSERWM_H_
#define _COMPONENTCHOOSERWM_H_
#include "ui_wmconfig_ui.h"
#include "componentchooser.h"
#include <kprocess.h>
class KTimerDialog;
class CfgWm: public QWidget, public Ui::WmConfig_UI, public CfgPlugin
{
Q_OBJECT
public:
CfgWm(QWidget *parent);
virtual ~CfgWm();
virtual void load(KConfig *cfg);
virtual void save(KConfig *cfg);
virtual void defaults();
protected Q_SLOTS:
void configChanged();
void configureWm();
void checkConfigureWm();
void wmLaunchError();
void wmLaunchFinished( int exitcode, QProcess::ExitStatus exitstatus );
Q_SIGNALS:
void changed(bool);
private:
bool tryWmLaunch();
void loadWMs( const QString& current );
QString currentWm() const;
bool saveAndConfirm();
struct WmData
{
QString internalName;
QString exec;
QString configureCommand;
QString restartArgument;
QString parentArgument;
};
WmData currentWmData() const;
QHash< QString, WmData > wms; // i18n text -> data
QString oldwm; // the original value
enum Launch
{
WmNone, // not trying to launch any WM at the moment
WmLaunching, // launching
WmOk, // was successful
WmFailed // it failed
};
Launch wmLaunchingState;
KTimerDialog* wmDialog;
KProcess* wmProcess;
};
#endif

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ComponentConfig_UI</class>
<widget class="QWidget" name="ComponentConfig_UI">
<layout class="QVBoxLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="ChooserDocu">
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KComboBox" name="ComponentSelector"/>
</item>
<item>
<spacer name="Spacer2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header location="global">KDE/KComboBox</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,4 @@
install( FILES kcm_kemail.desktop kcm_browser.desktop kcm_filemanager.desktop DESTINATION ${DATA_INSTALL_DIR}/kcm_componentchooser )
if(NOT WIN32)
install( FILES kcm_terminal.desktop kcm_wm.desktop DESTINATION ${DATA_INSTALL_DIR}/kcm_componentchooser)
endif(NOT WIN32)

View file

@ -0,0 +1,162 @@
Icon=internet-web-browser
# ctxt: standard desktop component
Name=Web Browser
Name[ar]=متصفح الشبكة
Name[ast]=Restolador web
Name[bg]=Уеб браузър
Name[bn]=
Name[bs]=Web pregledač
Name[ca]=Navegador web
Name[ca@valencia]=Navegador web
Name[cs]=Webový prohlížeč
Name[csb]=Internetowi przezérnik
Name[da]=Webbrowser
Name[de]=Webbrowser
Name[el]=Περιηγητής ιστού
Name[en_GB]=Web Browser
Name[eo]=Retumilo
Name[es]=Navegador web
Name[et]=Veebibrauser
Name[eu]=Web-arakatzailea
Name[fa]=مرورگر وب
Name[fi]=Verkkoselain
Name[fr]=Navigateur Web
Name[fy]=Web Browser
Name[ga]=Brabhsálaí Gréasáin
Name[gl]=Navegador Web
Name[gu]=
Name[he]=דפדפן אינטרנט
Name[hi]=
Name[hr]=Web preglednik
Name[hu]=Webböngésző
Name[ia]=Navigator Web
Name[id]=Peramban Web
Name[is]=Vafri
Name[it]=Browser Web
Name[ja]=
Name[kk]=Веб браузер
Name[km]=
Name[kn]=
Name[ko]=
Name[lt]=Žiniatinklio naršyklė
Name[lv]=Tīmekļa pārlūks
Name[mai]=
Name[mk]=Веб-прелистувач
Name[ml]=
Name[mr]=
Name[nb]=Nettleser
Name[nds]=Nettkieker
Name[nl]=Webbrowser
Name[nn]=Nettlesar
Name[pa]=
Name[pl]=Przeglądarka sieciowa
Name[pt]=Navegador Web
Name[pt_BR]=Navegador Web
Name[ro]=Navigator de Internet
Name[ru]=Браузер
Name[si]=
Name[sk]=Webový prehliadač
Name[sl]=Spletni brskalnik
Name[sr]=веб прегледач
Name[sr@ijekavian]=веб прегледач
Name[sr@ijekavianlatin]=veb pregledač
Name[sr@latin]=veb pregledač
Name[sv]=Webbläsare
Name[tg]=Интернет браузер
Name[th]=
Name[tr]=Web Tarayıcı
Name[ug]=توركۆرگۈ
Name[uk]=Переглядач інтернету
Name[vi]=Trình duyt web
Name[wa]=Betchteu waibe
Name[x-test]=xxWeb Browserxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Here you can configure your default web browser. All KDE applications in which you can select hyperlinks should honor this setting.
Comment[af]=Hier kan jy die standaard web blaaier opstel. Al die KDE programme waarin jy hiperskakels kan kies behoort hierdie instelling te gebruik.
Comment[ar]=يمكنك هنا ضبط متصفح الشبكة لديك. كل تطبيقات كدي التي يمكنك فيها اختيار روابط تشعبية ينبغي أن تحترم هذا الإعداد.
Comment[ast]=Esti serviciu permite configurar el restolador web predetermináu. Toles aplicaciones KDE que permitan escoyer hiperenllaces tendríen de reconocer esta opción.
Comment[be]=Тут вы можаце вызначыць для сябе стандартны вандроўнік па Сеціве. Усе праграмы KDE, у якіх вы можаце выбраць гіперспасылку, павінны выкарыстоўваць гэтае настаўленне.
Comment[be@latin]=Tut možna vybrać sabie zmoŭčany hartač sieciva. Usie aplikacyi KDE, u jakich ty karystajeśsia internet-łučami, pavinnyja źviartać uvahu na hetuju naładu.
Comment[bg]=Избор на предпочитан браузър. Всички програми от KDE, които се нуждаят от достъп до уеб страници, ще ползват този компонент.
Comment[bn]= ি ি ি .ি.. ি ি -ি ি ি
Comment[bs]=Ovdje podešavate podrazumijevani veb pregledač. Svi KDE programi u kojima možete kliktati na hiperveze treba da poštuju ovu postavku.
Comment[ca]=Aquí podeu configurar el vostre navegador web per omissió. Totes les aplicacions KDE on podeu seleccionar hiperenllaços haurien de respectar aquest arranjament.
Comment[ca@valencia]=Ací podeu configurar el vostre navegador web per omissió. Totes les aplicacions KDE on podeu seleccionar hiperenllaços haurien de respectar este arranjament.
Comment[cs]=Tato služba umožňuje nastavit si výchozí prohlížeč. Všechny KDE aplikace, které vyžadují přístup k hypertextovým odkazům, by měly používat toto nastavení.
Comment[csb]=Tuwò mòżne wëbrac domëslny przezérnik. Wszëtczé programë KDE, w jaczich brëkùje sã z lënkòw, mùszôłëbë ùżëwac tegò ùstôwù.
Comment[cy]=Dyma lle gallwch ffurfweddu eich porydd gwe rhagosodol. Dylai pob rhaglen KDE lle gallwch ddewis hypergysylltau ddefnyddio'r gosodiad yma.
Comment[da]=Her kan du indstille din standard-browser. Alle KDE-programmer hvor du kan vælge hyperlink skulle respektere denne indstilling.
Comment[de]=Hier können Sie Ihren Standard-Webbrowser festlegen. Alle KDE-Programme, in denen Sie Verknüpfungen (Links) aufrufen können, verwenden diese Einstellung.
Comment[el]=Εδώ μπορείτε να διαμορφώσετε τον προκαθορισμένο περιηγητή ιστού σας. Όλες οι εφαρμογές του KDE στις οποίες μπορείτε να επιλέξετε συνδέσμους θα πρέπει να αναφέρονται σε αυτήν τη ρύθμιση.
Comment[en_GB]=Here you can configure your default web browser. All KDE applications in which you can select hyperlinks should honour this setting.
Comment[eo]=Ĉi tie vi povas agordi vian aprioran retumilon. Ĉiuj aplikaĵoj de KDE, en kiu vi povas elekti hiperligilojn, observos ĉi tiun agordon.
Comment[es]=Este servicio le permite configurar su navegador web predeterminado. Todas las aplicaciones KDE que le permitan seleccionar hiperenlaces deberían reconocer esta opción.
Comment[et]=Siin saab seadistada vaikimisi kasutatavat brauserit. Kõik KDE rakendused, kus saab valida hüperlinke, peaksid siinsete seadistustega arvestama.
Comment[eu]=Web-arakatzaile lehenetsia konfigura dezakezu hemen. Estekak hautatzeko aukera ematen duten KDE aplikazio guztiek eduki beharko lukete ezarpen hau.
Comment[fa]=در اینجا میتوانید مرورگر وب پیشفرض خود را پیکربندی کنید. همه کاربردهای KDE که میتوانید ابرپیوندها را در آن گزینش کنید، باید این تنظیمات را قبول کنند.
Comment[fi]=Tässä voit muokata oletusselaintasi. Kaikki selainta käyttävät KDE-sovellukset huomioivat tämän asetuksen.
Comment[fr]=Vous pouvez configurer ici votre navigateur Web par défaut. Toutes les applications KDE dans lesquelles vous pouvez cliquer sur un lien hypertexte sont censées accepter ce réglage.
Comment[fy]=Hjir kinne jo de standert web blêder ynstelle. Alle KDE-tapassingen weryn jo in hyperskeakel oanklikke kinne brûk meitsje fan dizze ynstelling
Comment[ga]=Anseo is féidir leat brabhsálaí réamhshocraithe a chumrú. Onóróidh gach feidhmchlár KDE inar féidir hipearnasc a roghnú an socrú seo.
Comment[gl]=Aquí pode configurar o navegador predeterminado. Todos os programas de KDE nos que poda premer en ligazóns farán uso deste.
Comment[gu]= . KDE િ .
Comment[he]=כאן ניתן להגדיר את דפדפן האינטרנט שישמש כברירת־המחדל. כל יישומי KDE ישתמשו בדפדפן זה לפתיחת קישורים.
Comment[hi]= ि ि . ि ि , ि .
Comment[hne]= ि ि . , ि .
Comment[hr]=Konfiguriranje zadanog web-preglednika. Sve KDE-ove aplikacije unutar kojih odaberete (kliknete) hiperveze poštivat će ovaj odabir.
Comment[hsb]=Tule móžeće swój standardny web-browser připrawić.Wšitke KDE-aplikacije, kiž dźěłaja z hyperlinkami měli so po tutych nastajenjach měć.
Comment[hu]=Itt lehet beállítani, mi legyen az alapértelmezett webböngésző. Az összes KDE-alkalmazásnak figyelembe kell vennie ezt az értéket levelezési funkció használata esetén.
Comment[ia]=Ci tu pote configurar tu navigator web predefinite. Omne applicationes de KDE in qual tu pote selectionar hyper-ligamines debera honorar iste preferentia.
Comment[id]=Di sini anda dapat mengatur peramban web standar anda. Semua aplikasi KDE yang dapat anda pilih hipertautnya akan mengikuti pengaturan ini.
Comment[is]=Þessi þjónusta leyfir þér að skilgreina sjálfgefinn vafra. Öll KDE forrit sem gera þér kleift að smella á tengla ættu að virða þessa stillingu.
Comment[it]=Definisci il browser Web predefinito. Tutte le applicazioni di KDE in cui ci sono collegamenti selezionabili rispetteranno questa impostazione.
Comment[ja]=使 KDE
Comment[ka]= . KDE- , ,
Comment[kk]=Мұнда Сіз әдетті веб-шолғышыңызды таңдай аласыз. Бүкіл KDE қолданбаларда гиперсілтемелерді түрткенде осы таңдау қолданылады.
Comment[km]=   KDE  
Comment[kn]=ಿ ಿ ಿಿ ಿ. ಿ ಿ ಿ.
Comment[ko]= . KDE .
Comment[ku]=Li virê dikarî geroka xwe ya webê a standard mîheng bikî. Hemû sepanên KDE'yê yên ku tu dikarî hyperlînkê hilbijêrî dê vê mîhengê erê bikin.
Comment[lt]=Čia galine konfigūruoti savo numatytą žiniatinklio naršyklę. Visos KDE programos, kuriose spragtelėsite nuorodas, turėtų atsižvelgti į šį nustatymą.
Comment[lv]=Šeit varat konfigurēt noklusējuma tīmekļa pārlūkprogrammu. Visas KDE programmas izmantos šo parametru hipersaišu atvēršanai.
Comment[mai]= िि ि . ि ि ि , ि ि ' .
Comment[mk]=Тука може да го конфигурирате вашиот стандарден веб-прелистувач. Сите KDE-апликации во кои може да изберете хиперврски ќе го почитуваат ова поставување.
Comment[ml]=ി ിിി ി. ി ി ി.
Comment[mr]= . ि .
Comment[ms]=Di sini anda boleh konfigur pelayar web piawai anda.Semua aplikasi KDE yang di dalamnya anda boleh pilih hiperpautan hendaklah menerima seting ini.
Comment[nb]=Her kan du sette opp nettleseren du bruker mest. Alle KDE-programmer der du kan velge hyperlenker skal bruke denne nettleseren.
Comment[nds]=Hier kannst Du Dien Standard-Nettkieker angeven. All KDE- Programmen, binnen de Du Hyperlinks bruken kannst, schullen dat ümsetten.
Comment[ne]= िि ि ि ि
Comment[nl]=Hier kunt u uw standaard webbrowser instellen. Alle KDE-toepassingen waarin u een hyperkoppeling kunt aanklikken maken gebruik van deze instelling.
Comment[nn]=Med denne tenesta kan du setja opp standardnettlesaren. Alle KDE-program der du kan følgja hyperlenkjer skal bruka denne innstillinga.
Comment[or]= ିି ି ିି KDE ି ି ିି ିି ି ି ି ି ି
Comment[pa]= ਿ KDE , ਿ ਿ , ਿ
Comment[pl]=Tu można wybrać domyślną przeglądarkę sieciową. Wszystkie programy KDE, w których korzysta się z odnośników, powinny używać tego ustawienia.
Comment[pt]=Este serviço permite-lhe configurar o seu navegador Web predefinido. Todas as aplicações do KDE onde possa seleccionar hiperligações deverão respeitar esta configuração.
Comment[pt_BR]=Aqui você pode configurar o seu navegador de Internet padrão. Todos os aplicativos do KDE que precisarem acessar uma página através de um link devem seguir esta configuração.
Comment[ro]=Aici puteți configura navigatorul de web implicit. Toate aplicațiile KDE în care puteți selecta o hiperlegătură ar trebui să onoreze această setare.
Comment[ru]=Здесь можно указать браузер по умолчанию. Все приложения KDE, в которых можно вызвать гиперссылку, будут использовать указанную программу.
Comment[se]=Dáinna bálvalusain sáhtát heivehit standárda fierpmádatlogana. Buot KDE-prográmmain mas sáhttá čuovvut hyperliŋkkaid geavaha dán heivehusa.
Comment[si]= . KDE .
Comment[sk]=Tu si môžete nastaviť štandardný webový prehliadač. Všetky aplikácie KDE, v ktorých môžete vybrať hypertextový odkaz, by mali používať toto nastavenie.
Comment[sl]=Tu lahko nastavite svoj privzeti spletni brskalnik. Vsi KDE programi, kjer lahko kliknete na hiperpovezave, bi morali upoštevati te nastavitve.
Comment[sr]=Овде подешавате подразумевани веб прегледач. Сви КДЕ програми у којима можете кликтати на хипервезе треба да поштују ову поставку.
Comment[sr@ijekavian]=Овдје подешавате подразумијевани веб прегледач. Сви КДЕ програми у којима можете кликтати на хипервезе треба да поштују ову поставку.
Comment[sr@ijekavianlatin]=Ovdje podešavate podrazumijevani veb pregledač. Svi KDE programi u kojima možete kliktati na hiperveze treba da poštuju ovu postavku.
Comment[sr@latin]=Ovde podešavate podrazumevani veb pregledač. Svi KDE programi u kojima možete kliktati na hiperveze treba da poštuju ovu postavku.
Comment[sv]=Här kan du anpassa förvald webbläsare. Alla KDE-program där du kan välja hyperlänkar bör följa inställningen.
Comment[ta]= ி ி ி ி ிி. ி ி ி ி ி.
Comment[te]= ిి ి. KDE ి ి ి ిి.
Comment[tg]=Дар ин ҷо шумо метавонед Интернет браузери стандартиро танзим кунед. Ҳамаи барномаҳои KDE ҳангоми интихоби суроғаҳои шабака ин танзимотро истифода мебаранд.
Comment[th]= KDE
Comment[tr]=Burada öntanımlı web tarayıcınızı yapılandırabilirsiniz. Tüm KDE uygulamalarında bulunan bağlantılar bu seçenek kullanılarak açılacaktır.
Comment[ug]=بۇ جايدا كۆڭۈلدىكى توركۆرگۈڭىزنى سەپلىيەلەيسىز. ھەممە KDE پروگراممىلىرىدا ئادەتتىن تاشقىرى ئۇلانمىنى چەككەندە مەزكۇر تەڭشەككە بويسۇنىدۇ.
Comment[uk]=Тут можна налаштувати ваш типову програму для перегляду сторінок інтернету. Всі програми KDE, які підтримують роботу з гіперпосиланнями, будуть користуватися вказаними тут параметрами.
Comment[vi]=Dch v này cho phép bn cu hình trình duyt mng mc đnh. Tt c các chương trình ca KDE có cha liên kết mng s cn mt trình duyt da vào thiết lp này.
Comment[wa]=Vos ploz chal apontyî vosse prémetou betchteu waibe. Cwand vos tchoeziroz loyén dins telminme programe di KDE, i l' drovrè sorlon cisse tchuze.
Comment[x-test]=xxHere you can configure your default web browser. All KDE applications in which you can select hyperlinks should honor this setting.xx
Comment[zh_CN]= KDE
Comment[zh_TW]= KDE
configurationType=internal_browser

View file

@ -0,0 +1,154 @@
Icon=system-file-manager
# ctxt: standard desktop component
Name=File Manager
Name[ar]=مدير الملفات
Name[ast]=Xestor de ficheros
Name[bg]=Преглед на файлове
Name[bn]=
Name[bs]=menadžer datoteka
Name[ca]=Gestor de fitxers
Name[ca@valencia]=Gestor de fitxers
Name[cs]=Správce souborů
Name[csb]=Menadżera lopków
Name[da]=Filhåndtering
Name[de]=Dateimanager
Name[el]=Διαχειριστής αρχείων
Name[en_GB]=File Manager
Name[eo]=Dosieradministrilo
Name[es]=Gestor de archivos
Name[et]=Failihaldur
Name[eu]=Fitxategi-kudeatzailea
Name[fa]=مدیر پرونده
Name[fi]=Tiedostonhallinta
Name[fr]=Gestionnaire de fichiers
Name[fy]=File Manager
Name[ga]=Bainisteoir Comhad
Name[gl]=Xestor de ficheiros
Name[gu]=
Name[he]=מנהל קבצים
Name[hi]=
Name[hr]=Upravitelj datoteka
Name[hu]=Fájlkezelő
Name[ia]=Gerente de File
Name[id]=Manajer Berkas
Name[is]=Skráastjóri
Name[it]=Gestore dei file
Name[ja]=
Name[kk]=Файл менеджері
Name[km]=
Name[kn]=
Name[ko]=
Name[lt]=Failų tvarkyklė
Name[lv]=Failu pārvaldnieks
Name[mai]=
Name[mk]=Менаџер на датотеки
Name[ml]= ി
Name[mr]=
Name[nb]=Filbehandler
Name[nds]=Dateipleger
Name[nl]=Bestandsbeheerder
Name[nn]=Filhandsamar
Name[pa]=
Name[pl]=Zarządzanie plikami
Name[pt]=Gestor de Ficheiros
Name[pt_BR]=Gerenciador de arquivos
Name[ro]=Gestionar de fișiere
Name[ru]=Диспетчер файлов
Name[si]=
Name[sk]=Správca súborov
Name[sl]=Upravljalnik datotek
Name[sr]=менаџер фајлова
Name[sr@ijekavian]=менаџер фајлова
Name[sr@ijekavianlatin]=menadžer fajlova
Name[sr@latin]=menadžer fajlova
Name[sv]=Filhanterare
Name[tg]=Мудири файлҳо
Name[th]=
Name[tr]=Dosya Yönetici
Name[ug]=ھۆججەت باشقۇرغۇ
Name[uk]=Керування файлами
Name[vi]=Trình qun lý tp tin
Name[wa]=Manaedjeu des fitchîs
Name[x-test]=xxFile Managerxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Here you can configure your default file manager. The entries in the K menu and all KDE applications in which you can open folders will use this file manager.
Comment[ar]=هنا يمكنك ضبط مدير الملفات المبدئي. المدخلات في القائمة كي وجميع تطبيقات كدي التي تستطيع أن تفتح المجلدات فيها سوف تستخدم مدير الملفات هذا.
Comment[ast]=Pues configurar el xestor de ficheros predetermináu. Les entraes nel menú K y toles aplicaciones nes que puedas abrir carpetes usarán esti xestor.
Comment[be@latin]=Tut možna vybrać sabie zmoŭčanaha fajłavaha kiraŭnika. Usie aplikacyi i punkty menu KDE, u jakich ty adčyniaješ katalohi, buduć im karystacca.
Comment[bg]=Избор на предпочитан файлов мениджър. Отварянето на директориите ще става с него.
Comment[bn]= ি ি ি .ি.. ি -ি
Comment[bs]=Ovdje podešavate podrazumijevani menadžer datoteka. Koristiće ga stavke u Kmeniju i svi KDE programi u kojima možete otvarati fascikle.
Comment[ca]=Aquí podeu configurar el gestor de fitxers per omissió. Les entrades del menú K i totes les aplicacions del KDE on podeu obrir carpetes usaran aquest gestor de fitxers.
Comment[ca@valencia]=Ací podeu configurar el gestor de fitxers per omissió. Les entrades del menú K i totes les aplicacions del KDE on podeu obrir carpetes usaran este gestor de fitxers.
Comment[cs]=Na tomto místě si můžete nastavit výchozího správce souborů. Položky v hlavní nabídce K a všechny aplikace, ve kterých lze otevřít složky, budou tohoto správce používat.
Comment[csb]=Tuwò mòżne wëbrac domëslnegò menadżera lopków. Wpisënczi w K menu ë wszëtczé programë KDE, w jaczich mòżesz òtmëkac katalodżi, bãdą ùżëwac tegò menadżera.
Comment[da]=Her kan du indstille din standard filhåndtering. Punkter i K-menuen og alle KDE-programmer hvori du kan åbne mapper, vil bruge denne filhåndtering.
Comment[de]=Hier können Sie Ihren Standard-Dateimanager festlegen. Die Menüeinträge im K-Menü und alle KDE-Programme, in denen Sie Ordner aufrufen können, verwenden diesen Dateimanager.
Comment[el]=Εδώ μπορείτε να διαμορφώσετε τον προκαθορισμένο διαχειριστή αρχείων. Οι καταχωρήσεις στο μενού Κ και όλες οι εφαρμογές του KDE στις οποίες μπορείτε να ανοίγετε φακέλους θα χρησιμοποιούν αυτόν το διαχειριστή αρχείων.
Comment[en_GB]=Here you can configure your default file manager. The entries in the K menu and all KDE applications in which you can open folders will use this file manager.
Comment[eo]=Ĉi tie vi povas agordi vian aprioran dosieradministrilon. La eroj en la K-menuo kaj ĉiuj aplikaĵoj de KDE, en kiu vi povas malfermi dosierujojn, uzos ĉi tiun dosieradministrilon.
Comment[es]=Puede configurar su gestor de archivos predeterminado. Las entradas en el menú K y todas las aplicaciones en las que pueda abrir carpetas usarán este gestor.
Comment[et]=Siin saab seadistada vaikimisi kasutatavat failihaldurit. Kõik KDE rakendused, kus saab avada katalooge, peaksid siinsete seadistustega arvestama.
Comment[eu]=Fitxategi-kudeatzaile lehenetsia konfigura dezakezu. K menuko sarrerek eta karpetak irekitzeko aukera ematen duten KDE aplikazioek fitxategi-kudeatzaile hau erabiliko dute.
Comment[fa]=در اینجا میتوانید مدیر فایل پیشفرض خود را پیکربندی کنید. همه موارد منوی K و همه برنامههای کیدیای که در آنها میتوانید پوشهها را باز کنید از این مدیر پرونده استفاده خواهند کرد.
Comment[fi]=Tässä voit muokata käytettävää oletustiedostonhallintaohjelmaa. Kaikki KDE-sovellukset käyttävät tätä tiedostonhallintaohjelmaa.
Comment[fr]=Vous pouvez configurer ici votre gestionnaire de fichiers par défaut. Les entrées du menu K et toutes les applications KDE avec lesquelles vous pouvez ouvrir des dossiers, utiliseront ce gestionnaire de fichiers.
Comment[fy]=Hjir kinne jo de standert triembehearder ynstelle. Alle ynfieren yn it K menu en alle KDE applikaasjes wêryn jo mappen iepenje kinne sille dizze triembehearder brûke.
Comment[ga]=Anseo is féidir leat bainisteoir comhad réamhshocraithe a chumrú. Úsáidfidh iontrálacha sa roghchlár K an bainisteoir comhad seo, chomh maith le gach feidhmchlár KDE is féidir fillteáin a oscailt.
Comment[gl]=Aquí pode configurar o xestor de ficheiros predeterminado. As entradas no menú K e todos os programas de KDE nos que poida abrir cartafoles han empregar este xestor de ficheiros.
Comment[gu]= . K KDE .
Comment[he]=כאן ניתן להגדיר את מנהל הקבצים שישמש כברירת־המחדל. הפריטים בתפריט של KDE וכל שאר יישומי KDE ישתמשו במנהל קבצים זה לפתיחת תיקיות.
Comment[hi]= ि ि . ि ि , ि .
Comment[hne]= ि ि . िि , .
Comment[hr]=Ovdje možete konfigurirati vaš početni preglednik datoteka. Stavke K-izbornika i sve KDE-ove aplikacije u kojima možete otvoriti mape, koristiti će ovaj upravitelj datoteka.
Comment[hsb]=Tule móžeće swój standardny datajowy manager připrawić. Zapisy w K-meniju a wšitke KDE-aplikacije, w kotrychž móžeće zapiski wočinić, budu tutón datajowy manager wužiwać.
Comment[hu]=Itt lehet beállítani, mi legyen az alapértelmezett fájlkezelő. A KDE menüben és a KDE-alkalmazásokban ez a program fog megnyílni, ha megnyit egy mappát.
Comment[ia]=Ci tu pote configurar tu gerente de file predefinite. Le entratas in le K menu e omne applicationes KDE in qual tu aperi dossieres usara iste gerente de file.
Comment[id]=Di sini anda dapat mengatur manajer berkas standar anda. Lema di menu K dan semua aplikasi KDE yang dapat anda buka foldernya akan menggunakan manajer berkas ini.
Comment[is]=Þessi þjónusta leyfir þér að skilgreina sjálfgefinn skráastjóra. K-aðalvalmyndin og öll KDE forrit sem gera þér kleift að opna möppur ættu að virða þessa stillingu.
Comment[it]=Definisci il gestore dei file predefinito. Tutte le voci del menu K e tutte le applicazioni di KDE nelle quali puoi aprire cartelle rispetteranno questa impostazione.
Comment[ja]=使K KDE 使
Comment[kk]=Мұнда әдетті файл менеджеріңізді баптай аласыз. K мәзірінде және бүкіл KDE қолданбаларында қапшықтарды ашқанда осы файл менеджері пайдаланды.
Comment[km]=   K KDE  
Comment[kn]=ಿ ಿ ಿಿ ಿ. ಿ .
Comment[ko]= . K KDE .
Comment[ku]=Li vir tu dikarî rêveberê xwe yê pelê a standard mîheng bikî. Hemû sepanên di pêşeka K de û yên di KDE de tu dikarî dê bi vê rêveberê ve vebin.
Comment[lt]=Čia galite nustatyti, kuri failų tvarkytuvė bus numatytoji. Visi įrašai K meniu bei visos KDE programos, kuriomis atveriami aplankai, naudos šią failų tvarkytuvę.
Comment[lv]=Šeit varat konfigurēt noklusēto failu pārvaldnieku. K izvēlnes ieraksti un visas KDE programmas izmantos šo parametru mapju atvēršanai.
Comment[mai]= िि ि ि. ि ि , ि .
Comment[mk]=Тука може да го конфигурирате Вашиот стандарден менаџер на датотеки. Елементите од менито на KDE и сите KDE-апликации во кои може да отворате папки ќе го користат овој менаџер.
Comment[ml]=ി ി ിിി ി. ിിി ി ി.
Comment[mr]= . K ि .
Comment[nb]=Her kan du sette opp filbehandleren du bruker mest. Oppføringene i K-menyen og alle KDE-programmer som kan åpne mapper vil bruke denne filbehandleren.
Comment[nds]=Hier kannst Du Dien Standard-Dateipleger angeven. De Indrääg binnen dat K-Menü un all KDE- Programmen, binnen de Du Ornern opmaken kannst, schöölt em bruken.
Comment[nl]=Hier kunt u uw standaard bestandsbeheerder instellen. Alle items in het K-menu en alle KDE-programma's waarin u mappen kunt openen maken gebruik van deze instelling.
Comment[nn]=Med denne tenesta kan du setja opp standard filhandsamar. Oppføringane i K-menyen og alle KDE-program der du kan opna mapper skal bruka denne filhandsamaren.
Comment[pa]= ਿ ਿ , ਿ ਿ ,
Comment[pl]=Tu można wybrać domyślną przeglądarkę plików. Wszystkie programy KDE, w których otwiera się katalogi, będą używać tego programu.
Comment[pt]=Aqui poderá configurar o seu navegador Web predefinido. Todas as aplicações do KDE onde possa seleccionar hiperligações deverão respeitar esta configuração.
Comment[pt_BR]=Aqui você pode configurar o seu gerenciador de arquivos padrão. Todas as entradas do menu K e todos os aplicativos do KDE nos quais você pode abrir pastas usarão este gerenciador de arquivos.
Comment[ro]=Aici puteți configura gestionarul de fișiere implicit. Înregistrările din meniul K și toate aplicațiile KDE în care puteți deschide dosare vor utiliza acest gestionar de fișiere.
Comment[ru]=Здесь можно указать диспетчер файлов по умолчанию. Все приложения KDE, в которых можно открыть папку, будут использовать указанную программу.
Comment[se]=Dáinna bálvalusain sáhtát heivehit standárda fiilagieđahalli. Merkošat K-fálus ja buot KDE-prográmmat mat sáhttet rahpat máhpaid geavaha dán fiilagieđahalli.
Comment[si]= . K KDE .
Comment[sk]=Tu si môžete nastaviť štandardného správcu súborov. Položky v K menu a všetky aplikácie KDE, v ktorým môžete otvoriť priečinky, budú používať tohto správcu súborov.
Comment[sl]=Tu lahko nastavite svoj privzeti upravljalnik datotek. Ta upravljalnik bodo uporabili vnosi v meniju K in vsi KDE programi, v katerih lahko odprete mape.
Comment[sr]=Овде подешавате подразумевани менаџер фајлова. Користиће га ставке у Кменију и сви КДЕ програми у којима можете отварати фасцикле.
Comment[sr@ijekavian]=Овдје подешавате подразумијевани менаџер фајлова. Користиће га ставке у Кменију и сви КДЕ програми у којима можете отварати фасцикле.
Comment[sr@ijekavianlatin]=Ovdje podešavate podrazumijevani menadžer fajlova. Koristiće ga stavke u Kmeniju i svi KDE programi u kojima možete otvarati fascikle.
Comment[sr@latin]=Ovde podešavate podrazumevani menadžer fajlova. Koristiće ga stavke u Kmeniju i svi KDE programi u kojima možete otvarati fascikle.
Comment[sv]=Här kan du anpassa förvald filhanterare. Alternativen i K-menyn och alla KDE-program där du kan öppna kataloger kommer att använda den här filhanteraren.
Comment[ta]= ி ிி ி ி . ி ி ி ிி ி .
Comment[tg]=Дар ин ҷо шумо метавонед Мудири файли стандартиро танзим кунед. Вурудҳои дар меню буда ва ҳамаи барномаҳои KDE ҳангоми кушодани феҳрастҳо ин мудири файлро истифода мебаранд.
Comment[th]= K KDE
Comment[tr]=Buradan öntanımlı dosya yöneticinizi yapılandırabilirsiniz. K menüsünde ve KDE uygulamalarında bulunan tüm dizinleri açan uygulamalar için bu uygulama kullanılacaktır.
Comment[ug]=بۇ جايدا كۆڭۈلدىكى ھۆججەت باشقۇرغۇچىڭىزنى سەپلىيەلەيسىز. ھەممە K تىزىملىكىدىكى تۈرلەر ۋە KDE پروگراممىلاردا ھۆججەت ئاچقاندا بۇ ھۆججەت باشقۇرغۇچنى ئىشلىتىدۇ.
Comment[uk]=Тут можна налаштувати ваш типовий інструмент для роботи з файлами. Всі пункти інструмента для запуску програм і всі програми KDE, у яких ви можете відкривати теки, використовуватимуть саме цей інструмент.
Comment[vi]=Ti đây bn có th cu hình trình qun lý tp tin mc đnh ca bn. Các mc trong trình đơn K và tt c ng dng KDE mà bn có th m thư mc t đó đu s dùng trình qun lý tp tin này.
Comment[wa]=Vos ploz apontyî chal vosse prémetou manaedjeu des fitchîs. Les intrêyes el dressêye K eyet tos les programes K ki vs poloz drovi des ridants ddins s' sievront di c' manaedjeu des fitchîs.
Comment[x-test]=xxHere you can configure your default file manager. The entries in the K menu and all KDE applications in which you can open folders will use this file manager.xx
Comment[zh_CN]= K KDE
Comment[zh_TW]= K KDE
configurationType=internal_filemanager

View file

@ -0,0 +1,164 @@
Icon=internet-mail
# ctxt: standard desktop component
Name=Email Client
Name[ar]=عميل البريد الإلكتروني
Name[ast]=Veceru de corréu electrónicu
Name[bg]=Програма за е-поща
Name[bn]=-
Name[bs]=klijent epošte
Name[ca]=Client de correu
Name[ca@valencia]=Client de correu
Name[cs]=E-mailový klient
Name[csb]=E-mailowô programa
Name[da]=E-mail-klient
Name[de]=E-Mail-Programm
Name[el]=Πελάτης ηλ. αλληλογραφίας
Name[en_GB]=Email Client
Name[eo]=Retpoŝtilo
Name[es]=Cliente de correo electrónico
Name[et]=E-posti klient
Name[eu]=Posta-bezeroa
Name[fa]=کارخواه رایانامه
Name[fi]=Sähköpostiohjelma
Name[fr]=Client de courrier électronique
Name[fy]=Email Client
Name[ga]=Cliant Ríomhphoist
Name[gl]=Cliente de correo
Name[gu]=
Name[he]=לקוח דואר־אלקטרוני
Name[hi]= ि
Name[hr]=Klijent e-pošte
Name[hu]=Levelezőprogram
Name[ia]=Cliente de E-Posta
Name[id]=Klien Email
Name[is]=Póstforrit
Name[it]=Programma di posta
Name[ja]=
Name[kk]=Эл.пошта клиенті
Name[km]=
Name[kn]=ಿ- ಿ ()
Name[ko]=
Name[lt]=El. pašto programa
Name[lv]=E-pasta klients
Name[mai]= ि
Name[mk]=Клиент за е-пошта
Name[ml]=ി
Name[mr]=
Name[nb]=E-postprogram
Name[nds]=Nettpost-Programm
Name[nl]=E-mailprogramma
Name[nn]=E-postprogram
Name[pa]=-
Name[pl]=Program pocztowy
Name[pt]=Cliente de E-mail
Name[pt_BR]=Cliente de e-mail
Name[ro]=Client de poștă
Name[ru]=Почтовый клиент
Name[si]=
Name[sk]=E-mailový klient
Name[sl]=Odjemalec e-pošte
Name[sr]=клијент епоште
Name[sr@ijekavian]=клијент епоште
Name[sr@ijekavianlatin]=klijent epošte
Name[sr@latin]=klijent epošte
Name[sv]=E-postklient
Name[tg]=Мизоҷи почта
Name[th]=/
Name[tr]=E-posta İstemcisi
Name[ug]=ئېلخەت خېرىدارى
Name[uk]=Клієнт електронної пошти
Name[vi]=Trình khách thư đin t
Name[wa]=Cliyint d' emilaedje
Name[x-test]=xxEmail Clientxx
Name[zh_CN]=
Name[zh_TW]=
Comment=This service allows you to configure your default email client. All KDE applications which need access to an email client application should honor this setting.
Comment[af]=Hierdie diens laat jou toe om jou standaard e-pos kliënt op te stel. Al die KDE programme wat toegang tot 'n e-pos kliënt benodig behoort hierdie instelling te gebruik.
Comment[ar]=هذه الخدمة تسمح لك بضبط عميل بريدك الإلكتروني. كل تطبيقات كدي التي تحتاج الوصول لتطبيق عميل البريد الإلكتروني ينبغي أن تحترم هذا الإعداد.
Comment[ast]=Esti serviciu permite configurar el veceru de corréu predetermináu. Toles aplicaciones KDE que precisen accesu a una aplicación de veceru de corréu deberíen reconocer esta opción.
Comment[be]=Гэты сервіс дазваляе вызначыць для сябе стандартны кліент электроннай пошты. Усе праграмы KDE, у якіх вы можаце выбраць гіперспасылку, павінны выкарыстоўваць гэтае настаўленне.
Comment[be@latin]=Hetaja słužba dazvalaje vybrać sabie zmoŭčany paštar. Usie aplikacyi KDE, jakija karystajucca paštarom, pavinnyja źviartać uvahu na hetuju naładu.
Comment[bg]=Избор на предпочитана програма за поща. Всички програми от KDE, които се нуждаят от достъп до електронната поща, ще ползват този компонент.
Comment[bn]= িি ি - ি .ি.. ি - ি ি
Comment[bs]=Ovaj servis omogućava da podesite podrazumijevani klijent epošte. Svi KDE programi koji traže pristup epošti treba da poštuju ovu postavku.
Comment[ca]=Aquest servei us permet configurar el vostre client de correu per omissió. Totes les aplicacions KDE que precisin d'accés a una aplicació de client de correu hauria de reconèixer aquesta opció.
Comment[ca@valencia]=Este servei vos permet configurar el vostre client de correu per omissió. Totes les aplicacions KDE que precisin d'accés a una aplicació de client de correu hauria de reconèixer esta opció.
Comment[cs]=Tato služba umožňuje nastavit si výchozího klienta emailu. Všechny KDE aplikace, které vyžadují přístup k e-mailové aplikaci, by měly používat toto nastavení.
Comment[csb]=Tuwò mòżne wëbrac domëslną pòcztową programã. Wszëtczé programë KDE, w jaczich brëkùje sã z lënkòw, mùszôłëbë ùżëwac tegò ùstôwù.
Comment[cy]=Mae'r gwasanaeth ymayn gadael i chi ffurfweddu eich dibynnydd ebost cyffredinol. Dylai bob raglen KDE sydd angen cyrchiad i ddibynnydd ebost ddefnyddio'r gosodiad yma.
Comment[da]=Denne service tillader dig at indstille din e-mail-klient. Alle KDE-programmer der behøver adgang til en e-mail-klient skulle respektere denne indstilling.
Comment[de]=Hier können Sie Ihr Standard-E-Mail-Programm einrichten. Alle KDE-Anwendungen, die Zugriff auf ein solches Programm benötigen, sollten diese Einstellungen verwenden.
Comment[el]=Αυτή η υπηρεσία σας επιτρέπει να διαμορφώσετε τον προκαθορισμένο πελάτη της αλληλογραφίας σας. Όλες οι εφαρμογές του KDE που χρειάζονται πρόσβαση σε μια εφαρμογή πελάτη αλληλογραφίας θα πρέπει να τηρούν αυτήν τη ρύθμιση.
Comment[en_GB]=This service allows you to configure your default email client. All KDE applications which need access to an email client application should honour this setting.
Comment[eo]=Ĉi tie vi povas agordi vian aprioran retpoŝtilon. Ĉiuj aplikaĵoj de KDE, kiuj necesas akiron al retpoŝtilo, observos ĉi tiun agordon.
Comment[es]=Este servicio le permite configurar su cliente de correo predeterminado. Todas las aplicaciones KDE que precisen acceso a una aplicación de cliente de correo deberían reconocer esta opción.
Comment[et]=See teenus võimaldab sul määrata kindlaks vaikimisi kasutatava e-posti kliendi. Kõik KDE rakendused, mis vajavad mingil moel e-posti klienti, peaksid arvestama selle seadega.
Comment[eu]=Zerbitzu honen bidez, posta elektronikoko bezero lehenetsia konfigura dezakezu. Posta elektronikoko bezeroa behar duten KDE aplikazio guztiek eduki beharko lukete ezarpen hau.
Comment[fa]=این خدمت به شما اجازه پیکربندی کارخواه رایانامه پیشفرضتان را میدهد. همه کاربردهای KDE که نیاز به دستیابی به کاربردهای کارخواه رایانامه دارند، باید این تنظیم را قبول کنند.
Comment[fi]=Tämän palvelun avulla voit muokata oletussähköpostiohjelmaasi. Kaikki sähköpostiohjelmaa käyttävät KDE-sovellukset huomioivat tämän asetuksen.
Comment[fr]=Ce service vous permet de configurer votre client de courrier électronique par défaut. Toutes les applications KDE qui ont besoin d'accéder à un client de courrier électronique doivent accepter ce réglage.
Comment[fy]=Mei dizze tsjinst kinne jo de standert e-postprogramma ynstelle. KDE-tapassingen dy tagong ta in e-postprogramma neadich ha sille dizze ynstellings brûke.
Comment[ga]=Leis an tseirbhís seo is féidir cliant réamhshocraithe ríomhphoist a chumrú. Onóróidh gach feidhmchlár KDE a úsáideann cliant ríomhphoist an socrú seo.
Comment[gl]=Este servizo permítelle configurar o cliente de correo predeterminado. Todos os programas de KDE que precisen acceso ao programa de correo electrónico deberían ter en conta esta opción.
Comment[gu]= િ . KDE .
Comment[he]=כאן ניתן להגדיר את לקוח הדואר־אלקטרוני שישמש כברירת־המחדל. כל יישומי KDE ישתמשו בלקוח זה כלקוח הדואר־אלקטרוני.
Comment[hi]= ि ि ि . , ि .
Comment[hne]= ि ि ि . , ि .
Comment[hr]=Usluga koja omogućuje konfiguriranje zadanog klijenta e-pošte. Sve KDE-ove aplikacije koje zahtijevaju pristup klijentu e-pošte poštivat će ovaj odabir.
Comment[hsb]=Tuta słužba Wam dowoli swój standardny emejlowy program připrawić. Wšitke KDE-aplikacije, kotrež trjebaja emejlowy program, měli so po tutych nastajenjach měć.
Comment[hu]=Ez a szolgáltatás lehetővé teszi az alapértelmezett e-mail-kliens előírását. Az összes KDE-alkalmazásnak figyelembe kell vennie ezt az értéket a levelezőprogram elindításakor.
Comment[ia]=Iste servicio permitte te de configurar tu cliente de e-posta predefinite. Omne applicationes KDE que necessita un accesso a un application de e-posta debera honorar iste preferentia.
Comment[id]=Layanan ini memungkinkan anda untuk mengatur klien email standar anda. Semua aplikasi KDE yang memerlukan akses ke aplikasi klien email akan mengikuti pengaturan ini.
Comment[is]=Þessi þjónusta leyfir þér að skilgreina sjálfgefið tölvupóstforrit. Öll KDE forrit sem þurfa aðgengi að tölvupóstforriti ættu að virða þessa stillingu.
Comment[it]=Questo servizio permette di configurare il programma di posta elettronica preferito. Tutte le applicazioni di KDE che avranno bisogno di accedere ad un programma di posta elettronica rispetteranno questa impostazione.
Comment[ja]=使 KDE
Comment[ka]= . KDE- , ,
Comment[kk]=Мұнда Сіз әдетті эл.пошта клиентін таңдай аласыз. Бүкіл KDE қолданбаларда эл.пошта керек болғанда осы таңдау қолданылады.
Comment[km]=  KDE  
Comment[kn]= ಿ ಿಿ ಿ- ಿ () ಿ ಿ. ಿ- ಿ ಿ ಿ.
Comment[ko]= . KDE .
Comment[ku]=Ev xizmet destûrê dide te ku navrûyê e-peyamê ya standard mîheng bikî. Hemû sepanên KDE'yê yên ku tu dikarî hyperlînkê hilbijêrî dê vê mîhengê erê bikin.
Comment[lt]=Ši tarnyba leidžia jums nustatyti Jūsų numatytą pašto klientą. Visos KDE programos, kurioms reikia el. pašto kliento programos, turėtų atsižvelgti į šį nustatymą.
Comment[lv]=Šeit varat konfigurēt noklusējuma e-pasta klientu. Visas KDE programmas, kurām ir nepieciešams e-pasts, izmantos šo parametru.
Comment[mai]= िि ि ि ि. ि ि, ि ि .
Comment[mk]=Овој сервис ви овозможува да го конфигурирате вашиот стандарден клиент за електронска пошта. Сите KDE-апликации на кои им е потребен пристап до електронска пошта ќе ги почитуваат овие поставувања.
Comment[ml]=ി ി ിിി ി. ി ി ി ി.
Comment[mr]= . ि ि.
Comment[ms]=Servis ini membolehkan anda konfigur klien e-mel piawai anda. Semua aplikasi KDE yang perlu akses kepada aplikasi klien e-mel hendaklah menerima seting ini.
Comment[nb]=Med denne tjenesten kan du sette opp standard-e-postprogrammet. Alle KDE-programmer som trenger tilgang til e-post bør ta hensyn til denne innstillinga.
Comment[nds]=Hier kannst Du Dien Standard-Nettpostprogramm angeven. All KDE- Programmen, de Togang to'n Nettpostprogramm bruukt, schullen dat denn anwennen.
Comment[ne]= िि ि ि ि ि
Comment[nl]=Met deze service kunt u uw standaard e-mailprogramma instellen. KDE-toepassingen die toegang tot een e-mailprogramma nodig hebben zullen deze instellingen gebruiken.
Comment[nn]=Med denne tenesta kan du setja opp standard-e-postprogrammet. Alle KDE-program som treng tilgang til e-post bør følgja denne innstillinga.
Comment[pa]= ਿ - KDE , ਿ - , ਿ
Comment[pl]=Tu można wybrać domyślny program pocztowy. Wszystkie programy KDE, które korzystają z poczty, powinny używać tego ustawienia.
Comment[pt]=Este serviço permite-lhe configurar o seu cliente de e-mail por omissão. Todas as aplicações do KDE que necessitem do acesso a um cliente de e-mail devem respeitar esta configuração.
Comment[pt_BR]=Este serviço permite a você configurar o seu cliente de e-mail padrão. Todos os aplicativos do KDE que precisarem acessar um cliente de e-mail devem seguir esta configuração.
Comment[ro]=Acest serviciu vă permite să configurați clientul de email implicit. Toate aplicațiile KDE care au nevoie de o aplicație client de email ar trebui să onoreze această setare.
Comment[ru]=Здесь можно указать почтовый клиент по умолчанию. Все приложения KDE, которым нужен почтовый клиент, будут использовать указанную программу.
Comment[se]=Dáinna bálvalusain sáhtát heivehit standárd e-boastaprográmma. Buot KDE-prográmmat mat geavahit e-boastta berret dáid heivehusaid geavahit.
Comment[si]= . KDE .
Comment[sk]=Táto služba umožňuje nastaviť štandardného klienta elektronickej pošty. Všetky aplikácie KDE, ktoré používajú poštového klienta, by mali používať toto nastavenie.
Comment[sl]=Ta storitev vam omogoča nastavitev vašega privzetega odjemalca e-pošte. Vsi KDE programi, ki ga uporabljajo, bi morali upoštevati te nastavitve.
Comment[sr]=Овај сервис омогућава да подесите подразумевани клијент епоште. Сви КДЕ програми који траже приступ епошти треба да поштују ову поставку.
Comment[sr@ijekavian]=Овај сервис омогућава да подесите подразумијевани клијент епоште. Сви КДЕ програми који траже приступ епошти треба да поштују ову поставку.
Comment[sr@ijekavianlatin]=Ovaj servis omogućava da podesite podrazumijevani klijent epošte. Svi KDE programi koji traže pristup epošti treba da poštuju ovu postavku.
Comment[sr@latin]=Ovaj servis omogućava da podesite podrazumevani klijent epošte. Svi KDE programi koji traže pristup epošti treba da poštuju ovu postavku.
Comment[sv]=Den här tjänsten låter dig anpassa förvald e-postklient. Alla KDE-program som behöver använda e-postklient ska använda den här inställningen
Comment[ta]= ி ி ி ி ிி. ி ி ி ி ி.
Comment[te]= ి ి ిి. ి KDE ిి.
Comment[tg]=Дар ин ҷо шумо метавонед Мизоҷи почтаи стандартиро танзим кунед. Ҳамаи барномаҳои KDE ҳангоми кушодани барномаи мизоҷи почта ин танзимотро истифода мебаранд.
Comment[th]= KDE
Comment[tr]=Bu servis öntanımlı e-posta istemcinizi seçmenize yardımcı olur.
Comment[ug]=بۇ مۇلازىمەت كۆڭۈلدىكى ئېلخەت خېرىدار پروگراممىڭىزنى سەپلىشىڭىزگە يول قويىدۇ. ئېلخەت خېرىدار پروگراممىسىنى زىيارەت قىلماقچى بولغان ھەممە KDE پروگراممىسى بۇ تەڭشەككە بويسۇنىدۇ.
Comment[uk]=За допомогою цієї служби ви можете налаштувати ваш типовий клієнт електронної пошти. Всі програми KDE, яким потрібен доступ до клієнта електронної пошти будуть користуватися цими параметрами.
Comment[uz]=Bu xizmat andoza xat-xabar klientingizni moslash uchun imkoniyat yaratadi. Xat-xabar klienti kerak boʻlgan hamma KDE dasturlari shu moslamadan foydalanishi kerak.
Comment[uz@cyrillic]=Бу хизмат андоза хат-хабар клиентингизни мослаш учун имконият яратади. Хат-хабар клиенти керак бўлган ҳамма KDE дастурлари шу мосламадан фойдаланиши керак.
Comment[vi]=Dch v này cho phép bn cu hình trình thư mc đnh. Tt c các chương trình ca KDE cn gi thư đin t đu da vào thiết lp này.
Comment[wa]=Ci siervice vos permete d' apontyî vosse prémetou cliyint d' emile. Tos les programes KDE k' åront dandjî d' aveur accès a on cliyint emile duvrént shure cisse tchuze.
Comment[xh]=Lenkonzo ikuvumela ukuba uqwalasele umxhasi wakho we email. Zonke izicelo ezidinga unikezelo kumxhasi we email wesicelo kufuneka yamkele esisicelo.
Comment[x-test]=xxThis service allows you to configure your default email client. All KDE applications which need access to an email client application should honor this setting.xx
Comment[zh_CN]=访 KDE
Comment[zh_TW]=使 KDE
configurationType=internal_email

View file

@ -0,0 +1,164 @@
Icon=utilities-terminal
# ctxt: standard desktop component
Name=Terminal Emulator
Name[ar]=محاكي الطرفية
Name[ast]=Emulador de terminal
Name[bg]=Конзолна програма
Name[bn]=ি
Name[bs]=emulator terminala
Name[ca]=Emulador de terminal
Name[ca@valencia]=Emulador de terminal
Name[cs]=Emulátor terminálu
Name[csb]=Emùlator terminala
Name[da]=Terminalemulator
Name[de]=Terminal-Emulator
Name[el]=Προσομοιωτής τερματικού
Name[en_GB]=Terminal Emulator
Name[eo]=Terminalo
Name[es]=Emulador de terminal
Name[et]=Terminaliemulaator
Name[eu]=Terminal-emuladorea
Name[fa]=مقلد پایانه
Name[fi]=Pääte-emulaattori
Name[fr]=Émulateur de terminal
Name[fy]=Terminal emulator
Name[ga]=Aithriseoir Teirminéil
Name[gl]=Emulador de terminal
Name[gu]=િ
Name[he]=מדמה מסוף
Name[hi]=ि
Name[hr]=Emulator terminala
Name[hu]=Terminál
Name[ia]=Emulator de Terminal
Name[id]=Emulator Terminal
Name[is]=Skjáhermir
Name[it]=Emulatore di terminale
Name[ja]=
Name[kk]=Терминал эмуляторы
Name[km]=
Name[kn]= ()
Name[ko]=
Name[lt]=Terminalo emuliatorius
Name[lv]=Termināla emulators
Name[mai]=ि
Name[mk]=Терминалски емулатор
Name[ml]=ി
Name[mr]=ि
Name[nb]=Terminalemulator
Name[nds]=Terminal-Emulater
Name[nl]=Terminalprogramma
Name[nn]=Terminalemulator
Name[pa]=
Name[pl]=Emulator terminala
Name[pt]=Emulador de Terminal
Name[pt_BR]=Emulador de terminal
Name[ro]=Emulator de terminal
Name[ru]=Эмулятор терминала
Name[si]=
Name[sk]=Emulátor terminálu
Name[sl]=Posnemovalnik terminala
Name[sr]=емулатор терминала
Name[sr@ijekavian]=емулатор терминала
Name[sr@ijekavianlatin]=emulator terminala
Name[sr@latin]=emulator terminala
Name[sv]=Terminalemulator
Name[tg]=Тақлидгари терминал
Name[th]=
Name[tr]=Uçbirim Öykünücü
Name[ug]=تېرمىنال تەقلىدلەشتۈرگۈچ
Name[uk]=Емулятор термінала
Name[vi]=Trình mô phng thiết b cui
Name[wa]=Terminå
Name[x-test]=xxTerminal Emulatorxx
Name[zh_CN]=仿
Name[zh_TW]=
Comment=This service allows you to configure your default terminal emulator. All KDE applications which invoke a terminal emulator application should honor this setting.
Comment[af]=Hierdie diens laat jou toe om jou standaard terminaal emuleerder op te stel. Al die KDE programme wat 'n terminaal skep behoort hierdie instelling te gebruik.
Comment[ar]=هذه الخدمة تسمح لك لضبط محاكي الطرفية الافتراضي لديك. كل تطبيقات كدي التي تستدعي تطبيق محاكي الطرفية يبنغي أن تحترم هذا الإعداد.
Comment[ast]=Esti serviciu permite configurar l'emulador de terminal predetermináu. Toles aplicaciones KDE qu'invoquen al emulador de terminal deberíen reconocer esta opción.
Comment[be]=Гэты сервіс дазваляе вызначыць для сябе стандартны эмулятар тэрміналу. Усе праграмы KDE, якія запускаюць эмулятар тэрміналу, павінны выкарыстоўваць гэтае настаўленне.
Comment[be@latin]=Hetaja słužba dazvalaje vybrać sabie zmoŭčany emulatar terminała. Usie aplikacyi KDE, jakija ŭklučajuć emulatar terminała, pavinnyja źviartać uvahu na hetuju naładu.
Comment[bg]=Избор на предпочитана конзолна програма. Всички програми от KDE, които се нуждаят от достъп до конзолата, ще ползват този компонент.
Comment[bn]= িি ি ি ি .ি.. ি ি ি ি
Comment[bs]=Ovaj servis omogućava da podesite podrazumijevani emulator terminala. Svi KDE programi koji pozivaju terminal treba da poštuju ovu postavku.
Comment[ca]=Aquest servei us permet configurar el vostre emulador de terminal per omissió. Totes les aplicacions KDE que precisin d'accés a una aplicació de client de correu hauria de reconèixer aquesta opció.
Comment[ca@valencia]=Este servei vos permet configurar el vostre emulador de terminal per omissió. Totes les aplicacions KDE que precisin d'accés a una aplicació de client de correu hauria de reconèixer esta opció.
Comment[cs]=Tato služba umožňuje nastavit si výchozího emulátor terminálu. Všechny KDE aplikace, které spouští emulátor terminálu, by měly používat toto nastavení.
Comment[csb]=Tuwò mòżne wëbrac domëslny emùlator terminala. Wszëtczé programë KDE, w jaczich brëkùje sã z lënkòw, mùszôłëbë ùżëwac tegò ùstôwù.
Comment[cy]=Mae'r gwasanaeth yma yn gadael i chi ffurfweddu eich efelychydd terfynell cyffredinol. Dylai pob rhaglen KDE sy'n cychwyn efelychydd terfynell ddefnyddio'r gosodiad yma.
Comment[da]=Denne service tillader dig at indstille din terminalemulator. Alle KDE-programmer der behøver adgang til en terminalemulator skulle respektere denne indstilling.
Comment[de]=Hier können Sie den voreingestellten Terminal-Emulator einrichten. Alle KDE-Anwendungen, die Zugriff auf ein solches Programm benötigen, sollten diese Einstellungen verwenden.
Comment[el]=Αυτή η υπηρεσία σας επιτρέπει να διαμορφώσετε τον προκαθορισμένο προσομοιωτή τερματικού σας. Όλες οι εφαρμογές του KDE που καλούν μια εφαρμογή προσομοιωτή τερματικού θα πρέπει να τηρούν αυτήν τη ρύθμιση.
Comment[en_GB]=This service allows you to configure your default terminal emulator. All KDE applications which invoke a terminal emulator application should honour this setting.
Comment[eo]=Ĉi tiu servo permesas vin agordi vian aprioran terminalon. Ĉiuj aplikaĵoj de KDE, kiuj alvokas terminalon, observos ĉi tiun agordon.
Comment[es]=Este servicio le permite configurar su emulador de terminal predeterminado. Todas las aplicaciones KDE que invoquen un emulador de terminal deberían reconocer esta opción.
Comment[et]=See teenus võimaldab sul määrata kindlaks vaikimisi kasutatava terminaliemulaatori. Kõik KDE rakendused, mis vajavad mingil moel terminaliemulaatorit, peaksid arvestama selle seadega.
Comment[eu]=Zerbitzu honen bidez, terminal-emuladore lehenetsia konfigura dezakezu. Terminal-emuladore bati deitu behar dioten KDE aplikazio guztiek eduki beharko lukete ezarpen hau.
Comment[fa]=این خدمت به شما اجازه پیکربندی مقلد پایانه پیشفرضتان را میدهد. همه کاربردهای KDE که نیاز به دستیابی به کاربردهای کارخواه رایانامه دارند، باید این تنظیم را قبول کنند.
Comment[fi]=Tämän palvelun avulla voit muokata oletuspääte-emulaattoria. Kaikki pääte-emulaattoria käyttävät KDE-sovellukset huomioivat tämän asetuksen.
Comment[fr]=Ce service vous permet de configurer votre émulateur de terminal par défaut. Toutes les applications KDE qui appellent une application d'émulation de terminal doivent accepter ce réglage.
Comment[fy]=Mei dizze tsjinst kinne jo de standert terminalemulator ynstelle. Alle KDE-tapassingen dy in terminalemulator oanroppe sille brûk meitsje fan dizze ynstelling.
Comment[ga]=Leis an tseirbhís seo is féidir aithriseoir réamhshocraithe teirminéil a chumrú. Onóróidh gach feidhmchlár KDE a úsáideann aithriseoir teirminéil an socrú seo.
Comment[gl]=Este servizo permítelle configurar o emulador de terminal predeterminado. Todos os programas de KDE que invoquen un emulador de terminal deberían facer caso desta opción.
Comment[gu]= િ િ . KDE િ .
Comment[he]=כאן ניתן להגדיר את מדמה המסוף שישמש כברירת־המחדל. כל יישומי KDE ישתמשו במדמה מסוף זה כמדמה המסוף.
Comment[hi]= ि ि ि ि . ि , ि .
Comment[hne]= ि ि ि ि . ि , ि .
Comment[hr]=Usluga koja omogućuje konfiguriranje zadanog emulatora terminala. Sve KDE-ove aplikacije koje pozivaju aplikaciju emulatora terminala poštivat će ovaj odabir.
Comment[hsb]=Tuta słužba Wam dowoli swój standardny terminalowy program připrawić. Wšitke KDE-aplikacije, kotrež trjebaja terminalowy program, měli so po tutych nastajenjach měć.
Comment[hu]=Ez a szolgáltatás lehetővé teszi az alapértelmezett parancsértelmező előírását. Az összes KDE-alkalmazásnak figyelembe kell vennie ezt az értéket a parancsértelmező elindításakor.
Comment[ia]=Iste servicio permitte te de configurar tu emulator de terminal predefinite. Omne applicationes KDE que invoca un application de emulator de terminal honora iste preferentia.
Comment[id]=Layanan ini memungkinkan anda untuk mengatur emulator terminal standar anda. Semua aplikasi KDE yang menyebutkan aplikasi emulator terminal akan mengikuti pengaturan ini.
Comment[is]=Þessi þjónusta leyfir þér að skilgreina sjálfgefinn skjáhermi. Öll KDE forrit sem þurfa aðgengi að skjáhermi ættu að virða þessa stillingu.
Comment[it]=Questo servizio permette di configurare il programma di emulazione di terminale preferito. Tutte le applicazioni di KDE che avranno bisogno di aprire un terminale rispetteranno questa impostazione.
Comment[ja]=使 KDE
Comment[ka]=Comment= . KDE- , ,
Comment[kk]=Мұнда Сіз әдетті терминал эмуляторын таңдай аласыз. Бүкіл KDE қолданбаларда терминал эмуляторы керек болғанда осы таңдау қолданылады.
Comment[km]=  KDE  
Comment[kn]= ಿ ಿಿ () ಿ ಿ. ಿ ಿ.
Comment[ko]= . KDE .
Comment[ku]=Ev xizmet destûrê dide te ku amulatora termînalê ya standard mîheng bikî. Hemû sepanên KDE'yê yên ku tu dikarî hyperlînkê hilbijêrî dê vê mîhengê erê bikin.
Comment[lt]=Ši tarnyba leidžia Jums nustatyti Jūsų numatytą pašto klientą. Visos KDE programos, kurios iškviečia terminalo emuliatoriaus programą, turėtų atsižvelgti į šį nustatymą.
Comment[lv]=Šis serviss jums ļauj iestatīt noklusēto termināla emulatoru. Visas KDE programmas, kurām vajag termināla emulatoru, izmantos šo parametru.
Comment[mai]= िि ि ि ि ि. ि ि ि, ि ि .
Comment[mk]=Овој сервис ви овозможува да го конфигурирате вашиот стандарден терминалски емулатор. Сите KDE-апликации кои стартуваат апликација во терминалски емулатор ќе ги почитуваат овие поставувања.
Comment[ml]=ി ിി ിിി ി. ിി ി ി.
Comment[mr]= ि . ि , ि.
Comment[ms]=Servis ini membolehkan anda konfigur pelagak terminal piawai. Semua aplikasi KDE yang membatalkan aplikasi pelagak terminal hendaklah menerima seting ini.
Comment[nb]=Med denne tjenesten kan du velge hvilken terminalemulator du foretrekker. Alle KDE-program som starter en terminalemulator bør ta hensyn til disse innstillingene.
Comment[nds]=Hier kannst Du Dien Standard-Terminalemulator angeven. All KDE- Programmen, de en Terminalemulator starten wüllt, schullen dat denn anwennen.
Comment[ne]= िि ि ि ि ि ि ि
Comment[nl]=Met deze service kunt u uw standaard terminalemulator instellen. Alle KDE-toepassingen die een terminalemulator aanroepen zullen gebruik maken van deze instelling.
Comment[nn]=Med denne tenesta kan du setja oppp standardterminalemulatoren. Alle KDE-program som startar terminalemulatorar bør følgja denne innstillinga.
Comment[pa]= ਿ KDE , ਿ ਿ , ਿ
Comment[pl]=Tu można wybrać domyślny emulator terminala. Wszystkie programy KDE, które korzystają z terminala, powinny używać tego ustawienia.
Comment[pt]=Este serviço permite-lhe configurar o seu emulador de terminal por omissão. Todas as aplicações do KDE que invoquem um emulador de terminal devem respeitar esta configuração.
Comment[pt_BR]=Este serviço permite a você configurar o seu emulador de terminal padrão. Todos os aplicativos do KDE que precisarem acessar um emulador de terminal devem seguir esta configuração.
Comment[ro]=Acest serviciu vă permite să configurați emulatorul de terminal implicit. Toate aplicațiile de KDE care invocă un emulator de terminal ar trebuie să onoreze această setare.
Comment[ru]=Эта служба позволяет вам указать эмулятор терминала по умолчанию. Все приложения KDE, которые вызывают эмулятор терминала, будут использовать указанную программу.
Comment[se]=Dáinna bálvalusain sáhtát bidjat standárdterminálemuláhtora. Buot KDE-prográmmat mat álggahit terminálemuláhtoriid berret dán heivehusa geavahit.
Comment[si]= . KDE .
Comment[sk]=Táto služba umožňuje nastaviť štandardný emulátor terminálu. Všetky aplikácie KDE, ktoré používajú emulátor terminálu, by mali používať toto nastavenie.
Comment[sl]=Ta storitev vam omogoča nastavitev vašega privzetega posnemovalnika terminala. Vsi KDE programi, ki ga uporabljajo, bi morali upoštevati te nastavitve.
Comment[sr]=Овај сервис омогућава да подесите подразумевани емулатор терминала. Сви КДЕ програми који позивају терминал треба да поштују ову поставку.
Comment[sr@ijekavian]=Овај сервис омогућава да подесите подразумијевани емулатор терминала. Сви КДЕ програми који позивају терминал треба да поштују ову поставку.
Comment[sr@ijekavianlatin]=Ovaj servis omogućava da podesite podrazumijevani emulator terminala. Svi KDE programi koji pozivaju terminal treba da poštuju ovu postavku.
Comment[sr@latin]=Ovaj servis omogućava da podesite podrazumevani emulator terminala. Svi KDE programi koji pozivaju terminal treba da poštuju ovu postavku.
Comment[sv]=Den här tjänsten låter dig anpassa din förvalda terminalemulator. Alla KDE-program som startar ett terminalprogram ska använda den här inställningen
Comment[ta]= ி ி ி ி ிி. ி ி ி ி ி.
Comment[te]= ి ి ిి. ి ి ి KDE ిి.
Comment[tg]=Дар ин ҷо шумо метавонед тақлидгари терминали стандартиро танзим кунед. Ҳамаи барномаҳои KDE ҳангоми кушодани барномаи тақлидгари терминал ин танзимотро истифода мебаранд.
Comment[th]= KDE
Comment[tr]=Bu servis öntanımlı uçbirim uygulamasını seçmenize yardımcı olur.
Comment[ug]=بۇ مۇلازىمەت كۆڭۈلدىكى تېرمىنال تەقلىدلەشتۈرگۈچ پروگراممىڭىزنى سەپلىشىڭىزگە يول قويىدۇ. تېرمىنال تەقلىدلەشتۈرگۈچنى زىيارەت قىلماقچى بولغان ھەممە KDE پروگراممىسى بۇ تەڭشەككە بويسۇنىدۇ.
Comment[uk]=За допомогою цієї служби ви можете налаштувати ваш типовий емулятор термінала. Всі програми KDE, яким потрібен доступ до емулятора термінала будуть користуватися цими параметрами.
Comment[uz]=Bu xizmat andoza terminal emulyatoringizni moslash uchun imkoniyat yaratadi. Terminal emulyatori kerak boʻlgan hamma KDE dasturlari shu moslamadan foydalanishi kerak.
Comment[uz@cyrillic]=Бу хизмат андоза терминал эмуляторингизни мослаш учун имконият яратади. Терминал эмулятори керак бўлган ҳамма KDE дастурлари шу мосламадан фойдаланиши керак.
Comment[vi]=Dch v này cho phép bn cu hình trình mô phng thiết b cui mc đnh. Tt c các chương trình ca KDE cn m thiết b đu cui đu da vào thiết lp này.
Comment[wa]=Ci siervice vos permete d' apontyî vosse prémetou terminå. Tos les programes KDE ki dmandront on terminå duvrént shure cisse tchuze.
Comment[xh]=Lenkonzo ikuvumela ukuba ukwazi ukuqwalasela isiphelo esingagqibekanga sendlela yokulinganisa.Zonke izicelo ze KDE eziqalisa isicelo sesiphelo sendlela yokulinganisa kumele zisamkele esisicwangciso.
Comment[x-test]=xxThis service allows you to configure your default terminal emulator. All KDE applications which invoke a terminal emulator application should honor this setting.xx
Comment[zh_CN]=仿仿 KDE
Comment[zh_TW]= KDE
configurationType=internal_terminal

View file

@ -0,0 +1,155 @@
Icon=preferences-system-windows
# ctxt: standard desktop component
Name=Window Manager
Name[ar]=مدير النوافذ
Name[ast]=Xestor de ventanes
Name[bg]=Мениджър на прозорци
Name[bn]=
Name[bs]=menadžer prozora
Name[ca]=Gestor de finestres
Name[ca@valencia]=Gestor de finestres
Name[cs]=Správce oken
Name[csb]=Mendżer òknów
Name[da]=Vindueshåndtering
Name[de]=Fenstermanager
Name[el]=Διαχειριστής παραθύρων
Name[en_GB]=Window Manager
Name[eo]=Fenestra agordilo
Name[es]=Gestor de ventanas
Name[et]=Aknahaldur
Name[eu]=Leiho-kudeatzailea
Name[fa]=مدیر پنجره
Name[fi]=Ikkunointiohjelma
Name[fr]=Gestionnaire de fenêtres
Name[fy]=Finsterbehearder
Name[ga]=Bainisteoir Fuinneog
Name[gl]=Xestor de xanelas
Name[gu]=િ
Name[he]=מנהל חלונות
Name[hi]=ि
Name[hr]=Upravitelj prozorima
Name[hu]=Ablakkezelő
Name[ia]=Gerente de Fenestra
Name[id]=Manajer Jendela
Name[is]=Gluggastjóri
Name[it]=Gestore delle finestre
Name[ja]=
Name[kk]=Терезе менеджері
Name[km]=
Name[kn]=ಿ
Name[ko]=
Name[lt]=Langų tvarkyklė
Name[lv]=Logu pārvaldnieks
Name[mai]=ि
Name[mk]=Менаџер на прозорци
Name[ml]=
Name[mr]=
Name[nb]=Vindusbehandler
Name[nds]=Finsterpleger
Name[nl]=Windowmanager
Name[nn]=Vindaugshandsamar
Name[pa]=ਿ
Name[pl]=Zarządzanie oknami
Name[pt]=Gestor de Janelas
Name[pt_BR]=Gerenciador de janelas
Name[ro]=Gestionar de ferestre
Name[ru]=Диспетчер окон
Name[si]=
Name[sk]=Správca okien
Name[sl]=Upravljalnik oken
Name[sr]=менаџер прозора
Name[sr@ijekavian]=менаџер прозора
Name[sr@ijekavianlatin]=menadžer prozora
Name[sr@latin]=menadžer prozora
Name[sv]=Fönsterhanterare
Name[tg]=Мудири тирезаҳо
Name[th]=
Name[tr]=Pencere Yöneticisi
Name[ug]=كۆزنەك باشقۇرغۇ
Name[uk]=Керування вікнами
Name[vi]=Trình qun lý ca s
Name[wa]=Manaedjeu des finiesses
Name[x-test]=xxWindow Managerxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Here you can select the window manager to be run in your KDE session.
Comment[ar]=يمكنك هنا اختيار مدير النوافذ ليكون عاملا أثناء جلسة كدي.
Comment[ast]=Pues escoyer el xestor de ventanes qu'usará la sesión de KDE.
Comment[be@latin]=Tut možna vybrać akońnika, jaki ŭklučajecca pry ŭvachodzie ŭ KDE.
Comment[bg]=Тук можете да изберете мениджъра на прозорци, който да се стартира при нова сесия.
Comment[bn]= .ি.. - ি ি
Comment[bs]=Izaberite menadžer prozora za upotrebu u KDE sesijama.
Comment[ca]=Aquí podeu seleccionar el gestor de finestres que s'executarà en la sessió del KDE.
Comment[ca@valencia]=Ací podeu seleccionar el gestor de finestres que s'executarà en la sessió del KDE.
Comment[cs]=Zde si můžete zvolit správce oken pro své sezení KDE.
Comment[csb]=Tuwò mòżesz wëbrac menadżerã òknów jakô mô bëc zrëszonô w twòji sesëji KDE.
Comment[da]=Her kan du vælge, den vindueshåndtering der skal køre i din KDE-session.
Comment[de]=Hier können Sie den Fenstermanager wählen, der für Ihre KDE-Sitzung verwendet werden soll.
Comment[el]=Εδώ μπορείτε να επιλέξετε τον διαχειριστή παραθύρων που θα εκτελείται κατά την KDE συνεδρία σας.
Comment[en_GB]=Here you can select the window manager to be run in your KDE session.
Comment[eo]=Ĉi tie vi povas elekti la uzendan fenestran agordilon en via seanco de KDE.
Comment[es]=Puede seleccionar el gestor de ventanas que se usará en su sesión de KDE.
Comment[et]=Siin saab valida KDE seansis kasutatava aknahalduri.
Comment[eu]=KDE saioetan erabiltzea nahi duzun leiho-kudeatzailea hauta dezakezu hemen.
Comment[fa]=شما در اینجا میتوانید مدیر پنجره را انتخاب کنید تا در نشست کیدیای شما اجرا شود.
Comment[fi]=Tästä voit valita KDE-työpöydän käyttämän ikkunointiohjelman.
Comment[fr]=Vous pouvez choisir ici le gestionnaire de fenêtres que vous souhaitez utiliser dans votre session KDE.
Comment[fy]=Hjir kinne jo de finstersbehearder dy jo yn jo KDE-sesje brûke wolle selektearje.
Comment[ga]=Anseo is féidir leat an bainisteoir fuinneog a rithfear i do sheisiún KDE.
Comment[gl]=Aquí pode escoller o xestor de xanelas que desexe executar na sesión de KDE.
Comment[gu]= KDE િ .
Comment[he]=כאן ניתן לבחור את מנהל החלונות שיהיה בשימוש בהפעלת KDE שלך.
Comment[hi]= ि ि .
Comment[hne]= ि .
Comment[hr]=Ovdje možete odabrati upravitelj prozorima koji će se izvoditi u vašoj KDE sjednici
Comment[hsb]=Tule móžeće woknowy manager za swoje KDE-posedźenje wubrać.
Comment[hu]=Itt lehet kiválasztani, melyik ablakkezelőt használja a KDE.
Comment[ia]=Ci tu pote selectionar le gerente de fenestra que on debe usar se in tu session KDE.
Comment[id]=Di sini anda dapat memilih manajer jendela yang akan dijalankan di sesi KDE anda.
Comment[is]=Hér geturðu valið gluggastjóra til keyrslu í KDE setum.
Comment[it]=Qui puoi scegliere il gestore delle finestre da eseguire nella sessione di KDE.
Comment[ja]=KDE 使
Comment[kk]=Мұнда KDE сеансыңызда жегілетін терезе менеджерін таңдай аласыз.
Comment[km]= KDE  
Comment[kn]=ಿ ಿ ಿಿ ಿಿ ಿಿ ಿಿ.
Comment[ko]=KDE .
Comment[ku]=Li vir tu dikarî rêveberê pace yê hilbijêrî ku di nav danişîna KDE de bimeşînî.
Comment[lt]=Čia galite pasirinkti langų tvarkyklę, paleidžiamą jūsų KDE sesijoje.
Comment[lv]=Šeit varat izvēlēties logu pārvaldnieku jūsu KDE sesijai.
Comment[mai]= ि KDE ि.
Comment[mk]=Тука може да го изберете менаџерот на прозорци што ќе се користи од Вашата KDE-сесија.
Comment[ml]=ി ി ി ി ി -ി ി
Comment[mr]= ि ि .
Comment[nb]=Her kan du velge vindusbehandler som skal kjøres i KDE-økta.
Comment[nds]=Hier kannst Du den Finsterpleger utsöken, den Du för Dien KDE-Törns bruken wullt.
Comment[nl]=Hier kunt u de windowmanager die u in uw KDE-sessie wilt gebruiken selecteren.
Comment[nn]=Her kan du velja kva for vindaugshandsamar som skal brukast i KDE-økta di.
Comment[or]= KDE ି ି ି ିି
Comment[pa]= KDE ਿ ਿ
Comment[pl]=Tutaj można wybrać program do zarządzania oknami uruchamianymi w sesji KDE.
Comment[pt]=Aqui poderá seleccionar o gestor de janelas a executar na sua sessão do KDE.
Comment[pt_BR]=Aqui você pode selecionar o gerenciador de janelas a ser executado na sua sessão do KDE.
Comment[ro]=Aici puteți alege gestionarul de ferestre ce va rula în sesiunea KDE.
Comment[ru]=Здесь можно указать диспетчер окон, который будет использоваться в сеансах KDE.
Comment[si]= KDE .
Comment[sk]=Tu si môžete vybrať správcu okien, ktorý sa bude spúšťať vo vašom KDE sedení.
Comment[sl]=Tu lahko izberete upravljalnika oken, ki bo zagnan v vaši seji KDE.
Comment[sr]=Изаберите менаџер прозора за употребу у КДЕ сесијама.
Comment[sr@ijekavian]=Изаберите менаџер прозора за употребу у КДЕ сесијама.
Comment[sr@ijekavianlatin]=Izaberite menadžer prozora za upotrebu u KDE sesijama.
Comment[sr@latin]=Izaberite menadžer prozora za upotrebu u KDE sesijama.
Comment[sv]=Här kan du välja fönsterhanterare som ska köras i KDE-sessionen.
Comment[ta]=Here you can select the window manager to be run in your KDE session.
Comment[te]=ి ిి KDE ి .
Comment[tg]=Дар ин ҷо шумо метавонед Мудири тирезаҳоро барои иҷрошавӣ дар сессияҳои KDE интихоб кунед.
Comment[th]= KDE
Comment[tr]=Buradan KDE oturumunuzda çalıştırmak istediğiniz pencere yöneticisini seçebilirsiniz.
Comment[ug]=بۇ جايدا KDE ئەڭگىمەدە ئىجرا قىلماقچى بولغان كۆزنەك باشقۇرغۇچنى تاللىيالايسىز.
Comment[uk]=Тут ви можете обрати засіб керування вікнами, який буде запущено у вашому сеансі KDE.
Comment[vi]= đây bn có th chn các trình qun lý ca s đ chy trong phiên làm vic KDE ca bn.
Comment[wa]=Vos ploz tchoezi chal li manaedjeu des finiesses a enonder dins vosse session KDE.
Comment[x-test]=xxHere you can select the window manager to be run in your KDE session.xx
Comment[zh_CN]= KDE
Comment[zh_TW]= KDE
configurationType=internal_wm

View file

@ -0,0 +1,184 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EmailClientConfig_UI</class>
<widget class="QWidget" name="EmailClientConfig_UI">
<layout class="QVBoxLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="kmailCB">
<property name="whatsThis">
<string>Kmail is the standard Mail program for the KDE desktop.</string>
</property>
<property name="text">
<string>&amp;Use KMail as preferred email client</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="otherCB">
<property name="whatsThis">
<string>Select this option if you want to use any other mail program.</string>
</property>
<property name="text">
<string>Use a different &amp;email client:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KLineEdit" name="txtEMailClient">
<property name="enabled">
<bool>false</bool>
</property>
<property name="toolTip">
<string>&lt;ul&gt; &lt;li&gt;%t: Recipient's address&lt;/li&gt; &lt;li&gt;%s: Subject&lt;/li&gt; &lt;li&gt;%c: Carbon Copy (CC)&lt;/li&gt; &lt;li&gt;%b: Blind Carbon Copy (BCC)&lt;/li&gt; &lt;li&gt;%B: Template body text&lt;/li&gt; &lt;li&gt;%A: Attachment &lt;/li&gt; &lt;li&gt;%u: Full mailto: URL &lt;/li&gt;&lt;/ul&gt;</string>
</property>
<property name="whatsThis">
<string>Press this button to select your favorite email client. Please note that the file you select has to have the executable attribute set in order to be accepted.&lt;br/&gt; You can also use several placeholders which will be replaced with the actual values when the email client is called:&lt;ul&gt; &lt;li&gt;%t: Recipient's address&lt;/li&gt; &lt;li&gt;%s: Subject&lt;/li&gt; &lt;li&gt;%c: Carbon Copy (CC)&lt;/li&gt; &lt;li&gt;%b: Blind Carbon Copy (BCC)&lt;/li&gt; &lt;li&gt;%B: Template body text&lt;/li&gt; &lt;li&gt;%A: Attachment &lt;/li&gt; &lt;/ul&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnSelectEmail">
<property name="enabled">
<bool>false</bool>
</property>
<property name="whatsThis">
<string>Click here to browse for the mail program file.</string>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="chkRunTerminal">
<property name="enabled">
<bool>false</bool>
</property>
<property name="whatsThis">
<string>Activate this option if you want the selected email client to be executed in a terminal (e.g. &lt;em&gt;Konsole&lt;/em&gt;).</string>
</property>
<property name="text">
<string>&amp;Run in terminal</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header location="global">KDE/KLineEdit</header>
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>otherCB</sender>
<signal>toggled(bool)</signal>
<receiver>chkRunTerminal</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>otherCB</sender>
<signal>toggled(bool)</signal>
<receiver>txtEMailClient</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>otherCB</sender>
<signal>toggled(bool)</signal>
<receiver>btnSelectEmail</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FileManagerConfig_UI</class>
<widget class="QWidget" name="FileManagerConfig_UI">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Browse directories using the following file manager:</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="radioLayout"/>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<widget class="QRadioButton" name="radioExec">
<property name="text">
<string>Other: click Add... in the dialog shown here:</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="btnSelectFileManager">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>radioExec</sender>
<signal>toggled(bool)</signal>
<receiver>btnSelectFileManager</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -0,0 +1,65 @@
/***************************************************************************
kcm_componentchooser.cpp - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundation *
* *
***************************************************************************/
#include "kcm_componentchooser.h"
//Added by qt3to4:
#include <QVBoxLayout>
#include <klocale.h>
#include <kaboutdata.h>
#include <kglobal.h>
#include <kcomponentdata.h>
#include <KPluginFactory>
#include "kcm_componentchooser.moc"
K_PLUGIN_FACTORY(KCMComponentChooserFactory,
registerPlugin<KCMComponentChooser>();
)
K_EXPORT_PLUGIN(KCMComponentChooserFactory("kcmcomponentchooser"))
KCMComponentChooser::KCMComponentChooser(QWidget *parent, const QVariantList &):
KCModule(KCMComponentChooserFactory::componentData(), parent) {
QVBoxLayout *lay = new QVBoxLayout(this);
lay->setMargin(0);
m_chooser=new ComponentChooser(this);
lay->addWidget(m_chooser);
connect(m_chooser,SIGNAL(changed(bool)),this,SIGNAL(changed(bool)));
setButtons( Default|Apply|Help );
KAboutData *about =
new KAboutData(I18N_NOOP("kcmcomponentchooser"), 0, ki18n("Component Chooser"),
0, KLocalizedString(), KAboutData::License_GPL,
ki18n("(c), 2002 Joseph Wenninger"));
about->addAuthor(ki18n("Joseph Wenninger"), KLocalizedString() , "jowenn@kde.org");
setAboutData( about );
}
void KCMComponentChooser::load(){
m_chooser->load();
}
void KCMComponentChooser::save(){
m_chooser->save();
}
void KCMComponentChooser::defaults(){
m_chooser->restoreDefault();
}

View file

@ -0,0 +1,38 @@
/***************************************************************************
kcm_componentchooser.h - description
-------------------
copyright : (C) 2002 by Joseph Wenninger
email : jowenn@kde.org
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License version 2 as *
* published by the Free Software Foundation *
* *
***************************************************************************/
#ifndef KCM_COMPONENTCHOOSER_H
#define KCM_COMPONENTCHOOSER_H
#include <kcmodule.h>
#include "componentchooser.h"
class KCMComponentChooser : public KCModule
{
Q_OBJECT
public:
KCMComponentChooser(QWidget *parent, const QVariantList &args);
void load();
void save();
void defaults();
private:
ComponentChooser *m_chooser;
};
#endif // KCM_COMPONENTCHOOSER_H

View file

@ -0,0 +1,171 @@
/*
* This file is part of the KDE Libraries
* Copyright (C) 2002 Hamish Rodda <rodda@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
*/
#include "ktimerdialog.h"
#include <QLabel>
#include <QTimer>
#include <QProgressBar>
#include <kwindowsystem.h>
#include <kiconloader.h>
#include <klocale.h>
#include <kdebug.h>
#include <kvbox.h>
#include "ktimerdialog.moc"
KTimerDialog::KTimerDialog( int msec, TimerStyle style, QWidget *parent,
const QString &caption,
int buttonMask, ButtonCode defaultButton,
bool separator,
const KGuiItem &user1,
const KGuiItem &user2,
const KGuiItem &user3 )
: KDialog( parent )
{
setCaption( caption );
setButtons( (ButtonCodes)buttonMask );
setDefaultButton( defaultButton );
setButtonFocus( defaultButton ); // setDefaultButton() doesn't do this
showButtonSeparator( separator );
setButtonGuiItem( User1, user1 );
setButtonGuiItem( User2, user2 );
setButtonGuiItem( User3, user3 );
totalTimer = new QTimer( this );
totalTimer->setSingleShot( true );
updateTimer = new QTimer( this );
updateTimer->setSingleShot( false );
msecTotal = msecRemaining = msec;
updateInterval = 1000;
tStyle = style;
KWindowSystem::setIcons( winId(), DesktopIcon("randr"), SmallIcon("randr") );
// default to canceling the dialog on timeout
if ( buttonMask & Cancel )
buttonOnTimeout = Cancel;
connect( totalTimer, SIGNAL( timeout() ), SLOT( slotInternalTimeout() ) );
connect( updateTimer, SIGNAL( timeout() ), SLOT( slotUpdateTime() ) );
// create the widgets
mainWidget = new KVBox( this );
timerWidget = new KHBox( mainWidget );
timerWidget->setSpacing(KDialog::spacingHint());
timerLabel = new QLabel( timerWidget );
timerProgress = new QProgressBar( timerWidget );
timerProgress->setRange( 0, msecTotal );
timerProgress->setTextVisible( false );
KDialog::setMainWidget( mainWidget );
slotUpdateTime( false );
}
KTimerDialog::~KTimerDialog()
{
}
void KTimerDialog::setVisible( bool visible )
{
KDialog::setVisible( visible );
if ( visible ) {
totalTimer->start( msecTotal );
updateTimer->start( updateInterval );
}
}
int KTimerDialog::exec()
{
totalTimer->start( msecTotal );
updateTimer->start( updateInterval );
return KDialog::exec();
}
void KTimerDialog::setMainWidget( QWidget *widget )
{
// yuck, here goes.
KVBox *newWidget = new KVBox( this );
if ( widget->parentWidget() != mainWidget ) {
widget->setParent( newWidget);
}
timerWidget->setParent( newWidget);
delete mainWidget;
mainWidget = newWidget;
KDialog::setMainWidget( mainWidget );
}
void KTimerDialog::setRefreshInterval( int msec )
{
updateInterval = msec;
if ( updateTimer->isActive() )
updateTimer->start( updateInterval );
}
int KTimerDialog::timeoutButton() const
{
return buttonOnTimeout;
}
void KTimerDialog::setTimeoutButton( const ButtonCode newButton )
{
buttonOnTimeout = newButton;
}
int KTimerDialog::timerStyle() const
{
return tStyle;
}
void KTimerDialog::setTimerStyle( const TimerStyle newStyle )
{
tStyle = newStyle;
}
void KTimerDialog::slotUpdateTime( bool update )
{
if ( update )
switch ( tStyle ) {
case CountDown:
msecRemaining -= updateInterval;
break;
case CountUp:
msecRemaining += updateInterval;
break;
case Manual:
break;
}
timerProgress->setValue( msecRemaining );
timerLabel->setText( i18np("1 second remaining:","%1 seconds remaining:",msecRemaining/1000) );
}
void KTimerDialog::slotInternalTimeout()
{
emit timerTimeout();
slotButtonClicked( buttonOnTimeout );
}

View file

@ -0,0 +1,172 @@
/*
* This file is part of the KDE Libraries
* Copyright (C) 2002 Hamish Rodda <rodda@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*
*/
#ifndef _KTIMERDIALOG_H_
#define _KTIMERDIALOG_H_
#include <QLabel>
#include <kdialog.h>
#include <kvbox.h>
class QTimer;
class KHBox;
class QProgressBar;
class QLabel;
/**
* Provides a dialog that is only available for a specified amount
* of time, and reports the time remaining to the user.
*
* The timer is capable of counting up or down, for any number of milliseconds.
*
* The button which is activated upon timeout can be specified, as can the
* update interval for the dialog box.
*
* In addition, this class retains all of the functionality of @see KDialog.
*
* @short A dialog with a time limit and corresponding UI features.
* @author Hamish Rodda <rodda@kde.org>
*/
class KTimerDialog : public KDialog
{
Q_OBJECT
public:
/**
* @li @p CountDown - The timer counts downwards from the seconds given.
* @li @p CountUp - The timer counts up to the number of seconds given.
* @li @p Manual - The timer is not invoked; the caller must update the
* progress.
*/
enum TimerStyle
{
CountDown,
CountUp,
Manual
};
/**
* Constructor for the standard mode where you must specify the main
* widget with @ref setMainWidget() . See @see KDialog for further details.
*
* For the rest of the arguments, See @see KDialog .
*/
explicit KTimerDialog( int msec, TimerStyle style=CountDown, QWidget *parent=0,
const QString &caption=QString(),
int buttonMask=Ok|Apply|Cancel, ButtonCode defaultButton=Ok,
bool separator=false,
const KGuiItem &user1=KGuiItem(),
const KGuiItem &user2=KGuiItem(),
const KGuiItem &user3=KGuiItem() );
/**
* Destructor.
*/
~KTimerDialog();
/**
* Execute the dialog modelessly - see @see QDialog .
*/
virtual void setVisible( bool visible );
/**
* Set the refresh interval for the timer progress. Defaults to one second.
*/
void setRefreshInterval( int msec );
/**
* Retrieves the @ref ButtonCode which will be activated once the timer
* times out. @see setTimeoutButton
*/
int timeoutButton() const;
/**
* Sets the @ref ButtonCode to determine which button will be activated
* once the timer times out. @see timeoutButton
*/
void setTimeoutButton( ButtonCode newButton );
/**
* Retrieves the current @ref TimerStyle. @see setTimerStyle
*/
int timerStyle() const;
/**
* Sets the @ref TimerStyle. @see timerStyle
*/
void setTimerStyle( TimerStyle newStyle );
/**
* Overridden function which is used to set the main widget of the dialog.
* @see KDialog::setMainWidget.
*/
void setMainWidget( QWidget *widget );
Q_SIGNALS:
/**
* Signal which is emitted once the timer has timed out.
*/
void timerTimeout();
public Q_SLOTS:
/**
* Execute the dialog modally - see @see QDialog .
*/
int exec();
private Q_SLOTS:
/**
* Updates the dialog with the current progress levels.
*/
void slotUpdateTime( bool update = true );
/**
* The internal
*/
void slotInternalTimeout();
private:
/**
* Prepares the layout that manages the widgets of the dialog
*/
void setupLayout();
QTimer *totalTimer;
QTimer *updateTimer;
int msecRemaining, updateInterval, msecTotal;
ButtonCode buttonOnTimeout;
TimerStyle tStyle;
KHBox *timerWidget;
QProgressBar *timerProgress;
QLabel *timerLabel;
KVBox *mainWidget;
class KTimerDialogPrivate;
KTimerDialogPrivate *d;
};
#endif

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TerminalEmulatorConfig_UI</class>
<widget class="QWidget" name="TerminalEmulatorConfig_UI">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="terminalCB">
<property name="text">
<string>&amp;Use Konsole as terminal application</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="otherCB">
<property name="text">
<string>Use a different &amp;terminal program:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KLineEdit" name="terminalLE">
<property name="enabled">
<bool>false</bool>
</property>
<property name="whatsThis">
<string>Press this button to select your favorite terminal client. Please note that the file you select has to have the executable attribute set in order to be accepted.&lt;br/&gt; Also note that some programs that utilize Terminal Emulator will not work if you add command line arguments (Example: konsole -ls).</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnSelectTerminal">
<property name="enabled">
<bool>false</bool>
</property>
<property name="whatsThis">
<string>Click here to browse for terminal program.</string>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header location="global">KDE/KLineEdit</header>
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>otherCB</sender>
<signal>toggled(bool)</signal>
<receiver>terminalLE</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
<connection>
<sender>otherCB</sender>
<signal>toggled(bool)</signal>
<receiver>btnSelectTerminal</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>20</y>
</hint>
<hint type="destinationlabel">
<x>20</x>
<y>20</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -0,0 +1,5 @@
########### install files ###############
file(GLOB desktop_file "*.desktop")
install( FILES ${desktop_file}
DESTINATION ${DATA_INSTALL_DIR}/ksmserver/windowmanagers )

View file

@ -0,0 +1,33 @@
The list of window managers that the config module offers for using.
The format is normal .desktop files:
Name - required, name to display in the configuration dialog.
Exec - required, the command to execute to launch the window manager.
If launching fails for any reason, it must quit with non-zero exit
value and not do anything else (show an error dialog, try to run
a fallback, etc.).
TryExec - optional.
X-KDE-WindowManagerTestExec - optional, a command that will be run and if
the exit code is not 0, the window manager won't be used (can be used
e.g. to detect that a window manager which requires compositing support
cannot be run on systems without such support).
X-KDE-WindowManagerId - optional, the name under which the window manager
registers with the session manager (if different from the name
of the .desktop file)
X-KDE-WindowManagerConfigure - optional, the command to run to configure
the window manager
X-KDE-WindowManagerRestartArgument - optional, the argument to pass
to the window manager to restart it directly in the running KDE
session; if not present, KDE restart is required (which is generally
a good idea anyway, but this can be useful for e.g. checking)
X-KDE-WindowManagerConfigureParentArgument - option, if present, this
argument and the X window id of the configuration dialog will be passed
to the configuration command (e.g. '--parent 13254543'). The configuration
tool may specify this window as the parent of its window.

View file

@ -0,0 +1,81 @@
[Desktop Entry]
Name=Compiz custom (create wrapper script 'compiz-kde-launcher' to launch it)
Name[ar]=كومبز مخصص (أنشأ نص غلاف 'مشغل-كومبز-كدي' لتشغيله)
Name[ast]=Compiz personalizáu (crea un script «compiz-kde-launcher» pa executalu)
Name[be@latin]=Ułasny Compiz (stvary skrypt compiz-kde-launcher)
Name[bg]=Потребителски compiz (създайте скрипт 'compiz-kde-launcher' за зареждането му)
Name[bs]=Posebni Kompiz (napravite omotačku skriptu compiz-kde-launcher za pokretanje)
Name[ca]=Compiz personalitzat (crea un script embolcall «compiz-kde-launcher» per a engegar-lo)
Name[ca@valencia]=Compiz personalitzat (crea un script embolcall «compiz-kde-launcher» per a engegar-lo)
Name[cs]=Uživatelsky upravený Compiz (pro jeho spouštění vytvořte skript 'compiz-kde-launcher' )
Name[csb]=Dopasownié Compiza (ùsôdzô skript 'compiz-kde-launcher' do zrëszëniô)
Name[da]=Brugerdefineret Compiz (opret wrapper-scriptet 'compiz-kde-launcher' for at starte den)
Name[de]=Compiz benutzerdefiniert (erstellen Sie ein Aufrufskript namens compiz-kde-launcher, um es zu starten)
Name[el]=Προσαρμοσμένο Compiz (δημιουργία σεναρίου 'compiz-kde-launcher' για την εκκίνησή του)
Name[en_GB]=Compiz custom (create wrapper script 'compiz-kde-launcher' to launch it)
Name[eo]=Propra Compiz (kreu skriptaĵon 'compiz-kde-launcher' por ruli ĝin)
Name[es]=Compiz personalizado (crea un script «compiz-kde-launcher» para ejecutarlo)
Name[et]=Kohandatud Compiz (käivitamiseks loo kohandav skript 'compiz-kde-launcher')
Name[eu]=Compiz pertsonalizatua (sortu 'compiz-kde-launcher' scripta, hura abiarazteko)
Name[fa]=کامپیز سفارشی (create wrapper script 'compiz-kde-launcher' to launch it)
Name[fi]=Räätälöity Compiz (luo käärinskripti 'compiz-kde-launcher' sen käynnistämiseksi)
Name[fr]=Compiz personnalisé (utilisez un script d'enrobage « compiz-kde-launcher » pour le lancer)
Name[fy]=Compiz oanpast (wrapper script 'compiz-kde-launcher' oanmeitsje om it út te fieren)
Name[ga]=Compiz saincheaptha (cruthaigh raparscript 'compiz-kde-launcher' chun é a thosú)
Name[gl]=Compiz personalizado (crea un script «compiz-kde-launcher» para executalo)
Name[gu]= િ ( 'compiz-kde-launcher' િ )
Name[he]=Compiz מותאם אישית (יש ליצור תסריט מעטפת בשם 'compiz-kde-launcher' כדי להפעיל אותו)
Name[hi]=ि ि ( ि 'compiz-kde-launcher' ि )
Name[hne]=ि ( ि 'compiz-kde-launcher' )
Name[hr]=Compiz prilagođeno (napravite skriptu-ovojnicu 'compiz-kde-launcher' za pokretanje=
Name[hsb]=Compizowe wašnje (napišće wobalkowy skript 'compiz-kde-launcher' za wuwjedźenje)
Name[hu]=Egyedi Compiz (indításához egy compiz-kde-launcher nevű szkript szükséges)
Name[ia]=Adaptation de Compiz (Il crea un script de wrapper 'compiz-kde-launcher' pro lancear lo)
Name[id]=Compiz suai (buat pembungkus skrip 'compiz-kde-launcher' untuk menjankannya)
Name[is]=Compiz sérsniðið (búa til wrapper skrituna 'compiz-kde-launcher' til að ræsa það)
Name[it]=Compiz personalizzato (per avviarlo crea uno script «compiz-kde-launcher» che prepara l'ambiente)
Name[ja]=Compiz ( compiz-kde-launcher )
Name[kk]=Өзгеше Compiz (оны жегу үшін 'compiz-kde-launcher' деген скриптті құрыңыз)
Name[km]=Compiz ( 'compiz-kde-launcher' )
Name[kn]= ಿ ( ಿ () ಿಿ ( ಿ) 'compiz-kde-launcher' ಿ )
Name[ko]= ('compiz-kde-launcher' )
Name[ku]=Compiz a bijare (scrîpta 'compiz-kde-launcher' çê bike ku vê bidî destpê kirin)
Name[lt]=Compiz pasirinktas (sukurti scenarijų-dėklą 'compiz-kde-launcher' norėdami jį paleisti)
Name[lv]=Pielāgots Compiz (lai to palaistu, izveidojiet palaišanas skriptu 'compiz-kde-launcher')
Name[mai]=ि ि ( ि 'compiz-kde-launcher' )
Name[mk]=Сопствен Compiz (креирајте скрипта compiz-kde-launcher за да ја стартувате)
Name[ml]=ി ( ിി 'compiz-kde-launcher' ി ിി)
Name[mr]=ि ( ि 'compiz-kde-launcher' ि ि )
Name[nb]=Compiz selvvalgt (lag omsluttende skript «compiz-kde-launcher» for å starte det)
Name[nds]=Egen Compiz (För't Opropen deit en Skript "compiz-kde-launcher" noot)
Name[nl]=Compiz custom (maak het script 'compiz-kde-launcher' aan om het te starten)
Name[nn]=Compiz sjølvvald (lag skriptet «compiz-kde-launcher» for å starta det)
Name[pl]=Compiz custom (utwórz skrypt "compiz-kde-launcher", aby go uruchomić)
Name[pt]=Personalizado do Compiz (criar um programa de interface 'compiz-kde-launcher' para o invocar)
Name[pt_BR]=Compiz personalizado (criar um script 'compiz-kde-launcher' para iniciá-lo)
Name[ro]=Compiz particularizat (creare script compiz-kde-launcher pentru a-l lansa)
Name[ru]=Адаптированный Compiz (для запуска используйте скрипт «compiz-kde-launcher»)
Name[si]=Compiz ( 'compiz-kde-launcher' )
Name[sk]=Compiz custom (pre jeho spustenie vytvorte wrapper skript 'compiz-kde-launcher')
Name[sl]=Compiz po meri (za zagon ustvarite ovijalni skript »compiz-kde-launcher«)
Name[sr]=Посебни Компиз (направите омотачку скрипту compiz-kde-launcher за покретање)
Name[sr@ijekavian]=Посебни Компиз (направите омотачку скрипту compiz-kde-launcher за покретање)
Name[sr@ijekavianlatin]=Posebni Compiz (napravite omotačku skriptu compiz-kde-launcher za pokretanje)
Name[sr@latin]=Posebni Compiz (napravite omotačku skriptu compiz-kde-launcher za pokretanje)
Name[sv]=Egen Compiz (skapa omgivande skript 'compiz-kde-launcher' för att starta den)
Name[ta]=Compiz custom (create wrapper script 'compiz-kde-launcher' to launch it)
Name[te]=Compiz custom (ిి ి ి 'compiz-kde-launcher' ి)
Name[tg]=Танзимоти Compiz (скрипти печондани 'compiz-kde-launcher'-ро барои оғозкунӣ эҷод кунед)
Name[th]=Compiz ( 'compiz-kde-launcher' )
Name[tr]=Compiz özel (çalıştırmak için sarıcı betik 'compiz-kde-launcher' oluştur)
Name[ug]=Compiz ئۆزلەشتۈر ('compiz-kde-launcher' نى ئېچىش ئۈچۈن بوغچىلانغان قوليازما قۇرىدۇ)
Name[uk]=Нетиповий Compiz (створити скрипт-обгортку «compiz-kde-launcher» для його запуску)
Name[vi]=Compiz tùy biến (to mt lnh gói 'compiz-kde-launcher' đ chy nó)
Name[wa]=Compiz a vosse môde (ahivez on scripe wrapper « compiz-kde-launcher » po l' enonder)
Name[x-test]=xxCompiz custom (create wrapper script 'compiz-kde-launcher' to launch it)xx
Name[zh_CN]=Compiz (compiz-kde-launcher)
Name[zh_TW]=Compiz 稿 compiz-kde-launcher
Exec=compiz-kde-launcher
TryExec=compiz
X-KDE-WindowManagerId=compiz
X-KDE-WindowManagerRestartArgument=--replace

View file

@ -0,0 +1,88 @@
[Desktop Entry]
Name=Compiz
Name[ar]=كومبز
Name[as]=Compiz
Name[ast]=Compiz
Name[be@latin]=Compiz
Name[bg]=Compiz
Name[bn]=ি
Name[bn_IN]=Compiz
Name[bs]=Compiz
Name[ca]=Compiz
Name[ca@valencia]=Compiz
Name[cs]=Compiz
Name[csb]=Compiz
Name[da]=Compiz
Name[de]=Compiz
Name[el]=Compiz
Name[en_GB]=Compiz
Name[eo]=Compiz
Name[es]=Compiz
Name[et]=Compiz
Name[eu]=Compiz
Name[fa]=کامپیز
Name[fi]=Compiz
Name[fr]=Compiz
Name[fy]=Compiz
Name[ga]=Compiz
Name[gl]=Compiz
Name[gu]=િ
Name[he]=Compiz
Name[hi]=ि
Name[hne]=ि
Name[hr]=Compiz
Name[hsb]=Compiz
Name[hu]=Compiz
Name[ia]=Compiz
Name[id]=Compiz
Name[is]=Compiz
Name[it]=Compiz
Name[ja]=Compiz
Name[ka]=Compiz
Name[kk]=Compiz
Name[km]=Compiz
Name[kn]=ಿ
Name[ko]=
Name[ku]=Compiz
Name[lt]=Compiz
Name[lv]=Compiz
Name[mai]=Compiz
Name[mk]=Compiz
Name[ml]=ി
Name[mr]=
Name[nb]=Compiz
Name[nds]=Compiz
Name[nl]=Compiz
Name[nn]=Compiz
Name[oc]=Compiz
Name[or]=Compiz
Name[pa]=ਿ
Name[pl]=Compiz
Name[pt]=Compiz
Name[pt_BR]=Compiz
Name[ro]=Compiz
Name[ru]=Compiz
Name[si]=Compiz
Name[sk]=Compiz
Name[sl]=Compiz
Name[sr]=Компиз
Name[sr@ijekavian]=Компиз
Name[sr@ijekavianlatin]=Compiz
Name[sr@latin]=Compiz
Name[sv]=Compiz
Name[ta]=Compiz
Name[te]=Compiz
Name[tg]=Compiz
Name[th]=Compiz
Name[tr]=Compiz
Name[ug]=Compiz
Name[uk]=Compiz
Name[vi]=Compiz
Name[wa]=Compiz
Name[x-test]=xxCompizxx
Name[zh_CN]=Compiz
Name[zh_TW]=Compiz
Exec=compiz ccp
TryExec=compiz
X-KDE-WindowManagerConfigure=simple-ccsm
X-KDE-WindowManagerRestartArgument=--replace

View file

@ -0,0 +1,89 @@
[Desktop Entry]
Name=Metacity (GNOME)
Name[af]=Metacity (GNOME)
Name[ar]=مِتسِتي (جنوم)
Name[as]=Metacity (GNOME)
Name[ast]=Metacity (GNOME)
Name[be@latin]=Metacity (GNOME)
Name[bg]=Metacity (GNOME)
Name[bn]=িি ()
Name[bn_IN]=Metacity (GNOME)
Name[bs]=Metacity (GNOME)
Name[ca]=Metacity (GNOME)
Name[ca@valencia]=Metacity (GNOME)
Name[cs]=Metacity (Gnome)
Name[csb]=Metacity (GNOME)
Name[da]=Metacity (GNOME)
Name[de]=Metacity (GNOME)
Name[el]=Metacity (GNOME)
Name[en_GB]=Metacity (GNOME)
Name[eo]=Metacity (GNOME)
Name[es]=Metacity (GNOME)
Name[et]=Metacity (GNOME)
Name[eu]=Metacity (GNOME)
Name[fa]=متاسیتی (گنوم)
Name[fi]=Metacity (Gnome)
Name[fr]=Metacity (GNOME)
Name[fy]=Metacity (GNOME)
Name[ga]=Metacity (GNOME)
Name[gl]=Metacity (GNOME)
Name[gu]=િ (GNOME)
Name[he]=Metacity (GNOME)
Name[hi]=ि ()
Name[hne]=ि ()
Name[hr]=Metacity (GNOME)
Name[hsb]=Metacity (GNOME)
Name[hu]=Metacity (GNOME)
Name[ia]=Metacity(GNOME)
Name[id]=Metacity (GNOME)
Name[is]=Metacity (GNOME)
Name[it]=Metacity (GNOME)
Name[ja]=Metacity (GNOME)
Name[kk]=Metacity (GNOME)
Name[km]=Metacity (GNOME)
Name[kn]=ಿಿ ()
Name[ko]=Metacity ()
Name[ku]=Metacity (GNOME)
Name[lt]=Metacity (GNOME)
Name[lv]=Metacity (GNOME)
Name[mai]=Metacity (GNOME)
Name[mk]=Metacity (GNOME)
Name[ml]=ിി ()
Name[mr]=ि (GNOME)
Name[nb]=Metacity (GNOME)
Name[nds]=Metacity (GNOME)
Name[nl]=Metacity (GNOME)
Name[nn]=Metacity (GNOME)
Name[or]=Metacity (GNOME)
Name[pa]=ਿ ()
Name[pl]=Metacity (GNOME)
Name[pt]=Metacity (GNOME)
Name[pt_BR]=Metacity (GNOME)
Name[ro]=Metacity (GNOME)
Name[ru]=Metacity (GNOME)
Name[se]=Metacity (GNOME)
Name[si]=Metacity (GNOME)
Name[sk]=Metacity (GNOME)
Name[sl]=Metacity (GNOME)
Name[sr]=Метасити (Гном)
Name[sr@ijekavian]=Метасити (Гном)
Name[sr@ijekavianlatin]=Metacity (Gnome)
Name[sr@latin]=Metacity (Gnome)
Name[sv]=Metacity (GNOME)
Name[ta]=ிி ()
Name[te]=ిి (GNOME)
Name[tg]=Metacity (GNOME)
Name[th]=Metacity (GNOME)
Name[tr]=Metacity (GNOME)
Name[ug]=Metacity (GNOME)
Name[uk]=Metacity (GNOME)
Name[uz]=Metacity (GNOME)
Name[uz@cyrillic]=Metacity (GNOME)
Name[vi]=Metacity (GNOME)
Name[wa]=Metacity (GNOME)
Name[x-test]=xxMetacity (GNOME)xx
Name[zh_CN]=Metacity(GNOME)
Name[zh_TW]=MetacityGNOME
Exec=metacity
TryExec=metacity
X-KDE-WindowManagerRestartArgument=--replace

View file

@ -0,0 +1,95 @@
[Desktop Entry]
Name=Openbox
Name[af]=Openbox
Name[ar]=Openbox
Name[as]=Openbox
Name[ast]=Openbox
Name[be]=Openbox
Name[be@latin]=Openbox
Name[bg]=Openbox
Name[bn]=
Name[bn_IN]=Openbox
Name[br]=Openbox
Name[bs]=Openbox
Name[ca]=Openbox
Name[ca@valencia]=Openbox
Name[cs]=Openbox
Name[csb]=Openbox
Name[cy]=Blwchagored (Openbox)
Name[da]=Openbox
Name[de]=Openbox
Name[el]=Openbox
Name[en_GB]=Openbox
Name[eo]=Openbox
Name[es]=Openbox
Name[et]=Openbox
Name[eu]=Openbox
Name[fa]=اپنباکس
Name[fi]=Openbox
Name[fr]=Openbox
Name[fy]=Openbox
Name[ga]=Openbox
Name[gl]=Openbox
Name[gu]=
Name[he]=Openbox
Name[hi]=
Name[hne]=
Name[hr]=Openbox
Name[hsb]=Openbox
Name[hu]=Openbox
Name[ia]=Openbox
Name[id]=Openbox
Name[is]=Openbox
Name[it]=Openbox
Name[ja]=Openbox
Name[ka]=Openbox
Name[kk]=Openbox
Name[km]=
Name[kn]=
Name[ko]=Openbox
Name[ku]=Openbox
Name[lt]=Openbox
Name[lv]=Openbox
Name[mai]=
Name[mk]=Openbox
Name[ml]=
Name[mr]=
Name[ms]=Openbox
Name[nb]=Openbox
Name[nds]=Openbox
Name[ne]=
Name[nl]=Openbox
Name[nn]=Openbox
Name[or]=Openbox
Name[pa]=-
Name[pl]=Openbox
Name[pt]=Openbox
Name[pt_BR]=Openbox
Name[ro]=Openbox
Name[ru]=Openbox
Name[se]=Openbox
Name[si]=Openbox
Name[sk]=Openbox
Name[sl]=Openbox
Name[sr]=Опенбокс
Name[sr@ijekavian]=Опенбокс
Name[sr@ijekavianlatin]=Openbox
Name[sr@latin]=Openbox
Name[sv]=Openbox
Name[ta]=ி ி
Name[te]=
Name[tg]=Openbox
Name[th]=Openbox
Name[tr]=Openbox
Name[ug]=Openbox
Name[uk]=Openbox
Name[uz]=Openbox
Name[uz@cyrillic]=Openbox
Name[vi]=Openbox
Name[wa]=Openbox
Name[x-test]=xxOpenboxxx
Name[zh_CN]=Openbox
Name[zh_TW]=Openbox
Exec=openbox
TryExec=openbox
X-KDE-WindowManagerRestartArgument=--replace

View file

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>WmConfig_UI</class>
<widget class="QWidget" name="WmConfig_UI">
<layout class="QVBoxLayout" name="verticalLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<widget class="QRadioButton" name="kwinRB">
<property name="text">
<string>&amp;Use the default KDE window manager (KWin)</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="differentRB">
<property name="text">
<string>Use a different &amp;window manager:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="KComboBox" name="wmCombo">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="configureButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Note: Most window managers have their own configuration and do not follow KDE settings.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KComboBox</class>
<extends>QComboBox</extends>
<header location="global">KDE/KComboBox</header>
</customwidget>
<customwidget>
<class>KPushButton</class>
<extends>QPushButton</extends>
<header location="global">KDE/KPushButton</header>
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>differentRB</sender>
<signal>toggled(bool)</signal>
<receiver>wmCombo</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>20</x>
<y>42</y>
</hint>
<hint type="destinationlabel">
<x>47</x>
<y>72</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View file

@ -0,0 +1,21 @@
########### next target ###############
set(kcm_kdnssd_PART_SRCS kcmdnssd.cpp kcmdnssd.h )
kde4_add_ui_files(kcm_kdnssd_PART_SRCS configdialog.ui )
kde4_add_plugin(kcm_kdnssd ${kcm_kdnssd_PART_SRCS})
target_link_libraries(kcm_kdnssd ${KDE4_KDNSSD_LIBS} ${KDE4_KDEUI_LIBS} )
install(TARGETS kcm_kdnssd DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES kcm_kdnssd.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -0,0 +1,3 @@
#! /usr/bin/env bash
$EXTRACTRC *.ui >> rc.cpp
$XGETTEXT *.cpp *.h -o $podir/kcmkdnssd.pot

View file

@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ConfigDialog</class>
<widget class="QWidget" name="ConfigDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>571</width>
<height>486</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Additional Domains</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="KEditListWidget" name="kcfg_DomainList">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="whatsThis">
<string>List of Internet domains that will be browsed for services in addition to default domain (typically local network). </string>
</property>
<property name="title" stdset="0">
<string>Additional Domains</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KEditListWidget</class>
<extends>QWidget</extends>
<header>keditlistwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,193 @@
[Desktop Entry]
Exec=kcmshell4 kcm_kdnssd
Icon=preferences-system-network-discovery
Name=Service Discovery
Name[af]=Dienste ontdekker
Name[ar]=استكشاف الخدمة
Name[ast]=Guetador de servicios
Name[be]=Пошук сервісаў
Name[be@latin]=Pošuk słužbaŭ
Name[bg]=Откриване на услуги
Name[bn]=ি
Name[bn_IN]=ি িি
Name[bs]=Otkrivanje servisa
Name[ca]=Descobriment de serveis
Name[ca@valencia]=Descobriment de serveis
Name[cs]=Hledání služeb
Name[csb]=Wëkrëwanié ùsłëżnotów
Name[da]=Opdagelse af tjenester
Name[de]=Diensteerkennung
Name[el]=Εύρεση υπηρεσιών
Name[en_GB]=Service Discovery
Name[eo]=Malkovrado de servo
Name[es]=Buscador de servicios
Name[et]=Teenuste tuvastamine
Name[eu]=Zerbitzu-aurkikuntza
Name[fa]=کشف خدمت
Name[fi]=Palvelun havaitseminen
Name[fr]=Découverte de services
Name[fy]=Tsjinst warskôging
Name[ga]=Fionnachtain Seirbhísí
Name[gl]=Descubrimento de servizos
Name[gu]=
Name[he]=גילוי שירותים
Name[hi]= ि
Name[hne]= ि
Name[hr]=Usluga Discovery
Name[hsb]=Pytanje słužbow
Name[hu]=Zeroconf-beállítások
Name[ia]=Discoperta de Servicio
Name[id]=Penemuan Layanan
Name[is]=Uppgötvun þjónustu
Name[it]=Rilevamento dei servizi
Name[ja]=
Name[ka]=
Name[kk]=Қызметтерді байқау
Name[km]=
Name[kn]= ಿ ( ಿಿ)
Name[ko]=
Name[ku]=Naskirina Servîsê
Name[lt]=Tarnybų radimas
Name[lv]=Servisu atklāšana
Name[mai]= ि
Name[mk]=Откривање сервиси
Name[ml]=
Name[mr]=
Name[ms]=Penemuan Servis
Name[nb]=Oppdaging av tjenester
Name[nds]=Deensten finnen
Name[ne]=
Name[nl]=Dienstwaarneming
Name[nn]=Oppdaging av tenester
Name[or]=ି ି
Name[pa]=ਿ
Name[pl]=Wykrywanie usług
Name[pt]=Descoberta de Serviços
Name[pt_BR]=Descoberta de serviços
Name[ro]=Descoperire servicii
Name[ru]=Обнаружение служб
Name[se]=Bálvalusáican
Name[si]=
Name[sk]=Zisťovanie služieb
Name[sl]=Odkrivanje storitev
Name[sr]=Откривање сервиса
Name[sr@ijekavian]=Откривање сервиса
Name[sr@ijekavianlatin]=Otkrivanje servisa
Name[sr@latin]=Otkrivanje servisa
Name[sv]=Tjänstupptäckt
Name[ta]= ிி
Name[te]=
Name[tg]=Дарёфтани хизматҳо
Name[th]=
Name[tr]=Servis Araştırması
Name[ug]=مۇلازىمەت بايقاش
Name[uk]=Пошук служб
Name[uz]=Tarmoqdagi xizmatlarni qidirish
Name[uz@cyrillic]=Тармоқдаги хизматларни қидириш
Name[vi]=Khám phá dch v
Name[wa]=Discovraedje di siervices
Name[x-test]=xxService Discoveryxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Configure service discovery
Comment[af]=Stel dienste ontdekker op
Comment[ar]=اضبط استكشاف الخدمة
Comment[ast]=Configura'l guetador de servicios
Comment[be]=Настаўленні пошуку сервісаў
Comment[be@latin]=Naładź pošuk słužbaŭ
Comment[bg]=Настройване откриването на услуги
Comment[bn]=ি ি
Comment[bn_IN]=ি িি ি
Comment[bs]=Podešavanje otkrivanja servisa
Comment[ca]=Configura el descobriment de serveis
Comment[ca@valencia]=Configura el descobriment de serveis
Comment[cs]=Nastavení hledání služeb
Comment[csb]=Kòfigùracëjô wëkrëwaniô ùsłëżnotów
Comment[da]=Indstil opdagelse af tjeneste
Comment[de]=Diensteerkennung einrichten
Comment[el]=Διαμόρφωση εύρεσης υπηρεσιών
Comment[en_GB]=Configure service discovery
Comment[eo]=Agordi malkovradon de servo
Comment[es]=Configura el buscador de servicios
Comment[et]=Teenuste tuvastamise seadistamine
Comment[eu]=Zerbitzu-aurkikuntzaren konfigurazioa
Comment[fa]=پیکربندی کشف خدمت
Comment[fi]=Palvelun havaitsemisen asetukset
Comment[fr]=Configuration de la découverte de services
Comment[fy]=Tsjinst waarnimming ynstellen
Comment[ga]=Cumraigh fionnachtain seirbhísí
Comment[gl]=Configurar o descubrimento de servizos
Comment[gu]= િ
Comment[he]=שינוי הגדרות הקשורות לגילוי שירותים
Comment[hi]= ि ि
Comment[hne]= ि ि
Comment[hr]=Konfiguriranje usluge discovery
Comment[hsb]=Pytanje słužbow připrawić
Comment[hu]=A szolgáltatásdetektálás beállításai
Comment[ia]=Configura discoperta de servicio
Comment[id]=Atur penemuan layanan
Comment[is]=Stilla uppgötvun þjónustna
Comment[it]=Configura il rilevamento dei servizi
Comment[ja]=
Comment[ka]=
Comment[kk]=Қызыметтерді байқауды баптау
Comment[km]=
Comment[kn]= ಿ ( ಿಿ) ಿ
Comment[ko]=
Comment[ku]=naskirina servîsê mîheng bike
Comment[lt]=Konfigūruoti tarnybų radimą
Comment[lv]=Konfigurē servisu atklāšanu
Comment[mai]= ि ि
Comment[mk]=Конфигурирајте го откривањето сервиси
Comment[ml]=
Comment[mr]=
Comment[ms]=Konfigur penemuan servis
Comment[nb]=Tilpass tjenesteoppdagingen
Comment[nds]=Dat Finnen vun Deensten inrichten
Comment[ne]= ि
Comment[nl]=Dienstwaarneming instellen
Comment[nn]=Set opp oppdagingstenesta
Comment[or]=ି ି ି
Comment[pa]=ਿ
Comment[pl]=Ustawienia wykrywania usług
Comment[pt]=Configurar a descoberta de serviços
Comment[pt_BR]=Configura a descoberta de serviços
Comment[ro]=Configurează serviciul de descoperire
Comment[ru]=Настройка обнаружения служб
Comment[se]=Heivet bálvalusáicama
Comment[si]=
Comment[sk]=Nastavenie zisťovania služieb
Comment[sl]=Nastavi odkrivanje storitev
Comment[sr]=Подешавање откривања сервиса
Comment[sr@ijekavian]=Подешавање откривања сервиса
Comment[sr@ijekavianlatin]=Podešavanje otkrivanja servisa
Comment[sr@latin]=Podešavanje otkrivanja servisa
Comment[sv]=Anpassa tjänstupptäckt
Comment[ta]= ிி ி
Comment[te]= ిిి ి
Comment[tg]=Танзимоти дарёфтани хизматҳо
Comment[th]=
Comment[tr]=Servis araştırmasını yapılandır
Comment[ug]=مۇلازىمەت بايقاش سەپلىمىسى
Comment[uk]=Налаштування знаходження служб
Comment[uz]=Tarmoqdagi xizmatlarni qidirishni moslash
Comment[uz@cyrillic]=Тармоқдаги хизматларни қидиришни мослаш
Comment[vi]=Cu hình kh năng khám phám dch v
Comment[wa]=Apontyî l' discovraedje di siervices
Comment[x-test]=xxConfigure service discoveryxx
Comment[zh_CN]=
Comment[zh_TW]=
StartupNotify=true
Terminal=false
Type=Service
X-KDE-ServiceTypes=KCModule
X-DBUS-StartupType=
X-KDE-HasReadOnlyMode=false
X-KDE-Library=kcm_kdnssd
X-KDE-ParentApp=kcontrol
X-KDE-SubstituteUID=false
X-KDE-RootOnly=true
Categories=Qt;KDE;X-KDE-settings-network;
X-KDE-System-Settings-Parent-Category=network-settings
X-KDE-Weight=70

View file

@ -0,0 +1,74 @@
/***************************************************************************
* Copyright (C) 2004,2005 by Jakub Stachowski *
* qbast@go2.pl *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#include "kcmdnssd.h"
#include <sys/stat.h>
#include <config-runtime.h>
#include <QtDBus/QtDBus>
//Added by qt3to4:
#include <klocale.h>
#include <kaboutdata.h>
#include <kpluginfactory.h>
#include <kpluginloader.h>
#include <dnssd/settings.h>
#include <dnssd/domainbrowser.h>
#define MDNSD_CONF "/etc/mdnsd.conf"
#define MDNSD_PID "/var/run/mdnsd.pid"
K_PLUGIN_FACTORY(KCMDnssdFactory, registerPlugin<KCMDnssd>();)
K_EXPORT_PLUGIN(KCMDnssdFactory("kcmkdnssd"))
KCMDnssd::KCMDnssd(QWidget *parent, const QVariantList&)
: KCModule( KCMDnssdFactory::componentData(), parent)
{
widget = new Ui_ConfigDialog();
widget->setupUi(this);
setAboutData(new KAboutData("kcm_kdnssd", 0,
ki18n("ZeroConf configuration"),0,KLocalizedString(),KAboutData::License_GPL,
ki18n("(C) 2004-2007 Jakub Stachowski")));
setQuickHelp(i18n("Setup services browsing with ZeroConf"));
addConfig(DNSSD::Configuration::self(),this);
setButtons( Default|Apply );
}
KCMDnssd::~KCMDnssd()
{
}
void KCMDnssd::save()
{
KCModule::save();
// Send signal to all kde applications which have a DNSSD::DomainBrowserPrivate instance
QDBusMessage message =
QDBusMessage::createSignal("/libdnssd", "org.kde.DNSSD.DomainBrowser", "domainListChanged");
QDBusConnection::sessionBus().send(message);
}
#include "kcmdnssd.moc"

41
kcontrol/dnssd/kcmdnssd.h Normal file
View file

@ -0,0 +1,41 @@
/***************************************************************************
* Copyright (C) 2004,2005 by Jakub Stachowski *
* qbast@go2.pl *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef _KCMDNSSD_H_
#define _KCMDNSSD_H_
#include <ui_configdialog.h>
#include <kaboutdata.h>
#include <kcmodule.h>
class KCMDnssd: public KCModule
{
Q_OBJECT
public:
explicit KCMDnssd( QWidget *parent=0, const QVariantList& = QVariantList() );
~KCMDnssd();
virtual void save();
private:
Ui_ConfigDialog *widget;
};
#endif

View file

@ -0,0 +1,11 @@
set(kcmemoticons_SRCS emoticonslist.cpp)
kde4_add_ui_files(kcmemoticons_SRCS emoticonslist.ui)
kde4_add_plugin(kcm_emoticons ${kcmemoticons_SRCS})
target_link_libraries(kcm_emoticons ${KDE4_KDEUI_LIBS} ${KDE4_KPARTS_LIBS} ${KDE4_KNEWSTUFF3_LIBS} ${KDE4_KEMOTICONS_LIBRARY})
install(TARGETS kcm_emoticons DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES emoticons.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
install( FILES emoticons.knsrc DESTINATION ${CONFIG_INSTALL_DIR} )

View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
$EXTRACTRC *.ui >> rc.cpp
$XGETTEXT *.cpp -o $podir/kcm_emoticons.pot

View file

@ -0,0 +1,211 @@
[Desktop Entry]
Exec=kcmshell4 emoticons
Icon=face-smile
Type=Service
X-DocPath=kcontrol/emoticons/index.html
X-KDE-ServiceTypes=KCModule
X-KDE-Library=kcm_emoticons
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=application-appearance
X-KDE-Weight=110
Name=Emoticons
Name[af]=Emotikons
Name[ar]=أوجه تعبيرية
Name[as]=-
Name[ast]=Fustaxes
Name[be@latin]=Smajliki
Name[bg]=Емотикони
Name[bn]=-
Name[bn_IN]=
Name[bs]=Emotikoni
Name[ca]=Emoticones
Name[ca@valencia]=Emoticones
Name[cs]=Emotikony
Name[csb]=Emòtikónczi
Name[da]=Emotikoner
Name[de]=Emoticons
Name[el]=Εικονίδια διάθεσης
Name[en_GB]=Emoticons
Name[eo]=Miensimboloj
Name[es]=Emoticonos
Name[et]=Emotikonid
Name[eu]=Aurpegierak
Name[fa]=صورتک
Name[fi]=Hymiöt
Name[fr]=Émoticônes
Name[fy]=Emobyldkaikes
Name[ga]=Straoiseoga
Name[gl]=Emoticonas
Name[gu]=
Name[he]=רגשונים
Name[hi]=
Name[hne]=ि
Name[hr]=Emoticons
Name[hsb]=Emotikony
Name[hu]=Emotikonok
Name[ia]=Emoticones
Name[id]=Emoticon
Name[is]=Tjáningartákn
Name[it]=Faccine
Name[ja]=
Name[kk]=Көңіл күйі белгілері
Name[km]=
Name[kn]=ಿ (ಿ)
Name[ko]=
Name[ku]=Emotîkon
Name[lt]=Jaustukai
Name[lv]=Emocijzīmes
Name[mai]=-
Name[mk]=Емотикони
Name[ml]=ിി
Name[mr]=ि
Name[nb]=Humørfjes
Name[nds]=Snuten
Name[nl]=Emoticons
Name[nn]=Fjesingar
Name[or]=Emoticons
Name[pa]=
Name[pl]=Emotikony
Name[pt]=Ícones Emotivos
Name[pt_BR]=Emoticons
Name[ro]=Emoticoni
Name[ru]=Смайлики
Name[se]=Mojánat
Name[si]=
Name[sk]=Emotikony
Name[sl]=Izrazne ikone
Name[sr]=Емотикони
Name[sr@ijekavian]=Емотикони
Name[sr@ijekavianlatin]=Emotikoni
Name[sr@latin]=Emotikoni
Name[sv]=Smilisar
Name[ta]=ி
Name[te]=ి
Name[tg]=Тасвирчаҳо
Name[th]=
Name[tr]=Duygu Simgeleri
Name[ug]=چىراي ئىپادىلىرى
Name[uk]=Емоційки
Name[uz]=His-tuygʻular
Name[uz@cyrillic]=Ҳис-туйғулар
Name[vi]=Hình biu cm
Name[wa]=Xhinêyes
Name[x-test]=xxEmoticonsxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Choose Emoticon Theme
Comment[ar]=اختر سمة وجه تعبيري
Comment[bg]=Избор на теми с емотикони
Comment[bs]=Izbor emotikonskih tema
Comment[ca]=Selecció de tema d'emoticones
Comment[ca@valencia]=Selecció de tema d'emoticones
Comment[cs]=Vyberte motiv emotikonů
Comment[da]=Vælg emotikontema
Comment[de]=Emoticon-Design auswählen
Comment[el]=Επιλογή θέματος εικονιδίων διάθεσης
Comment[en_GB]=Choose Emoticon Theme
Comment[es]=Escoger tema de emoticonos
Comment[et]=Emotikoniteema valimine
Comment[eu]=Hautatu aurpegiera-gaia
Comment[fa]=انتخاب چهرههای صورتکها
Comment[fi]=Valitse hymiöteema
Comment[fr]=Choisir le thème d'émoticônes
Comment[gl]=Escolle o tema de emoticonas
Comment[hu]=Hangulatjel-téma kiválasztása
Comment[ia]=Selige Thema de Emoticon
Comment[id]=Pilih Tema Emoticon
Comment[is]=Veldu tjáningartáknaþema
Comment[it]=Scegli tema delle faccine
Comment[ja]=
Comment[kk]=Көңіл күй белгілер нақышының таңдау
Comment[ko]=
Comment[lt]=Pasirinkite jaustukų temą
Comment[nb]=Velg humørfjes-temaer
Comment[nds]=Snutensett utsöken
Comment[nl]=Thema voor emoticon kiezen
Comment[nn]=Vel fjesingtema
Comment[pa]=
Comment[pl]=Wybierz zestaw emotikon
Comment[pt]=Escolher o Tema de Ícones Emotivos
Comment[pt_BR]=Escolhe o tema de emoticons
Comment[ro]=Alegeți tema de emoticoni
Comment[ru]=Выбор темы смайликов
Comment[sk]=Vybrať tému emotikonov
Comment[sl]=Izberite temo izraznih ikon
Comment[sr]=Избор емотиконских тема
Comment[sr@ijekavian]=Избор емотиконских тема
Comment[sr@ijekavianlatin]=Izbor emotikonskih tema
Comment[sr@latin]=Izbor emotikonskih tema
Comment[sv]=Välj smilistema
Comment[tr]=Duygu Simgesi Temasını Seçin
Comment[ug]=چىراي ئۆرنەكلىرى تاللاش
Comment[uk]=Вибір теми емоційок
Comment[wa]=Tchoezixhoz li tinme des xhinêyes
Comment[x-test]=xxChoose Emoticon Themexx
Comment[zh_CN]=
Comment[zh_TW]=
X-KDE-Keywords=Emoticons
X-KDE-Keywords[ar]=أوجه تعبيرية
X-KDE-Keywords[ast]=Fustaxes
X-KDE-Keywords[bg]=Emoticons,Емотикони
X-KDE-Keywords[bn]=-
X-KDE-Keywords[bs]=Emotikoni
X-KDE-Keywords[ca]=Emoticones
X-KDE-Keywords[ca@valencia]=Emoticones
X-KDE-Keywords[cs]=Emotikony
X-KDE-Keywords[da]=Emotikoner
X-KDE-Keywords[de]=Emoticons
X-KDE-Keywords[el]=Εικονίδια διάθεσης
X-KDE-Keywords[en_GB]=Emoticons
X-KDE-Keywords[eo]=Miensimboloj
X-KDE-Keywords[es]=Emoticonos
X-KDE-Keywords[et]=Emotikonid
X-KDE-Keywords[eu]=Aurpegierak
X-KDE-Keywords[fa]=صورتک
X-KDE-Keywords[fi]=Hymiöt
X-KDE-Keywords[fr]=Émoticônes
X-KDE-Keywords[ga]=Straoiseoga
X-KDE-Keywords[gl]=Emoticonas
X-KDE-Keywords[gu]=
X-KDE-Keywords[he]=רגשונים
X-KDE-Keywords[hi]=
X-KDE-Keywords[hu]=Emotikonok
X-KDE-Keywords[ia]=Emoticones
X-KDE-Keywords[id]=Emotikon
X-KDE-Keywords[is]=Tjáningartákn
X-KDE-Keywords[it]=Faccine
X-KDE-Keywords[ja]=
X-KDE-Keywords[kk]=Emoticons,Көңіл күйі белгілері
X-KDE-Keywords[km]=
X-KDE-Keywords[ko]=
X-KDE-Keywords[lt]=Jaustukai
X-KDE-Keywords[lv]=Emocijzīmes
X-KDE-Keywords[mr]=ि
X-KDE-Keywords[nb]=Humørfjes
X-KDE-Keywords[nds]=Snuten
X-KDE-Keywords[nl]=Emoticons
X-KDE-Keywords[nn]=Fjesingar
X-KDE-Keywords[pa]=
X-KDE-Keywords[pl]=Emotikony
X-KDE-Keywords[pt]=Ícones Emotivos
X-KDE-Keywords[pt_BR]=Emoticons
X-KDE-Keywords[ro]=Emoticoni
X-KDE-Keywords[ru]=Emoticons,смайлики,смайлы,улыбочки
X-KDE-Keywords[sk]=Emotikony
X-KDE-Keywords[sl]=Izrazne ikone
X-KDE-Keywords[sr]=emoticons,емотикон
X-KDE-Keywords[sr@ijekavian]=emoticons,емотикон
X-KDE-Keywords[sr@ijekavianlatin]=emoticons,emotikon
X-KDE-Keywords[sr@latin]=emoticons,emotikon
X-KDE-Keywords[sv]=Smilisar
X-KDE-Keywords[tg]=Тасвирчаҳо
X-KDE-Keywords[tr]=Duygu Simgeleri
X-KDE-Keywords[ug]=چىراي ئىپادىلىرى
X-KDE-Keywords[uk]=емоційка,емоційки,смайлик,смайлики
X-KDE-Keywords[vi]=Hình biu cm
X-KDE-Keywords[wa]=Xhinêyes
X-KDE-Keywords[x-test]=xxEmoticonsxx
X-KDE-Keywords[zh_CN]=Emoticons,
X-KDE-Keywords[zh_TW]=Emoticons

View file

@ -0,0 +1,5 @@
[KNewStuff3]
ProvidersUrl=http://download.kde.org/ocs/providers.xml
Categories=Emoticon Theme
StandardResource=emoticons
Uncompress=always

View file

@ -0,0 +1,488 @@
/***************************************************************************
* Copyright (C) 2007 by Carlo Segato <brandon.ml@gmail.com> *
* Copyright (C) 2008 Montel Laurent <montel@kde.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
#include "emoticonslist.h"
#include <QString>
#include <QDir>
#include <QIcon>
#include <QLabel>
#include <QListWidgetItem>
#include <KMessageBox>
#include <KDebug>
#include <KIcon>
#include <KAboutData>
#include <KStandardDirs>
#include <KFileDialog>
#include <KInputDialog>
#include <KUrlRequesterDialog>
#include <kdecore_export.h>
#include <kio/netaccess.h>
#include <kpluginfactory.h>
#include <KNS3/DownloadDialog>
EditDialog::EditDialog(QWidget *parent, const QString &name)
: KDialog(parent)
{
setCaption(name);
setupDlg();
}
EditDialog::EditDialog(QWidget *parent, const QString &name, QListWidgetItem *itm, const QString &file)
: KDialog(parent)
{
setCaption(name);
emoticon = file;
setupDlg();
leText->setText(itm->text());
btnIcon->setIcon(itm->icon());
}
void EditDialog::setupDlg()
{
wdg = new QWidget(this);
QVBoxLayout *vl = new QVBoxLayout;
QHBoxLayout *hb = new QHBoxLayout;
leText = new KLineEdit(this);
btnIcon = new QPushButton(this);
btnIcon->setFixedSize(QSize(64, 64));
btnIcon->setIconSize(QSize(64, 64));
QLabel *lab = new QLabel(i18n("Insert the string for the emoticon. If you want multiple strings, separate them by spaces."), wdg);
lab->setWordWrap(true);
vl->addWidget(lab);
hb->addWidget(btnIcon);
hb->addWidget(leText);
vl->addLayout(hb);
wdg->setLayout(vl);
setMainWidget(wdg);
connect(btnIcon, SIGNAL(clicked()), this, SLOT(btnIconClicked()));
connect(leText, SIGNAL(textChanged(const QString &)), this, SLOT(updateOkButton()));
updateOkButton();
leText->setFocus();
}
void EditDialog::btnIconClicked()
{
KUrl url = KFileDialog::getImageOpenUrl();
if (!url.isLocalFile())
return;
emoticon = url.toLocalFile();
if (emoticon.isEmpty())
return;
btnIcon->setIcon(QPixmap(emoticon));
updateOkButton();
}
void EditDialog::updateOkButton()
{
enableButtonOk(!leText->text().isEmpty() && !emoticon.isEmpty());
}
K_PLUGIN_FACTORY(EmoticonsFactory, registerPlugin<EmoticonList>();)
K_EXPORT_PLUGIN(EmoticonsFactory("emoticons", "kcm_emoticons"))
EmoticonList::EmoticonList(QWidget *parent, const QVariantList &args)
: KCModule(EmoticonsFactory::componentData(), parent, args)
{
KAboutData *about = new KAboutData("kcm_emoticons", 0, ki18n("Emoticons"), "1.0");
setAboutData(about);
// setButtons(Apply | Help);
setupUi(this);
btAdd->setIcon(KIcon("list-add"));
btEdit->setIcon(KIcon("edit-rename"));
btRemoveEmoticon->setIcon(KIcon("edit-delete"));
btNew->setIcon(KIcon("document-new"));
btGetNew->setIcon(KIcon("get-hot-new-stuff"));
btInstall->setIcon(KIcon("document-import"));
btRemoveTheme->setIcon(KIcon("edit-delete"));
connect(themeList, SIGNAL(itemSelectionChanged()), this, SLOT(selectTheme()));
connect(themeList, SIGNAL(itemSelectionChanged()), this, SLOT(updateButton()));
connect(btRemoveTheme, SIGNAL(clicked()), this, SLOT(btRemoveThemeClicked()));
connect(btInstall, SIGNAL(clicked()), this, SLOT(installEmoticonTheme()));
connect(btNew, SIGNAL(clicked()), this, SLOT(newTheme()));
connect(btGetNew, SIGNAL(clicked()), this, SLOT(getNewStuff()));
connect(cbStrict, SIGNAL(clicked()), this, SLOT(somethingChanged()));
connect(btAdd, SIGNAL(clicked()), this, SLOT(addEmoticon()));
connect(btEdit, SIGNAL(clicked()), this, SLOT(editEmoticon()));
connect(btRemoveEmoticon, SIGNAL(clicked()), this, SLOT(btRemoveEmoticonClicked()));
connect(emoList, SIGNAL(itemSelectionChanged()), this, SLOT(updateButton()));
connect(emoList, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(editEmoticon()));
}
EmoticonList::~EmoticonList()
{
}
bool caseInsensitiveLessThan(const QString &s1, const QString &s2)
{
return (QString::localeAwareCompare(s1, s2) < 0);
}
void EmoticonList::load()
{
KStandardDirs dir;
delFiles.clear();
themeList->clear();
emoMap.clear();
emoList->clear();
QStringList themeList = kEmoticons.themeList();
qSort(themeList.begin(), themeList.end(), caseInsensitiveLessThan);
for (int i = 0; i < themeList.count(); i++) {
loadTheme(themeList.at(i));
}
if (kEmoticons.parseMode() & KEmoticonsTheme::StrictParse) {
cbStrict->setChecked(true);
} else {
cbStrict->setChecked(false);
}
updateButton();
emit changed(false);
}
void EmoticonList::save()
{
for (int i = 0; i < delFiles.size(); i++) {
KIO::NetAccess::del(delFiles.at(i), this);
}
foreach (KEmoticonsTheme t, emoMap) {
t.save();
}
if (themeList->currentItem()) {
kEmoticons.setTheme(themeList->currentItem()->text());
}
if (cbStrict->isChecked()) {
kEmoticons.setParseMode((kEmoticons.parseMode() |= KEmoticonsTheme::StrictParse) &= ~KEmoticonsTheme::RelaxedParse);
} else {
kEmoticons.setParseMode((kEmoticons.parseMode() |= KEmoticonsTheme::RelaxedParse) &= ~KEmoticonsTheme::StrictParse);
}
}
void EmoticonList::somethingChanged()
{
emit changed(true);
}
void EmoticonList::updateButton()
{
bool can = canEditTheme();
btRemoveEmoticon->setEnabled(themeList->currentItem() && emoList->selectedItems().size() && can);
btRemoveTheme->setEnabled(themeList->currentItem() && themeList->currentItem()->text() != "kde4" && themeList->count() > 1 && can);
btEdit->setEnabled(themeList->currentItem() && emoList->selectedItems().size() && can);
btAdd->setEnabled(themeList->currentItem() && can);
}
void EmoticonList::selectTheme()
{
kDebug() << "current_item: " << themeList->currentItem();
updateButton();
if (!themeList->currentItem()) {
emoList->clear();
return;
}
if (!themeList->currentItem()) {
themeList->currentItem()->setSelected(true);
return;
}
emoList->clear();
KEmoticonsTheme em = emoMap.value(themeList->currentItem()->text());
QHash<QString, QStringList>::const_iterator it = em.emoticonsMap().constBegin();
for (; it != em.emoticonsMap().constEnd(); ++it) {
QString text;
if (it.value().size()) {
text = it.value().at(0);
for (int i = 1; i < it.value().size(); i++) {
text += ' ' + it.value().at(i);
}
}
new QListWidgetItem(QIcon(it.key()), text, emoList);
}
emit changed();
}
void EmoticonList::btRemoveThemeClicked()
{
if (!themeList->currentItem()) {
return;
}
QString name = themeList->currentItem()->text();
delFiles.append(KGlobal::dirs()->findResource("emoticons", name + QDir::separator()));
delete themeList->currentItem();
emoMap.remove(name);
emit changed();
}
void EmoticonList::installEmoticonTheme()
{
KUrl themeURL = KUrlRequesterDialog::getUrl(QString(), this, i18n("Drag or Type Emoticon Theme URL"));
if (themeURL.isEmpty())
return;
if (!themeURL.isLocalFile()) {
KMessageBox::queuedMessageBox(this, KMessageBox::Error, i18n("Emoticon themes must be installed from local files."),
i18n("Could Not Install Emoticon Theme"));
return;
}
QStringList installed = kEmoticons.installTheme(themeURL.toLocalFile());
for (int i = 0; i < installed.size(); i++)
loadTheme(installed.at(i));
}
void EmoticonList::btRemoveEmoticonClicked()
{
if (!emoList->currentItem()) {
return;
}
QListWidgetItem *itm = emoList->currentItem();
KEmoticonsTheme theme = emoMap.value(themeList->currentItem()->text());
QString fPath = theme.emoticonsMap().key(itm->text().split(' '));
if (theme.removeEmoticon(itm->text())) {
int ret = KMessageBox::questionYesNo(this, i18n("Do you want to remove %1 too?", fPath), i18n("Delete emoticon"));
if (ret == KMessageBox::Yes) {
delFiles.append(fPath);
}
delete itm;
themeList->currentItem()->setIcon(QIcon(previewEmoticon(theme)));
emit changed();
}
}
void EmoticonList::addEmoticon()
{
if (!themeList->currentItem())
return;
EditDialog *dlg = new EditDialog(this, i18n("Add Emoticon"));
if (dlg->exec() == QDialog::Rejected) {
delete dlg;
return;
}
KEmoticonsTheme theme = emoMap.value(themeList->currentItem()->text());
if (theme.addEmoticon(dlg->getEmoticon(), dlg->getText(), KEmoticonsProvider::Copy)) {
new QListWidgetItem(QPixmap(dlg->getEmoticon()), dlg->getText(), emoList);
themeList->currentItem()->setIcon(QIcon(previewEmoticon(theme)));
emit changed();
}
delete dlg;
}
void EmoticonList::editEmoticon()
{
if (!themeList->currentItem() || !emoList->currentItem())
return;
KEmoticonsTheme theme = emoMap.value(themeList->currentItem()->text());
QString path = theme.emoticonsMap().key(emoList->currentItem()->text().split(' '));
QString f = QFileInfo(path).fileName();
EditDialog *dlg = new EditDialog(this, i18n("Edit Emoticon"), emoList->currentItem(), path);
if (dlg->exec() == QDialog::Rejected) {
delete dlg;
return;
}
bool copy;
QString emo = dlg->getEmoticon();
if (path != dlg->getEmoticon()) {
copy = true;
} else {
copy = false;
KStandardDirs *dir = KGlobal::dirs();
emo = dir->findResource("emoticons", themeList->currentItem()->text() + QDir::separator() + f);
if (emo.isNull())
emo = dir->findResource("emoticons", themeList->currentItem()->text() + QDir::separator() + f + ".mng");
if (emo.isNull())
emo = dir->findResource("emoticons", themeList->currentItem()->text() + QDir::separator() + f + ".png");
if (emo.isNull())
emo = dir->findResource("emoticons", themeList->currentItem()->text() + QDir::separator() + f + ".gif");
if (emo.isNull())
emo = dir->findResource("emoticons", themeList->currentItem()->text() + QDir::separator() + f + ".jpg");
if (emo.isNull())
emo = dir->findResource("emoticons", themeList->currentItem()->text() + QDir::separator() + f + ".jpeg");
if (emo.isNull()) {
delete dlg;
return;
}
}
if (theme.removeEmoticon(emoList->currentItem()->text())) {
delete emoList->currentItem();
}
if (theme.addEmoticon(emo, dlg->getText(), copy ? KEmoticonsProvider::Copy : KEmoticonsProvider::DoNotCopy)) {
new QListWidgetItem(QPixmap(emo), dlg->getText(), emoList);
}
emit changed();
delete dlg;
}
void EmoticonList::newTheme()
{
QString name = KInputDialog::getText(i18n("New Emoticon Theme"), i18n("Enter the name of the new emoticon theme:"));
if (name.isEmpty())
return;
QString path = KGlobal::dirs()->saveLocation("emoticons", name, false);
if (KIO::NetAccess::exists(path, KIO::NetAccess::SourceSide, this)) {
KMessageBox::error(this, i18n("%1 theme already exists", name));
} else {
QString constraint("(exist Library)");
KService::List srv = KServiceTypeTrader::self()->query("KEmoticons", constraint);
QStringList ls;
int current = 0;
for (int i = 0; i < srv.size(); ++i) {
ls << srv.at(i)->name();
if (srv.at(i)->property("X-KDE-Priority").toInt() > srv.at(current)->property("X-KDE-Priority").toInt()) {
current = i;
}
}
bool ok;
QString type = KInputDialog::getItem(i18n("New Emoticon Theme"), i18n("Choose the type of emoticon theme to create"), ls, current, false, &ok, this);
if (ok && !type.isEmpty()) {
int index = ls.indexOf(type);
kEmoticons.newTheme(name, srv.at(index));
loadTheme(name);
}
}
}
void EmoticonList::loadTheme(const QString &name)
{
if (name.isEmpty())
return;
if (emoMap.contains(name)) {
emoMap.remove(name);
QList<QListWidgetItem *>ls = themeList->findItems(name, Qt::MatchExactly);
if (ls.size()) {
delete ls.at(0);
}
}
KEmoticonsTheme emo = kEmoticons.theme(name);
if (!emo.isNull()) {
emoMap[name] = emo;
QIcon previewIcon = QIcon(previewEmoticon(emo));
QListWidgetItem *itm = new QListWidgetItem(previewIcon, name, themeList);
if (name == kEmoticons.currentThemeName()) {
themeList->setCurrentItem(itm);
}
}
}
void EmoticonList::getNewStuff()
{
KNS3::DownloadDialog dialog("emoticons.knsrc", this);
dialog.exec();
if (!dialog.changedEntries().isEmpty()) {
KNS3::Entry::List entries = dialog.changedEntries();
for (int i = 0; i < entries.size(); i ++) {
if (entries.at(i).status() == KNS3::Entry::Installed
&& !entries.at(i).installedFiles().isEmpty()) {
QString name = entries.at(i).installedFiles().at(0).section('/', -2, -2);
loadTheme(name);
} else if (entries.at(i).status() == KNS3::Entry::Deleted) {
QString name = entries.at(i).uninstalledFiles().at(0).section('/', -2, -2);
QList<QListWidgetItem*> ls = themeList->findItems(name, Qt::MatchExactly);
if (ls.size()) {
delete ls.at(0);
emoMap.remove(name);
}
}
}
}
}
QString EmoticonList::previewEmoticon(const KEmoticonsTheme &theme)
{
QString path = theme.tokenize(":)")[0].picPath;
if (path.isEmpty()) {
path = theme.emoticonsMap().keys().value(0);
}
return path;
}
void EmoticonList::initDefaults()
{
QList<QListWidgetItem *>ls = themeList->findItems("kde4", Qt::MatchExactly);
themeList->setCurrentItem( ls.first() );
cbStrict->setChecked(false);
}
void EmoticonList::defaults()
{
initDefaults();
selectTheme();
emit changed(true);
}
bool EmoticonList::canEditTheme()
{
if (!themeList->currentItem()) {
return false;
}
KEmoticonsTheme theme = emoMap.value(themeList->currentItem()->text());
QFileInfo inf(theme.themePath() + '/' + theme.fileName());
return inf.isWritable();
}
// kate: space-indent on; indent-width 4; replace-tabs on;

View file

@ -0,0 +1,83 @@
/***************************************************************************
* Copyright (C) 2007 by Carlo Segato <brandon.ml@gmail.com> *
* Copyright (C) 2008 Montel Laurent <montel@kde.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
#ifndef EMOTICONSLIST_H
#define EMOTICONSLIST_H
#include <QStringList>
#include <KLineEdit>
#include <kcmodule.h>
#include <kemoticons.h>
#include "ui_emoticonslist.h"
class EditDialog : public KDialog
{
Q_OBJECT
public:
EditDialog(QWidget *parent, const QString &name);
EditDialog(QWidget *parent, const QString &name, QListWidgetItem *itm, const QString &file);
QString getText() const { return leText->text(); };
QString getEmoticon() const { return emoticon; };
private slots:
void btnIconClicked();
void updateOkButton();
private:
void setupDlg();
QWidget *wdg;
KLineEdit *leText;
QPushButton *btnIcon;
QString emoticon;
};
class EmoticonList : public KCModule, Ui::EmoticonsManager
{
Q_OBJECT
public:
EmoticonList(QWidget *parent, const QVariantList &args);
~EmoticonList();
void load();
void save();
virtual void defaults();
private slots:
void installEmoticonTheme();
void btRemoveThemeClicked();
void btRemoveEmoticonClicked();
void selectTheme();
void addEmoticon();
void editEmoticon();
void newTheme();
void getNewStuff();
void updateButton();
void somethingChanged();
private:
void loadTheme(const QString &name);
void initDefaults();
bool canEditTheme();
QString previewEmoticon(const KEmoticonsTheme &theme);
QHash<QString, KEmoticonsTheme> emoMap;
QStringList delFiles;
KEmoticons kEmoticons;
};
#endif /* EMOTICONSLIST_H */
// kate: space-indent on; indent-width 4; replace-tabs on;

View file

@ -0,0 +1,169 @@
<ui version="4.0" >
<class>EmoticonsManager</class>
<widget class="QWidget" name="EmoticonsManager" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>630</width>
<height>419</height>
</rect>
</property>
<property name="windowTitle" >
<string>Emoticons Manager</string>
</property>
<layout class="QGridLayout" >
<item row="0" column="0" >
<widget class="QListWidget" name="themeList" >
<property name="iconSize" >
<size>
<width>22</width>
<height>22</height>
</size>
</property>
</widget>
</item>
<item rowspan="2" row="0" column="1" >
<widget class="QListWidget" name="emoList" >
<property name="iconSize" >
<size>
<width>22</width>
<height>22</height>
</size>
</property>
</widget>
</item>
<item rowspan="2" row="0" column="2" >
<layout class="QVBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<item>
<widget class="KPushButton" name="btAdd" >
<property name="toolTip" >
<string>Create a new emoticon</string>
</property>
<property name="whatsThis" >
<string>Create a new emoticon by assigning it an icon and some text</string>
</property>
<property name="text" >
<string>Add...</string>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="btEdit" >
<property name="toolTip" >
<string>Modify the selected emoticon icon or text </string>
</property>
<property name="whatsThis" >
<string>Edit the selected emoticon to change its icon or its text</string>
</property>
<property name="text" >
<string>Edit...</string>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="btRemoveEmoticon" >
<property name="toolTip" >
<string>Remove the selected emoticon</string>
</property>
<property name="whatsThis" >
<string>Remove the selected emoticon from your disk</string>
</property>
<property name="text" >
<string>Remove</string>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0" >
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0" >
<layout class="QVBoxLayout" >
<item>
<widget class="QCheckBox" name="cbStrict" >
<property name="text" >
<string>Require spaces around emoticons</string>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="btNew" >
<property name="toolTip" >
<string>Design a new emoticon theme</string>
</property>
<property name="whatsThis" >
<string>Start a new theme by assigning it a name. Then use the Add button on the right to add emoticons to this theme.</string>
</property>
<property name="text" >
<string>New Theme...</string>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="btGetNew" >
<property name="toolTip" >
<string>Get new icon themes from the Internet</string>
</property>
<property name="whatsThis" >
<string>You need to be connected to the Internet to use this action. A dialog will display a list of emoticon themes from the http://www.kde-look.org website. Clicking the Install button associated with a theme will install this theme locally.</string>
</property>
<property name="text" >
<string>Get New Icon Themes...</string>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="btInstall" >
<property name="toolTip" >
<string>Install a theme archive file you already have locally</string>
</property>
<property name="whatsThis" >
<string>If you already have an emoticon theme archive locally, this button will unpack it and make it available for KDE applications</string>
</property>
<property name="text" >
<string>Install Theme File...</string>
</property>
</widget>
</item>
<item>
<widget class="KPushButton" name="btRemoveTheme" >
<property name="toolTip" >
<string>Remove the selected theme from your disk</string>
</property>
<property name="whatsThis" >
<string>This will remove the selected theme from your disk.</string>
</property>
<property name="text" >
<string>Remove Theme</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KPushButton</class>
<extends>QPushButton</extends>
<header>kpushbutton.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,20 @@
add_subdirectory(tests)
########### next target ###############
set(kcm_icons_PART_SRCS iconthemes.cpp icons.cpp main.cpp )
kde4_add_plugin(kcm_icons ${kcm_icons_PART_SRCS})
target_link_libraries(kcm_icons ${KDE4_KIO_LIBS} ${KDE4_KNEWSTUFF3_LIBS})
install(TARGETS kcm_icons DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES icons.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
install( FILES icons.knsrc DESTINATION ${CONFIG_INSTALL_DIR} )

View file

@ -0,0 +1,2 @@
#! /usr/bin/env bash
$XGETTEXT *.cpp -o $podir/kcmicons.pot

646
kcontrol/icons/icons.cpp Normal file
View file

@ -0,0 +1,646 @@
/* vi: ts=8 sts=4 sw=4
*
* This file is part of the KDE project, module kcmdisplay.
* Copyright (C) 2000 Geert Jansen <jansen@kde.org>
* with minor additions and based on ideas from
* Torsten Rahn <torsten@kde.org> *
*
* You can Freely distribute this program under the GNU General Public
* License. See the file "COPYING" for the exact licensing terms.
*/
#include "icons.h"
#include <stdlib.h>
#include <QCheckBox>
#include <QComboBox>
#include <QLabel>
#include <QFormLayout>
#include <QSlider>
#include <QGroupBox>
//Added by qt3to4:
#include <QPixmap>
#include <QGridLayout>
#include <QBoxLayout>
#include <QVBoxLayout>
#include <QListWidget>
#include <kcolorbutton.h>
#include <kconfig.h>
#include <kdebug.h>
#include <kiconeffect.h>
#include <kiconloader.h>
#include <klocale.h>
#include <kseparator.h>
#include <kglobalsettings.h>
/**** KIconConfig ****/
KIconConfig::KIconConfig(const KComponentData &inst, QWidget *parent)
: KCModule(inst, parent)
{
QGridLayout *top = new QGridLayout(this );
top->setColumnStretch(0, 1);
top->setColumnStretch(1, 1);
// Use of Icon at (0,0) - (1, 0)
QGroupBox *gbox = new QGroupBox(i18n("Use of Icon"), this);
top->addWidget(gbox, 0, 0, 2, 1);
QBoxLayout *g_vlay = new QVBoxLayout(gbox);
mpUsageList = new QListWidget(gbox);
connect(mpUsageList, SIGNAL(currentRowChanged(int)), SLOT(slotUsage(int)));
g_vlay->addWidget(mpUsageList);
KSeparator *sep = new KSeparator( Qt::Horizontal, this );
top->addWidget(sep, 1, 1);
// Preview at (2,0) - (2, 1)
QGridLayout *g_lay = new QGridLayout();
g_lay->setSpacing( 0);
top->addLayout(g_lay, 2, 0, 1, 2 );
g_lay->addItem(new QSpacerItem(0, fontMetrics().lineSpacing()), 0, 0);
QPushButton *push;
push = addPreviewIcon(0, i18nc("@label The icon rendered by default", "Default"), this, g_lay);
connect(push, SIGNAL(clicked()), SLOT(slotEffectSetup0()));
push = addPreviewIcon(1, i18nc("@label The icon rendered as active", "Active"), this, g_lay);
connect(push, SIGNAL(clicked()), SLOT(slotEffectSetup1()));
push = addPreviewIcon(2, i18nc("@label The icon rendered as disabled", "Disabled"), this, g_lay);
connect(push, SIGNAL(clicked()), SLOT(slotEffectSetup2()));
m_pTab1 = new QWidget(this);
m_pTab1->setObjectName( QLatin1String("General Tab" ));
top->addWidget(m_pTab1, 0, 1);
QGridLayout *grid = new QGridLayout(m_pTab1);
grid->setColumnStretch(1, 1);
grid->setColumnStretch(2, 1);
// Size
QLabel *lbl = new QLabel(i18n("Size:"), m_pTab1);
lbl->setFixedSize(lbl->sizeHint());
grid->addWidget(lbl, 0, 0, Qt::AlignLeft);
mpSizeBox = new QComboBox(m_pTab1);
connect(mpSizeBox, SIGNAL(activated(int)), SLOT(slotSize(int)));
lbl->setBuddy(mpSizeBox);
grid->addWidget(mpSizeBox, 0, 1, Qt::AlignLeft);
mpAnimatedCheck = new QCheckBox(i18n("Animate icons"), m_pTab1);
connect(mpAnimatedCheck, SIGNAL(toggled(bool)), SLOT(slotAnimatedCheck(bool)));
grid->addWidget(mpAnimatedCheck, 2, 0, 1, 2, Qt::AlignLeft);
grid->setRowStretch(3, 10);
top->activate();
init();
read();
apply();
preview();
}
KIconConfig::~KIconConfig()
{
delete mpEffect;
}
QPushButton *KIconConfig::addPreviewIcon(int i, const QString &str, QWidget *parent, QGridLayout *lay)
{
QLabel *lab = new QLabel(str, parent);
lay->addWidget(lab, 1, i, Qt::AlignCenter);
mpPreview[i] = new QLabel(parent);
mpPreview[i]->setAlignment(Qt::AlignCenter);
mpPreview[i]->setMinimumSize(105, 105);
lay->addWidget(mpPreview[i], 2, i);
QPushButton *push = new QPushButton(i18n("Set Effect..."), parent);
lay->addWidget(push, 3, i, Qt::AlignCenter);
return push;
}
void KIconConfig::init()
{
mpLoader = KIconLoader::global();
mpConfig = KGlobal::config();
mpEffect = new KIconEffect;
mUsage = 0;
for (int i=0; i<KIconLoader::LastGroup; i++)
mbChanged[i] = false;
// Fill list/checkboxen
mpUsageList->addItem(i18n("Desktop"));
mpUsageList->addItem(i18n("Toolbar"));
mpUsageList->addItem(i18n("Main Toolbar"));
mpUsageList->addItem(i18n("Small Icons"));
mpUsageList->addItem(i18n("Panel"));
mpUsageList->addItem(i18n("Dialogs"));
mpUsageList->addItem(i18n("All Icons"));
// For reading the configuration
mGroups += "Desktop";
mGroups += "Toolbar";
mGroups += "MainToolbar";
mGroups += "Small";
mGroups += "Panel";
mGroups += "Dialog";
mStates += "Default";
mStates += "Active";
mStates += "Disabled";
}
void KIconConfig::initDefaults()
{
mDefaultEffect[0].type = KIconEffect::NoEffect;
mDefaultEffect[1].type = KIconEffect::NoEffect;
mDefaultEffect[2].type = KIconEffect::ToGray;
mDefaultEffect[0].transparent = false;
mDefaultEffect[1].transparent = false;
mDefaultEffect[2].transparent = true;
mDefaultEffect[0].value = 1.0;
mDefaultEffect[1].value = 1.0;
mDefaultEffect[2].value = 1.0;
mDefaultEffect[0].color = QColor(144,128,248);
mDefaultEffect[1].color = QColor(169,156,255);
mDefaultEffect[2].color = QColor(34,202,0);
mDefaultEffect[0].color2 = QColor(0,0,0);
mDefaultEffect[1].color2 = QColor(0,0,0);
mDefaultEffect[2].color2 = QColor(0,0,0);
const int defDefSizes[] = { 32, 22, 22, 16, 32, 32 };
KIconLoader::Group i;
QStringList::ConstIterator it;
for(it=mGroups.constBegin(), i=KIconLoader::FirstGroup; it!=mGroups.constEnd(); ++it, i++)
{
mbChanged[i] = true;
mbAnimated[i] = false;
if (mpLoader->theme())
mSizes[i] = mpLoader->theme()->defaultSize(i);
else
mSizes[i] = defDefSizes[i];
mEffects[i][0] = mDefaultEffect[0];
mEffects[i][1] = mDefaultEffect[1];
mEffects[i][2] = mDefaultEffect[2];
}
// Animate desktop icons by default
int group = mGroups.indexOf( "Desktop" );
if ( group != -1 )
mbAnimated[group] = true;
// This is the new default in KDE 2.2, in sync with the kiconeffect of kdelibs Nolden 2001/06/11
int activeState = mStates.indexOf( "Active" );
if ( activeState != -1 )
{
int group = mGroups.indexOf( "Desktop" );
if ( group != -1 )
{
mEffects[ group ][ activeState ].type = KIconEffect::ToGamma;
mEffects[ group ][ activeState ].value = 0.7f;
}
group = mGroups.indexOf( "Panel" );
if ( group != -1 )
{
mEffects[ group ][ activeState ].type = KIconEffect::ToGamma;
mEffects[ group ][ activeState ].value = 0.7f;
}
}
}
void KIconConfig::read()
{
if (mpLoader->theme())
{
for (KIconLoader::Group i=KIconLoader::FirstGroup; i<KIconLoader::LastGroup; i++)
{
mAvSizes[i] = mpLoader->theme()->querySizes(i);
// ### Themes need to be fixed to include available sizes for Dialog icons
if (i == KIconLoader::Dialog && mAvSizes[i].isEmpty())
{
mAvSizes[i] = mAvSizes[KIconLoader::Desktop];
}
}
mTheme = mpLoader->theme()->current();
mExample = mpLoader->theme()->example();
}
else
{
for (KIconLoader::Group i=KIconLoader::FirstGroup; i<KIconLoader::LastGroup; i++)
mAvSizes[i] = QList<int>();
mTheme.clear();
mExample.clear();
}
initDefaults();
int i, j, effect;
QStringList::ConstIterator it, it2;
for (it=mGroups.constBegin(), i=0; it!=mGroups.constEnd(); ++it, i++)
{
mbChanged[i] = false;
KConfigGroup iconGroup(mpConfig, *it + "Icons");
mSizes[i] = iconGroup.readEntry("Size", mSizes[i]);
mbAnimated[i] = iconGroup.readEntry("Animated", mbAnimated[i]);
for (it2=mStates.constBegin(), j=0; it2!=mStates.constEnd(); ++it2, j++)
{
QString tmp = iconGroup.readEntry(*it2 + "Effect", QString());
if (tmp == "togray")
effect = KIconEffect::ToGray;
else if (tmp == "colorize")
effect = KIconEffect::Colorize;
else if (tmp == "togamma")
effect = KIconEffect::ToGamma;
else if (tmp == "desaturate")
effect = KIconEffect::DeSaturate;
else if (tmp == "tomonochrome")
effect = KIconEffect::ToMonochrome;
else if (tmp == "none")
effect = KIconEffect::NoEffect;
else continue;
mEffects[i][j].type = effect;
mEffects[i][j].value = iconGroup.readEntry(*it2 + "Value", 0.0);
mEffects[i][j].color = iconGroup.readEntry(*it2 + "Color",QColor());
mEffects[i][j].color2 = iconGroup.readEntry(*it2 + "Color2", QColor());
mEffects[i][j].transparent = iconGroup.readEntry(*it2 + "SemiTransparent", false);
}
}
}
void KIconConfig::apply()
{
mpUsageList->setCurrentRow(mUsage);
int delta = 1000, dw, index = -1, size = 0, i;
QList<int>::Iterator it;
mpSizeBox->clear();
if (mUsage < KIconLoader::LastGroup) {
for (it=mAvSizes[mUsage].begin(), i=0; it!=mAvSizes[mUsage].end(); ++it, i++)
{
mpSizeBox->addItem(QString().setNum(*it));
dw = abs(mSizes[mUsage] - *it);
if (dw < delta)
{
delta = dw;
index = i;
size = *it;
}
}
if (index != -1)
{
mpSizeBox->setCurrentIndex(index);
mSizes[mUsage] = size; // best or exact match
}
mpAnimatedCheck->setChecked(mbAnimated[mUsage]);
}
}
void KIconConfig::preview(int i)
{
// Apply effects ourselves because we don't want to sync
// the configuration every preview.
int viewedGroup = (mUsage == KIconLoader::LastGroup) ? KIconLoader::FirstGroup : mUsage;
QPixmap pm = mpLoader->loadIcon(mExample, KIconLoader::NoGroup, mSizes[viewedGroup]);
QImage img = pm.toImage();
Effect &effect = mEffects[viewedGroup][i];
img = mpEffect->apply(img, effect.type,
effect.value, effect.color, effect.color2, effect.transparent);
pm = QPixmap::fromImage(img);
mpPreview[i]->setPixmap(pm);
}
void KIconConfig::preview()
{
preview(0);
preview(1);
preview(2);
}
void KIconConfig::load()
{
read();
apply();
emit changed(false);
for (int i=0; i<KIconLoader::LastGroup; i++)
mbChanged[i] = false;
preview();
}
void KIconConfig::save()
{
int i, j;
QStringList::ConstIterator it, it2;
for (it=mGroups.constBegin(), i=0; it!=mGroups.constEnd(); ++it, i++)
{
KConfigGroup cg(mpConfig, *it + "Icons");
cg.writeEntry("Size", mSizes[i], KConfig::Normal|KConfig::Global);
cg.writeEntry("Animated", mbAnimated[i], KConfig::Normal|KConfig::Global);
for (it2=mStates.constBegin(), j=0; it2!=mStates.constEnd(); ++it2, j++)
{
QString tmp;
switch (mEffects[i][j].type)
{
case KIconEffect::ToGray:
tmp = "togray";
break;
case KIconEffect::ToGamma:
tmp = "togamma";
break;
case KIconEffect::Colorize:
tmp = "colorize";
break;
case KIconEffect::DeSaturate:
tmp = "desaturate";
break;
case KIconEffect::ToMonochrome:
tmp = "tomonochrome";
break;
default:
tmp = "none";
break;
}
cg.writeEntry(*it2 + "Effect", tmp, KConfig::Normal|KConfig::Global);
cg.writeEntry(*it2 + "Value", mEffects[i][j].value, KConfig::Normal|KConfig::Global);
cg.writeEntry(*it2 + "Color", mEffects[i][j].color, KConfig::Normal|KConfig::Global);
cg.writeEntry(*it2 + "Color2", mEffects[i][j].color2, KConfig::Normal|KConfig::Global);
cg.writeEntry(*it2 + "SemiTransparent", mEffects[i][j].transparent, KConfig::Normal|KConfig::Global);
}
}
mpConfig->sync();
emit changed(false);
// Emit KIPC change message.
for (int i=0; i<KIconLoader::LastGroup; i++)
{
if (mbChanged[i])
{
KGlobalSettings::self()->emitChange(KGlobalSettings::IconChanged, i);
mbChanged[i] = false;
}
}
}
void KIconConfig::defaults()
{
initDefaults();
apply();
preview();
emit changed(true);
}
void KIconConfig::slotUsage(int index)
{
if (index == -1)
return;
mUsage = index;
if ( mUsage == KIconLoader::LastGroup )
{
mpSizeBox->setEnabled(false);
mpAnimatedCheck->setEnabled(false);
}
else
{
mpSizeBox->setEnabled(true);
mpAnimatedCheck->setEnabled( mUsage == KIconLoader::Desktop );
}
apply();
preview();
}
void KIconConfig::EffectSetup(int state)
{
int viewedGroup = (mUsage == KIconLoader::LastGroup) ? KIconLoader::FirstGroup : mUsage;
QPixmap pm = mpLoader->loadIcon(mExample, KIconLoader::NoGroup, mSizes[viewedGroup]);
QImage img = pm.toImage();
QString caption;
switch (state)
{
case 0 : caption = i18n("Setup Default Icon Effect"); break;
case 1 : caption = i18n("Setup Active Icon Effect"); break;
case 2 : caption = i18n("Setup Disabled Icon Effect"); break;
}
KIconEffectSetupDialog dlg(mEffects[viewedGroup][state], mDefaultEffect[state], caption, img, this);
if (dlg.exec() == QDialog::Accepted)
{
if (mUsage == KIconLoader::LastGroup) {
for (int i=0; i<KIconLoader::LastGroup; i++)
mEffects[i][state] = dlg.effect();
} else {
mEffects[mUsage][state] = dlg.effect();
}
// AK - can this call be moved therefore removing
// code duplication?
emit changed(true);
if (mUsage == KIconLoader::LastGroup) {
for (int i=0; i<KIconLoader::LastGroup; i++)
mbChanged[i] = true;
} else {
mbChanged[mUsage] = true;
}
}
preview(state);
}
void KIconConfig::slotSize(int index)
{
Q_ASSERT(mUsage < KIconLoader::LastGroup);
mSizes[mUsage] = mAvSizes[mUsage][index];
preview();
emit changed(true);
mbChanged[mUsage] = true;
}
void KIconConfig::slotAnimatedCheck(bool check)
{
Q_ASSERT(mUsage < KIconLoader::LastGroup);
if (mbAnimated[mUsage] != check)
{
mbAnimated[mUsage] = check;
emit changed(true);
mbChanged[mUsage] = true;
}
}
KIconEffectSetupDialog::KIconEffectSetupDialog(const Effect &effect,
const Effect &defaultEffect,
const QString &caption, const QImage &image,
QWidget *parent, char *name)
: KDialog( parent ),
mEffect(effect),
mDefaultEffect(defaultEffect),
mExample(image)
{
setObjectName( name );
setModal( true );
setCaption( caption );
setButtons( Default|Ok|Cancel );
mpEffect = new KIconEffect;
QLabel *lbl;
QGroupBox *frame;
QGridLayout *grid;
QWidget *page = new QWidget(this);
setMainWidget(page);
QGridLayout *top = new QGridLayout(page);
top->setMargin(0);
top->setColumnStretch(0,1);
top->setColumnStretch(1,2);
top->setRowStretch(1,1);
lbl = new QLabel(i18n("&Effect:"), page);
top->addWidget(lbl, 0, 0, Qt::AlignLeft);
mpEffectBox = new QListWidget(page);
mpEffectBox->addItem(i18n("No Effect"));
mpEffectBox->addItem(i18n("To Gray"));
mpEffectBox->addItem(i18n("Colorize"));
mpEffectBox->addItem(i18n("Gamma"));
mpEffectBox->addItem(i18n("Desaturate"));
mpEffectBox->addItem(i18n("To Monochrome"));
connect(mpEffectBox, SIGNAL(currentRowChanged(int)), SLOT(slotEffectType(int)));
top->addWidget(mpEffectBox, 1, 0, 2, 1, Qt::AlignLeft);
lbl->setBuddy(mpEffectBox);
mpSTCheck = new QCheckBox(i18n("&Semi-transparent"), page);
connect(mpSTCheck, SIGNAL(toggled(bool)), SLOT(slotSTCheck(bool)));
top->addWidget(mpSTCheck, 3, 0, Qt::AlignLeft);
frame = new QGroupBox(i18n("Preview"), page);
top->addWidget(frame, 0, 1, 2, 1);
grid = new QGridLayout(frame);
grid->addItem(new QSpacerItem(0, fontMetrics().lineSpacing()), 0, 0);
grid->setRowStretch(1, 1);
mpPreview = new QLabel(frame);
mpPreview->setAlignment(Qt::AlignCenter);
mpPreview->setMinimumSize(105, 105);
grid->addWidget(mpPreview, 1, 0);
mpEffectGroup = new QGroupBox(i18n("Effect Parameters"), page);
top->addWidget(mpEffectGroup, 2, 1, 2, 1);
QFormLayout *form = new QFormLayout(mpEffectGroup);
mpEffectSlider = new QSlider(Qt::Horizontal, mpEffectGroup);
mpEffectSlider->setMinimum(0);
mpEffectSlider->setMaximum(100);
mpEffectSlider->setPageStep(5);
connect(mpEffectSlider, SIGNAL(valueChanged(int)), SLOT(slotEffectValue(int)));
form->addRow(i18n("&Amount:"), mpEffectSlider);
mpEffectLabel = static_cast<QLabel *>(form->labelForField(mpEffectSlider));
mpEColButton = new KColorButton(mpEffectGroup);
connect(mpEColButton, SIGNAL(changed(const QColor &)),
SLOT(slotEffectColor(const QColor &)));
form->addRow(i18n("Co&lor:"), mpEColButton);
mpEffectColor = static_cast<QLabel *>(form->labelForField(mpEColButton));
mpECol2Button = new KColorButton(mpEffectGroup);
connect(mpECol2Button, SIGNAL(changed(const QColor &)),
SLOT(slotEffectColor2(const QColor &)));
form->addRow(i18n("&Second color:"), mpECol2Button);
mpEffectColor2 = static_cast<QLabel *>(form->labelForField(mpECol2Button));
init();
preview();
}
KIconEffectSetupDialog::~KIconEffectSetupDialog()
{
delete mpEffect;
}
void KIconEffectSetupDialog::init()
{
mpEffectBox->setCurrentRow(mEffect.type);
mpEffectSlider->setEnabled(mEffect.type != KIconEffect::NoEffect);
mpEColButton->setEnabled(mEffect.type == KIconEffect::Colorize || mEffect.type == KIconEffect::ToMonochrome);
mpECol2Button->setEnabled(mEffect.type == KIconEffect::ToMonochrome);
mpEffectSlider->setValue((int) (100.0 * mEffect.value + 0.5));
mpEColButton->setColor(mEffect.color);
mpECol2Button->setColor(mEffect.color2);
mpSTCheck->setChecked(mEffect.transparent);
}
void KIconEffectSetupDialog::slotEffectValue(int value)
{
mEffect.value = 0.01 * value;
preview();
}
void KIconEffectSetupDialog::slotEffectColor(const QColor &col)
{
mEffect.color = col;
preview();
}
void KIconEffectSetupDialog::slotEffectColor2(const QColor &col)
{
mEffect.color2 = col;
preview();
}
void KIconEffectSetupDialog::slotEffectType(int type)
{
if (type == -1)
return;
mEffect.type = type;
mpEffectGroup->setEnabled(mEffect.type != KIconEffect::NoEffect);
mpEffectSlider->setEnabled(mEffect.type != KIconEffect::NoEffect);
mpEffectColor->setEnabled(mEffect.type == KIconEffect::Colorize || mEffect.type == KIconEffect::ToMonochrome);
mpEColButton->setEnabled(mEffect.type == KIconEffect::Colorize || mEffect.type == KIconEffect::ToMonochrome);
mpEffectColor2->setEnabled(mEffect.type == KIconEffect::ToMonochrome);
mpECol2Button->setEnabled(mEffect.type == KIconEffect::ToMonochrome);
preview();
}
void KIconEffectSetupDialog::slotSTCheck(bool b)
{
mEffect.transparent = b;
preview();
}
void KIconEffectSetupDialog::slotDefault()
{
mEffect = mDefaultEffect;
init();
preview();
}
void KIconEffectSetupDialog::preview()
{
QPixmap pm;
QImage img = mExample.copy();
img = mpEffect->apply(img, mEffect.type,
mEffect.value, mEffect.color, mEffect.color2, mEffect.transparent);
pm = QPixmap::fromImage(img);
mpPreview->setPixmap(pm);
}
#include "icons.moc"

View file

@ -0,0 +1,262 @@
[Desktop Entry]
Exec=kcmshell4 icons
Icon=preferences-desktop-icons
Type=Service
X-KDE-ServiceTypes=KCModule
X-DocPath=kcontrol/icons/index.html
X-KDE-Library=kcm_icons
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=application-appearance
X-KDE-Weight=70
Name=Icons
Name[af]=Ikone
Name[ar]=أيقونات
Name[as]=
Name[ast]=Iconos
Name[be]=Значкі
Name[be@latin]=Ikony
Name[bg]=Икони
Name[bn]=
Name[bn_IN]=
Name[br]=Arlunioù
Name[bs]=Ikone
Name[ca]=Icones
Name[ca@valencia]=Icones
Name[cs]=Ikony
Name[csb]=Ikònë
Name[cy]=Eicon
Name[da]=Ikoner
Name[de]=Symbole
Name[el]=Εικονίδια
Name[en_GB]=Icons
Name[eo]=Piktogramoj
Name[es]=Iconos
Name[et]=Ikoonid
Name[eu]=Ikonoak
Name[fa]=شمایلها
Name[fi]=Kuvakkeet
Name[fr]=Icônes
Name[fy]=Byldkaikes
Name[ga]=Deilbhíní
Name[gl]=Iconas
Name[gu]=િ
Name[he]=סמלים
Name[hi]=
Name[hne]=ि
Name[hr]=Ikone
Name[hsb]=Piktogramy
Name[hu]=Ikonok
Name[ia]=Icones
Name[id]=Ikon
Name[is]=Táknmyndir
Name[it]=Icone
Name[ja]=
Name[ka]=
Name[kk]=Таңбашалар
Name[km]=
Name[kn]=ಿ
Name[ko]=
Name[ku]=Îkon
Name[lt]=Ženkliukai
Name[lv]=Ikonas
Name[mai]=
Name[mk]=Икони
Name[ml]=ി
Name[mr]=ि
Name[ms]=Ikon
Name[nb]=Ikoner
Name[nds]=Lüttbiller
Name[ne]=ि
Name[nl]=Pictogrammen
Name[nn]=Ikon
Name[oc]=Icònas
Name[or]=ି ି
Name[pa]=
Name[pl]=Ikony
Name[pt]=Ícones
Name[pt_BR]=Ícones
Name[ro]=Pictograme
Name[ru]=Значки
Name[se]=Govažat
Name[si]=
Name[sk]=Ikony
Name[sl]=Ikone
Name[sr]=Иконе
Name[sr@ijekavian]=Иконе
Name[sr@ijekavianlatin]=Ikone
Name[sr@latin]=Ikone
Name[sv]=Ikoner
Name[ta]=ி
Name[te]=ి
Name[tg]=Нишонаҳо
Name[th]=
Name[tr]=Simgeler
Name[ug]=سىنبەلگىلەر
Name[uk]=Піктограми
Name[uz]=Nishonchalar
Name[uz@cyrillic]=Нишончалар
Name[vi]=Biu tưng
Name[wa]=Imådjetes
Name[xh]=Imphawu zemmifanekiso
Name[x-test]=xxIconsxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Customize KDE Icons
Comment[af]=Pasmaak Kde Ikoone
Comment[ar]=خصّص أيقونات كدي
Comment[ast]=Personaliza los iconos de KDE
Comment[be]=Настаўленні значак KDE
Comment[be@latin]=Naładź ikony KDE
Comment[bg]=Настройване и избор на тема с икони
Comment[bn]=.ি.. ি
Comment[bn_IN]=KDE ি ি ি
Comment[br]=Neuziañ arlunioù KDE
Comment[bs]=Prilagodite ikone u KDEu
Comment[ca]=Configura les icones del KDE
Comment[ca@valencia]=Configura les icones del KDE
Comment[cs]=Přizpůsobení ikon KDE
Comment[csb]=Dopasëjë ikònë KDE
Comment[cy]=Addasu Eiconau KDE
Comment[da]=Brugerdefinér KDE-ikoner
Comment[de]=KDE-Symbole einrichten
Comment[el]=Προσαρμογή των εικονιδίων του KDE
Comment[en_GB]=Customise KDE Icons
Comment[eo]=Tajlori la piktogramojn de KDE
Comment[es]=Personalizar los iconos de KDE
Comment[et]=KDE ikoonide kohandamine
Comment[eu]=KDE ikonoak pertsonalizatzea
Comment[fa]=سفارشیسازی شمایلهای KDE
Comment[fi]=KDE:n kuvakkeiden asetukset
Comment[fr]=Personnalisation des icônes de KDE
Comment[fy]=KDE-byldkaikes oanpasse
Comment[ga]=Saincheap Deilbhíní KDE
Comment[gl]=Personaliza as iconas de KDE
Comment[gu]=KDE િ
Comment[he]=שינוי הגדרות הסמלים של KDE
Comment[hi]=
Comment[hne]= ि ि
Comment[hr]=Prilagođavanje KDE ikona
Comment[hsb]=KDE-piktogramy připrawić
Comment[hu]=A KDE ikonok testreszabása
Comment[ia]=Personalisa icones de KDE
Comment[id]=Sesuaikan Ikon KDE
Comment[is]=Stilla táknmyndir KDE
Comment[it]=Personalizza le icone di KDE
Comment[ja]=KDE
Comment[ka]=KDE
Comment[kk]=KDE таңбашаларын баптау
Comment[km]= KDE
Comment[kn]=ಿ ಿ ಿ
Comment[ko]=KDE
Comment[ku]=Îkonên KDE'yê takekes bike
Comment[lt]=KDE ženkliukų derinimas
Comment[lv]=Pielāgot KDE ikonas
Comment[mai]= ि
Comment[mk]=Прилагоди ги иконите на KDE
Comment[ml]=ി ി ി
Comment[mr]= ि ि
Comment[ms]=Ikon KDE Langganan
Comment[nb]=Tilpass ikonene i KDE
Comment[nds]=Lüttbiller för KDE utsöken
Comment[ne]= ि
Comment[nl]=KDE-pictogrammen aanpassen
Comment[nn]=Tilpass KDE-ikon
Comment[or]=KDE ିି
Comment[pa]=KDE
Comment[pl]=Własne ikony KDE
Comment[pt]=Alterar os Ícones do KDE
Comment[pt_BR]=Personaliza os ícones do KDE
Comment[ro]=Personalizează pictogramele KDE
Comment[ru]=Настройка значков KDE
Comment[se]=Heivet KDE-govažiid
Comment[si]=KDE
Comment[sk]=Prispôsobenie ikon v KDE
Comment[sl]=Prilagodite ikone za KDE
Comment[sr]=Прилагодите иконе у КДЕу
Comment[sr@ijekavian]=Прилагодите иконе у КДЕу
Comment[sr@ijekavianlatin]=Prilagodite ikone u KDEu
Comment[sr@latin]=Prilagodite ikone u KDEu
Comment[sv]=Anpassa KDE:s ikoner
Comment[ta]= ி
Comment[te]=KDE ి
Comment[tg]=Танзимоти нишонаҳои KDE
Comment[th]= KDE
Comment[tr]=KDE Simgelerini Özelleştir
Comment[ug]=ئۆزلەشتۈرگەن KDE سىنبەلگىلەر
Comment[uk]=Налаштування піктограм KDE
Comment[uz]=KDE nishonchalarini moslash
Comment[uz@cyrillic]=KDE нишончаларини мослаш
Comment[vi]=Tu chnh các biu tưng ca KDE
Comment[wa]=Mete les imådjetes KDE a vosse môde
Comment[xh]=Yenza Imphawu zomfanekiso ze KDE Ngokwemfuneko
Comment[x-test]=xxCustomize KDE Iconsxx
Comment[zh_CN]= KDE
Comment[zh_TW]= KDE
X-KDE-Keywords=icons,effects,size,hicolor,locolor
X-KDE-Keywords[ar]=أيقونات,مؤثرات,حجم,ألوان داكنة,ألوان خافتة
X-KDE-Keywords[bg]=icons,effects,size,hicolor,locolor,икони,ефекти,размер
X-KDE-Keywords[bn]=icons,effects,size,hicolor,locolor
X-KDE-Keywords[bs]=icons,effects,size,hicolor,locolor,ikone,efekti,veličina,boje
X-KDE-Keywords[ca]=icones,efectes,mida,color alt,color baix
X-KDE-Keywords[ca@valencia]=icones,efectes,mida,color alt,color baix
X-KDE-Keywords[cs]=ikony,efekty,velikost,hicolor,locolor
X-KDE-Keywords[da]=ikoner,effekter,størrelse,hicolor,locolor
X-KDE-Keywords[de]=Symbole,Icons,Effekte,Größe,16-Bit-Farben,8-Bit-Farben
X-KDE-Keywords[el]=εικονίδια,εφέ,μέγεθος,hicolor,locolor
X-KDE-Keywords[en_GB]=icons,effects,size,hicolor,locolor
X-KDE-Keywords[eo]=piktogramoj,efektoj,grando,hicolor,locolor
X-KDE-Keywords[es]=iconos,efectos,tamaño,hicolor,locolor
X-KDE-Keywords[et]=ikoonid,efektid,suurus,hicolor,locolor
X-KDE-Keywords[eu]=ikonoak,efektuak,tamaina,hicolor,locolor
X-KDE-Keywords[fa]=icons,effects,size,hicolor,locolor
X-KDE-Keywords[fi]=kuvakkeet,tehosteet,koko,hicolor,locolor
X-KDE-Keywords[fr]=icônes, effets, taille, hicolor, locolor
X-KDE-Keywords[ga]=deilbhíní,maisíochtaí,méid,ard-dath,ísealdath
X-KDE-Keywords[gl]=iconas, efectos, tamaño, hicolor, locolor
X-KDE-Keywords[gu]=િ,,,,
X-KDE-Keywords[he]=סמלים,אפקטים,icons,effects,size,hicolor,locolor
X-KDE-Keywords[hi]=, , , hicolor, locolor
X-KDE-Keywords[hu]=ikonok,effektusok,méret,hicolor,locolor
X-KDE-Keywords[ia]=icones,effectos,grandor,alte color,basse color
X-KDE-Keywords[id]=ikon,efek,ukuran,warna tinggi,warna rendah
X-KDE-Keywords[is]=táknmynd,sjónhverfingar,brellur,stærð,hicolor,locolor
X-KDE-Keywords[it]=icone,effetti,dimensione,molti colori,pochi colori
X-KDE-Keywords[ja]=icons,effects,size,hicolor,locolor
X-KDE-Keywords[kk]=icons,effects,size,hicolor,locolor
X-KDE-Keywords[km]=
X-KDE-Keywords[ko]=icons,effects,size,hicolor,locolor,,,,
X-KDE-Keywords[lv]=ikonas,efekti,izmērs,krāsa
X-KDE-Keywords[mr]=ि, ि, , ,
X-KDE-Keywords[nb]=ikoner,effekter,størrelse,fargesterk,fargesvak
X-KDE-Keywords[nds]=Lüttbiller,Effekten,Grött,Hoochklöör,HiColor,LoColor
X-KDE-Keywords[nl]=pictoogrammen,effecten,grootte,hi-kleur,lo-kleur
X-KDE-Keywords[nn]=ikon,effektar,storleik,hicolor,locolor
X-KDE-Keywords[pa]=,,,,-,
X-KDE-Keywords[pl]=ikony,efekty,rozmiar,hicolor,locolor
X-KDE-Keywords[pt]=ícones,efeitos,tamanho,muitas cores,poucas cores
X-KDE-Keywords[pt_BR]=ícones,efeitos,tamanho,muitas cores,poucas cores
X-KDE-Keywords[ro]=pictograme,efecte,mărime,hicolor,locolor
X-KDE-Keywords[ru]=icons,effects,size,hicolor,locolor,значки,иконки,эффекты,размер,цвет
X-KDE-Keywords[sk]=ikony,efekty,veľkosť,hicolor,locolor
X-KDE-Keywords[sl]=ikone,učinki,velikost,barve,barva
X-KDE-Keywords[sr]=icons,effects,size,hicolor,locolor,иконе,ефекти,величина,боја
X-KDE-Keywords[sr@ijekavian]=icons,effects,size,hicolor,locolor,иконе,ефекти,величина,боја
X-KDE-Keywords[sr@ijekavianlatin]=icons,effects,size,hicolor,locolor,ikone,efekti,veličina,boja
X-KDE-Keywords[sr@latin]=icons,effects,size,hicolor,locolor,ikone,efekti,veličina,boja
X-KDE-Keywords[sv]=ikoner,effekter,storlek,hicolor,locolor
X-KDE-Keywords[tg]=нишонаҳо,таъсирҳо,андоза,ранги баланд,ранги паст
X-KDE-Keywords[tr]=simgeler,efektler,boyut,yüksekrenk,düşükrenk
X-KDE-Keywords[ug]=سىنبەلگىلەر، ئۈنۈملەر، چوڭلۇق، hicolor، locolor
X-KDE-Keywords[uk]=icons;effects;size;hicolor;locolor;піктограми;значки;іконки;ефект;ефекти;розмір;колір
X-KDE-Keywords[vi]=biu tưng,hiu ng,c,nhiu màu, ít màu, icons,effects,size,hicolor,locolor
X-KDE-Keywords[wa]=imådjetes,efets,grandeu,grandeur,coleur
X-KDE-Keywords[x-test]=xxicons,effects,size,hicolor,locolorxx
X-KDE-Keywords[zh_CN]=icons,effects,size,hicolor,locolor,,,,,
X-KDE-Keywords[zh_TW]=icons,effects,size,hicolor,locolor
Categories=Qt;KDE;X-KDE-settings-looknfeel;

145
kcontrol/icons/icons.h Normal file
View file

@ -0,0 +1,145 @@
/* vi: ts=8 sts=4 sw=4
*
* This file is part of the KDE project, module kcmdisplay.
* Copyright (C) 2000 Geert Jansen <jansen@kde.org>
* with minor additions and based on ideas from
* Torsten Rahn <torsten@kde.org>
*
* You can Freely distribute this program under the GNU General Public
* License. See the file "COPYING" for the exact licensing terms.
*/
#ifndef __icons_h__
#define __icons_h__
#include <QColor>
#include <QImage>
#include <kcmodule.h>
#include <kdialog.h>
#include <kconfig.h>
#include <KSharedConfig>
class QCheckBox;
class QColor;
class QComboBox;
class QGridLayout;
class QGroupBox;
class QLabel;
class QListWidget;
class QPushButton;
class QSlider;
class QTabWidget;
class QWidget;
class KColorButton;
class KIconEffect;
class KIconLoader;
struct Effect
{
int type;
float value;
QColor color;
QColor color2;
bool transparent;
};
/**
* The General Icons tab in kcontrol.
*/
class KIconConfig: public KCModule
{
Q_OBJECT
public:
KIconConfig(const KComponentData &inst, QWidget *parent);
~KIconConfig();
virtual void load();
virtual void save();
virtual void defaults();
void preview();
private Q_SLOTS:
void slotEffectSetup0() { EffectSetup(0); }
void slotEffectSetup1() { EffectSetup(1); }
void slotEffectSetup2() { EffectSetup(2); }
void slotUsage(int index);
void slotSize(int index);
void slotAnimatedCheck(bool check);
private:
void preview(int i);
void EffectSetup(int state);
QPushButton *addPreviewIcon(int i, const QString &str, QWidget *parent, QGridLayout *lay);
void init();
void initDefaults();
void read();
void apply();
bool mbChanged[6], mbAnimated[6];
int mSizes[6];
QList<int> mAvSizes[6];
Effect mEffects[6][3];
Effect mDefaultEffect[3];
int mUsage;
QString mTheme, mExample;
QStringList mGroups, mStates;
KIconEffect *mpEffect;
KIconLoader *mpLoader;
KSharedConfigPtr mpConfig;
QLabel *mpPreview[3];
QListWidget *mpUsageList;
QComboBox *mpSizeBox;
QCheckBox *wordWrapCB, *underlineCB, *mpAnimatedCheck;
QTabWidget *m_pTabWidget;
QWidget *m_pTab1;
};
class KIconEffectSetupDialog: public KDialog
{
Q_OBJECT
public:
KIconEffectSetupDialog(const Effect &, const Effect &,
const QString &, const QImage &,
QWidget *parent=0L, char *name=0L);
~KIconEffectSetupDialog();
Effect effect() { return mEffect; }
protected:
void preview();
void init();
protected Q_SLOTS:
void slotEffectValue(int value);
void slotEffectColor(const QColor &col);
void slotEffectColor2(const QColor &col);
void slotEffectType(int type);
void slotSTCheck(bool b);
void slotDefault();
private:
KIconEffect *mpEffect;
QListWidget *mpEffectBox;
QCheckBox *mpSTCheck;
QSlider *mpEffectSlider;
KColorButton *mpEColButton;
KColorButton *mpECol2Button;
Effect mEffect;
Effect mDefaultEffect;
QImage mExample;
QGroupBox *mpEffectGroup;
QLabel *mpPreview, *mpEffectLabel, *mpEffectColor, *mpEffectColor2;
};
#endif

View file

@ -0,0 +1,5 @@
[KNewStuff3]
ProvidersUrl=http://download.kde.org/ocs/providers.xml
Categories=KDE Icon Theme
StandardResource=icon
Uncompress=true

View file

@ -0,0 +1,511 @@
/**
* Copyright (c) 2000 Antonio Larrosa <larrosa@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "iconthemes.h"
#include <config-runtime.h>
#include <stdlib.h>
#include <unistd.h>
#include <QFileInfo>
#include <QLabel>
//Added by qt3to4:
#include <QPixmap>
#include <QVBoxLayout>
#include <QFrame>
#include <QHBoxLayout>
#include <QTreeWidget>
#include <QPainter>
#include <QSvgRenderer>
#include <kdebug.h>
#include <kapplication.h>
#include <kbuildsycocaprogressdialog.h>
#include <klocale.h>
#include <kshareddatacache.h>
#include <kicon.h>
#include <kpushbutton.h>
#include <kstandarddirs.h>
#include <kservice.h>
#include <kconfig.h>
#include <knewstuff3/downloaddialog.h>
#undef Unsorted
#include <kurlrequesterdialog.h>
#include <kmessagebox.h>
#include <kiconloader.h>
#include <k3icon_p.h> // this private header is only installed for us!
#include <kprogressdialog.h>
#include <kio/job.h>
#include <kio/deletejob.h>
#include <kio/netaccess.h>
#include <ktar.h>
#include <kglobalsettings.h>
static const int ThemeNameRole = Qt::UserRole + 1;
IconThemesConfig::IconThemesConfig(const KComponentData &inst, QWidget *parent)
: KCModule(inst, parent)
{
QVBoxLayout *topLayout = new QVBoxLayout(this);
QFrame *m_preview=new QFrame(this);
m_preview->setMinimumHeight(80);
QHBoxLayout *lh2=new QHBoxLayout( m_preview );
lh2->setSpacing(0);
m_previewExec=new QLabel(m_preview);
m_previewExec->setPixmap(DesktopIcon("system-run"));
m_previewFolder=new QLabel(m_preview);
m_previewFolder->setPixmap(DesktopIcon("folder"));
m_previewDocument=new QLabel(m_preview);
m_previewDocument->setPixmap(DesktopIcon("document"));
lh2->addStretch(10);
lh2->addWidget(m_previewExec);
lh2->addStretch(1);
lh2->addWidget(m_previewFolder);
lh2->addStretch(1);
lh2->addWidget(m_previewDocument);
lh2->addStretch(10);
m_iconThemes=new QTreeWidget(this/*"IconThemeList"*/);
QStringList columns;
columns.append(i18n("Name"));
columns.append(i18n("Description"));
m_iconThemes->setHeaderLabels(columns);
m_iconThemes->setAllColumnsShowFocus( true );
m_iconThemes->setRootIsDecorated(false);
m_iconThemes->setSortingEnabled(true);
m_iconThemes->sortByColumn(0, Qt::AscendingOrder);
connect(m_iconThemes,SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
SLOT(themeSelected(QTreeWidgetItem *)));
KPushButton *installButton=new KPushButton( KIcon("document-import"), i18n("Install Theme File..."), this);
installButton->setObjectName( QLatin1String("InstallNewTheme" ));
installButton->setToolTip(i18n("Install a theme archive file you already have locally"));
installButton->setWhatsThis(i18n("If you already have a theme archive locally, this button will unpack it and make it available for KDE applications"));
connect(installButton,SIGNAL(clicked()),SLOT(installNewTheme()));
KPushButton *newButton=new KPushButton( KIcon("get-hot-new-stuff"), i18n("Get New Themes..."), this);
newButton->setObjectName( QLatin1String("GetNewTheme" ));
newButton->setToolTip(i18n("Get new themes from the Internet"));
newButton->setWhatsThis(i18n("You need to be connected to the Internet to use this action. A dialog will display a list of themes from the http://www.kde.org website. Clicking the Install button associated with a theme will install this theme locally."));
connect(newButton,SIGNAL(clicked()),SLOT(getNewTheme()));
m_removeButton=new KPushButton( KIcon("edit-delete"), i18n("Remove Theme"), this);
m_removeButton->setObjectName( QLatin1String("RemoveTheme" ));
m_removeButton->setToolTip(i18n("Remove the selected theme from your disk"));
m_removeButton->setWhatsThis(i18n("This will remove the selected theme from your disk."));
connect(m_removeButton,SIGNAL(clicked()),SLOT(removeSelectedTheme()));
topLayout->addWidget(
new QLabel(i18n("Select the icon theme you want to use:"), this));
topLayout->addWidget(m_preview);
topLayout->addWidget(m_iconThemes);
QHBoxLayout *lg = new QHBoxLayout();
lg->addWidget(newButton);
lg->addStretch(0);
lg->addWidget(installButton);
lg->addWidget(m_removeButton);
topLayout->addLayout(lg);
loadThemes();
m_defaultTheme=iconThemeItem(KIconTheme::current());
if (m_defaultTheme)
m_iconThemes->setCurrentItem(m_defaultTheme);
updateRemoveButton();
m_iconThemes->setFocus();
}
IconThemesConfig::~IconThemesConfig()
{
}
QTreeWidgetItem *IconThemesConfig::iconThemeItem(const QString &name)
{
for (int i = 0; i < m_iconThemes->topLevelItemCount(); ++i)
if (m_iconThemes->topLevelItem(i)->data(0, ThemeNameRole).toString()==name)
return m_iconThemes->topLevelItem(i);
return 0L;
}
void IconThemesConfig::loadThemes()
{
m_iconThemes->clear();
const QStringList themelist(KIconTheme::list());
QString name;
QString tname;
QStringList::const_iterator it;
QMap <QString, QString> themeNames;
for (it=themelist.constBegin(); it != themelist.constEnd(); ++it)
{
KIconTheme icontheme(*it);
if (!icontheme.isValid()) kDebug() << "notvalid\n";
if (icontheme.isHidden()) continue;
name=icontheme.name();
tname=name;
// Just in case we have duplicated icon theme names on separate directories
for (int i = 2; themeNames.find(tname) != themeNames.end(); ++i)
tname=QString("%1-%2").arg(name).arg(i);
QTreeWidgetItem *newitem = new QTreeWidgetItem();
newitem->setText(0, name);
newitem->setText(1, icontheme.description());
newitem->setData(0, ThemeNameRole, *it);
m_iconThemes->addTopLevelItem(newitem);
themeNames.insert(name, *it);
}
m_iconThemes->resizeColumnToContents(0);
}
void IconThemesConfig::installNewTheme()
{
KUrl themeURL = KUrlRequesterDialog::getUrl(QString(), this,
i18n("Drag or Type Theme URL"));
if (themeURL.url().isEmpty()) return;
kDebug() << themeURL.prettyUrl();
QString themeTmpFile;
// themeTmpFile contains the name of the downloaded file
if (!KIO::NetAccess::download(themeURL, themeTmpFile, this)) {
QString sorryText;
if (themeURL.isLocalFile())
sorryText = i18n("Unable to find the icon theme archive %1.",
themeURL.prettyUrl());
else
sorryText = i18n("Unable to download the icon theme archive;\n"
"please check that address %1 is correct.",
themeURL.prettyUrl());
KMessageBox::sorry(this, sorryText);
return;
}
QStringList themesNames = findThemeDirs(themeTmpFile);
if (themesNames.isEmpty()) {
QString invalidArch(i18n("The file is not a valid icon theme archive."));
KMessageBox::error(this, invalidArch);
KIO::NetAccess::removeTempFile(themeTmpFile);
return;
}
if (!installThemes(themesNames, themeTmpFile)) {
//FIXME: make me able to know what is wrong....
// QStringList instead of bool?
QString somethingWrong =
i18n("A problem occurred during the installation process; "
"however, most of the themes in the archive have been installed");
KMessageBox::error(this, somethingWrong);
}
KIO::NetAccess::removeTempFile(themeTmpFile);
KIconLoader::global()->newIconLoader();
loadThemes();
QTreeWidgetItem *item=iconThemeItem(KIconTheme::current());
if (item)
m_iconThemes->setCurrentItem(item);
updateRemoveButton();
}
bool IconThemesConfig::installThemes(const QStringList &themes, const QString &archiveName)
{
bool everythingOk = true;
QString localThemesDir(KStandardDirs::locateLocal("icon", "./"));
KProgressDialog progressDiag(this,
i18n("Installing icon themes"),
QString());
progressDiag.setModal(true);
progressDiag.setAutoClose(true);
QProgressBar* progressBar = progressDiag.progressBar();
progressBar->setMaximum(themes.count());
progressDiag.show();
KTar archive(archiveName);
archive.open(QIODevice::ReadOnly);
kapp->processEvents();
const KArchiveDirectory* rootDir = archive.directory();
KArchiveDirectory* currentTheme;
for (QStringList::ConstIterator it = themes.begin();
it != themes.end();
++it) {
progressDiag.setLabelText(
i18n("<qt>Installing <strong>%1</strong> theme</qt>",
*it));
kapp->processEvents();
if (progressDiag.wasCancelled())
break;
currentTheme = dynamic_cast<KArchiveDirectory*>(
const_cast<KArchiveEntry*>(
rootDir->entry(*it)));
if (currentTheme == NULL) {
// we tell back that something went wrong, but try to install as much
// as possible
everythingOk = false;
continue;
}
currentTheme->copyTo(localThemesDir + *it);
progressBar->setValue(progressBar->value()+1);
}
archive.close();
return everythingOk;
}
QStringList IconThemesConfig::findThemeDirs(const QString &archiveName)
{
QStringList foundThemes;
KTar archive(archiveName);
archive.open(QIODevice::ReadOnly);
const KArchiveDirectory* themeDir = archive.directory();
KArchiveEntry* possibleDir = 0L;
KArchiveDirectory* subDir = 0L;
// iterate all the dirs looking for an index.theme or index.desktop file
QStringList entries = themeDir->entries();
for (QStringList::const_iterator it = entries.constBegin();
it != entries.constEnd();
++it) {
possibleDir = const_cast<KArchiveEntry*>(themeDir->entry(*it));
if (possibleDir->isDirectory()) {
subDir = dynamic_cast<KArchiveDirectory*>( possibleDir );
if (subDir && (subDir->entry("index.theme") != NULL ||
subDir->entry("index.desktop") != NULL))
foundThemes.append(subDir->name());
}
}
archive.close();
return foundThemes;
}
void IconThemesConfig::getNewTheme()
{
KNS3::DownloadDialog dialog("icons.knsrc", this);
dialog.exec();
if (!dialog.changedEntries().isEmpty()) {
for(int i = 0; i < dialog.changedEntries().size(); i ++) {
if(dialog.changedEntries().at(i).status() == KNS3::Entry::Installed
&& !dialog.changedEntries().at(i).installedFiles().isEmpty()) {
const QString themeTmpFile = dialog.changedEntries().at(i).installedFiles().at(0);
const QString name = dialog.changedEntries().at(i).installedFiles().at(0).section('/', -2, -2);
kDebug()<<"IconThemesConfig::getNewTheme() themeTmpFile="<<themeTmpFile<<"name="<<name;
QStringList themeNames = findThemeDirs(themeTmpFile);
if (themeNames.isEmpty()) {
//dialog.changedEntries().at(i)->setStatus(KNS3::Entry::Invalid);
}
else if (! installThemes(themeNames, themeTmpFile)) {
//dialog.changedEntries().at(i)->setStatus(KNS3::Entry::Invalid);
}
}
}
// reload the display icontheme items
KIconLoader::global()->newIconLoader();
loadThemes();
QTreeWidgetItem *item=iconThemeItem(KIconTheme::current());
if (item)
m_iconThemes->setCurrentItem(item);
updateRemoveButton();
load();
}
}
void IconThemesConfig::removeSelectedTheme()
{
QTreeWidgetItem *selected = m_iconThemes->currentItem();
if (!selected)
return;
QString question=i18n("<qt>Are you sure you want to remove the "
"<strong>%1</strong> icon theme?<br />"
"<br />"
"This will delete the files installed by this theme.</qt>",
selected->text(0));
bool deletingCurrentTheme=(selected==iconThemeItem(KIconTheme::current()));
int r=KMessageBox::warningContinueCancel(this,question,i18n("Confirmation"),KStandardGuiItem::del());
if (r!=KMessageBox::Continue) return;
KIconTheme icontheme(selected->data(0, ThemeNameRole).toString());
// delete the index file before the async KIO::del so loadThemes() will
// ignore that dir.
unlink(QFile::encodeName(icontheme.dir()+"/index.theme").data());
unlink(QFile::encodeName(icontheme.dir()+"/index.desktop").data());
KIO::del(KUrl( icontheme.dir() ));
KIconLoader::global()->newIconLoader();
loadThemes();
QTreeWidgetItem *item=0L;
//Fallback to the default if we've deleted the current theme
if (!deletingCurrentTheme)
item=iconThemeItem(KIconTheme::current());
if (!item)
item=iconThemeItem(KIconTheme::defaultThemeName());
if (item)
m_iconThemes->setCurrentItem(item);
updateRemoveButton();
if (deletingCurrentTheme) // Change the configuration
save();
}
void IconThemesConfig::updateRemoveButton()
{
QTreeWidgetItem *selected = m_iconThemes->currentItem();
bool enabled = false;
if (selected)
{
QString selectedtheme = selected->data(0, ThemeNameRole).toString();
KIconTheme icontheme(selectedtheme);
QFileInfo fi(icontheme.dir());
enabled = fi.isWritable();
// Don't let users remove the current theme.
if (selectedtheme == KIconTheme::current() ||
selectedtheme == KIconTheme::defaultThemeName())
enabled = false;
}
m_removeButton->setEnabled(enabled);
}
void loadPreview(QLabel *label, KIconTheme& icontheme, const QStringList& iconnames)
{
const int size = qMin(48, icontheme.defaultSize(KIconLoader::Desktop));
QSvgRenderer renderer;
foreach(const QString &iconthemename, QStringList() << icontheme.internalName() << icontheme.inherits()) {
foreach(const QString &name, iconnames) {
K3Icon icon = KIconTheme(iconthemename).iconPath(QString("%1.png").arg(name), size, KIconLoader::MatchBest);
if (icon.isValid()) {
label->setPixmap(QPixmap(icon.path).scaled(size, size));
return;
}
icon = KIconTheme(iconthemename).iconPath(QString("%1.svg").arg(name), size, KIconLoader::MatchBest);
if( ! icon.isValid() ) {
icon = KIconTheme(iconthemename).iconPath(QString("%1.svgz").arg(name), size, KIconLoader::MatchBest);
if( ! icon.isValid() ) {
continue;
}
}
if (renderer.load(icon.path)) {
QPixmap pix(size, size);
pix.fill(label->palette().color(QPalette::Background));
QPainter p(&pix);
p.setViewport(0, 0, size, size);
renderer.render(&p);
label->setPixmap(pix.scaled(size, size));
return;
}
}
}
label->setPixmap(QPixmap());
}
void IconThemesConfig::themeSelected(QTreeWidgetItem *item)
{
if (!item) return;
QString dirName(item->data(0, ThemeNameRole).toString());
KIconTheme icontheme(dirName);
if (!icontheme.isValid()) kDebug() << "notvalid\n";
updateRemoveButton();
loadPreview(m_previewExec, icontheme, QStringList() << "system-run" << "exec");
loadPreview(m_previewFolder, icontheme, QStringList() << "folder");
loadPreview(m_previewDocument, icontheme, QStringList() << "document" << "text-x-generic");
emit changed(true);
m_bChanged = true;
}
void IconThemesConfig::load()
{
m_defaultTheme=iconThemeItem(KIconTheme::current());
if (m_defaultTheme)
m_iconThemes->setCurrentItem(m_defaultTheme);
emit changed(false);
m_bChanged = false;
}
void IconThemesConfig::save()
{
if (!m_bChanged)
return;
QTreeWidgetItem *selected = m_iconThemes->currentItem();
if (!selected)
return;
KConfigGroup config(KSharedConfig::openConfig("kdeglobals", KConfig::SimpleConfig), "Icons");
config.writeEntry("Theme", selected->data(0, ThemeNameRole).toString());
config.sync();
KIconTheme::reconfigure();
emit changed(false);
KSharedDataCache::deleteCache("icon-cache");
for (int i=0; i<KIconLoader::LastGroup; i++)
{
KGlobalSettings::self()->emitChange(KGlobalSettings::IconChanged, i);
}
KBuildSycocaProgressDialog::rebuildKSycoca(this);
m_bChanged = false;
m_removeButton->setEnabled(false);
}
void IconThemesConfig::defaults()
{
if (m_iconThemes->currentItem()==m_defaultTheme) return;
if (m_defaultTheme)
m_iconThemes->setCurrentItem(m_defaultTheme);
updateRemoveButton();
emit changed(true);
m_bChanged = true;
}
#include "iconthemes.moc"

View file

@ -0,0 +1,74 @@
/**
* Copyright (c) 2000 Antonio Larrosa <larrosa@kde.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef ICONTHEMES_H
#define ICONTHEMES_H
#define KDE3_SUPPORT
#include <kcmodule.h>
#undef KDE3_SUPPORT
//Added by qt3to4:
#include <QLabel>
class KPushButton;
class QStringList;
class QTreeWidget;
class QTreeWidgetItem;
class IconThemesConfig : public KCModule
{
Q_OBJECT
public:
IconThemesConfig(const KComponentData &inst, QWidget *parent);
virtual ~IconThemesConfig();
void loadThemes();
bool installThemes(const QStringList &themes, const QString &archiveName);
QStringList findThemeDirs(const QString &archiveName);
void updateRemoveButton();
void load();
void save();
void defaults();
int buttons();
protected Q_SLOTS:
void themeSelected(QTreeWidgetItem *item);
void installNewTheme();
void getNewTheme();
void removeSelectedTheme();
private:
QTreeWidgetItem *iconThemeItem(const QString &name);
QTreeWidget *m_iconThemes;
KPushButton *m_removeButton;
QLabel *m_previewExec;
QLabel *m_previewFolder;
QLabel *m_previewDocument;
QTreeWidgetItem *m_defaultTheme;
bool m_bChanged;
};
#endif // ICONTHEMES_H

115
kcontrol/icons/main.cpp Normal file
View file

@ -0,0 +1,115 @@
/*
* main.cpp
*
* Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
*
* Requires the Qt widget libraries, available at no cost at
* http://www.troll.no/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include "main.h"
//Added by qt3to4:
#include <QVBoxLayout>
#include <kaboutdata.h>
#include <KPluginFactory>
#include <KPluginLoader>
#include <KLocale>
#include "icons.h"
#include "iconthemes.h"
/**** DLL Interface ****/
K_PLUGIN_FACTORY(IconsFactory,
registerPlugin<IconModule>();
)
K_EXPORT_PLUGIN(IconsFactory("kcmicons"))
/**** IconModule ****/
IconModule::IconModule(QWidget *parent, const QVariantList &)
: KCModule(IconsFactory::componentData(), parent)
{
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setMargin(0);
tab = new QTabWidget(this);
layout->addWidget(tab);
tab1 = new IconThemesConfig(IconsFactory::componentData(), this);
tab1->setObjectName( QLatin1String( "themes" ) );
tab->addTab(tab1, i18n("&Theme"));
connect(tab1, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
tab2 = new KIconConfig(IconsFactory::componentData(), this);
tab2->setObjectName( QLatin1String( "effects" ) );
tab->addTab(tab2, i18n("Ad&vanced"));
connect(tab2, SIGNAL(changed(bool)), this, SLOT(moduleChanged(bool)));
KAboutData* about = new KAboutData("kcmicons", 0, ki18n("Icons"), "3.0",
ki18n("Icons Control Panel Module"),
KAboutData::License_GPL,
ki18n("(c) 2000-2003 Geert Jansen"));
about->addAuthor(ki18n("Geert Jansen"), KLocalizedString(), "jansen@kde.org");
about->addAuthor(ki18n("Antonio Larrosa Jimenez"), KLocalizedString(), "larrosa@kde.org");
about->addCredit(ki18n("Torsten Rahn"), KLocalizedString(), "torsten@kde.org");
setAboutData( about );
}
void IconModule::load()
{
tab1->load();
tab2->load();
}
void IconModule::save()
{
tab1->save();
tab2->save();
}
void IconModule::defaults()
{
tab1->defaults();
tab2->defaults();
}
void IconModule::moduleChanged(bool state)
{
emit changed(state);
}
QString IconModule::quickHelp() const
{
return i18n("<h1>Icons</h1>"
"This module allows you to choose the icons for your desktop.<p>"
"To choose an icon theme, click on its name and apply your choice by pressing the \"Apply\" button below. If you do not want to apply your choice you can press the \"Reset\" button to discard your changes.</p>"
"<p>By pressing the \"Install Theme File...\" button you can install your new icon theme by writing its location in the box or browsing to the location."
" Press the \"OK\" button to finish the installation.</p>"
"<p>The \"Remove Theme\" button will only be activated if you select a theme that you installed using this module."
" You are not able to remove globally installed themes here.</p>"
"<p>You can also specify effects that should be applied to the icons.</p>");
}
#include "main.moc"

55
kcontrol/icons/main.h Normal file
View file

@ -0,0 +1,55 @@
/*
* main.h
*
* Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
*
* Requires the Qt widget libraries, available at no cost at
* http://www.troll.no/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __MAIN_H__
#define __MAIN_H__
#include <QTabWidget>
#include <kcmodule.h>
class IconModule : public KCModule
{
Q_OBJECT
public:
IconModule(QWidget *parent, const QVariantList &);
void load();
void save();
void defaults();
QString quickHelp() const;
protected Q_SLOTS:
void moduleChanged(bool state);
private:
QTabWidget *tab;
KCModule *tab1;
KCModule *tab2;
};
#endif

View file

@ -0,0 +1,13 @@
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. )
########### next target ###############
set(testicons_SRCS testicons.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../icons.cpp )
kde4_add_executable(testicons TEST ${testicons_SRCS})
target_link_libraries(testicons ${KDE4_KDEUI_LIBS})

View file

@ -0,0 +1,14 @@
/* Test program for icons setup module. */
#include <QApplication>
#include <kcomponentdata.h>
#include "icons.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv, "testicons");
KComponentData componentData("testicons");
KIconConfig *w = new KIconConfig(componentData, 0L);
w->show();
return app.exec();
}

View file

@ -0,0 +1,19 @@
########### next target ###############
set(kcm_kded_PART_SRCS kcmkded.cpp )
kde4_add_plugin(kcm_kded ${kcm_kded_PART_SRCS})
target_link_libraries(kcm_kded ${KDE4_KDEUI_LIBS})
install(TARGETS kcm_kded DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES kcmkded.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -0,0 +1,2 @@
#! /usr/bin/env bash
$XGETTEXT *.cpp -o $podir/kcmkded.pot

483
kcontrol/kded/kcmkded.cpp Normal file
View file

@ -0,0 +1,483 @@
// vim: noexpandtab shiftwidth=4 tabstop=4
/* This file is part of the KDE project
Copyright (C) 2002 Daniel Molkentin <molkentin@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "kcmkded.h"
#include <QtDBus/QtDBus>
#include <QGroupBox>
#include <QPushButton>
#include <QTimer>
#include <QTreeWidget>
#include <QVBoxLayout>
#include <QHeaderView>
#include <kaboutdata.h>
#include <kdialogbuttonbox.h>
#include <kdebug.h>
#include <kdesktopfile.h>
#include <kdialog.h>
#include <kmessagebox.h>
#include <kservice.h>
#include <kservicetypetrader.h>
#include <KPluginFactory>
#include <KPluginLoader>
#include "kcmkded.moc"
K_PLUGIN_FACTORY(KDEDFactory,
registerPlugin<KDEDConfig>();
)
K_EXPORT_PLUGIN(KDEDFactory("kcmkded"))
enum OnDemandColumns
{
OnDemandService = 0,
OnDemandStatus = 1,
OnDemandDescription = 2
};
enum StartupColumns
{
StartupUse = 0,
StartupService = 1,
StartupStatus = 2,
StartupDescription = 3
};
static const int LibraryRole = Qt::UserRole + 1;
KDEDConfig::KDEDConfig(QWidget* parent, const QVariantList &) :
KCModule( KDEDFactory::componentData(), parent )
{
KAboutData *about =
new KAboutData( I18N_NOOP( "kcmkded" ), 0, ki18n( "KDE Service Manager" ),
0, KLocalizedString(), KAboutData::License_GPL,
ki18n( "(c) 2002 Daniel Molkentin" ) );
about->addAuthor(ki18n("Daniel Molkentin"),KLocalizedString(),"molkentin@kde.org");
setAboutData( about );
setButtons(Apply|Default|Help);
setQuickHelp( i18n("<h1>Service Manager</h1><p>This module allows you to have an overview of all plugins of the "
"KDE Daemon, also referred to as KDE Services. Generally, there are two types of service:</p>"
"<ul><li>Services invoked at startup</li><li>Services called on demand</li></ul>"
"<p>The latter are only listed for convenience. The startup services can be started and stopped. "
"In Administrator mode, you can also define whether services should be loaded at startup.</p>"
"<p><b> Use this with care: some services are vital for KDE; do not deactivate services if you"
" do not know what you are doing.</b></p>"));
RUNNING = i18n("Running")+' ';
NOT_RUNNING = i18n("Not running")+' ';
QVBoxLayout *lay = new QVBoxLayout( this );
lay->setMargin( 0 );
QGroupBox *gb = new QGroupBox( i18n("Load-on-Demand Services"), this );
gb->setWhatsThis( i18n("This is a list of available KDE services which will "
"be started on demand. They are only listed for convenience, as you "
"cannot manipulate these services."));
lay->addWidget( gb );
QVBoxLayout *gblay = new QVBoxLayout( gb );
_lvLoD = new QTreeWidget( gb );
QStringList cols;
cols.append( i18n("Service") );
cols.append( i18n("Status") );
cols.append( i18n("Description") );
_lvLoD->setHeaderLabels( cols );
_lvLoD->setAllColumnsShowFocus(true);
_lvLoD->setRootIsDecorated( false );
_lvLoD->setSortingEnabled(true);
_lvLoD->sortByColumn(OnDemandService, Qt::AscendingOrder);
_lvLoD->header()->setStretchLastSection(true);
gblay->addWidget( _lvLoD );
gb = new QGroupBox( i18n("Startup Services"), this );
gb->setWhatsThis( i18n("This shows all KDE services that can be loaded "
"on KDE startup. Checked services will be invoked on next startup. "
"Be careful with deactivation of unknown services."));
lay->addWidget( gb );
gblay = new QVBoxLayout( gb );
_lvStartup = new QTreeWidget( gb );
cols.clear();
cols.append( i18n("Use") );
cols.append( i18n("Service") );
cols.append( i18n("Status") );
cols.append( i18n("Description") );
_lvStartup->setHeaderLabels( cols );
_lvStartup->setAllColumnsShowFocus(true);
_lvStartup->setRootIsDecorated( false );
_lvStartup->setSortingEnabled(true);
_lvStartup->sortByColumn(StartupService, Qt::AscendingOrder);
_lvStartup->header()->setStretchLastSection(true);
gblay->addWidget( _lvStartup );
KDialogButtonBox *buttonBox = new KDialogButtonBox( gb, Qt::Horizontal);
_pbStart = buttonBox->addButton( i18n("Start") , QDialogButtonBox::ActionRole );
_pbStop = buttonBox->addButton( i18n("Stop") , QDialogButtonBox::ActionRole );
gblay->addWidget( buttonBox );
_pbStart->setEnabled( false );
_pbStop->setEnabled( false );
connect(_pbStart, SIGNAL(clicked()), SLOT(slotStartService()));
connect(_pbStop, SIGNAL(clicked()), SLOT(slotStopService()));
connect(_lvLoD, SIGNAL(itemSelectionChanged()), SLOT(slotLodItemSelected()));
connect(_lvStartup, SIGNAL(itemSelectionChanged()), SLOT(slotStartupItemSelected()));
connect(_lvStartup, SIGNAL(itemChanged(QTreeWidgetItem*, int)), SLOT(slotItemChecked(QTreeWidgetItem*, int)) );
}
QString setModuleGroup(const QString &filename)
{
QString module = filename;
int i = module.lastIndexOf('/');
if (i != -1)
module = module.mid(i+1);
i = module.lastIndexOf('.');
if (i != -1)
module = module.left(i);
return QString("Module-%1").arg(module);
}
bool KDEDConfig::autoloadEnabled(KConfig *config, const QString &filename)
{
KConfigGroup cg(config, setModuleGroup(filename));
return cg.readEntry("autoload", true);
}
void KDEDConfig::setAutoloadEnabled(KConfig *config, const QString &filename, bool b)
{
KConfigGroup cg(config, setModuleGroup(filename));
return cg.writeEntry("autoload", b);
}
void KDEDConfig::load()
{
KConfig kdedrc( "kdedrc", KConfig::NoGlobals );
_lvStartup->clear();
_lvLoD->clear();
KService::List offers = KServiceTypeTrader::self()->query( "KDEDModule" );
QTreeWidgetItem* treeitem = 0L;
for ( KService::List::const_iterator it = offers.constBegin();
it != offers.constEnd(); ++it)
{
QString servicePath = (*it)->entryPath();
kDebug() << servicePath;
const KDesktopFile file( "services", servicePath );
const KConfigGroup grp = file.desktopGroup();
// The logic has to be identical to Kded::initModules.
// They interpret X-KDE-Kded-autoload as false if not specified
// X-KDE-Kded-load-on-demand as true if not specified
if ( grp.readEntry("X-KDE-Kded-autoload", false) ) {
treeitem = new QTreeWidgetItem();
treeitem->setCheckState( StartupUse, autoloadEnabled(&kdedrc, file.name()) ? Qt::Checked : Qt::Unchecked );
treeitem->setText( StartupService, file.readName() );
treeitem->setText( StartupDescription, file.readComment() );
treeitem->setText( StartupStatus, NOT_RUNNING );
if (grp.hasKey("X-KDE-DBus-ModuleName")) {
treeitem->setData( StartupService, LibraryRole, grp.readEntry("X-KDE-DBus-ModuleName") );
} else {
kWarning() << "X-KDE-DBUS-ModuleName not set for module " << file.readName();
treeitem->setData( StartupService, LibraryRole, grp.readEntry("X-KDE-Library") );
}
_lvStartup->addTopLevelItem( treeitem );
}
else if ( grp.readEntry("X-KDE-Kded-load-on-demand", true) ) {
treeitem = new QTreeWidgetItem();
treeitem->setText( OnDemandService, file.readName() );
treeitem->setText( OnDemandDescription, file.readComment() );
treeitem->setText( OnDemandStatus, NOT_RUNNING );
if (grp.hasKey("X-KDE-DBus-ModuleName")) {
treeitem->setData( OnDemandService, LibraryRole, grp.readEntry("X-KDE-DBus-ModuleName") );
} else {
kWarning() << "X-KDE-DBUS-ModuleName not set for module " << file.readName();
treeitem->setData( OnDemandService, LibraryRole, grp.readEntry("X-KDE-Library") );
}
_lvLoD->addTopLevelItem( treeitem );
}
else {
kWarning() << "kcmkded: Module " << file.readName() << " not loaded on demand or startup! Skipping.";
}
}
_lvStartup->resizeColumnToContents(StartupUse);
_lvStartup->resizeColumnToContents(StartupService);
_lvStartup->resizeColumnToContents(StartupStatus);
_lvLoD->resizeColumnToContents(OnDemandService);
_lvLoD->resizeColumnToContents(OnDemandStatus);
getServiceStatus();
emit changed(false);
}
void KDEDConfig::save()
{
KConfig kdedrc("kdedrc", KConfig::NoGlobals);
KService::List offers = KServiceTypeTrader::self()->query( "KDEDModule" );
for ( KService::List::const_iterator it = offers.constBegin();
it != offers.constEnd(); ++it)
{
QString servicePath = (*it)->entryPath();
kDebug() << servicePath;
const KDesktopFile file( "services", servicePath );
const KConfigGroup grp = file.desktopGroup();
if (grp.readEntry("X-KDE-Kded-autoload", false)){
QString libraryName = grp.readEntry( "X-KDE-Library" );
int count = _lvStartup->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
if ( treeitem->data( StartupService, LibraryRole ).toString() == libraryName )
{
// we found a match, now compare and see what changed
setAutoloadEnabled( &kdedrc, servicePath, treeitem->checkState( StartupUse ) == Qt::Checked);
break;
}
}
}
}
kdedrc.sync();
emit changed(false);
QDBusInterface kdedInterface( "org.kde.kded", "/kded", "org.kde.kded" );
kdedInterface.call( "reconfigure" );
QTimer::singleShot(0, this, SLOT(slotServiceRunningToggled()));
}
void KDEDConfig::defaults()
{
int count = _lvStartup->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
_lvStartup->topLevelItem( i )->setCheckState( StartupUse, Qt::Checked );
}
getServiceStatus();
emit changed(true);
}
void KDEDConfig::getServiceStatus()
{
QStringList modules;
QDBusInterface kdedInterface( "org.kde.kded", "/kded", "org.kde.kded" );
QDBusReply<QStringList> reply = kdedInterface.call( "loadedModules" );
if ( reply.isValid() ) {
modules = reply.value();
}
else {
_lvLoD->setEnabled( false );
_lvStartup->setEnabled( false );
KMessageBox::error(this, i18n("Unable to contact KDED."));
return;
}
// Initialize
int count = _lvLoD->topLevelItemCount();
for( int i = 0; i < count; ++i )
_lvLoD->topLevelItem( i )->setText( OnDemandStatus, NOT_RUNNING );
count = _lvStartup->topLevelItemCount();
for( int i = 0; i < count; ++i )
_lvStartup->topLevelItem( i )->setText( StartupStatus, NOT_RUNNING );
// Fill
foreach( const QString& module, modules )
{
bool found = false;
count = _lvLoD->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
QTreeWidgetItem *treeitem = _lvLoD->topLevelItem( i );
if ( treeitem->data( OnDemandService, LibraryRole ).toString() == module )
{
treeitem->setText( OnDemandStatus, RUNNING );
found = true;
break;
}
}
count = _lvStartup->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
if ( treeitem->data( StartupService, LibraryRole ).toString() == module )
{
treeitem->setText( StartupStatus, RUNNING );
found = true;
break;
}
}
if (!found)
{
kDebug() << "Could not relate module " << module;
#ifndef NDEBUG
kDebug() << "Candidates were:";
count = _lvLoD->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
QTreeWidgetItem *treeitem = _lvLoD->topLevelItem( i );
kDebug() << treeitem->data( OnDemandService, LibraryRole ).toString();
}
count = _lvStartup->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
kDebug() << treeitem->data( StartupService, LibraryRole ).toString();
}
#endif
}
}
}
void KDEDConfig::slotReload()
{
QString current;
if ( !_lvStartup->selectedItems().isEmpty() )
current = _lvStartup->selectedItems().at(0)->data( StartupService, LibraryRole ).toString();
load();
if ( !current.isEmpty() )
{
int count = _lvStartup->topLevelItemCount();
for( int i = 0; i < count; ++i )
{
QTreeWidgetItem *treeitem = _lvStartup->topLevelItem( i );
if ( treeitem->data( StartupService, LibraryRole ).toString() == current )
{
_lvStartup->setCurrentItem( treeitem, 0, QItemSelectionModel::ClearAndSelect );
break;
}
}
}
}
void KDEDConfig::slotStartupItemSelected()
{
if ( _lvStartup->selectedItems().isEmpty() ) {
// Disable the buttons
_pbStart->setEnabled( false );
_pbStop->setEnabled( false );
return;
}
// Deselect a currently selected element in the "load on demand" treeview
_lvLoD->setCurrentItem(NULL, 0, QItemSelectionModel::Clear);
QTreeWidgetItem *item = _lvStartup->selectedItems().at(0);
if ( item->text(StartupStatus) == RUNNING ) {
_pbStart->setEnabled( false );
_pbStop->setEnabled( true );
}
else if ( item->text(StartupStatus) == NOT_RUNNING ) {
_pbStart->setEnabled( true );
_pbStop->setEnabled( false );
}
else // Error handling, better do nothing
{
_pbStart->setEnabled( false );
_pbStop->setEnabled( false );
}
getServiceStatus();
}
void KDEDConfig::slotLodItemSelected()
{
if ( _lvLoD->selectedItems().isEmpty() )
return;
// Deselect a currently selected element in the "load on startup" treeview
_lvStartup->setCurrentItem(NULL, 0, QItemSelectionModel::Clear);
}
void KDEDConfig::slotServiceRunningToggled()
{
getServiceStatus();
slotStartupItemSelected();
}
void KDEDConfig::slotStartService()
{
QString service = _lvStartup->selectedItems().at(0)->data( StartupService, LibraryRole ).toString();
QDBusInterface kdedInterface( "org.kde.kded", "/kded","org.kde.kded" );
QDBusReply<bool> reply = kdedInterface.call( "loadModule", service );
if ( reply.isValid() ) {
if ( reply.value() )
slotServiceRunningToggled();
else
KMessageBox::error(this, "<qt>" + i18n("Unable to start server <em>%1</em>.", service) + "</qt>");
}
else {
KMessageBox::error(this, "<qt>" + i18n("Unable to start service <em>%1</em>.<br /><br /><i>Error: %2</i>",
service, reply.error().message()) + "</qt>" );
}
}
void KDEDConfig::slotStopService()
{
QString service = _lvStartup->selectedItems().at(0)->data( StartupService, LibraryRole ).toString();
kDebug() << "Stopping: " << service;
QDBusInterface kdedInterface( "org.kde.kded", "/kded", "org.kde.kded" );
QDBusReply<bool> reply = kdedInterface.call( "unloadModule", service );
if ( reply.isValid() ) {
if ( reply.value() )
slotServiceRunningToggled();
else
KMessageBox::error(this, "<qt>" + i18n("Unable to stop server <em>%1</em>.", service) + "</qt>");
}
else {
KMessageBox::error(this, "<qt>" + i18n("Unable to stop service <em>%1</em>.<br /><br /><i>Error: %2</i>",
service, reply.error().message()) + "</qt>" );
}
}
void KDEDConfig::slotItemChecked(QTreeWidgetItem*, int column)
{
// We only listen to changes the user did.
if (column==StartupUse) {
emit changed(true);
}
}

View file

@ -0,0 +1,252 @@
[Desktop Entry]
Exec=kcmshell4 kcmkded
Icon=preferences-system-session-services
Type=Service
X-KDE-ServiceTypes=KCModule
X-KDE-Library=kcm_kded
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=startup-and-shutdown
X-DocPath=kcontrol/kded/index.html
Name=Service Manager
Name[af]=Diens Bestuurder
Name[ar]=مدير الخدمات
Name[ast]=Xestor de servicios
Name[be]=Кіраўнік сервісаў
Name[be@latin]=Kiraŭnik słužbaŭ
Name[bg]=Системни услуги
Name[bn]=ি
Name[bn_IN]=ি ি
Name[br]=Merour ar servijoù
Name[bs]=Menadžer servisa
Name[ca]=Gestor del servei
Name[ca@valencia]=Gestor del servei
Name[cs]=Správce služeb
Name[csb]=Menadżera ùsłëżnotów
Name[cy]=Rheolydd Gwasanaethau
Name[da]=Tjenestehåndtering
Name[de]=Diensteverwaltung
Name[el]=Διαχειριστής υπηρεσιών
Name[en_GB]=Service Manager
Name[eo]=Servadministrilo
Name[es]=Gestor de servicios
Name[et]=Teenuste haldur
Name[eu]=Zerbitzu-kudeatzailea
Name[fa]=مدیر خدمت
Name[fi]=Palvelunhallinta
Name[fr]=Gestionnaire de services
Name[fy]=KDE-systeemtsjinsten
Name[ga]=Bainisteoir Seirbhíse
Name[gl]=Xestor de servizos
Name[gu]=
Name[he]=מנהל השירותים
Name[hi]=
Name[hne]=
Name[hr]=Upravljanje uslugama
Name[hsb]=Słužbowy manager
Name[hu]=Szolgáltatások
Name[ia]=Gerente de servicio
Name[id]=Manajer Layanan
Name[is]=Þjónustustjóri
Name[it]=Gestione dei servizi
Name[ja]=
Name[ka]=
Name[kk]=Қызметтерді басқару
Name[km]=
Name[kn]=
Name[ko]=
Name[ku]=Gerînendeyê Servîsê
Name[lt]=Tarnybų tvarkyklė
Name[lv]=Servisu pārvaldnieks
Name[mai]=
Name[mk]=Менаџер на сервиси
Name[ml]= ി
Name[mr]=
Name[ms]=Pengurus Servis
Name[nb]=Tjenestebehandler
Name[nds]=Deenstpleger
Name[ne]=
Name[nl]=KDE-systeemdiensten
Name[nn]=Tenester
Name[or]=ି ି
Name[pa]=ਿ
Name[pl]=Zarządzanie usługami
Name[pt]=Gestor de Serviços
Name[pt_BR]=Gerenciador de serviços
Name[ro]=Administratorul de servicii
Name[ru]=Управление службами
Name[se]=Bálvalusgieđahalli
Name[si]=
Name[sk]=Správca služieb
Name[sl]=Upravljalnik storitev
Name[sr]=Менаџер сервиса
Name[sr@ijekavian]=Менаџер сервиса
Name[sr@ijekavianlatin]=Menadžer servisa
Name[sr@latin]=Menadžer servisa
Name[sv]=Tjänsthanterare
Name[ta]= ி
Name[te]= ిి
Name[tg]=Мудири хизматҳо
Name[th]=
Name[tr]=Servis Yöneticisi
Name[ug]=مۇلازىمەت باشقۇرغۇچ
Name[uk]=Менеджер служб
Name[uz]=Xizmat boshqaruvchisi
Name[uz@cyrillic]=Хизмат бошқарувчиси
Name[vi]=Trình qun lý dch v
Name[wa]=Manaedjeu di siervices
Name[xh]=Umphathi Wenkonzo
Name[x-test]=xxService Managerxx
Name[zh_CN]=
Name[zh_TW]=
Comment=KDE Services Configuration
Comment[af]=KDE Stelseldienste Opstelling
Comment[ar]=ضبط خدمات كدي
Comment[ast]=Configuración de los servicios de KDE
Comment[be]=Настаўленні сістэмных сервісаў
Comment[be@latin]=Naładžvańnie słužbaŭ KDE
Comment[bg]=Настройване на системните услуги
Comment[bn]=.ি.. ি ি
Comment[bn_IN]=KDE ি ি
Comment[bs]=Postava KDEovih servisa
Comment[ca]=Configuració dels serveis del KDE
Comment[ca@valencia]=Configuració dels serveis del KDE
Comment[cs]=Nastavení KDE služeb
Comment[csb]=Kònfigùracëjô systemòwëch ùsłëżnotów
Comment[da]=Konfiguration af KDE-tjenester
Comment[de]=Einrichtung von KDE-Systemdiensten
Comment[el]=Διαμόρφωση υπηρεσιών του KDE
Comment[en_GB]=KDE Services Configuration
Comment[eo]=Agordoj de servoj de KDE
Comment[es]=Configuración de los servicios de KDE
Comment[et]=KDE teenuste seadistamine
Comment[eu]=KDE zerbitzuen konfigurazioa
Comment[fa]=پیکربندی خدمات KDE
Comment[fi]=KDE-palveluiden asetukset
Comment[fr]=Configuration des services KDE
Comment[fy]=KDE-tsjinstbehearder
Comment[ga]=Cumraíocht Seirbhísí KDE
Comment[gl]=Configuración dos servizos de KDE
Comment[gu]=KDE
Comment[he]=שינוי הגדרות שירותי KDE
Comment[hi]= ि
Comment[hne]= ि
Comment[hr]=Konfiguracija KDE usluga
Comment[hsb]=Připrawjenje KDE-słužbow
Comment[hu]=A KDE szolgáltatások beállításai
Comment[ia]=Configuration de servicios de KDE
Comment[id]=Konfigurasi Layanan KDE
Comment[is]=Stillingar KDE kerfisþjónusta
Comment[it]=Configurazione dei servizi di KDE
Comment[ja]=KDE
Comment[kk]=KDE қызметтерін баптау
Comment[km]= KDE
Comment[kn]=ಿ
Comment[ko]=KDE
Comment[ku]=Veavakirina Xizmetên KDE
Comment[lt]=KDE tarnybų konfigūravimas
Comment[lv]=KDE servisu konfigurācija
Comment[mai]= ि
Comment[mk]=Конфигурација на сервисите на KDE
Comment[ml]=ി
Comment[mr]=
Comment[nb]=KDEs tjenesteinnstillinger
Comment[nds]=KDE-Systeemdeensten instellen
Comment[ne]= ि
Comment[nl]=KDE-systeemdiensten instellen
Comment[nn]=Oppsett av KDE-systemtenester
Comment[or]=KDE ିି
Comment[pa]=KDE ਿ
Comment[pl]=Ustawienia usług KDE
Comment[pt]=Configuração dos Serviços do KDE
Comment[pt_BR]=Configuração dos serviços do KDE
Comment[ro]=Configurare servicii KDE
Comment[ru]=Настройка служб KDE
Comment[se]=KDE-bálvalusaid heiveheapmi
Comment[si]=KDE
Comment[sk]=Nastavenie KDE služieb
Comment[sl]=Nastavitve storitev KDE
Comment[sr]=Постава КДЕових сервиса
Comment[sr@ijekavian]=Постава КДЕових сервиса
Comment[sr@ijekavianlatin]=Postava KDEovih servisa
Comment[sr@latin]=Postava KDEovih servisa
Comment[sv]=Anpassa KDE:s tjänster
Comment[ta]= ி
Comment[te]=KDE
Comment[tg]=Танзимоти хизматҳои системаи KDE
Comment[th]= KDE
Comment[tr]=KDE Servis Yapılandırmaları
Comment[ug]=KDE مۇلازىمەت سەپلىمە
Comment[uk]=Налаштування служб KDE
Comment[uz]=KDE xizmatlarini moslash
Comment[uz@cyrillic]=KDE хизматларини мослаш
Comment[vi]=Cu hình Dch v KDE
Comment[wa]=Apontiaedje des siervices di KDE
Comment[x-test]=xxKDE Services Configurationxx
Comment[zh_CN]=KDE
Comment[zh_TW]=KDE
X-KDE-Keywords=KDED,Daemon,Services
X-KDE-Keywords[ar]=كدي دي,عفريت,خدمات
X-KDE-Keywords[bg]=KDED,Daemon,Services,Услуги
X-KDE-Keywords[bn]=KDED,Daemon,Services
X-KDE-Keywords[bs]=KDED,Daemon,Services,demon,usluge
X-KDE-Keywords[ca]=KDED,Dimoni,Serveis
X-KDE-Keywords[ca@valencia]=KDED,Dimoni,Serveis
X-KDE-Keywords[cs]=KDED,Démon,Služby
X-KDE-Keywords[da]=KDED,dæmon,tjenester
X-KDE-Keywords[de]=KDED,Dienst,Services,Dienste
X-KDE-Keywords[el]=KDED,Daemon,Services
X-KDE-Keywords[en_GB]=KDED,Daemon,Services
X-KDE-Keywords[eo]=KDED,Demono,Servoj
X-KDE-Keywords[es]=KDED,Demonio,Servicios
X-KDE-Keywords[et]=KDED,deemon,teenused
X-KDE-Keywords[eu]=KDED,daemon-a,zerbitzuak
X-KDE-Keywords[fa]=KDED,Daemon,Services
X-KDE-Keywords[fi]=KDED,Palvelu,Taustaprosessi,Palvelin,Palvelut
X-KDE-Keywords[fr]=KDED, Démon, Services
X-KDE-Keywords[ga]=KDED,Deamhan,Seirbhísí
X-KDE-Keywords[gl]=KDED, Daemon, Servizos
X-KDE-Keywords[gu]=KDED,,
X-KDE-Keywords[he]=KDED,Daemon,Services,שירותים
X-KDE-Keywords[hi]=KDED,
X-KDE-Keywords[hu]=KDED,Démon,Szolgáltatások
X-KDE-Keywords[ia]=KDED,Daemon,Servicios
X-KDE-Keywords[id]=KDED,Jurik,Layanan
X-KDE-Keywords[is]=KDED,Þjónusta,Þjónustur
X-KDE-Keywords[it]=KDED,demone,servizi
X-KDE-Keywords[ja]=KDED,Daemon,Services
X-KDE-Keywords[kk]=KDED,Daemon,Services
X-KDE-Keywords[km]=KDED
X-KDE-Keywords[ko]=KDED,Daemon,Services,,
X-KDE-Keywords[lv]=KDED,dēmons,servisi
X-KDE-Keywords[mr]=D, ,
X-KDE-Keywords[nb]=KDED,Daemon,Tjenester
X-KDE-Keywords[nds]=KDED,Dämoon,Deensten
X-KDE-Keywords[nl]=KDED,daemon,services
X-KDE-Keywords[nn]=KDED,Daemon,Services,tenester
X-KDE-Keywords[pa]=KDED,,ਿ
X-KDE-Keywords[pl]=KDED,Demon,Usługi
X-KDE-Keywords[pt]=KDED,Servidor,Serviços
X-KDE-Keywords[pt_BR]=KDED,Servidor,Serviços
X-KDE-Keywords[ro]=KDED,Servicii,Demon
X-KDE-Keywords[ru]=KDED,Daemon,Services,фоновая служба,демон,служба
X-KDE-Keywords[sk]=KDED,Démon,Služby
X-KDE-Keywords[sl]=KDED,ozadnji program,storitve
X-KDE-Keywords[sr]=KDED,Daemon,Services,КДЕД,демон,сервис
X-KDE-Keywords[sr@ijekavian]=KDED,Daemon,Services,КДЕД,демон,сервис
X-KDE-Keywords[sr@ijekavianlatin]=KDED,Daemon,Services,KDED,demon,servis
X-KDE-Keywords[sr@latin]=KDED,Daemon,Services,KDED,demon,servis
X-KDE-Keywords[sv]=KDED,Demon,Tjänster
X-KDE-Keywords[tg]=KDED,Демонҳо,Хидматҳо
X-KDE-Keywords[tr]=KDED,Servis,Servisler
X-KDE-Keywords[ug]=KDED،Daemon، مۇلازىمەتلەر
X-KDE-Keywords[uk]=KDED;Daemon;Services;служба;служби;фонова служба;фонові служби
X-KDE-Keywords[vi]=KDED,Trình nn,Dch v, Daemon,Services
X-KDE-Keywords[wa]=KDED,Démon,Demon,Siervices
X-KDE-Keywords[x-test]=xxKDED,Daemon,Servicesxx
X-KDE-Keywords[zh_CN]=KDED,Daemon,Services,,
X-KDE-Keywords[zh_TW]=KDED,Daemon,Services
Categories=Qt;KDE;X-KDE-settings-components;

64
kcontrol/kded/kcmkded.h Normal file
View file

@ -0,0 +1,64 @@
/* This file is part of the KDE project
Copyright (C) 2002 Daniel Molkentin <molkentin@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef KCMKDED_H
#define KCMKDED_H
#include <kcmodule.h>
class QPushButton;
class QTreeWidget;
class QTreeWidgetItem;
class KConfig;
class KDEDConfig : public KCModule
{
Q_OBJECT
public:
explicit KDEDConfig(QWidget* parent, const QVariantList& foo = QVariantList());
~KDEDConfig() {}
void load();
void save();
void defaults();
protected Q_SLOTS:
void slotReload();
void slotStartService();
void slotStopService();
void slotServiceRunningToggled();
void slotStartupItemSelected();
void slotLodItemSelected();
void slotItemChecked(QTreeWidgetItem *item, int column);
void getServiceStatus();
bool autoloadEnabled(KConfig *config, const QString &filename);
void setAutoloadEnabled(KConfig *config, const QString &filename, bool b);
private:
QTreeWidget *_lvLoD;
QTreeWidget *_lvStartup;
QPushButton *_pbStart;
QPushButton *_pbStop;
QString RUNNING;
QString NOT_RUNNING;
};
#endif // KCMKDED_H

0
kcontrol/knotify/CHANGES Normal file
View file

View file

@ -0,0 +1,21 @@
########### next target ###############
set(kcm_knotify_PART_SRCS knotify.cpp )
kde4_add_ui_files(kcm_knotify_PART_SRCS playersettings.ui )
kde4_add_plugin(kcm_knotify ${kcm_knotify_PART_SRCS})
target_link_libraries(kcm_knotify ${KDE4_KIO_LIBS} ${KDE4_KNOTIFYCONFIG_LIBS} ${QT_QTGUI_LIBRARY} )
install(TARGETS kcm_knotify DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES kcmnotify.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -0,0 +1,3 @@
#! /usr/bin/env bash
$EXTRACTRC *.ui >> rc.cpp
$XGETTEXT *.cpp -o $podir/kcmnotify.pot

2
kcontrol/knotify/README Normal file
View file

@ -0,0 +1,2 @@
This is a KDE Control Center Module for configuring system notifications

View file

@ -0,0 +1,237 @@
[Desktop Entry]
Exec=kcmshell4 kcmnotify
Icon=preferences-desktop-notification
Type=Service
X-KDE-ServiceTypes=KCModule
X-DocPath=kcontrol/kcmnotify/index.html
X-KDE-Library=kcm_knotify
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=application-and-system-notifications
X-KDE-Weight=50
Name=Manage Notifications
Name[ar]=أدر التنبيهات
Name[ast]=Xestionar notificaciones
Name[bg]=Управление на уведомяването
Name[bn]=িি
Name[bs]=Upravljanje obavještenjima
Name[ca]=Gestiona les notificacions
Name[ca@valencia]=Gestiona les notificacions
Name[cs]=Oznamování hardwaru
Name[da]=Håndtér bekendtgørelser
Name[de]=Benachrichtigungen verwalten
Name[el]=Διαχείριση ειδοποιήσεων
Name[en_GB]=Manage Notifications
Name[eo]=Mastrumi atentigojn
Name[es]=Gestionar notificaciones
Name[et]=Märguannete haldamine
Name[eu]=Jakinarazpenak kudeatzea
Name[fa]=مدیریت اخطارها
Name[fi]=Ilmoitusten asetukset
Name[fr]=Gérer les notifications
Name[ga]=Bainistigh Fógairt
Name[gl]=Xestión das notificacións
Name[gu]=
Name[he]=ניהול הודעות
Name[hi]= ि
Name[hr]=Upravljanje obavijestima
Name[hu]=Értesítések kezelése
Name[ia]=Administra notificationes
Name[id]=Atur Notifikasi
Name[is]=Sýsla með kerfistilkynningar
Name[it]=Gestisci le notifiche
Name[ja]=
Name[kk]=Құлақтандыруларды басқару
Name[km]=
Name[kn]= ಿಿ
Name[ko]=
Name[lt]=Tvarkyti pranešimus
Name[lv]=Pārvaldīt paziņojumus
Name[mai]= ि
Name[ml]=ിി
Name[mr]= ि
Name[nb]=Håndter varslinger
Name[nds]=Bescheden plegen
Name[nl]=Meldingen beheren
Name[nn]=Handsam varslingar
Name[pa]=ਿ
Name[pl]=Zarządzanie powiadomieniami
Name[pt]=Gerir as Notificações
Name[pt_BR]=Gerenciar notificações
Name[ro]=Gestiune notificări
Name[ru]=Системные уведомления
Name[si]=
Name[sk]=Správa upozornení
Name[sl]=Upravljanje obvestil
Name[sr]=Управљање обавештењима
Name[sr@ijekavian]=Управљање обавјештењима
Name[sr@ijekavianlatin]=Upravljanje obavještenjima
Name[sr@latin]=Upravljanje obaveštenjima
Name[sv]=Hantera underrättelser
Name[tg]=Идоракунии огоҳиномаҳо
Name[th]=
Name[tr]=Bildirimleri Yönet
Name[ug]=باشقۇرۇش ئۇقتۇرۇشى
Name[uk]=Керування сповіщеннями
Name[vi]=Qun lý các thông báo
Name[wa]=Manaedjî les notifiaedjes
Name[x-test]=xxManage Notificationsxx
Name[zh_CN]=
Name[zh_TW]=
Comment=System Notification Configuration
Comment[af]=Stelsel Inkennisstelling Opstelling
Comment[ar]=ضبط تنبيهات النظام
Comment[ast]=Configuración de les notificaciones del sistema
Comment[be]=Настаўленні сістэмных абвяшчэнняў
Comment[be@latin]=Naładžvańnie systemnaha infarmavańnia
Comment[bg]=Настройване на системата за уведомяване
Comment[bn]=ি িি ি
Comment[bn_IN]=ি ি
Comment[br]=Kefluniañ kemenn ar reizhiad
Comment[bs]=Postava sistemskih obavještenja
Comment[ca]=Configuració de les notificacions del sistema
Comment[ca@valencia]=Configuració de les notificacions del sistema
Comment[cs]=Nastavení systémových hlášení
Comment[csb]=Kònfigùracëjô systemòwegò dôwaniô wiédzë
Comment[cy]=Ffurfweddu Hysbysiadau Cysawd
Comment[da]=Konfiguration af systembekendtgørelser
Comment[de]=Einrichtung der Systemnachrichten
Comment[el]=Διαμόρφωση ειδοποιήσεων συστήματος
Comment[en_GB]=System Notification Configuration
Comment[eo]=Agordoj de sistemaj atentigoj
Comment[es]=Configuración de las notificaciones del sistema
Comment[et]=Süsteemsete märguannete seadistamine
Comment[eu]=Sistemaren jakinarazpenaren konfigurazioa
Comment[fa]=پیکربندی اخطارهای سیستم
Comment[fi]=Järjestelmäilmoitusten asetukset
Comment[fr]=Configuration du système de notifications
Comment[fy]=Ynstellings fan de systeemoankundigingen
Comment[ga]=Cumraíocht Fhógairt an Chórais
Comment[gl]=Configuración das notificacións do sistema
Comment[gu]=િ
Comment[he]=שינוי הגדרות של הודעות המערכת
Comment[hi]= ि
Comment[hne]= ि
Comment[hr]=Konfiguriranje obavijesti sustava
Comment[hsb]=Připrawjenje systemowych powěsćow
Comment[hu]=A rendszerüzenetek beállítása
Comment[ia]=Configuration de notification de systema
Comment[id]=Konfigurasi Notifikasi Sistem
Comment[is]=Stillingar tilkynninga frá kerfinu
Comment[it]=Configurazione delle notifiche di sistema
Comment[ja]=
Comment[ka]=
Comment[kk]=Жүйелік құлақтандыруларды баптау
Comment[km]=
Comment[kn]=
Comment[ko]=
Comment[ku]=Mîhengên Hişyarkirinên Pergalê
Comment[lt]=Sistemos pranešimų derinimas
Comment[lv]=Sistēmas paziņojumu konfigurēšana
Comment[mai]= ि
Comment[mk]=Конфигурација на системските известувања
Comment[ml]=ി ിി
Comment[mr]=
Comment[ms]=Konfigurasi Pemberitahuan Sistem
Comment[nb]=Oppsett av systemvarsling
Comment[nds]=Systeemnarichten instellen
Comment[ne]= ि
Comment[nl]=Systeemnotificatie instellen
Comment[nn]=Oppsett av systemvarslingar
Comment[or]= ିି
Comment[pa]=ਿ
Comment[pl]=Ustawienia powiadamiania systemowego
Comment[pt]=Configuração das mensagens do sistema
Comment[pt_BR]=Configuração das notificações do sistema
Comment[ro]=Configurează notificările de sistem
Comment[ru]=Настройка системных уведомлений
Comment[se]=Heivet vuogádatmuittuhusat
Comment[si]=
Comment[sk]=Nastavenie systémových upozornení
Comment[sl]=Nastavitev sistemskih obvestil
Comment[sr]=Постава системских обавештења
Comment[sr@ijekavian]=Постава системских обавјештења
Comment[sr@ijekavianlatin]=Postava sistemskih obavještenja
Comment[sr@latin]=Postava sistemskih obaveštenja
Comment[sv]=Anpassa systemunderrättelser
Comment[ta]= ி
Comment[te]=ి
Comment[tg]=Танзимоти огоҳиномаҳои система
Comment[th]=
Comment[tr]=Sistem Bildirimi Yapılandırması
Comment[ug]=سىستېما ئۇقتۇرۇش سەپلىمە
Comment[uk]=Налаштування системних сповіщень
Comment[uz]=Tizimning xabarnomalarini moslash
Comment[uz@cyrillic]=Тизимнинг хабарномаларини мослаш
Comment[vi]=Cu hình Thông báo H thng
Comment[wa]=Apontiaedje po les notifiaedjes do sistinme
Comment[xh]=Uqwalaselo Lwezaziso Zendlela yokusebenza
Comment[x-test]=xxSystem Notification Configurationxx
Comment[zh_CN]=
Comment[zh_TW]=
X-KDE-Keywords=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[ar]=اصوات النظام,سمعي,صوت,تبليغ,إنذارات,تنبيهات,قوائم منبثة
X-KDE-Keywords[bg]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,Системни звуци,Звук,Уведомление
X-KDE-Keywords[bn]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[bs]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,sistemski zvukovi,zvuk,alarmi
X-KDE-Keywords[ca]=Sons del sistema,Àudio,So,Notificar,Alertes,Notificació,missatges emergents
X-KDE-Keywords[ca@valencia]=Sons del sistema,Àudio,So,Notificar,Alertes,Notificació,missatges emergents
X-KDE-Keywords[cs]=Systémové zvuky,Audio,Zvuk,Oznámení,vyskakovací okna
X-KDE-Keywords[da]=Systemlyde,audio,lyd,meddelelser,alarmer,bekendtgørelse,pop-op
X-KDE-Keywords[de]=Klänge,Systemklänge,Audio,Sound,Benachrichtigung,Nachricht,Alarm,Signalton,Beep
X-KDE-Keywords[el]=Ήχοι συστήματος,ήχος,ήχος,ειδοποιώ,συναγερμός,ειδοποίηση,αναδυόμενα
X-KDE-Keywords[en_GB]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[eo]=Sistemaj sonoj,Aŭdo,Sono,Atentigi,Avertoj,Atentigo,sprucfenestroj
X-KDE-Keywords[es]=Sonidos del sistema,Audio,Sonido,Notificar,Alertas,Notificación,emergentes
X-KDE-Keywords[et]=Süsteemsed helid,heli,audio,märguanne,märguanded,hüpikaknad
X-KDE-Keywords[eu]=Sistema-soinuak,audioa,soinua,jakinarazi,alertak,jakinarazpena,pop-upak
X-KDE-Keywords[fa]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[fi]=Järjestelmä-äänet,Ääni,Huomautukset,Ilmoitukset,Varoitukset,Hälytykset,Huomautus,Ilmoitus,Varoitus,Hälytys,ponnahdusikkunat
X-KDE-Keywords[fr]=Sons du système, Audio, Son, Notifier, Alertes, Notification, fenêtres contextuelles
X-KDE-Keywords[ga]=Fuaimeanna an chórais,Fuaim,Fógairt,Fógraí,preabfhuinneoga
X-KDE-Keywords[gl]=Sons do sistema, Son, Audio, Notificación, Alertar, Notificar, emerxentes
X-KDE-Keywords[gu]=િ ,િ,, ,,,
X-KDE-Keywords[he]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,צלילים,הודעות,שמע,תפריטים מוקפצים,הודעות
X-KDE-Keywords[hi]= ि,, ि, ि, , ि,
X-KDE-Keywords[hu]=Rendszerhangok,Hang,Hang,Értesítés,Figyelmeztetés,Értesítés,felugró
X-KDE-Keywords[ia]=Sonos de systema,Audio,Sono,Notifica,Alertas,Notification,popups
X-KDE-Keywords[id]=Suara sistem,Audio,Suara,Beritahu,Peringatan,Notifikasi,popup
X-KDE-Keywords[is]=Kerfishljóð,hljóð,hljóðkerfi,tilkynningar,aðvörun,tilkynning,sprettgluggi
X-KDE-Keywords[it]=Suoni di sistema,audio,suono,notifica,avvisi,notifiche,avvisi a comparsa
X-KDE-Keywords[ja]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[kk]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[km]=
X-KDE-Keywords[ko]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups, ,,,
X-KDE-Keywords[lv]=Sistēmas skaņas,audio,skaņa,paziņot,brīdinājumi,paziņojums,uzlecošais logs
X-KDE-Keywords[mr]= , , , ,
X-KDE-Keywords[nb]=Systemlyder,Audio,Lyd,Varsle,Alarm,Varslinger,oppsprett
X-KDE-Keywords[nds]=Systeemkläng,Klang,Kläng,Systeembescheden,Alarms,Bescheden,Opdukers
X-KDE-Keywords[nl]=Systeemgeluiden,audio,geluid,melden,alarmmelding,meldingen,pop-ups
X-KDE-Keywords[nn]=Systemlydar,Audio,Lyd,Varsling,Meldingar,Varslingar,sprettoppvindauge
X-KDE-Keywords[pa]=ਿ ,,,,,,ਿ,
X-KDE-Keywords[pl]=Dźwięki systemowe,Audio,Dźwięk,Powiadomienie,Alarmy,Powiadom,okna wyskakujące
X-KDE-Keywords[pt]=Sons do sistema,Áudio,Som,Notificar,Alertas,Notificação,Mensagens
X-KDE-Keywords[pt_BR]=Sons do sistema,Áudio,Som,Notificar,Alertas,Notificação,mensagens
X-KDE-Keywords[ro]=Sunete sistem,audio,sunet,notificare,alerte,notifică,popup
X-KDE-Keywords[ru]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,звуковая система,звук,аудио,уведомление,предупреждения,всплывающие окна
X-KDE-Keywords[sk]=Systémové zvuky,Audio,Zvuk,Notify,Alerts,Notification,popups
X-KDE-Keywords[sl]=sistemski zvoki,audio,zvok,obvestila,obvestilo,obveščanje,alarmi,alarm,pojavna okna,pojavno okno
X-KDE-Keywords[sr]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,системски звукови,аудио,звук,обавештење,аларм,искакач
X-KDE-Keywords[sr@ijekavian]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,системски звукови,аудио,звук,обавештење,аларм,искакач
X-KDE-Keywords[sr@ijekavianlatin]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,sistemski zvukovi,audio,zvuk,obaveštenje,alarm,iskakač
X-KDE-Keywords[sr@latin]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,sistemski zvukovi,audio,zvuk,obaveštenje,alarm,iskakač
X-KDE-Keywords[sv]=Systemljud,Ljud,Underrätta,Varningar,Underrättelser
X-KDE-Keywords[tg]=Системаҳои овозӣ,Аудио,Овоз,Хабар,Ҳушдор,Огоҳӣ,пайдошаванда
X-KDE-Keywords[tr]=Sistem sesleri,Ses,Uyarı,Uyarılar,Bildirimler
X-KDE-Keywords[ug]=سىستېما ئاۋازلىرى، ئۈن، بىلدۈرۈش، كۆرسەتمە، ئۇقتۇرۇشلار، سەكرىمىلەر
X-KDE-Keywords[uk]=System sounds;Audio;Sound;Notify;Alerts;Notification;popups;звук;система;системні звуки;звуки системи;сповіщення;нагадування;підказки;контекст
X-KDE-Keywords[vi]=Âm thanh h thng,Âm,Âm thanh,Thông báo,Cnh báo,Thông báo,System sounds,Audio,Sound,Notify,Alerts,Notification,popups
X-KDE-Keywords[wa]=Sons sistinme,Sons do sistinme,Odio,Son,Notifyî,Abranles,Notifiaedje,aspitants purneas
X-KDE-Keywords[x-test]=xxSystem sounds,Audio,Sound,Notify,Alerts,Notification,popupsxx
X-KDE-Keywords[zh_CN]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups,,,,,,
X-KDE-Keywords[zh_TW]=System sounds,Audio,Sound,Notify,Alerts,Notification,popups
Categories=Qt;KDE;X-KDE-settings-sound;

View file

@ -0,0 +1,298 @@
/*
Copyright (C) 2000,2002 Carsten Pfeiffer <pfeiffer@kde.org>
Copyright (C) 2005,2006 Olivier Goffart <ogoffart at kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "knotify.h"
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QDBusInterface>
#include <QSortFilterProxyModel>
#include <QStandardItemModel>
#include <kapplication.h>
#include <kaboutdata.h>
#include <kcombobox.h>
#include <kconfig.h>
#include <knotifyconfigwidget.h>
#include <kpluginfactory.h>
#include <kpluginloader.h>
#include <kstandarddirs.h>
#include <kurlcompletion.h>
#include <kurlrequester.h>
#include "ui_playersettings.h"
static const int COL_FILENAME = 1;
K_PLUGIN_FACTORY( NotifyFactory, registerPlugin<KCMKNotify>(); )
K_EXPORT_PLUGIN( NotifyFactory("kcmnotify") )
KCMKNotify::KCMKNotify(QWidget *parent, const QVariantList & )
: KCModule(NotifyFactory::componentData(), parent/*, name*/),
m_playerSettings( 0L )
{
setButtons( Help | Default | Apply );
setQuickHelp( i18n("<h1>System Notifications</h1>"
"KDE allows for a great deal of control over how you "
"will be notified when certain events occur. There are "
"several choices as to how you are notified:"
"<ul><li>As the application was originally designed.</li>"
"<li>With a beep or other noise.</li>"
"<li>Via a popup dialog box with additional information.</li>"
"<li>By recording the event in a logfile without "
"any additional visual or audible alert.</li>"
"</ul>"));
QVBoxLayout *layout = new QVBoxLayout( this );
layout->setMargin( 0 );
QTabWidget *tab = new QTabWidget(this);
layout->addWidget(tab);
QWidget * app_tab = new QWidget(tab);
QVBoxLayout *app_layout = new QVBoxLayout( app_tab );
QLabel *label = new QLabel( i18n( "Event source:" ), app_tab );
m_appCombo = new KComboBox( false, app_tab );
m_appCombo->setSizeAdjustPolicy( QComboBox::AdjustToContents );
m_appCombo->setObjectName( QLatin1String( "app combo" ) );
// We want to sort the combo box
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(new QStandardItemModel(0, 1, proxyModel));
// Now configure and set our sort model
proxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
m_appCombo->setModel(proxyModel);
QHBoxLayout *hbox = new QHBoxLayout();
app_layout->addLayout( hbox );
hbox->addWidget( label );
hbox->addWidget( m_appCombo, 10 );
m_notifyWidget = new KNotifyConfigWidget( app_tab );
app_layout->addWidget( m_notifyWidget );
connect( m_notifyWidget, SIGNAL(changed(bool)), this, SIGNAL(changed(bool)));
m_playerSettings = new PlayerSettingsDialog(tab);
connect(m_playerSettings, SIGNAL(changed(bool)) , this, SIGNAL(changed(bool)));
/* general->layout()->setMargin( KDialog::marginHint() );
hardware->layout()->setMargin( KDialog::marginHint() );*/
tab->addTab(app_tab, i18n("&Applications"));
tab->addTab(m_playerSettings, i18n("&Player Settings"));
m_appCombo->setFocus();
connect( m_appCombo, SIGNAL( activated( int ) ),
SLOT( slotAppActivated( int )) );
KAboutData* ab = new KAboutData(
"kcmknotify", 0, ki18n("KNotify"), "4.0",
ki18n("System Notification Control Panel Module"),
KAboutData::License_GPL, ki18n("(c) 2002-2006 KDE Team"));
ab->addAuthor( ki18n("Olivier Goffart"), KLocalizedString(), "ogoffart@kde.org" );
ab->addAuthor( ki18n("Carsten Pfeiffer"), KLocalizedString(), "pfeiffer@kde.org" );
ab->addCredit( ki18n("Charles Samuels"), ki18n("Original implementation"),
"charles@altair.dhs.org" );
setAboutData( ab );
}
KCMKNotify::~KCMKNotify()
{
KConfig _config("knotifyrc", KConfig::NoGlobals);
KConfigGroup config(&_config, "Misc" );
config.writeEntry( "LastConfiguredApp", m_appCombo->currentText() );
config.sync();
}
void KCMKNotify::slotAppActivated(const int &index)
{
QString text( m_appCombo->itemData(index).toString() );
m_notifyWidget->save();
m_notifyWidget->setApplication( text );
}
void KCMKNotify::slotPlayerSettings()
{
}
void KCMKNotify::defaults()
{
// m_notifyWidget->resetDefaults( true ); // ask user
m_playerSettings->defaults();
}
void KCMKNotify::load()
{
//setEnabled( false );
// setCursor( KCursor::waitCursor() );
m_appCombo->clear();
// m_notifyWidget->clear();
QStringList fullpaths =
KGlobal::dirs()->findAllResources("data", "*/*.notifyrc", KStandardDirs::NoDuplicates );
foreach (const QString &fullPath, fullpaths )
{
int slash = fullPath.lastIndexOf( '/' ) - 1;
int slash2 = fullPath.lastIndexOf( '/', slash );
QString appname= slash2 < 0 ? QString() : fullPath.mid( slash2+1 , slash-slash2 );
if ( !appname.isEmpty() )
{
KConfig config(fullPath, KConfig::NoGlobals, "data" );
KConfigGroup globalConfig( &config, QString::fromLatin1("Global") );
QString icon = globalConfig.readEntry(QString::fromLatin1("IconName"), QString::fromLatin1("misc"));
QString description = globalConfig.readEntry( QString::fromLatin1("Comment"), appname );
m_appCombo->addItem( SmallIcon( icon ), description, appname );
}
}
m_appCombo->model()->sort(0);
/*
KConfig config( "knotifyrc", true, false );
config.setGroup( "Misc" );
QString appDesc = config.readEntry( "LastConfiguredApp", "KDE System Notifications" );
if this code gets enabled again, make sure to apply r494965
if ( !appDesc.isEmpty() )
m_appCombo->setCurrentItem( appDesc );
// sets the applicationEvents for KNotifyWidget
slotAppActivated( m_appCombo->currentText() );
// unsetCursor(); // unsetting doesn't work. sigh.
setEnabled( true );
emit changed( false );
*/
m_playerSettings->load();
if ( m_appCombo->count() > 0 ) {
m_appCombo->setCurrentIndex(0);
m_notifyWidget->setApplication( m_appCombo->itemData( 0 ).toString() );
}
emit changed(false);
}
void KCMKNotify::save()
{
if ( m_playerSettings )
m_playerSettings->save();
m_notifyWidget->save(); // will dcop knotify about its new config
emit changed( true );
}
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
PlayerSettingsDialog::PlayerSettingsDialog( QWidget *parent )
: QWidget(parent), m_change(false)
{
m_ui = new Ui::PlayerSettingsUI();
m_ui->setupUi( this );
load();
connect( m_ui->cbExternal, SIGNAL( toggled( bool ) ), this, SLOT( externalToggled( bool ) ) );
connect( m_ui->cbArts, SIGNAL(clicked(bool)), this, SLOT(slotChanged()));
connect( m_ui->cbExternal, SIGNAL(clicked(bool)), this, SLOT(slotChanged()));
connect( m_ui->cbNone, SIGNAL(clicked(bool)), this, SLOT(slotChanged()));
connect( m_ui->volumeSlider, SIGNAL( valueChanged ( int ) ), this, SLOT( slotChanged() ) );
connect( m_ui->reqExternal, SIGNAL( textChanged( const QString& ) ), this, SLOT( slotChanged() ) );
m_ui->reqExternal->setMode(KFile::File|KFile::ExistingOnly|KFile::LocalOnly);
}
void PlayerSettingsDialog::load()
{
KConfig _config( "knotifyrc", KConfig::NoGlobals );
KConfigGroup config(&_config, "Sounds" );
bool useExternal = config.readEntry( "Use external player", false );
m_ui->cbExternal->setChecked( useExternal );
m_ui->reqExternal->setUrl( config.readPathEntry( "External player", QString() ) );
m_ui->volumeSlider->setValue( config.readEntry( "Volume", 100 ) );
if ( !m_ui->cbExternal->isChecked() )
{
m_ui->cbNone->setChecked( config.readEntry( "No sound", false ) );
}
emit changed( false );
m_change=false;
}
void PlayerSettingsDialog::save()
{
if(!m_change)
return;
// see kdebase/runtime/knotify/notifybysound.h
KConfig _config("knotifyrc", KConfig::NoGlobals);
KConfigGroup config(&_config, "Sounds" );
config.writePathEntry( "External player", m_ui->reqExternal->url().path() );
config.writeEntry( "Use external player", m_ui->cbExternal->isChecked() );
config.writeEntry( "Volume", m_ui->volumeSlider->value() );
config.writeEntry( "No sound", m_ui->cbNone->isChecked() );
config.sync();
QDBusInterface itr("org.kde.knotify", "/Notify", "org.kde.KNotify", QDBusConnection::sessionBus(), this);
itr.call("reconfigure");
m_change=false;
}
void PlayerSettingsDialog::slotChanged()
{
m_change=true;
emit changed(true);
}
void PlayerSettingsDialog::defaults()
{
m_ui->cbArts->setChecked(true);
m_change=true;
emit changed(true);
}
void PlayerSettingsDialog::externalToggled( bool on )
{
if ( on )
m_ui->reqExternal->setFocus();
else
m_ui->reqExternal->clearFocus();
}
PlayerSettingsDialog::~ PlayerSettingsDialog( )
{
delete m_ui;
}
#include "knotify.moc"

View file

@ -0,0 +1,88 @@
/*
Copyright (C) 2000,2002 Carsten Pfeiffer <pfeiffer@kde.org>
Copyright (C) 2005,2006 Olivier Goffart <ogoffart at kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef _KNOTIFY_H
#define _KNOTIFY_H
#include <kcmodule.h>
class KComboBox;
class PlayerSettingsDialog;
namespace Ui{
class PlayerSettingsUI;
}
class QPushButton;
class KNotifyConfigWidget;
class KCMKNotify : public KCModule
{
Q_OBJECT
public:
KCMKNotify(QWidget *parent, const QVariantList &);
virtual ~KCMKNotify();
virtual void defaults();
virtual void save();
public Q_SLOTS:
virtual void load();
private Q_SLOTS:
void slotAppActivated( const int &);
void slotPlayerSettings();
private:
KComboBox *m_appCombo;
KNotifyConfigWidget *m_notifyWidget;
PlayerSettingsDialog *m_playerSettings;
QPushButton *m_psb;
};
class PlayerSettingsDialog : public QWidget
{
Q_OBJECT
public:
PlayerSettingsDialog( QWidget *parent );
~PlayerSettingsDialog();
void load();
void save();
void defaults();
protected Q_SLOTS:
void externalToggled( bool on );
void slotChanged();
signals:
void changed(bool);
private:
Ui::PlayerSettingsUI* m_ui;
bool m_change;
};
#endif

View file

@ -0,0 +1,288 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PlayerSettingsUI</class>
<widget class="QWidget" name="PlayerSettingsUI">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>407</width>
<height>178</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QRadioButton" name="cbArts">
<property name="text">
<string>Use the &amp;KDE sound system</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout">
<property name="margin">
<number>0</number>
</property>
<item row="1" column="4">
<widget class="QLabel" name="textLabel3">
<property name="text">
<string>100%</string>
</property>
</widget>
</item>
<item row="1" column="3">
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>261</width>
<height>16</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<widget class="QLabel" name="textLabel2">
<property name="text">
<string>0%</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="textLabel4">
<property name="text">
<string>&amp;Volume:</string>
</property>
<property name="buddy">
<cstring>volumeSlider</cstring>
</property>
</widget>
</item>
<item row="0" column="2" colspan="3">
<widget class="QSlider" name="volumeSlider">
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>100</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="2">
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>41</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QRadioButton" name="cbExternal">
<property name="text">
<string>&amp;Use an external player</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<property name="margin">
<number>0</number>
</property>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="textLabel5">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>&amp;Player:</string>
</property>
<property name="buddy">
<cstring>reqExternal</cstring>
</property>
</widget>
</item>
<item>
<widget class="KUrlRequester" name="reqExternal" native="true">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>10</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QRadioButton" name="cbNone">
<property name="text">
<string>&amp;No audio output</string>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KUrlRequester</class>
<extends>QWidget</extends>
<header>kurlrequester.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections>
<connection>
<sender>cbArts</sender>
<signal>toggled(bool)</signal>
<receiver>volumeSlider</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>84</x>
<y>31</y>
</hint>
<hint type="destinationlabel">
<x>126</x>
<y>60</y>
</hint>
</hints>
</connection>
<connection>
<sender>cbArts</sender>
<signal>toggled(bool)</signal>
<receiver>textLabel3</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>234</x>
<y>34</y>
</hint>
<hint type="destinationlabel">
<x>308</x>
<y>83</y>
</hint>
</hints>
</connection>
<connection>
<sender>cbArts</sender>
<signal>toggled(bool)</signal>
<receiver>textLabel4</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>49</x>
<y>32</y>
</hint>
<hint type="destinationlabel">
<x>62</x>
<y>61</y>
</hint>
</hints>
</connection>
<connection>
<sender>cbArts</sender>
<signal>toggled(bool)</signal>
<receiver>textLabel2</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>161</x>
<y>27</y>
</hint>
<hint type="destinationlabel">
<x>108</x>
<y>85</y>
</hint>
</hints>
</connection>
<connection>
<sender>cbExternal</sender>
<signal>toggled(bool)</signal>
<receiver>textLabel5</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>87</x>
<y>114</y>
</hint>
<hint type="destinationlabel">
<x>86</x>
<y>143</y>
</hint>
</hints>
</connection>
<connection>
<sender>cbExternal</sender>
<signal>toggled(bool)</signal>
<receiver>reqExternal</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>236</x>
<y>112</y>
</hint>
<hint type="destinationlabel">
<x>240</x>
<y>137</y>
</hint>
</hints>
</connection>
</connections>
</ui>

2
kcontrol/locale/AUTHORS Normal file
View file

@ -0,0 +1,2 @@
Matthias Hoelzer (hoelzer@physik.uni-wuerzburg.de)
Hans Petter Bieker <bieker@kde.org>

View file

@ -0,0 +1,19 @@
add_subdirectory( pics )
########### next target ###############
set(kcm_locale_PART_SRCS kcmlocale.cpp)
kde4_add_ui_files(kcm_locale_PART_SRCS kcmlocalewidget.ui )
kde4_add_plugin(kcm_locale ${kcm_locale_PART_SRCS})
target_link_libraries(kcm_locale ${KDE4_KIO_LIBS} ${QT_QTGUI_LIBRARY} )
install(TARGETS kcm_locale DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES language.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -0,0 +1,3 @@
#! /usr/bin/env bash
$EXTRACTRC *.ui >> rc.cpp
$XGETTEXT -ktranslate:1,1t -ktranslate:1c,2,2t *.cpp -o $podir/kcmlocale.pot

View file

@ -0,0 +1,365 @@
/***************************************************************************
* Copyright (C) 2007 by Albert Astals Cid <aacid@kde.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#include "countryselectordialog.h"
#include "kcontrollocale.h"
#include <KStandardDirs>
#include <QAbstractItemModel>
#include <QHBoxLayout>
#include <QKeyEvent>
#include <QListView>
#include <QScrollBar>
struct CountryModelItem
{
CountryModelItem()
{
}
CountryModelItem( CountryModelItem *p, const QString &theText, const QString &theTag )
: parent(p), text(theText), tag(theTag)
{
}
~CountryModelItem()
{
qDeleteAll(children);
}
int row() const
{
if (parent) return parent->children.indexOf(const_cast<CountryModelItem*>(this));
return 0;
}
CountryModelItem *parent;
QList< CountryModelItem* > children;
QString text, tag;
KIcon icon;
};
bool CountryModelItemLessThan(CountryModelItem *s1, CountryModelItem *s2)
{
return s1->text < s2->text;
}
class CountryModel : public QAbstractItemModel
{
public:
CountryModel(QObject *parent) : QAbstractItemModel(parent)
{
m_rootItem = new CountryModelItem(NULL, QString(), QString());
}
CountryModel(CountryModelItem *rootItem, QObject *parent) : QAbstractItemModel(parent)
{
m_rootItem = rootItem;
}
~CountryModel()
{
if (m_rootItem->parent == NULL) delete m_rootItem;
}
void addRegion(const QString &name, const QString &tag)
{
CountryModelItem *cmi = new CountryModelItem(m_rootItem, name, tag);
m_rootItem->children.append(cmi);
}
void addSubRegion(const KIcon &flag, const QString &name, const QString &tag, const QString &superRegion)
{
CountryModelItem *parent = NULL;
foreach(CountryModelItem *cm, m_rootItem->children)
{
if (cm->tag == superRegion) parent = cm;
}
if (parent)
{
CountryModelItem *cmi = new CountryModelItem(parent, name, tag);
cmi->icon = flag;
parent->children.append(cmi);
}
}
void sort()
{
qSort(m_rootItem->children.begin(), m_rootItem->children.end(), CountryModelItemLessThan);
foreach(CountryModelItem *cm, m_rootItem->children)
{
qSort(cm->children.begin(), cm->children.end(), CountryModelItemLessThan);
}
}
int rowCount(const QModelIndex &parent) const
{
if (parent.column() > 0)
return 0;
CountryModelItem *parentItem;
if (!parent.isValid())
parentItem = m_rootItem;
else
parentItem = static_cast<CountryModelItem*>(parent.internalPointer());
return parentItem->children.count();
}
int columnCount(const QModelIndex &parent) const
{
if (!parent.isValid()) return 1;
else
{
CountryModelItem *p = static_cast<CountryModelItem*>(parent.internalPointer());
if (p->parent) return 1;
else return 0;
}
}
QModelIndex index(int row, int column, const QModelIndex &parent) const
{
if (!hasIndex(row, column, parent))
return QModelIndex();
CountryModelItem *parentItem;
if (!parent.isValid())
parentItem = m_rootItem;
else
parentItem = static_cast<CountryModelItem*>(parent.internalPointer());
CountryModelItem *childItem = parentItem->children.at(row);
if (childItem)
return createIndex(row, column, childItem);
else
return QModelIndex();
}
QModelIndex parent(const QModelIndex &index) const
{
if (!index.isValid())
return QModelIndex();
CountryModelItem *childItem = static_cast<CountryModelItem*>(index.internalPointer());
CountryModelItem *parentItem = childItem->parent;
if (parentItem == m_rootItem)
return QModelIndex();
return createIndex(parentItem->row(), 0, parentItem);
}
QVariant data(const QModelIndex &index, int role) const
{
if (index.isValid())
{
CountryModelItem *cmi = static_cast<CountryModelItem*>(index.internalPointer());
if (role == Qt::DisplayRole)
{
return cmi->text;
}
else if (role == Qt::DecorationRole)
{
if (cmi->parent->parent) return cmi->icon;
}
}
return QVariant();
}
private:
CountryModelItem *m_rootItem;
};
class CSDListView : public QListView
{
public:
CSDListView(QWidget *parent) : QListView(parent)
{
}
void setOtherWidget(QWidget *widget, Qt::Key key)
{
m_other = widget;
m_key = key;
}
protected:
void keyPressEvent(QKeyEvent *event)
{
if (event->key() == m_key) m_other->setFocus();
else QListView::keyPressEvent(event);
}
private:
QWidget *m_other;
Qt::Key m_key;
};
CountrySelectorDialog::CountrySelectorDialog(QWidget *parent) : KDialog(parent)
{
setCaption( i18n("Country Selector") );
setButtons( KDialog::Ok | KDialog::Cancel );
QWidget *widget = new QWidget(this);
setMainWidget(widget);
}
bool CountrySelectorDialog::editCountry(KControlLocale *locale)
{
QHBoxLayout *hbl = new QHBoxLayout(mainWidget());
CSDListView *lv1 = new CSDListView(mainWidget());
m_countriesView = new CSDListView(mainWidget());
hbl->addWidget(lv1);
hbl->addWidget(m_countriesView);
lv1->setOtherWidget(m_countriesView, Qt::Key_Right);
m_countriesView->setOtherWidget(lv1, Qt::Key_Left);
QString country, region;
country = locale->country();
CountryModel *cm = new CountryModel(this);
const QString &sub = QString::fromLatin1("l10n/");
QStringList regionlist = KGlobal::dirs()->findAllResources("locale",
sub + QString::fromLatin1("*.desktop"),
KStandardDirs::NoDuplicates);
QFontMetrics fm(lv1->font());
int lv1Width = 0;
foreach(const QString &region, regionlist)
{
QString tag = region;
int index;
index = tag.lastIndexOf('/');
if (index != -1)
tag = tag.mid(index + 1);
index = tag.lastIndexOf('.');
if (index != -1)
tag.truncate(index);
KConfig entry(region);
KConfigGroup cg = entry.group("KCM Locale");
QString name = cg.readEntry("Name", ki18n("without name").toString(locale));
cm->addRegion(name, tag);
QString spacedName = name + " ";
lv1Width = qMax(lv1Width, fm.width(spacedName));
}
// add all languages to the list
QStringList countrylist = KGlobal::dirs()->findAllResources("locale",
sub + QString::fromLatin1("*/entry.desktop"),
KStandardDirs::NoDuplicates);
foreach(const QString &countryFile, countrylist)
{
KConfig entry(countryFile);
KConfigGroup cg = entry.group("KCM Locale");
QString name = cg.readEntry("Name", ki18n("without name").toString(locale));
QString parentRegion = cg.readEntry("Region");
QString tag = countryFile;
int index = tag.lastIndexOf('/');
tag.truncate(index);
index = tag.lastIndexOf('/');
tag = tag.mid(index + 1);
QString flag( KStandardDirs::locate( "locale", QString::fromLatin1( "l10n/%1/flag.png" ).arg(tag) ) );
cm->addSubRegion(KIcon(flag), name, tag, parentRegion);
if (tag == country) region = parentRegion;
}
cm->sort();
cm->addRegion(i18nc("@item:inlistbox Country", "Not set (Generic English)"), "C");
if (country == "C") region = "C";
lv1->setModel(cm);
lv1->setFixedWidth(lv1Width + lv1->verticalScrollBar()->height());
// + 2 because 1 is "Not set (Generic English)" and the other is for spacing
lv1->setMinimumHeight((regionlist.count() + 2) * fm.height());
connect(lv1->selectionModel(), SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), SLOT(regionChanged(const QModelIndex &)));
connect(lv1, SIGNAL(activated(const QModelIndex &)), SLOT(regionActivated()));
connect(m_countriesView, SIGNAL(activated(const QModelIndex &)), SLOT(accept()));
for(int i = 0; i < lv1->model()->rowCount(); ++i)
{
const QModelIndex &current = lv1->model()->index(i, 0);
CountryModelItem *cmi = static_cast<CountryModelItem*>(current.internalPointer());
if (cmi->tag == region)
{
lv1->selectionModel()->setCurrentIndex(current, QItemSelectionModel::SelectCurrent);
}
}
if (m_countriesView->model() != NULL)
{
for(int i = 0; i < m_countriesView->model()->rowCount(); ++i)
{
const QModelIndex &current = m_countriesView->model()->index(i, 0);
CountryModelItem *cmi = static_cast<CountryModelItem*>(current.internalPointer());
if (cmi->tag == country)
{
m_countriesView->selectionModel()->setCurrentIndex(current, QItemSelectionModel::SelectCurrent);
}
}
m_countriesView->setFocus();
}
else lv1->setFocus();
if (exec() == QDialog::Accepted)
{
const QModelIndex &current = m_countriesView->currentIndex();
if (current.isValid())
{
CountryModelItem *cmi = static_cast<CountryModelItem*>(current.internalPointer());
return locale->setCountry(cmi->tag);
}
else if (m_countriesView->model() == NULL)
{
return locale->setCountry("C");
}
}
return false;
}
void CountrySelectorDialog::regionChanged(const QModelIndex &current)
{
delete m_countriesView->model();
CountryModelItem *cmi = static_cast<CountryModelItem*>(current.internalPointer());
if (!cmi->children.isEmpty())
{
CountryModel *cm = new CountryModel(cmi, this);
m_countriesView->setModel(cm);
}
else
{
m_countriesView->setModel(NULL);
}
}
void CountrySelectorDialog::regionActivated()
{
if (m_countriesView->model() != NULL) m_countriesView->setFocus();
else accept();
}

View file

@ -0,0 +1,37 @@
/***************************************************************************
* Copyright (C) 2007 by Albert Astals Cid <aacid@kde.org> *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
***************************************************************************/
#ifndef COUNTRYSELECTORDIALOG_H
#define COUNTRYSELECTORDIALOG_H
#include <KDialog>
class CSDListView;
class KControlLocale;
class QModelIndex;
class CountrySelectorDialog : public KDialog
{
Q_OBJECT
public:
CountrySelectorDialog(QWidget *parent);
bool editCountry(KControlLocale *locale);
private slots:
void regionChanged(const QModelIndex &current);
void regionActivated();
private:
CSDListView *m_countriesView;
};
#endif

File diff suppressed because it is too large Load diff

483
kcontrol/locale/kcmlocale.h Normal file
View file

@ -0,0 +1,483 @@
/* This file is part of the KDE libraries
* Copyright 2010 John Layt <john@layt.net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef KCMLOCALE_H
#define KCMLOCALE_H
#include <QMap>
#include <KCModule>
#include <KSharedConfig>
#include <KConfigGroup>
#include <KLocale>
class QListWidgetItem;
class QCheckBox;
class KPushButton;
class KComboBox;
class KIntNumInput;
namespace Ui {
class KCMLocaleWidget;
}
/**
* @short A KCM to configure locale settings
*
* This module is for changing the User's Locale settings, which may override their Group and
* Country defaults.
*
* The settings hierarchy is as follows:
* - User settings from kdeglobals
* - Group settings from $KDEDIRS
* - Country settings from l10n
* - C default settings from l10n
*
* The settings that apply to the User are a merger of all these.
*
* This may be restricted by Kiosk Group settings locking the user from updating some/all settings.
*
* The KCM starts by loading the fully merged settings including the User settings
* In KCM terms, to Reload is to load the fully merged settings including the User settings
* In KCM terms, to reset to Defaults is to remove the User settings only.
* The user can also reset to Default each individual setting.
*/
class KCMLocale : public KCModule
{
Q_OBJECT
public:
KCMLocale(QWidget *parent, const QVariantList &);
virtual ~KCMLocale();
virtual void load();
virtual void save();
virtual void defaults();
virtual QString quickHelp() const;
private:
//Common load/save utilities
// Initialise the different settings groups
void initSettings();
void initCountrySettings( const QString &countryCode );
void initCalendarSettings();
// Merge the different settings groups into the effective settings
void mergeSettings();
void mergeCalendarSettings();
// Copy the supported settings between settings groups
void copySettings( KConfigGroup *fromGroup, KConfigGroup *toGroup,
KConfig::WriteConfigFlags flags = KConfig::Normal );
void copyCalendarSettings( KConfigGroup *fromGroup, KConfigGroup *toGroup,
KConfig::WriteConfigFlags flags = KConfig::Normal );
void copySetting( KConfigGroup *fromGroup, KConfigGroup *toGroup, const QString &key,
KConfig::WriteConfigFlags flags = KConfig::Normal );
// Enable / Disable an item in the gui
void enableItemWidgets( const QString &itemKey, KConfigGroup *userSettings,
KConfigGroup *kcmSettings, KConfigGroup *defaultSettings,
QWidget *itemWidget, KPushButton *itemDefaultButton );
// Set the item value in the required settings groups
void setItemValue( const QString &itemKey, const QString &itemValue,
KConfigGroup *userSettings, KConfigGroup *kcmSettings, KConfigGroup *defaultSettings );
// Set an item: set the item value, enable the widgets, set the changed flag, don't update the widget
void setItem( const QString &itemKey, const QString &itemValue,
QWidget *itemWidget, KPushButton *itemDefaultButton );
void setItem( const QString &itemKey, int itemValue,
QWidget *itemWidget, KPushButton *itemDefaultButton );
void setItem( const QString &itemKey, bool itemValue,
QWidget *itemWidget, KPushButton *itemDefaultButton );
void setCalendarItem( const QString &itemKey, const QString &itemValue,
QWidget *itemWidget, KPushButton *itemDefaultButton );
void setCalendarItem( const QString &itemKey, int itemValue,
QWidget *itemWidget, KPushButton *itemDefaultButton );
void setCalendarItem( const QString &itemKey, bool itemValue,
QWidget *itemWidget, KPushButton *itemDefaultButton );
// Set an item: set the item value, enable the widgets, set the changed flag, update the widget
void setComboItem( const QString &itemKey, const QString &itemValue,
KComboBox *itemCombo, KPushButton *itemDefaultButton );
void setComboItem( const QString &itemKey, int itemValue,
KComboBox *itemCombo, KPushButton *itemDefaultButton );
void setEditComboItem( const QString &itemKey, const QString &itemValue,
KComboBox *itemCombo, KPushButton *itemDefaultButton );
void setIntItem( const QString &itemKey, int itemValue,
KIntNumInput *itemInput, KPushButton *itemDefaultButton );
void setCheckItem( const QString &itemKey, bool itemValue,
QCheckBox *itemCheck, KPushButton *itemDefaultButton );
void setMonetaryFormat( const QString &prefixCurrencySymbolKey, bool prefixCurrencySymbol,
const QString &signPositionKey, KLocale::SignPosition signPosition,
QWidget *formatWidget, KPushButton *formatDefaultButton );
// Check if the chaged flag needs to be set
void checkIfChanged();
//Common init utilities
void initSeparatorCombo( KComboBox *separatorCombo );
void initWeekDayCombo( KComboBox *dayCombo );
void initDigitSetCombo( KComboBox *digitSetCombo );
void initDigitGroupingCombo( KComboBox *digitGroupingCombo, const QString &digitGroupingKey);
void insertDigitGroupingItem( KComboBox *digitGroupingCombo,
KSharedConfigPtr groupingConfig, KConfigGroup *groupingSettings,
const QString &digitGroupingKey, const QString &digitGroupingFormat);
void insertMonetaryPositiveFormat( bool prefixCurrencySymbol, KLocale::SignPosition signPosition );
void insertMonetaryNegativeFormat( bool prefixCurrencySymbol, KLocale::SignPosition signPosition );
void initAllWidgets();
void initSettingsWidgets();
void initResetButtons();
void initTabs();
void initSample();
//Country tab
void initCountry();
void setCountry( const QString &newValue );
void initCountryDivision();
void setCountryDivision( const QString &newValue );
//Translations/Languages tab
void initTranslations();
void setTranslations( const QString &newValue );
void initTranslationsInstall();
//Numeric tab
void initNumericDigitGrouping();
void setNumericDigitGrouping( const QString &newValue );
void initNumericThousandsSeparator();
void setNumericThousandsSeparator( const QString &newValue );
void initNumericDecimalSymbol();
void setNumericDecimalSymbol( const QString &newValue );
void initNumericDecimalPlaces();
void setNumericDecimalPlaces( int newValue );
void initNumericPositiveSign();
void setNumericPositiveSign( const QString &newValue );
void initNumericNegativeSign();
void setNumericNegativeSign( const QString &newValue );
void initNumericDigitSet();
void setNumericDigitSet( int newValue );
//Monetary tab
void initCurrencyCode();
void setCurrencyCode( const QString &newValue );
void initCurrencySymbol();
void setCurrencySymbol( const QString &newValue );
void initMonetaryDigitGrouping();
void setMonetaryDigitGrouping( const QString &newValue );
void initMonetaryThousandsSeparator();
void setMonetaryThousandsSeparator( const QString &newValue );
void initMonetaryDecimalSymbol();
void setMonetaryDecimalSymbol( const QString &newValue );
void initMonetaryDecimalPlaces();
void setMonetaryDecimalPlaces( int newValue );
void initMonetaryPositiveFormat();
void setMonetaryPositiveFormat( bool prefixCurrencySymbol, KLocale::SignPosition signPosition );
void initMonetaryNegativeFormat();
void setMonetaryNegativeFormat( bool prefixCurrencySymbol, KLocale::SignPosition signPosition );
void initMonetaryDigitSet();
void setMonetaryDigitSet( int newValue );
//Calendar Tab
void initCalendarSystem();
void setCalendarSystem( const QString &newValue );
void initUseCommonEra();
void setUseCommonEra( bool newValue );
void initShortYearWindow();
void setShortYearWindow( int newValue );
void initWeekNumberSystem();
void setWeekNumberSystem( int newValue );
void initWeekStartDay();
void setWeekStartDay( int newValue );
void initWorkingWeekStartDay();
void setWorkingWeekStartDay( int newValue );
void initWorkingWeekEndDay();
void setWorkingWeekEndDay( int newValue );
void initWeekDayOfPray();
void setWeekDayOfPray( int newValue );
//Date/Time tab
void initTimeFormat();
void setTimeFormat( const QString &newValue );
void initAmPmSymbols();
void setAmPmPeriods( const QString &amValue, const QString &pmValue );
void initDateFormat();
void setDateFormat( const QString &newValue );
void initShortDateFormat();
void setShortDateFormat( const QString &newValue );
void initMonthNamePossessive();
void setMonthNamePossessive( bool newValue );
void initDateTimeDigitSet();
void setDateTimeDigitSet( int newValue );
//Other Tab
void initPageSize();
void setPageSize( int newValue );
void initMeasureSystem();
void setMeasureSystem( int newValue );
void initBinaryUnitDialect();
void setBinaryUnitDialect( int newValue );
private Q_SLOTS:
void updateSample();
//Country tab
void defaultCountry();
void changedCountryIndex( int index );
void defaultCountryDivision();
void changedCountryDivisionIndex( int index );
//Translations/Languages tab
void defaultTranslations();
void changedTranslations();
void changedTranslationsAvailable( QListWidgetItem * item );
void changedTranslationsSelected( QListWidgetItem * item );
void installTranslations();
//Numeric tab
void defaultNumericDigitGrouping();
void changedNumericDigitGroupingIndex( int index );
void defaultNumericThousandsSeparator();
void changedNumericThousandsSeparator( const QString &newValue );
void defaultNumericDecimalSymbol();
void changedNumericDecimalSymbol( const QString &newValue );
void defaultNumericDecimalPlaces();
void changedNumericDecimalPlaces( int newValue );
void defaultNumericPositiveSign();
void changedNumericPositiveSign( const QString &newValue );
void defaultNumericNegativeSign();
void changedNumericNegativeSign( const QString &newValue );
void defaultNumericDigitSet();
void changedNumericDigitSetIndex( int index );
//Monetary tab
void defaultCurrencyCode();
void changedCurrencyCodeIndex( int index );
void defaultCurrencySymbol();
void changedCurrencySymbolIndex( int index );
void defaultMonetaryDigitGrouping();
void changedMonetaryDigitGroupingIndex( int index );
void defaultMonetaryThousandsSeparator();
void changedMonetaryThousandsSeparator( const QString &newValue );
void defaultMonetaryDecimalSymbol();
void changedMonetaryDecimalSymbol( const QString &newValue );
void defaultMonetaryDecimalPlaces();
void changedMonetaryDecimalPlaces( int newValue );
void defaultMonetaryPositiveFormat();
void changedMonetaryPositiveFormatIndex( int index );
void defaultMonetaryNegativeFormat();
void changedMonetaryNegativeFormatIndex( int index );
void defaultMonetaryDigitSet();
void changedMonetaryDigitSetIndex( int index );
//Calendar Tab
void defaultCalendarSystem();
void changedCalendarSystemIndex( int index );
void defaultUseCommonEra();
void changedUseCommonEra( bool newValue );
void defaultShortYearWindow();
void changedShortYearWindow( int newValue );
void defaultWeekNumberSystem();
void changedWeekNumberSystemIndex( int index );
void defaultWeekStartDay();
void changedWeekStartDayIndex( int index );
void defaultWorkingWeekStartDay();
void changedWorkingWeekStartDayIndex( int index );
void defaultWorkingWeekEndDay();
void changedWorkingWeekEndDayIndex( int index );
void defaultWeekDayOfPray();
void changedWeekDayOfPrayIndex( int index );
//Date/Time tab
void defaultTimeFormat();
void changedTimeFormat( const QString &newValue );
void defaultAmSymbol();
void changedAmSymbol( const QString &newValue );
void defaultPmSymbol();
void changedPmSymbol( const QString &newValue );
void defaultDateFormat();
void changedDateFormat( const QString &newValue );
void defaultShortDateFormat();
void changedShortDateFormat( const QString &newValue );
void defaultMonthNamePossessive();
void changedMonthNamePossessive( bool newValue );
void defaultDateTimeDigitSet();
void changedDateTimeDigitSetIndex( int index );
//Other Tab
void defaultPageSize();
void changedPageSizeIndex( int index );
void defaultMeasureSystem();
void changedMeasureSystemIndex( int index );
void defaultBinaryUnitDialect();
void changedBinaryUnitDialectIndex( int index );
private:
// Date/Time format map utilities
QString posixToUserDate( const QString &posixFormat ) const;
QString posixToUserTime( const QString &posixFormat ) const;
QString posixToUser( const QString &posixFormat, const QMap<QString, QString> &map ) const;
QString userToPosixDate( const QString &userFormat ) const;
QString userToPosixTime( const QString &userFormat ) const;
QString userToPosix( const QString &userFormat, const QMap<QString, QString> &map ) const;
// Day Period utilities
QString dayPeriodText( const QString &dayPeriod );
QString amPeriod( const QString &longName, const QString &shortName, const QString &narrowName );
QString pmPeriod( const QString &longName, const QString &shortName, const QString &narrowName );
// The current User settings from .kde/share/config/kdeglobals
// This gets updated with the users changes in the kcm and saved when requested
KSharedConfigPtr m_userConfig;
KConfigGroup m_userSettings;
KConfigGroup m_userCalendarSettings;
// The kcm config/settings, a merger of C, Country, Group and User settings
// This is used to build the displayed settings and to initialise the sample locale, but never saved
KSharedConfigPtr m_kcmConfig;
KConfigGroup m_kcmSettings;
KConfigGroup m_kcmCalendarSettings;
// The currently saved user config/settings
// This is used to check if anything has changed, but never saved
KSharedConfigPtr m_currentConfig;
KConfigGroup m_currentSettings;
KConfigGroup m_currentCalendarSettings;
// The KCM Default settings, a merger of C, Country, and Group, i.e. excluding User
KSharedConfigPtr m_defaultConfig;
KConfigGroup m_defaultSettings;
KConfigGroup m_defaultCalendarSettings;
// The current Group settings, i.e. does NOT include the User or Country settings
KSharedConfigPtr m_groupConfig;
KConfigGroup m_groupSettings;
KConfigGroup m_groupCalendarSettings;
// The Country Locale config from l10n/<country>/entry.desktop
KSharedConfigPtr m_countryConfig;
KConfigGroup m_countrySettings;
KConfigGroup m_countryCalendarSettings;
// The default C Locale config/settings from l10n/C/entry.desktop
KSharedConfigPtr m_cConfig;
KConfigGroup m_cSettings;
KConfigGroup m_cCalendarSettings;
QMap<QString, QString> m_dateFormatMap;
QMap<QString, QString> m_timeFormatMap;
// The system country, not the KDE one
QString m_systemCountry;
// NOTE: we need to mantain our own language list instead of using KLocale's
// because KLocale does not add a language if there is no translation
// for the current application so it would not be possible to set
// a language which has no systemsettings/kcontrol module translation
// The list of translations used in the kcm, is users list plus us_EN
QStringList m_kcmTranslations;
// The currently saved list of user translations, used to check if value changed
QString m_currentTranslations;
// The currently installed translations, used to check if users translations are valid
QStringList m_installedTranslations;
// The locale we use when displaying the sample output, not used for anything else
KLocale *m_kcmLocale;
// The locale for the current defaults, needed for am/pm as the defaults are hard coded in KLocale
KLocale *m_defaultLocale;
Ui::KCMLocaleWidget *m_ui;
};
#endif //KCMLOCALE_H

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,256 @@
[Desktop Entry]
Exec=kcmshell4 language
Icon=preferences-desktop-locale
Type=Service
X-KDE-ServiceTypes=KCModule
X-DocPath=kcontrol/language/index.html
X-KDE-Library=kcm_locale
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=locale
X-KDE-Weight=50
Name=Country/Region & Language
Name[af]=Land/Streek & Taal
Name[ar]=البلد/المنطقة واللغة
Name[ast]=País/rexón y llingua
Name[be]=Краіна/Рэгіён і Мова
Name[be@latin]=Kraina/Miascovaść i mova
Name[bg]=Държава и език
Name[bn]=/
Name[bn_IN]=/
Name[br]=Bro/Rann-vro & yezh
Name[bs]=Država (regija) i jezik
Name[ca]=País/Regió i idioma
Name[ca@valencia]=País/Regió i idioma
Name[cs]=Země/region a jazyk
Name[csb]=Kraj/dzél kraju ë jãzëk
Name[cy]=Gwlad/Rhanbarth ac Iaith
Name[da]=Land/region og sprog
Name[de]=Land/Region & Sprache
Name[el]=Χώρα/Περιοχή & Γλώσσα
Name[en_GB]=Country/Region & Language
Name[eo]=Lando/regiono & lingvo
Name[es]=País/región e idioma
Name[et]=Riik/regioon ja keel
Name[eu]=Herrialdea/Eskualdea eta hizkuntza
Name[fa]=کشور/منطقه & زبان
Name[fi]=Alue ja kieli
Name[fr]=Pays / Région & langue
Name[fy]=Lân/regio en taal
Name[ga]=Tír/Réigiún agus Teanga
Name[gl]=País/Rexión e lingua
Name[gu]=/િ &
Name[he]=מדינה, אזור ושפה
Name[hi]=/
Name[hne]=/
Name[hr]=Zemlja i jezik
Name[hsb]=Kraj/kónčina & Rěč
Name[hu]=Ország/régió és nyelv
Name[ia]=Pais/Region & Linguage
Name[id]=Negara/Daerah & Bahasa
Name[is]=Land & tungumál
Name[it]=Lingua e paese
Name[ja]=
Name[ka]=/
Name[kk]=Ел/өлке және тіл
Name[km]=/
Name[kn]=/
Name[ko]=,
Name[ku]=Welat/Herên & Ziman
Name[lt]=Šalis/regionas ir kalba
Name[lv]=Valsts/reģions un valoda
Name[mai]=/
Name[mk]=Земја/регион и јазик
Name[ml]=/,
Name[mr]=/
Name[ms]=Negara/Rantau & Bahasa
Name[nb]=Land/region og språk
Name[nds]=Land, Regioon un Spraak
Name[ne]=/
Name[nl]=Land/regio en taal
Name[nn]=Land og språk
Name[or]=/
Name[pa]=/
Name[pl]=Kraj/region i język
Name[pt]=País/Região e Língua
Name[pt_BR]=País/região e idioma
Name[ro]=Țara/regiunea și limba
Name[ru]=Язык и стандарты
Name[se]=Riika/guovla ja giella
Name[si]=/
Name[sk]=Krajina/región a jazyk
Name[sl]=Država/območje in jezik
Name[sr]=Држава (регија) и језик
Name[sr@ijekavian]=Држава (регија) и језик
Name[sr@ijekavianlatin]=Država (regija) i jezik
Name[sr@latin]=Država (regija) i jezik
Name[sv]=Land/region och språk
Name[ta]=/ ி
Name[te]=/ &
Name[tg]=Кишвар/Минтақа ва Забон
Name[th]=/
Name[tr]=Ülke/Bölge ve Dil
Name[ug]=دۆلەت/رايون ۋە تىل
Name[uk]=Країна/Регіон та мова
Name[uz]=Davlat/region va til
Name[uz@cyrillic]=Давлат/регион ва тил
Name[vi]=Quc gia và ngôn ng
Name[wa]=Payis & lingaedje
Name[xh]=Ilizwe/Ummandla & Ulwimi
Name[x-test]=xxCountry/Region & Languagexx
Name[zh_CN]=/
Name[zh_TW]=/
Comment=Language, numeric, and time settings for your particular region
Comment[af]=Taal, numeries, en tyd instellings vir jou spesifieke streek
Comment[ar]=إعدادات اللغة والأرقام والوقت لمنطقتك
Comment[ast]=Preferencies de llingua, formatu numbéricu y data/hora pa rexón en particular
Comment[be]=Моўныя, лічбавыя і часавыя настаўленні для вашага канкрэтнага рэгіёну
Comment[be@latin]=Nałady movy, likaŭ i času dla peŭnaj miascovaści
Comment[bg]=Настройване на държавата, езика, формата на датата и часа и др.
Comment[bn]= , ি
Comment[bn_IN]= , ি
Comment[br]=Kefluniadur yezh, sifroù hag eur evit ho rannved-c'hwi
Comment[bs]=Postavke jezika, brojeva i vremena prema vašem okruženju
Comment[ca]=Arranjament d'idioma, numèric i horari per a la vostra regió
Comment[ca@valencia]=Arranjament d'idioma, numèric i horari per a la vostra regió
Comment[cs]=Nastavení jazyka, formátu čísel a času pro váš region
Comment[csb]=Jãzëk, fòrmat wielënów ë czasu dlô Twòji òbeńdë
Comment[cy]=Gosodiadu iaith,rhifau,ac amser i'ch rhanbarth
Comment[da]=Sprog-, tal-, og tidsindstillinger for din region
Comment[de]=Sprache, Zahlen- und Zeitformate für Ihr Land
Comment[el]=Γλωσσικές, αριθμητικές και ρυθμίσεις ώρας για την περιοχή σας
Comment[en_GB]=Language, numeric, and time settings for your particular region
Comment[eo]=Agordoj de lingvoj, nombroj kaj tempindikoj por via specifa regiono
Comment[es]=Preferencias del idioma, formato numérico y fecha/hora para su región particular
Comment[et]=Sinu regiooni keele, numbrite ja kellaaja seadistused
Comment[eu]=Eskualde jakin bateko hizkuntza-, ordu- eta zenbaki-ezarpenak
Comment[fa]=زبان، عدد، و تنظیمات زمان برای منطقه خاص شما
Comment[fi]=Alueen, kielen, ajan ja lukujen asetukset
Comment[fr]=Configuration de la langue, des nombres et du format d'heure pour votre zone
Comment[fy]=Taal-, numeryk, en tiidsynstelling foar jo eigen regio
Comment[ga]=Socruithe teanga, uimhreacha, agus ama le haghaidh do réigiúin
Comment[gl]=Lingua e parámetros numéricos/horarios da súa rexión
Comment[gu]= િ , ,
Comment[he]=שינוי הגדרות שפה, ואופן הצגת מספרים ושעה עבור האיזור הייחודי שלך
Comment[hi]=,, ि ि ि
Comment[hne]=,, ि ि
Comment[hr]=Jezik, oblik brojeva i vremenska postavke za određenu regiju
Comment[hsb]=Rěč, ličby a časowe nastajenja za Wašu kónčinu
Comment[hu]=Nyelv-, szám- és időbeállítások
Comment[ia]=Preferentias de linguage, numeric e de tempore pro tu particular region
Comment[id]=Pengaturan bahasa, numerik, dan waktu khususnya untuk daerah anda
Comment[is]=Tungumál og framsetning talna og dagssetninga
Comment[it]=Impostazioni nazionali per la lingua, i numeri, la data e l'ora
Comment[ja]=
Comment[ka]= ,
Comment[kk]=Өлкеңіздің тіл, сан және уақыт пішімін орнату
Comment[km]=
Comment[kn]=, (ಿ), ಿ
Comment[ko]= , ,
Comment[ku]=Ziman, pîvan û mîhengên demê ji bo herêma te
Comment[lt]=Kalba, skaitiniai ir laiko nustatymai Jūsų individualiam regionui
Comment[lv]=Valodas, numuru un laika iestatījumi jūsu konkrētajam reģionam
Comment[mai]=,, ि ' ि
Comment[mk]=Поставувања на јазикот, броевите и времето за вашиот регион
Comment[ml]=ി ി , , ി
Comment[mr]= ि ि , ,
Comment[nb]=Språk-, tall- og tidsinnstillinger for ditt område
Comment[nds]=Spraak, Tallen un Tietformaat för Dien Land instellen
Comment[ne]= ि ि , , ि
Comment[nl]=Taal-, numerieke, en tijdsinstelling voor uw eigen regio
Comment[nn]=Innstillingar for språk, tal og tid i regionen din
Comment[or]=, , ିି
Comment[pa]= ,
Comment[pl]=Ustawienia języka, formatu liczb i czasu dla Twojego regionu
Comment[pt]=Configuração da língua e dos parâmetros numéricos/horários para a sua região
Comment[pt_BR]=Preferências numéricas, de idioma e formatos de data e hora para a sua região
Comment[ro]=Limba, afișarea numerelor și orei în modul specific regiunii unde locuiți
Comment[ru]=Настройка языка, даты и времени для вашего региона
Comment[se]=Báikkalaš giella-,lohko- ja áigeheivehusat
Comment[si]= , .
Comment[sk]=Nastavenie jazyka, formátu čísel, a času pre váš región
Comment[sl]=Jezikovne, številske in časovne nastavitve za vaše območje
Comment[sr]=Поставке језика, бројева и времена према вашем окружењу
Comment[sr@ijekavian]=Поставке језика, бројева и времена према вашем окружењу
Comment[sr@ijekavianlatin]=Postavke jezika, brojeva i vremena prema vašem okruženju
Comment[sr@latin]=Postavke jezika, brojeva i vremena prema vašem okruženju
Comment[sv]=Ställ in språk, numeriskt format och tid för din speciella region
Comment[ta]= ிி ி ி,
Comment[te]= ిి , , ి
Comment[tg]=Танзимоти забон, рақамҳо ва вақт барои минтақаи муайяншуда
Comment[th]=,
Comment[tr]=Bölgenize özgü dil, sayı ve zaman ayarları
Comment[ug]=سىز تۇرۇشلۇق ئورۇننىڭ تىل، رەقەم ۋە ۋاقىت تەڭشىكى
Comment[uk]=Налаштування мови, показ чисел та часу для вашого регіону
Comment[uz]=Davlatingiz uchun til, son va vaqt moslamalari
Comment[uz@cyrillic]=Давлатингиз учун тил, сон ва вақт мосламалари
Comment[vi]=Ngôn ng, s và các thiết lp v thi gian cho vùng c th
Comment[wa]=Apontiaedje do lingaedje et des preferinces (prezintaedje des limeros, des dates, evnd.) po vosse payis
Comment[xh]=Ulwimi, amanani, kunye nezicwangciso zexesha zommandla wakho
Comment[x-test]=xxLanguage, numeric, and time settings for your particular regionxx
Comment[zh_CN]=
Comment[zh_TW]=
X-KDE-Keywords=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[ar]=لغة,ترجمة,هيئة الرقم,محلي,دولة,أطقم محارف,أطقم محارف,رمز عشري,آلآف,فواصل,رمز,موجب,سالب,العملة,مال,أرقام كسرية,تقويم,وقت,تأريخ,تنسيقات,أسبوع,بداية الأسبوع,أول,ورقة,حجم,رسالة,ِA4,قياس,متري,إنجليزية,إمبراطوري
X-KDE-Keywords[bg]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,език,превод,числа,формат,страна, държава,кодова таблица,кодировка,десетичен знак,разделител,валута,пари,календар,време,дата, седмица,работен ден,мерна единица,печат,размер
X-KDE-Keywords[bn]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[bs]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,jezik,prevođenje,format brojeva,lokalizacija,skup znakova,decimalni simboli,separator hiljada,predznak,valuta,razlomak,kalendat,vrijem,datum,papir.,mjere
X-KDE-Keywords[ca]=idioma,traducció,format numèric,regional,país,jocs de caràcters,joc de caràcters,símbol decimal,separador de milers,símbol,separador,signe,positiu,negatiu,moneda,diners,dígits fraccionaris,calendari,hora,data,formats,setmana,inici de setmana,primer,paper,mida,carta,A4,mesura,mètric,Anglès,Imperial
X-KDE-Keywords[ca@valencia]=idioma,traducció,format numèric,regional,país,jocs de caràcters,joc de caràcters,símbol decimal,separador de milers,símbol,separador,signe,positiu,negatiu,moneda,diners,dígits fraccionaris,calendari,hora,data,formats,setmana,inici de setmana,primer,paper,mida,carta,A4,mesura,mètric,Anglés,Imperial
X-KDE-Keywords[cs]=jazyk,překlad,formát čísel,locale,Země,znakové sady,sady znaků,Decimální symbol,Oddělovač tisíců,symbol,oddělovač,znaménko,kladné,záporné,měna,peníze,zlomky,kalendář,čas,datum,formáty,týden,začátek týdne,první,papír,velikost,dopis,A4,míry,metrické,Anglické,Imperiální
X-KDE-Keywords[da]=sprog,oversættelse,talformat,locale,lokalitet,land,tegnsæt,decimalsymbol,tusindtalsseparator,symbol,separator,positive,negative,valuta,penge,brøktal,kalender,tid,dato,formater,uge,ugestart,første,papir,størrelse,letter,A4,måleenhed,metrisk,Engelsk,Imperial
X-KDE-Keywords[de]=Sprachen,Übersetzung,Zahlenformat,Währung,Zeit,Datum,Formate,Regionales,Land,Zeichensätze,Dezimalzeichen,Tausendertrennzeichen,Symbole,Zeichen,Vorzeichen,Positiv,Negativ,Bruchzahlen,Wochenanfang,Papierformat,A4,Letter,Metrisch,Imperial,Maßeinheiten
X-KDE-Keywords[el]=γλώσσα,μετάφραση,μορφή αριθμού,εντοπιότητα,χώρα,charsets,σύνολα χαρακτήρων,δεκαδικό σύμβολο,διαχωριστικό χιλιάδων,σύμβολο,διαχωριστικό,πρόσημο,θετικό,αρνητικό,νόμισμα,χρήμα,δεκαδικά ψηφία,ημερολόγιο,ώρα,ημερομηνία,μορφές,εβδομάδα,αρχή εβδομάδας,πρώτη,χαρτί,μέγεθος,letter,A4,μέτρηση,μετρικό,Αγγλικό,Αγγλοσαξονικό
X-KDE-Keywords[en_GB]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[es]=idioma,traducción,formato de número,local,País,codificación,separador de decimales,separador de miles,símbolo,separador,signo,positivo,negativo,moneda,divisa,dígitos decimales,calendario,hora,fecha,formatos,semana,primer día de la semana,primero,papel,tamaño,carta,A4,medida,métrico,Inglés,Imperial
X-KDE-Keywords[et]=keel,tõlkimine,arvuvorming,lokaat,riik,kodeering,kooditabel,kümnendkoht,tuhandete eraldaja,sümbol,eraldaja,märk,positiivne,negatiivne,raha,valuuta,murdarvud,kalender,kellaaeg,aeg,kuupäev,vormingud,nädal,nadala algus,paber,suurus,letter,A4,mõõtühikud,meetersüsteem,inglise süsteem
X-KDE-Keywords[eu]=hizkuntza,itzulpena,zenbaki-formatua,eskualde-ezarpenak,Herrialdea,karaktere-jokoak,karaktere-jokoak,Ikur dezimala,Milakoen bereizlea,ikurra,bereizlea,zeinua,positiboa,negatiboa,moneta,dirua,zatikizko zifrak,egutegia,ordua,data,formatuak,astea,aste-hasiera,lehena,papera,tamaina,gutuna,A4,neurria,metrikoa,Ingelesa,Inperiala
X-KDE-Keywords[fa]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[fi]=kieli,käännös,kääntäminen,lukujen muotoilu,numeroiden muotoilu,locale,alue,alueasetukset,maa,merkistöt,desimaalierotin,tuhaterotin,symboli,erotin,merkki,positiivinen,negatiivinen,valuutta,raha,desimaalipaikkoja,desimaalipaikat,kalenteri,aika,kellonaika,päiväys,päivämäärä,muodot,viikko,viikon alku,viikon ensimmäinen päivä,ensimmäinen,paperi,koko,letter,A4,mittajärjestelmä,mittaaminen,metrinen,Anglosaksinen
X-KDE-Keywords[fr]=langue, traduction, format numérique, localisation, pays, ensemble de caractères,symbole décimal, séparateur des milliers, symbole, séparateur, signe, positif, négatif, monnaie, argent, chiffres après la virgule, calendrier, heure, date, formats, semaine, premier jour de la semaine, premier, papier,taille, lettre, A4, mesure, métrique, Anglais, Impérial
X-KDE-Keywords[ga]=teanga,aistriúchán,formáid uimhreacha,logchaighdeán,Tír,tacair carachtar,siombail dheachúlach,deighilteoir mílte,siombail,deighilteoir,comhartha,deimhneach,diúltach,airgeadra,airgead,digití,féilire,am,dáta,formáidí,seachtain,tús na seachtaine,tús,páipéar,méid,litir,A4,tomhas,méadrach,Béarla,Impiriúil
X-KDE-Keywords[gl]=lingua, idioma, tradución, formato numérico, local, País, caracteres, carácter, símbolo decimal, separador de milleiros, separador, signo, positivo, negativo, divisa, cartos, moeda, díxitos fraccionarios, calendario, almanaque, hora, data, formato, semana, primeiro día, papel, tamaño, A4, medida, métrico, inglés, imperial
X-KDE-Keywords[gu]=,, ,િિ,,, , િ, ,િ, ,િ,,,,, ,િ,,,,િ,િ ,,,,,A4,,િ,,િ
X-KDE-Keywords[hi]=, , , , , charsets, , , ि, , ि, , , ,, , ि , , , िि, , , ,, , , , A4, , ि, , ि
X-KDE-Keywords[hu]=nyelv,fordítás,számformátum,területi beállítás,Ország,karakterkészletek,karakterkészletek,tizedesjel,ezres elválasztó,szimbólum,elválasztó,jel,pozitív,negatív,pénznem,pénz,tört számjegyek,naptár,idő,dátum,formátumok,hét,hét kezdete,első,papír,méret,letter,A4,measure,metrikus,Angol,Birodalmi
X-KDE-Keywords[ia]=linguage,traduction,formato de numero,locale,Pais,charsets,insimul de characteres, Symbolo decimal,separator de milles,symbolo,separator,signo,positive,negative,numerario,moneta,cifras fractional,calendario,tempore,data,formatos,septimana,initio de septimana, prime,papiro,grandor,littera,A4,me
X-KDE-Keywords[id]=bahasa,terjemahan,format angka,locale,Negara,set karakter,set karakter,Simbol desimal,Pemisah ribuan,simbol,pemisah,tanda,positif,negatif,mata uang,uang,digit fraksi,kalender,waktu,tanggal,format,minggu,awal minggu,pertama,kertas,ukuran,surat,A4,satuan,metrik,Inggris,Imperial
X-KDE-Keywords[is]=tungumál,þýðing,talnasnið,staðfærsla,Land,stafasett,stafatafla,tugatákn,þúsund,tákn,aðgreinir,merki,jákvætt,neikvætt,gjaldmiðill,peningar,tugabrot,dagatal,tími,dagsetning,snið,vika,upphafsdagur,fyrst,pappír,size,bréf,A4,mál,metra,Enskt,Imperial
X-KDE-Keywords[it]=language,translation,number format,locale,nazione,codifica,insieme dei caratteri,simbolo decimale,separatore delle migliaia,simbolo,separatore,segno,positivo,negativo,moneta,cifre decimali,calendario,ora,data,formati,settimana,inizio settimana,primo,carta,dimensione,lettera,A4,misura,metrico,inglese,imperiale
X-KDE-Keywords[ja]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[kk]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[km]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[ko]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,,,,,,, ,,,,,,,,,,,,,,,,
X-KDE-Keywords[lv]=valoda,tulkojums,skaitļu formāts,lokāle,valsts,rakstzīmju kopas,decimālais simbols,tūkstošu atdalītājs,simbols,atdalītājs,zīme,pozitīvs,negatīvs,valūta, nauda,daļskaitļi,kalendārs,laiks,datums,formāti,nedēļa,nedēļas sākums, pirmais,papīrs,izmērs,vēstule,A4,mērvienības,metriskā,angļu,imperiālā
X-KDE-Keywords[mr]=, , , ि, , , ि, ि, ि, ि, ि, , , िि, , ि, , , , , , A4, , ,
X-KDE-Keywords[nb]=språk,oversettelse,tallformat,lokale,Land,tegnsett,desimalsymbol,tusenseparator,symbol,separator,fortegn,positivt,negativt,valuta.penger,brøktall, tid,dato,formater,uke,ukestart,først,papir,letter,A4,mål.metrisk,engelsk,imperial
X-KDE-Keywords[nds]=Spraak,Översetten,Tallenformaat,Spraakkoderen,Regiooninstellen,Land,Tekensett,Tekensetten,Dezimaalteken,Trennteken för Dusend,Teken,Trennteken,Trenner,Vörteken,positiv,negativ,Geldsort,Geld,Brooktallen,Nakommasteden,Kalenner,Tiet,Datum,Formaten,Week,Wekenanfang,eerst,Papeer,Papeergrött,A4,Meten,metersch,Eenheit,engelsch
X-KDE-Keywords[nl]=taal,vertaling,getalformaat,locale,land,tekensets,decimaalsymbool,duizendscheidingsteken,symbool,scheidingsteken,teken,positief,negatief,valuta,geld,decimale cijfers,agenda,tijd,datum,formaten,week,weekbegin,eerst,papier,grootte,letter,A4,afmeting,metrisch,Engels,Imperiaal
X-KDE-Keywords[nn]=språk,omsetjing,talformat,lokale,locale,land,teiknkodingar,teiknsett,desimalskiljetekn,tusenskiljeteikn,symbol,skiljeteikn,tein,positiv,negativ,valuta,pengar,siffer,kalender,tid,dato,klokkeslett,format,veke,vekestart,første,papir,storleik,letter,A4,mål,metrisk,engelsk
X-KDE-Keywords[pa]=,, , ,,,,-, ਿ,,ਿ,,,,ਿ,,,,ਿ ,,,ਿ,ਿ,,,, ,ਿ,,,,,,,A4,4,,,,
X-KDE-Keywords[pl]=język,tłumaczenie,format liczb,regionalność,kraj,zestaw znaków,symbol dziesiętny,separator tysięcy,symbol,separator,znak,dodatni,ujemny,waluta,pieniądze,ułamkowe cyfry,kalendarz,czas,data,formaty,tydzień,początek tygodnia,pierwszy,papier,rozmiar,list,A4,miara,metryczna,Angielski,Cesarskie
X-KDE-Keywords[pt]=língua,tradução,formato de números,localização,país,codificações,codificações de caracteres,símbolo decimal,separador de milhares,símbolo,separador,sinal,positivo,negativo,moeda,monetário,casas decimais,hora,data,formatos,semana,início da semana,primeiro,papel,tamanho,carta,A4,medida,medir,Inglês,Imperial
X-KDE-Keywords[pt_BR]=idioma,tradução,formato de números,localização,país,codificações,codificações de caracteres,símbolo decimal,separador de milhares,símbolo,separador,sinal,positivo,negativo,moeda,monetário,casas decimais,calendário,hora,data,formatos,semana,início da semana,primeiro,papel,tamanho,carta,A4,medida,medir,Inglês,Imperial
X-KDE-Keywords[ro]=limbă,traducere,format număr,localizare,țară,set de caractere,seturi de caractere,simbol decimal, separator de mii,simbol,separator,semn,pozitiv,negativ,monedă,bani,zecimale,calendar,timp,dată,formate, început,săptămînă,prima,hîrtie,dimensiune,A4,măsură,metric,unități,Imperial
X-KDE-Keywords[ru]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,язык,перевод,формат чисел,локаль,страна,кодировка,наборы символов,десятичный разделитель,тысячный разделитель,символ,разделитель,подпись,положительный, отрицательный,валюта, деньги, дробные цифры, календарь, время, дата,формат, неделя,начало недели,бумага,размер, буквы,измерение,система мера,метрика
X-KDE-Keywords[sk]=jazyk,preklad,number format,locale,Krajina,charsets,character sets,Decimal symbol,Thousands separator,symbol,oddeľovač,znamienko,kladný,záporný,mena,peniaze,fractional digits,kalendár,čas,dátum,formáty,týždeň,week start,prvý,papier,veľkosť,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[sl]=jezik,jeziki,prevod,prevodi,oblika števil,krajevne nastavitve,država,znaki,nabori znakov,decimalno ločilo,ločilo skupin,simbol,ločilo,ločilnik,negativno,pozitivno,oznaka,valuta,denar,decimalke,decimalna mesta,koledar,datum,oblike,teden,začetek tedna,prvi,papir,velikost,letter,a4,mere,mera,metrika,merski sistem,enote,enota
X-KDE-Keywords[sr]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,језик,превод,формат бројева,локалитет,држава,кодирање,децимални симбол,раздвајач хиљада,раздвајач,симбол,знак,позитивно,негативно,валута,новац,разломак,календар,време,датум,формати,седмица,почетак седмице,недеља,папир,величина,А4,летер,метрички,империјални
X-KDE-Keywords[sr@ijekavian]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,језик,превод,формат бројева,локалитет,држава,кодирање,децимални симбол,раздвајач хиљада,раздвајач,симбол,знак,позитивно,негативно,валута,новац,разломак,календар,време,датум,формати,седмица,почетак седмице,недеља,папир,величина,А4,летер,метрички,империјални
X-KDE-Keywords[sr@ijekavianlatin]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,jezik,prevod,format brojeva,lokalitet,država,kodiranje,decimalni simbol,razdvajač hiljada,razdvajač,simbol,znak,pozitivno,negativno,valuta,novac,razlomak,kalendar,vreme,datum,formati,sedmica,početak sedmice,nedelja,papir,veličina,A4,leter,metrički,imperijalni
X-KDE-Keywords[sr@latin]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,jezik,prevod,format brojeva,lokalitet,država,kodiranje,decimalni simbol,razdvajač hiljada,razdvajač,simbol,znak,pozitivno,negativno,valuta,novac,razlomak,kalendar,vreme,datum,formati,sedmica,početak sedmice,nedelja,papir,veličina,A4,leter,metrički,imperijalni
X-KDE-Keywords[sv]=språk,översättning,nummerformat,plats,Land,teckenuppsättningar,decimalsymbol,tusentalsavgränsare,symbol,avgränsare,tecken,positivt,negativt,valuta,pengar,bråkdelssiffror,kalender,tid,datum,format,vecka, veckostart,först,papper,storlek,letter,A4,mått,meter,engelska
X-KDE-Keywords[tg]=забон,тарҷума,формати рақамҳо,маҳаллисозӣ,Мамлакат,рамзгузорӣ,маҷмӯъи ҳарфҳо,аломати даҳӣ,Ҷудокунандаи ҳазорҳо,ишора,ҷудокунанда,аломат,мусбат,манфӣ,асъор,пул,рақамҳои касрӣ,тақвим,вақт,сана,форматҳо,ҳафта,оғози ҳафта,якум,коғаз,андоза,мактуб,A4,меъёр,метрикӣ,Тоҷикӣ,Импералӣ
X-KDE-Keywords[tr]=dil,çeviri,sayısal biçim,yerel,Ülke,karakter seti,karakter setleri,Ondalık sembolü,binler basamağı ayırıcı,sembol,ayırıcı,işaret,pozitif,negatif,para birimi,para,kesir,takvim,saat,tarih,biçimler,hafta,hafta başı,ilk,kağıt,boyut,A4,mektup,ölçü,metrik,İngiliz
X-KDE-Keywords[ug]=تىل،تەرجىمە،سانلارنىڭ يېزىلىشى،يەرلەشمە،دۆلەت،ھەرپ توپى، ھەرپ توپى،ئونلۇق بەلگىلەر،مىڭلار خانە ئايرىغۇچ، بەلگە،ئايرىغۇچ،ئالامەت،مۇسبەت،مەنپىي،پۇل،كەسىرسان،يىلنامە،ۋاقىت،چېسلا،پىچىملار،ھەپتە،ھەپتە بېشى،تۇنجى،قەغەز،چوڭلۇق،خەت،A4،ئۆلچەش،ئۇزۇنلۇق بىرلىكى،English، خانلىق
X-KDE-Keywords[uk]=language;translation;number format;locale;Country;charsets;character sets;Decimal symbol;Thousands separator;symbol;separator;sign;positive;negative;currency;money;fractional digits;calendar;time;date;formats;week;week start;first;paper;size;letter;A4;measure;metric;English;Imperial;мова;мови;переклад;переклади;числа;формат;число;локаль;країна;набір;символ;кодування;розряд;тисяч;дробовий;дробова частина;роздільник;символ;знак;додатне;додатний;додатній;відємний;відємне;валюта;гроші;грошова одиниця;календар;час;дата;формати;тиждень;робочий тиждень;початок тижня;перший;папір;аркуш;вимір;виміри;вимірювання;одиниці вимірювання;метричний;метричні;метр;англійські;імперські
X-KDE-Keywords[vi]=ngôn ng,dch,đnh dng s,tin t,thi gian,ngày,đnh dng,min đa phương,Nưc,quc gia,b ký t,bng mã,ký hiu thp phân,du cách hàng nghìn,ký hiu,du phân cách,du,dương,âm,phân s,tun,bt đu tun,language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
X-KDE-Keywords[wa]=lingaedje,ratournaedje,cogne des nombes,locåle,Payi,payis,djeus d' caracteres,djeus di caracteres,simbole des decimåles,separateu des meyes,simbole,separateu,sene,pôzitif,negatif,manoye,cwårs,çanses,liårds,liyårds,caracteres di fraccions,calindrî,eure,date,cognes,samwinne,cominçmint del samwinne,prumî djoû del samwinne,kimince del samwinne,prumî,papî,grandeu,grandeur,lete,A4,mezeure,muzeure,metrike,Inglès,Imperiå
X-KDE-Keywords[x-test]=xxlanguage,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperialxx
X-KDE-Keywords[zh_CN]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial,,,,,,,,,,,,,,,,,,,,,,,,,,,,
X-KDE-Keywords[zh_TW]=language,translation,number format,locale,Country,charsets,character sets,Decimal symbol,Thousands separator,symbol,separator,sign,positive,negative,currency,money,fractional digits,calendar,time,date,formats,week,week start,first,paper,size,letter,A4,measure,metric,English,Imperial
Categories=Qt;KDE;X-KDE-settings-accessibility;

View file

@ -0,0 +1,6 @@
########### install files ###############
install( FILES background.png DESTINATION ${DATA_INSTALL_DIR}/kcmlocale/pics )

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View file

@ -0,0 +1,11 @@
########### install files ###############
if (WIN32)
install( FILES kde-information.menu DESTINATION ${SHARE_INSTALL_DIR}/xdg/menus/)
else (WIN32)
install( FILES kde-information.menu DESTINATION ${SYSCONF_INSTALL_DIR}/xdg/menus/)
endif (WIN32)
install( FILES kde-information.directory DESTINATION ${XDG_DIRECTORY_INSTALL_DIR} )

View file

@ -0,0 +1,99 @@
[Desktop Entry]
Encoding=UTF-8
Type=Directory
Name=Information
Name[af]=Informasie
Name[ar]=معلومات
Name[as]=তথ্য
Name[ast]=Información
Name[be]=Звесткі
Name[be@latin]=Źviestki
Name[bg]=Информация
Name[bn]=তথ্য
Name[bn_IN]=তথ্য
Name[br]=Titouroù
Name[bs]=Informacije
Name[ca]=Informació
Name[ca@valencia]=Informació
Name[cs]=Informace
Name[csb]=Wëdowiédzô
Name[cy]=Gwybodaeth
Name[da]=Information
Name[de]=Information
Name[el]=Πληροφορίες
Name[en_GB]=Information
Name[eo]=Informoj
Name[es]=Información
Name[et]=Info
Name[eu]=Informazioa
Name[fa]=اطلاعات
Name[fi]=Järjestelmätiedot
Name[fr]=Informations
Name[fy]=Ynformaasje
Name[ga]=Eolas
Name[gl]=Información
Name[gu]=માહિતી
Name[he]=מידע
Name[hi]=जानकारी
Name[hne]=जानकारी
Name[hr]=Podaci
Name[hsb]=Informacija
Name[hu]=Információ
Name[ia]=Information
Name[id]=Informasi
Name[is]=Upplýsingar
Name[it]=Informazioni
Name[ja]=情報
Name[ka]=ინფორმაცია
Name[kk]=Мәлімет
Name[km]=ព័ត៌មាន
Name[kn]=ಮಾಹಿತಿ
Name[ko]=정보
Name[ku]=Agahî
Name[lt]=Informacija
Name[lv]=Informācija
Name[mai]=सूचना
Name[mk]=Информации
Name[ml]=വിവരം
Name[mr]=माहिती
Name[ms]=Maklumat
Name[nb]=Informasjon
Name[nds]=Informatschoon
Name[ne]=सूचना
Name[nl]=Informatie
Name[nn]=Informasjon
Name[oc]=Entresenhas
Name[or]=ସୂଚନା
Name[pa]=ਜਾਣਕਾਰੀ
Name[pl]=Informacje
Name[pt]=Informação
Name[pt_BR]=Informações
Name[ro]=Informații
Name[ru]=Сведения
Name[se]=Diehtu
Name[si]=තොරතුරු
Name[sk]=Informácie
Name[sl]=Podrobnosti
Name[sr]=Информације
Name[sr@ijekavian]=Информације
Name[sr@ijekavianlatin]=Informacije
Name[sr@latin]=Informacije
Name[sv]=Information
Name[ta]=தகவல்
Name[te]=సమాచారం
Name[tg]=Маълумот
Name[th]=ข้อมูลรายละเอียด
Name[tr]=Bilgi
Name[ug]=ئۇچۇر
Name[uk]=Інформація
Name[uz]=Maʼlumot
Name[uz@cyrillic]=Маълумот
Name[vi]=Thông tin
Name[wa]=Informåcions
Name[xh]=Ulwazi
Name[x-test]=xxInformationxx
Name[zh_CN]=信息
Name[zh_TW]=資訊
Icon=hwinfo
X-KDE-BaseGroup=info
NoDisplay=true

View file

@ -0,0 +1,10 @@
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Name>Information</Name>
<Directory>kde-information.directory</Directory>
<Include>
<Category>X-KDE-information</Category>
</Include>
</Menu>

View file

@ -0,0 +1,13 @@
ADD_DEFINITIONS (${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES})
SET(kcm_spellchecking_SRCS
spellchecking.cpp
)
KDE4_ADD_PLUGIN(kcmspellchecking ${kcm_spellchecking_SRCS})
TARGET_LINK_LIBRARIES(kcmspellchecking ${KDE4_KDEUI_LIBS} )
INSTALL(TARGETS kcmspellchecking DESTINATION ${PLUGIN_INSTALL_DIR} )
INSTALL( FILES spellchecking.desktop DESTINATION ${SERVICES_INSTALL_DIR} )

View file

@ -0,0 +1,59 @@
/*
Copyright 2008 Albert Astals Cid <aacid@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License or (at your option) version 3 or any later version
accepted by the membership of KDE e.V. (or its successor approved
by the membership of KDE e.V.), which shall act as a proxy
defined in Section 14 of version 3 of the license.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "spellchecking.h"
#include <kpluginfactory.h>
#include <sonnet/configwidget.h>
#include <QBoxLayout>
K_PLUGIN_FACTORY(SpellFactory, registerPlugin<SonnetSpellCheckingModule>();)
K_EXPORT_PLUGIN(SpellFactory( "kcmspellchecking" ))
SonnetSpellCheckingModule::SonnetSpellCheckingModule(QWidget* parent, const QVariantList&):
KCModule(SpellFactory::componentData(), parent)
{
QBoxLayout *layout = new QVBoxLayout( this );
layout->setMargin(0);
m_config = new KConfig("sonnetrc");
m_configWidget = new Sonnet::ConfigWidget( m_config, this );
layout->addWidget(m_configWidget);
connect(m_configWidget, SIGNAL(configChanged()), this, SLOT(changed()));
}
SonnetSpellCheckingModule::~SonnetSpellCheckingModule()
{
delete m_config;
}
void SonnetSpellCheckingModule::save()
{
m_configWidget->save();
}
void SonnetSpellCheckingModule::defaults()
{
m_configWidget->slotDefault();
}
#include "spellchecking.moc"

View file

@ -0,0 +1,253 @@
[Desktop Entry]
Exec=kcmshell4 spellchecking
Icon=tools-check-spelling
Type=Service
X-KDE-ServiceTypes=KCModule
X-DocPath=kcontrol/spellchecking/index.html
X-KDE-Library=kcmspellchecking
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=locale
X-KDE-Weight=70
Name=Spell Checker
Name[ar]=مدقق إملائي
Name[as]=
Name[ast]=Correutor ortográficu
Name[be@latin]=Spraŭdžvańnie pravapisu
Name[bg]=Проверка на правописа
Name[bn]=
Name[bn_IN]=
Name[br]=Gwirieker ar skritur
Name[bs]=Provjera pravopisa
Name[ca]=Corrector ortogràfic
Name[ca@valencia]=Corrector ortogràfic
Name[cs]=Kontrola pravopisu
Name[csb]=Sprôwdzanié pisënkù
Name[cy]=Cywirydd Sillafu
Name[da]=Stavekontrol
Name[de]=Rechtschreibprüfung
Name[el]=Έλεγχος ορθογραφίας
Name[en_GB]=Spell Checker
Name[eo]=Literumilo
Name[es]=Corrector ortográfico
Name[et]=Õigekirja kontroll
Name[eu]=Ortografia-egiaztatzailea
Name[fa]=غلطیاب
Name[fi]=Oikoluku
Name[fr]=Correcteur orthographique
Name[fy]=Staveringshifker
Name[ga]=Litreoir
Name[gl]=Corrector de ortografía
Name[gu]=
Name[he]=בודק איות
Name[hi]=
Name[hne]=ि
Name[hr]=Alat za provjeru pravopisa
Name[hsb]=Prawopisna korektura
Name[hu]=Helyesírás-ellenőrző
Name[ia]=Controlator Orthographic
Name[id]=Pemeriksa Ejaan
Name[is]=Stafsetningarskoðun
Name[it]=Correttore ortografico
Name[ja]=
Name[ka]=
Name[kk]=Емле тексергіші
Name[km]=
Name[kn]=ಿ ಿ
Name[ko]=
Name[ku]=Kontrolkera Rastnivîsê
Name[lt]=Rašybos tikrinimo įrankis
Name[lv]=Pareizrakstības pārbaudītājs
Name[mai]=
Name[mk]=Проверка на правопис
Name[ml]= ി
Name[mr]=
Name[nb]=Stavekontroll
Name[nds]=Klookschriever
Name[nl]=Spellingcontrole
Name[nn]=Stave­kontroll
Name[oc]=Verificator ortografic
Name[or]=
Name[pa]=
Name[pl]=Sprawdzanie pisowni
Name[pt]=Verificador Ortográfico
Name[pt_BR]=Verificador ortográfico
Name[ro]=Verificator ortografic
Name[ru]=Проверка орфографии
Name[si]=
Name[sk]=Kontrola pravopisu
Name[sl]=Preverjanje črkovanja
Name[sr]=Правописар
Name[sr@ijekavian]=Правописар
Name[sr@ijekavianlatin]=Pravopisar
Name[sr@latin]=Pravopisar
Name[sv]=Stavningskontroll
Name[ta]=Spell Checker
Name[te]=
Name[tg]=Тафтиши имло
Name[th]=
Name[tr]=Yazım Denetleyici
Name[ug]=ئىملا تەكشۈرگۈچ
Name[uk]=Перевірка правопису
Name[uz]=Imloni tekshiruvchi
Name[uz@cyrillic]=Имлони текширувчи
Name[vi]=Trình kim tra chính t
Name[wa]=Coridjrece ortografike
Name[xh]=Umkhangeki Wopelo
Name[x-test]=xxSpell Checkerxx
Name[zh_CN]=
Name[zh_TW]=
Comment=Configure the spell checker
Comment[ar]=إضبط المدقق الإملائي
Comment[ast]=Configuración del correutor ortográficu
Comment[be@latin]=Naładź spraŭdžvańnie pravapisu
Comment[bg]=Настройване проверката на правописа
Comment[bn]= ি
Comment[bn_IN]= ি
Comment[br]=Kefluniañ an ostilh gwiriekaat
Comment[bs]=Podešavanje provjere pravopisa
Comment[ca]=Configura el corrector ortogràfic
Comment[ca@valencia]=Configura el corrector ortogràfic
Comment[cs]=Nastavení kontroly pravopisu
Comment[csb]=Kònfigùracëjô programë sprôwdzaniô pisënkù
Comment[cy]=Ffurfweddu'r cywirydd sillafu
Comment[da]=Indstil stavekontrollen
Comment[de]=Rechtschreibprüfung einrichten
Comment[el]=Διαμόρφωση του ορθογραφικού ελέγχου
Comment[en_GB]=Configure the spell checker
Comment[eo]=Agordoj de la literumilo
Comment[es]=Configuración del corrector ortográfico
Comment[et]=Õigekirja kontrolli seadistamine
Comment[eu]=Ortografia-egiaztatzailea konfiguratzea
Comment[fa]=پیکربندی غلطیاب
Comment[fi]=Oikoluvun asetukset
Comment[fr]=Configuration du correcteur orthographique
Comment[fy]=De staveringshifker ynstelle
Comment[ga]=Cumraigh an litreoir
Comment[gl]=Configura o corrector da ortografía
Comment[gu]= િ
Comment[he]=שינוי הגדרות בודק האיות
Comment[hi]= ि
Comment[hne]=ि ि
Comment[hr]=Konfiguriranje provjere pravopisa
Comment[hsb]=Prawopisnu korekturu připrawić
Comment[hu]=A helyesírás-ellenőrző beállításai
Comment[ia]=Configura le controlator orthographic
Comment[id]=Atur pemeriksa ejaan
Comment[is]=Hér getur þú stillt stafsetningaryfirferð
Comment[it]=Configura il correttore ortografico
Comment[ja]=
Comment[ka]=
Comment[kk]=Емле тексергішін баптау
Comment[km]=
Comment[kn]=ಿ ಿ ಿ
Comment[ko]=
Comment[ku]=Kontrola rastnivîsê veava bike
Comment[lt]=Konfigūruoti rašybos tikrinimą
Comment[lv]=Šeit jūs varat konfigurēt pareizrakstības pārbaudītāju
Comment[mai]= ि
Comment[mk]=Конфигурирајте ја проверката на правопис
Comment[ml]= ി ിി
Comment[mr]=
Comment[nb]=Tilpass stavekontrollen
Comment[nds]=Den Klookschriever instellen
Comment[nl]=Spellingcontrole instellen
Comment[nn]=Set opp stavekontrollen
Comment[or]=
Comment[pa]=
Comment[pl]=Ustawienia programu do sprawdzania pisowni
Comment[pt]=Configuração do verificador ortográfico
Comment[pt_BR]=Configura o verificador ortográfico
Comment[ro]=Configurează verificatorul ortografic
Comment[ru]=Настройка проверки орфографии
Comment[se]=Heivet čállindárkkisteami
Comment[si]=
Comment[sk]=Nastavenie kontroly pravopisu
Comment[sl]=Nastavi preverjanje črkovanja
Comment[sr]=Подешавање правописара
Comment[sr@ijekavian]=Подешавање правописара
Comment[sr@ijekavianlatin]=Podešavanje pravopisara
Comment[sr@latin]=Podešavanje pravopisara
Comment[sv]=Anpassa stavningskontroll
Comment[ta]= ிி ி
Comment[te]= ి
Comment[tg]=Танзимоти тафтиши имло
Comment[th]=
Comment[tr]=Yazım denetleyiciyi yapılandır
Comment[ug]=ئىملا تەكشۈرگۈچ سەپلىمە
Comment[uk]=Налаштування перевірки правопису
Comment[uz]=Imlo tekshiruvchini moslash
Comment[uz@cyrillic]=Имло текширувчини мослаш
Comment[vi]=Cu hình trình kim tra chính t
Comment[wa]=Apontyî l' coridjrece ortografike
Comment[xh]=Qwalasela umkhangelo wopelo
Comment[x-test]=xxConfigure the spell checkerxx
Comment[zh_CN]=
Comment[zh_TW]=
X-KDE-Keywords=Spell
X-KDE-Keywords[ar]=تهجئة
X-KDE-Keywords[bg]=Spell,Правопис
X-KDE-Keywords[bn]=Spell
X-KDE-Keywords[bs]=Spelovanje
X-KDE-Keywords[ca]=Corrector
X-KDE-Keywords[ca@valencia]=Corrector
X-KDE-Keywords[cs]=Kontrola pravopisu
X-KDE-Keywords[da]=Stavekontrol
X-KDE-Keywords[de]=rechtschreibung
X-KDE-Keywords[el]=Συλλαβισμός
X-KDE-Keywords[en_GB]=Spell
X-KDE-Keywords[eo]=Literumi
X-KDE-Keywords[es]=Ortografía
X-KDE-Keywords[et]=õigekiri
X-KDE-Keywords[eu]=Ortografia
X-KDE-Keywords[fa]=املا
X-KDE-Keywords[fi]=Oikoluku
X-KDE-Keywords[fr]=Orthographe
X-KDE-Keywords[ga]=Litriú
X-KDE-Keywords[gl]=Ortografía
X-KDE-Keywords[gu]=
X-KDE-Keywords[he]=איות
X-KDE-Keywords[hi]=
X-KDE-Keywords[hu]=Helyesírás
X-KDE-Keywords[ia]=Controlator orthographic
X-KDE-Keywords[id]=Ejaan
X-KDE-Keywords[is]=Stafsetning
X-KDE-Keywords[it]=Ortografia
X-KDE-Keywords[kk]=Spell
X-KDE-Keywords[km]=
X-KDE-Keywords[ko]=
X-KDE-Keywords[lt]=Rašybos tikrinimas
X-KDE-Keywords[lv]=Pareizrakstība
X-KDE-Keywords[mr]=
X-KDE-Keywords[nb]=Stavekontroll
X-KDE-Keywords[nds]=Schrievwies
X-KDE-Keywords[nl]=Spelling
X-KDE-Keywords[nn]=Stavekontroll
X-KDE-Keywords[pa]=
X-KDE-Keywords[pl]=Pisownia
X-KDE-Keywords[pt]=Ortografia
X-KDE-Keywords[pt_BR]=verificação ortográfica
X-KDE-Keywords[ro]=Ortografie
X-KDE-Keywords[ru]=Spell,правописание
X-KDE-Keywords[sk]=Pravopis
X-KDE-Keywords[sl]=Črkuj
X-KDE-Keywords[sr]=spell,правопис,писање
X-KDE-Keywords[sr@ijekavian]=spell,правопис,писање
X-KDE-Keywords[sr@ijekavianlatin]=spell,pravopis,pisanje
X-KDE-Keywords[sr@latin]=spell,pravopis,pisanje
X-KDE-Keywords[sv]=Stavningskontroll
X-KDE-Keywords[tg]=Санҷиши имло
X-KDE-Keywords[tr]=Denetle
X-KDE-Keywords[ug]=ئىملا
X-KDE-Keywords[uk]=Spell,правопис,перевірка,правопису
X-KDE-Keywords[vi]=Chính t
X-KDE-Keywords[wa]=Coridjrece,speli,sipeli,coridjî,ortografike,ortografeye,ortografe
X-KDE-Keywords[x-test]=xxSpellxx
X-KDE-Keywords[zh_CN]=Spell,
X-KDE-Keywords[zh_TW]=Spell
Categories=Qt;KDE;X-KDE-settings-components;

View file

@ -0,0 +1,51 @@
/*
Copyright 2008 Albert Astals Cid <aacid@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License or (at your option) version 3 or any later version
accepted by the membership of KDE e.V. (or its successor approved
by the membership of KDE e.V.), which shall act as a proxy
defined in Section 14 of version 3 of the license.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SONNETSPELLCHECKINGMODULE_H
#define SONNETSPELLCHECKINGMODULE_H
#include "kcmodule.h"
class KConfig;
namespace Sonnet
{
class ConfigWidget;
}
class SonnetSpellCheckingModule : public KCModule
{
Q_OBJECT
public:
SonnetSpellCheckingModule(QWidget* parent, const QVariantList&);
~SonnetSpellCheckingModule();
void save();
void defaults();
private:
Sonnet::ConfigWidget *m_configWidget;
KConfig *m_config;
};
#endif