imported everything from kde-runtime

This commit is contained in:
Ivailo Monev 2014-11-15 04:16:00 +02:00
parent 976a43d10f
commit fdeee7c849
2293 changed files with 227597 additions and 5 deletions

View file

@ -3,6 +3,11 @@ project(KDEBASE_WORKSPACE)
# TODO: Remove when kdelibs >= 4.10 will be required
cmake_minimum_required(VERSION 2.8.6 FATAL_ERROR)
include(CTest)
include(CTestConfig.cmake)
include(CheckIncludeFiles)
include(CheckFunctionExists)
# Used e.g. in KDE4WorkspaceConfig.cmake, Alex
set(KDE4WORKSPACE_VERSION_MAJOR 4)
set(KDE4WORKSPACE_VERSION_MINOR 11)
@ -15,7 +20,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_P
#search packages used by KDE
set(QT_MIN_VERSION "4.8.0")
find_package(KDE4 4.9.4 REQUIRED)
find_package(KDE4 4.9.95 REQUIRED)
include(KDE4Defaults)
option(WITH_XINERAMA "Xinerama support for multi-headed X displays" ON)
@ -55,7 +60,7 @@ find_package(KDeclarative QUIET CONFIG)
set_package_properties(KDeclarative PROPERTIES DESCRIPTION "KDE Declarative (QML) support from kdelibs"
URL "http://www.kde.org"
TYPE REQUIRED
PURPOSE "Required for building ksmserver"
PURPOSE "Required for building ksmserver and corebindingsplugin (org.kde.plasma.core)"
)
macro_optional_find_package(OpenGL)
@ -157,8 +162,38 @@ set_package_properties(QJSON PROPERTIES DESCRIPTION "Library to manage JSON obje
PURPOSE "Required to build Chrome/Chromium support for Plasma Bookmarks Runners"
)
find_package(LibGcrypt 1.5.0 REQUIRED QUIET)
set_package_properties(LibGcrypt PROPERTIES DESCRIPTION "Libgcrypt is a general purpose cryptographic library based on the code from GnuPG."
URL "http://www.gnu.org/software/libgcrypt/"
TYPE REQUIRED
PURPOSE "kwalletd needs libgcrypt to perform PBKDF2-SHA512 hashing"
)
macro_optional_find_package(SLP)
set_package_properties(SLP PROPERTIES DESCRIPTION "SLP (Service Location Protocol) implementation"
URL "http://www.openslp.org/"
TYPE OPTIONAL
PURPOSE "Provides SLP support in the network:/ kioslave."
)
find_package(LibAttica 0.1.4)
set_package_properties(LibAttica PROPERTIES DESCRIPTION "A library to access Open Collaboration Service providers"
URL "https://projects.kde.org/attica"
TYPE REQUIRED
PURPOSE "Attica is needed for the Get Hot New Stuff support"
)
macro_optional_find_package(QCA2 2.0.0)
set_package_properties(QCA2 PROPERTIES DESCRIPTION "Support for remote plasma widgets"
URL "http://delta.affinix.com/qca"
TYPE OPTIONAL
)
check_include_files(sys/wait.h HAVE_SYS_WAIT_H)
check_include_files(sys/time.h HAVE_SYS_TIME_H)
include(ConfigureChecks.cmake)
configure_file (config-runtime.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-runtime.h )
if(NOT WIN32)
configure_file(config-unix.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-unix.h )
configure_file(config-X11.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-X11.h )
@ -171,7 +206,7 @@ configure_file(config-workspace.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-works
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} -DHAVE_CONFIG_H=1)
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${KACTIVITIES_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/libs)
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ${KACTIVITIES_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/libs)
# libs
add_subdirectory(cmake)
@ -187,7 +222,6 @@ if(NOT WIN32)
macro_optional_add_subdirectory( kcheckpass )
macro_optional_add_subdirectory( kwin )
macro_optional_add_subdirectory( ksmserver )
macro_optional_add_subdirectory( kdesu )
find_package(JPEG REQUIRED)
find_package(PNG REQUIRED)
@ -242,7 +276,61 @@ macro_optional_add_subdirectory(plasma)
macro_optional_add_subdirectory(statusnotifierwatcher)
macro_optional_add_subdirectory(kstyles)
# imported from kde-runtime
macro_optional_add_subdirectory(kdesu)
macro_optional_add_subdirectory(phonon)
macro_optional_add_subdirectory(menu)
macro_optional_add_subdirectory(khelpcenter)
macro_optional_add_subdirectory(kwalletd)
macro_optional_add_subdirectory(knotify)
macro_optional_add_subdirectory(kuiserver)
macro_optional_add_subdirectory(soliduiserver)
macro_optional_add_subdirectory(solidautoeject)
macro_optional_add_subdirectory(solid-device-automounter)
macro_optional_add_subdirectory(solid-networkstatus)
macro_optional_add_subdirectory(kdebugdialog)
macro_optional_add_subdirectory(kcmshell)
macro_optional_add_subdirectory(kioslave)
macro_optional_add_subdirectory(kurifilter-plugins)
macro_optional_add_subdirectory(kimgio)
macro_optional_add_subdirectory(renamedlgplugins)
if (Q_WS_X11)
macro_optional_add_subdirectory(kstart)
endif (Q_WS_X11)
macro_optional_add_subdirectory(kquitapp)
# Background processes
macro_optional_add_subdirectory(kpasswdserver)
macro_optional_add_subdirectory(kdontchangethehostname)
macro_optional_add_subdirectory(kglobalaccel)
macro_optional_add_subdirectory(ktimezoned)
# Command-line tools (e.g. for shell scripts)
if ( UNIX )
macro_optional_add_subdirectory(kdeeject)
endif ( UNIX )
macro_optional_add_subdirectory(kfile)
macro_optional_add_subdirectory(kiconfinder)
macro_optional_add_subdirectory(kioclient)
macro_optional_add_subdirectory(kioexec)
macro_optional_add_subdirectory(ktraderclient)
macro_optional_add_subdirectory(kreadconfig)
macro_optional_add_subdirectory(kmimetypefinder)
# UI Helper applications
macro_optional_add_subdirectory(drkonqi)
macro_optional_add_subdirectory(khelpcenter)
macro_optional_add_subdirectory(knetattach)
macro_optional_add_subdirectory(knewstuff)
macro_optional_add_subdirectory(keditfiletype)
# Default settings, content and config
macro_optional_add_subdirectory(l10n)
macro_optional_add_subdirectory(localization)
macro_optional_add_subdirectory(kde-menu)
# KDE integration for attica
if(LIBATTICA_FOUND)
macro_optional_add_subdirectory(attica)
endif(LIBATTICA_FOUND)
########### install files ###############
install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kde4 DESTINATION ${BIN_INSTALL_DIR})
if(NOT WIN32)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/startkde DESTINATION ${BIN_INSTALL_DIR})
endif(NOT WIN32)

5
attica/CMakeLists.txt Normal file
View file

@ -0,0 +1,5 @@
include_directories(${LIBATTICA_INCLUDE_DIR})
add_subdirectory(kdeplugin)
add_subdirectory(kcm)

14
attica/kcm/CMakeLists.txt Normal file
View file

@ -0,0 +1,14 @@
set(kcm_attica_PART_SRCS
providerconfigwidget.cpp
atticamodule.cpp
)
kde4_add_ui_files(kcm_attica_PART_SRCS providermanagement.ui providerconfigwidget.ui)
kde4_add_plugin(kcm_attica ${kcm_attica_PART_SRCS})
target_link_libraries(kcm_attica ${LIBATTICA_LIBRARIES} ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS})
install(TARGETS kcm_attica DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES kcm_attica.desktop DESTINATION ${SERVICES_INSTALL_DIR})

3
attica/kcm/Messages.sh Normal file
View file

@ -0,0 +1,3 @@
#! /bin/sh
$EXTRACTRC `find . -name \*.rc -o -name \*.ui -o -name \*.kcfg` >> rc.cpp
$XGETTEXT *.cpp -o $podir/kcm_attica.pot

3
attica/kcm/TODO Normal file
View file

@ -0,0 +1,3 @@
KDE4.5:
- Check that password is more than 8 chars in length (something server should do)
- Rename "Login" tab to "Login Settings" to not confuse user

158
attica/kcm/atticamodule.cpp Normal file
View file

@ -0,0 +1,158 @@
/*
This file is part of KDE.
Copyright (c) 2009 Eckhart Wörner <ewoerner@kde.org>
Copyright (c) 2010 Frederik Gladhorn <gladhorn@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 "atticamodule.h"
#include <KPluginFactory>
#include <KAboutData>
#include <KDebug>
#include <kicon.h>
#include <kurlrequesterdialog.h>
#include <attica/providermanager.h>
#include "providerconfigwidget.h"
K_PLUGIN_FACTORY(AtticaModuleFactory, registerPlugin<AtticaModule>();)
K_EXPORT_PLUGIN(AtticaModuleFactory("kcm_attica"))
AtticaModule::AtticaModule(QWidget* parent, const QVariantList&)
: KCModule(AtticaModuleFactory::componentData(), parent)
{
KAboutData *about = new KAboutData(
"kcm_attica", 0, ki18n("Social Desktop"),
KDE_VERSION_STRING, KLocalizedString(), KAboutData::License_GPL,
ki18n("Copyright 2009 Eckhart Wörner"));
about->addAuthor(ki18n("Eckhart Wörner"), KLocalizedString(), "ewoerner@kde.org");
about->addAuthor(ki18n("Dmitry Suzdalev"), KLocalizedString(), "dimsuz@gmail.com");
about->addAuthor(ki18n("Frederik Gladhorn"), KLocalizedString(), "gladhorn@kde.org");
setAboutData(about);
m_ui.setupUi(this);
m_ui.addProviderButton->setIcon(KIcon("list-add"));
m_ui.removeProviderButton->setIcon(KIcon("list-remove"));
// FIXME
m_ui.removeProviderButton->setEnabled(false);
connect(m_ui.addProviderButton, SIGNAL(clicked()), this, SLOT(addProvider()));
connect(m_ui.removeProviderButton, SIGNAL(clicked()), this, SLOT(removeProvider()));
connect(m_ui.providerComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(providerSelected(int)));
connect(m_ui.providerConfigWidget, SIGNAL(changed(bool)),
this, SIGNAL(changed(bool)));
m_manager.setAuthenticationSuppressed(true);
connect(&m_manager, SIGNAL(providerAdded(const Attica::Provider&)), SLOT(providerAdded(const Attica::Provider&)));
connect(&m_manager, SIGNAL(defaultProvidersLoaded()), SLOT(onDefaultProvidersLoaded()));
startLoadingDefaultProviders();
}
AtticaModule::~AtticaModule()
{
}
void AtticaModule::defaults()
{
}
void AtticaModule::load()
{
startLoadingDefaultProviders();
}
void AtticaModule::save()
{
m_ui.providerConfigWidget->saveData();
}
void AtticaModule::startLoadingDefaultProviders()
{
emit changed(true);
m_manager.clear();
m_manager.loadDefaultProviders();
m_ui.lblProviderList->setText(i18n("Loading provider list..."));
m_ui.providerComboBox->hide();
m_ui.providerConfigWidget->setEnabled(false);
}
void AtticaModule::providerAdded(const Attica::Provider& provider)
{
// Add new provider
QString baseUrl = provider.baseUrl().toString();
int idx = m_ui.providerComboBox->findData(baseUrl);
if ( idx == -1)
{
kDebug() << "Adding provider" << baseUrl;
QString name = provider.name();
if (name.isEmpty())
name = baseUrl;
m_ui.providerComboBox->addItem(KIcon("system-users"), name, provider.baseUrl());
}
// set only if this is a first provider, otherwise it will be
// set on explicit selection
if (m_ui.providerComboBox->count() == 1) {
m_ui.providerConfigWidget->setProvider(provider);
}
}
void AtticaModule::providerSelected(int providerNumber)
{
QUrl providerUrl = m_ui.providerComboBox->itemData(providerNumber).toUrl();
m_ui.providerConfigWidget->setProvider(m_manager.providerByUrl(providerUrl));
}
void AtticaModule::onDefaultProvidersLoaded()
{
m_ui.lblProviderList->setText(i18n("Choose a provider to manage:"));
m_ui.providerComboBox->show();
m_ui.providerConfigWidget->setEnabled(true);
// at least now set it to not changed
emit changed(false);
}
void AtticaModule::addProvider()
{
KUrlRequesterDialog dialog("http://", i18nc("addition of an attica/knewstuff provider by entering its url", "URL of the provider file (provider.xml)"), this);
if (dialog.exec() == KDialog::Accepted) {
kDebug() << "Add provider: " << dialog.selectedUrl();
m_manager.addProviderFileToDefaultProviders(dialog.selectedUrl());
}
}
void AtticaModule::removeProvider()
{
//m_manager.removeProviderFileToDefaultProviders(url);
}
#include "atticamodule.moc"

64
attica/kcm/atticamodule.h Normal file
View file

@ -0,0 +1,64 @@
/*
This file is part of KDE.
Copyright (c) 2009 Eckhart Wörner <ewoerner@kde.org>
Copyright (c) 2010 Frederik Gladhorn <gladhorn@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 ATTICAMODULE_H
#define ATTICAMODULE_H
#include <KDE/KCModule>
#include <attica/providermanager.h>
#include "ui_providermanagement.h"
namespace KWallet {
class Wallet;
}
class AtticaModule : public KCModule
{
Q_OBJECT
public:
AtticaModule(QWidget* parent, const QVariantList&);
~AtticaModule();
void save();
void load();
void defaults();
private Q_SLOTS:
void providerAdded(const Attica::Provider&);
void onDefaultProvidersLoaded();
void addProvider();
void removeProvider();
void providerSelected(int);
private:
void startLoadingDefaultProviders();
private:
Ui::ProviderManagement m_ui;
Attica::ProviderManager m_manager;
};
#endif

View file

@ -0,0 +1,148 @@
[Desktop Entry]
Exec=kcmshell4 kcm_attica
Type=Service
Icon=get-hot-new-stuff
X-KDE-ServiceTypes=KCModule
X-KDE-Library=kcm_attica
X-KDE-ParentApp=kcontrol
X-KDE-System-Settings-Parent-Category=account-details
X-DocPath=kcontrol/attica/index.html
Name=Social Desktop
Name[ar]=سطح المكتب اجتماعي
Name[ast]=Escritoriu social
Name[bg]=Социален работен плот
Name[bn]=ি
Name[bs]=Društvena površ
Name[ca]=Escriptori social
Name[ca@valencia]=Escriptori social
Name[cs]=Sociální pracovní prostředí
Name[da]=Social desktop
Name[de]=Social-Desktop
Name[el]=Κοινωνική επιφάνεια εργασίας
Name[en_GB]=Social Desktop
Name[eo]=Socia labortablo
Name[es]=Escritorio social
Name[et]=Sotsiaalne töölaud
Name[eu]=Mahaigain soziala
Name[fa]=رومیزی اجتماعی
Name[fi]=Sosiaalinen työpöytä
Name[fr]=Bureau social
Name[ga]=Deasc Shóisialta
Name[gl]=Escritorio social
Name[gu]=િ
Name[he]=שולחן עבודה חברתי
Name[hi]=ि
Name[hr]=Društvena radna površina
Name[hu]=Közösségi asztal
Name[ia]=Scriptorio social
Name[id]=Desktop Sosial
Name[is]=Samskiptaskjáborð
Name[it]=Desktop sociale
Name[ja]=
Name[kk]=Қоғамдық үстел
Name[km]=
Name[kn]=ಿ
Name[ko]=
Name[lt]=Socialinis darbastalis
Name[lv]=Sociālā darbvirsma
Name[mai]=
Name[ml]=ി ിി
Name[mr]=ि
Name[nb]=Sosialt skrivebord
Name[nds]=Meenschap-Schriefdisch
Name[nl]=Sociale bureaublad
Name[nn]=Sosialt skrivebord
Name[pa]=
Name[pl]=Pulpit społecznościowy
Name[pt]=Ambiente de Trabalho Social
Name[pt_BR]=Área de Trabalho Social
Name[ro]=Birou social
Name[ru]=Social Desktop
Name[si]=
Name[sk]=Sociálne pracovné prostredie
Name[sl]=Družabno namizje
Name[sr]=Друштвена површ
Name[sr@ijekavian]=Друштвена површ
Name[sr@ijekavianlatin]=Društvena površ
Name[sr@latin]=Društvena površ
Name[sv]=Socialt skrivbord
Name[tg]=Мизи кории ҷамъиятӣ
Name[th]=
Name[tr]=Sosyal Masaüstü
Name[ug]=ئىجتىمائىي ئۈستەلئۈستى
Name[uk]=Соціальна стільниця
Name[vi]=Máy làm vic xã hi
Name[wa]=Sicribanne sociå
Name[x-test]=xxSocial Desktopxx
Name[zh_CN]=
Name[zh_TW]=Social
Comment=Manage Social Desktop Providers
Comment[ar]=أدر مزودي سطح المكتب الاجتماعي
Comment[ast]=Xestionar fornidores del escritoriu social
Comment[bg]=Управление на доставчици на социален работен плот
Comment[bn]=ি
Comment[bs]=Upravljanje dobavljačima društvene površi
Comment[ca]=Gestiona els proveïdors de l'escriptori social
Comment[ca@valencia]=Gestiona els proveïdors de l'escriptori social
Comment[cs]=Spravovat poskytovatele sociálního pracovního prostředí
Comment[da]=Håndtér udbydere af social desktop
Comment[de]=Social-Desktop-Anbieter verwalten
Comment[el]=Διαχείριση παρόχων κοινωνικής επιφάνειας εργασίας
Comment[en_GB]=Manage Social Desktop Providers
Comment[eo]=Mastrumi provizantojn de socia labortablo
Comment[es]=Gestionar proveedores del escritorio social
Comment[et]=Sotsiaalse töölaua pakkujate haldamine
Comment[eu]=Mahaigain sozialen hornitzaileak kudeatzea
Comment[fa]=مدیریت ارائه دهندگان میزکارهای اجتماعی
Comment[fi]=Sosiaalisen työpöydän tarjoajien asetukset
Comment[fr]=Gérer les fournisseurs de bureaux sociaux
Comment[ga]=Bainistigh Soláthraithe na Deisce Shóisialta
Comment[gl]=Xestión dos provedores de escritorio social
Comment[gu]=િ
Comment[he]=משמש לניהול ספקי שולחן עבודה חברתי
Comment[hi]=ि ि
Comment[hr]=Upravljanje pružateljima društvene radne površine
Comment[hu]=Közösségiasztal-szolgáltatók kezelése
Comment[ia]=Gere fornitores de Scriptorio Social
Comment[id]=Atur Penyedia Desktop Sosial
Comment[is]=Sýsla með efnisveitur fyrir samskiptaveftengt efni fyrir skjáborð
Comment[it]=Gestisci i fornitori del desktop sociale
Comment[ja]=
Comment[kk]=Әлеуметтік үстел провайдерлерін басқару
Comment[km]=
Comment[kn]=ಿ ಿಿ
Comment[ko]=
Comment[lt]=Tvarkyti socialinio darbastalio tiekėjus
Comment[lv]=Pārvaldīt sociālās darbvirsmas sniedzējus
Comment[ml]=ി ിി
Comment[mr]=ि ि
Comment[nb]=Håndter sosialt skrivebord-leverandører
Comment[nds]=Anbeders vun Meenschap-Schriefdischen plegen
Comment[nl]=Leveranciers van sociale bureaubladen beheren
Comment[nn]=Handsam sosialt skrivebord-leverandørar
Comment[pa]=ਿ
Comment[pl]=Zarządzanie dostawcami dla pulpitu społecznościowego
Comment[pt]=Gerir os Fornecedores do Ambiente de Trabalho Social
Comment[pt_BR]=Gerencia os fornecedores da Área de Trabalho Social
Comment[ro]=Gestionează furnizorii de birou social
Comment[ru]=Настройка Social Desktop
Comment[si]=
Comment[sk]=Správa poskytovateľov sociálneho pracovného prostredia
Comment[sl]=Upravljanje s ponudniki družabnega namizja
Comment[sr]=Управљање добављачима друштвене површи
Comment[sr@ijekavian]=Управљање добављачима друштвене површи
Comment[sr@ijekavianlatin]=Upravljanje dobavljačima društvene površi
Comment[sr@latin]=Upravljanje dobavljačima društvene površi
Comment[sv]=Hantera leverantörer av socialt skrivbord
Comment[tg]=Идоракунии провайдерҳои мизи кории ҷамъиятӣ
Comment[th]=
Comment[tr]=Sosyal Masaüstü Hizmetlerini Yönet
Comment[ug]=ئىجتىمائىي ئۈستەلئۈستى تەمىنلىگۈچىنى باشقۇرىدۇ
Comment[uk]=Керування постачальниками даних соціальної стільниці
Comment[vi]=Qun lý các nhà cung cp máy làm vic xã hi
Comment[wa]=Manaedjî des ahesseus d' sicribanne sociå
Comment[x-test]=xxManage Social Desktop Providersxx
Comment[zh_CN]=
Comment[zh_TW]= Social

View file

@ -0,0 +1,320 @@
/*
This file is part of KDE.
Copyright (c) 2009 Eckhart Wörner <ewoerner@kde.org>
Copyright (c) 2009 Dmitry Suzdalev <dimsuz@gmail.com>
Copyright (c) 2010 Frederik Gladhorn <gladhorn@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 "providerconfigwidget.h"
#include <KDebug>
#include <KMessageBox>
#include <KColorScheme>
#include <kicon.h>
#include <attica/person.h>
static const int loginTabIdx = 0;
static const int registerTabIdx = 1;
ProviderConfigWidget::ProviderConfigWidget(QWidget* parent)
: QWidget(parent)
{
m_ui.setupUi(this);
}
void ProviderConfigWidget::setProvider(const Attica::Provider& provider)
{
m_provider = provider;
// TODO ensure that it reinits all fields nicely for new provider!
initLoginPage();
initRegisterPage();
m_ui.userEditLP->setFocus();
}
void ProviderConfigWidget::initLoginPage()
{
QString header;
if (m_provider.name().isEmpty()) {
header = i18n("Account details");
} else {
header = i18n("Account details for %1", m_provider.name());
}
m_ui.titleWidgetLogin->setText(header);
m_ui.tabWidget->setTabIcon(loginTabIdx, KIcon("applications-internet"));
if (m_provider.hasCredentials()) {
QString user;
QString password;
m_provider.loadCredentials(user, password);
kDebug() << "cred for: " << user;
m_ui.userEditLP->setText(user);
m_ui.passwordEditLP->setText(password);
} else {
m_ui.userEditLP->clear();
m_ui.passwordEditLP->clear();
}
m_ui.enableProviderCheckBox->setChecked(m_provider.isEnabled());
m_ui.testLoginButton->setIcon(KIcon("network-connect"));
m_ui.iconLabelLP->setPixmap(KIcon("help-about").pixmap(24,24));
connect(m_ui.userEditLP, SIGNAL(textChanged(const QString&)), this, SLOT(onLoginChanged()));
connect(m_ui.passwordEditLP, SIGNAL(textChanged(const QString&)), this, SLOT(onLoginChanged()));
connect(m_ui.testLoginButton, SIGNAL(clicked()), this, SLOT(onTestLogin()));
connect(m_ui.infoLabelLP, SIGNAL(linkActivated(const QString&)), this, SLOT(onInfoLinkActivated()));
connect(m_ui.enableProviderCheckBox, SIGNAL(clicked(bool)), this, SLOT(enableToggled(bool)));
}
void ProviderConfigWidget::initRegisterPage()
{
QString header;
if (m_provider.name().isEmpty()) {
header = i18n("Register new account");
} else {
header = i18n("Register new account at %1", m_provider.name());
}
m_ui.titleWidgetRegister->setText(header);
m_ui.tabWidget->setTabIcon(registerTabIdx, KIcon("list-add-user"));
m_ui.infoLabelRP->setFont(KGlobalSettings::smallestReadableFont());
connect(m_ui.userEditRP, SIGNAL(textChanged(QString)), SLOT(onRegisterDataChanged()));
connect(m_ui.mailEdit, SIGNAL(textChanged(QString)), SLOT(onRegisterDataChanged()));
connect(m_ui.firstNameEdit, SIGNAL(textChanged(QString)), SLOT(onRegisterDataChanged()));
connect(m_ui.lastNameEdit, SIGNAL(textChanged(QString)), SLOT(onRegisterDataChanged()));
connect(m_ui.passwordEditRP, SIGNAL(textChanged(QString)), SLOT(onRegisterDataChanged()));
connect(m_ui.passwordRepeatEdit, SIGNAL(textChanged(QString)), SLOT(onRegisterDataChanged()));
connect(m_ui.registerButton, SIGNAL(clicked()), SLOT(onRegisterClicked()));
onRegisterDataChanged();
}
void ProviderConfigWidget::onLoginChanged()
{
m_ui.testLoginButton->setText(i18n("Test login"));
m_ui.testLoginButton->setEnabled(true);
emit changed(true);
}
void ProviderConfigWidget::onTestLogin()
{
m_ui.testLoginButton->setEnabled(false);
m_ui.testLoginButton->setText(i18n("Testing login..."));
Attica::PostJob* postJob = m_provider.checkLogin(m_ui.userEditLP->text(), m_ui.passwordEditLP->text());
connect(postJob, SIGNAL(finished(Attica::BaseJob*)), SLOT(onTestLoginFinished(Attica::BaseJob*)));
postJob->start();
}
void ProviderConfigWidget::onTestLoginFinished(Attica::BaseJob* job)
{
Attica::PostJob* postJob = static_cast<Attica::PostJob*>(job);
if (postJob->metadata().error() == Attica::Metadata::NoError) {
m_ui.testLoginButton->setText(i18n("Success"));
}
if (postJob->metadata().error() == Attica::Metadata::OcsError) {
m_ui.testLoginButton->setText(i18n("Login failed"));
}
}
void ProviderConfigWidget::enableToggled(bool enabled)
{
m_provider.setEnabled(enabled);
}
void ProviderConfigWidget::onInfoLinkActivated()
{
m_ui.tabWidget->setCurrentIndex(registerTabIdx);
m_ui.userEditRP->setFocus();
}
void ProviderConfigWidget::onRegisterDataChanged()
{
QString login = m_ui.userEditRP->text();
QString mail = m_ui.mailEdit->text();
QString firstName = m_ui.firstNameEdit->text();
QString lastName = m_ui.lastNameEdit->text();
QString password = m_ui.passwordEditRP->text();
QString passwordRepeat = m_ui.passwordRepeatEdit->text();
bool isDataValid = (!login.isEmpty() && !mail.isEmpty() && !firstName.isEmpty() &&
!lastName.isEmpty() && !password.isEmpty());
bool isPasswordLengthValid = password.size() > 7;
bool isPasswordEqual = password == passwordRepeat;
if (!isDataValid) {
showRegisterHint("dialog-cancel", i18n("Not all required fields are filled"));
} else if (!isPasswordLengthValid) {
showRegisterHint("dialog-cancel", i18n("Password is too short"));
} else if (!isPasswordEqual) {
showRegisterHint("dialog-cancel", i18n("Passwords do not match"));
} else {
showRegisterHint("dialog-ok-apply", i18n("All required information is provided"));
}
m_ui.registerButton->setEnabled(isDataValid && isPasswordLengthValid && isPasswordEqual);
emit changed(true);
}
void ProviderConfigWidget::showRegisterHint(const QString& iconName, const QString& hint)
{
m_ui.iconLabelRP->setPixmap(KIcon(iconName).pixmap(16,16));
m_ui.infoLabelRP->setText(hint);
}
void ProviderConfigWidget::showRegisterError(const Attica::Metadata& metadata)
{
if (metadata.error() == Attica::Metadata::NetworkError) {
showRegisterHint("dialog-close", i18n("Failed to register new account."));
} else {
/*
# 100 - successful / valid account
# 101 - please specify all mandatory fields
# 102 - please specify a valid password
# 103 - please specify a valid login
# 104 - login already exists
# 105 - email already taken
*/
// TODO: Looks like more correct place for this stuff is in libattica,
// for example metadata().statusString() or smth like that.
// So here will be only showRegisterHint("dialog-close", statusString);
// no switch.
QWidget* widgetToHighlight = 0;
QString hint;
switch (metadata.statusCode()) {
case 102:
hint = i18n("Failed to register new account: invalid password.");
widgetToHighlight = m_ui.passwordEditRP;
break;
case 103:
hint = i18n("Failed to register new account: invalid username.");
widgetToHighlight = m_ui.userEditRP;
break;
case 104:
hint = i18n("Failed to register new account: the requested username is already taken.");
widgetToHighlight = m_ui.userEditRP;
break;
case 105:
hint = i18n("Failed to register new account: the specified email address is already taken.");
widgetToHighlight = m_ui.mailEdit;
break;
case 106:
hint = i18n("Failed to register new account: the specified email address is invalid.");
widgetToHighlight = m_ui.mailEdit;
default:
hint = i18n("Failed to register new account.");
break;
}
if (!hint.isEmpty())
showRegisterHint("dialog-close", hint);
if (widgetToHighlight) {
QPalette pal = widgetToHighlight->palette();
KColorScheme::adjustBackground(pal, KColorScheme::NegativeBackground, QPalette::Base);
widgetToHighlight->setPalette(pal);
widgetToHighlight->setFocus();
}
}
}
void ProviderConfigWidget::clearHighlightedErrors()
{
QList<QWidget*> widList = allRegisterWidgets();
foreach (QWidget* wid, widList) {
QPalette pal = wid->palette();
KColorScheme::adjustBackground(pal, KColorScheme::NormalBackground, QPalette::Base);
wid->setPalette(pal);
}
}
void ProviderConfigWidget::onRegisterClicked()
{
// here we assume that all data has been checked in onRegisterDataChanged()
clearHighlightedErrors();
QString login = m_ui.userEditRP->text();
QString mail = m_ui.mailEdit->text();
QString firstName = m_ui.firstNameEdit->text();
QString lastName = m_ui.lastNameEdit->text();
QString password = m_ui.passwordEditRP->text();
//QString passwordRepeat = m_ui.passwordRepeatEdit->text();
Attica::PostJob* postJob = m_provider.registerAccount(login, password, mail, firstName, lastName);
connect(postJob, SIGNAL(finished(Attica::BaseJob*)), SLOT(onRegisterAccountFinished(Attica::BaseJob*)));
postJob->start();
showRegisterHint("help-about", i18n("Registration is in progress..."));
m_ui.registerButton->setEnabled(false); // should be disabled while registering
}
void ProviderConfigWidget::onRegisterAccountFinished(Attica::BaseJob* job)
{
Attica::PostJob* postJob = static_cast<Attica::PostJob*>(job);
// this will enable "register" button if possible
onRegisterDataChanged();
if (postJob->metadata().error() == Attica::Metadata::NoError)
{
KMessageBox::information(this, i18n("Registration complete. New account was successfully registered. Please <b>check your Email</b> to <b>activate</b> the account."));
QString user = m_ui.userEditRP->text();
QString password = m_ui.passwordEditRP->text();
m_ui.userEditLP->setText(user);
m_ui.passwordEditLP->setText(password);
// clear register fields and switch to login page
foreach (QWidget* wid, allRegisterWidgets())
{
QLineEdit* le = qobject_cast<QLineEdit*>(wid);
if (le)
le->clear();
}
m_ui.tabWidget->setCurrentIndex(loginTabIdx);
m_ui.userEditLP->setFocus();
}
else
{
kDebug() << "register error:" << postJob->metadata().error() << "statusCode:" << postJob->metadata().statusCode();
showRegisterError( postJob->metadata() );
}
}
void ProviderConfigWidget::saveData()
{
m_provider.saveCredentials(m_ui.userEditLP->text(), m_ui.passwordEditLP->text());
}
QList<QWidget*> ProviderConfigWidget::allRegisterWidgets() const
{
QList<QWidget*> widList;
widList << m_ui.userEditRP << m_ui.mailEdit << m_ui.firstNameEdit
<< m_ui.lastNameEdit << m_ui.passwordEditRP << m_ui.passwordRepeatEdit;
return widList;
}
#include "providerconfigwidget.moc"

View file

@ -0,0 +1,78 @@
/*
This file is part of KDE.
Copyright (c) 2009 Eckhart Wörner <ewoerner@kde.org>
Copyright (c) 2009 Dmitry Suzdalev <dimsuz@gmail.com>
Copyright (c) 2010 Frederik Gladhorn <gladhorn@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 PROVIDERCONFIGWIDGET_H
#define PROVIDERCONFIGWIDGET_H
#include <QWidget>
#include <attica/provider.h>
#include "ui_providerconfigwidget.h"
namespace Attica
{
class Metadata;
}
class ProviderConfigWidget : public QWidget
{
Q_OBJECT
public:
explicit ProviderConfigWidget(QWidget* parent = 0);
void setProvider(const Attica::Provider& provider);
void saveData();
Q_SIGNALS:
void changed(bool hasChanged);
private Q_SLOTS:
// login page
void onLoginChanged();
void onTestLogin();
void onTestLoginFinished(Attica::BaseJob* job);
void enableToggled(bool enabled);
// register page
void onInfoLinkActivated();
void onRegisterDataChanged();
void onRegisterClicked();
void onRegisterAccountFinished(Attica::BaseJob* job);
private:
void initLoginPage();
void initRegisterPage();
void showRegisterHint(const QString&, const QString&);
void showRegisterError(const Attica::Metadata&);
void clearHighlightedErrors();
QList<QWidget*> allRegisterWidgets() const;
private:
Attica::Provider m_provider;
Ui::ProviderConfigWidget m_ui;
};
#endif

View file

@ -0,0 +1,572 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ProviderConfigWidget</class>
<widget class="QWidget" name="ProviderConfigWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>467</width>
<height>453</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="loginTab">
<attribute name="title">
<string>Login</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>10</number>
</property>
<item row="3" column="1">
<widget class="QLabel" name="label">
<property name="text">
<string>&amp;Username:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>userEditLP</cstring>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="KLineEdit" name="userEditLP"/>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>&amp;Password:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>passwordEditLP</cstring>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="KLineEdit" name="passwordEditLP">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QPushButton" name="testLoginButton">
<property name="text">
<string>&amp;Test Login</string>
</property>
</widget>
</item>
<item row="3" column="3" rowspan="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0" rowspan="3">
<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>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="4">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="4">
<widget class="QLabel" name="titleWidgetLogin">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0" colspan="4">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="6" column="2">
<widget class="QCheckBox" name="enableProviderCheckBox">
<property name="toolTip">
<string>If a provider is not enabled, it will be ignored by the applications using the social desktop</string>
</property>
<property name="text">
<string>Enabled</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>443</width>
<height>174</height>
</size>
</property>
</spacer>
</item>
<item row="4" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="iconLabelLP">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="infoLabelLP">
<property name="text">
<string>Do not have an account? Create one on the &lt;a href=&quot;register&quot;&gt;Register tab&lt;/a&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QLabel" name="infoLabelLP_2">
<property name="text">
<string>The Social Desktop Providers are used for &quot;Get Hot New Stuff&quot; and the &quot;Community&quot; and &quot;Social News&quot; Plasma applets.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="registerTab">
<attribute name="title">
<string>Register</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin">
<number>10</number>
</property>
<item row="3" column="1" colspan="2">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Fill in the details below and click &lt;b&gt;Register...&lt;/b&gt; button</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="1">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</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 row="6" column="0" colspan="2">
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</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 row="7" column="1">
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>29</height>
</size>
</property>
</spacer>
</item>
<item row="5" column="1">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&amp;User name:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>userEditRP</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="KLineEdit" name="userEditRP"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>&amp;Email:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>mailEdit</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="KLineEdit" name="mailEdit"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>&amp;Password:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>passwordEditRP</cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="KLineEdit" name="passwordEditRP">
<property name="passwordMode">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Repeat password:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>passwordRepeatEdit</cstring>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="KLineEdit" name="passwordRepeatEdit">
<property name="passwordMode">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>&amp;First name:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>firstNameEdit</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="firstNameEdit"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>&amp;Last name:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>lastNameEdit</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lastNameEdit"/>
</item>
<item row="7" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="iconLabelRP">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="alignment">
<set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="infoLabelRP">
<property name="text">
<string/>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item row="8" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QPushButton" name="registerButton">
<property name="text">
<string>&amp;Register...</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="6" column="0" colspan="2">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2" rowspan="6">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="titleWidgetRegister">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="2">
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>10</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0" rowspan="3">
<spacer name="horizontalSpacer_5">
<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>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>KLineEdit</class>
<extends>QLineEdit</extends>
<header>klineedit.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>tabWidget</tabstop>
<tabstop>userEditLP</tabstop>
<tabstop>passwordEditLP</tabstop>
<tabstop>testLoginButton</tabstop>
<tabstop>userEditRP</tabstop>
<tabstop>mailEdit</tabstop>
<tabstop>firstNameEdit</tabstop>
<tabstop>lastNameEdit</tabstop>
<tabstop>passwordEditRP</tabstop>
<tabstop>passwordRepeatEdit</tabstop>
<tabstop>registerButton</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ProviderManagement</class>
<widget class="QWidget" name="ProviderManagement">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>585</width>
<height>492</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="lblProviderList">
<property name="text">
<string>Choose a provider to manage:</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="providerComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeAdjustPolicy">
<enum>QComboBox::AdjustToContents</enum>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="addProviderButton">
<property name="text">
<string>Add Provider</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="removeProviderButton">
<property name="text">
<string>Remove Provider</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<widget class="ProviderConfigWidget" name="providerConfigWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>1</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ProviderConfigWidget</class>
<extends>QWidget</extends>
<header>providerconfigwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View file

@ -0,0 +1,10 @@
################# KDE PLUGIN for LibAttica #################
set(attica_kde_SRCS
kdeplatformdependent.cpp
)
kde4_add_plugin(attica_kde ${attica_kde_SRCS})
target_link_libraries(attica_kde ${KDE4_KIO_LIBS} ${QT_QTMAIN_LIBRARY} ${QT_QTCORE_LIBRARY} ${KDE4_KCMUTILS_LIBS} )
install(TARGETS attica_kde EXPORT kdelibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})

View file

@ -0,0 +1,2 @@
#! /bin/sh
$XGETTEXT *.cpp -o $podir/attica_kde.pot

View file

@ -0,0 +1,279 @@
/*
This file is part of KDE.
Copyright (c) 2009 Eckhart Wörner <ewoerner@kde.org>
Copyright (c) 2010 Frederik Gladhorn <gladhorn@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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 6 of version 3 of the license.
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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "kdeplatformdependent.h"
#include <QtCore/QDebug>
#include <KConfigGroup>
#include <kcomponentdata.h>
#include <KDebug>
#include <KWallet/Wallet>
#include <kcmultidialog.h>
#include <klocale.h>
#include <KStringHandler>
#include <KMessageBox>
using namespace Attica;
KdePlatformDependent::KdePlatformDependent()
: m_config(KSharedConfig::openConfig("atticarc")), m_accessManager(0), m_wallet(0)
{
// when a plain Qt application loads this plugin, it needs a valid KGlobal object
if (!KGlobal::hasMainComponent()) {
KComponentData componentData("attica_kde");
}
KLocale* locale = KGlobal::locale();
if (locale) {
locale->insertCatalog("attica_kde");
}
m_accessManager = new KIO::Integration::AccessManager(this);
}
KdePlatformDependent::~KdePlatformDependent()
{
delete m_wallet;
}
bool KdePlatformDependent::openWallet(bool force)
{
if (m_wallet) {
return true;
}
QString networkWallet = KWallet::Wallet::NetworkWallet();
// if not forced, or the folder doesn't exist, don't try to open the wallet
if (force || (!KWallet::Wallet::folderDoesNotExist(networkWallet, "Attica"))) {
m_wallet = KWallet::Wallet::openWallet(networkWallet, 0);
}
if (m_wallet) {
m_wallet->createFolder("Attica");
m_wallet->setFolder("Attica");
return true;
}
return false;
}
QNetworkReply* KdePlatformDependent::post(const QNetworkRequest& request, const QByteArray& data)
{
return m_accessManager->post(removeAuthFromRequest(request), data);
}
QNetworkReply* KdePlatformDependent::post(const QNetworkRequest& request, QIODevice* data)
{
return m_accessManager->post(removeAuthFromRequest(request), data);
}
QNetworkReply* KdePlatformDependent::get(const QNetworkRequest& request)
{
return m_accessManager->get(removeAuthFromRequest(request));
}
QNetworkRequest KdePlatformDependent::removeAuthFromRequest(const QNetworkRequest& request)
{
QStringList noauth;
noauth << "no-auth-prompt" << "true";
QNetworkRequest notConstReq = const_cast<QNetworkRequest&>(request);
notConstReq.setAttribute(QNetworkRequest::User, noauth);
return notConstReq;
}
bool KdePlatformDependent::saveCredentials(const QUrl& baseUrl, const QString& user, const QString& password)
{
m_passwords[baseUrl.toString()] = QPair<QString, QString> (user, password);
if (!m_wallet && !openWallet(true)) {
if (KMessageBox::warningContinueCancel(0, i18n("Should the password be stored in the configuration file? This is unsafe.")
, i18n("Social Desktop Configuration"))
== KMessageBox::Cancel) {
return false;
}
// use kconfig
KConfigGroup group(m_config, baseUrl.toString());
group.writeEntry("user", user);
group.writeEntry("password", KStringHandler::obscure(password));
kDebug() << "Saved credentials in KConfig";
return true;
}
// Remove the entry when user name is empty
if (user.isEmpty()) {
m_wallet->removeEntry(baseUrl.toString());
return true;
}
QMap<QString, QString> entries;
entries.insert("user", user);
entries.insert("password", password);
kDebug() << "Saved credentials in KWallet";
return !m_wallet->writeMap(baseUrl.toString(), entries);
}
bool KdePlatformDependent::hasCredentials(const QUrl& baseUrl) const
{
if (m_passwords.contains(baseUrl.toString())) {
return true;
}
QString networkWallet = KWallet::Wallet::NetworkWallet();
if (!KWallet::Wallet::folderDoesNotExist(networkWallet, "Attica") &&
!KWallet::Wallet::keyDoesNotExist(networkWallet, "Attica", baseUrl.toString())) {
kDebug() << "Found credentials in KWallet";
return true;
}
KConfigGroup group(m_config, baseUrl.toString());
QString user;
user = group.readEntry("user", QString());
if (!user.isEmpty()) {
kDebug() << "Found credentials in KConfig";
return true;
}
kDebug() << "No credentials found";
return false;
}
bool KdePlatformDependent::loadCredentials(const QUrl& baseUrl, QString& user, QString& password)
{
QString networkWallet = KWallet::Wallet::NetworkWallet();
if (KWallet::Wallet::folderDoesNotExist(networkWallet, "Attica") &&
KWallet::Wallet::keyDoesNotExist(networkWallet, "Attica", baseUrl.toString())) {
// use KConfig
KConfigGroup group(m_config, baseUrl.toString());
user = group.readEntry("user", QString());
password = KStringHandler::obscure(group.readEntry("password", QString()));
if (!user.isEmpty()) {
kDebug() << "Successfully loaded credentials from kconfig";
m_passwords[baseUrl.toString()] = QPair<QString, QString> (user, password);
return true;
}
return false;
}
if (!m_wallet && !openWallet(true)) {
return false;
}
QMap<QString, QString> entries;
if (m_wallet->readMap(baseUrl.toString(), entries) != 0) {
return false;
}
user = entries.value("user");
password = entries.value("password");
kDebug() << "Successfully loaded credentials.";
m_passwords[baseUrl.toString()] = QPair<QString, QString> (user, password);
return true;
}
bool Attica::KdePlatformDependent::askForCredentials(const QUrl& baseUrl, QString& user, QString& password)
{
Q_UNUSED(baseUrl);
Q_UNUSED(user);
Q_UNUSED(password);
kDebug() << "Attempting to start KCM for credentials";
KCMultiDialog KCM;
KCM.setWindowTitle( i18n( "Open Collaboration Providers" ) );
KCM.addModule( "kcm_attica" );
KCM.exec();
return false;
}
QList<QUrl> KdePlatformDependent::getDefaultProviderFiles() const
{
KConfigGroup group(m_config, "General");
QStringList pathStrings = group.readPathEntry("providerFiles", QStringList("http://download.kde.org/ocs/providers.xml"));
QList<QUrl> paths;
foreach (const QString& pathString, pathStrings) {
paths.append(QUrl(pathString));
}
qDebug() << "Loaded paths from config:" << paths;
return paths;
}
void KdePlatformDependent::addDefaultProviderFile(const QUrl& url)
{
KConfigGroup group(m_config, "General");
QStringList pathStrings = group.readPathEntry("providerFiles", QStringList("http://download.kde.org/ocs/providers.xml"));
QString urlString = url.toString();
if(!pathStrings.contains(urlString)) {
pathStrings.append(urlString);
group.writeEntry("providerFiles", pathStrings);
group.sync();
kDebug() << "wrote providers: " << pathStrings;
}
}
void KdePlatformDependent::removeDefaultProviderFile(const QUrl& url)
{
KConfigGroup group(m_config, "General");
QStringList pathStrings = group.readPathEntry("providerFiles", QStringList("http://download.kde.org/ocs/providers.xml"));
pathStrings.removeAll(url.toString());
group.writeEntry("providerFiles", pathStrings);
}
void KdePlatformDependent::enableProvider(const QUrl& baseUrl, bool enabled) const
{
KConfigGroup group(m_config, "General");
QStringList pathStrings = group.readPathEntry("disabledProviders", QStringList());
if (enabled) {
pathStrings.removeAll(baseUrl.toString());
} else {
if (!pathStrings.contains(baseUrl.toString())) {
pathStrings.append(baseUrl.toString());
}
}
group.writeEntry("disabledProviders", pathStrings);
group.sync();
}
bool KdePlatformDependent::isEnabled(const QUrl& baseUrl) const
{
KConfigGroup group(m_config, "General");
return !group.readPathEntry("disabledProviders", QStringList()).contains(baseUrl.toString());
}
QNetworkAccessManager* Attica::KdePlatformDependent::nam()
{
return m_accessManager;
}
Q_EXPORT_PLUGIN2(attica_kde, Attica::KdePlatformDependent)
#include "kdeplatformdependent.moc"

View file

@ -0,0 +1,79 @@
/*
This file is part of KDE.
Copyright (c) 2009 Eckhart Wörner <ewoerner@kde.org>
Copyright (c) 2010 Frederik Gladhorn <gladhorn@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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 6 of version 3 of the license.
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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef ATTICA_KDEPLATFORMDEPENDENT_H
#define ATTICA_KDEPLATFORMDEPENDENT_H
#include <attica/platformdependent.h>
#include <QtCore/QHash>
#include <KSharedConfig>
#include <KIO/AccessManager>
namespace KWallet {
class Wallet;
}
namespace Attica {
class KdePlatformDependent : public QObject, public Attica::PlatformDependent
{
Q_OBJECT
Q_INTERFACES(Attica::PlatformDependent)
public:
KdePlatformDependent();
virtual ~KdePlatformDependent();
virtual QList<QUrl> getDefaultProviderFiles() const;
virtual void addDefaultProviderFile(const QUrl& url);
virtual void removeDefaultProviderFile(const QUrl& url);
virtual void enableProvider(const QUrl& baseUrl, bool enabled) const;
virtual bool isEnabled(const QUrl& baseUrl) const;
virtual QNetworkReply* post(const QNetworkRequest& request, const QByteArray& data);
virtual QNetworkReply* post(const QNetworkRequest& request, QIODevice* data);
virtual QNetworkReply* get(const QNetworkRequest& request);
virtual bool saveCredentials(const QUrl& baseUrl, const QString& user, const QString& password);
virtual bool hasCredentials(const QUrl& baseUrl) const;
virtual bool loadCredentials(const QUrl& baseUrl, QString& user, QString& password);
virtual bool askForCredentials(const QUrl& baseUrl, QString& user, QString& password);
virtual QNetworkAccessManager* nam();
private:
bool openWallet(bool force);
QNetworkRequest removeAuthFromRequest(const QNetworkRequest& request);
KSharedConfigPtr m_config;
//QNetworkAccessManager m_qnam;
KIO::Integration::AccessManager* m_accessManager;
KWallet::Wallet* m_wallet;
QHash<QString, QPair <QString, QString> > m_passwords;
};
}
#endif

View file

@ -2,7 +2,9 @@
# don't glob for the files, since we don't want to
# install e.g. FindLibKNotification-1.cmake
set(cmakeFiles FindDBus.cmake
set(cmakeFiles FindCLucene.cmake
FindSLP.cmake
FindDBus.cmake
FindLibXKlavier.cmake
FindOpenGLES.cmake
FindPAM.cmake

View file

@ -0,0 +1,97 @@
#
# This module looks for clucene (http://clucene.sf.net) support
# It will define the following values
#
# CLUCENE_INCLUDE_DIR = where CLucene/StdHeader.h can be found
# CLUCENE_LIBRARY_DIR = where CLucene/clucene-config.h can be found
# CLUCENE_LIBRARY = the library to link against CLucene
# CLUCENE_VERSION = The CLucene version string
# CLucene_FOUND = set to 1 if clucene is found
#
INCLUDE(CheckSymbolExists)
INCLUDE(FindLibraryWithDebug)
if(NOT CLUCENE_MIN_VERSION)
set(CLUCENE_MIN_VERSION "0.9.19")
endif(NOT CLUCENE_MIN_VERSION)
IF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
INCLUDE(${PROJECT_CMAKE}/CLuceneConfig.cmake)
ENDIF(EXISTS ${PROJECT_CMAKE}/CLuceneConfig.cmake)
SET(TRIAL_LIBRARY_PATHS
$ENV{CLUCENE_HOME}/lib${LIB_SUFFIX}
${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}
/usr/local/lib${LIB_SUFFIX}
/usr/lib${LIB_SUFFIX}
/sw/lib${LIB_SUFFIX}
/usr/pkg/lib${LIB_SUFFIX}
)
SET(TRIAL_INCLUDE_PATHS
$ENV{CLUCENE_HOME}/include
${CMAKE_INSTALL_PREFIX}/include
/usr/local/include
/usr/include
/sw/include
/usr/pkg/include
)
FIND_LIBRARY_WITH_DEBUG(CLUCENE_LIBRARY
WIN32_DEBUG_POSTFIX d
NAMES clucene clucene-core
PATHS ${TRIAL_LIBRARY_PATHS})
IF (CLUCENE_LIBRARY)
MESSAGE(STATUS "Found CLucene library: ${CLUCENE_LIBRARY}")
ENDIF (CLUCENE_LIBRARY)
FIND_PATH(CLUCENE_INCLUDE_DIR
NAMES CLucene.h
PATHS ${TRIAL_INCLUDE_PATHS})
IF (CLUCENE_INCLUDE_DIR)
MESSAGE(STATUS "Found CLucene include dir: ${CLUCENE_INCLUDE_DIR}")
ENDIF (CLUCENE_INCLUDE_DIR)
IF(WIN32)
SET(TRIAL_LIBRARY_PATHS ${CLUCENE_INCLUDE_DIR})
ENDIF(WIN32)
SET(CLUCENE_GOOD_VERSION TRUE)
FIND_PATH(CLUCENE_LIBRARY_DIR
NAMES CLucene/clucene-config.h PATHS ${TRIAL_LIBRARY_PATHS} ${TRIAL_INCLUDE_PATHS} NO_DEFAULT_PATH)
IF (CLUCENE_LIBRARY_DIR)
MESSAGE(STATUS "Found CLucene library dir: ${CLUCENE_LIBRARY_DIR}")
FILE(READ ${CLUCENE_LIBRARY_DIR}/CLucene/clucene-config.h CLCONTENT)
STRING(REGEX MATCH "_CL_VERSION +\".*\"" CLMATCH ${CLCONTENT})
IF (CLMATCH)
STRING(REGEX REPLACE "_CL_VERSION +\"(.*)\"" "\\1" CLUCENE_VERSION ${CLMATCH})
IF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
MESSAGE(ERROR " CLucene version ${CLUCENE_VERSION} is less than the required minimum ${CLUCENE_MIN_VERSION}")
SET(CLUCENE_GOOD_VERSION FALSE)
ENDIF (CLUCENE_VERSION STRLESS "${CLUCENE_MIN_VERSION}")
IF (CLUCENE_VERSION STREQUAL "0.9.17")
MESSAGE(ERROR "CLucene version 0.9.17 is not supported.")
SET(CLUCENE_GOOD_VERSION FALSE)
ENDIF (CLUCENE_VERSION STREQUAL "0.9.17")
ENDIF (CLMATCH)
ENDIF (CLUCENE_LIBRARY_DIR)
IF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
SET(CLucene_FOUND TRUE)
ENDIF(CLUCENE_INCLUDE_DIR AND CLUCENE_LIBRARY AND CLUCENE_LIBRARY_DIR AND CLUCENE_GOOD_VERSION)
IF(CLucene_FOUND)
IF(NOT CLucene_FIND_QUIETLY)
MESSAGE(STATUS "Found CLucene: ${CLUCENE_LIBRARY} version ${CLUCENE_VERSION}")
ENDIF(NOT CLucene_FIND_QUIETLY)
ELSE(CLucene_FOUND)
IF(CLucene_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find CLucene.")
ENDIF(CLucene_FIND_REQUIRED)
ENDIF(CLucene_FOUND)
MARK_AS_ADVANCED(
CLUCENE_INCLUDE_DIR
CLUCENE_LIBRARY_DIR
CLUCENE_LIBRARY
)

View file

@ -0,0 +1,81 @@
#.rst
# FindLibGcrypt
# -------------
#
# Finds the Libgcrypt library.
#
# This will define the following variables:
#
# ``LIBGCRYPT_FOUND``
# True if the requested version of gcrypt was found
# ``LIBGCRYPT_VERSION``
# The version of gcrypt that was found
# ``LIBGCRYPT_INCLUDE_DIRS``
# The gcrypt include directories
# ``LIBGCRYPT_LIBRARIES``
# The linker libraries needed to use the gcrypt library
# Copyright 2014 Nicolás Alvarez <nicolas.alvarez@gmail.com>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
find_program(LIBGCRYPTCONFIG_SCRIPT NAMES libgcrypt-config)
if(LIBGCRYPTCONFIG_SCRIPT)
execute_process(COMMAND "${LIBGCRYPTCONFIG_SCRIPT}" --prefix OUTPUT_VARIABLE PREFIX)
set(LIBGCRYPT_LIB_HINT "${PREFIX}/lib")
set(LIBGCRYPT_INCLUDE_HINT "${PREFIX}/include")
endif()
find_library(LIBGCRYPT_LIBRARY
NAMES gcrypt
HINTS ${LIBGCRYPT_LIB_HINT}
)
find_path(LIBGCRYPT_INCLUDE_DIR
NAMES gcrypt.h
HINTS ${LIBGCRYPT_INCLUDE_HINT}
)
if(LIBGCRYPT_INCLUDE_DIR)
file(STRINGS ${LIBGCRYPT_INCLUDE_DIR}/gcrypt.h GCRYPT_H REGEX "^#define GCRYPT_VERSION ")
string(REGEX REPLACE "^#define GCRYPT_VERSION \"(.*)\".*$" "\\1" LIBGCRYPT_VERSION "${GCRYPT_H}")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibGcrypt
REQUIRED_VARS LIBGCRYPT_LIBRARY LIBGCRYPT_INCLUDE_DIR
VERSION_VAR LIBGCRYPT_VERSION
)
if(LIBGCRYPT_FOUND)
set(LIBGCRYPT_LIBRARIES ${LIBGCRYPT_LIBRARY})
set(LIBGCRYPT_INCLUDE_DIRS ${LIBGCRYPT_INCLUDE_DIR})
endif()
mark_as_advanced(LIBGCRYPT_LIBRARY LIBGCRYPT_INCLUDE_DIR)
include(FeatureSummary)
set_package_properties(LibGcrypt PROPERTIES
DESCRIPTION "A general purpose cryptographic library based on the code from GnuPG."
URL "http://www.gnu.org/software/libgcrypt/"
)

View file

@ -0,0 +1,80 @@
# - Try to find LibSSH
# Once done this will define
#
# LIBSSH_FOUND - system has LibSSH
# LIBSSH_INCLUDE_DIRS - the LibSSH include directory
# LIBSSH_LIBRARIES - Link these to use LibSSH
# LIBSSH_DEFINITIONS - Compiler switches required for using LibSSH
#
# Copyright (c) 2009-2014 Andreas Schneider <asn@cryptomilk.org>
#
# Redistribution and use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
find_path(LIBSSH_INCLUDE_DIR
NAMES
libssh/libssh.h
PATHS
/usr/include
/usr/local/include
/opt/local/include
/sw/include
${CMAKE_INCLUDE_PATH}
${CMAKE_INSTALL_PREFIX}/include
)
find_library(SSH_LIBRARY
NAMES
ssh
libssh
PATHS
/usr/lib
/usr/local/lib
/opt/local/lib
/sw/lib
${CMAKE_LIBRARY_PATH}
${CMAKE_INSTALL_PREFIX}/lib
)
set(LIBSSH_LIBRARIES
${LIBSSH_LIBRARIES}
${SSH_LIBRARY}
)
if (LIBSSH_INCLUDE_DIR AND LibSSH_FIND_VERSION)
file(STRINGS ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h LIBSSH_VERSION_MAJOR
REGEX "#define[ ]+LIBSSH_VERSION_MAJOR[ ]+[0-9]+")
# Older versions of libssh like libssh-0.2 have LIBSSH_VERSION but not LIBSSH_VERSION_MAJOR
if (LIBSSH_VERSION_MAJOR)
string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_MAJOR ${LIBSSH_VERSION_MAJOR})
file(STRINGS ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h LIBSSH_VERSION_MINOR
REGEX "#define[ ]+LIBSSH_VERSION_MINOR[ ]+[0-9]+")
string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_MINOR ${LIBSSH_VERSION_MINOR})
file(STRINGS ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h LIBSSH_VERSION_PATCH
REGEX "#define[ ]+LIBSSH_VERSION_MICRO[ ]+[0-9]+")
string(REGEX MATCH "[0-9]+" LIBSSH_VERSION_PATCH ${LIBSSH_VERSION_PATCH})
set(LIBSSH_VERSION ${LIBSSH_VERSION_MAJOR}.${LIBSSH_VERSION_MINOR}.${LIBSSH_VERSION_PATCH})
else (LIBSSH_VERSION_MAJOR)
message(STATUS "LIBSSH_VERSION_MAJOR not found in ${LIBSSH_INCLUDE_DIR}/libssh/libssh.h, assuming libssh is too old")
set(LIBSSH_FOUND FALSE)
endif (LIBSSH_VERSION_MAJOR)
endif (LIBSSH_INCLUDE_DIR AND LibSSH_FIND_VERSION)
# If the version is too old, but libs and includes are set,
# find_package_handle_standard_args will set LIBSSH_FOUND to TRUE again,
# so we need this if() here.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibSSH
REQUIRED_VARS
LIBSSH_LIBRARIES
LIBSSH_INCLUDE_DIR
VERSION_VAR
LIBSSH_VERSION)
# show the LIBSSH_INCLUDE_DIRS and LIBSSH_LIBRARIES variables only in the advanced view
mark_as_advanced(LIBSSH_INCLUDE_DIR LIBSSH_LIBRARIES)

View file

@ -0,0 +1,70 @@
# - Try to find the QNtrack library
# Once done this will define
#
# QNTRACK_FOUND - system has the CK Connector
# QNTRACK_INCLUDE_DIR - the CK Connector include directory
# QNTRACK_LIBRARIES - the libraries needed to use CK Connector
# Copyright (C) 2010 Sune Vuorela <sune@debian.org>
# modeled after FindCkConnector.cmake:
# Copyright (c) 2008, Kevin Kofler, <kevin.kofler@chello.at>
# modeled after FindLibArt.cmake:
# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if(QNTRACK_INCLUDE_DIR AND QNTRACK_LIBRARIES)
# in cache already
SET(QNTRACK_FOUND TRUE)
else (QNTRACK_INCLUDE_DIR AND QNTRACK_LIBRARIES)
IF (NOT WIN32)
FIND_PACKAGE(PkgConfig)
IF (PKG_CONFIG_FOUND)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
pkg_check_modules(_QNTRACK_PC QUIET libntrack-qt4 )
ENDIF (PKG_CONFIG_FOUND)
ENDIF (NOT WIN32)
FIND_PATH(QNTRACK_QT_INCLUDE_DIR QNtrack.h
${_QNTRACK_PC_INCLUDE_DIRS}
)
#Hide from cmake user interfaces
SET(QNTRACK_QT_INCLUDE_DIR ${QNTRACK_QT_INCLUDE_DIR} CACHE INTERNAL "" FORCE)
FIND_PATH(NTRACK_INCLUDE_DIR ntrackmonitor.h
${_QNTRACK_PC_INCLUDE_DIRS}
)
#Hide from cmake user interfaces
SET(NTRACK_INCLUDE_DIR ${NTRACK_INCLUDE_DIR} CACHE INTERNAL "" FORCE)
FIND_LIBRARY(QNTRACK_LIBRARIES NAMES ntrack-qt4
PATHS
${_QNTRACK_PC_LIBDIR}
)
if (QNTRACK_QT_INCLUDE_DIR AND NTRACK_INCLUDE_DIR AND QNTRACK_LIBRARIES)
set(QNTRACK_FOUND TRUE)
set(QNTRACK_INCLUDE_DIR ${QNTRACK_QT_INCLUDE_DIR} ${NTRACK_INCLUDE_DIR})
endif (QNTRACK_QT_INCLUDE_DIR AND NTRACK_INCLUDE_DIR AND QNTRACK_LIBRARIES)
if (QNTRACK_FOUND)
if (NOT QNtrack_FIND_QUIETLY)
message(STATUS "Found QNtrack: ${QNTRACK_LIBRARIES}")
endif (NOT QNtrack_FIND_QUIETLY)
else (QNTRACK_FOUND)
if (QNtrack_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find QNtrack")
endif (QNtrack_FIND_REQUIRED)
endif (QNTRACK_FOUND)
MARK_AS_ADVANCED(QNTRACK_INCLUDE_DIR QNTRACK_LIBRARIES)
endif (QNTRACK_INCLUDE_DIR AND QNTRACK_LIBRARIES)

View file

@ -0,0 +1,22 @@
# cmake macro to test SLP LIB
# Copyright (c) 2006, 2007 Laurent Montel, <montel@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
if (SLP_INCLUDE_DIR AND SLP_LIBRARIES)
# Already in cache, be silent
set(SLP_FIND_QUIETLY TRUE)
endif (SLP_INCLUDE_DIR AND SLP_LIBRARIES)
FIND_PATH(SLP_INCLUDE_DIR slp.h)
FIND_LIBRARY(SLP_LIBRARIES NAMES slp libslp)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SLP DEFAULT_MSG SLP_LIBRARIES SLP_INCLUDE_DIR )
MARK_AS_ADVANCED(SLP_INCLUDE_DIR SLP_LIBRARIES)

View file

@ -0,0 +1,9 @@
macro(dbus_add_activation_service _sources)
foreach (_i ${_sources})
get_filename_component(_service_file ${_i} ABSOLUTE)
string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i})
set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_output_file})
configure_file(${_service_file} ${_target})
install(FILES ${_target} DESTINATION ${DBUS_SERVICES_INSTALL_DIR} )
endforeach (_i ${ARGN})
endmacro(dbus_add_activation_service _sources)

47
config-runtime.h.cmake Normal file
View file

@ -0,0 +1,47 @@
/* config-runtime.h. Generated by cmake from config-runtime.h.cmake */
/* media HAL backend compilation */
#undef COMPILE_HALBACKEND
/* Define if you have long long as datatype */
#cmakedefine HAVE_LONG_LONG 1
/* Define to 1 if you have the `nice' function. */
#cmakedefine HAVE_NICE 1
/* Define to 1 if you have the `sigaction' function. */
#cmakedefine HAVE_SIGACTION 1
/* Define to 1 if you have the `sigset' function. */
#cmakedefine HAVE_SIGSET 1
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the <sys/select.h> header file. */
#cmakedefine HAVE_SYS_SELECT_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#cmakedefine HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <sys/wait.h> header file. */
#cmakedefine HAVE_SYS_WAIT_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64
/*
* On HP-UX, the declaration of vsnprintf() is needed every time !
*/
/* type to use in place of socklen_t if not defined */
#define kde_socklen_t socklen_t

View file

@ -7,6 +7,22 @@ add_subdirectory(plasma-desktop)
add_subdirectory(kcontrol)
add_subdirectory(systemsettings)
add_subdirectory(kinfocenter)
if(POLKITQT_FOUND)
add_subdirectory(PolicyKit-kde)
endif(POLKITQT_FOUND)
if ( UNIX )
add_subdirectory(kdesu)
endif ( UNIX )
add_subdirectory(kcontrol)
add_subdirectory(glossary)
add_subdirectory(kdebugdialog)
add_subdirectory(khelpcenter)
add_subdirectory(kioslave)
add_subdirectory(knetattach)
add_subdirectory(onlinehelp)
add_subdirectory(documentationnotfound)
add_subdirectory(fundamentals)
add_subdirectory(plasmapkg)

25
doc/api/Doxyfile.local Normal file
View file

@ -0,0 +1,25 @@
## Warn about everything, just like in kdelibs.
WARN_IF_UNDOCUMENTED = YES
## Be strict, we want all parameters
## to be documented as well.
WARN_NO_PARAMDOC = YES
## Sort methods to make 'same as above' easier.
SORT_MEMBER_DOCS = YES
## Remove unsightly export macros
PREDEFINED = Q_EXPORT="" \
Q_GUI_EXPORT="" \
KWIN_EXPORT="" \
KFONTINST_EXPORT="" \
PLASMA_EXPORT="" \
LIBDOLPHINPRIVATE_EXPORT="" \
KONQSIDEBAR_EXPORT="" \
KONQSIDEBARPLUGIN_EXPORT="" \
SOLIDCONTROL_EXPORT="" \
SOLIDCONTROLIFACES_EXPORT="" \
KNEPREGCORE_EXPORT= "" \
KDEUI_EXPORT="" \
KDE_EXPORT="" \
Q_SLOTS="slots" \
Q_SIGNALS="signals"

View file

@ -0,0 +1,2 @@
########### install files ###############
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR khelpcenter/documentationnotfound)

View file

@ -0,0 +1,66 @@
<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
]>
<article id="documentationnotfound" lang="&language;">
<title>Documentation not Found</title>
<articleinfo>
<authorgroup>
<author><firstname>Jack</firstname>
<surname>Ostroff</surname>
<affiliation>
<address><email>ostroffjh@users.sourceforge.net</email></address>
</affiliation>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<date>2010-09-21</date>
<releaseinfo>&kde; 4.5</releaseinfo>
</articleinfo>
<para>The requested documentation was not found on your computer.
Normally, &kde; looks for application handbooks in a location that depends
on how &kde; was installed on your computer. There are a number of
possible reasons why it could not find the documentation you
requested. The document might not exist, or it may not have been
installed along with the application.</para>
<para>How to solve this issue:</para>
<para>Start by searching the <ulink url="http://docs.kde.org/">KDE
Documentation site</ulink> for the requested documentation. If you find
the documentation on that site, your distribution might ship a separate
package for documentation (&eg; called kdepim-doc for all applications
from the kdepim module, like &kmail;, &kontact;, &etc;). Please use the
package manager of your distribution to find and install the missing
documentation.</para>
<para>If you use a source based distribution, such as Gentoo, be sure that
there are not any configuration settings (USE flags in Gentoo) that
might have disabled the installation of the documentation.
</para>
<para>If you have done that, but still get this page displayed instead of the
application handbook, you probably found a bug in the &kde; help
system. In this case, please report this on the <ulink
url="http://bugs.kde.org/">KDE Bug Tracker</ulink>.
</para>
<para>If you do not find any documentation on the <ulink
url="http://docs.kde.org/">KDE Documentation site</ulink>, the
application may not have offline documentation. Please report this on
the <ulink url="http://bugs.kde.org/">KDE Bug Tracker</ulink>.
</para>
<para>In case the application does not have offline documentation, you should
use the online resources <ulink
url="http://userbase.kde.org/">UserBase Documentation</ulink> and
<ulink url="http://forum.kde.org/">KDE Community Forums</ulink> to get
help.
</para>
</article>

View file

@ -0,0 +1 @@
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en)

BIN
doc/fundamentals/colors.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View file

@ -0,0 +1,391 @@
<chapter id="config">
<title>Customizing &kde; software</title>
<sect1 id="toolbars">
<sect1info>
<authorgroup>
<author>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
</sect1info>
<title>Customizing Toolbars</title>
<!--FIXME link from korganizer config-toolbars section-->
<!--FIXME link from <sect2 id="configtoolbars"> in sheets/config.docbook> -->
<!--FIXME link from <sect2 id="configuration-toolbars"> in extragear/multimedia-git/kplayer/doc/en_US/configuration.docbook -->
<screenshot id="screenshot-toolbars-toolbar">
<screeninfo>The &gwenview; Toolbar</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="toolbars-toolbar.png" format="PNG"/></imageobject>
<textobject><phrase>The &gwenview; toolbar.</phrase></textobject>
<caption><para>The toolbar in
<ulink url="http://kde.org/applications/graphics/gwenview/">&gwenview;</ulink>.
</para></caption>
</mediaobject>
</screenshot>
<sect2 id="toolbars-items">
<title>Modifying Toolbar Items</title>
<para>To customize an application's toolbars, go to
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
Toolbars...</guimenuitem></menuchoice> or right-click on a toolbar and select
<guimenuitem>Configure Toolbars...</guimenuitem>.</para>
<para>On the left side of the toolbar configuration panel, the available items
that you can put in your toolbar are shown. On the right, the ones that already
appear on the toolbar are shown. At the top, you can select the toolbar
you wish to modify or view.</para>
<para>Above each side of the panel there is a <guilabel>Filter</guilabel> text
box you can use to easily find items in the list.</para>
<screenshot id="screenshot-toolbars-customize">
<screeninfo>The Customize Toolbars Window</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="toolbars-configure.png" format="PNG"/></imageobject>
<textobject><phrase>The Customize Toolbars window.</phrase></textobject>
<caption><para>The Customize Toolbars window in &gwenview; with the
<guibutton>Previous</guibutton> button selected.</para></caption>
</mediaobject>
</screenshot>
<sect3 id="toolbars-items-add">
<title>Adding an Item</title>
<para>You can add an item to your toolbar by selecting it from the left side and
clicking on the right arrow button.</para>
</sect3>
<sect3 id="toolbars-items-remove">
<title>Removing an Item</title>
<para>You can remove an item by selecting it and clicking the left arrow
button.</para>
</sect3>
<sect3 id="toolbars-items-rearrange">
<title>Changing the Position of Items</title>
<para>You can change the position of the items by moving them lower or higher in
the list. To move items lower, press the down arrow button, while to move items
higher press the up arrow button. You can also change items' position by
dragging and dropping them.</para>
<para>On horizontal toolbars, the item that's on top will be the one on the left.
On vertical toolbars, items are arranged as they appear in the toolbar.</para>
</sect3>
<sect3 id="toolbars-items-separator">
<title>Adding a Separator</title>
<para>You can add separator lines between items by adding a
<guilabel>--- separator ---</guilabel> item to the toolbar.</para>
</sect3>
<sect3 id="toolbars-items-defaults">
<title>Restoring Defaults</title>
<para>You can restore your toolbar to the way it was when you installed the
application by pressing the <guibutton>Defaults</guibutton> button at the bottom
of the window and then confirming your decision.</para>
</sect3>
<sect3 id="toolbars-items-text-icons">
<title>Changing Text and Icons</title>
<para>You can change the icon and text of individual toolbar items by selecting
an item and clicking either the <guibutton>Change Icon...</guibutton> or
<guibutton>Change Text...</guibutton> button.</para>
<!--FIXME Icon selection and icon categories -> own section?
Change Text -> Option "Hide text when toolbar shows text alongside icons"
-->
</sect3>
</sect2>
<sect2 id="toolbars-appearance">
<title>Customizing Toolbar Appearance</title>
<para>You can change the appearance of toolbars by right-clicking on a toolbar
to access it's context menu.</para>
<!-- settings for each toolbar separately-->
<sect3 id="toolbars-appearance-text-position">
<title>Text Position</title>
<para>You can change the appearance of text on toolbars in the
<guisubmenu>Text Position</guisubmenu> submenu of a toolbar's context menu.</para>
<para>You can choose from:</para>
<itemizedlist>
<listitem><para>
<guimenuitem>Icons</guimenuitem> -
only the icon for each toolbar item will appear.
</para></listitem>
<listitem><para>
<guimenuitem>Text</guimenuitem> -
only the text label for each toolbar item will appear.
</para></listitem>
<listitem><para>
<guimenuitem>Text Alongside Icons</guimenuitem> -
<!--this may need to be changed to 'left' for RTL languages-->
the text label will appear to the right of each toolbar item's icon
</para></listitem>
<listitem><para>
<guimenuitem>Text Under Icons</guimenuitem> -
the text label will appear underneath each toolbar item's icon
</para></listitem>
</itemizedlist>
<para>You can also show or hide text for individual toolbar items by
right-clicking on an item and checking or unchecking the item under
<guilabel>Show Text</guilabel>.</para>
</sect3>
<sect3 id="toolbars-appearance-icon-size">
<title>Icon Size</title>
<para>You can change the size of toolbar items' icons by selecting
<guisubmenu>Icon Size</guisubmenu> from the toolbar's context menu.</para>
<para>You can choose from the following options: (each lists the icon size
in pixels)</para>
<itemizedlist>
<listitem><para><guimenuitem>Small (16x16)</guimenuitem></para></listitem>
<listitem><para><guimenuitem>Medium (22x22)</guimenuitem>
[the default value]</para></listitem>
<listitem><para><guimenuitem>Large (32x32)</guimenuitem></para></listitem>
<listitem><para><guimenuitem>Huge (48x48)</guimenuitem></para></listitem>
</itemizedlist>
</sect3>
<sect3 id="toolbars-appearance-move">
<title>Moving Toolbars</title>
<para>In order to move toolbars, you must <quote>unlock</quote> them. To do
so, uncheck <guimenuitem>Lock Toolbar Positions</guimenuitem> from a toolbar's
context menu. To restore the lock, simply recheck this menu item.</para>
<para>You can change a toolbar's position from the
<guisubmenu>Orientation</guisubmenu> submenu of its context menu.</para>
<para>You can choose from:</para>
<itemizedlist>
<listitem><para><guimenuitem>Top</guimenuitem>
[the default in many applications]</para></listitem>
<listitem><para><guimenuitem>Left</guimenuitem></para></listitem>
<listitem><para><guimenuitem>Right</guimenuitem></para></listitem>
<listitem><para><guimenuitem>Bottom</guimenuitem></para></listitem>
</itemizedlist>
<para>You can also move a toolbar by clicking and holding onto the dotted line
at the left of horizontal toolbars or the top of vertical toolbars and dragging
it to your desired location.</para>
</sect3>
<sect3 id="toolbars-appearance-show-hide">
<title>Show/Hide Toolbars</title>
<para>If your application has only one toolbar, you can hide a toolbar by
deselecting <guimenuitem>Show Toolbar</guimenuitem> from either the toolbar's
context menu or the <guimenu>Settings</guimenu> menu. To restore the toolbar,
select <guimenuitem>Show Toolbar</guimenuitem> from the <guimenu>Settings</guimenu>
menu. Note that toolbars must be <quote>unlocked</quote> to hide them from their
context menu; see <xref linkend="toolbars-appearance-move"/> for more
information.</para>
<para>If your application has more than one toolbar, a submenu called
<guisubmenu>Toolbars Shown</guisubmenu> will appear in the context menu and
<guimenu>Settings</guimenu> menu instead of the above menu entry. From that
menu you may select individual toolbars to hide and show.</para>
</sect3>
</sect2>
<sect2 id="toolbars-ack">
<title>Thanks and Acknowledgments</title>
<para>Thanks to an anonymous Google Code-In 2011 participant for writing much
of this section.</para>
</sect2>
</sect1>
<sect1 id="shortcuts">
<sect1info>
<authorgroup>
<author><firstname>Alexey</firstname> <surname>Subach</surname></author>
<author>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
</sect1info>
<!--FIXME link from
<sect2 id="configshort"> in tables/config.docbook>
<sect2 id="configuration-shortcuts"> in extragear/multimedia-git/kplayer/doc/en_US/configuration.docbook
-->
<!--FIXME explain Alternate + Global shortcuts in Screenshot and
another place to change Global Shortcuts (Systemsettings)-->
<title>Using and Customizing Shortcuts</title>
<sect2 id="shortcuts-intro">
<title>Introduction</title>
<para>Many &kde; applications allow you to configure keyboard shortcuts. To open
the standard keyboard shortcuts configuration panel, go to
<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
Shortcuts...</guimenuitem></menuchoice>.</para>
<para>In the Configure Shortcuts window, you will see a list of all the shortcuts
available in the current application. You can use the search box at the top to
search for the shortcut you want.</para>
<screenshot id="screenshot-shortcuts-search">
<screeninfo>The Customize Shortcuts Window</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="shortcuts-search.png" format="PNG"/></imageobject>
<textobject><phrase>The Customize Shortcuts window.</phrase></textobject>
<caption><para>Searching for shortcuts with <userinput>file</userinput> in
<ulink url="http://kde.org/applications/system/dolphin/">&dolphin;</ulink>.
</para></caption>
</mediaobject>
</screenshot>
</sect2>
<sect2 id="shortcuts-change">
<title>Changing a Shortcut</title>
<para>To change a shortcut, first click on the name of a shortcut you want to change.
You will see a radio group where you can choose whether to set the shortcut to its
default value, or select a new shortcut for the selected action. To set a new shortcut,
choose <guilabel>Custom</guilabel> and click on the button next to it. Then just
type the shortcut you would like to use, and your changes will be saved.</para>
<screenshot id="screenshot-shortcuts-set">
<screeninfo>Setting a Shortcut</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="shortcuts-set.png" format="PNG"/></imageobject>
<textobject><phrase>The Customize Shortcuts window demonstrating how to
set a shortcut.</phrase></textobject>
</mediaobject>
</screenshot>
</sect2>
<sect2 id="shortcuts-reset">
<title>Resetting Shortcuts</title>
<para>There is a button at the bottom of the window, called <guibutton>Reset to
Defaults</guibutton>. Clicking on this button will reset all your custom shortcuts
to their default values.</para>
<para>You can also reset an individual shortcut to its default value by selecting
it, and choosing the <guilabel>Default</guilabel> radio button.</para>
</sect2>
<sect2 id="shortcuts-delete">
<title>Removing a Shortcut</title>
<para>To remove a shortcut, select it from the list, then click the remove icon (a
black arrow with a cross) to the right of the button that allows you to select
a shortcut.</para>
</sect2>
<sect2 id ="shortcuts-schemes">
<title>Working with Schemes</title>
<para>Schemes are keyboard shortcuts configuration profiles, so you can create
several profiles with different shortcuts and switch between these profiles
easily.</para>
<warning><para>This feature is under development. It is not possible to import
schemes using a &GUI; at this time.</para></warning>
<screenshot id="screenshot-shortcuts-schemes">
<screeninfo>Working with Schemes</screeninfo>
<mediaobject>
<imageobject><imagedata fileref="shortcuts-schemes.png" format="PNG"/></imageobject>
<textobject><phrase>The Customize Shortcuts window displaying the scheme
editing tools.</phrase></textobject>
<caption><para>Editing a scheme called <userinput>work</userinput>.</para></caption>
</mediaobject>
</screenshot>
<para>To see a menu allowing you to edit schemes, click on the
<guibutton>Details</guibutton> button at the bottom of the form. The following
options will appear:</para>
<variablelist>
<varlistentry>
<term><guilabel>Current Scheme</guilabel></term>
<listitem><para>Allows you to switch between your schemes.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>New...</guibutton></term>
<listitem><para>Creates a new scheme. This opens a window that lets you select
a name for your new scheme.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Delete</guibutton></term>
<listitem><para>Deletes the current scheme.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>More Actions</guibutton></term>
<listitem>
<para>Opens the following menu:</para>
<variablelist>
<varlistentry>
<term><guimenuitem>Save as Scheme Defaults</guimenuitem></term>
<listitem><para>Sets the current scheme as the default for all new schemes.</para></listitem>
</varlistentry>
<varlistentry>
<term><guimenuitem>Export Scheme...</guimenuitem></term>
<listitem><para>Exports the current scheme to a file named <filename><replaceable>applicationname</replaceable><replaceable>schemename</replaceable>shortcuts.rc</filename>.</para>
<para>
Move this file to the folder <filename class="directory">$KDEDIR/apps/applicationname/</filename>
and the exported scheme will be available in the drop down box labelled <guilabel>Current Scheme</guilabel>
</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="shortcuts-print">
<title>Printing Shortcuts</title>
<para>You can print out a list of shortcuts for easy reference by clicking the
<guibutton>Print</guibutton> button at the bottom of the window.</para>
</sect2>
<sect2 id="shortcuts-ack">
<title>Thanks and Acknowledgments</title>
<para>Special thanks to Google Code-In 2011 participant Alexey Subach for
writing much of this section.</para>
</sect2>
</sect1>
</chapter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
doc/fundamentals/fonts.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View file

@ -0,0 +1,147 @@
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY kappname "&kde-sc;">
<!ENTITY % addindex "IGNORE">
<!--FIXME: these entities should be added to kdoctools-->
<!ENTITY kde-sc "&i18n-kde-sc;">
<!ENTITY plasma-workspaces "&i18n-plasma-workspaces;">
<!ENTITY plasma-desktop "&i18n-plasma-desktop;">
<!ENTITY plasma-active "&i18n-plasma-active;">
<!ENTITY gwenview '<application>Gwenview</application>'>
<!ENTITY Meta "&i18n-Meta;">
<!--/end entities that need to be added to kdoctools-->
<!--make some of the above entities translatable in the interim-->
<!ENTITY i18n-kde-sc "&kde; Software Collection">
<!ENTITY i18n-plasma-workspaces "&kde; &plasma; Workspaces">
<!ENTITY i18n-plasma-desktop "<application>&kde; &plasma; Desktop</application>">
<!ENTITY i18n-plasma-active "<application>&plasma; Active</application>">
<!ENTITY i18n-Meta "<keysym>Meta</keysym>">
<!--/end temporary translatable entities-->
<!ENTITY ui-chapter SYSTEM "ui.docbook">
<!ENTITY tasks-chapter SYSTEM "tasks.docbook">
<!ENTITY config-chapter SYSTEM "config.docbook">
<!ENTITY install-chapter SYSTEM "install.docbook">
<!ENTITY % English "INCLUDE"><!-- change language only here -->
]>
<book id="fundamentals" lang="&language;">
<title>&kde; Fundamentals</title>
<bookinfo>
<authorgroup>
<author>&TC.Hollingsworth; &TC.Hollingsworth.mail;</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<copyright>
<year>2011</year><year>2012</year><year>2013</year>
<holder>&TC.Hollingsworth;</holder>
</copyright>
<copyright>
<year>2011</year>
<holder>Alexey Subach</holder>
</copyright>
<copyright>
<year>2011</year>
<holder>Salma Sultana</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>
<date>2013-12-08</date>
<releaseinfo>&kde; 4.12</releaseinfo>
<abstract>
<para>This guide provides an introduction to the &kde-sc; and describes many
common tasks that can be performed in all &kde; applications.</para>
</abstract>
<keywordset>
<keyword>KDE</keyword>
<keyword>introduction</keyword>
<keyword>user interface</keyword>
<keyword>menus</keyword>
<keyword>files</keyword>
<keyword>open</keyword>
<keyword>save</keyword>
<keyword>spelling</keyword>
<keyword>spellcheck</keyword>
<keyword>find</keyword>
<keyword>replace</keyword>
<keyword>colors</keyword>
<keyword>configuration</keyword>
<keyword>customization</keyword>
<keyword>toolbars</keyword>
<keyword>installation</keyword>
<keyword>compiling</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction">
<title>Introduction</title>
<para>Welcome to &kde;!</para>
<para>This guide will introduce you to the many features of the &kde-sc; and
describe many common tasks you can perform in all &kde; applications.</para>
<para>For more information on &kde;, visit the
<ulink url="http://www.kde.org/">KDE website</ulink>.</para>
</chapter>
&install-chapter;
&ui-chapter;
&tasks-chapter;
&config-chapter;
<chapter id="credits">
<title>Credits and License</title>
<para>The original idea for this guide was proposed by Chusslove Illich and
brought to fruition with input from &Burkhard.Lueck;, Yuri Chornoivan, and
&TC.Hollingsworth;</para>
<para>Much of it was written by participants of
<ulink url="http://code.google.com/opensource/gci/2011-12/index.html">Google
Code-In 2011</ulink>. Thanks to Google for sponsoring their excellent work!</para>
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
&underFDL; <!-- FDL: do not remove -->
&underGPL; <!-- GPL License -->
</chapter>
&documentation.index;
</book>
<!-- Comments, ideas, policy etc
Use default appearance + settings of kde compiled from sources
Style issues:
Task oriented
Avoid variablelist for obvious terms like e. g. Left/Right
FIXME missing stuff:
add a11y docbooks from koffice 1.6?
-->
<!--
Local Variables:
mode: sgml
sgml-namecase-general: t
sgml-namecase-entity: nil
sgml-general-insert-case: lower
sgml-minimize-attributes: nil
sgml-omittag: nil
End:
-->

View file

@ -0,0 +1,127 @@
<chapter id="install">
<title>Installing the &kde-sc;</title>
<para>You can install the &kde-sc; on a variety of different platforms, ranging from
smartphones and tablets to computers running &Microsoft; &Windows;, &MacOS;,
&UNIX;, &BSD; or &Linux;. Binary packages are available for many different
platforms and distributions, or advanced users may build the source code.</para>
<sect1 id="install-packages">
<title>Installing Packages</title>
<para>Hundreds of developers worldwide have done a lot of work to make it easy
to install &kde; on a variety of different devices and platforms.</para>
<sect2 id="install-linux">
<title>&Linux;</title>
<para>Nearly every &Linux; distribution provides binary packages for individual
&kde-sc; applications and the &plasma-workspaces; as a whole.</para>
<para>To install an individual application, look for its name in your
distribution's package collection. To install one of the &plasma-workspaces;,
like &plasma-desktop;, look for a metapackage or package
group, typically <literal>kde-desktop</literal>.</para>
<note>
<para>Some core applications may be installed together with other core
applications in a combined package named after the &kde; package they are
provided in. For instance, &dolphin; might be found in the
<literal>kde-baseapps</literal> package.</para>
</note>
<para>If you have trouble locating &kde; packages for your distribution, please
contact their support resources. Many distributions also have a team dedicated
to packaging &kde; that can provide assistance specific to &kde;</para>
<!--FIXME: provide steps for common distributions?-->
</sect2>
<sect2 id="install-windows">
<title>&Microsoft; &Windows;</title>
<para>The &kde; on Windows Initiative provides binary packages of &kde-sc;
applications for &Microsoft; &Windows;. They also provide a special installer
application that permits you to install individual applications or groups and
all necessary dependencies easily.</para>
<para>For more information on the initiative and to download the installer,
visit <ulink url="http://windows.kde.org/">the KDE on Windows Initiative</ulink>.
</para>
<!--FIXME: describe how to use the installer?-->
</sect2>
<sect2 id="install-mac">
<title>&MacOS;</title>
<para>Individual &kde-sc; applications can be installed through several
different <quote>ports</quote> systems available for &MacOS;. Several different
&kde; applications also provide their own binary builds for &MacOS;.</para>
<para>For more information, visit
<ulink url="http://mac.kde.org/">&kde; on &MacOS;X</ulink>.</para>
</sect2>
<sect2 id="install-bsd">
<title>&BSD;</title>
<para>Most &BSD; distributions allows you to install &kde-sc; applications
and the &plasma-workspaces; as a whole through their <quote>ports</quote>
system.</para>
<para>For more information on installing ports, see your &BSD; distribution's
documentation.</para>
<!--FIXME: provide steps/links for common BSDs?-->
</sect2>
<sect2 id="install-mobile">
<title>Mobile Devices</title>
<para>&plasma-active; is an exciting initiative to bring a new &kde;
experience to mobile devices like smartphones or tablets. Binary releases are
provided for several different devices.</para>
<para>For more information, visit
<ulink url="http://plasma-active.org/">&plasma-active;</ulink>.</para>
</sect2>
<sect2 id="install-live">
<title>Live Media</title>
<para>Several &Linux; and &BSD; distributions offer live media. This permits you
to try out the &plasma-workspaces; without installing anything to your system.
All you have to do insert a CD or connect a USB drive and boot from it. If you
like what you see, most offer an option to install it to your hard drive.</para>
<para>There is <ulink url="http://www.kde.org/download/distributions.php">a list
of distributions that offer the &kde-sc; on live media</ulink> on the &kde; website.</para>
</sect2>
<sect2 id="install-source">
<title>Building from Source Code</title>
<para>For detailed information on how to compile and install &kde;
applications see
<ulink url="http://techbase.kde.org/Getting_Started#Building_and_Running_KDE_Software_From_Source">
Building and Running &kde; Software From Source on &kde; TechBase</ulink>.</para>
<para>Since &kde; software uses <command>cmake</command> you should
have no trouble compiling it. Should you run into problems please report them to the
&kde; mailing lists.</para>
</sect2>
<!--Fixme more info:
Where to get sources (git split)
where to get help building from souces
kdesrc-build
-->
</sect1>
</chapter>

BIN
doc/fundamentals/menus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

1983
doc/fundamentals/ui.docbook Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View file

@ -0,0 +1,2 @@
########### install files ###############
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR khelpcenter/glossary)

10
doc/glossary/checkxrefs Executable file
View file

@ -0,0 +1,10 @@
#!/bin/sh
DEFINED_ENTRIES=`sed -ne "s^.*<glossentry id=\"\(.*\)\">.*^\1^p" *.docbook`
REFERENCED_ENTRIES=`sed -ne "s^.*<glossseealso otherterm=\"\(.*\)\">.*^\1^p" *.docbook | uniq`
# Check for entries which are referenced but not defined.
for ENTRY in $REFERENCED_ENTRIES; do
if ! echo $DEFINED_ENTRIES | grep $ENTRY - > /dev/null 2>&1; then
echo "'$ENTRY' referenced but not defined!"
fi
done

611
doc/glossary/index.docbook Normal file
View file

@ -0,0 +1,611 @@
<?xml version="1.0" ?>
<!DOCTYPE glossary PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
<!ENTITY glossary-kdeprinting SYSTEM "kdeprintingglossary.docbook">
<!ENTITY newpara "&lt;/p&gt;&lt;p&gt;">
<!ENTITY linkstart "&lt;a href=">
<!ENTITY linkmid ' target="_top"&gt;'>
<!ENTITY linkend "&lt;/a&gt;">
<!ENTITY emstart '&lt;span class="emphasis"&gt;&lt;em&gt;' >
<!ENTITY emend '&lt;/em&gt;&lt;/span&gt;'>
<!-- acronym, systemitem unchanged
itemizedlist+listitem changed to simple para -->
]>
<glossary lang="&language;" id="glossary">
<glossdiv id="glossdiv-technologies">
<title>Technologies</title>
<glossentry id="gloss-akonadi">
<glossterm>Akonadi</glossterm>
<glossdef><para>The data storage access mechanism for all PIM (Personal Information Manager) data in &kde; SC 4. One single
storage and retrieval system allows efficiency and extensibility not possible under &kde; 3, where each PIM component had
its own system. Note that use of Akonadi does not change data storage formats (vcard, iCalendar, mbox, maildir etc.) - it
just provides a new way of accessing and updating the data.&newpara;
The main reasons for design and development of Akonadi are of technical nature, &eg; having a unique way to access PIM-data (contacts, calendars, emails..) from different applications (&eg; &kmail;, &kword; &etc;), thus eliminating the need to write similar code here and there.&newpara;
Another goal is to de-couple GUI applications like &kmail; from the direct access to external resources like mail-servers - which was a major reason for bug-reports/wishes with regard to performance/responsiveness in the past.&newpara;
More info:&newpara;
&linkstart;"http://pim.kde.org/akonadi/"&linkmid;Akonadi for KDE's PIM&linkend;&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Akonadi"&linkmid;Wikipedia: Akonadi&linkend;&newpara;
&linkstart;"http://techbase.kde.org/Projects/PIM/Akonadi"&linkmid;Techbase - Akonadi&linkend;</para>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-arts">
<glossterm>ARts</glossterm>
<glossdef><para>The sound framework in &kde; 2 and 3. Its single-tasking nature caused problems when two sources of sound were encountered. In the &plasma; desktop it is replaced by Phonon.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/ARts"&linkmid; Wikipedia: ARts&linkend;&newpara;
&linkstart;"http://www.arts-project.org"&linkmid;ARts home page&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-phonon">Phonon</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-dbus">
<glossterm>D-Bus</glossterm>
<glossdef><para>D-Bus or Desktop Bus is an inter-service messaging system. Developed by &RedHat;, it was heavily influenced by &kde; 3 DCOP, which it supersedes. Most POSIX operating systems support D-Bus, and a port for Windows exists. It is used by Qt 4 and GNOME.&newpara;
More info:&newpara;
&linkstart;"http://freedesktop.org/wiki/Software/dbus/"&linkmid;FreeDesktop.org: What is D-Bus?&linkend;&newpara;
&linkstart;"http://en.wikipedia.org/wiki/D-Bus"&linkmid;Wikipedia: D-Bus&linkend;</para>
<glossseealso otherterm="gloss-dcop">&DCOP;</glossseealso>
<glossseealso otherterm="gloss-gnome">GNOME</glossseealso>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-qt">&Qt;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-dcop">
<glossterm>DCOP</glossterm>
<glossdef><para><acronym>DCOP</acronym>, which stands for Desktop COmmunication Protocol, is a light-weight interprocess and software componentry communication system used in &kde; 3. Replaced with &DBus; in &kde; SC 4.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/DCOP"&linkmid;Wikipedia: DCOP&linkend;</para>
<glossseealso otherterm="gloss-dbus">D-Bus</glossseealso>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-flake">
<glossterm>Flake</glossterm>
<glossdef><para>Flake is a programming library to be used in &koffice;/Calligra. Functionally, it provides Shapes to display content and Tools to manipulate content. Shapes can be zoomed or rotated and can be grouped to work as a single Shape, around which text flow is possible.&newpara;
More info:&newpara;
&linkstart;"http://community.kde.org/Calligra/Libs/Flake"&linkmid;&kde; Community Wiki: Flake&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kparts">KParts</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ghns">
<glossterm>Get Hot New Stuff</glossterm>
<glossdef><para>&emstart;G&emend;et &emstart;H&emend;ot &emstart;N&emend;ew &emstart;S&emend;tuff (GHNS) is an open standard that makes it easy for users to download and install various extensions for their applications. Our implementation of GHNS is used by &plasma; (for example to get new desktop themes), and by many applications and widgets.&newpara;
More info:&newpara;
&linkstart;"http://ghns.freedesktop.org"&linkmid;Home of GHNS&linkend;&newpara;
&linkstart;"http://lwn.net/Articles/227855/"&linkmid;An article on GHNS in &kde; SC 4&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ghnsaccr">
<glossterm>GHNS</glossterm>
<glossdef><para><acronym>GHNS</acronym> is the acronym of Get Hot New Stuff.</para>
<glossseealso otherterm="gloss-ghns">Get Hot New Stuff</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ioslave">
<glossterm><acronym>IO</acronym> Slave</glossterm>
<glossdef><para><acronym>IO</acronym> Slaves enable &kde; applications to
access remote resources as easily as local resources (making them
"network transparent"). Remote resources (&eg; files) might
be stored on <acronym>SMB</acronym> shares or similar.</para>
<glossseealso otherterm="gloss-smb"><acronym>SMB</acronym></glossseealso>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-khtml">
<glossterm>KHTML</glossterm>
<glossdef><para>KHTML is the &HTML; rendering engine for the &kde; &plasma; desktop, as used by the &konqueror; browser. It also provides a KPart that enables all &kde; applications to display web content. A new introduction, &Qt; WebKit is also for Plasma and other application development.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-konqueror">&konqueror;</glossseealso>
<glossseealso otherterm="gloss-kparts">KParts</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
<glossseealso otherterm="gloss-webkit">WebKit</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kio">
<glossterm><acronym>KIO</acronym></glossterm>
<glossdef><para>The &kde; Input/Output system which makes use of so-called
"<acronym>IO</acronym> Slaves".</para>
<glossseealso otherterm="gloss-ioslave"><acronym>IO</acronym>
Slave</glossseealso>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kiosk">
<glossterm>Kiosk</glossterm>
<glossdef><para>Kiosk is a framework for restricting user capabilities on a &kde; platform system, ideal for use in locked-down environments such as Internet cafés. It is present in &kde; 3 and &kde; 4, but the administration tool, <application>Kiosktool</application> is &kde; 3 only. It can be used to configure &kde; 4 applications, or kiosk configurations can be maintained by editing config files manually.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kparts">
<glossterm>KParts</glossterm>
<glossdef><para>KParts is an embedding technology which allows &kde;
applications to embed other &kde; applications. For example, the text
view used by &konqueror; is a KPart.</para>
<glossseealso otherterm="gloss-konqueror">&konqueror;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ksycoca">
<glossterm><acronym>KSycoca</acronym></glossterm>
<glossdef><para><acronym>KSycoca</acronym> (&kde; &emstart;Sy&emend;stem
&emstart;Co&emend;nfiguration &emstart;Ca&emend;che) is a
configuration cache which, for example, guarantees fast access to the menu
entries.</para>
<glossseealso
otherterm="gloss-kbuildsycoca"><application>KBuildSycoca</application></glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-phonon">
<glossterm>Phonon</glossterm>
<glossdef><para>A cross-platform multimedia API, interfacing with existing frameworks, such as gstreamer and xine engines. &kde; 2 and 3 depended on aRts for sound. Phonon replaces it.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Phonon_(KDE)"&linkmid; Wikipedia: Phonon (KDE)&linkend;&newpara;
&linkstart;"http://phonon.kde.org"&linkmid;Phonon website&linkend;</para>
<glossseealso otherterm="gloss-arts">&arts;</glossseealso>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-solid">
<glossterm>Solid</glossterm>
<glossdef><para>Solid provides a single API for hardware management. Hardware is grouped into 'domains'. Since the backends for Solid are pluggable, Solid helps application developers write less code, and have it platform independent.&newpara;
More info:&newpara;
&linkstart;"http://solid.kde.org"&linkmid;Discover Solid&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-threadweaver">
<glossterm>Threadweaver</glossterm>
<glossdef><para>This thread programming library spreads work among multiple-core processors where available, prioritizing them before queuing them for execution. ThreadWeaver provides a high-level job interface for multithreaded programming.&newpara;
More info:&newpara;
&linkstart;"http://www.englishbreakfastnetwork.org/apidocs/apidox-kde-4.0/kdelibs-apidocs/threadweaver/html/Why.html"&linkmid;Why Multithreading?&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-webkit">
<glossterm>WebKit</glossterm>
<glossdef><para>HTML rendering engine, originating from a fork of KHTML. Adopted by <trademark>Apple</trademark> and developed for <trademark>Safari</trademark>. Webkit brings the whole functionality back to &kde; SC 4, where it is available through &Qt;.&newpara;
More info:&newpara;
&linkstart;"http://webkit.org/"&linkmid;WebKit home page&linkend;&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Webkit"&linkmid;Wikipedia: WebKit&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kde">KHTML</glossseealso>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="glossdiv-xorg">
<title>X.Org</title>
<glossentry id="gloss-antialiasing">
<glossterm>Antialiasing</glossterm>
<glossdef><para>If mentioned in context with &kde;, anti-aliasing often means
the smoothing of the fonts visible on the screen. &Qt; version 3.3
or higher used together with X.Org server makes this possible under &kde;
as well.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-qt">&Qt;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-xserver">
<glossterm>&X-Server;</glossterm>
<glossdef><para>The &X-Server; represents a basic layer upon which the
various &GUI;s like &kde; are built. It manages the
basic mouse and keyboard input (from the local host as well as from
remote hosts) and provides elementary graphic routines to draw
rectangles and other primitives.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="glossdiv-applications">
<title>Applications</title>
<glossentry id="gloss-dolphin">
<glossterm>Dolphin</glossterm>
<glossdef><para>The default file manager in &kde; SC 4. It has a side panel (Places), but navigation is mainly by the 'breadcrumb' trail above the main window. Split windows are possible, and views can be applied to individual windows. Mounting and unmounting <acronym>USB</acronym> devices can be done in the side panel. Other directories can be added to the Places panel. A Tree view is also possible.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Dolphin_(software)"&linkmid;Wikipedia: Dolphin&linkend;&newpara;
&linkstart;"http://introducingkde4.blogspot.com/2007/12/dolphin.html"&linkmid;Introducing KDE 4 Blog - Dolphin&linkend;&newpara;
&linkstart;"http://userbase.kde.org/Tutorials/File_Management"&linkmid;Userbase: File Management Tutorial&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-konqueror">&konqueror;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kbuildsycoca">
<glossterm><application>KBuildSycoca</application></glossterm>
<glossdef><para><application>KBuildSycoca4</application> is a command line
program and regenerates the
so-called <acronym>KSycoca</acronym>. This is useful, for example, if some
or all modules in
&systemsettings; are missing.</para>
<glossseealso otherterm="gloss-ksycoca"><acronym>KSycoca</acronym></glossseealso>
<glossseealso otherterm="gloss-systemsettings">&systemsettings;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kinfocenter">
<glossterm>KInfoCenter</glossterm>
<glossdef><para>Kinfocenter originated as part of Kcontrol standing alone from KDE 3.1. In KDE SC 4 it is replaced by modules configured in System Settings, notably Solid, and is being reintroduced as an application in &kde; SC 4.5.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Kinfocenter"&linkmid;Wikipedia: KInfoCenter&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-solid">Solid</glossseealso>
<glossseealso otherterm="gloss-systemsettings">&systemsettings;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-konqueror">
<glossterm>&konqueror;</glossterm>
<glossdef><para>&konqueror; is a web browser, picture viewer, file manager
and more, and a core part of the &kde; project. You can
find more information about &konqueror; at &linkstart;"http://www.konqueror.org"&linkmid;www.konqueror.org&linkend;.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-krunner">
<glossterm>KRunner</glossterm>
<glossdef><para>The mini-command-line that is accessed from the Classic menu, the keyboard shortcut &Alt;+<keycap>F2</keycap>, or a right-click on the desktop. In &kde; SC 4 a partial name will display all possible matches.&newpara;
More info:&newpara;
&linkstart;"http://userbase.kde.org/Tutorials/Krunner"&linkmid;UserBase: KRunner Usage&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kwin">
<glossterm>KWin</glossterm>
<glossdef><para>KWin is the window manager. This is where window decorations can be changed and themes applied. &kde; SC 4 extends KWin to provide support for 3D Compositing effects on the desktop.&newpara;
More info:&newpara;
&linkstart;"http://userbase.kde.org/KWin"&linkmid;UserBase: KWin&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-xserver">&X-Server;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-minicli">
<glossterm>Mini-CLI</glossterm>
<glossdef><para>Mini &emstart;C&emend;ommand &emstart;L&emend;ine &emstart;I&emend;nterface. Synonym to KRunner.</para>
<glossseealso otherterm="gloss-krunner">KRunner</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-pager">
<glossterm>Pager</glossterm>
<glossdef><para>A pager is a small program or panel applet which shows the position of windows on your desktop and usually if you have several Virtual Desktops gives an overview over all.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kickoff">Kickoff</glossseealso>
<glossseealso otherterm="gloss-kicker">Kicker</glossseealso>
<glossseealso otherterm="gloss-panel">Panel</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
<glossseealso otherterm="gloss-virtualdesktops">Virtual Desktops</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-systemsettings">
<glossterm>&systemsettings;</glossterm>
<glossdef><para>This is the project and filename of the &kde; control
center. &systemsettings; allows you to customize virtually
every configuration option of &kde;.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kinfocenter">KInfoCenter</glossseealso>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="glossdiv-desktop-terminology">
<title>Desktop Terminology</title>
<glossentry id="gloss-activities">
<glossterm>Activities</glossterm>
<glossdef><para>Activities are sets of &plasma; widgets that have their own wallpaper&newpara;
A bit like Virtual Desktops, but not quite. For example you have a "work activity" with commit rss feeds, a note with your TODO, a Folder View with your work related files, and a subtle wallpaper.&newpara;
Next to it, you have your freetime activity, with previews of family photos and dogs, rss feeds from your favorite blogs, a Folder View showing your movie collection, a twitter applet and of course that Iron Maiden wallpaper you have been loving since the early 80s.&newpara;
At 17:00 hours sharp you switch from the work activity to your freetime activity.&newpara;
More info:&newpara;
&linkstart;"http://userbase.kde.org/Plasma"&linkmid;Plasma FAQ&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-virtualdesktops">Virtual Desktops</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-containment">
<glossterm>Containment</glossterm>
<glossdef><para>A Containment is a top level grouping of widgets. Each Containment manages the layout and configuration data of its set of widgets independently from other Containments.&newpara;
The end result is that you can group widgets within a Containment according to the significance to your working pattern, rather than by directory grouping.&newpara;
More info:&newpara;
&linkstart;"http://userbase.kde.org/Plasma"&linkmid;Plasma FAQ&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-widget">Widget</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-draganddrop">
<glossterm>Drag and Drop</glossterm>
<glossdef><para>This concept tries to replace many actions like copying
files from one place to another by a certain mouse movement, &eg;
clicking on an icon in a &konqueror; window, moving the mouse to another
window while keeping the mouse button pressed, and releasing the mouse
button ("dropping" the object) copies files.</para>
<glossseealso otherterm="gloss-konqueror">&konqueror;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-extender">
<glossterm>Extender</glossterm>
<glossdef><para>Extenders are a special kind of popup that can grow out of a &plasma; panel for example. Extenders have detachable parts. Extenders are a new concept that arrived in &plasma; for &kde; 4.2. The Kuiserver (the interface that collects all long running jobs and puts them into one window) will make use of extenders so you can detach various jobs and monitor their progress separately.&newpara;
More info:&newpara;
&linkstart;"http://userbase.kde.org/Plasma"&linkmid;Plasma FAQ&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-gnome">
<glossterm><acronym>GNOME</acronym></glossterm>
<glossdef>
<para>&emstart;G&emend;NU &emstart;N&emend;etwork &emstart;O&emend;bject
&emstart;M&emend;odel &emstart;E&emend;nvironment, one of the
leading &UNIX; &GUI;s.</para>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-gui">
<glossterm>&GUI;</glossterm>
<glossdef><para>Abbreviation for &emstart;G&emend;raphical
&emstart;U&emend;ser &emstart;I&emend;nterface. Every desktop
environment (like &kde;) is a &GUI;. Most
&GUI;s feature mouse support and/or windows to manage
the programs.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-homedirectory">
<glossterm>Home Directory</glossterm>
<glossdef><para>That's the place in system, where all your files are kept. You can write your files outside of this folder, but all applications are configured to propose this folder as place to write your files to. And this is easier, when you are keeping your things here.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Home_directory"&linkmid;Wikipedia: Home Directory&linkend;</para>
<glossseealso otherterm="gloss-dolphin">&dolphin;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kde">
<glossterm>&kde;</glossterm>
<glossdef><para>Abbreviation for "K Desktop Environment", a
leading &GUI; for &UNIX;-based systems. You can find more
detailed information at &linkstart;
"http://www.kde.org"&linkmid;www.kde.org&linkend;.&newpara;
&kde; is more than just software. It is a community made up of programmers, translators, contributors, artists, writers, distributors, and users from all over the world. Our international technology team is committed to creating the best free software for the desktop. And not only contributors, but users and fans of &kde; software can be found throughout the entire globe, giving help to other users, spreading the news, or just simply enjoying the experience.</para>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kicker">
<glossterm><acronym>&kicker;</acronym></glossterm>
<glossdef>
<para>In &kde; 3, the relocatable bar, usually at the bottom of the screen (sometimes called the Panel), on which application launchers, the Pager, and buttons for running applications reside.</para>
<glossseealso otherterm="gloss-panel">Panel</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kickoff">
<glossterm><acronym>&kickoff;</acronym></glossterm>
<glossdef>
<para>In &kde; SC 4 (and some late versions of &kde; 3), a launch menu in which apps are sorted by functional group. 'Favorites' replaces the 'Most used applications' in Classic Menu, and applications can be added to it. Right-click also offers the possibility of adding applications to the desktop or panel. Rapid access to a less-used application can be by the search box. Other menus are being worked on, since &kde; SC 4 can be used with more than one launcher, should that be required.&newpara;
More info:&newpara;
&linkstart;"http://home.kde.org/~binner/kickoff/sneak_preview.html"&linkmid;Kickoff Sneak Preview&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-pager">Pager</glossseealso>
<glossseealso otherterm="gloss-panel">Panel</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-oxygen">
<glossterm><acronym>Oxygen</acronym></glossterm>
<glossdef>
<para>Oxygen is the default theme of &kde; SC 4. Designed to bring 'a breath of fresh air' to the desktop by removing the simplistic, cartoonish icons, and replacing them with a clean theme and photo-realistic icons. Oxygen uses a desaturated palette to avoid the icons becoming a distraction and uses detailed scalable graphics (SVG).&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Oxygen_Project"&linkmid;Wikipedia: Oxygen Project&linkend;&newpara;
&linkstart;"http://www.oxygen-icons.org/?cat=3"&linkmid;Oxygen Icons&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-ksvg">KSVG</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-panel">
<glossterm>Panel</glossterm>
<glossdef><para>Refers to the panel which often resides at the bottom of the
screen.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kicker">&kicker;</glossseealso>
<glossseealso otherterm="gloss-kickoff">&kickoff;</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-plasma">
<glossterm>Plasma</glossterm>
<glossdef><para>In &kde; SC 4 the &plasma; Desktop replaces KDesktop, &kicker; and the SuperKaramba widget engine. The applets are called Plasmoids, and range from informational widgets to mini-apps such as a calculator or dictionary. Widgets from other sources, such as SuperKaramba widgets or <trademark>Google</trademark> Gadgets are also supported.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Plasma_(KDE)"&linkmid;Wikipedia: Plasma&linkend;&newpara;
&linkstart;"http://plasma.kde.org/cms/1107/"&linkmid;Plasma website&linkend;&newpara;
&linkstart;"http://userbase.kde.org/Plasma"&linkmid;Plasma FAQ&linkend;&newpara;
&linkstart;"http://userbase.kde.org/Tutorials/TweakingPlasma"&linkmid;Tweaking Plasma&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kicker">&kicker;</glossseealso>
<glossseealso otherterm="gloss-widget">Widget</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ripping">
<glossterm>Ripping</glossterm>
<glossdef><para>The process of reading audio data from a &cdrom; and
storing it on the hard disk.</para>
</glossdef>
</glossentry>
<glossentry id="gloss-virtualdesktops">
<glossterm>Virtual Desktops</glossterm>
<glossdef><para>A popular concept of &UNIX; based window managers is the one of virtual desktops. This means you have not only one screen where you can place your windows on but several. When you switch to a different desktop (usually with a pager) you will only see the windows which you started on your new desktop or moved to it. A window can also be made "sticky" which means it appears on all virtual desktops.&newpara;
More info:&newpara;
&linkstart;"http://userbase.kde.org/Plasma"&linkmid;Plasma FAQ&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kickoff">&kickoff;</glossseealso>
<glossseealso otherterm="gloss-pager">Pager</glossseealso>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="kde-development">
<title>&kde; Development</title>
<glossentry id="gloss-qt">
<glossterm>&Qt;</glossterm>
<glossdef><para>The &GUI; of &kde; is built on top of
the &Qt; toolkit, which provides many graphical elements (so-called
"Widgets") which are used to construct the desktop. You
can find more information about &Qt; at &linkstart;
"http://qt-project.org/"&linkmid;http://qt-project.org/&linkend;.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
<glossseealso otherterm="gloss-widget">Widget</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-git">
<glossterm>Git</glossterm>
<glossdef><para>Git is a free and open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&newpara;
Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.&newpara;
Git is used for version control of files, much like tools such as Mercurial, Bazaar, Subversion, CVS, Perforce, and Visual SourceSafe.&newpara;
It was decided that Git will be the main version control system of &kde;, replacement of SVN. It has been already used for some &kde; projects like Konversation and Amarok.&newpara;
More info:&newpara;
&linkstart;"http://git-scm.com/"&linkmid;Git Homepage&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-svn">SVN</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-i18n">
<glossterm>i18n</glossterm>
<glossdef><para>Abbreviation for "internationalization". &kde;
supports many different languages, and several i18n techniques make it
easy to translate the &GUI; as well as the accompanying
documents of &kde; into all these languages. More information about the
i18n process is available at &linkstart;
"http://l10n.kde.org"&linkmid;l10n.kde.org&linkend;.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kross">
<glossterm>Kross</glossterm>
<glossdef><para>Kross is a scripting framework, enabling support for multiple scripting languages. A plugin system allows for the support of further languages in the future.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kdom">
<glossterm>KDOM</glossterm>
<glossdef><para>A KPart module making KHTML <acronym>DOM</acronym> (&emstart;D&emend;ocument &emstart;O&emend;bject &emstart;M&emend;odel) rendering capabilities available to all applications. KSVG2 is built on KDOM for &kde; SC 4.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-khtml">KHTML</glossseealso>
<glossseealso otherterm="gloss-kparts">KParts</glossseealso>
<glossseealso otherterm="gloss-khtml">KSVG</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-kjs">
<glossterm>KJS</glossterm>
<glossdef><para>&kde; platform's JavaScript engine.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-kparts">KParts</glossseealso>
<glossseealso otherterm="gloss-plasma">&plasma;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ksvg">
<glossterm>KSVG</glossterm>
<glossdef><para>KSVG enables support for scalable vector graphics in a KHTML browser. KSVG2 extends this for &kde; SC 4.</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-khtml">KHTML</glossseealso>
<glossseealso otherterm="gloss-kparts">KParts</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-l10n">
<glossterm>l10n</glossterm>
<glossdef><para>Abbreviation for "localization", the process
of adapting a program to the local environment. This includes &eg; the
currency used for monetary values or the time format.</para>
<glossseealso otherterm="gloss-i18n">i18n</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-strigi">
<glossterm>Strigi</glossterm>
<glossdef><para>A deep-indexed search daemon, Strigi aims to be fast and light-weight. It also uses SHA-1 hash which will help in the identification of duplicate files.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Strigi"&linkmid;Wikipedia: Strigi&linkend;</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-widget">
<glossterm>Widget</glossterm>
<glossdef><para>Graphical elements like scrollbars, buttons or input
fields which are used by &kde; to construct the &GUI;.
</para>
<glossseealso otherterm="gloss-kde">&kde;</glossseealso>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-svn">
<glossterm><acronym>SVN</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;Subversion&emend;, a version control system. The <acronym>SVN</acronym> is a very elegant way of managing file versions that allow more than one developer to easily work on the same project. You can find a description of how to get the latest (developer) version of the &kde; sources via anonymous <acronym>SVN</acronym> on &linkstart;"http://developer.kde.org/source/anonsvn.html"&linkmid;http://developer.kde.org/source/anonsvn.html&linkend;.&newpara; More about <acronym>SVN</acronym> is available at &linkstart;"http://subversion.tigris.org/"&linkmid;http://subversion.tigris.org/&linkend;.</para>
<glossseealso otherterm="gloss-git">Git</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-xmlgui">
<glossterm>XMLGUI</glossterm>
<glossdef><para>A programmers' framework for designing the user interface. It is extensively used by KParts.&newpara;
More info:&newpara;
&linkstart;"http://en.wikipedia.org/wiki/XMLGUI"&linkmid;Wikipedia: XMLGUI&linkend;&newpara;
&linkstart;"http://en.wikipedia.org/wiki/Qt_Style_Sheets"&linkmid;Wikipedia: Qt Style Sheets&linkend;</para>
<glossseealso otherterm="gloss-gui">&GUI;</glossseealso>
<glossseealso otherterm="gloss-kparts">Kparts</glossseealso>
<glossseealso otherterm="gloss-qt">&Qt;</glossseealso>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="glossdiv-misc">
<title>Miscellaneous</title>
<glossentry id="gloss-rfc">
<glossterm><acronym>RFC</acronym></glossterm>
<glossdef><para>&emstart;R&emend;equest &emstart;F&emend;or
&emstart;C&emend;omment. A common way to publish new protocol
ideas or procedures for evaluation of the Internet community. Though
<acronym>RFC</acronym>s are not mandatory, many applications try to
adhere to them, once they have been approved by the community.&newpara;
More information about <acronym>RFC</acronym>s can be found at the
&linkstart;"http://www.rfc-editor.org"&linkmid;RFC Homepage&linkend;.</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id="glossdiv-protocols">
<title>Various protocols</title>
<glossentry id="gloss-smb">
<glossterm><acronym>SMB</acronym></glossterm>
<glossdef><para>&emstart;S&emend;erver &emstart;M&emend;essage
&emstart;B&emend;lock. A network protocol used in &Microsoft; &Windows;
networks to access the file systems of other computers.</para>
<glossseealso otherterm="gloss-ioslave"><acronym>IO</acronym> Slave</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-irc">
<glossterm><acronym>IRC</acronym></glossterm>
<glossdef><para>&emstart;I&emend;nternet &emstart;R&emend;elay
&emstart;C&emend;hat. A protocol defined in <acronym>RFC</acronym>
1459, which handles the specification to enable real-time text chat.</para>
<glossseealso otherterm="gloss-rfc"><acronym>RFC</acronym></glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-host">
<glossterm>Host</glossterm>
<glossdef><para>This can either be a name from your
<filename>/etc/hosts</filename> file
(<systemitem class="systemname">mycomputer</systemitem>),
an Internet name (<systemitem class="systemname">www.kde.org</systemitem>) or an IP-Address
(<systemitem>192.168.0.10</systemitem>).
</para>
</glossdef>
</glossentry>
</glossdiv>
&glossary-kdeprinting;
</glossary>

View file

@ -0,0 +1,941 @@
<!--
<?xml version="1.0" ?>
<!DOCTYPE glossary PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"customization/dtd/kdex.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE">
<!ENTITY glossary-kdeprinting SYSTEM "kdeprintingglossary.docbook">
]>
<glossary id="glossary">
-->
<glossdiv id="glossdiv-printing">
<title>Printing</title>
<glossentry id="gloss-acl">
<glossterm><acronym>ACLs</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;A&emend;ccess
&emstart;C&emend;ontrol &emstart;L&emend;ists;
ACLs are used to check for the access by a given
(authenticated) user. A first rough support for ACLs
for printing is available from &CUPS;; this will be refined
in future versions. </para>
<glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-appsocketprotocol">
<glossterm>AppSocket Protocol</glossterm>
<glossdef><para>AppSocket is a protocol for the transfer of
print data, also frequently called "Direct TCP/IP Printing".
&Hewlett-Packard; have taken AppSocket, added a few minor
extensions around it and been very successful in renaming
and marketing it under the brand "&HP; JetDirect"...</para>
<glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect Protocol</glossseealso>
<glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-apsfilter">
<glossterm>APSfilter</glossterm>
<glossdef><para>APSfilter is used mainly in the context of "classical"
&UNIX; printing (BSD-style LPD). It is a sophisticated shell script,
disguised as an "all-in-one" filtering program. In reality,
APSfilter calls "real filters" to do the jobs needed. It sends
printjobs automatically through these other filters, based on an
initial file-type analysis of the printfile.
It is written and maintained by Andreas Klemm.&newpara;
It is
similar to Magicfilter and mostly uses Ghostscript for file conversions.
Some Linux Distributions (like &SuSE;) use APSfilter, others
Magicfilter (like &RedHat;), some have both for preference selection
(like *BSD).&newpara;
&CUPS; has &emstart;no&emend; need for APSfilter,
as it runs its own file type recognition (based on &MIME; types)
and applies its own filtering logic.</para>
<glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
<glossseealso otherterm="gloss-magicfilter">Magicfilter</glossseealso>
<glossseealso otherterm="gloss-mimetypes">&MIME;-Types</glossseealso>
<glossseealso otherterm="gloss-printcap">printcap</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-authentication">
<glossterm>Authentication</glossterm>
<glossdef><para>Proving the identity of a certain person (maybe via username/password
or by means of a certificate) is often called authentication. Once you are
authenticated, you may or may not get access to a requested resource,
possibly based on ACLs.</para>
<glossseealso otherterm="gloss-acl">ACLs</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-bidirectionalcommunication">
<glossterm>Bi-directional communication</glossterm>
<glossdef><para>In the context of printing, a server or a host may receive additional
information sent back from the printer (status messages &etc;), either
upon a query or unrequested. AppSocket ( = &HP; JetDirect), &CUPS; and IPP
support bi-directional communication, LPR/LPD and BSD-style printing
do not...</para>
<glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
<glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect</glossseealso>
<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
<glossseealso otherterm="gloss-lprlpd">LPR/LPD</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-bsdstyleprinting">
<glossterm>BSD-style Printing</glossterm>
<glossdef><para>Generic term for different variants of the traditional &UNIX;
printing method. Its first version appeared in the early 70s on
BSD &UNIX; and was formally described in &linkstart;"http://www.rfc.net/rfc1179.html"&linkmid;RFC 1179&linkend; only as late
as 1990.&newpara;
At the time when BSD "remote" printing was first designed, printers
were serially or otherwise directly connected devices to a host
(with the Internet hardly consisting of more than 100 nodes!); printers
used hole-punched, continuous paper, fed through by a tractor
mechanism, with simple rows of ASCII text mechanically hammered on to
the medium, drawn from a cardboard box beneath the table. It came out
like a zig-zag folded paper "snake". Remote printing consisted of a
neighboring host in the next room sending a file
asking for printout.&newpara;
How technology has changed! Printers generally use cut-sheet media, they have
built-in intelligence to compute the raster images of pages after pages
that are sent to them using one of the powerful page description
languages (PDL). Many are network nodes in their own right,
with CPU, RAM, a hard disk and their own Operation System, and
are hooked to a net with potentially millions of users...&newpara;
It is a vast proof of the flexible &UNIX; concept for doing things,
that it made "Line Printing" reliably work even under these modern
conditions. But time has finally come now to go for something new
-- the IPP.
</para>
<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-lprlpd">LPR/LPD printing</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-cups">
<glossterm>&CUPS;</glossterm>
<glossdef><para>Abbreviation for &emstart;C&emend;ommon
&emstart;U&emend;NIX &emstart;P&emend;rinting
&emstart;S&emend;ystem; &CUPS; is the most modern &UNIX; and Linux
printing system, also providing cross-platform print services
to &Microsoft; &Windows; and Apple &MacOS; clients. Based on IPP, it does
away with all the pitfalls of old-style BSD printing,
providing authentication, encryption and ACLs, plus many more
features. At the same time it is backward-compatible enough
to serve all legacy clients that are not yet up to IPP, via
LPR/LPD (BSD-style).&newpara;
&CUPS; is able to control any &PostScript; printer by
utilizing the vendor-supplied PPD (PostScript Printer
Description file), targeted originally for &Microsoft; Windows NT
printing only. &kde; Printing is most powerful if based on
&CUPS;.&newpara;
More info:&newpara;
&linkstart;"http://www.cups.org"&linkmid;&CUPS; Homepage&linkend;</para>
<glossseealso otherterm="gloss-acl">ACLs</glossseealso>
<glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
<glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
<glossseealso otherterm="gloss-lprlpd">LPR/LPD</glossseealso>
<glossseealso otherterm="gloss-ppd">PPD</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-cupsfaq">
<glossterm><acronym>&CUPS;-FAQ</acronym></glossterm>
<glossdef><para>&linkstart;"http://www.cups.org/articles.php?L+TFAQ"&linkmid;&CUPS;-FAQ&linkend;
is a valuable resource to answer many questions that anyone new to
&CUPS; printing might have at first.
</para>
</glossdef>
</glossentry>
<glossentry id="gloss-daemon">
<glossterm><acronym>Daemon</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;D&emend;isk
&emstart;a&emend;nd &emstart;e&emend;xecution
&emstart;mon&emend;itor; <acronym>Daemons</acronym> are present
on all &UNIX; systems to perform tasks independent of user
intervention. Readers more familiar with &Microsoft; &Windows; might
want to compare daemons and the tasks they are responsible
with "services".&newpara;
One example of a daemon present on most
legacy &UNIX; systems is the LPD (Line Printer Daemon); &CUPS; is
widely seen as the successor to LPD in the &UNIX; world and
it also operates through a daemon. </para>
<glossseealso otherterm="gloss-spooling">SPOOLing</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-databaselinuxprinting">
<glossterm>Database, Linuxprinting.org</glossterm>
<glossdef><para>Already years ago, when Linux printing was still really difficult
(only command line printing was known to most Linux users, no device
specific print options were available for doing the jobs), Grant Taylor,
author of the "Linux Printing HOWTO", collected most of the available
information about printers, drivers and filters in his database.&newpara;
With the emerging
&CUPS; concept, extending the use of PPDs even to non-PostScript printers,
he realized the potential of this database: if one puts the different
datablobs (with content that could be described along the lines
"Which device prints with which Ghostscript or other
filter?", "How well?", and "What command line switches are available?") into
PPD-compatible files, he could have all the power of &CUPS; on top of
the traditional printer "drivers".&newpara;
This has now developed into a broader
concept, known as "Foomatic". Foomatic extends the capabilities
of spoolers other than &CUPS; (LPR/LPD, LPRng, PDQ, PPR) to a certain
degree ("stealing" some concepts from &CUPS;). The Linuxprinting
Database is not a Linux-only stop -- people running other &UNIX;
based OSes (like *BSD or &MacOS; X) will also find valuable information
and software there.
</para>
<glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
<glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting database</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-directtcpipprinting">
<glossterm>Direct TCP/IP Printing</glossterm>
<glossdef><para>This is a method that often uses TCP/IP port 9100 to connect
to the printer. It works with many modern network printers and has
a few advantages over LPR/LPD, as it is faster and provides some
"backchannel feedback data" from the printer to the host sending
the job.</para>
<glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
<glossseealso otherterm="gloss-hpjetdirectprotocol">&HP; JetDirect Protocol</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-drivers">
<glossterm>Drivers, Printer Drivers</glossterm>
<glossdef><para>The term "printer drivers", used in the same sense
as on the &Microsoft; &Windows; platform, is not entirely applicable
to a Linux or &UNIX; platform. A "driver" functionality
is supplied on &UNIX; by different modular components working
together. At the core of the printer drivers are "filters". Filters convert
print files from a given input format to another format that is acceptable
to the target printer. In many cases filters may be connected to a whole
filter "chain", where only the result of the last conversion is sent to the
printer. The actual transfer of the print data to the device is performed by
a "backend".
</para>
<glossseealso otherterm="gloss-filter">Filter</glossseealso>
<glossseealso otherterm="gloss-ppd">PPDs</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-easysoftwareproducts">
<glossterm>Easy Software Products</glossterm>
<glossdef><para>Mike Sweet's company, which has contributed a few substantial
software products towards the Free Software community; amongst
them the initial version of &linkstart;
"http://gimp-print.sf.net/"&linkmid;Gimp-Print,&linkend; the &linkstart;
"http://www.easysw.com/epm/"&linkmid;EPM software packaging&linkend; tool
and &linkstart;"http://www.easysw.com/htmldoc/"&linkmid;HTMLDOC&linkend;
(used by the "Linux Documentation Project" to build the PDF versions
of the HOWTOs) -- but most importantly: &linkstart;
"http://www.cups.org/"&linkmid;&CUPS;&linkend; (the 'Common &UNIX; Printing
System').&newpara;
ESP financed themselves by selling a commercial version
of &CUPS;, called ESP PrintPro,
that includes some professional enhancements.
ESP Print Pro was purchased by Apple Inc. in February of 2007. ESP Print Pro software and support are no longer available from Easy Software Products. ESP Print Pro users were given non-expiring, floating licenses which may be accessed from the MyESP pages.
</para>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-esp">ESP</glossseealso>
<glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-encryption">
<glossterm>Encryption</glossterm>
<glossdef><para>Encryption of confidential data is an all-important issue if
you transfer it over the Internet or even within intranets.&newpara;
Printing
via traditional protocols is not encrypted at all -- it is very easy
to tap and eavesdrop &eg; into &PostScript; or PCL data transferred
over the wire.&newpara;
Therefore, in the design of IPP, provision was made for the easy
plugin of encryption mechanisms (which can be provided by the same
means as the encryption standards for HTTP traffic: SSL and TLS).</para>
<glossseealso otherterm="gloss-authentication">Authentication</glossseealso>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
<glossseealso otherterm="gloss-ssl">SSL</glossseealso>
<glossseealso otherterm="gloss-tls">TLS</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-epson">
<glossterm><acronym>Epson</acronym></glossterm>
<glossdef><para>Epson inkjets are among the best supported models by Free software
drivers, as the company was not necessarily as secretive about their
devices and handed technical specification documents to developers.
The excellent print quality achieved by Gimp-Print on the Stylus
series of printers can be attributed to this openness.
</para>
</glossdef>
</glossentry>
<glossentry id="gloss-escapesequence">
<glossterm>Escape Sequences</glossterm>
<glossdef><para>The first ever printers printed ASCII data only. To
initiate a new line, or eject a page, they included special
command sequences, often carrying a leading [ESC]-character.
&HP; evolved this concept through its series of PCL language
editions until today, having now developed a full-blown
Page Description Language (PDL) from these humble beginnings.
</para>
<glossseealso otherterm="gloss-pcl">PCL</glossseealso>
<glossseealso otherterm="gloss-pdl">PDL</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-escp">
<glossterm><acronym>ESC/P</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;E&emend;pson
&emstart;S&emend;tandard &emstart;C&emend;odes for
&emstart;P&emend;rinters. Besides &PostScript; and PCL, Epson's ESC/P
printer language is one of the best known.</para>
<glossseealso otherterm="gloss-pcl">PCL</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
<glossseealso otherterm="gloss-hpgl">hpgl</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-esp">
<glossterm><acronym>ESP</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;E&emend;asy
&emstart;S&emend;oftware &emstart;P&emend;roducts;
the company that developed &CUPS; (the "Common &UNIX; Printing System").
</para>
<glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-filter">
<glossterm>Filter</glossterm>
<glossdef><para>Filters, in general, are programs that take some input
data, work on it and pass it on as their output data. Filters
may or may not change the data.&newpara;
Filters in the context of printing, are programs that convert
a given file (destined for printing, but not suitable in the
format it is presently) into a printable format. Sometimes
whole "filter chains" have to be constructed to achieve the
goal, piping the output of one filter as the input to the next.
</para>
<glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
<glossseealso otherterm="gloss-rip">RIP</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-foomatic">
<glossterm>Foomatic</glossterm>
<glossdef><para>Foomatic started out as the wrapper name for a set of
different tools available from &linkstart;"http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/foomatic"&linkmid;Linuxprinting.org&linkend;
These tools aimed to make the usage of traditional
Ghostscript and other print filters easier for users and
extend the filters' capabilities by adding more command line
switches or explain the driver's execution data.&newpara;
More recently, Foomatic gravitated towards becoming a "meta-spooling"
system, that allows configuration of the underlying print subsystem
through a unified set of commands (however, this is much more
complicated than &kde; printing &GUI; interface, which performs a similar
task with regards to different print subsystems). </para>
</glossdef>
</glossentry>
<glossentry id="gloss-ghostscript">
<glossterm>Ghostscript</glossterm>
<glossdef><para>Ghostscript is a an interpreter for the &PostScript; language and for PDF or Raster Image Processor (RIP) in software, originally developed by L. Peter Deutsch. There is always a <acronym>GPL</acronym> version
of Ghostscript available for free usage and distribution.
Ghostscript is widely used inside the Linux and &UNIX; world
for transforming &PostScript; into raster data suitable
for sending to non-&PostScript; devices.
More info:
&linkstart;"http://www.ghostscript.com/"&linkmid;Ghostscript Homepage&linkend;</para>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
<glossseealso otherterm="gloss-rip">RIP</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-gimpprint">
<glossterm>Gimp-Print</glossterm>
<glossdef><para>Contrary to its name, Gimp-Print is no longer
just the plugin to be used for printing from the popular
Gimp program -- its codebase can also serve to be compiled
into...&newpara;
...a set of PPDs and associated filters that integrate seamlessly
into &CUPS;, supporting around 130 different printer models, providing
photographic output quality in many cases;&newpara;
...a Ghostscript filter that can be used with any other
program that needs a software-RIP;&newpara;
...a library that can be used by other software applications
in need of rasterization functions.</para>
<glossseealso otherterm="gloss-lexmark">Lexmark Drivers</glossseealso>
<glossseealso otherterm="gloss-rip">RIP</glossseealso>
<glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-hp">
<glossterm><acronym>&HP;</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;H&emend;ewlett-&emstart;Packard&emend;;
one of the first companies to distribute their own Linux printer
drivers. -- More recently, the Company has released their
"HPIJS" package of drivers, including source code and a Free license.
This is the first printer manufacturer to do so. HPIJS supports most
current models of HP Ink- and DeskJets.
</para>
</glossdef>
</glossentry>
<glossentry id="gloss-hpgl">
<glossterm><acronym>&HP;/GL</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;&HP;&emend;
&emstart;G&emend;raphical &emstart;L&emend;anguage;
a &HP; printer language mainly used for plotters; many CAD
(Computer Aided Design) software programs output &HP;/GL files for
printing.</para>
<glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
<glossseealso otherterm="gloss-pcl">PCL</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-hpjetdirectprotocol">
<glossterm>&HP; JetDirect Protocol</glossterm>
<glossdef><para>A term branded by &HP; to describe their implementation
of print data transfer to the printer via an otherwise "AppSocket" or
"Direct TCP/IP Printing" named protocol.</para>
<glossseealso otherterm="gloss-appsocketprotocol">AppSocket Protocol</glossseealso>
<glossseealso otherterm="gloss-directtcpipprinting">Direct TCP/IP Printing</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ietf">
<glossterm><acronym>IETF</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;I&emend;nternet
&emstart;E&emend;ngineering &emstart;T&emend;ask
&emstart;F&emend;orce; an assembly of Internet, software
and hardware experts that discuss
new networking technologies and very often arrive at
conclusions that are regarded by many as standards. "TCP/IP"
is the most famous example.&newpara;
IETF standards, as well as
drafts, discussions, ideas and useful tutorials, are
put in writing in the famous series of "RFCs", which
are available to the public and included in most Linux and
BSD distributions.</para>
<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
<glossseealso otherterm="gloss-pwg">PWG</glossseealso>
<glossseealso otherterm="gloss-rfc">RFC</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ipp">
<glossterm><acronym>IPP</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;I&emend;nternet
&emstart;P&emend;rinting &emstart;P&emend;rotocol;
defined in a series of RFCs accepted by the IETF with
status "proposed standard"; was designed
by the PWG. -- IPP is a completely new design for network printing,
but it utilizes a very well-known and proven method for the
actual data transfer: HTTP 1.1! By not "re-inventing the wheel",
and basing itself on an existing and robust Internet standard,
IPP is able to relatively easily bolt other HTTP-compatible standard
mechanisms into its framework:&newpara;
Basic, Digest or Certificate authentication mechanisms&newpara;
SSL or TLS for encryption of transferred data&newpara;
LDAP for directory services (to publish
data on printers, device-options, drivers, costs or
also to the network; or to check for passwords while
conducting authentication)
</para>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-pwg">PWG</glossseealso>
<glossseealso otherterm="gloss-ietf">IETF</glossseealso>
<glossseealso otherterm="gloss-rfc">RFC</glossseealso>
<glossseealso otherterm="gloss-tls">TLS</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-lexmark">
<glossterm><acronym>Lexmark</acronym></glossterm>
<glossdef><para>was one of the first companies to distribute their own Linux printer
drivers for some of their models. However, those drivers are binary only
(no source code available), and therefore cannot be used to integrate into
other Free printing software projects.
</para>
</glossdef>
</glossentry>
<glossentry id="gloss-linuxprintingorg">
<glossterm>Linuxprinting.org</glossterm>
<glossdef><para>Linuxprinting.org = not just for Linux; all &UNIX;-like OS-es,
like *BSD and commercial Unices may find useful printing
information on this site. This web site is the home for the interesting
Foomatic project, that strives to develop the "Meta Print Spool and Driver
Configuration Toolset" (being able to configure, through one common
interface, different print subsystems and their required drivers) with the
ability to transfer all queues, printers and configuration files seamlessly
to another spooler without new configuration effort. -- Also, they maintain
the Printing Database; a collection of driver and device information that
enables everybody to find the most current information about printer models,
and also generate online the configuration files for any
spooler/driver/device combo known to work with one of the common Linux or
&UNIX; print subsystems.
</para>
<glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting database</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-linuxprintingdatabase">
<glossterm><acronym>Linuxprinting.org Database</acronym></glossterm>
<glossdef><para>&linkstart;"http://www.openprinting.org/printers"&linkmid;Database&linkend; containing printers and drivers that are suitable for them.
More info:
&linkstart;"http://www.linuxfoundation.org/collaborate/workgroups/openprinting/database/indexfaq"&linkmid;Linuxprinting.org FAQ&linkend;</para>
<glossseealso otherterm="gloss-foomatic">Foomatic</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-lprlpd">
<glossterm><acronym>LPR/LPD</acronym> printing</glossterm>
<glossdef><para>LPR == some people translate &emstart;L&emend;ine
&emstart;P&emend;rinting &emstart;R&emend;equest, others:
&emstart;L&emend;ine &emstart;P&emend;rinter
&emstart;R&emend;emote.</para>
<glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-magicfilter">
<glossterm>Magicfilter</glossterm>
<glossdef><para>Similarly to the APSfilter program, Magicfilter
provides automatic file type recognition functions and, base
on that, automatic file conversion to a printable format,
depending on the target printer.</para>
<glossseealso otherterm="gloss-apsfilter">APSfilter</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-mimetypes">
<glossterm>&MIME;-Types</glossterm>
<glossdef><para>Abbreviation for &emstart;M&emend;ultipurpose (or
Multimedia) &emstart;I&emend;nternet &emstart;M&emend;ail
&emstart;E&emend;xtensions; &MIME;-Types were first used to allow
the transport of binary data (like mail attachments containing
graphics) over mail connections that were normally only transmitting
ASCII characters: the data had to be encoded into an ASCII representation.&newpara;
Later this concept was extended to describe a data format in
a platform independent, but at the same time non-ambiguous, way.
From &Windows; everybody knows the .doc extensions for &Microsoft; Word files.
This is handled ambiguously on the &Windows; platform: .doc extensions are also
used for simple text files or for Adobe Framemaker files. And if a real
Word file is renamed with a different extension, it can no longer be
opened by the program.&newpara;
&MIME; typed files carry a recognition string with them, describing
their file format based on &emstart;main_category/sub_category&emend;.
Inside IPP, print files are also described using the &MIME; type scheme.
&MIME; types are registered with the IANA (Internet Assigning Numbers
&emstart;Association&emend;) to keep them unambiguous.&newpara;
&CUPS; has some &MIME; types of its own registered, like
&emstart;application/vnd.cups-raster&emend; (for the &CUPS;-internal
raster image format).
</para>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-easysoftwareproducts">Easy Software Products</glossseealso>
<glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-pcl">
<glossterm><acronym>PCL</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;P&emend;rinter
&emstart;C&emend;ontrol &emstart;L&emend;anguage;
developed by &HP;. PCL started off in version 1 as a simple
command set for ASCII printing; now,
in its versions PCL6 and PCL-X, it is capable of printing graphics
and color -- but outside the &Microsoft; &Windows; realm and &HP-UX;
(&HP;'s own brand of &UNIX;), it is not commonly used...</para>
<glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
<glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
<glossseealso otherterm="gloss-pdl">PDL</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-pdl">
<glossterm><acronym>PDL</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;P&emend;age
&emstart;D&emend;escription &emstart;L&emend;anguage;
PDLs describe, in an abstract way, the graphical representation
of a page. - Before it is actually transferred into
toner or ink laid down on to paper, a PDL needs to be
"interpreted" first. In &UNIX;, the most important PDL
is &PostScript;.
</para>
<glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
<glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
<glossseealso otherterm="gloss-pcl">PCL</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-pixel">
<glossterm>Pixel</glossterm>
<glossdef><para>Abbreviation for &emstart;Pic&emend;ture
&emstart;El&emend;ement; this term describes the smallest
part of a raster picture (either as printed on paper
or as displayed on a monitor by cathode rays or LCD elements). As
any graphical or image representation on those types of output
devices is composed of pixels, the values of "ppi" (pixel per inch)
and &dpi; (dots per inch) are one important parameter for the
overall quality and resolution of an image.</para>
<glossseealso otherterm="gloss-filter">Filter</glossseealso>
<glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
<glossseealso otherterm="gloss-raster">Raster</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-pjl">
<glossterm><acronym>PJL</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;P&emend;rint
&emstart;J&emend;ob &emstart;L&emend;anguage;
developed by &HP; to control and influence default and per-job
settings of a printer. It may not only be used
for &HP;'s own (PCL-)printers; also many &PostScript;
and other printers understand PJL commands sent to them
inside a print job, or in a separate signal.</para>
<glossseealso otherterm="gloss-pcl">PCL</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-postscript">
<glossterm>&PostScript;</glossterm>
<glossdef><para>&PostScript; (often shortened to "PS") is the de-facto
standard in the &UNIX; world for printing files. It was
developed by Adobe and licensed to printer manufacturers
and software companies.&newpara;
As the &PostScript; specifications were
published by Adobe, there are also "Third Party" implementations
of &PostScript; generating and &PostScript; interpreting software
available (one of the best-known in the Free software world
being Ghostscript, a powerful PS-interpreter).
</para>
<glossseealso otherterm="gloss-escp">ESC/P</glossseealso>
<glossseealso otherterm="gloss-hpgl">&HP;/GL</glossseealso>
<glossseealso otherterm="gloss-pcl">PCL</glossseealso>
<glossseealso otherterm="gloss-ppd">PPD</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ppd">
<glossterm><acronym>PPD</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;P&emend;ostScript
&emstart;P&emend;rinter &emstart;D&emend;escription;
PPDs are ASCII files storing all information about the special
capabilities of a printer, plus definitions of the (PostScript-
or PJL-) commands to call on a certain capability (like print
duplexing).&newpara;
As the explanation of the acronym reveals, PPDs were originally
only used for &PostScript; printers. &CUPS; has extended the
PPD concept to all types of printers.&newpara;
PPDs for &PostScript; printers are provided by the printer
vendors. They can be used with &CUPS; and &kde; printing subsystem to have access
to the full features of any &PostScript; printer. The &kde; Team
recommends using a PPD originally intended for use with
&Microsoft; Windows NT.&newpara;
PPDs for non-PostScript printers &emstart;need&emend; a
companion "filter" to process the &PostScript; print files into
a format digestible for the non-PostScript target device. Those
PPD/filter combos are not (yet) available from the vendors. After
the initiative by the &CUPS; developers to utilize PPDs, the Free
Software community was creative enough to quickly come up with
support for most of the currently used printer models, through
PPDs and classical Ghostscript filters. But note: the printout
quality varies from "hi-quality photographic output" (using
Gimp-Print with most Epson inkjets) to "hardly readable" (using
Foomatic-enabled Ghostscript filters for models rated as
"paperweight" in the Linuxprinting.org database).
</para>
<glossseealso otherterm="gloss-cups">&CUPS;</glossseealso>
<glossseealso otherterm="gloss-linuxprintingorg">Linuxprinting.org</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-printcap">
<glossterm>printcap</glossterm>
<glossdef><para>In BSD-style print systems, the "printcap" file holds
the configuration information; the printing daemon reads this file
to determine which printers are available, what filters are to be
user for each, where the spooling folder is located,
if there are banner pages to be used, and so on...
Some applications also depend on read access to the printcap
file, to obtain the names of available printers. </para>
<glossseealso otherterm="gloss-bsdstyleprinting">BSD-style printing</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-printermib">
<glossterm>Printer-<acronym>MIB</acronym></glossterm>
<glossdef><para>Abbreviation for
&emstart;Printer&emend;-&emstart;M&emend;anagement
&emstart;I&emend;nformation &emstart;B&emend;ase; the
Printer-MIB defines a set of parameters that are to be
stored inside the printer for access
through the network. This is useful if many (in some cases, literally
thousands) network printers are managed centrally
with the help of SNMP (Simple Network Management Protocol).</para>
<glossseealso otherterm="gloss-pwg">PWG</glossseealso>
<glossseealso otherterm="gloss-snmp">SNMP</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-pwg">
<glossterm><acronym>PWG</acronym></glossterm>
<glossdef><para>Abbreviation for
&emstart;P&emend;rinter &emstart;W&emend;orking
&emstart;G&emend;roup; the PWG is a loose grouping of
representatives of the printer industry that has, in the past
years, developed different standards
in relation to network printing. These were later accepted by the
IETF as RFC standards, like the "Printer-MIB" and the IPP.</para>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
<glossseealso otherterm="gloss-ipp">IPP</glossseealso>
<glossseealso otherterm="gloss-printermib">Printer-MIB</glossseealso>
<glossseealso otherterm="gloss-snmp">SNMP</glossseealso>
</glossdef>
</glossentry>
<!--
<glossentry id="gloss-printkioslave">
<glossterm>print:/ KIO Slave</glossterm>
<glossdef><para>You can use a syntax of "print:/..." to get quick access
to &kde; printing subsystem resources. Typing "print:/manager" as a Konqueror URL
address gives administrative access to KDEPrint. Konqueror uses &kde;'s
famous "KParts" technology to achieve that. </para>
<glossseealso otherterm="gloss-ioslave">IO Slave</glossseealso>
<glossseealso otherterm="gloss-kparts">KParts</glossseealso>
</glossdef>
</glossentry>
-->
<glossentry id="gloss-printerdatabase">
<glossterm>Printer Database</glossterm>
<glossdef><para>Good database of printer drivers can be found at &linkstart;"http://www.openprinting.org/printers"&linkmid;http://www.openprinting.org/printers&linkend;.</para>
<glossseealso otherterm="gloss-linuxprintingdatabase">Linuxprinting Database</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-raster">
<glossterm>Raster Image</glossterm>
<glossdef><para>Every picture on a physical medium
is composed of a pattern of discrete dots in different colors and (maybe)
sizes. This is called a "raster image".&newpara;
This is as opposed to a "vector image"
where the graphic is described in terms of continuous curves, shades,
forms and filled areas, represented by mathematical formula. Vector images
normally have a smaller file size and may be scaled in size
without any loss of information and quality --- but they cannot be
output directly, but always have to be "rendered" or "rasterized"
first to the given resolution that the output device is capable of...&newpara;
The rasterization is done by a Raster Image Processor (RIP,
often the Ghostscript software) or some other filtering
instance.</para>
<glossseealso otherterm="gloss-pixel">Pixel</glossseealso>
<glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
<glossseealso otherterm="gloss-filter">Filter</glossseealso>
<glossseealso otherterm="gloss-rip">RIP</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-rip">
<glossterm><acronym>RIP</acronym></glossterm>
<glossdef><para>Abbreviation for
&emstart;R&emend;aster &emstart;I&emend;mage
&emstart;P&emend;rocess(or); if used in the context of
printing, "RIP" means a hardware or software
instance that converts &PostScript; (or other print formats
that are represented in one of the non-Raster PDLs) into a
raster image format in such a way that it is acceptable
for the "marking engine" of the printer.&newpara;
&PostScript; printers
contain their own PostScript-RIPs. A RIP may or may not be located
inside a printer.&newpara;
For many &UNIX; systems, Ghostscript is the package that provides
a "RIP in software", running on the host computer, and pre-digesting
the &PostScript; or other data to become ready to be sent to the
printing device (hence you may perceive a "grain of truth" in the
slogan "Ghostscript turns your printer into a &PostScript;
machine", which of course is not correct in the true sense of the
meaning).</para>
<glossseealso otherterm="gloss-filter">Filter</glossseealso>
<glossseealso otherterm="gloss-ghostscript">Ghostscript</glossseealso>
<glossseealso otherterm="gloss-postscript">&PostScript;</glossseealso>
<glossseealso otherterm="gloss-pdl">PDL</glossseealso>
<glossseealso otherterm="gloss-raster">Raster</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-rlpr">
<glossterm><acronym>RLPR</acronym> (Remote LPR)</glossterm>
<glossdef><para>Abbreviation for &emstart;R&emend;emote
&emstart;L&emend;ine &emstart;P&emend;rinting
&emstart;R&emend;equest; this is a BSD-style printing system,
that needs no root privileges to be installed, and no "printcap" to
work: all parameters may be specified on the command
line.&newpara;
RLPR comes in handy for many laptop users who are
working in frequently changing environments. This is because it
may be installed concurrently with every other printing
sub system, and allows a very flexible and quick
way to install a printer for direct access via LPR/LPD.
</para>
<glossseealso otherterm="gloss-printcap">printcap</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-snmp">
<glossterm><acronym>SNMP</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;S&emend;imple
&emstart;N&emend;etwork &emstart;M&emend;anagement
&emstart;P&emend;rotocol; SNMP is widely used to control
all types of network node (Hosts, Routers, Switches, Gateways,
Printers...) remotely.</para>
<glossseealso otherterm="gloss-pwg">PWG</glossseealso>
<glossseealso otherterm="gloss-printermib">Printer-MIB</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-ssl">
<glossterm><acronym>SSL(3)</acronym> encryption</glossterm>
<glossdef><para>Abbreviation for &emstart;S&emend;ecure
&emstart;S&emend;ocket &emstart;L&emend;ayer;
<acronym>SSL</acronym> is a proprietary encryption method for data
transfer over HTTP that was developed by Netscape. It is now being
replaced by an IETF standard named TLS.
</para>
<glossseealso otherterm="gloss-tls"><acronym>TLS</acronym></glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-spooling">
<glossterm><acronym>SPOOL</acronym>ing</glossterm>
<glossdef><para>Abbreviation for &emstart;S&emend;ynchronous
&emstart;P&emend;eripheral &emstart;O&emend;perations
&emstart;O&emend;n&emstart;L&emend;ine;
<acronym>SPOOL</acronym>ing enables printing applications
(and users) to continue their work
as the job is being taken care of by a system <acronym>daemon</acronym>,
which stores the file at a temporary location until the printer is ready
to print. </para>
<glossseealso otherterm="gloss-daemon"><acronym>Daemon</acronym></glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-tls">
<glossterm><acronym>TLS</acronym> encryption</glossterm>
<glossdef><para>Abbreviation for &emstart;T&emend;ransport
&emstart;L&emend;ayer &emstart;S&emend;ecurity;
<acronym>TLS</acronym> is an encryption standard for
data transferred over HTTP 1.1; it is defined in RFC 2246;
although based on the former SSL development
(from Netscape) it is not fully compatible with it.
</para>
<glossseealso otherterm="gloss-ssl"><acronym>SSL(3)</acronym></glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-systemVstyleprinting">
<glossterm>System V-style printing</glossterm>
<glossdef><para>This is the second flavor of traditional &UNIX;
printing (as opposed to BSD-style printing). It uses
a different command set (lp, lpadmin,...) to BSD,
but is not fundamentally different from it. However, the
gap between the two is big enough to make the two
incompatible, so that a BSD-client cannot simply print
to a System V style print server without additional
tweaking... IPP is supposed to resolve this weakness
and more.
</para>
<glossseealso otherterm="gloss-bsdstyleprinting"><acronym>BSD-style printing</acronym></glossseealso>
<glossseealso otherterm="gloss-ipp"><acronym>IPP</acronym></glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-turboprint">
<glossterm>TurboPrint</glossterm>
<glossdef><para>Shareware software providing photo quality printing for many
inkjet printers. It is useful if you are unable to find a driver for your
printer and may be hooked into either a traditional Ghostscript system
or a modern &CUPS; system.</para>
<glossseealso otherterm="gloss-gimpprint">Gimp-Print</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-xpp">
<glossterm><acronym>XPP</acronym></glossterm>
<glossdef><para>Abbreviation for &emstart;X&emend;
&emstart;P&emend;rinting &emstart;P&emend;anel;
<acronym>XPP</acronym> was the first Free
graphical print command for &CUPS;, written by Till Kamppeter,
and in some ways a model for the "kprinter" utility in &kde; 3.</para>
</glossdef>
</glossentry>
<!--
<glossentry id="gloss-1">
<glossterm>xxxx</glossterm>
<glossdef><para>.</para>
<glossseealso otherterm="gloss-1">xyz</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-3">
<glossterm>xxxx</glossterm>
<glossdef><para>.</para>
<glossseealso otherterm="gloss-1">xyz</glossseealso>
</glossdef>
</glossentry>
<glossentry id="gloss-4">
<glossterm>xxxx</glossterm>
<glossdef><para>.</para>
<glossseealso otherterm="gloss-1">xyz</glossseealso>
</glossdef>
</glossentry>
-->
</glossdiv>
<!--
</glossary>
-->

View file

@ -9,6 +9,21 @@ add_subdirectory(splashscreen)
add_subdirectory(powerdevil)
add_subdirectory(kwincompositing)
add_subdirectory(kwinscreenedges)
add_subdirectory(bookmarks)
add_subdirectory(icons)
add_subdirectory(cookies)
add_subdirectory(ebrowsing)
add_subdirectory(useragent)
add_subdirectory(khtml-general)
add_subdirectory(khtml-plugins)
add_subdirectory(khtml-java-js)
add_subdirectory(khtml-behavior)
add_subdirectory(khtml-adblock)
add_subdirectory(nepomuk)
add_subdirectory(attica)
add_subdirectory(kcm_ssl)
add_subdirectory(smb)
add_subdirectory(emoticons)
if ( Q_WS_X11 )
add_subdirectory(autostart)
@ -29,4 +44,22 @@ add_subdirectory(kwintabbox)
add_subdirectory(kcmsmserver)
add_subdirectory(workspaceoptions)
add_subdirectory(khotkeys)
add_subdirectory(cache)
add_subdirectory(filemanager)
add_subdirectory(filetypes)
add_subdirectory(kcmcgi)
add_subdirectory(kcmcss)
add_subdirectory(kcmlaunch)
add_subdirectory(kcmnotify)
add_subdirectory(language)
add_subdirectory(netpref)
add_subdirectory(performance)
add_subdirectory(proxy)
add_subdirectory(spellchecking)
add_subdirectory(componentchooser)
add_subdirectory(kded)
add_subdirectory(trash)
add_subdirectory(history)
add_subdirectory(solid-device-automounter)
add_subdirectory(phonon)
endif ( Q_WS_X11 )

View file

@ -0,0 +1,2 @@
########### install files ###############
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/attica)

View file

@ -0,0 +1,61 @@
<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>
<article id="attica" lang="&language;">
<articleinfo>
<title>Social Desktop</title>
<authorgroup>
<author><personname><firstname>Frederik</firstname><surname>Gladhorn</surname></personname>
<email>gladhorn@kde.org</email>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<date>2013-11-05</date>
<releaseinfo>&kde; 4.12</releaseinfo>
<keywordset>
<keyword>KDE</keyword>
<keyword>Systemsettings</keyword>
<keyword>Social Desktop</keyword>
</keywordset>
</articleinfo>
<para>The Social Desktop (Open Collaboration Services) settings module lets you
configure your user accounts for Open Collaboration Service Providers.</para>
<para>At the time of writing <ulink url="http://opendesktop.org/">openDesktop.org
</ulink> is the first provider that you can use.
You can use the web site or this settings dialog to register and manage your account.
</para>
<para>The benefit is that you can do more things in <quote>Get Hot New Stuff</quote>:
vote for items, become a fan of them and upload new content. A configured
account also allows you to use the social Plasma widgets (<quote>Community</quote>,
<quote>Social News</quote> &etc;) to their full extent.
</para>
<para>Using the &systemsettings; module:</para>
<para>You can select which provider to configure at the top.
Either enter your existing user name and password to let &kde; use them.
You can verify that these work by using the <guibutton>Test Login</guibutton> button</para>
<!--
missing:
Enable
Add/Remove Providers-->
<para>If you do not have an account yet, use the <guilabel>Register</guilabel> tab.
Here you need to fill out all fields.
After clicking <guibutton>Register...</guibutton> you will receive an email from the
server to activate your account.
</para>
</article>

View file

@ -0,0 +1,2 @@
########### install files ###############
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/bookmarks)

View file

@ -0,0 +1,101 @@
<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>
<article id="bookmarks" lang="&language;">
<articleinfo>
<title>Bookmarks</title>
<authorgroup>
<author>
<personname><firstname>Xavier</firstname><surname>Vello</surname></personname>
<email>xavier.vello@gmail.com</email>
</author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<date>2010-09-24</date>
<releaseinfo>0.2 (&kde; 4.5)</releaseinfo>
<keywordset>
<keyword>KDE</keyword>
<keyword>KControl</keyword>
<keyword>bookmarks</keyword>
<keyword>KIO</keyword>
</keywordset>
</articleinfo>
<sect1 id="conf">
<title>Bookmarks home page</title>
<para>This module lets you configure the bookmarks home page.</para>
<para>To view the bookmarks home page enter <userinput>bookmarks:/</userinput> in
the location bar.</para>
<para>The settings in this module are also accessible by entering
<userinput>bookmarks:/config</userinput> in the location bar.</para>
<sect2 id="conf-general">
<title>General settings</title>
<variablelist>
<varlistentry>
<term><guilabel>Number of columns to show</guilabel></term>
<listitem>
<para>Folders are automatically distributed in several columns. The optimal number of columns depends on the width of the konqueror window and the number of bookmarks you have.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Show folder backgrounds</guilabel></term>
<listitem>
<para>Disable it on slow system to disable background images.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="conf-bookmark">
<title>Bookmarks</title>
<variablelist>
<varlistentry>
<term><guilabel>Show bookmarks without folder</guilabel></term>
<listitem>
<para>If this option is unchecked, bookmarks at the root of the hierarchy (not in a folder) are not displayed. If checked, they are gathered in a "root" folder.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Flatten bookmarks tree</guilabel></term>
<listitem>
<para>Sub-folders are shown within their parent by default. If you activate this option, sub-folders are displayed on their own. It looks less nice but it may help if you have a very big folder you want to spread in two columns.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Show system places</guilabel></term>
<listitem>
<para>Show a box with KDE places (Home, Network, ...). Useful if you use konqueror as a file manager.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="conf-cache">
<title>Pixmap cache</title>
<variablelist>
<varlistentry>
<term><guilabel>Disk cache size</guilabel></term>
<listitem>
<para>Specify how much disk space is used to cache the pixmaps.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Clear Cache</guilabel></term>
<listitem>
<para>Remove all cached images. This may be necessary if some favicons become corrupt and don't refresh automatically.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
</article>

2
doc/kcontrol/cache/CMakeLists.txt vendored Normal file
View file

@ -0,0 +1,2 @@
########### install files ###############
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/cache)

66
doc/kcontrol/cache/index.docbook vendored Normal file
View file

@ -0,0 +1,66 @@
<?xml version="1.0" ?>
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
"dtd/kdex.dtd" [
<!ENTITY % addindex "IGNORE">
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
]>
<article id="cache" lang="&language;">
<title>Cache</title>
<articleinfo>
<authorgroup>
<author><firstname>Lauri</firstname><surname>Watts</surname></author>
<!-- TRANS:ROLES_OF_TRANSLATORS -->
</authorgroup>
<date>2009-11-20</date>
<releaseinfo>&kde; 4.4</releaseinfo>
<keywordset>
<keyword>KDE</keyword>
<keyword>Systemsettings</keyword>
<keyword>Konqueror</keyword>
<keyword>Cache</keyword>
</keywordset>
</articleinfo>
<para>This module allows you to control the size of the local cache
folder used by &konqueror;. Note that each user account on your
computer has a separate cache folder, and this folder is not
shared with other web browsers such as &Netscape;.</para>
<para>Storing local copies of web pages that you have visited allows
&konqueror; to quickly load their contents on subsequent visits. It
will only be necessary to reload the contents from the original site
if they have changed since your last visit, or if you click the reload
button in &konqueror;.</para>
<para>If you really do not want any of the web pages you visit to be
stored on your computer, you can disable &konqueror;'s disk cache by
clearing the checkbox labeled <guilabel>Use cache</guilabel>.</para>
<para>You can set here how aggressively &konqueror; keeps the cache up
to date. <guilabel>Keep cache in sync</guilabel> means that &konqueror;
will hit the cache for all objects, downloading them if they are not
there, and then display the item from the cache. <guilabel>Use cache
whenever possible</guilabel> means that &konqueror; will try the cache,
and if an object is not there, it will directly download it for display.
<guilabel>Offline browsing mode</guilabel> means that &konqueror; will
try the cache, and if an object is not there, it will not attempt to
download it from the Internet.</para>
<para>You can control the size of the cache by typing a number into the
text box labeled <guilabel>Disk cache size</guilabel>. This is the
average amount of space in kilobytes that the cache folder is allowed
to use. When the cache grows too large, &konqueror; will delete older
files to reduce the size of the cache folder.</para>
<para>This is however, only an average, and during a browsing session
the cache could become substantially larger.</para>
<para>You can use the <guibutton>Clear Cache</guibutton> button to empty
the cache at any time.</para>
</article>

View file

@ -0,0 +1,2 @@
########### install files ###############
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/componentchooser)

Some files were not shown because too many files have changed in this diff Show more