diff --git a/CMakeLists.txt b/CMakeLists.txt index 97e46455..366da5dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -237,9 +237,6 @@ macro_optional_add_subdirectory(freespacenotifier) macro_optional_add_subdirectory(kscreensaver) macro_optional_add_subdirectory(kinfocenter) -# data -macro_optional_add_subdirectory(doc) - if (Q_WS_X11) macro_optional_add_subdirectory(ktouchpadenabler) endif (Q_WS_X11) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt deleted file mode 100644 index 67147f49..00000000 --- a/doc/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ -add_subdirectory(kdm) -add_subdirectory(klipper) -add_subdirectory(kfontview) -add_subdirectory(kmenuedit) -add_subdirectory(ksysguard) -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) \ No newline at end of file diff --git a/doc/PolicyKit-kde/CMakeLists.txt b/doc/PolicyKit-kde/CMakeLists.txt deleted file mode 100644 index dd75aec8..00000000 --- a/doc/PolicyKit-kde/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/PolicyKit-kde/authdialog_1.png b/doc/PolicyKit-kde/authdialog_1.png deleted file mode 100644 index 55e4d528..00000000 Binary files a/doc/PolicyKit-kde/authdialog_1.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authdialog_2.png b/doc/PolicyKit-kde/authdialog_2.png deleted file mode 100644 index 2cdfb0ec..00000000 Binary files a/doc/PolicyKit-kde/authdialog_2.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authdialog_3.png b/doc/PolicyKit-kde/authdialog_3.png deleted file mode 100644 index 55f3efe7..00000000 Binary files a/doc/PolicyKit-kde/authdialog_3.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authdialog_4.png b/doc/PolicyKit-kde/authdialog_4.png deleted file mode 100644 index 933f4da4..00000000 Binary files a/doc/PolicyKit-kde/authdialog_4.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authdialog_5.png b/doc/PolicyKit-kde/authdialog_5.png deleted file mode 100644 index e7b191d3..00000000 Binary files a/doc/PolicyKit-kde/authdialog_5.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authdialog_6.png b/doc/PolicyKit-kde/authdialog_6.png deleted file mode 100644 index 659e0b0d..00000000 Binary files a/doc/PolicyKit-kde/authdialog_6.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authorization.docbook b/doc/PolicyKit-kde/authorization.docbook deleted file mode 100644 index 5405926e..00000000 --- a/doc/PolicyKit-kde/authorization.docbook +++ /dev/null @@ -1,112 +0,0 @@ - -Authorization manager - - -Manual - - -The Authorization manager is the application that system administrators can -use to easily change the default behavior of any actions. This page does not -aim to explain how to create new actions or define new .policy -files. - - -The Authorization screen is divided in two parts, at the left we have all the -actions that PolicyKit knows, you are able to search the actions using the search -bar at the top, and at the right we have the selected action. -This screenshot shows the main Authorization screen: - - - - - - -Main window with source device - - - - - -When you select an action it's details will be shown at the right side, -the action might have an icon, a description and the vendor name. Next -in the view we have the Implicit Authorizations and -Explicit Authorizations. - - - -The Implicit Authorizations are authorizations automatically -given to users based on certain criteria such as if they are on the local -console. These authorizations are read from the .policy files -that the given application defined, they are the defaults settings of the action. -These are the valid values - - - -no -auth_self_one_shot -auth_self -auth_self_keep_session -auth_self_keep_always -auth_admin_one_shot -auth_admin -auth_admin_keep_session -auth_admin_keep_always -yes - - - -You can change these defaults values simply by changing it on the combo box, -the not bold value is the default one so if you want to change one value back -you can select it, to make you selection take effect you have to click on the -Modify button. The Revert to defaults can be used -to change all Implicit Authorizations to it's defaults values. -Note that both Modify and Revert to defaults -requires you to issue the PolicyKit org.freedesktop.policykit.modify-defaults -action which might ask a password. - - - -The Explicit Authorizations are authorizations that are either -obtained through authentication process or specifically given to the action -in question. The default behavior is to only show the current user explicit -authorizations; if you want to see others users explicit authorizations -click on the Show authorizations from all users, note that this -requires you to issue the PolicyKit org.freedesktop.policykit.read -action which might ask a password. -Blocked authorizations are marked with a STOP sign. - - - -The Revoke button is used to revoke an explicit authorization. -Note that this requires you to issue the PolicyKit -org.freedesktop.policykit.revoke action which might ask a password. - - - -If you want to specifically grant or block a given user of performing a given action -you can click on the Grant or Block. -The following screenshot you see the Grant/Block dialog: - - - - - - -Grant/Block explicit authorizations dialog - - - - - -To grant/block explicit authorizations you have to select the user that will -receive the authorization. You can also select the Constraints -to limit the authorization such that it only applies under certain circumstances. -Be aware that explicit blocking and authorization might self lock you -of performing the given action so be sure of what you are doing -Note that this requires you to issue the PolicyKit -org.freedesktop.policykit.grant action which might ask a password. - - - - - diff --git a/doc/PolicyKit-kde/authorization_1.png b/doc/PolicyKit-kde/authorization_1.png deleted file mode 100644 index dbd9a864..00000000 Binary files a/doc/PolicyKit-kde/authorization_1.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authorization_2.png b/doc/PolicyKit-kde/authorization_2.png deleted file mode 100644 index 890c7390..00000000 Binary files a/doc/PolicyKit-kde/authorization_2.png and /dev/null differ diff --git a/doc/PolicyKit-kde/authorizationagent.docbook b/doc/PolicyKit-kde/authorizationagent.docbook deleted file mode 100644 index 203350c5..00000000 --- a/doc/PolicyKit-kde/authorizationagent.docbook +++ /dev/null @@ -1,120 +0,0 @@ - -Authorization Agent - - -Manual - - -The Authorization Agent is the application that is called whenever an user -wants to obtain a given authorization. It's a &DBus; activated daemon which -uses libpolkit-grant that in turn uses PAM for authentication -services (however, other authentication back-ends can be plugged in as required). - - - - -Authorization Agent dialog - - -The appearance of the authentication dialog depends on the result from PolicyKit -and also whether administrator authentication is defined as authenticate as -the root user or authenticate as one of the users from UNIX group -wheel or however the PolicyKit library is configured (see the -PolicyKit.conf(5) manual page for details). Note that some of the screenshots below -were made on a system set up to use the -ThinkFinger -PAM module. The text shown in the authentication dialogs stems from the PolicyKit -.policy XML files residing in /usr/share/PolicyKit/policy and is read by the -authentication daemon when an applications asks to obtain an authorization. -Thus, what the user sees is not under application control -(e.g. it's not passed from the application) which rules out a class of attacks -where applications are trying to fool the user into gaining a privilege. - - -The authentication dialog where the user is asked to authenticate as root -using the password or swiping the finger. -The details shows the application that's requesting the action, the action -itself and the action vendor. If clicking in the action link it will open the -authorization manager pointing to the given action, and the vendor might also -provide a link for the given action that will be fired when clicking on the -Vendor link: - - - - - -The authentication dialog asking for root, swipe finger and showing descriptions - - - - - -Authentication dialog where the user is asked to authenticate as an administrative -user and PolicyKit is configured to use the root password for this: - - - - - -The authentication dialog asking for root - - - - - -Authentication dialog where the user is asked to authenticate as an administrative -user and PolicyKit is configured to use a group for this: - - - - - -The authentication dialog asking for a user of the administrative group - - - - - -Same authentication dialog, showing drop down box where the user can be selected: - - - - - -Same authentication dialog, showing drop down box where the user can be selected - - - - - - -Authentication dialog showing an Action where the privilege can be retained indefinitely: - - - - - -Authentication dialog showing an Action where the privilege can be retained indefinitely - - - - - - -Authentication dialog showing an Action where the privilege can be retained only -for the remainder of the desktop session: - - - - - -Authentication dialog showing an Action where the privilege can be retained only -for the remainder of the desktop session - - - - - - - - diff --git a/doc/PolicyKit-kde/howitworks.docbook b/doc/PolicyKit-kde/howitworks.docbook deleted file mode 100644 index 90e4d331..00000000 --- a/doc/PolicyKit-kde/howitworks.docbook +++ /dev/null @@ -1,53 +0,0 @@ - -How it works - - -Overview - -PolicyKit has a simple way of working, but it requires some -design changes from the applications that want to use it to request -passwords. - - - -The problem - -In GUI applications the common way to gain root privileges is to start -it as root, but there are several security risks in doing this method and -it does not allow a good actions mapping. There is no way to separate actions -like package-install of system-upgrading. -All the users who want to use it must have the root password. Another common -approach is using sudo but once you start an application with sudo you will -have all the rights the root user will have. -If for example the GUI application has a dialog to select files that dialog -is running as root which means that the user might be able to delete any file -on his machine or even coping others user files. - - - - -The solution - -With PolicyKit this problem is solved. The application in question -just need to separate the privileged code into another application, -often called helper (which will not have a GUI), then maps the desired -actions into a .policy file. PolicyKit then loads this file -and it can now authenticate applications to use those actions. -The use of &DBus; activated applications is the best if not the only, -way of putting an helper application to run with root privileges. - -With this design the GUI application calls an action of the helper -application through &DBus;, which will start the helper with root privileges, -and informing it which action was requested and which application has requested -it. The helper application now calls the PolicyKit agent to see if that application -can do the given task, the helper should report if it could do the requested action. -In case the helper saw that the application didn't have enough rights the GUI -will then need to ask PolicyKit to obtain an authorization. - -When PolicyKit receives the request to obtain an authorization it issues an -available Agent, which might happen to be &policykit-kde; if available. After a successful -authentication the GUI application needs to call the helper repeating the -same operation again. - - - diff --git a/doc/PolicyKit-kde/index.docbook b/doc/PolicyKit-kde/index.docbook deleted file mode 100644 index a1173d32..00000000 --- a/doc/PolicyKit-kde/index.docbook +++ /dev/null @@ -1,88 +0,0 @@ - -PolicyKit-kde"> - PolicyKit"> - - - - - - - -]> - - - - -The &policykit-kde; manual - - - -Daniel -Nicoletti - - - - - -2008-2009 -Daniel Nicoletti - - -&FDLNotice; - -2009-01-25 -0.9.0 - - -&policykit-kde; is a &kde; front end to the PolicyKit -system that is used to manages authentication. -&policykit; is a toolkit designed to allow unprivileged processes -to speak to privileged processes. It does that by centralizing information of -actions and authorized applications. - - - -KDE -System -Password -Admin -Authentication -polkit -policykit -policy -policies - - - - -&policykit-kde-introduction; -&policykit-kde-howitworks; -&policykit-kde-authorization; -&policykit-kde-authorizationagent; - - -Credits and License - - -&policykit-kde; - - -Program copyright 2008-2009 Daniel Nicoletti - - -Documentation copyright 2008-2009 Daniel Nicoletti - - - -&underFDL; - - - -&documentation.index; - - - - diff --git a/doc/PolicyKit-kde/introduction.docbook b/doc/PolicyKit-kde/introduction.docbook deleted file mode 100644 index ea94ac13..00000000 --- a/doc/PolicyKit-kde/introduction.docbook +++ /dev/null @@ -1,28 +0,0 @@ - -Overview - -&policykit-kde; is a implementation of PolicyKit tool to the look and feel -of KDE. - -PolicyKit allows easy and secure password management, it can be used by -applications to ask their users for a password. Each application defines a set -of actions that can be executed by their program. -The application will call PolicyKit to see if the user can perform a given -action, if not, the application can issue the auth dialog where the user -can enter his/her password, root password, the password of a given group -of users or even swipe the finger. - -&policykit-kde; consists of two applications: -The Authorization agent that receives requests for authentication, and shows -a dialog asking for a password. -The Authorization manager that is used to manage the authorizations, it is -mainly used by system administrators that may want to change the default behavior -of a program policies. - -For Qt/KDE developers there is Qt library to allow easy integration with -you application and PolicyKit. - -For more information of how PolicyKit works, it's design and API visit -PolicyKit Library Reference Manual - - diff --git a/doc/api/Doxyfile.local b/doc/api/Doxyfile.local deleted file mode 100644 index 952cc6a8..00000000 --- a/doc/api/Doxyfile.local +++ /dev/null @@ -1,25 +0,0 @@ -## 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" diff --git a/doc/documentationnotfound/CMakeLists.txt b/doc/documentationnotfound/CMakeLists.txt deleted file mode 100644 index 9d35fb34..00000000 --- a/doc/documentationnotfound/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR khelpcenter/documentationnotfound) diff --git a/doc/documentationnotfound/index.docbook b/doc/documentationnotfound/index.docbook deleted file mode 100644 index c7a81198..00000000 --- a/doc/documentationnotfound/index.docbook +++ /dev/null @@ -1,66 +0,0 @@ - - - -]> -
-Documentation not Found - - -Jack -Ostroff - -
ostroffjh@users.sourceforge.net
-
-
- -
- -2010-09-21 -&kde; 4.5 - -
- -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. - -How to solve this issue: - -Start by searching the KDE -Documentation site for the requested documentation. If you find -the documentation on that site, your distribution might ship a separate -package for documentation (⪚ 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. - -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. - - -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 KDE Bug Tracker. - - -If you do not find any documentation on the KDE Documentation site, the -application may not have offline documentation. Please report this on -the KDE Bug Tracker. - - -In case the application does not have offline documentation, you should -use the online resources UserBase Documentation and -KDE Community Forums to get -help. - - -
\ No newline at end of file diff --git a/doc/fundamentals/CMakeLists.txt b/doc/fundamentals/CMakeLists.txt deleted file mode 100644 index dd75aec8..00000000 --- a/doc/fundamentals/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/fundamentals/colors.png b/doc/fundamentals/colors.png deleted file mode 100644 index 7059435b..00000000 Binary files a/doc/fundamentals/colors.png and /dev/null differ diff --git a/doc/fundamentals/config.docbook b/doc/fundamentals/config.docbook deleted file mode 100644 index 5de09be6..00000000 --- a/doc/fundamentals/config.docbook +++ /dev/null @@ -1,391 +0,0 @@ - -Customizing &kde; software - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Customizing Toolbars - - - - - -The &gwenview; Toolbar - - -The &gwenview; toolbar. -The toolbar in -&gwenview;. - - - - - -Modifying Toolbar Items - -To customize an application's toolbars, go to -SettingsConfigure -Toolbars... or right-click on a toolbar and select -Configure Toolbars.... - -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. - -Above each side of the panel there is a Filter text -box you can use to easily find items in the list. - - -The Customize Toolbars Window - - -The Customize Toolbars window. -The Customize Toolbars window in &gwenview; with the -Previous button selected. - - - - -Adding an Item -You can add an item to your toolbar by selecting it from the left side and -clicking on the right arrow button. - - - -Removing an Item -You can remove an item by selecting it and clicking the left arrow -button. - - - - -Changing the Position of Items - -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. - -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. - - - - -Adding a Separator -You can add separator lines between items by adding a ---- separator --- item to the toolbar. - - - -Restoring Defaults - -You can restore your toolbar to the way it was when you installed the -application by pressing the Defaults button at the bottom -of the window and then confirming your decision. - - - - -Changing Text and Icons - -You can change the icon and text of individual toolbar items by selecting -an item and clicking either the Change Icon... or -Change Text... button. - - - - - -Customizing Toolbar Appearance - -You can change the appearance of toolbars by right-clicking on a toolbar -to access it's context menu. - - -Text Position - -You can change the appearance of text on toolbars in the -Text Position submenu of a toolbar's context menu. - -You can choose from: - - - -Icons - -only the icon for each toolbar item will appear. - - - -Text - -only the text label for each toolbar item will appear. - - - -Text Alongside Icons - - -the text label will appear to the right of each toolbar item's icon - - - -Text Under Icons - -the text label will appear underneath each toolbar item's icon - - - - -You can also show or hide text for individual toolbar items by -right-clicking on an item and checking or unchecking the item under -Show Text. - - - - -Icon Size - -You can change the size of toolbar items' icons by selecting -Icon Size from the toolbar's context menu. - -You can choose from the following options: (each lists the icon size -in pixels) - - -Small (16x16) -Medium (22x22) - [the default value] -Large (32x32) -Huge (48x48) - - - - - -Moving Toolbars - -In order to move toolbars, you must unlock them. To do -so, uncheck Lock Toolbar Positions from a toolbar's -context menu. To restore the lock, simply recheck this menu item. - -You can change a toolbar's position from the -Orientation submenu of its context menu. - -You can choose from: - -Top - [the default in many applications] -Left -Right -Bottom - - -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. - - - - -Show/Hide Toolbars - -If your application has only one toolbar, you can hide a toolbar by -deselecting Show Toolbar from either the toolbar's -context menu or the Settings menu. To restore the toolbar, -select Show Toolbar from the Settings -menu. Note that toolbars must be unlocked to hide them from their -context menu; see for more -information. - -If your application has more than one toolbar, a submenu called -Toolbars Shown will appear in the context menu and -Settings menu instead of the above menu entry. From that -menu you may select individual toolbars to hide and show. - - - - - -Thanks and Acknowledgments -Thanks to an anonymous Google Code-In 2011 participant for writing much -of this section. - - - - - - - - -Alexey Subach -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - - - - -Using and Customizing Shortcuts - - -Introduction - -Many &kde; applications allow you to configure keyboard shortcuts. To open -the standard keyboard shortcuts configuration panel, go to -SettingsConfigure -Shortcuts.... - -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. - - -The Customize Shortcuts Window - - -The Customize Shortcuts window. -Searching for shortcuts with file in -&dolphin;. - - - - - - - -Changing a Shortcut - -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 Custom and click on the button next to it. Then just -type the shortcut you would like to use, and your changes will be saved. - - -Setting a Shortcut - - -The Customize Shortcuts window demonstrating how to -set a shortcut. - - - - - - -Resetting Shortcuts -There is a button at the bottom of the window, called Reset to -Defaults. Clicking on this button will reset all your custom shortcuts -to their default values. - -You can also reset an individual shortcut to its default value by selecting -it, and choosing the Default radio button. - - - - -Removing a Shortcut - -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. - - - - -Working with Schemes - -Schemes are keyboard shortcuts configuration profiles, so you can create -several profiles with different shortcuts and switch between these profiles -easily. - -This feature is under development. It is not possible to import -schemes using a &GUI; at this time. - - -Working with Schemes - - -The Customize Shortcuts window displaying the scheme -editing tools. -Editing a scheme called work. - - - -To see a menu allowing you to edit schemes, click on the -Details button at the bottom of the form. The following -options will appear: - - - - -Current Scheme -Allows you to switch between your schemes. - - - -New... -Creates a new scheme. This opens a window that lets you select -a name for your new scheme. - - - -Delete -Deletes the current scheme. - - - -More Actions - -Opens the following menu: - - - -Save as Scheme Defaults -Sets the current scheme as the default for all new schemes. - - - -Export Scheme... -Exports the current scheme to a file named applicationnameschemenameshortcuts.rc. - -Move this file to the folder $KDEDIR/apps/applicationname/ -and the exported scheme will be available in the drop down box labelled Current Scheme - - - - - - - - - - - -Printing Shortcuts - -You can print out a list of shortcuts for easy reference by clicking the -Print button at the bottom of the window. - - - - -Thanks and Acknowledgments - -Special thanks to Google Code-In 2011 participant Alexey Subach for -writing much of this section. - - - - - - diff --git a/doc/fundamentals/files-locationbar-breadcrumb.png b/doc/fundamentals/files-locationbar-breadcrumb.png deleted file mode 100644 index a1dfc26c..00000000 Binary files a/doc/fundamentals/files-locationbar-breadcrumb.png and /dev/null differ diff --git a/doc/fundamentals/files-locationbar-context-menu.png b/doc/fundamentals/files-locationbar-context-menu.png deleted file mode 100644 index f26b9c34..00000000 Binary files a/doc/fundamentals/files-locationbar-context-menu.png and /dev/null differ diff --git a/doc/fundamentals/files-locationbar-editable.png b/doc/fundamentals/files-locationbar-editable.png deleted file mode 100644 index 8bd6ac3a..00000000 Binary files a/doc/fundamentals/files-locationbar-editable.png and /dev/null differ diff --git a/doc/fundamentals/files-locationbar-places-icon.png b/doc/fundamentals/files-locationbar-places-icon.png deleted file mode 100644 index 1b620f74..00000000 Binary files a/doc/fundamentals/files-locationbar-places-icon.png and /dev/null differ diff --git a/doc/fundamentals/files-open.png b/doc/fundamentals/files-open.png deleted file mode 100644 index e6b45374..00000000 Binary files a/doc/fundamentals/files-open.png and /dev/null differ diff --git a/doc/fundamentals/files-save.png b/doc/fundamentals/files-save.png deleted file mode 100644 index d584bff3..00000000 Binary files a/doc/fundamentals/files-save.png and /dev/null differ diff --git a/doc/fundamentals/find-find-inline.png b/doc/fundamentals/find-find-inline.png deleted file mode 100644 index 58c1ebb2..00000000 Binary files a/doc/fundamentals/find-find-inline.png and /dev/null differ diff --git a/doc/fundamentals/find-find.png b/doc/fundamentals/find-find.png deleted file mode 100644 index 6201a039..00000000 Binary files a/doc/fundamentals/find-find.png and /dev/null differ diff --git a/doc/fundamentals/find-found.png b/doc/fundamentals/find-found.png deleted file mode 100644 index 0a9dd906..00000000 Binary files a/doc/fundamentals/find-found.png and /dev/null differ diff --git a/doc/fundamentals/find-replace-inline.png b/doc/fundamentals/find-replace-inline.png deleted file mode 100644 index 0bef63a1..00000000 Binary files a/doc/fundamentals/find-replace-inline.png and /dev/null differ diff --git a/doc/fundamentals/find-replace.png b/doc/fundamentals/find-replace.png deleted file mode 100644 index 81b7f750..00000000 Binary files a/doc/fundamentals/find-replace.png and /dev/null differ diff --git a/doc/fundamentals/fonts.png b/doc/fundamentals/fonts.png deleted file mode 100644 index 1e371176..00000000 Binary files a/doc/fundamentals/fonts.png and /dev/null differ diff --git a/doc/fundamentals/index.docbook b/doc/fundamentals/index.docbook deleted file mode 100644 index ee269960..00000000 --- a/doc/fundamentals/index.docbook +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - Gwenview'> - - - - - - &kde; &plasma; Desktop"> - &plasma; Active"> - Meta"> - - - - - - -]> - - -&kde; Fundamentals - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - - - -201120122013 -&TC.Hollingsworth; - - -2011 -Alexey Subach - - -2011 -Salma Sultana - -&FDLNotice; - -2013-12-08 -&kde; 4.12 - - -This guide provides an introduction to the &kde-sc; and describes many -common tasks that can be performed in all &kde; applications. - - - -KDE -introduction -user interface -menus -files -open -save -spelling -spellcheck -find -replace -colors -configuration -customization -toolbars -installation -compiling - - - - - -Introduction -Welcome to &kde;! - -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. - -For more information on &kde;, visit the -KDE website. - - - -&install-chapter; - -&ui-chapter; - -&tasks-chapter; - -&config-chapter; - - - -Credits and License - -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; - -Much of it was written by participants of -Google -Code-In 2011. Thanks to Google for sponsoring their excellent work! - - - -&underFDL; -&underGPL; - - - -&documentation.index; - - - - - diff --git a/doc/fundamentals/install.docbook b/doc/fundamentals/install.docbook deleted file mode 100644 index ffc1f0d1..00000000 --- a/doc/fundamentals/install.docbook +++ /dev/null @@ -1,127 +0,0 @@ - -Installing the &kde-sc; - -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. - - -Installing Packages - -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. - - -&Linux; - -Nearly every &Linux; distribution provides binary packages for individual -&kde-sc; applications and the &plasma-workspaces; as a whole. - -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 kde-desktop. - - -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 -kde-baseapps package. - - -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; - - - - - - -&Microsoft; &Windows; - -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. - -For more information on the initiative and to download the installer, -visit the KDE on Windows Initiative. - - - - - - - -&MacOS; - -Individual &kde-sc; applications can be installed through several -different ports systems available for &MacOS;. Several different -&kde; applications also provide their own binary builds for &MacOS;. - -For more information, visit -&kde; on &MacOS;X. - - - - -&BSD; - -Most &BSD; distributions allows you to install &kde-sc; applications -and the &plasma-workspaces; as a whole through their ports -system. - -For more information on installing ports, see your &BSD; distribution's -documentation. - - - - - - -Mobile Devices - -&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. - -For more information, visit -&plasma-active;. - - - - -Live Media - -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. - -There is a list -of distributions that offer the &kde-sc; on live media on the &kde; website. - - - -Building from Source Code - -For detailed information on how to compile and install &kde; -applications see - -Building and Running &kde; Software From Source on &kde; TechBase. - -Since &kde; software uses cmake you should -have no trouble compiling it. Should you run into problems please report them to the -&kde; mailing lists. - - - - - - \ No newline at end of file diff --git a/doc/fundamentals/menus.png b/doc/fundamentals/menus.png deleted file mode 100644 index 37c806a2..00000000 Binary files a/doc/fundamentals/menus.png and /dev/null differ diff --git a/doc/fundamentals/shortcuts-schemes.png b/doc/fundamentals/shortcuts-schemes.png deleted file mode 100644 index 5316cf6e..00000000 Binary files a/doc/fundamentals/shortcuts-schemes.png and /dev/null differ diff --git a/doc/fundamentals/shortcuts-search.png b/doc/fundamentals/shortcuts-search.png deleted file mode 100644 index 19bb85b2..00000000 Binary files a/doc/fundamentals/shortcuts-search.png and /dev/null differ diff --git a/doc/fundamentals/shortcuts-set.png b/doc/fundamentals/shortcuts-set.png deleted file mode 100644 index 7158e2cc..00000000 Binary files a/doc/fundamentals/shortcuts-set.png and /dev/null differ diff --git a/doc/fundamentals/spellcheck-check.png b/doc/fundamentals/spellcheck-check.png deleted file mode 100644 index 8d4a468b..00000000 Binary files a/doc/fundamentals/spellcheck-check.png and /dev/null differ diff --git a/doc/fundamentals/tasks.docbook b/doc/fundamentals/tasks.docbook deleted file mode 100644 index f4804899..00000000 --- a/doc/fundamentals/tasks.docbook +++ /dev/null @@ -1,1198 +0,0 @@ - -Common Tasks - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Navigating Documents - - -Scrolling - -You're probably familiar with the scrollbar that appears on the right side -(and sometimes the bottom) of documents, allowing you to move within documents. -However, there are several other ways you can navigate documents, some of which -are faster and easier. - -Several mice have a wheel in the middle. You can move it up and down to -scroll within a document. If you press the &Shift; key while using the mouse -wheel, the document will scroll faster. - -If you're using a portable computer like a laptop, you might also be able -to scroll using the touchpad. Some computers allow you to scroll vertically -by moving your finger up and down the rightmost side of the touchpad, and allow -you to scroll horizontally by moving your finger across the bottommost side -of the touchpad. Others let you scroll using two fingers: move both fingers -up and down anywhere on the touchpad to scroll vertically, and move them left -and right to scroll horizontally. Since this functionality emulates the mouse -wheel functionality described above, you can also press the &Shift; key while -you do this to scroll faster. - -If you use the &plasma-workspaces;, you can control mouse wheel behavior -in the Mouse module in &systemsettings;, -and you can control touchpad scrolling behavior in the Touchpad module in -&systemsettings;. Otherwise, look in the configuration area of your operating -system or desktop environment. - -Additionally, the scrollbar has several options in its context menu. You -can access these by right-clicking anywhere on the scrollbar. The following -options are available: - - - - -Scroll here -Scroll directly to the location represented by where you -right-clicked on the scrollbar. This is the equivalent of simply clicking on -that location on the scrollbar. - - - - -&Ctrl;Home -Top - -Go to the beginning of the document. - - - - -&Ctrl;End -Bottom - -Go to the end of the document. - - - - -PgUp -Page up - -Navigate to the previous page in a document that represents a -printed document, or one screen up in other types of documents. - - - - -PgDown -Page down - -Navigate to the next page in a document that represents a -printed document, or one screen down in other types of documents. - - - - -Scroll up -Scroll up one unit (usually a line) in the document. This is -the equivalent of clicking the up arrow at the top of the scrollbar. - - - - -Scroll down -Scroll down one unit (usually a line) in the document. This is -the equivalent of clicking the down arrow at the bottom of the scrollbar. - - - - - - - - -Zooming - -Many applications permit you to zoom. This makes the text or image you -are viewing larger or smaller. You can generally find the zoom function in the -View menu, and sometimes in the status bar -of the application. - -You can also zoom using the keyboard by pressing -&Ctrl;+ to zoom in, or -&Ctrl;- to zoom out. If you -can scroll with the mouse wheel or touchpad as described in -, you can also zoom by pressing &Ctrl; and scrolling -that way. - - - - - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Opening and Saving Files - - -Introduction - -Many &kde; applications work with files. Most applications have a -File menu with options that allow you to open and save files. -For more information on that, see . However, -there are lots of different operations that require selecting a file. Regardless -of the method, all &kde; applications generally use the same file selection -window. - - -The File Open Window - - -The File Open window. -Opening a file in -&konqueror;. - - - - - - - -The File Selection Window - - - - - - -The Toolbar - -This contains standard navigation tool buttons: - - - -Back -Causes the folder view to change to the previously displayed -folder in its history. This button is disabled, if there is no previous item. - - - - -Forward -Causes the folder view to change to the next folder in its -history. This button is disabled, if there is no next folder. - - - -Parent Folder -This will cause the folder view to change to the immediate -parent of the currently displayed folder, if possible. - - - -Reload (F5) -Reloads the folder view, displaying any changes that have been -made since it was first loaded or last reloaded. - - - -Show Preview -Displays a preview of each file inside the folder view. - - - - -Zoom Slider -This allows you to change the size of the icon or preview -shown in the folder view. - - - -Options - - - - - -OptionsSorting - - - - - - -OptionsSorting -By Name - -Sort files listed in the folder view alphabetically by name. - - - - - -OptionsSorting -By Size - -Sort files listed in the folder view in order of their file -size. - - - - -OptionsSorting -By Date - -Sort files listed in the folder view by the date they were last -modified. - - - - -OptionsSorting -By Type - -Sort files listed in the folder view alphabetically by their -file type. - - - - -OptionsSorting -Descending - -When unchecked (the default), files in the folder view will be -sorted in ascending order. (For instance, files sorted alphabetically will -be sorted from A to Z, while files sorted numerically will be sorted from -smallest to largest.) When checked, files in the folder will be sorted in -descending order (in reverse). - - - - -OptionsSorting -Folders First - -When enabled (the default), folders will appear before regular -files. - - - - - - - - -OptionsView - - - - - - -OptionsView -Short View - -Displays only the filenames. - - - - -OptionsView -Detailed View - -Displays Name, Date -and Size of the files. - - - - -OptionsView -Tree View - -Like Short View, but folders can be expanded to view their contents. - - - - -OptionsView -Detailed Tree View - -This also allows folders to be expanded, but displays the additional columns -available in Detailed View. - - - - - - - - - - &Alt;. - -OptionsShow Hidden Files - -Displays files or folders normally hidden by your operating system. - -The alternate shortcut for this action is F8. - - - - - -F9 -OptionsShow Places Navigation Panel - -Displays the places panel which provides quick access -to bookmarked locations and disks or other media. - - - - -OptionsShow Bookmarks - -Displays an additional icon on the toolbar that provides -access to bookmarks, a list of saved locations. - - - - -OptionsShow Aside Preview - -Displays a preview of the currently highlighted file to the -right of the folder view. - - - - - - - -Bookmarks -Opens a submenu to edit or add bookmarks and to add a new -bookmark folder. - - - - - - - - -Location Bar - -The location bar, which can be found on top of the folder view, displays -the path to the current folder. The location bar has two modes: - - - -Bread Crumb Mode - -In the bread crumb mode, which is the default, each folder -name in the path to the current folder is a button which can be clicked to quickly -open that folder. Moreover, clicking the > sign to the right of -a folder opens a menu which permits to quickly open a subfolder of that folder. - - - -Screenshot of the location bar in bread crumb mode - - - - - -Location bar in bread crumb mode. - -Location bar in bread crumb mode. - - - - - - - -Editable Mode - -When in bread crumb mode, clicking in the gray area to the right of the path -with the &LMB; switches the location bar to the editable mode, -in which the path can be edited using the keyboard. To switch back to bread -crumb mode, click the check mark at the right of the location bar with the &LMB;. - - - -Screenshot of the location bar in editable mode - - - - - -Location bar in editable mode. - -Location bar in editable mode. - - - - - - - - - - -The context menu of the location bar offers action to switch between the modes and -to copy and paste the path using the clipboard. Check the last option in this context menu to -display either the full path starting with the root folder of the file system or to display -the path starting with the current places entry. - - - -Location bar context menu - - - - - -Location bar context menu - - - - - - - - -The Places List -This provides the standard &kde; list of Places, shared with -&dolphin; and other file management tools. - - - -The Folder View - -The largest part of the file selection window is the area that lists all -items in the current directory. To select a file, you can double-click on it, -or choose one and hit Open or -Save. - -You can also select multiple files at once. To select specific files, or -to unselect specific files that are already selected, press and hold &Ctrl;, -click on each file, then release &Ctrl;. To select a -contiguous group of files, click the first file, press and hold &Shift;, click -on the last file in the group, and release &Shift;. - -The Folder View supports a limited set of file operations, which can be -accessed by right-clicking on a file to access its context menu, or using -keyboard shortcuts. The following items are available in the context menu: - - - - -Create New... -Create a new file or folder. - - - -Move to Trash... -(Del) -Move the currently selected item to the trash. - - - -Sorting -This submenu can also be accessed from the toolbar, and is -described in . - - - -View -This submenu can also be accessed from the toolbar, and is -described in . - - - -Open File Manager -Opens the current folder in your default file manager -application. - - - -Properties -(&Alt;&Enter;) -Open the Properties window that allows you to view and modify -various types of metadata related to the currently selected file. - - - - - - - -The Preview Pane -If enabled, this displays a preview of the currently highlighted -file. - - - -The Name Entry -When a file is selected, a name will appear in this text box. -You may also manually enter a file name or path in this text box. - - - -The Filter Entry - -When opening a file, the Filter entry allows you to -enter a filter for the files displayed in the folder view. The filter uses -standard globs; patterns must be separated by white space. For instance, you can -enter *.cpp *.h *.moc to display several different -common &Qt; programming files. - -To display all files, enter a single asterisk -(*). - -The filter entry saves the last 10 filters entered between -sessions. To use one, press the arrow button on the right of the entry -and select the desired filter string. You can disable the filter by pressing -the Clear text button to the left of the autocompletion -arrow button. - -When saving a file, the Filter entry will instead -display a drop down box that allows you to select from all the file types the -application supports. Select one to save a file in that format. - - - - -Automatically select filename extension -When saving a file, this check box will appear. When selected -(the default), the application will automatically append the default file -extension for the selected file type to the end of the file name, if it does -not already appear in the Name entry. The file extension -that will be used is listed in parenthesis at the end of the check box label. - - - -The File Save Window - - -The File Save window. -Saving a file in -&konqueror;. - - - - - - - - -The Open or Save Button -Depending on the action being performed, an -Open or Save button will be -displayed. Clicking on this button will close the file selection window and -perform the requested action. - - - -The Cancel Button -Clicking Cancel will close the file -dialog without performing any action. - - - - - - - -Thanks and Acknowledgments - -Special thanks to Google Code-In 2011 participant Alexey Subach for -writing parts of this section. - - - - - - - - - -&David.Sweet; &David.Sweet.mail; -Salma Sultana -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Check Spelling - -&sonnet; is the spelling checker used by &kde; applications such as &kate;, -&kmail;, and &kword;. It is a &GUI; frontend to various free spell checkers. - -To use &sonnet; you need to install a spell checker like -&GNU; Aspell, Enchant, -Hspell, ISpell or -Hunspell and additionally the corresponding -dictionaries for the languages that you wish to use. - - -Check Spelling - - -The Check Spelling Window - - - - - -The Check spelling window. - -Correcting a misspelling. - - - -To check spelling, go to Tools -Spelling.... - -If a word is possibly misspelled in your document, it is displayed in the -top line in the dialog. &sonnet; tries to appropriate word(s) for replacement. -The best guess is displayed to the right of Replace with. -To accept this replacement, click on Replace. - -&sonnet; also allows you to select a word from the list of suggestions and -replace the misspelled word with that selected word. With the help of the -Suggest button, you can add more suggestions from the -dictionary to the suggestions list. - -Click on Ignore to keep your original spelling. - -Click on Finished to stop spellchecking and -keep the changes made. - -Click on Cancel to stop spellchecking and -cancel the changes already made. - -Click on Replace All to automatically replace -the misspelled word(s) with the chosen replacement word, if they appear again in -your document later. - -Click on Ignore All to ignore the spelling at -that point and all the future occurrences of the word misspelled. - -Click on Add to Dictionary to add the misspelled -word to your personal dictionary. - -The Personal Dictionary is a distinct dictionary from the -system dictionary and the additions made by you will not be seen by others. - -The drop down box Language at the bottom of this -dialog allows you to switch to another dictionary temporarily. - - - - -Automatic Spell Checking - - - -In many applications, you can automatically check spelling as you type. -To enable this feature, select Tools -Automatic Spell Checking. - -Potentially misspelled words will be underlined in red. To select a -suggestion, right click on the word, select the Spelling -submenu, and select the suggestion. You may also instruct &sonnet; to ignore -this spelling for this document by selecting Ignore Word, -or you may select Add to Dictionary to save it in your -personal dictionary. - - - - -Configuring &sonnet; - -To change your dictionary, go to Tools -Change Dictionary.... A small window will -appear at the bottom of the current document that will allow you to change your -dictionary. - - -For more information on configuring &sonnet;, see the -Spell Checker &systemsettings; module -documentation - - - - -Thanks and Acknowledgments - -Special thanks to Google Code-In 2011 Participant Salma Sultana for writing -much of this section. - - - - - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Find and Replace - - -The Find function of many &kde-sc; applications lets you find specific -text in a document, while the Replace function allows you to replace text that -is found with different text you provide. - -You can find both these functions in the Edit menu of -many &kde; applications. For more information on this menu, see -. - - -The Find Function - -The Find function searches for text in a document and selects it. - - -The Find Window - - -The Find window. -Searching for software in -&kmail;'s composer window. - - - - -To use Find in many applications, go to Edit -Find... or press -&Ctrl;F. Then, in the -Text to find: text box, enter the text that you want to -find. - -If Regular expression is checked you will be able to -search using regular expressions. Click on Edit to select -from and enter commonly used regular expression characters, like -White Space or Start of Line. If -&kate; is installed, you can find -more information on writing -regular expressions in its documentation. - - -You can limit the found results by configuring these options: - - - -Case sensitive -Capital and lowercase characters are considered different. For -example, if you search for This, results that contain -this will not be returned. - - - -Whole words only -By default, when the application searches for text, it will -return results even in the middle of other text. For instance, if you search -for is it will stop on every word that contains that, -like this or -history. If you check this option, the -application will only return results when the search text is a word by itself, -that is, surrounded by whitespace. - - - -From cursor -The search will start from the location of the cursor and stop -at the end of the text. - - - -Find backwards -By default, the application searches for the text starting at -the beginning of the document, and move through it to the end. If you check this -option, it will instead start at the end and work its way to the beginning. - - - - -Selected text -Select this option to search only in the text that is currently -selected, not the entire document. It is disabled when no text is selected. - - - - - -The Find function only selects the first match that it finds. You can -continue searching by selecting EditFind Next -or by pressing F3. - - -Example of a Search - - -Example of a search. -&kmail; displays a match for software. - - - - - -Applications which use the &kde; text editor component show a search bar instead of the Find window. See &kwrite; documentation for additional information on the search bar. - - -The search bar in &kate;. - - -The search bar in &kate;. -Searching for software in &kate;'s search bar. - - - - - - - -The Replace Function - -The Replace function searches for text in a document and replaces it with -other text. You can find it in many application at -EditReplace... -or by pressing &Ctrl;R. - - -The Replace Window - - -The Replace window. -Replacing food with -drink in &kmail; - - - -The window of the Replace function is separated into 3 sections: - - - -Find -Here you may enter the text you wish to search for. See - for more information on the options provided here. - - - - -Replace - -Here you may enter the text you wish to replace the found text with. - -You can reuse the found text in the replacement text by selecting the -Use placeholders checkbox. Placeholders, sometimes known as -backreferences, are a special character sequence that will be replaced with all -or part of the found text. For instance, \0 represents the -entire found string. - You may insert placeholders into the text box by clicking the -Insert Placeholder button, then selecting an option from -the menu like Complete Match. For example, if you are -searching for message, and you want to replace it with -messages insert the Complete Match -placeholder and add an s. The replace field will then -contain \0s. - -If &kate; is installed, you can learn more about placeholders in the -Regular Expressions appendix -of its documentation. - - - - -Options -This contains all the same options that the -Find function does, with one addition: -If the Prompt on replace option is checked a window -will appear on every found word, allowing you to confirm whether you would like -to replace the found text. - - - - - -Applications which use the &kde; text editor component show a search and replace bar instead of the Replace window. See &kwrite; documentation for additional information on the search and replace bar. - - -The search and replace bar. - - -The search and replace bar. -Replacing kmail with -kate in &kate;'s search and replace bar - - - - - - -Thanks and Acknowledgments -Thanks to an anonymous Google Code-In 2011 participant for writing much -of this section. - - - - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Choosing Fonts - -The font selector appears in many different &kde; applications. It lets -you select the font face, font style, and font size of the text that appears in -your application. - - -The Font Selector - - -The font selector. -Selecting a font in -&systemsettings;. - - - - - - -Font -This is the leftmost selection box, and lets you choose the -font face from a list of fonts on your system. - - - -Font style - -This is the center selection box, and lets you choose the font style from -the following choices: - - -Italic - this displays text in a cursive, -or slanted fashion, and is commonly used for citations or to emphasize text. - - -Regular - the default. Text is displayed -without any special appearance. - -Bold Italic - a combination of both -Bold and Italic - -Bold - this displays text in a darker, -thicker fashion, and is commonly used for titles of documents or to emphasize -text. - - - - - - -Size -This is the rightmost selection box, and lets you select the -size of your text. Font size is measured in points, a -standard unit of measure in typography. For more information on this, see -the Point -(typography) article on Wikipedia. - - - -Preview -The bottom of the font selector displays a preview of text using -the font settings that are currently selected. You may change this text if you -wish. - - - - - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -Choosing Colors - -The color chooser appears in many &kde; applications, whenever you need - to select a color. It lets you pick from a palette consisting of many -predefined colors or mix your own when you want a specific color. - - -The Color Selector - - -The color selector. -Selecting a color in -&systemsettings;. - - - - -Using Palettes - -A palette is a set of predefined colors. You can find it on the right -side of the color chooser window. - -To select a color from a palette, simply click on it. The color will be -displayed below the palette, along with its &HTML; hexadecimal code and name, if -any. - -To switch between them, use the drop down box above the color palette. -Most palettes will display a grid consisting of the colors, except for the -Named Colors, which lets you select from a list of names. -Other special palettes include * Recent Colors *, which -will display colors that you have recently selected, and -* Custom Colors *, which will display custom colors that -you have saved. For more information on setting custom colors, see - - - - - -Mixing Colors - -The color chooser also lets you mix your own colors. There are several -ways to do this: - - -Using the Grid - -The left side of the color chooser contains a large box, and a thinner box -immediately to its right. You can use the left box to select the Hue and -Saturation of the desired color based on the visual guide provided in the box. -The right bar adjusts the Value. Adjust these to select the desired color, -which is displayed in the lower-right corner of the window. - -For more information on Hue, Saturation, and Value, see - - - - - -Using the Eyedropper - -The eyedropper tool allows you to select a color from your screen. To use -it, select the eyedropper button to the right of the -Add to Custom Colors button, and then click anywhere on -your screen to select that color. - - - - -Hue/Saturation/Value - -The lower-left corner of the screen allows you to manually enter the -coordinates of the desired color in the Hue/Saturation/Value -(HSV) color space. For more information on this, see -the HSL and -HSV article on Wikipedia. - -These values are also updated when selecting a color by other methods, -so they always accurately represent the currently selected color. - - - - -Red/Green/Blue - -The lower-left corner of the screen also allows you to manually enter the -coordinates of the desired color in the Red/Green/Blue (RGB) -color model. For more information on this, see -the RGB color -model article on Wikipedia. - -These values are also updated when selecting a color by other methods, -so they always accurately represent the currently selected color. - - - - -&HTML; Hexadecimal Code - -You may enter the &HTML; hexadecimal code representing -the color in the lower-right corner of the screen. For more information on this, -see the Web -colors article on Wikipedia. - -This value is also updated when selecting a color by other methods, -so it always accurately represents the currently selected color. - - - - - -Saving Custom Colors - -After selecting a color, you may save it to the Custom Colors palette so -you can find it later. To do so, click the -Add to Custom Colors button. You can then find it by -selecting the * Custom Colors * palette from the drop -down box in the upper-right corner of the screen. For more information on using -palettes, see . - - - - - - diff --git a/doc/fundamentals/toolbars-configure.png b/doc/fundamentals/toolbars-configure.png deleted file mode 100644 index 52ff11c1..00000000 Binary files a/doc/fundamentals/toolbars-configure.png and /dev/null differ diff --git a/doc/fundamentals/toolbars-toolbar.png b/doc/fundamentals/toolbars-toolbar.png deleted file mode 100644 index a204b1b6..00000000 Binary files a/doc/fundamentals/toolbars-toolbar.png and /dev/null differ diff --git a/doc/fundamentals/ui.docbook b/doc/fundamentals/ui.docbook deleted file mode 100644 index 6c91d31f..00000000 --- a/doc/fundamentals/ui.docbook +++ /dev/null @@ -1,1983 +0,0 @@ - - - -Finding Your Way Around - - - - -Claus Christensen -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - - -A Visual Dictionary - -The &plasma-workspaces; feature many different graphical user interface -elements, commonly known as widgets. This guide will introduce -you to their names and functions. - - -The Big Picture - - -Windows - - -A Window - - - - - - - - - - - - - - - - - - - - - - - -This is the window of the &kwrite;, a text editor. Click on -part of the window to learn more about it. - - - - -The Window Menu - - - -A Button to place this window on all -desktops - - - -The Titlebar - - - -Buttons to minimize, maximize, or -close the window - - - -The Menubar - - - -The Toolbar - - - -A very large -Text Area -that acts as this program's -Central Widget - - - -A vertical Scrollbar -(there is also a horizontal scrollbar below the text box) - - - -The Statusbar - - - - - -Another Window - - - - - - - - - - - - - - - - - - -This is the another window, that of the &dolphin; file manager. Click on -part of the window to learn more about it. - - - - -A panel -that contains a list of Places on the computer system - - - -A Breadcrumb -of the path of the displayed folder - - - -A folder Icon - - - -A file Icon - - - -A highlighted Icon - - - -A Context Menu -listing actions that can be performed on a file - - - -A Slider -that changes the size of the Icons -displayed - - - -More Panels - - - - - - - -&GUI; Elements - - -Some &GUI; Elements - - - - - - - - - - - - - - - - -This screenshot, from the &systemsettings; Country/Region & Language panel, -shows some &GUI; elements. Click on part of the window to learn more about it. - - - - -An Icon List -(the first item is selected) - - - -Some Tabs - - - -An open -Drop Down Box - - - -A Button -that resets the Drop Down Box to -its default value - - - -An item in the Drop Down Box that -has been selected - - - - -Some more Buttons - - - - - -Some More &GUI; Elements - - - - - - - - - - - - - - - -This screenshot, from the &systemsettings; Custom Shortcuts panel, -shows some more &GUI; elements. - - - - -A Tree View - - - -A Check Box -that has been selected - - - -A pair of Spin Boxes - - - -A Menu Button - - - - - -Even More &GUI; Elements - - - - - - - - - - - - - -This screenshot, from the &systemsettings; Default Applications panel, -shows even more &GUI; elements. Click on part of the window to learn more about -it. - - - - -A List Box - - - -A pair of Radio Buttons - - - -A Text Box - - - - - -Some Combo Boxes - - - - - - - - - - -Finally, this screenshot, from another tab -of the &systemsettings; Country/Region & Language panel, shows five -Combo Boxes - - - - - - - -The Widgets - - - - - - - - -Name -Description -Screenshot - - - - - - - -Central Widget -The main area of the running application. This might be the document -you are editing in a word processor or the board of a game like Chess. - - - - - - - - - - -Button -These can be clicked with the &LMB; to perform an action. - - - - - - - - - - -Breadcrumb -Shows the path in a hierarchical system, such as a filesystem. Click on -any part of the path to go up in the tree to that location. Click on the arrow -to the right of part of the path to go to another child element of that path. - - - - - - - - - - - -Check Box -These can be clicked to select and unselect items. They are typically -used in a list of several selections. Selected items typically display a check -mark, whereas unselected items will have an empty box. - - - - - - - - - - -Color Selector -This allows a color to be selected for various purposes, such as changing -the color of text. For more information, see - - - - - - - - - - -Combo Box -A combination of a -Drop Down Box and a -Text Box. You can select an option -from the list, or type in the text box. Some combo boxes may automatically -complete entries for you, or open the list with a list of choices that match -what you have typed. - - - - - - - - - - -Context Menu -Many user interface elements in the &kde-sc; contain a context menu, -which can be opened by clicking on something with the &RMB;. This menu contains -options and actions that usually affect the user interface element that was -right-clicked. - - - - - - - - - - -Dialog Box -A small window that appears above a larger application window. It may -contain a message, warning, or configuration panel, among others. - - - - - - - - - - -Drop Down Box -This provides a list of items, from which you may select one. - - - - - - - - - - -Icon -A graphical representation of something, such as a file or action. They -typically, but not always, also contain a text description, either beneath or -to the right of the icon. - - - - - - - - - - -Icon List -This provides a list of items represented by an -Icon and a description. It is typically -used in the left panel of configuration panels to allow selection from various -types of configuration categories. - - - - - - - - - - -List Box -This is a list of items that typically allows multiple items to be -selected. To select a group of contiguous items, press the &Shift; key and -click the first and last items. To select multiple items that are not -contiguous, press the &Ctrl; key and select the desired items. - - - - - - - - - - -Menu -A list of selections, that usually perform an action, set an option, or -opens a window. These can be opened from -menubars or -menu buttons. - - - - - - - - - - -Menubar -These are located at the top of nearly every window and provide access -to all the functions of the running application. For more information, see -. - - - - - - - - - - -Menu Button -A special type of button that -opens a menu. - - - - - - - - - - -Panel or Sidebar or Tool View -These are located on the sides or bottom of the -central widget and allow -you to perform many different tasks in an application. A text editor might -provide a list of open documents in one, while a word processor might allow you -to select a clip art image. - - - - - - - - - - -Progress Bar -A small bar that indicates that a long-running operation is being -performed. The bar may indicate how much of the operation has completed, or it -may simply bounce back and forth to indicate that the operation is in progress. - - - - - - - - - - - -Radio Button -These are used in a list of options, and only permit one of the options in -the list to be selected. - - - - - - - - - - -Scrollbar -Allows you to navigate a document. - - - - - - - - - - -Slider -Allows a numeric value to be selected by moving a small bar either -horizontally or vertically across a line. - - - - - - - - - - -Spin Box -This permits a numerical value to be selected, either by using the up and -down arrows to the right of the box to raise or lower the value, respectively, -or by typing the value into the -text box. - - - - - - - - - - -Status Bar -These are located at the bottom of many applications and display -information about what the application is currently doing. For instance, a web -browser might indicate the progress of loading a web page, while a -word processor might display the current word count. - - - - - - - - - - -Tab -These appear at the top of an area of a window, and permit that area of -the window to be changed to a variety of different selections. - - - - - - - - - - -Text Area -Allows a large amount of text to be typed in, typically multiple lines or -paragraphs. Unlike a Text Box, -pressing &Enter; will usually result in a line break. - - - - - - - - - - - -Text Box -A single-line text entry that allows a small amount of text to be typed -in. Typically, pressing &Enter; will perform the same action as clicking the -OK button. - - - - - - - - - - -Titlebar -This is located at the top of every window. It contains the name of the -application and usually information about what the application is doing, like -the title of the web page being viewed in a web browser or the filename of a -document open in a word processor. - - - - - - - - - - -Toolbar -These are located near the top of many applications, typically directly -underneath the menu bar. They -provide access to many common functions of the running application, like -Save or Print. - - - - - - - - - - -Tree View -A Tree View allows you to select from a hierarchical list of options. A -section, or category, of the Tree View may be unexpanded, in which case no -options will appear beneath it and the arrow to the left of the title will be -pointing right, toward the title. It may also be expanded, in which case several -options will be listed below it, and the arrow to the left of the title will be -pointing down, toward the options. To expand a portion of the tree view, click -the arrow to the left of the title of the section you wish to expand, -double-click on the title, or select the title using your keyboard's arrow keys -and press the &Enter; or + key. To minimize a portion of the -tree view, you may also click the arrow, double-click on the title, or press the -&Enter; or - key. - - - - - - - - - - - - - - - - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - - -Common Menus - -Many &kde; applications contain these menus. However, most -applications will have more menu entries than those listed here, and others may -be missing some of the entries listed here. - - -A Menu Bar - - -A menubar -The menubar in -&gwenview;. - - - - -Some applications, like &dolphin;, do not show a menubar by default. You -can show it by pressing &Ctrl;M. You can -also use this to hide the menubar in applications that support doing so. - - -The File Menu -The File menu allows you to perform operations on the -currently open file and access common tasks in applications. - -Common menu items include: - - - - - -&Ctrl;N -FileNew - - -Creates a new file. - - - - - -FileNew Window - - -Opens a new window. - - - - - -&Ctrl;O -FileOpen... - - -Opens an already existing file. - - - - - -&Ctrl;S -FileSave - - -Saves the file. If the file already exists it will be overwritten. - - - - - -FileSave As... - - - Saves the file with a new filename. - - - - - - -FileSave All - - -Saves all open files. - - - - - -F5 -FileReload - - -Reloads the current file. - - - - - -FileReload All - - -Reloads all open files. - - - - - -&Ctrl;P -FilePrint... - - -Prints the file. - - - - - -&Ctrl;W -FileClose - - -Closes the current file. - - - - - -FileClose All - - -Closes all open files. - - - - - -&Ctrl;Q -FileQuit - - -Exits the program. - - - - - - - -The Edit Menu -The Edit menu allows you to modify the currently -open file. - - - - - -&Ctrl;Z -EditUndo - - -Undo the last action you performed in the file. - - - - - -&Ctrl;&Shift;Z -EditRedo - - -Redo the last action you performed in the file. - - - - - -&Ctrl;X -EditCut - - -Removes the currently selected portion of the file, if any, and places a copy of -it in the clipboard buffer. - - - - - -&Ctrl;C -EditCopy - - -Places a copy of the currently selected portion of the file, if any, in the -clipboard buffer. - - - - - -&Ctrl;V -EditPaste - - -Copies the first item in the clipboard buffer to the current location in the -file, if any. - - - - - -&Ctrl;A -EditSelect All - - -Selects the entire contents of the currently open file. - - - - - -&Ctrl;F -EditFind... - - -Allows you to search for text in the currently open file. - - - - - -&Ctrl;R -EditReplace... - - -Allows you to search for text in the currently open file and replace it with -something else. - - - - - -F3 -EditFind Next - - -Go to the next match of the last Find operation. - - - - - -&Shift;F3 -EditFind Previous - - -Go to the previous match of the last Find operation. - - - - - - - -The View Menu -The View menu allows you to change the layout of the -currently open file and/or the running application. - -This menu has different options depending on the application you are -using. - - - -The Tools Menu -The Tools menu allows you to perform certain actions -on the currently open file. - - - - - -&Ctrl;&Shift;O -ToolsAutomatic Spell Checking - - -Check for spelling errors as you type. For more information, see -. - - - - - -ToolsSpelling... - - -This initiates the spellchecking program - a program designed to help the user -catch and correct any spelling errors. For more information, see -. - - - - - -ToolsSpelling (from cursor)... - - -This initiates the spellchecking program, but only checks the portion of the -document from the current location of the cursor to the end. For more information, -see . - - - - - -ToolsSpellcheck Selection... - - -This initiates the spellchecking program, but only checks the currently selected -text in the document. For more information, see . - - - - - -ToolsChange Dictionary... - - -This allows you to change the dictionary used to check spellings. For more -information, see . - - - - - - - - -The Settings Menu -The Settings allows you to customize the application. - -This menu typically contains the following items: - - - - - -&Ctrl;M - -Settings -Show Menubar - -Hides and shows the menubar. - - - - -Settings -Show Statusbar - - - -Toggles the display of the statusbar on and off. Some &kde; applications use statusbar at the bottom of their screen to display useful information. - - - - - - -SettingsToolbars Shown - - -Allows you to show and hide the various toolbars supported by the application. - - - - - -SettingsConfigure Shortcuts... - - -Allows you to enable, disable, and modify keyboard shortcuts. For more -information, see . - - - - - -SettingsConfigure Toolbars... - - -Allows you to customize the contents, layout, text, and icons of toolbars. For -more information, see . - - - - -SettingsConfigure -Notifications... -This item displays a standard &kde; notifications configuration -dialog, where you can change the notifications (sounds, visible messages, -&etc;) used by the application. -For more information how to configure notifications please read the documentation for -the &systemsettings; module Manage Notifications. - - - - - - -SettingsConfigure Application... - - -Opens the configuration panel for the currently running application. - - - - - - - -The Help Menu -The Help menu gives you access to the application's -documentation and other useful resources. - - - - - - - -F1 - -Help -Application Handbook - - -Invokes the KDE Help system starting at the -running application's handbook. - - - - - -&Shift;F1 - -Help -What's This? - - -Changes the mouse cursor to a combination arrow and -question mark. Clicking on items within the application; will open a help -window (if one exists for the particular item) explaining the item's -function. - - - - - -Help -Report Bug... - -Opens the Bug report dialog where you can -report a bug or request a wishlist feature. - - - - -Help -Switch Application Language... - -Opens a dialog where you can -edit the Primary language and Fallback language -for this application. - - - - -Help -About Application - -This will display version and author -information for the running application. - - - - -Help -About KDE - -This displays the &kde; Development Platform version -and other basic information. - - - - - - -Thanks and Acknowledgments - -Special thanks to an anonymous Google Code-In 2011 participant for writing -much of this documentation. - - - - - - - - -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - - -Common Keyboard Shortcuts - -The &plasma-workspaces; provide keyboard shortcuts that allow you to -perform many tasks without touching your mouse. If you use your keyboard -frequently, using these can save you lots of time. - -This list contains the most common shortcuts supported by the workspace -itself and many applications available within. Every application also provides -its own shortcuts, so be sure to check their manuals for a comprehensive -listing. - - -The Meta key described below is a generic name for -the custom key found on many different keyboards. On keyboards -designed for &Microsoft; &Windows;, this key is usually called the -Windows key, and will have a picture of the &Windows; -logo. On keyboards designed for &Mac; computers, this key is known as -the Command key and will have a picture of the -Apple logo and/or the - symbol. On keyboards designed for &UNIX; systems, this key -is really known as the Meta key and is typically labeled with a -diamond: . - - - -Working with Windows - -These shortcuts allow you to perform all kinds of operations with windows, -whether it be opening, closing, moving, or switching between them. - - -Starting and Stopping Applications - -These shortcuts make it easy to start and stop programs. - - - - - - -Shortcut -Description - - - - - - -&Ctrl;Q -Quit - - - -&Ctrl;Esc -System Activity - - - -&Ctrl;&Alt;&Esc; -Force Quit - - - -&Alt;F2 -Run Command Interface - - - -&Alt;F4 -Close - - - - - - - - -Moving Around - -These shortcuts allow you to navigate between windows, activities, and -desktops efficiently. - - - - - - -Shortcut -Description - - - - - - -&Ctrl;F10 -Present Windows - - - -&Ctrl;F9 -Present Windows on current desktop - - - -&Ctrl;F7 -Present Windows of current application only - - - -&Ctrl;F11 -Desktop Cube - - - -&Ctrl;F12 -Show Dashboard - - - -&Ctrl;&Alt;A -Activate Window Demanding Attention - - - -&Alt; -Walk through windows - - - -&Alt;` -Walk through windows of the current application - - - -&Alt;F3 -Open the Window Operations menu - - - -&Meta;&Alt;Up -Switch to Window Above - - - -&Meta;&Alt;Down -Switch to Window Below - - - -&Meta;&Alt;Left -Switch to Window to the Left - - - -&Meta;&Alt;Right -Switch to Window to the Right - - - - - - - - -Panning and Zooming - -Need to get a closer look? The &plasma-workspaces; allow you to zoom in -and out and move your entire desktop around, so you can zoom in even when the -application you are using doesn't support it. - - - - - - -Shortcut -Description - - - - - - - - -&Meta;= -Zoom In - - - -&Meta;- -Zoom Out - - - -&Meta;0 -Zoom Normal - - - -&Meta;Up -Pan Up - - - -&Meta;Down -Pan Down - - - -&Meta;Left -Pan left - - - -&Meta;Right -Pan Right - - - - - - - - - -Working with Activities and Virtual Desktops - -These shortcuts allow you to switch between and manage -Activities -and virtual desktops. - - - - - - -Shortcut -Description - - - - - - -&Ctrl;Q -View all your Activities - - - -&Meta; -Next Activity - - - -&Meta;&Shift; -Previous Activity - - - - - &Alt;D - R - -Remove this Activity - - - - - &Alt;D - S - -Activities Settings - - - -&Ctrl;F1 -Switch to Desktop 1 - - - -&Ctrl;F2 -Switch to Desktop 2 - - - -&Ctrl;F3 -Switch to Desktop 3 - - - -&Ctrl;F4 -Switch to Desktop 4 - - - - - - - - -Working with the Desktop - -These shortcuts allow you to work with the &plasma-desktop; and panels. - - - - - - - -Shortcut -Description - - - - - - - - &Alt;D - A - -Add Widgets - - - - - &Alt;D - R - -Remove Widgets - - - - - &Alt;D - L - -Lock/Unlock Widgets - - - - - &Alt;D - N - -Next Widget - - - - - &Alt;D - P - -Previous Widget - - - - - &Alt;D - S - -Widget Settings - - - -&Ctrl;F12 -Show Dashboard - - - - - &Alt;D - T - -Run the Associated Application - - - -&Alt;&Shift;F12 -Enable/Disable Desktop Effects - - - - - - - - -Getting Help - -Need some help? The manual for the current application is only a keypress -away, and some programs even have additional help that explains the element in -focus. - - - - - - -Shortcut -Description - - - - - - -F1 -Help - - - -&Shift;F1 -What's This? - - - - - - - - -Working with Documents - -Whether it's a text document, spreadsheet, or web site, these shortcuts -make performing many kinds of tasks with them easy. - - - - - - -Shortcut -Description - - - - - - -F5 -Refresh - - - -&Ctrl;A -Select All - - - -&Ctrl;Z -Undo - - - -&Ctrl;&Shift;Z -Redo - - - -&Ctrl;X -Cut - - - -&Ctrl;C -Copy - - - -&Ctrl;V -Paste - - - -&Ctrl;N -New - - - -&Ctrl;P -Print - - - - -&Ctrl;S -Save - - - - -&Ctrl;F -Find - - - - -&Ctrl;W -Close Document/Tab - - - - - - - - -Working with Files - -Whether your in an Open/Save dialog or the &dolphin; file manager, these -shortcuts save you time when performing operations on files. Note that some of -the concepts used with files are the same as with documents, so several of the -shortcuts are identical to their counterparts listed above. - - - - - - -Shortcut -Description - - - - - - -&Ctrl;Z -Undo - - - -&Ctrl;X -Cut - - - -&Ctrl;C -Copy - - - -&Ctrl;V -Paste - - - -&Ctrl;A -Select All - - - -&Ctrl;L -Replace Location - - - -&Ctrl;&Shift;A -Invert Selection - - - -&Alt;Left -Back - - - -&Alt;Right -Forward - - - -&Alt;Up -Up (to folder that contains this one) - - - -&Alt;Home -Home Folder - - - -Delete -Move to Trash - - - -&Shift;Delete -Delete Permanently - - - - - - - - -Changing Volume and Brightness - -In addition to the standard keys, many computer keyboards and laptops -nowadays have special keys or buttons to change the speaker volume, as well as -the brightness of your monitor if applicable. If present, you can use these -keys in the &plasma-workspaces; to perform those tasks. - -If you do not have such keys, see for -information on how to assign keys for these tasks. - - - - -Leaving Your Computer - -All done? Use these shortcuts and put your computer away! - - - - - - -Shortcut -Description - - - - - - -&Ctrl;&Alt;Insert -Switch User - - - -&Ctrl;&Alt;L -Lock Session - - - -&Ctrl;&Alt;Delete -Logout - - - -&Ctrl;&Alt;&Shift;Delete -Logout without confirmation - - - -&Ctrl;&Alt;&Shift;Page Down -Shut Down without confirmation - - - -&Ctrl;&Alt;&Shift;Page Up -Reboot without confirmation - - - - - - - - -Modifying Shortcuts - -The shortcuts described in Working With -Windows, Leaving Your Computer, and -Changing Volume and Brightness are called -global shortcuts, since they work regardless of which -window you have open on your screen. These can be modified in the -Global Shortcuts panel of -&systemsettings;, where they are separated by &kde; component. - -The shortcuts described in Working with -Activities and Virtual Desktops and Working -with the Desktop can be modified by clicking on the -Desktop Toolbox and -selecting Shortcut Settings. - -The shortcuts described in Working with -Documents and Getting Help are set by -individual programs. Most &kde; programs allow you to use the -common shortcut editing dialog to modify these. -The shortcuts described in Working With Files -can be edited in the same manner when used inside a file manager like &dolphin; -or &konqueror;, but cannot be modified in the case of Open/Save dialogs, &etc; - - - - - - diff --git a/doc/fundamentals/visualdict-breadcrumb.png b/doc/fundamentals/visualdict-breadcrumb.png deleted file mode 100644 index e2a8db5b..00000000 Binary files a/doc/fundamentals/visualdict-breadcrumb.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-button.png b/doc/fundamentals/visualdict-button.png deleted file mode 100644 index 845c4940..00000000 Binary files a/doc/fundamentals/visualdict-button.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-central-widget.png b/doc/fundamentals/visualdict-central-widget.png deleted file mode 100644 index b8305a7c..00000000 Binary files a/doc/fundamentals/visualdict-central-widget.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-check-box.png b/doc/fundamentals/visualdict-check-box.png deleted file mode 100644 index 32046468..00000000 Binary files a/doc/fundamentals/visualdict-check-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-color-selector.png b/doc/fundamentals/visualdict-color-selector.png deleted file mode 100644 index 7d19b369..00000000 Binary files a/doc/fundamentals/visualdict-color-selector.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-combo-box.png b/doc/fundamentals/visualdict-combo-box.png deleted file mode 100644 index 2b4c3d76..00000000 Binary files a/doc/fundamentals/visualdict-combo-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-context-menu.png b/doc/fundamentals/visualdict-context-menu.png deleted file mode 100644 index 0bbac64e..00000000 Binary files a/doc/fundamentals/visualdict-context-menu.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-dialog-box.png b/doc/fundamentals/visualdict-dialog-box.png deleted file mode 100644 index 87ef8beb..00000000 Binary files a/doc/fundamentals/visualdict-dialog-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-drop-down-box.png b/doc/fundamentals/visualdict-drop-down-box.png deleted file mode 100644 index 42bb4319..00000000 Binary files a/doc/fundamentals/visualdict-drop-down-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-gui1.png b/doc/fundamentals/visualdict-gui1.png deleted file mode 100644 index 17b2a7a1..00000000 Binary files a/doc/fundamentals/visualdict-gui1.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-gui2.png b/doc/fundamentals/visualdict-gui2.png deleted file mode 100644 index 5c2df0af..00000000 Binary files a/doc/fundamentals/visualdict-gui2.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-gui3.png b/doc/fundamentals/visualdict-gui3.png deleted file mode 100644 index c8aafcef..00000000 Binary files a/doc/fundamentals/visualdict-gui3.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-gui4.png b/doc/fundamentals/visualdict-gui4.png deleted file mode 100644 index 9e763a42..00000000 Binary files a/doc/fundamentals/visualdict-gui4.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-icon-list.png b/doc/fundamentals/visualdict-icon-list.png deleted file mode 100644 index 89f40cad..00000000 Binary files a/doc/fundamentals/visualdict-icon-list.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-icon.png b/doc/fundamentals/visualdict-icon.png deleted file mode 100644 index be294b73..00000000 Binary files a/doc/fundamentals/visualdict-icon.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-list-box.png b/doc/fundamentals/visualdict-list-box.png deleted file mode 100644 index 4a7e9cbc..00000000 Binary files a/doc/fundamentals/visualdict-list-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-menu-button.png b/doc/fundamentals/visualdict-menu-button.png deleted file mode 100644 index 51d3f3e5..00000000 Binary files a/doc/fundamentals/visualdict-menu-button.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-menu.png b/doc/fundamentals/visualdict-menu.png deleted file mode 100644 index 7e235946..00000000 Binary files a/doc/fundamentals/visualdict-menu.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-menubar.png b/doc/fundamentals/visualdict-menubar.png deleted file mode 100644 index 768dfd69..00000000 Binary files a/doc/fundamentals/visualdict-menubar.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-panel.png b/doc/fundamentals/visualdict-panel.png deleted file mode 100644 index a7093bc7..00000000 Binary files a/doc/fundamentals/visualdict-panel.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-progress-bar.png b/doc/fundamentals/visualdict-progress-bar.png deleted file mode 100644 index 627ce6f5..00000000 Binary files a/doc/fundamentals/visualdict-progress-bar.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-radio-button.png b/doc/fundamentals/visualdict-radio-button.png deleted file mode 100644 index e350ff43..00000000 Binary files a/doc/fundamentals/visualdict-radio-button.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-scrollbar.png b/doc/fundamentals/visualdict-scrollbar.png deleted file mode 100644 index f5762983..00000000 Binary files a/doc/fundamentals/visualdict-scrollbar.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-slider.png b/doc/fundamentals/visualdict-slider.png deleted file mode 100644 index 27a61159..00000000 Binary files a/doc/fundamentals/visualdict-slider.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-spin-box.png b/doc/fundamentals/visualdict-spin-box.png deleted file mode 100644 index ed1fe812..00000000 Binary files a/doc/fundamentals/visualdict-spin-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-statusbar.png b/doc/fundamentals/visualdict-statusbar.png deleted file mode 100644 index 247dceb9..00000000 Binary files a/doc/fundamentals/visualdict-statusbar.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-tab.png b/doc/fundamentals/visualdict-tab.png deleted file mode 100644 index cf269029..00000000 Binary files a/doc/fundamentals/visualdict-tab.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-text-area.png b/doc/fundamentals/visualdict-text-area.png deleted file mode 100644 index 29b66a95..00000000 Binary files a/doc/fundamentals/visualdict-text-area.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-text-box.png b/doc/fundamentals/visualdict-text-box.png deleted file mode 100644 index 3b2ce3cc..00000000 Binary files a/doc/fundamentals/visualdict-text-box.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-titlebar.png b/doc/fundamentals/visualdict-titlebar.png deleted file mode 100644 index 46a1dc1f..00000000 Binary files a/doc/fundamentals/visualdict-titlebar.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-toolbar.png b/doc/fundamentals/visualdict-toolbar.png deleted file mode 100644 index 319332ce..00000000 Binary files a/doc/fundamentals/visualdict-toolbar.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-tree-view.png b/doc/fundamentals/visualdict-tree-view.png deleted file mode 100644 index 4c8722e7..00000000 Binary files a/doc/fundamentals/visualdict-tree-view.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-window.png b/doc/fundamentals/visualdict-window.png deleted file mode 100644 index e618521b..00000000 Binary files a/doc/fundamentals/visualdict-window.png and /dev/null differ diff --git a/doc/fundamentals/visualdict-window2.png b/doc/fundamentals/visualdict-window2.png deleted file mode 100644 index 1afa2376..00000000 Binary files a/doc/fundamentals/visualdict-window2.png and /dev/null differ diff --git a/doc/glossary/CMakeLists.txt b/doc/glossary/CMakeLists.txt deleted file mode 100644 index 18cd3d05..00000000 --- a/doc/glossary/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR khelpcenter/glossary) diff --git a/doc/glossary/checkxrefs b/doc/glossary/checkxrefs deleted file mode 100755 index 0805ec6b..00000000 --- a/doc/glossary/checkxrefs +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -DEFINED_ENTRIES=`sed -ne "s^.*.*^\1^p" *.docbook` -REFERENCED_ENTRIES=`sed -ne "s^.*.*^\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 diff --git a/doc/glossary/index.docbook b/doc/glossary/index.docbook deleted file mode 100644 index 5f31f04a..00000000 --- a/doc/glossary/index.docbook +++ /dev/null @@ -1,611 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - Technologies - - Akonadi - 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, ⪚ having a unique way to access PIM-data (contacts, calendars, emails..) from different applications (⪚ &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; - &GUI; - &kde; - - - - ARts - 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; - &kde; - Phonon - &plasma; - - - - D-Bus - 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; - &DCOP; - GNOME - &kde; - &Qt; - - - - DCOP - DCOP, 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; - D-Bus - &kde; - - - - Flake - 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; - &kde; - KParts - - - - Get Hot New Stuff - &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; - &kde; - &plasma; - - - - GHNS - GHNS is the acronym of Get Hot New Stuff. - Get Hot New Stuff - - - - IO Slave - IO Slaves enable &kde; applications to - access remote resources as easily as local resources (making them - "network transparent"). Remote resources (⪚ files) might - be stored on SMB shares or similar. - SMB - &kde; - - - - KHTML - 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. - &kde; - &konqueror; - KParts - &plasma; - WebKit - - - - KIO - The &kde; Input/Output system which makes use of so-called - "IO Slaves". - IO -Slave - &kde; - - - - Kiosk - 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, Kiosktool is &kde; 3 only. It can be used to configure &kde; 4 applications, or kiosk configurations can be maintained by editing config files manually. - &kde; - - - - KParts - 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. - &konqueror; - - - - KSycoca - KSycoca (&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. - KBuildSycoca - - - - Phonon - 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; - &arts; - &kde; - - - - Solid - 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; - &kde; - - - - Threadweaver - 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; - &kde; - - - - WebKit - HTML rendering engine, originating from a fork of KHTML. Adopted by Apple and developed for Safari. 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; - &kde; - KHTML - - - - - - X.Org - - Antialiasing - 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. - &kde; - &Qt; - - - - &X-Server; - 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. - &kde; - &GUI; - - - - - - Applications - - Dolphin - 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 USB 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; - &kde; - &konqueror; - - - - KBuildSycoca - KBuildSycoca4 is a command line - program and regenerates the - so-called KSycoca. This is useful, for example, if some - or all modules in - &systemsettings; are missing. - KSycoca - &systemsettings; - - - - KInfoCenter - 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; - &kde; - Solid - &systemsettings; - - - - &konqueror; - &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;. - &kde; - - - - KRunner - The mini-command-line that is accessed from the Classic menu, the keyboard shortcut &Alt;+F2, 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; - &kde; - &plasma; - - - - KWin - 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; - &kde; - &X-Server; - - - - Mini-CLI - Mini &emstart;C&emend;ommand &emstart;L&emend;ine &emstart;I&emend;nterface. Synonym to KRunner. - KRunner - - - - Pager - 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. - &kde; - Kickoff - Kicker - Panel - &plasma; - Virtual Desktops - - - - &systemsettings; - This is the project and filename of the &kde; control - center. &systemsettings; allows you to customize virtually - every configuration option of &kde;. - &kde; - KInfoCenter - - - - - - Desktop Terminology - - Activities - 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; - &kde; - Virtual Desktops - - - - Containment - 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; - &kde; - Widget - - - - Drag and Drop - This concept tries to replace many actions like copying - files from one place to another by a certain mouse movement, ⪚ - 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. - &konqueror; - - - - Extender - 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; - &kde; - &plasma; - - - - GNOME - - &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. - &GUI; - - - - &GUI; - 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. - &kde; - - - - Home Directory - 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; - &dolphin; - - - - &kde; - 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. - &GUI; - - - - &kicker; - - 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. - Panel - &plasma; - - - - &kickoff; - - 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; - &kde; - Pager - Panel - &plasma; - - - - Oxygen - - 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; - &kde; - KSVG - &plasma; - - - - Panel - Refers to the panel which often resides at the bottom of the - screen. - &kde; - &kicker; - &kickoff; - &plasma; - - - - Plasma - 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 Google 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; - &kde; - &kicker; - Widget - - - - Ripping - The process of reading audio data from a &cdrom; and - storing it on the hard disk. - - - - Virtual Desktops - 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; - &kde; - &kickoff; - Pager - - - - - - &kde; Development - - &Qt; - 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;. - &kde; - &GUI; - Widget - - - - Git - 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; - &kde; - SVN - - - - i18n - 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;. - &kde; - &GUI; - - - - Kross - Kross is a scripting framework, enabling support for multiple scripting languages. A plugin system allows for the support of further languages in the future. - &kde; - - - - KDOM - A KPart module making KHTML DOM (&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. - &kde; - KHTML - KParts - KSVG - - - - KJS - &kde; platform's JavaScript engine. - &kde; - KParts - &plasma; - - - - KSVG - KSVG enables support for scalable vector graphics in a KHTML browser. KSVG2 extends this for &kde; SC 4. - &kde; - KHTML - KParts - - - - l10n - Abbreviation for "localization", the process - of adapting a program to the local environment. This includes ⪚ the - currency used for monetary values or the time format. - i18n - - - - Strigi - 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; - &kde; - - - - Widget - Graphical elements like scrollbars, buttons or input - fields which are used by &kde; to construct the &GUI;. - - &kde; - &GUI; - - - - SVN - Abbreviation for &emstart;Subversion&emend;, a version control system. The SVN 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 SVN on &linkstart;"http://developer.kde.org/source/anonsvn.html"&linkmid;http://developer.kde.org/source/anonsvn.html&linkend;.&newpara; More about SVN is available at &linkstart;"http://subversion.tigris.org/"&linkmid;http://subversion.tigris.org/&linkend;. - Git - - - - XMLGUI - 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; - &GUI; - Kparts - &Qt; - - - - - - Miscellaneous - - RFC - &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 - RFCs are not mandatory, many applications try to - adhere to them, once they have been approved by the community.&newpara; - More information about RFCs can be found at the - &linkstart;"http://www.rfc-editor.org"&linkmid;RFC Homepage&linkend;. - - - - - - Various protocols - - SMB - &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. - IO Slave - - - - IRC - &emstart;I&emend;nternet &emstart;R&emend;elay - &emstart;C&emend;hat. A protocol defined in RFC - 1459, which handles the specification to enable real-time text chat. - RFC - - - - Host - This can either be a name from your - /etc/hosts file - (mycomputer), - an Internet name (www.kde.org) or an IP-Address - (192.168.0.10). - - - - - - &glossary-kdeprinting; - diff --git a/doc/glossary/kdeprintingglossary.docbook b/doc/glossary/kdeprintingglossary.docbook deleted file mode 100644 index fffc420b..00000000 --- a/doc/glossary/kdeprintingglossary.docbook +++ /dev/null @@ -1,941 +0,0 @@ - - - - Printing - - - - ACLs - 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 ∪︀; this will be refined - in future versions. - Authentication - - - - - AppSocket Protocol - 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"... - &HP; JetDirect Protocol - Direct TCP/IP Printing - - - - - APSfilter - 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; - ∪︀ 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. - Ghostscript - Magicfilter - &MIME;-Types - printcap - - - - - Authentication - 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. - ACLs - - - - - Bi-directional communication - 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), ∪︀ and IPP - support bi-directional communication, LPR/LPD and BSD-style printing - do not... - AppSocket Protocol - ∪︀ - Direct TCP/IP Printing - &HP; JetDirect - IPP - LPR/LPD - - - - - BSD-style Printing - 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. - - IPP - ∪︀ - LPR/LPD printing - - - - - ∪︀ - Abbreviation for &emstart;C&emend;ommon - &emstart;U&emend;NIX &emstart;P&emend;rinting - &emstart;S&emend;ystem; ∪︀ 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; - ∪︀ 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 - ∪︀.&newpara; - More info:&newpara; - &linkstart;"http://www.cups.org"&linkmid;∪︀ Homepage&linkend; - ACLs - Authentication - BSD-style printing - IPP - LPR/LPD - PPD - - - - - - ∪︀-FAQ - &linkstart;"http://www.cups.org/articles.php?L+TFAQ"&linkmid;∪︀-FAQ&linkend; - is a valuable resource to answer many questions that anyone new to - ∪︀ printing might have at first. - - - - - - Daemon - Abbreviation for &emstart;D&emend;isk - &emstart;a&emend;nd &emstart;e&emend;xecution - &emstart;mon&emend;itor; Daemons 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); ∪︀ is - widely seen as the successor to LPD in the &UNIX; world and - it also operates through a daemon. - SPOOLing - - - - - Database, Linuxprinting.org - 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 - ∪︀ 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 ∪︀ 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 ∪︀ (LPR/LPD, LPRng, PDQ, PPR) to a certain - degree ("stealing" some concepts from ∪︀). 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. - - Foomatic - Linuxprinting database - - - - - Direct TCP/IP Printing - 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. - AppSocket Protocol - &HP; JetDirect Protocol - - - - - - Drivers, Printer Drivers - 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". - - Filter - PPDs - - - - - Easy Software Products - 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;∪︀&linkend; (the 'Common &UNIX; Printing - System').&newpara; - ESP financed themselves by selling a commercial version - of ∪︀, 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. - - ∪︀ - ESP - Gimp-Print - - - - - Encryption - 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 ⪚ 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). - Authentication - ∪︀ - IPP - SSL - TLS - - - - - - Epson - 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. - - - - - - - Escape Sequences - 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. - - PCL - PDL - - - - - ESC/P - 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. - PCL - &PostScript; - hpgl - - - - - ESP - Abbreviation for &emstart;E&emend;asy - &emstart;S&emend;oftware &emstart;P&emend;roducts; - the company that developed ∪︀ (the "Common &UNIX; Printing System"). - - Easy Software Products - ∪︀ - - - - - - Filter - 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. - - Ghostscript - RIP - - - - - Foomatic - 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). - - - - - Ghostscript - 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 GPL 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; - &PostScript; - RIP - - - - - Gimp-Print - 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 ∪︀, 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. - Lexmark Drivers - RIP - Ghostscript - - - - - &HP; - 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. - - - - - - - &HP;/GL - 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. - ESC/P - PCL - &PostScript; - - - - - &HP; JetDirect Protocol - 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. - AppSocket Protocol - Direct TCP/IP Printing - - - - - IETF - 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. - IPP - PWG - RFC - - - - - IPP - 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) - - - ∪︀ - PWG - IETF - RFC - TLS - - - - - - Lexmark - 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. - - - - - - Linuxprinting.org - 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. - - Linuxprinting database - - - - - - Linuxprinting.org Database - &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; - Foomatic - - - - - LPR/LPD printing - 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. - BSD-style printing - - - - - Magicfilter - 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. - APSfilter - - - - - &MIME;-Types - 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; - ∪︀ has some &MIME; types of its own registered, like - &emstart;application/vnd.cups-raster&emend; (for the ∪︀-internal - raster image format). - - ∪︀ - Easy Software Products - Gimp-Print - - - - - PCL - 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... - ESC/P - &HP;/GL - PDL - &PostScript; - - - - - PDL - 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;. - - ESC/P - &HP;/GL - PCL - &PostScript; - - - - - Pixel - 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. - Filter - Ghostscript - &PostScript; - Raster - - - - - PJL - 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. - PCL - - - - - &PostScript; - &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). - - ESC/P - &HP;/GL - PCL - PPD - - - - - PPD - 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. ∪︀ 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 ∪︀ 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 ∪︀ 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). - - ∪︀ - Linuxprinting.org - &PostScript; - - - - - printcap - 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. - BSD-style printing - - - - - - Printer-MIB - 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). - PWG - SNMP - - - - - PWG - 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. - &PostScript; - IPP - Printer-MIB - SNMP - - - - - - - Printer Database - Good database of printer drivers can be found at &linkstart;"http://www.openprinting.org/printers"&linkmid;http://www.openprinting.org/printers&linkend;. - Linuxprinting Database - - - - - Raster Image - 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. - Pixel - Ghostscript - &PostScript; - Filter - RIP - - - - - RIP - 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). - Filter - Ghostscript - &PostScript; - PDL - Raster - - - - - - RLPR (Remote LPR) - 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. - - printcap - - - - - - SNMP - 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. - PWG - Printer-MIB - - - - - SSL(3) encryption - Abbreviation for &emstart;S&emend;ecure - &emstart;S&emend;ocket &emstart;L&emend;ayer; - SSL 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. - - TLS - - - - - - SPOOLing - Abbreviation for &emstart;S&emend;ynchronous - &emstart;P&emend;eripheral &emstart;O&emend;perations - &emstart;O&emend;n&emstart;L&emend;ine; - SPOOLing enables printing applications - (and users) to continue their work - as the job is being taken care of by a system daemon, - which stores the file at a temporary location until the printer is ready - to print. - Daemon - - - - - - TLS encryption - Abbreviation for &emstart;T&emend;ransport - &emstart;L&emend;ayer &emstart;S&emend;ecurity; - TLS 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. - - SSL(3) - - - - - - System V-style printing - 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. - - BSD-style printing - IPP - - - - - TurboPrint - 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 ∪︀ system. - Gimp-Print - - - - - XPP - Abbreviation for &emstart;X&emend; - &emstart;P&emend;rinting &emstart;P&emend;anel; - XPP was the first Free - graphical print command for ∪︀, written by Till Kamppeter, - and in some ways a model for the "kprinter" utility in &kde; 3. - - - - - - - diff --git a/doc/kcontrol/CMakeLists.txt b/doc/kcontrol/CMakeLists.txt deleted file mode 100644 index ce39a4a4..00000000 --- a/doc/kcontrol/CMakeLists.txt +++ /dev/null @@ -1,65 +0,0 @@ -add_subdirectory(clock) -add_subdirectory(colors) -add_subdirectory(desktopthemedetails) -add_subdirectory(joystick) -add_subdirectory(kcmaccess) -add_subdirectory(kcmstyle) -add_subdirectory(solid-actions) -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) -add_subdirectory(bell) -add_subdirectory(cursortheme) -add_subdirectory(fonts) -add_subdirectory(fontinst) -add_subdirectory(keys) -add_subdirectory(keyboard) -add_subdirectory(kwindecoration) -add_subdirectory(desktop) -add_subdirectory(mouse) -add_subdirectory(paths) -add_subdirectory(screensaver) -add_subdirectory(windowspecific) -add_subdirectory(windowbehaviour) -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 ) diff --git a/doc/kcontrol/attica/CMakeLists.txt b/doc/kcontrol/attica/CMakeLists.txt deleted file mode 100644 index 63ca05e1..00000000 --- a/doc/kcontrol/attica/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/attica) diff --git a/doc/kcontrol/attica/index.docbook b/doc/kcontrol/attica/index.docbook deleted file mode 100644 index 1f5d36ce..00000000 --- a/doc/kcontrol/attica/index.docbook +++ /dev/null @@ -1,61 +0,0 @@ - - - -]> - -
- - -Social Desktop - -FrederikGladhorn -gladhorn@kde.org - - - - - -2013-11-05 -&kde; 4.12 - - -KDE -Systemsettings -Social Desktop - - - -The Social Desktop (Open Collaboration Services) settings module lets you -configure your user accounts for Open Collaboration Service Providers. - -At the time of writing openDesktop.org - is the first provider that you can use. -You can use the web site or this settings dialog to register and manage your account. - - -The benefit is that you can do more things in Get Hot New Stuff: -vote for items, become a fan of them and upload new content. A configured -account also allows you to use the social Plasma widgets (Community, -Social News &etc;) to their full extent. - - -Using the &systemsettings; module: - -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 Test Login button - - - -If you do not have an account yet, use the Register tab. -Here you need to fill out all fields. -After clicking Register... you will receive an email from the -server to activate your account. - - -
diff --git a/doc/kcontrol/autostart/CMakeLists.txt b/doc/kcontrol/autostart/CMakeLists.txt deleted file mode 100644 index 635f1ebf..00000000 --- a/doc/kcontrol/autostart/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/autostart) diff --git a/doc/kcontrol/autostart/index.docbook b/doc/kcontrol/autostart/index.docbook deleted file mode 100644 index 0f715c25..00000000 --- a/doc/kcontrol/autostart/index.docbook +++ /dev/null @@ -1,183 +0,0 @@ - - - -]> -
- -Autostart - -&Anne-Marie.Mahfouf; - - - -2013-12-05 -&kde; 4.12 - - -KDE -System Settings -autostart -desktop file -script file - - - - -Autostart Manager - -This module is a configuration tool for managing what programs start up with your personal &kde;. It allows you to add programs or scripts so they automatically start during the startup of your &kde; session and to manage them. - -Please note that in this module all changes are immediately applied. - -The program scans ~/.config/autostart/, your KDE Autostart folder ($KDEHOME/Autostart as default), $KDEHOME/env and $KDEHOME/shutdown folders to check what programs and scripts are already there and displays them. It allows you to manage them easily. - - -Note that you can change the location of your Autostart -folder in Account Details Paths -in the Common Appearance and Behaviour category of the &systemsettings; and set a different folder -than $KDEHOME/Autostart. - - -Files display -The main part of the module displays the programs that are loaded when &kde; starts and scripts that are run when &kde; starts, shutdowns or before &kde; starts. - - -Name - - -You cannot amend this column. It states the name of the program or script you want to start with &kde;. The name is extracted from the Desktop file from the Name key for a program and is the filename for a script. - - - - -Command - - -This column lists the commands that are run to start the program. Commands can be modified through the Properties button or by double clicking the program/script row. The command is extracted from the Desktop file from the Exec key. - - -For a script the command is the path to the script. - - - - -Status - - -This setting is only available for programs through Desktop files. You can keep a program in the Autostart folder but disable it from being run at &kde; start. Setting the program to Disabled will not run it on start. - - -Setting a program to Disabled sets the Desktop file Hidden property to true in the Autostart folder. - - - - -Run On - - -Programs (Desktop files) can only be run on startup. Scripts can be run on Startup, Shutdown or Pre-KDE Startup. This column allows you to change when your script is run. Startup is when &kde; starts, shutdown is when you log out of &kde; and pre-KDE startup is before &kde; starts. - - -Scripts and desktop files set to run on Startup are copied or symlinked in $KDEHOME/Autostart and will be run during &kde; startup. - - -Scripts set on to be ran on Shutdown are copied or symlinked in the $KDEHOME/shutdown directory and will be automatically run during &kde; shutdown after the user has logged out. - - -Scripts set to run at Pre-&kde; Startup are copied or symlinked in $KDEHOME/env and are sourced during &kde; startup (the startkde script will look for scripts here). - - -Only scripts with the sh extension can be read by &kde; for Pre-&kde; startup and Shutdown modes. - - - - - - - -Actions - -On the right you have some buttons to change the way Autostart is configure. You can add programs or scripts, remove them or change their properties. - - - -Add Program - - -Clicking this button displays the standard &kde; Choose Application dialog and allows you to choose which program you want to start. After choosing the program, clicking OK brings you the properties for this program. - - -This will copy the program Desktop file in your Autostart folder. - - - - -Add Script - - -This button opens a dialog which asks you for the location of the script you want to add. If you keep Create as symlink checked (default) then the script will be added as a symlink. If you uncheck this option then the script will be copied in the corresponding local folder. - - - -Remove - - -Remove will immediately remove the Desktop file for the program or the script or symbolic link in the Autostart folder. - - - -Properties - - -This button (only enabled for programs &ie; Desktop files) allows you to change the properties of the program or script. You have general properties, permissions properties, a preview when applicable and properties related to the application for programs. - - - -Advanced - - -This button only applies to programs (&ie; Desktop files). A dialog asks you if you only want the program to autostart only in &kde; (and not in other desktop environments you might run). By default, the program will autostart in all desktop environments you might run. Checking Autostart only in KDE will autostart the program only if you start the &kde; desktop environment. - - -This sets the value KDE to the OnlyShowIn key of the program Desktop file. - - - - - - -
- - - diff --git a/doc/kcontrol/bell/CMakeLists.txt b/doc/kcontrol/bell/CMakeLists.txt deleted file mode 100644 index bb5c3b37..00000000 --- a/doc/kcontrol/bell/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/bell) diff --git a/doc/kcontrol/bell/index.docbook b/doc/kcontrol/bell/index.docbook deleted file mode 100644 index f904df75..00000000 --- a/doc/kcontrol/bell/index.docbook +++ /dev/null @@ -1,64 +0,0 @@ - - - -]> - -
-System Bell - - -PatDowler -MatthiasHoelzer -MikeMcBride - - - -2011-11-28 -&kde; 4.8 - - -The system bell or beep is a feature of the X server, which -attempts to make good use of the available hardware. - -&kde; normally does not use the system bell; instead using its -own system notifications, which could include log entries, message -popups, or its own beep. You can configure these in the -Manage Notifications &systemsettings; module. - -It is not always possible for the X server to actually make -a beep sound with exactly the parameters selected due to hardware -limitations. For example, on most PCs, volume control is not very good -so the X server seems to fake low volume with a reduced duration of -the sound. Thus, if the settings do not seem to do anything, this is -because the X server and/or the hardware do not support anything -better. - - Select Use system bell instead of system notification -then you are able to set the following parameters for the bell: - - - - -Volume (percentage of maximum volume) -Here you can customize the volume of the system bell. - - - -Pitch (in Hz) -Here you can customize the pitch of the system bell. - - - -Duration (in milliseconds) -Here you can customize the duration of the system bell. - - - - -For further customization of the bell, see the Accessibility &systemsettings; module. - -You can use the Test button to hear how -the current settings will sound. - -
diff --git a/doc/kcontrol/bookmarks/CMakeLists.txt b/doc/kcontrol/bookmarks/CMakeLists.txt deleted file mode 100644 index 2f98e645..00000000 --- a/doc/kcontrol/bookmarks/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/bookmarks) diff --git a/doc/kcontrol/bookmarks/index.docbook b/doc/kcontrol/bookmarks/index.docbook deleted file mode 100644 index 9f32fc43..00000000 --- a/doc/kcontrol/bookmarks/index.docbook +++ /dev/null @@ -1,101 +0,0 @@ - - - -]> - -
- - -Bookmarks - - -XavierVello -xavier.vello@gmail.com - - - - -2010-09-24 -0.2 (&kde; 4.5) - - -KDE -KControl -bookmarks -KIO - - - -Bookmarks home page -This module lets you configure the bookmarks home page. -To view the bookmarks home page enter bookmarks:/ in -the location bar. -The settings in this module are also accessible by entering -bookmarks:/config in the location bar. - -General settings - - -Number of columns to show - -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. - - - - -Show folder backgrounds - -Disable it on slow system to disable background images. - - - - - - -Bookmarks - - -Show bookmarks without folder - -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. - - - - -Flatten bookmarks tree - -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. - - - - -Show system places - -Show a box with KDE places (Home, Network, ...). Useful if you use konqueror as a file manager. - - - - - - -Pixmap cache - - -Disk cache size - -Specify how much disk space is used to cache the pixmaps. - - - - -Clear Cache - -Remove all cached images. This may be necessary if some favicons become corrupt and don't refresh automatically. - - - - - -
diff --git a/doc/kcontrol/cache/CMakeLists.txt b/doc/kcontrol/cache/CMakeLists.txt deleted file mode 100644 index 7509aba7..00000000 --- a/doc/kcontrol/cache/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/cache) diff --git a/doc/kcontrol/cache/index.docbook b/doc/kcontrol/cache/index.docbook deleted file mode 100644 index ce9ead36..00000000 --- a/doc/kcontrol/cache/index.docbook +++ /dev/null @@ -1,66 +0,0 @@ - - - -]> - -
-Cache - - - -LauriWatts - - - - -2009-11-20 -&kde; 4.4 - - -KDE -Systemsettings -Konqueror -Cache - - - -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;. - -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;. - -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 Use cache. - -You can set here how aggressively &konqueror; keeps the cache up -to date. Keep cache in sync 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. Use cache -whenever possible means that &konqueror; will try the cache, -and if an object is not there, it will directly download it for display. -Offline browsing mode means that &konqueror; will -try the cache, and if an object is not there, it will not attempt to -download it from the Internet. - -You can control the size of the cache by typing a number into the -text box labeled Disk cache size. 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. - -This is however, only an average, and during a browsing session -the cache could become substantially larger. - -You can use the Clear Cache button to empty -the cache at any time. - -
diff --git a/doc/kcontrol/clock/CMakeLists.txt b/doc/kcontrol/clock/CMakeLists.txt deleted file mode 100644 index 3cc3bc20..00000000 --- a/doc/kcontrol/clock/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/clock) diff --git a/doc/kcontrol/clock/index.docbook b/doc/kcontrol/clock/index.docbook deleted file mode 100644 index 5779367e..00000000 --- a/doc/kcontrol/clock/index.docbook +++ /dev/null @@ -1,90 +0,0 @@ - - - -]> - -
- -Date & Time - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-12-05 -4.12 - - -KDE -Systemsettings -clock -date -time -set -configure - - - - - -Date & Time - -You can use this module to alter the system date and time, using a -convenient graphical interface. - -As these settings do not only affect you as a user, -but rather the whole system, you must have system administrator (root) access to change the system date and -time. If you do not have this access level, this module will only show -you the current settings, but your changes will not be saved. - - -Date and Time - -If you check Set date and time automatically you are able -to select a Time server from the drop down box and all other -settings in this dialog are disabled. - - -The applications rdate or ntpdate are used in -this module to fetch date and time from a time server. This happens when you log in to &kde; -while being online or when you later connect to the Internet and access to time -servers is possible. -Both applications are simple NTP clients that set a system's clock -to match the time obtained by communicating with one or more NTP servers. -This is not sufficient, however, for maintaining an accurate clock in the long run. -This is useful for occasionally setting the time on machines that do not have full-time -network access, such as laptops. - - -If you do not use a time server, you are able to set the date manually -using the lower half of the tab. Simply -choose your month and year using the controls at the top of the calendar -and the day of the month by clicking on the day in the -calendar. -Use the controls at the bottom of the calendar -to select the current date, enter the date in the edit box or select the -week of the year from the drop down box. - -You set the time using the spin boxes at the bottom of the analog clock. -You can also directly enter your value. - - - - -Time Zone -To set a new time zone, simply select your area from the list below. -Use the filter box to find the desired Area or Region. - - - - -
diff --git a/doc/kcontrol/colors/CMakeLists.txt b/doc/kcontrol/colors/CMakeLists.txt deleted file mode 100644 index a8b87056..00000000 --- a/doc/kcontrol/colors/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/colors) diff --git a/doc/kcontrol/colors/index.docbook b/doc/kcontrol/colors/index.docbook deleted file mode 100644 index 6b6def0c..00000000 --- a/doc/kcontrol/colors/index.docbook +++ /dev/null @@ -1,399 +0,0 @@ - - - - -]> - -
- -Colors - -&Matthew.Woehlke; &Matthew.Woehlke.mail; - - - -2013-11-05 -4.12 - - -KDE -KControl -color -kcm - - - - -Colors - - - Introduction - - The Color Selection module is comprised of several sections: - - - - The Scheme tab, - used to manage schemes. - - - The Options tab, - used to change the options of the current scheme. - - - The Colors tab, - used to change the colors of the current scheme. - - - The state effects tabs - (Inactive, Disabled), used to - change the state effects of the current scheme. - - - - Note: This documentation will sometimes refer to the - "current" scheme, or the "active" scheme. - The "current" scheme is the set of colors and color scheme options - that was most recently applied, &ie; what you would get if you choose - Cancel. The "active" scheme is the set of - colors as has been most recently edited by you, &ie; what you would get if - you choose Apply. - - - - Scheme Management - - The Scheme tab lets you manage the color schemes - on your machine. Only one scheme is active at once, but you may save schemes, - allowing you to quickly change the scheme later. When you have created a - scheme you like, you can save it with Save Scheme.... - You can remove schemes using Remove Scheme. - Note that system schemes cannot be removed; trying to do so will display an - error. - - &kde; ships with several schemes. If you have an Internet connection, - you can also browse and retrieve user-created schemes using Get - New Schemes.... - - - Importing Schemes - - You can also import schemes that you have downloaded or otherwise - obtained, as well as import &kde; 3 schemes. &kde; 4 color schemes are - named like "*.colors", while &kde; 3 schemes are named like - "*.kcsrc". - - Because &kde; 4 has many more color roles than &kde;, importing a - &kde; 3 scheme is different from importing a &kde; 4 scheme. When a - &kde; 4 scheme is imported, it becomes part of your saved scheme - collection. When a &kde; 3 scheme is imported, the colors that exist in - &kde; 3 are overlaid onto the active scheme, and the result is not - automatically saved into your collection. After importing a &kde; 3 scheme, - you will likely need to adjust the colors that are new in &kde; 4, as well - as the state effects. For best results, before importing a &kde; 3 scheme, - select a similar &kde; 4 scheme (you do not need to apply the scheme before - importing). - - - - - Color Scheme Options - - The Options tab allows you to change some - properties that deal with how the color scheme is used, as well as some - options that change the color scheme that are different from actually - assigning colors. - - - Apply inactive window color effects - — If checked, state effects (see below) will be applied to inactive - windows. This can help visually identify active versus inactive windows, - and may have aesthetic value, depending on your taste. However, some - users feel that it causes distracting "flickering" since - windows must be repainted when they become inactive. Unlike desktop - effects, color state effects do not require compositing support and will - work on all systems, however they will only work on &kde; 4 applications. - - Inactive selection changes color - — If checked, the current selection in elements which do not have - input focus will be drawn using a different color. This can assist visual - identification of the element with input focus in some applications, - especially those which simultaneously display several lists. - - Shade sorted column in lists - — If checked, multi-column lists will use a slightly different - color to paint the column whose information is being used to sort the - items in the list. - - Apply colors to non-KDE4 applications - — If checked, &kde; will attempt to export its color scheme so that - non-&kde; 4 applications will use the same colors. Most applications will - honor the exported scheme to varying degrees, though some may have bugs - or otherwise not honor the exported scheme. - - Contrast - — This slider controls the contrast of shaded elements, such as - frame borders and the "3D" effects used by most styles. A lower - value gives less contrast and therefore softer edges, while a higher - value makes such edges "stand out" more. - - - - - - - Colors - - The Colors tab allows you to change the colors in - the active color scheme. - - Creating or changing a scheme is a simple matter of clicking on the - swatch in the color list and selecting a new color. You can check your - changes at any time by pressing Apply. It is suggested - that you save your scheme (via the Scheme tab) when you - are done. - - The Common Colors set, which is displayed - initially, is not actually a "set" in the sense used by &kde; (see - next section), but presents a number of color roles in a way that makes it - easier to edit the scheme as a whole. When creating a new color scheme, you - will usually change these colors first, and use the other sets to tweak - specific colors if needed. - - Note that Common Colors makes available roles from - all sets. For example, "View Background" here is shorthand for the - Normal Background role from the View set. Also, setting colors that do not - refer to a specific set will change that color in all - sets. (As an exception, "Inactive Text" will change the color for - all sets except for Selection; there is a separate - "Selection Inactive Text" for Inactive Text in the Selection set.) - Some roles may not be visible under Common Colors at - all, and can only be changed (if needed) by selecting the appropriate - set. - - - Color Sets - - &kde; 4 breaks the color scheme into several sets based on the type - of user interface element, as follows: - - View — - information presentation elements, such as lists, trees, text input boxes, etc. - - Window — - window elements that are not buttons or views. - - Button — - buttons and similar elements. - - Selection — - selected text and items. - - Tooltip — - tool tips, "What's This" tips, and similar elements. - - Window Manager — - window title bars and related elements. - - - - Each set contains a number of color roles. Except for the Window - Manager colors, each set has the same roles. All colors are associated with - one of the above sets. - - - - Color Roles - - Each color set is made up of a number of roles which are available in - all other sets. (The Window Manager set is an exception; it has its own - unique roles that do not exist in any other set, and does not use the same - roles as the other sets.) In addition to the obvious Normal Text and Normal - Background, these roles are as follows: - - - Alternate Background — - used when there is a need to subtly change the background to aid in - item association. This might be used ⪚ as the background of a - heading, but is mostly used for alternating rows in lists, especially - multi-column lists, to aid in visually tracking rows. - - Link Text — - used for hyperlinks or to otherwise indicate "something which may - be visited", or to show relationships. - - Visited Text — - used for "something (⪚ a hyperlink) that has been - visited", or to indicate something that is "old". - - Active Text — - used to indicate an active element or attract attention, ⪚ alerts, - notifications; also for hovered hyperlinks. - - Inactive Text — - used for text which should be unobtrusive, ⪚ comments, - "subtitles", unimportant information, etc. - - Negative Text — - used for errors, failure notices, notifications that an action may be - dangerous (⪚ unsafe web page or security context), etc. - - Neutral Text — - used to draw attention when another role is not appropriate; ⪚ - warnings, to indicate secure/encrypted content, etc. - - Positive Text — - used for success notices, to indicate trusted content, etc. - - - - As well as the text roles, there are a few additional - "decoration" roles that are used for drawing lines or shading - UI elements (while the above may, in appropriate circumstances, also be - used for this purpose, the following are specifically - not meant for drawing text). These are: - - - Focus Decoration — - used to indicate the item which has active input focus. - - Hover Decoration — - used for mouse-over effects, ⪚ the "illumination" effects for - buttons. - - - - In addition, except for Inactive Text, there is a corresponding - background role for each of the text roles. Currently (except for Normal - and Alternate Background), these colors are not chosen by the user, but are - automatically determined based on Normal Background and the corresponding - Text color. These colors may be previewed by selecting one of the sets - other than "Common Colors". - - The choice of color role is left to the developer; the above are - guidelines intended to represent typical usage. - - - - Window Manager Colors - - As previously stated, the Window Manager set has its own roles, - independent of those in other sets. These are (currently) only accessible - via Common Colors, and are as follows: - - - Active Titlebar — - used to draw the title bar background, borders, and/or decorations for - the active window (that is, the one with input focus). Not all window - decorations will use this in the same way, and some may even use the - Normal Background from the Window set to draw the title bar. - - Active Titlebar Text — - used to draw the title bar text when Active Titlebar is used to draw - the title bar background. May also be used for other foreground - elements which use Active Titlebar as the background. - - - - The Inactive Titlebar [Text] roles are the same as the above, but for - inactive windows, rather than active windows. - - - - - - Color State Effects - - Color state effects are applied to interface elements in the inactive - (windows that do not have focus; only if Apply inactive window - color effects is enabled) or disabled states. By changing the - effects, the appearance of elements in these states can be changed. Usually, - inactive elements will have reduced contrast (text fades slightly into the - background) and may have slightly reduced intensity, while disabled elements - will have strongly reduced contrast and are often notably darker or lighter. - - - Three types of effect may be applied to each state (with the effects - of the two states being independent). These are Intensity, Color and - Contrast. The first two (Intensity, Color) control the overall color, while - the last (Contrast) deals with the foreground colors relative to the - background. - - - Intensity - - Intensity allows the overall color to be lightened or darkened. - Setting the slider to the middle produces no change. The available effects - are: - - - Shade — - makes everything lighter or darker in a controlled manner. Each - "tick" on the slider increases or decreases the overall - intensity (&ie; perceived brightness) by an absolute amount. - - Darken — - changes the intensity to a percentage of the initial value. A slider - setting halfway between middle and maximum results in a color half as - intense as the original. The minimum gives a color twice as intense as - the original. - - Lighten — - conceptually the opposite of darken; lighten can be thought of as - working with "distance from white", where darken works with - "distance from black". The minimum is a color twice as - "far" from white as the original, while halfway between - middle and maximum gives an intensity halfway between the original - color and white. - - - - - - Color - - Color also changes the overall color, but is not limited to - intensity. The available effects are: - - - Desaturate — - changes the relative chroma. The middle setting produces no change; - maximum gives a gray whose perceptual intensity equals that of the - original color. Lower settings increase the chroma, giving a color that - is less gray / more "vibrant" than the original. - - Fade — - smoothly blends the original color into a reference color. The minimum - setting on the slider produces no change; maximum gives the reference - color. - - Tint — - similar to Fade, except that the color (hue and chroma) changes more - quickly while the intensity changes more slowly as the slider value is - increased. - - - - - - Contrast - - The contrast effects are similar to the color effects, except they - apply to the text, using the background color as the reference color, and - desaturate is not available. Fade produces text that "fades out" - more quickly, but keeps its color longer, while Tint produces text that - changes color to match the background more quickly while keeping a greater - intensity contrast for longer (where "longer" means higher - settings on the slider). For Contrast effects, the minimum setting on the - slider produces no change, while maximum causes the text to completely - disappear into the background. - - - - - - -
- diff --git a/doc/kcontrol/componentchooser/CMakeLists.txt b/doc/kcontrol/componentchooser/CMakeLists.txt deleted file mode 100644 index 9164b121..00000000 --- a/doc/kcontrol/componentchooser/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/componentchooser) diff --git a/doc/kcontrol/componentchooser/index.docbook b/doc/kcontrol/componentchooser/index.docbook deleted file mode 100644 index 4e353603..00000000 --- a/doc/kcontrol/componentchooser/index.docbook +++ /dev/null @@ -1,68 +0,0 @@ - - - -]> - -
- - -Default Applications - -BurkhardLück -lueck@hube-lueck.de - - - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -component - - - -In this module you can change &kde; default components. - -Components are programs that handle basic tasks, like the terminal emulator, the text -editor and the email client. Different &kde; applications sometimes need to -invoke a console emulator, send a mail or display some text. - -To do so consistently, these applications always call the same components. Here you -can select which programs these components are. - -The list on the left shows the configurable component types: - - -Email Client - - -Embedded Text Editor - - -File Manager - - -Instant Messenger - - -Terminal Emulator - - -Web Browser - - -Window Manager - - - - Click the component you want to configure. In the right part of the dialog then all available -applications for this service are displayed and you are able to select your favorite terminal emulator, text -editor and the email client &etc; - -
diff --git a/doc/kcontrol/cookies/CMakeLists.txt b/doc/kcontrol/cookies/CMakeLists.txt deleted file mode 100644 index 88fac298..00000000 --- a/doc/kcontrol/cookies/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/cookies) diff --git a/doc/kcontrol/cookies/index.docbook b/doc/kcontrol/cookies/index.docbook deleted file mode 100644 index cd817332..00000000 --- a/doc/kcontrol/cookies/index.docbook +++ /dev/null @@ -1,208 +0,0 @@ - - - -]> - -
- -Cookies - -&Krishna.Tateneni; &Krishna.Tateneni.mail; -&Jost.Schenck; &Jost.Schenck.mail; - - - -2012-11-11 -&kde; 4.10 - - -KDE -Systemsettings -cookie - - - - - -Cookies - -Cookies are a mechanism used by web sites to store and retrieve -information using your browser. For example, a web site may allow you -to customize the content and layout of the pages you see, so that your -choices are persistent across different visits to that web site. - -The web site is able to remember your preferences by storing a -cookie on your computer. Then, on future visits, the web site retrieves -the information stored in the cookie to format the content of the site -according to your previously specified preferences. - -Thus, cookies play a very useful role in web browsing. -Unfortunately, web sites often store and retrieve information in cookies -without your explicit knowledge or consent. Some of this information may -be quite useful to the web site owners, for example, by allowing them to -collect summary statistics on the number of visits different areas of -the web sites get, or to customize banner advertising. - -The cookies page allows you to set policies -for the use of cookies when you are browsing the web with the -&konqueror; web browser. - -Note that the policies that you set using this control -module will not apply to other web browsers such -as &Netscape;. - - - -Policy - -Using the Policy tab, you can configure the -&kde; applications that will handle cookies. You can do this by specifying a -general cookie policy as well as special cookie policies for certain -domains or hosts. - -The top of the policy tab has a check box labeled Enable -cookies. If you leave this unchecked, cookies will be -completely disabled. However, this may make browsing rather -inconvenient, especially as some web sites require the use of browsers -with cookies enabled. - -You will probably want to enable cookies and then set -specific policies on how you want them to be handled. - -The first group of options create settings that apply to all cookies. - - - -Only accept cookies from originating server - -Some pages try to set cookies from servers other than the one -you are seeing the &HTML; page from. For example, -they show you advertisements, and the advertisements are from another -computer, often one that belongs to a large advertising group. These -advertisements may try to set a cookie which would allow them to -track the pages you view across multiple web sites. -Enabling this option will mean only cookies that come from the -same web server as you are explicitly connecting to will be -accepted. - - - -Automatically accept session cookies - - -An increasingly common use for cookies is not to track your -movements across many visits to a web site, but to just follow what you -do during one single visit. Session cookies are saved as long as you -are looking at the site, and deleted when you leave it. - -Web sites can use this information for various things, most -commonly it is a convenience so that you do not have to keep logging in -to view pages. For example, on a webmail site, without some kind of -session ID, you would have to give your password -again for each email you want to read. There are other ways to -achieve this, but cookies are simple and very common. - -Enabling this option means that session cookies are always -accepted, even if you don't accept any other kind, and even if you -choose to reject cookies from a particular site, session cookies from -that site will be accepted. - - - - -The section for Default Policy sets some -further options that are mutually exclusive — you can choose only one -of these options as the default, but you are free to set a different -option for any specific web server. -Site specific policies always take precedence over the default -policy. - - - -Accept all cookies - -If this option is selected, all cookies will be accepted without -asking for confirmation. - - - -Accept until end of session - -Cookies will be accepted, but they will expire at the end -of the session. - - - -Ask for confirmation - -If this option is selected, you will be asked for confirmation -every time a cookie is stored or retrieved. You can selectively accept -or reject each cookie. The confirmation dialog will also allow you to -set a domain specific policy, if you do not want to confirm each -cookie for that domain. - - - -Reject all cookies - -If this option is selected, all cookies will be rejected without -asking for confirmation. - - - - -In addition to the default policy for handling of cookies, which you can -set by selecting one of the three options described above, you can also set -policies for specific host domains using the controls in the Site -Policy group. - -The Ask, Accept, Accept until end of session, or Reject policy can be applied to a specific -domain by clicking on the New... button, which -brings up a dialog. In this dialog, you can type the name of the -domain (with a leading dot), then select the policy you want to apply -to this domain. Note that entries may also get added while you are -browsing, if the default policy is to ask for confirmation, and you -choose a general policy for a specific host (for example, by selecting -Reject when asked to -confirm a cookie). - -You can also select a specific host domain from the list and click the -Change button to choose a different policy for that -domain than the one shown in the list. - -To delete a domain specific policy, choose a domain from the list, and -then click the Delete button. The default policy will -apply to domains which have been deleted from the list. - - - - -Management - -In the Management tab you can browse and selectively -delete cookies that have been set in the past. - -In the upper part of this dialog, you can see a list of domains displayed - as a tree. Click on the little > next to a domain to see all -cookies that have been set for this particular target domain. If you select one -of these cookies, you will notice that its contents will show up in the frame -Details below. - -By clicking the Delete button you can now delete the selected -cookie. Click Delete All to delete all cookies stored. - -If a domain is selected, you can use Configure Policy to set -a site policy. - -Choose Reload List to reload the list -from your hard disk. You might want to do this if you have had the -module open and are testing web sites, or have made many changes in the -module itself. - - - - - -
diff --git a/doc/kcontrol/cursortheme/CMakeLists.txt b/doc/kcontrol/cursortheme/CMakeLists.txt deleted file mode 100644 index ad525ad4..00000000 --- a/doc/kcontrol/cursortheme/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/cursortheme) diff --git a/doc/kcontrol/cursortheme/index.docbook b/doc/kcontrol/cursortheme/index.docbook deleted file mode 100644 index e316df8c..00000000 --- a/doc/kcontrol/cursortheme/index.docbook +++ /dev/null @@ -1,59 +0,0 @@ - - - -]> - -
- -Cursor Theme - -&Mike.McBride; &Mike.McBride.mail; -&Brad.Hards; &Brad.Hards.mail; - - - -2013-06-02 -&kde; 4.11 - - -This is the documentation for the &kde; &systemsettings; module to -customize the mouse cursor appearance. - - - - -KDE -Systemsettings -mouse -cursor - - - - -This module allows you to select from a number of installed cursor themes. -A preview of the cursor display is shown above the list box. - - -The features provided by this module may not be available on some systems. -Your system may need to be updated to support cursor themes. - - - -If you have additional cursor themes available, you can install and remove -them using the buttons right to the list box. Note that you cannot remove the default themes. - - -Use the Get New Themes button to launch the Get Hot New Stuff dialog and -download additional themes from the Internet. - -Some themes allow to -choose the cursor size using the combobox below to the label Size. - - - -The size can be set to the resolution dependent or one of the sizes available for your system. - - -
diff --git a/doc/kcontrol/desktop/CMakeLists.txt b/doc/kcontrol/desktop/CMakeLists.txt deleted file mode 100644 index 2728822f..00000000 --- a/doc/kcontrol/desktop/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/desktop) diff --git a/doc/kcontrol/desktop/index.docbook b/doc/kcontrol/desktop/index.docbook deleted file mode 100644 index e4a08926..00000000 --- a/doc/kcontrol/desktop/index.docbook +++ /dev/null @@ -1,141 +0,0 @@ - - - -]> - -
-Virtual Desktops - - - -&Mike.McBride; &Mike.McBride.mail; -&Jost.Schenck; &Jost.Schenck.mail; - - - -2013-06-02 -4.11 - - -KDE -Systemsettings -desktop - - - - - - -Virtual Desktops - - -<guilabel>Desktops</guilabel> - -&kde; offers you the possibility to have several virtual -desktops. In this tab you can configure the number of desktops, the number of rows in the Pager icon -as well as their names. Just use the input box to adjust the number of -desktops. You can assign names to the desktops by entering text into the -text fields below. - -Enable Different widgets for each desktop -to use independent widgets and wallpapers on each individual desktop. - - - - - -<guilabel>Switching</guilabel> - - - -Desktop navigation wraps around -Enable this option if you want keyboard or active desktop border navigation -beyond the edge of a desktop to take you to the opposite edge of the new desktop. - - - - -Desktop Effect Animation -Select No Animation, Slide, -Desktop Cube Animation or Fade Desktop -from the drop down box. If the selected animation has settings options, click on the -tools icon on the right of the drop down box to launch a configuration dialog. - - - - -Desktop Switch On-Screen Display -Enable this option if you want to have an on-screen display for desktop switching. - - - - -Show desktop layout indicators -Enabling this option will show a small preview of the desktop layout -indicating the selected desktop. - - - - -Shortcuts -This section displays the configured shortcuts for switching the desktops -and allows you to edit them. - - - - - -Scrolling the mouse wheel over an empty space on the -desktop or on the Pager icon in the panel will change to the next -virtual desktop numerically, in the direction you scrolled (either up or down). - - - - -
diff --git a/doc/kcontrol/desktopthemedetails/CMakeLists.txt b/doc/kcontrol/desktopthemedetails/CMakeLists.txt deleted file mode 100644 index 0714fb27..00000000 --- a/doc/kcontrol/desktopthemedetails/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/desktopthemedetails) diff --git a/doc/kcontrol/desktopthemedetails/clicking-apply.png b/doc/kcontrol/desktopthemedetails/clicking-apply.png deleted file mode 100644 index f57723b4..00000000 Binary files a/doc/kcontrol/desktopthemedetails/clicking-apply.png and /dev/null differ diff --git a/doc/kcontrol/desktopthemedetails/customizing.png b/doc/kcontrol/desktopthemedetails/customizing.png deleted file mode 100644 index a16743fd..00000000 Binary files a/doc/kcontrol/desktopthemedetails/customizing.png and /dev/null differ diff --git a/doc/kcontrol/desktopthemedetails/index.docbook b/doc/kcontrol/desktopthemedetails/index.docbook deleted file mode 100644 index adc35ceb..00000000 --- a/doc/kcontrol/desktopthemedetails/index.docbook +++ /dev/null @@ -1,182 +0,0 @@ - - - -]> -
- -Desktop Theme - - -Andrew -Lake - - - -2013-06-02 -&kde; 4.11 - - -KDE -System Settings -desktop -theme -plasma - - - - -Theme tab - -A list of available themes is displayed on this tab. Select a theme by clicking on an item in the list. - -Use the Get New Themes button to launch the Get Hot New Stuff dialog and -download additional themes from the Internet. - - - - -Details tab - -A &kde; plasma desktop theme is made up of several components or items, -consisting mostly in svg backgrounds and colors schemes. This module allows you -to customize your desktop Plasma theme and to replace theme items -with items from other themes or from files. - - -Desktop theme items consist in panel theme item, kickoff theme item, -analog clock, ... - - -If you want to change your current theme for a full new theme (for example from -Air to Glassified) then you can do so in the Theme tab. - - - -Quick start -First download one or several themes you want to use to customize your -desktop items by clicking the Get New Themes... -button in the Theme tab. - -All the available themes will be displayed on top, the current one being highlighted. - -In the theme list, select a base theme that will be used for most widgets and start -customizing each item you want to change with a new theme, for example you can -have the panel in Glassified theme, the widget -backgrounds in Air and so on. - -Here Air is the theme for most widgets and we changed the panel background -to Glassified, the Analog clock to Glassified and the Notes to Oxygen. - - - -Customizing your plasma theme - - - - - - Customizing your plasma theme - - - - - - -Clicking the Apply will create a new theme named -(Customized) and will apply it to your desktop. - - - - -Creating a custom theme -When the module is opened, it will show items from the current desktop -theme. If you would like to start customizing with a different theme, select it -from the box above the list of theme items. This theme from the box is the -starting theme, the base for your new customized desktop theme. - - -In the list of items, for each item you would like to replace, select -replacement item from the drop list for that item. You may select the -corresponding item from another theme, or you may select a file. &plasma; -desktop theme items are svg files, except for the color scheme which is a &kde; -color scheme file. - - - -Click Apply when all the changes have been made. This -will create a new theme named (Customized) which you can -select from the Appearance Settings dialog on the desktop. - - - - -Your custom theme - - - - - - Customized - - - - - - -The theme items listed are the most visible components of the plasma -desktop theme. Other theme components are not listed. Your newly created -theme will use these unlisted components from the theme that you selected at -the start of creating the customized theme. - - - - -Naming a custom theme - -To provide a name for your customized theme, click on the -More checkbox and -enter the name of the theme. You may also provide your name (author), a theme -version and a description of your theme. Click Apply -when done. - - - - -Removing a theme - -Select the theme you would like to remove from the box above the list of -theme items. Click on the More check box. Click the -Remove Theme button to -remove the selected theme. - - - - -Exporting a theme to a file - -You can share your newly customized theme with the community by exporting the -theme to a file. Select your customized theme from the box above the list -of theme items. Click on the More check box. Click the -Export Theme to -File.... Enter the name of the zip file to which the theme will be -saved. - - - - -
- - diff --git a/doc/kcontrol/ebrowsing/CMakeLists.txt b/doc/kcontrol/ebrowsing/CMakeLists.txt deleted file mode 100644 index 2bdd4b02..00000000 --- a/doc/kcontrol/ebrowsing/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/ebrowsing) diff --git a/doc/kcontrol/ebrowsing/index.docbook b/doc/kcontrol/ebrowsing/index.docbook deleted file mode 100644 index 63e6f693..00000000 --- a/doc/kcontrol/ebrowsing/index.docbook +++ /dev/null @@ -1,173 +0,0 @@ - - - -]> - -
- -Web Shortcuts - -&Krishna.Tateneni; &Krishna.Tateneni.mail; -&Yves.Arrouye; &Yves.Arrouye.mail; - - - -2013-05-30 -&kde; 4.11 - - -KDE -Systemsettings -enhanced browsing -web shortcuts -browsing - - - - - -Web Shortcuts - - - -Introduction - -&konqueror; offers some features to enhance your browsing -experience. One such feature is Web Shortcuts. - -You may already have noticed that &kde; is very Internet friendly. -For example, you can click on the Run menu -item or type the keyboard shortcut assigned to that command (&Alt;F2, -unless you have changed it) and type in a &URI;. -Uniform Resource Identifier. A standardized way of -referring to a resource such as a file on your computer, a World Wide -Web address, an email address, -etc.... - -Web shortcuts, on the other hand, let you come up with new pseudo -&URL; schemes, or shortcuts, that basically let you -parameterize commonly used -&URI;s. For example, if you like the Google search -engine, you can configure &kde; so that a pseudo &URL; -scheme like gg will trigger a search on -Google. This way, typing gg:my -query will search for my -query on Google. - -One can see why we call these pseudo &URL; -schemes. They are used like a &URL; scheme, but the -input is not properly &URL; encoded, so one will type -google:kde apps and not -google:kde+apps. - -You can use web -shortcuts wherever you would normally use -&URI;s. Shortcuts for several search engines should -already be configured on your system, but you can add new keywords, and -change or delete existing ones in this module. - - - - - -Web Shortcuts - -The descriptive names of defined web shortcuts are shown in a -list box. As with other lists in &kde;, you can click on a column -heading to toggle the sort order between ascending and -descending, and you can resize the columns. - -At the bottom of the list the option Enable Web shortcuts -has to be checked to enable this feature. Use the buttons on the right to -create, modify or delete shortcuts. - -If Use preferred shortcuts only is checked, only -web shortcuts marked as preferred in the third column of the list -are used in places where only a few select -shortcuts can be shown at one time. - - -Below the list you find two additional options: - -Default Web shortcuts - -Select the search engine to use for input boxes that provide automatic -lookup services when you type in normal words and phrases instead of a &URL;. -To disable this feature select None from the list. - - -Keyword delimiter - -Choose the delimiter that separates the keyword from the phrase or word to -be searched. - - - -If you double-click on a specific entry in the list of defined -search providers or click the Change button, -the details for that entry are shown in a popup -dialog. In addition to the descriptive name for the item, you can -also see the &URI; which is used, as well as the -associated shortcuts which you can type anywhere in &kde; where -&URI;s are expected. A given search provider can have -multiple shortcuts, each separated by a comma. - - The text boxes are used not only for displaying information -about an item in the list of web shortcuts, but also for modifying or -adding new items. - -You can change the contents of either the Shortcut -URL or the Shortcuts text box. -Click OK to save your changes or -Cancel to exit the dialog with no -changes. - -If you examine the contents of the Shortcuts -URL text box, you will find that most, if not all of the -entries have a in them. This sequence of four -characters acts as a parameter, which is to say that they are replaced -by whatever you happen to type after the colon character that is -between a shortcut and its parameter. To add this query placeholder -to a shortcuts url, click on the button at the right of the text box. -Let's consider some examples to clarify how to use web shortcuts. - -Suppose that the &URI; is -http://www.google.com/search?q=\{@}, and -gg is a shortcut to this -&URI;. Then, typing -gg:alpha is -equivalent to -http://www.google.com/search?q=alpha. -You could type anything after the : character; -whatever you have typed simply replaces the -characters, after being converted to the appropriate character set for -the search provider and then properly -&URL;-encoded. Only the part of -the search &URI; is touched, the rest of it is -supposed to be properly &URL;-encoded already and is -left as is. - -You can also have shortcuts without parameters. Suppose the -&URI; was -file:/home/me/mydocs/calligra/words and the -shortcut was mywords. Then, typing -mywords: is the same as typing the complete -&URI;. Note that there is nothing after the colon -when typing the shortcut, but the colon is still required in order for -the shortcut to be recognized as such. - -By now, you will have understood that even though these shortcuts -are called web shortcuts, they really are shortcuts to parameterized -&URI;s, which can point not only to web sites like -search engines but also to anything else that can be pointed to by a -&URI;. Web shortcuts are a very powerful feature of -navigation in &kde;. - - - - - -
diff --git a/doc/kcontrol/emoticons/CMakeLists.txt b/doc/kcontrol/emoticons/CMakeLists.txt deleted file mode 100644 index c8a3d7aa..00000000 --- a/doc/kcontrol/emoticons/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/emoticons) diff --git a/doc/kcontrol/emoticons/emoticons.png b/doc/kcontrol/emoticons/emoticons.png deleted file mode 100644 index 9c467272..00000000 Binary files a/doc/kcontrol/emoticons/emoticons.png and /dev/null differ diff --git a/doc/kcontrol/emoticons/index.docbook b/doc/kcontrol/emoticons/index.docbook deleted file mode 100644 index c5283b1f..00000000 --- a/doc/kcontrol/emoticons/index.docbook +++ /dev/null @@ -1,168 +0,0 @@ - - - -]> -
- -Emoticons - -&Anne-Marie.Mahfouf; - - - -2013-12-05 -&kde; 4.12 - - -KDE -System Settings -emoticons -KCMEmoticons - - - - -<guilabel>Emoticons Themes Manager</guilabel> - -Introduction - - - -Screenshot of the Emoticons Theme Manager - - - - - - The Emoticons Theme Manager - - - - - -Emoticons can be used in several &kde; applications: &kopete;, &konversation;, &kmail;... This module offers you to easily manage your emoticons sets. You can: - - -add emoticons themes -remove emoticons themes -install an existing theme -add, remove or edit emoticons within a theme - - -Please note that you will set emoticons themes per application. - - -The module is separated in two parts: on the left you can manage your themes and on the right you can manage emoticons within themes. - - - -An emoticon consists in two parts: an icon (typically a .png, .mng or .gif picture) and a text describing the emoticon. The text can be some ASCII symbols like ]:-> or the emoticon short description enclosed within * like *FRIEND*. The user types the symbol or the text and the emoticon icon replaces it. - - - -The emoticons themes will be saved locally in your home in $KDEHOME/share/emoticons. - - - - - -Emoticons Themes - - -This section allows you to manage emoticons themes. - - - -Require spaces around emoticons - - -When this option is checked, you need to separate the emoticon with a white space before and after it so it is changed to an icon. If you type "Hello:-)" then this string will stay as it is while if you type "Hello :-)" you will get "Hello" followed by the :-) emoticon. - - -When this option is not checked (default), each emoticon string will be replaced by its icon. - - - - -New Theme... - - -You can create your own new theme from scratch. Clicking on this button brings a dialog asking for the name of the new theme. You can then use the Add... button on the right to create new emoticons and their associated text. - - - -Get New Icon Themes... - - -You need to be connected to the Internet to use this action. A dialog displays a list of emoticons themes from http://www.kde-look.org and you can install one by clicking the Install button on the right side of the theme description in the list. - - - -Install Theme File... - - -This action allows you to install a theme you downloaded yourself. A theme file is an archive file, usually a .tar.gz or a .zip file or any other archive files. A dialog asks you for the location of this local archive file and after you entered or dragged the URL and clicked OK, the theme is installed and will appear in the themes list. - - - -Remove Theme - - -This action will remove the selected theme from your disk. Select the theme you want to remove in the list. Click the Remove Theme button. This theme will be removed from the disk if you click Apply. - - - - - - - - -Emoticons Management - - -This section allows you to manage emoticons within the selected theme. The list on the right displays all emoticons of the selected theme. You can add, edit or remove any emoticon. Select a theme in the list on the left and then select the action you want to perform. - - - -Add... - - -This button allows you to add an emoticon to the selected theme. The dialog asks you to choose an icon for your emoticon and to enter the corresponding ASCII symbol or text attached to it. After that, clicking OK will add your new emoticon in the emoticon list, you will see the icon and the corresponding text displayed. If you want to modify either the icon or the text, you can use the Edit... button described below. - - - - -Edit... - - -The Edit... button allows you to change either the icon or the text of the selected emoticon. You need to click the OK button to validate this action. - - - -Remove - - -This will remove the selected emoticon from the selected theme. You need to click the Yes button to validate this action. - - - - - - - -
- - diff --git a/doc/kcontrol/filemanager/CMakeLists.txt b/doc/kcontrol/filemanager/CMakeLists.txt deleted file mode 100644 index 65689b05..00000000 --- a/doc/kcontrol/filemanager/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/filemanager) diff --git a/doc/kcontrol/filemanager/index.docbook b/doc/kcontrol/filemanager/index.docbook deleted file mode 100644 index 0f638d54..00000000 --- a/doc/kcontrol/filemanager/index.docbook +++ /dev/null @@ -1,61 +0,0 @@ - - - -]> - -
- -File Management - -&Mike.McBride; &Mike.McBride.mail; - - - -2009-12-18 -&kde; 4.4 - - -KDE -Systemsettings -file manager - - - -In these modules, you can configure various aspects of -&konqueror;'s file manager functionality. - -&konqueror;'s web browser functionality has its own configuration -modules. - - -<guilabel>Misc Options</guilabel> - -Open folders in separate windows - If this option is checked, a new -&konqueror; window will be created when you open a -folder, rather than simply showing that folder's contents in the - current -window. - - - -Show 'Delete' menu entries which -bypass the trashcan - -Check this if you want Delete menu commands to be -displayed on the desktop and in the file manager's context menus. -You can always delete files by holding the &Shift; key while calling -Move to Trash. - - - - -The settings for &konqueror;'s file manager mode on the View Modes, -Navigation, Services, General -and Trash pages are used by &dolphin; as well. - - -
diff --git a/doc/kcontrol/filetypes/CMakeLists.txt b/doc/kcontrol/filetypes/CMakeLists.txt deleted file mode 100644 index e12793e3..00000000 --- a/doc/kcontrol/filetypes/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/filetypes) diff --git a/doc/kcontrol/filetypes/index.docbook b/doc/kcontrol/filetypes/index.docbook deleted file mode 100644 index 36a31291..00000000 --- a/doc/kcontrol/filetypes/index.docbook +++ /dev/null @@ -1,367 +0,0 @@ - -Calligra Words"> - - -]> - -
- - -File Associations - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -files association -association - - - -File Associations - - -Introduction - -One of the most convenient aspects of &kde;, is its ability to -automatically match a data file with its application. As an example, -when you click on your favorite &calligrawords; document in the filemanager, &kde; -automatically starts &calligrawords;, and automatically loads that file into -&calligrawords; so you can begin working on it. - -In the example above, the &calligrawords; Data file is -associated with &calligrawords; (the application). These -file associations are crucial to the functioning of &kde;. - -When &kde; is installed, it automatically creates hundreds of file -associations to many of the most common data types. These initial -associations are based on the most commonly included software, and the -most common user preferences. - -Unfortunately, &kde; can not: - - -predict every possible combination of software and data files -prepare for file formats not yet invented -or predict everyone's favorite application for certain file formats - - -You can change your current file associations or add new file -associations using this module. - -Each file association is recorded as a mime type. -&MIME; stands for Multipurpose Internet Mail -Extensions. It allows a computer to determine the type of file, -without opening and analyzing the format of each and every file. - - - - -How to use this module - -You can start this module -by opening &systemsettings; and selecting File Associations in the -Common Appearance and Behavior category. Alternatively, you can start it by -typing kcmshell4 filetypes from the terminal or &krunner;. - -The file associations are organized into several categories, and -at a minimum you will have: - - -Application -Audio -Image -Inode -Message -Multipart -Text -Video - - -All of the file associations are sorted into one of these -categories. - -There is no functional difference between any of the -categories. These categories are designed to help organize your file -associations, but they do not alter the associations in any way. - - -The categories are listed in the box labeled Known -Types. - -You can explore each of these categories, and see the file -associations contained within each one, by simply double-clicking on the -category name. You will be presented with a list of the associated -mime-types under that category. - -You can also search for a particular &MIME; type by using the -search box. The search box is labeled Find file type or filename -pattern and is located above the category list. - -Simply type the first letter of the &MIME; type you are interested -in. The categories are automatically expanded, and only the mime-types -that include that letter are displayed. - -You can then enter a second character and the mime-types will be -further limited to mime types containing those two -characters. - - -Adding a new mime type - -If you want to add a new &MIME; type to your file associations, -you can click on the Add... button. A small -dialog box will appear. You select the category from the drop down -box labeled Group, and type the &MIME; name in the blank labeled Type -name. Click OK to add the new mime -type, or click Cancel to not add any new -mime-types. - - - - -Removing a mime type - -If you want to remove a &MIME; type, simply select the &MIME; -type you want to delete by clicking once with the mouse on the &MIME; -type name. Then click the button labeled -Remove. The &MIME; type will be deleted -immediately. - - - - -Editing a mime types properties - -Before you can edit a &MIME; types property, you must first -specify which &MIME; type. Simply browse through the categories until -you find the &MIME; type you want to edit, then click once on it with -the mouse. - -As soon as you have selected the &MIME; type, the current values of -the &MIME; type will appear in the module window. - -You will notice the current values are split into two tabs: -General and Embedding - - - -General - -There are 4 properties for each &MIME; type in this tab: - - -Mime Type Icon is the icon that -will be visible when using &dolphin; or &konqueror; as a file -manager. -Filename Patterns is a search -pattern which &kde; will use to determine the &MIME; type. -Description is a short description -of the file type. This is for your benefit only. -Application Preference Order -determines which applications will be associated with the specified -&MIME; type. - - - - - -Embedding Tab - -The Embedding tab allows you to determine if a file will be -viewed within a filemanager window, or by starting the -application. - - - - - - - -Changing the Icon - -To change the icon, simply click on the Icon button. A dialog box -will appear, which will show you all available icons. Simply click once -with the mouse on the icon of your choice, and click -OK. - - - - -Editing the mime-type patterns - -The box labeled Filename Patterns, determines -what files will be included within this mime-type. - -Usually, files are selected based on their suffix. (Examples: -Files that end with .wav are sound -files, using the WAV format and files that end in .c are program files written in C). - -You should enter your filename mask in this combo box. - -The asterisk (*) is a wildcard character that -will be used with nearly every mime type mask. A complete discussion -of wildcards is beyond the scope of this manual, but it is important -to understand that the asterisk (in this context), -matches any number of characters. As an example: -*.pdf will match -Datafile.pdf, Graphics.pdf -and User.pdf, but not PDF, -Datafile.PDF, or -.pdf. - -It is very beneficial to have multiple masks. One for lower -case, one for upper case, &etc; This will help ensure that &kde; can -determine the file type more accurately. - - - - -Editing a mime types description. - -You can type a short description of the &MIME; type in the text -box labeled Description. This label is to help -you, it does not affect the function of the &MIME; type. - - - - -Editing the application associations - -There are five buttons (Move Up, -Move Down, Add, Edit and -Remove) and a list box (which lists the -applications) which are used to configure the applications. - -The list box lists all of the applications associated with a -specific &MIME; type. The list is in a specific order. The top -application is the first application tried. The next application down -the list is the second, &etc; - -What do you mean there is more than one application per -&MIME; type? Why is this necessary? - -We started out by saying that &kde; comes preconfigured with -hundreds of file associations. The reality is, each system that &kde; -is installed on has a different selection of applications. By -allowing multiple associations per &MIME; type, &kde; can continue to -operate when a certain application is not installed on the -system. - -As an example: -For the &MIME; type pdf, there are two -applications associated with this file type. The first program is -called &okular;. If your system does not -have &okular; installed, then &kde; -automatically starts the second application &krita;. -As you can see, this will help keep &kde; running -strong as you add and subtract applications. - -We have established that the order is important. You can change -the order of the applications by clicking once with the mouse on the -application you want to move, and then clicking either Move -Up or Move Down. This will shift -the currently selected application up or down the list of -applications. - -You can add new applications to the list by clicking the button -labeled Add. A dialog box will appear. Using the -dialog box, you can select the application you want to use for this mime -type. Click OK when you are done, and the -application will be added to the current list. - -To change the options of an application for a particular &MIME; type -select it in the list and then press the Edit... button. -This opens a new dialog with General, -Permissions, Applications and -Preview tabs. -On the Applications tab you can edit Name, -Description and Comment. -In the Command field you can have several place holders -following the command, which will be replaced with the actual values -when the actual program is run: - -%f - a single file name -%F - a list of files; use for applications that can open several local files -at once -%u - a single URL -%U - a list of URLs -%d - the folder of the file to open -%D - a list of folders -%i - the icon -%m - the mini-icon -%c - the caption - - -You can remove an application (thereby ensuring that the -application will never run with this &MIME; type by clicking once on the -name of the application, and clicking the Remove -button. - -It is a good idea to use the Move Up -and Move Down buttons to adjust the unwanted -application to a lower position in the list, rather than deleting the -application from the list entirely. Once you have deleted an -application, if your preferred application should become compromised, -there will not be an application to view the data document. - - - - -Embedding -These settings are valid only for &konqueror; used as file manager, &dolphin; -is not able to use embedded views and opens a file always in the associated application. -By clicking on the Embedding tab, you are -presented with four radio buttons in the Left click -action group. These determine how the filemanager views the selected -&MIME; type: - - -Show file in embedded viewer -If this is selected, the file will be shown within the filemanager window. -Show file in separate viewer -This will cause a separate window to be created when showing this mime-type. -Use settings for 'application' group -This will cause the mime-type to use the settings for the mime-type group. -(if you are editing an audio mime type, then the settings for the audio group are used). -Ask whether to save to disk instead -This setting applies only to &konqueror; in browser mode and determines -if the file is shown in an embedded viewer or if you are asked to save the file to disk instead. - - -Below this is a listbox labeled Services Preference -Order. - -When you use a filemanager like &dolphin; or &konqueror;, you can -right mouse click, and a menu will with an -entry labeled Open with... will appear. This box -lists the applications that will appear, in the order they will -appear, under this menu. - -You can use the Move Up and -Move Down buttons to change the order. - - - - -Making changes permanent - -When you are done making any changes to mime types, you can click -Apply to make your changes permanent, but keep -you in this module. - - - - - - -
diff --git a/doc/kcontrol/fontinst/CMakeLists.txt b/doc/kcontrol/fontinst/CMakeLists.txt deleted file mode 100644 index bd208d21..00000000 --- a/doc/kcontrol/fontinst/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/fontinst) diff --git a/doc/kcontrol/fontinst/index.docbook b/doc/kcontrol/fontinst/index.docbook deleted file mode 100644 index cfeff1c4..00000000 --- a/doc/kcontrol/fontinst/index.docbook +++ /dev/null @@ -1,109 +0,0 @@ - - - -]> - -
-Font Management - - -&Craig.Drummond; &Craig.Drummond.Mail; - - - - -2013-06-19 -&kde; 4.11 - - -KDE -Systemsettings -fonts - - - - -Font Management - -This module is responsible for installing, un-installing, previewing and managing your fonts. - - -Font Groups -There are 4 special pre-defined font groups: - - - All Fonts This will display all fonts, both personal and system-wide. - Personal Fonts The fonts shown will be your personal fonts, and will not be available to other users. - System Fonts The fonts shown will be those available to all users. Installing a font system-wide, or removing a system-wide font, will require administrator privileges. - Unclassified This will list all fonts that have not been placed into any user-defined groups. This group will only appear if you have some user-defined groups. - -To add a font to a group, drag it from the list of fonts onto a group. To remove a font from a group, drag the font onto the All Fonts group. -Below this list you find buttons to create a new group, remove a group and enable or disable the fonts in the current group. -In the context menu of this list you have additional menuitems to print font samples and export a font to a zip archive. - - -Enabling and Disabling -Users with many fonts may find it useful to only have certain fonts enabled (or active) at certain times. To facilitate this, this module will allow you to disable individual fonts, or whole groups of fonts. Disabling a font does not remove the font from the system, it simply hides it so that it no longer appears within applications. Re-enabling a font will then allow it to be used. - - - - - -Font List - -The main display is a list of the installed fonts, grouped via the fonts' family name - the number in square brackets represents the number of installed styles for that family. e.g. The Times font may be listed as: - - - Times [4] - - Regular - Italic - Bold - Bold Italic - - - - - -To install a font, press the Add... button, and select the desired fonts from within the file dialog. The selected font group will control where the fonts will be installed. -To un-install fonts, select the appropriate fonts from the list, and press the Delete... button. - -Click with the &RMB; to open a context menu with some additional actions like Enable, Disable, Print, Open in Font Viewer and Reload. - - -Font Filtering -A text field on top of the font preview allows you to filter the list of fonts. You can filter fonts based upon different categories: - - Family. - Style. - Foundry. - FontConfig match. This allows you to enter a family name, and see the family that fontconfig would actually use. - Font file type. - Font file name. - Font file location. - Writing system. - - - - -Get New Fonts -New fonts may be installed from local files, or downloaded from kde-look.org. The Get New Fonts entry in the tool button (located above the group list), allows you to install fonts from kde-look.org. The fonts downloaded in this manner will be installed into your Personal Fonts group. To install system-wide, you will need to move them to the System Fonts group - this may be achieved by dragging the fonts over the System Fonts group entry and will require administrator privileges. - - - - - -Duplicate Fonts -If you have lots of fonts installed on your system it is possible that you may have duplicates. -Click on the tools icon above the group list and select the Scan For Duplicate Fonts... tool, a simple tool that will scan your system looking for fonts that have multiple files associated with them. For example, if you have times.ttf and times.TTF installed in /usr/local/share/fonts the underlying font mechanism (called FontConfig) will only see one of these. So, if you un-installed the font, it would re-appear, as only one of the files would have been removed. Running this tool will produce a dialog listing each font that has multiple files, and the corresponding list of files. To select a file for deletion, click on the column containing the trash can icon. - - - -Preview -This displays a preview text in different font sizes. -Using the context menu enables you to zoom in and out, select a preview type (Standard Preview or All Characters) and change the preview text. - - -
diff --git a/doc/kcontrol/fonts/CMakeLists.txt b/doc/kcontrol/fonts/CMakeLists.txt deleted file mode 100644 index 6238f15e..00000000 --- a/doc/kcontrol/fonts/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/fonts) diff --git a/doc/kcontrol/fonts/adjust-all.png b/doc/kcontrol/fonts/adjust-all.png deleted file mode 100644 index 506a6179..00000000 Binary files a/doc/kcontrol/fonts/adjust-all.png and /dev/null differ diff --git a/doc/kcontrol/fonts/anti-aliasing.png b/doc/kcontrol/fonts/anti-aliasing.png deleted file mode 100644 index d88cacae..00000000 Binary files a/doc/kcontrol/fonts/anti-aliasing.png and /dev/null differ diff --git a/doc/kcontrol/fonts/index.docbook b/doc/kcontrol/fonts/index.docbook deleted file mode 100644 index 1bb5e2e2..00000000 --- a/doc/kcontrol/fonts/index.docbook +++ /dev/null @@ -1,169 +0,0 @@ - - - -]> - -
- -Fonts - -&Mike.McBride; &Mike.McBride.mail; -&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -KControl -fonts - - - - - -Fonts - -This module is designed to allow you to easily select different -fonts for different parts of the &kde; Desktop. - - - -Here's a screenshot of the fonts settings module - - - - - - The fonts settings module - - - - - -The panel consists of different font groups to give you a lot of -flexibility in configuring your fonts: - - -General: Used everywhere when the other font -groups do not apply - -Fixed width: Anywhere a -non-proportional font is specified - -Small: When small fonts are used - -Toolbar: Font used in &kde; application -toolbars - -Menu: Font used in &kde; application -menus - -Window title: Font used in the window -title - -Taskbar: Font used in the taskbar -panel applet - -Desktop: Font used on the desktop -to label icons - - - -Each font has a corresponding Choose... -button. By clicking on this button, a dialog box appears. You can -use this dialog box to choose a new font, a font style and size. -Then press Ok. - -An example of the font you have chosen will be displayed in the space -between the font group name and the Choose... -button. - -When you are done, simply click OK and -all the necessary components of &kde; will be restarted so your changes -can take affect immediately. - -The Adjust All Fonts... button allows you to -quickly set properties for all the fonts selected -above. A font selection dialog similar to the standard one will -appear, but you will notice checkboxes that allow you to change the -Font, Font style or -Size independently of each other. You can -choose any one, two, or three of these options, and they will be -applied to all the font groups. - - - -Adjusting all fonts - - - - - - The Adjust All Fonts... dialog - - - - - -For example, if you have selected several different font faces -above, and realize they are all a size too big (this often happens -when you change screen resolution, for instance), you can apply a new -font size to all the fonts, without affecting your customized font -faces and styles. - - -Anti-aliasing text - -Default anti-aliasing settings are those used system wide by your distribution and labelled System Settings. You can disable all anti-aliasing by choosing Disabled in the drop down box. - -To use and set up anti-aliasing, simply choose Enabled from the box on the right of Use anti-aliasing:. The Configure... button will then get enabled and clicking on it will bring you a dialog to configure anti-aliasing. - - - -Anti-aliasing properties - - - - - - The anti-aliasing properties dialog - - - - - -Placing a mark in the Exclude range: checkbox will allow you to specify which range of fonts will not be anti-aliased. This range is specified -with the two combo boxes on the same line. - -You can also choose the method that &kde; uses to create an anti-alias -look to your fonts, and how strongly it should be applied. If you are not -familiar with the individual methods, you should leave this option -alone. - - - - -The ability to use anti-aliased fonts and icons requires that you have -support in both X and the &Qt; toolkit, that you have suitable fonts -installed, and that you are using the built-in font serving capabilities -of the X server. If you still are having problems, please contact the -appropriate &kde; mailing list, or check the -FAQ. - - - - -Fonts DPI - -Force fonts DPI: proposes you an alternate DPI other than your system one which is used as default when this setting is on Disabled. You can check what DPI your X server is set to by running xdpyinfo | grep resolution in a terminal window and then change the DPI using the drop down box. This will be applied to newly started applications only. - - - - -
diff --git a/doc/kcontrol/fonts/main.png b/doc/kcontrol/fonts/main.png deleted file mode 100644 index 2c0346c4..00000000 Binary files a/doc/kcontrol/fonts/main.png and /dev/null differ diff --git a/doc/kcontrol/history/CMakeLists.txt b/doc/kcontrol/history/CMakeLists.txt deleted file mode 100644 index fcd8d597..00000000 --- a/doc/kcontrol/history/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/history) diff --git a/doc/kcontrol/history/index.docbook b/doc/kcontrol/history/index.docbook deleted file mode 100644 index ffc074d4..00000000 --- a/doc/kcontrol/history/index.docbook +++ /dev/null @@ -1,62 +0,0 @@ - - - -]> -
-History Sidebar - - -&Burkhard.Lueck; - - - -2009-11-24 -&kde; 4.4 - - -KDE -Systemsettings -history - - - - -This dialog allows you to configure the history sidebar. - - - -Limits - -The options in this section can be used to set the maximum size of your history and set a time after which -items are automatically removed. - - - - -Custom Font - -Here you can also set different fonts for new and -old &URL;s by selecting the Choose Font button. - - - - -Details - -The Detailed tooltips check box controls how much -information is displayed when you hover the mouse pointer over an item in the -history page. -If checked the number of times visited and the dates of the first and last -visits are shown, in addition to the URL. - - - - -Selecting Clear History will -clear out the entire history. - -
diff --git a/doc/kcontrol/icons/CMakeLists.txt b/doc/kcontrol/icons/CMakeLists.txt deleted file mode 100644 index 9629f320..00000000 --- a/doc/kcontrol/icons/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/icons) diff --git a/doc/kcontrol/icons/delete-theme.png b/doc/kcontrol/icons/delete-theme.png deleted file mode 100644 index 8421b7e5..00000000 Binary files a/doc/kcontrol/icons/delete-theme.png and /dev/null differ diff --git a/doc/kcontrol/icons/effects.png b/doc/kcontrol/icons/effects.png deleted file mode 100644 index 78f27292..00000000 Binary files a/doc/kcontrol/icons/effects.png and /dev/null differ diff --git a/doc/kcontrol/icons/get-new-theme.png b/doc/kcontrol/icons/get-new-theme.png deleted file mode 100644 index a6ba6fe7..00000000 Binary files a/doc/kcontrol/icons/get-new-theme.png and /dev/null differ diff --git a/doc/kcontrol/icons/index.docbook b/doc/kcontrol/icons/index.docbook deleted file mode 100644 index eaec490e..00000000 --- a/doc/kcontrol/icons/index.docbook +++ /dev/null @@ -1,354 +0,0 @@ - - - -]> - -
- -Icons - -&Mike.McBride; &Mike.McBride.mail; -&Jost.Schenck; &Jost.Schenck.mail; -&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -KControl -icon - - - -Icons - - -Introduction - -&kde; comes with a full set of icons in several sizes. These icons -are being used all over &kde;: the desktop, the panel, the &konqueror; file -manager, in every toolbar of every &kde; application, etc. The icons -control module offers you very flexible ways of customizing the way &kde; -handles icons. - - - -Here's a screenshot of the icon theme manager - - - - - - Customizing &kde; icons - - - - - -In this module you can: - -install and choose icon themes -choose different icon sizes -assign effects to icons (for example make them -semi-transparent or colorize them) -configure these settings for each of the different places -icons will be used in: for example the desktop, toolbars &etc; - - - -Please note that some of these settings may depend on -your selected icon theme. &kde; comes with three icon themes by default, -Oxygen, Monochrome and Crystal SVG. There are additional color themes -in the kdeartwork package. - -There are two pages in this module: Theme and Advanced. Theme manages the icon themes while Advanced lets you configure how icons will be used in &kde;. - - - -Theme - -At the top is a preview of the current theme icons. Most default -installations will have only one icon theme available, the &kde; default -Oxygen theme. There are other themes contained separately in the -kdeartwork package, and you can also download more from the Internet from http://www.kde-look.org. - - -Get New Themes... - - -You need to be connected to the Internet to use it. Clicking on this button will display a dialog where you can choose a new icon theme. Clicking on Install in the dialog will install the chosen icon theme and after you Close the installer your new theme is immediately available. - - - -Get New Icon Themes - - - - - - Get New Icon Themes - - - - - - -Install Theme File... - - -If you dowloaded new themes from the internet, you can use this to browse to the -location of those newly downloaded themes. Clicking on this button will bring you a small dialog to point to the icon theme tarball you have on your disk. - - -Installing A New Icon Theme - - - - - - Installing A New Icon Theme - - - - -Clicking OK in this dialog will install the theme you pointed to and make it available in the theme list. - - - -Remove Theme - - -Clicking this button will remove all files for this theme from your system. A confirmation message is displayed and will ask you if you are really sure you want to remove all the files for this theme. - - - -Removing A Theme - - - - - - Removing A Theme - - - - -Clicking Delete will remove the theme files and clicking Cancel will not delete anything and will cancel the remove action. - - - - - - - - -Advanced - -Looking at this second page of the icons control module, you -will see two areas: - - - -An area labelled Use of Icon. Here you can -choose which particular usage of icons you want to configure, for -example Toolbar or Panel. - - - -Choosing the icons to configure - - - - - - Choosing the icons to configure - - - - - - - A preview area where you can see how -icons of the selected kind will look using the current -settings. Note that the state of this preview also depends on the icon -state selected in the effects below (do not worry -about that now, we will explain that below). - - -When you want to configure icons, first select the usage of icons -you want to configure. Change the settings until you like the -preview. You can then choose a different icon usage and configure -that. At the end, if you are satisfied with your settings, click -OK or Apply to take the -changes in effect. - -There are two further options to consider, -Size and Effects. - - -Icon Size - - - -Setting icons sizes - - - - - - Setting icons sizes - - - - - -You can choose -from a list of icon sizes. The largest icon sizes are especially useful -for visually impaired people. - -Which sizes will be offered by the icon size listbox depends on -the icon theme you have selected in the icon themes control module. For -example, the low color icon theme only offers the sizes 16 and 32 for -desktop icons and 16, 22 and 32 for toolbar icons. The HiColor theme -offers icon sizes 16, 32 and 48 as well as sizes from 64 to 128. -However, as &kde; can not have all these icon sizes in store, icons -using size 64 to 128 will be automatically generated which may result in -a loss of quality. - - - -You can also choose animated icons. Many of the icons have -animations associated with them. Enable the checkbox labelled -Animate Icons, to enable this effect, but note -that it may appear slow or jerky if your graphics card is old or you -are low on memory. - - - - -Effects - - -Setting icons effects - - - - - - Setting icons effects - - - - - -Finally you can configure certain filters to be -applied on icons which are in one of three states: - - - -Default -This is how the icon will look normally. - - -Active: -This is how the icon will look when the mouse cursor is over the icon. - - -Disabled: -This is how the icon will look if its corresponding action is -disabled, &ie; clicking on it will not lead to any -result. - - - -Select one of these states, and press the Set -Effect... button to configure a corresponding icon effect. -Please note that this configuration will only affect icons of the -currently selected Use of Icon category (see -above): configuring an effect for active icons, while -Toolbar icon usage is selected, will -not affect active icons used in other -places. - -Below the list of icon states there are two options: you can -configure an effect and you can select the -Semi-transparent option, which will make the -background shine through the icon. To the right of the -effects list box there is a slider button to pass additional parameters to -a filter for colours and Amount. - - -The following effects can be applied to icons: - - - -No Effect: -Icons will be used without applying any -effect. - - -To Gray: -This filter will apply a grayish look to the icon. Use the -Amount slider to configure the intensity of this filter. Note -that it is customary for most user interfaces to use this effect for disabled -icons only. - - -Colorize: -Icons will be colorized using a custom color. For example, you -may configure active icons (&ie; the icon the mouse cursor is over) to -shine golden. Use the color buttons and the Amount slider -to configure the used color and the intensity of the colorization. - - -Gamma: -A different gamma value will be applied to all icons. If you're -no photographer and don't know what Gamma is: it's quite similar to what people -call contrast. Just play around with the gamma settings by moving the -Amount slider to get a feeling for this -effect. - - -Desaturate: -Icons will be drawn desaturated. This is quite similar to the -Color setting on your television. Use the slider to configure -the amount of desaturation. - - - -To Monochrome: - -Icons will be drawn using only the two colours selected. - - - - - - - - - - - -
diff --git a/doc/kcontrol/icons/install-theme.png b/doc/kcontrol/icons/install-theme.png deleted file mode 100644 index fbe5316d..00000000 Binary files a/doc/kcontrol/icons/install-theme.png and /dev/null differ diff --git a/doc/kcontrol/icons/main.png b/doc/kcontrol/icons/main.png deleted file mode 100644 index bae9e469..00000000 Binary files a/doc/kcontrol/icons/main.png and /dev/null differ diff --git a/doc/kcontrol/icons/size.png b/doc/kcontrol/icons/size.png deleted file mode 100644 index 599c162b..00000000 Binary files a/doc/kcontrol/icons/size.png and /dev/null differ diff --git a/doc/kcontrol/icons/use-of-icons.png b/doc/kcontrol/icons/use-of-icons.png deleted file mode 100644 index 5132bcc9..00000000 Binary files a/doc/kcontrol/icons/use-of-icons.png and /dev/null differ diff --git a/doc/kcontrol/joystick/CMakeLists.txt b/doc/kcontrol/joystick/CMakeLists.txt deleted file mode 100644 index eb9c4901..00000000 --- a/doc/kcontrol/joystick/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/joystick) diff --git a/doc/kcontrol/joystick/index.docbook b/doc/kcontrol/joystick/index.docbook deleted file mode 100644 index 36a496c5..00000000 --- a/doc/kcontrol/joystick/index.docbook +++ /dev/null @@ -1,137 +0,0 @@ - - - -]> -
- -Joystick - - -Michael -Anderson - -
nosrednaekim@gmail.com
-
-
- -
- -2013-12-05 -4.12 - - -KDE -System Settings -joystick -calibrate - -
- - -Joystick configuration module - -This module provides an interface to calibrate your joystick device as well as -see which functions on your joystick are mapped to which logical button or -axis. - - - -Here's a screenshot of the joystick module - - - - - - The joystick module - - - - - - -Device - - -Here you can see the logical location of the device. If you have more -than one joystick device, you can also select which one to configure. - - - - -Position - - -The plotted location of the X and Y axes of the joystick. Enable Show trace -to plot the path of the joystick from one point to another. - - -If the joystick cannot reach every point on this graph, or if it does not center correctly, you need to calibrate your device. - - - - -Buttons - - -A place to see the pressed state of buttons on your joystick and if the buttons -are mapped correctly. When a joystick button is pressed, PRESSED will appear -next to the logical number (as the computer sees it) of the button which was -pressed. - - - - -Axes - - -This displays the numerical values of the axis positions. 0 is centered and the -maximum and minimum values depend on the joystick and the particular axis. - - - - -Calibrate - - -Clicking on Calibrate will open a dialog to calibrate every axis on your joystick. - - - - -Calibrating your joystick - - - - - - Calibrating your joystick - - - - - - -Each axis will have to be moved to the minimum position, then the center, and finally the -maximum position. A meter in the bottom left corner of the dialog will help -determine which way increases and which way decreases the values. - - - - - -
- - diff --git a/doc/kcontrol/joystick/joystick-calibration.png b/doc/kcontrol/joystick/joystick-calibration.png deleted file mode 100644 index 5ff3bda1..00000000 Binary files a/doc/kcontrol/joystick/joystick-calibration.png and /dev/null differ diff --git a/doc/kcontrol/joystick/joystick-main.png b/doc/kcontrol/joystick/joystick-main.png deleted file mode 100644 index f5a8071f..00000000 Binary files a/doc/kcontrol/joystick/joystick-main.png and /dev/null differ diff --git a/doc/kcontrol/kcm_ssl/CMakeLists.txt b/doc/kcontrol/kcm_ssl/CMakeLists.txt deleted file mode 100644 index ce2344b7..00000000 --- a/doc/kcontrol/kcm_ssl/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcm_ssl) diff --git a/doc/kcontrol/kcm_ssl/details.png b/doc/kcontrol/kcm_ssl/details.png deleted file mode 100644 index f4131b3a..00000000 Binary files a/doc/kcontrol/kcm_ssl/details.png and /dev/null differ diff --git a/doc/kcontrol/kcm_ssl/index.docbook b/doc/kcontrol/kcm_ssl/index.docbook deleted file mode 100644 index f74d0cac..00000000 --- a/doc/kcontrol/kcm_ssl/index.docbook +++ /dev/null @@ -1,134 +0,0 @@ - - - -]> -
-SSL Versions and Certificates - - -Subhashish Pradhan -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -SSL -certificates - - - - -Introduction -&kde; provides a list of all the X.509 certificates used by the system. They -can be accessed in the SSL Preferences module in -&systemsettings;. - -This module provides a categorized listing of all SSL versions and -certificates. You can see the details of each of the certificates and add, delete, -disable, or enable them. - -The certificates are categorized into System certificates -and User-added certificates. The System -certificates are further categorized by the organization that issued -them. - - -The SSL Versions and Certificates Module - - -The SSL Versions and Certificates module. - - - - -Viewing the Details of a Certificate - -Select a certificate under a listed organization, and click on the -Display underneath the list to view the details of the -certificate. - - -Viewing the Details of a Certificate - - -The certificate details window. - - - - - - -Enabling or Disabling a Certificate - -First, select a certificate listed under an organization. Then, click the -Enable button to enable the certificate, or click the -Disable button to disable an enabled certificate. - -Alternatively, you can enable or disable a certificate by selecting or -clearing the check box before the certificate. - - -You can enable or disable multiple certificates by selecting them while -holding the &Ctrl; key and then clicking on the Enable or -Disable button below the list. - - - - - -Adding a Certificate - - -First, click on the Add button below the certificate -list. It will open the file selector dialog allowing you to locate where the -certificate files are stored. After locating the certificate file, select it -and click on the Open button to add it. - - -The certificates must be in one of the following formats: -DER, PEM, or &Netscape;-encoded X.509 -certificate. - - - - - -Removing a Certificate - -Select the listed certificate that you want to remove, and click the -Remove button to remove the certificate. - - -System certificates cannot be removed. - - - - - -Thanks and Acknowledgments - -Special thanks to Google Code-In 2011 participant Subhashish Pradhan for -writing this article. - - - - - -
- - diff --git a/doc/kcontrol/kcm_ssl/module.png b/doc/kcontrol/kcm_ssl/module.png deleted file mode 100644 index 80253e23..00000000 Binary files a/doc/kcontrol/kcm_ssl/module.png and /dev/null differ diff --git a/doc/kcontrol/kcmaccess/CMakeLists.txt b/doc/kcontrol/kcmaccess/CMakeLists.txt deleted file mode 100644 index 3f3a11cc..00000000 --- a/doc/kcontrol/kcmaccess/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -########### install files ############### -# -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmaccess) diff --git a/doc/kcontrol/kcmaccess/index.docbook b/doc/kcontrol/kcmaccess/index.docbook deleted file mode 100644 index 99b6b5a9..00000000 --- a/doc/kcontrol/kcmaccess/index.docbook +++ /dev/null @@ -1,264 +0,0 @@ - - - -]> - -
-Accessibility - - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -accessibility -keys -bell - - - - -Accessibility - - -Introduction - -This module is designed to help users who have difficulty hearing -audible cues, or who have difficulty using a keyboard. - - -The module is divided into four tabs: Bell, Modifier keys, Keyboard Filters and Activation Gestures. - - - -<guilabel>Bell</guilabel> - - -This panel is divided into an Audible Bell section -and a Visible Bell section. - - - -The top check box labeled Use System Bell, determines -whether the normal System bell rings. If this option is disabled, the -System bell will be silenced. - - - -The next check box down can be used to play a different sound whenever -the system bell is triggered. To activate, place a mark in the check -box labeled Use customized bell, and enter the -complete pathname to the sound file in the text box labeled -Sound to play. If you want, you can select the -Browse button to navigate through your filesystem -to find the exact file. - - - -For those users who have difficulty hearing the System bell, or those -users who have a silent computer, &kde; offers the visible bell. This -provides a visual signal (inverting the screen or flashing a color -across it) when the system bell would normally sound. - - - -To use the visible bell, first place a mark in the check box labeled -Use visible bell. - - - -You can then select between Invert screen, or -Flash screen. If you select Invert -screen, all colors on the screen will be reversed. If you -choose Flash screen, you can choose the color by -clicking the button to the right of the Flash -screen selection. - - - -The slider bar can be used to adjust the duration of the visible -bell. The default value is 500ms, or half a second. - - - - - -<guilabel>Modifier keys</guilabel> - -There are the two sections Sticky Keys -and Locking Keys to this panel. - - - -Use Sticky Keys - - -If this option is enabled, you can press and release the &Shift;, -&Alt; or &Ctrl; keys, and then press another key to get a key combo -(example: &Ctrl; &Alt; -Del could be done with &Ctrl; then &Alt; -then Del). - - - -Also in this section is a check box labeled Lock Sticky -Keys. If this check box is enabled, the &Alt;, &Ctrl; -and &Shift; keys stay selected until you -de-selected them. - - - -As an example: - - - -With Lock Sticky Keys disabled: - -If you press the &Shift; key then press the -F key, the computer interprets this as &Shift;F. Now if you -type a P, the computer interprets this as the letter p -(no shift). - - - - - -With Lock Sticky Keys enabled: - - -If you press the &Shift; key twice then press the F key, -the computer interprets this as &Shift;F. Now if you -type a P, the computer interprets this as the letter P -(&Shift;P). To -de-select the &Shift; key, press it again. - - - - - - - - - - - - - -<guilabel>Keyboard Filters</guilabel> - -There are two sections to this panel. - - - -Use slow keys - - -If this option is enabled, you must hold the key down for a -specified length of time (adjustable with the slider) before the -keystroke will be accepted. This helps prevent accidental key strokes. - - - - - -Use bounce keys - - -If this option is enabled, you must wait for a specified length of time -(configurable with the slider) before the next key press can be -accepted. This prevents accidental multiple key strokes. - - - - - - - - - - -<guilabel>Activation Gestures</guilabel> - -There are two sections to this panel. - - - -Activation Gestures with these options: - - - -Use gestures for activating sticky keys and slow keys -Here you can activate keyboard gestures that turn on the following features: -Mouse Keys: Press &Shift;+NumLock -Sticky keys: Press &Shift; key 5 consecutive times -Slow keys: Hold down &Shift; for 8 seconds -Turn sticky keys and slow keys off after a certain period of inactivity - - - - - - -Notification with these options: - - - -Use the system bell whenever a gesture is used to turn an accessibility -feature on or off - -Show a confirmation dialog whenever a keyboard accessibility feature is -turned on or off -If this option is checked, &kde; will show a confirmation dialog whenever a -keyboard accessibility feature is turned on or off. -Ensure you know what you are doing if you uncheck it, as the keyboard -accessibility settings will then always be applied without confirmation. - -Use &kde;'s system notification mechanism whenever a keyboard accessibility -feature is turned on or off - - - - - -Click the Configure Notifications button to open a dialog -which allows you to edit the notifications for status changes of all keys. - - - - - - -
diff --git a/doc/kcontrol/kcmcgi/CMakeLists.txt b/doc/kcontrol/kcmcgi/CMakeLists.txt deleted file mode 100644 index 44b16910..00000000 --- a/doc/kcontrol/kcmcgi/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmcgi) diff --git a/doc/kcontrol/kcmcgi/index.docbook b/doc/kcontrol/kcmcgi/index.docbook deleted file mode 100644 index 8958aca0..00000000 --- a/doc/kcontrol/kcmcgi/index.docbook +++ /dev/null @@ -1,44 +0,0 @@ - - - -]> - -
- - -CGI Scripts - -BurkhardLück -lueck@hube-lueck.de - - - - -2009-11-20 -&kde; 4.4 - - -KDE -Systemsettings -cgi - - - - -The CGI KIO slave lets you execute local CGI programs -without the need to run a web server. - -In this system settings module you can -configure the paths that are searched for CGI scripts. - - -Paths to CGI scripts are displayed in the list box at the -bottom of this dialog. - - -Use the buttons below the list box to add or remove paths from the search. - - -
diff --git a/doc/kcontrol/kcmcss/CMakeLists.txt b/doc/kcontrol/kcmcss/CMakeLists.txt deleted file mode 100644 index f2c5b585..00000000 --- a/doc/kcontrol/kcmcss/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmcss) diff --git a/doc/kcontrol/kcmcss/index.docbook b/doc/kcontrol/kcmcss/index.docbook deleted file mode 100644 index 050a72ab..00000000 --- a/doc/kcontrol/kcmcss/index.docbook +++ /dev/null @@ -1,367 +0,0 @@ - - - -]> - -
- -Appearance - -&Lauri.Watts; &Lauri.Watts.mail; - - - -2009-12-01 -&kde; 4.4 - - -KDE -CSS -Appearance -Font -CSS -Stylesheets -Accessibility - - - - - -Appearance -This module consists of three tabs with configure options how to display web pages. - - -General - -The check box labeled Automatically load -images allows you to control whether images on web pages are -loaded by default. Unless you have a very slow connection, you will -probably want to leave this option selected, as there are many web pages -that are difficult to use without images. If you don't select the option -to automatically load images, you can still view the text on the page, -and then load the images if you need them. - -If Draw frame around not completely loaded images -is checked, &konqueror; will draw a frame as a placeholder -around images embedded in a web page that are not yet fully loaded. You -will probably want to check this box to enhance your browsing experience, -especially if have a slow network connection. - -Many web pages use animated gif images, and these can be very -annoying, and in some cases, quite a drain on your system resources. -The Animations option lets you choose when -animations are enabled. The default is enabled, but you can set this -to disabled, or to run the animation only once, even if the file -itself contains instructions that the animation should run more times, -or continuously. - -The next setting is Underline links:. You can -choose to underline links Enabled. If this option -is selected, any text on web pages that acts as a link will be shown in -an underlined font. While many web pages do use color to distinguish -text that acts as a link, underlining makes it very easy to spot -links. - -If you don't like underlined links, you can choose -Disabled, so that no links are underlined. Or you -can choose a middle ground, Only on Hover, so that links -are underlined when the mouse cursor is resting over them, and not -underlined the rest of the time. - -The site's CSS definitions can override this value. - -Smooth scrolling -determines whether &konqueror; should use smooth steps to scroll &HTML; -pages, or whole steps: - -Always: Always use smooth steps -when scrolling. -Never: Never use smooth scrolling, scroll -with whole steps instead. -When Efficient: Only use smooth -scrolling on pages where it can be achieved with moderate usage of system -resources. - - - - - - -Fonts -Under this tab, you can select various options related to the use -of fonts. Although the shapes and sizes of fonts are often part of the -design of a web page, you can select some default settings for -&konqueror; to use. - -The first thing you can set here is the font size. There are two -settings which work together to allow you a comfortable browsing -experience. - -Firstly, you can set a Minimum font size. -This means, even if the font size is set specifically in the page you -are viewing, &konqueror; will ignore that instruction and never show -smaller fonts than you set here. - -Next you can set a Medium font size. This is -not only the default size of text, used when the page does not specify -sizes, but it is also used as the base size that relative font sizes are -calculated against. That is, the &HTML; instruction -smaller, it means smaller than the size you set for this -option. - -For either option, you can select the exact font size in points by -using the up/down spin control (or just typing) next to the option -label. - -These options are independent of each other. Pages that do not -set a font size, or ask for the default, will display with the size -you set from Medium font size, while any pages -that ask for a size smaller than your Minimum font -size setting will instead show that size. The one does not -affect the other. - -The remaining options are for the fonts to be associated with -different types of markup used in &HTML; pages. Note -that many web pages may override these settings. For any type of font -(Standard, Fixed, Serif, &etc;) you can select a different font if you like. - -Below this, you can set a Font size adjustment for this -encoding. Sometimes the fonts you want to use for a -particular encoding or language are much larger or smaller than average, -so you can use this setting to bring them into line. - -You can set a default encoding that &konqueror; should assume -pages are when rendering them. The default setting is Use -Language Encoding, but you can change it to any encoding -available in the list. - - - - - -Stylesheets - - -Introduction - -CSS style sheets affect the way web pages -appear. CSS stands for -Cascading Style -Sheets. - -&kde; can use its own stylesheet, based on simple defaults and -the color scheme you are using for your desktop. &kde; can also use a -stylesheet that you have written yourself. Finally, you can specify a -stylesheet in this module. The options presented in this module are -tuned for accessibility purposes, especially for people with reduced -vision. - -Your choices here affect every &kde; application that renders HTML -with &kde;'s own renderer, which is called khtml. These include -&kmail;, &khelpcenter; and of course &konqueror;. Choices here do not -affect other browsers such as &Netscape;. - - - - -Stylesheets - -This section contains the following options: - - - -Use default stylesheet - -&kde; will use the default stylesheet. Some of the colors will -default to those defined in your chosen color scheme. Most settings are -easily overridden by the page you are viewing. - - - - -Use user-defined stylesheet - -&kde; will use a stylesheet that you have written yourself. You -can use the browse button to locate the stylesheet on your system. -CSS files traditionally have a .css extension, but this is not -required. - - - - -Use accessibility stylesheet - -Use the settings defined in the Customize -dialog. Enabling this option will enable the Customize -button lo launch a dialog to define stylesheet settings. - - - - - - - -Customize - -In this dialog you can set up a user stylesheet. The options available are -only a subset of the instructions you can add in a stylesheet, and they -are geared towards people with reduced vision, to allow users to create -a stylesheet that makes web pages and the &kde; help files more -readable. - -The options in this dialog are disabled unless you chose -Use accessibility stylesheet. - - -<guilabel>Font Family</guilabel> - - - -Base family - -Choose a font family to use for body text. - - - - -Use same family for all text - -If you enable this, then the same font family will be used for all -text, regardless of the settings on the page you are viewing. This is -useful for pages which have used a decorative or hard to read font for -headlines. - - - - - - -Font Size - - - -Base font size - -This is the default size for text on the page. Many web sites set -their font sizes relative to this default, using larger -or +1 to make the text bigger, and smaller -or -1 to make the text smaller. -Many people design their web pages on platforms where the ordinary -default text size is too large for the average user to read, so it is -very common to come across web pages that have forced the font smaller -in this way. -This setting will allow you to set the default font to a -comfortable size, so that the relative sizes are also enlarged enough to -be comfortable. -Do not forget you can also have &konqueror; enforce a minimum size, -so that text is never too small to read. - - - - - - -Use same size for all elements - -If you enable this option, then all text will be rendered at your -specified font size, regardless of the instructions the page contains. -Relative font sizes as discussed earlier, and even specific instructions -that text should be rendered at a certain size will be overridden -here. - - - - - - -Images - - - -Suppress images - -If you do not want to view images, you can turn this off -here. - - - -Suppress background images - -One major problem for reduced vision users is that background -images do not give sufficient contrast to allow them to read the text. -You can disable background images here, independently of your choice -above to view all images. - - - - - - -Colors - - - -Black on white - -Many people with reduced vision find black text on a white screen -gives the most contrast, and is easiest to read. If this applies to -you, you can set this here. - - - - -White on black - -Many other people with reduced vision find the opposite to be -true, that white text on a black screen is easier to read. - - - - -Custom - -Still other people find that pure black and white, in either -order, is difficult to read. You can set custom colors here for both -the Background and the -Foreground. - - - - -Use same color for all text - -Many web sites use a different, often contrasting color for -headings or other flourishes. If this interferes with your ability to -read the content, you can enable this check box to have &kde; use the -colors you have set above for all text. - - - - - - - -Preview - -The Preview section allows you to see the effect of -your changes. Several types of headings are displayed with your stylesheet, -and a sentence in the default body text. - -This should allow you to fine-tune your stylesheet until you have -something that you can comfortably read. - -Happy surfing! - - - - - - - - - -
diff --git a/doc/kcontrol/kcmlaunch/CMakeLists.txt b/doc/kcontrol/kcmlaunch/CMakeLists.txt deleted file mode 100644 index 12f7ee5f..00000000 --- a/doc/kcontrol/kcmlaunch/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmlaunch) diff --git a/doc/kcontrol/kcmlaunch/index.docbook b/doc/kcontrol/kcmlaunch/index.docbook deleted file mode 100644 index 68d3e352..00000000 --- a/doc/kcontrol/kcmlaunch/index.docbook +++ /dev/null @@ -1,59 +0,0 @@ - - - -]> - -
- -Launch Feedback - -&Lauri.Watts; &Lauri.Watts.mail; - - - -2013-12-05 -&kde; 4.12 - - - -Sometimes it is reassuring to know that your computer didn't just -ignore your command, and something is happening behind the scenes. In -this module you can configure visible feedback to help you know if you -really hit that icon or not. - -The traditional way to indicate that your computer is busy is to -modify the cursor, and you can turn this on by choosing a -Busy Cursor. - -With this option enabled, your cursor will have an icon attached -to it for a short time, when a new application is being launched. You -can configure how long this icon is displayed beside your cursor with the -Startup indication timeout: spinbox. The -default is 10 seconds. - -There are several variations of busy cursor available, including -a Blinking Cursor, a Bouncing Cursor -or a Passive Busy Cursor icon with no animation. - -Traditional &kde; launch notification has taken another form, -which you can also enable and disable here. Normally when you start an -application, it gets an immediate entry in the taskbar, with the icon -replaced by a spinning hourglass to let you know something is -happening. You can toggle this behavior on and off with the -Enable taskbar notification checkbox, and when it's -enabled, you can set a time in the -Startup indication timeout spinbox. - -Not all applications that you start will eventually show a -window, or an entry in the taskbar. Some of them, for example, are -docked into the &kde; system tray. Alternatively, it might be that you -sent it off to a different virtual desktop, and in the Filters -section of the -Task Manager Settings the option Only show -tasks from the current desktop is checked. Setting a timeout ensures that, -even in these cases, you can still get launch feedback, but also that -it will go away when the job is done. - -
diff --git a/doc/kcontrol/kcmnotify/CMakeLists.txt b/doc/kcontrol/kcmnotify/CMakeLists.txt deleted file mode 100644 index 446889dc..00000000 --- a/doc/kcontrol/kcmnotify/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmnotify) diff --git a/doc/kcontrol/kcmnotify/index.docbook b/doc/kcontrol/kcmnotify/index.docbook deleted file mode 100644 index a1726040..00000000 --- a/doc/kcontrol/kcmnotify/index.docbook +++ /dev/null @@ -1,159 +0,0 @@ - - - -]> - -
-System Notification Settings - - - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -system notification -notification - - - - -System Notification Settings - -&kde;, like all applications, needs to inform the user when a -problem occurs, a task is completed, or something has happened. &kde; -uses a set of System Notifications to keep the user -informed on what is happening. - -Using this module, you can determine what &kde; does to communicate -each event. - -This settings module consists of the two tabs Applications -and Player Settings. - - -Applications -To configure a notification, simply select the application from the drop down box at the top -of the dialog labeled Event source:. This will lead to a list of -all configurable notifications for the application. The list of notifications includes 6 columns to -the left of the notification name. These columns (from left to right) are: - - - -Play a sound -This does exactly what you think it does. If an icon is present in this column, &kde; will play a specific sound over the speakers. This is commonly used by games in &kde; for starting a new game, or other action within the game. - - - -Show a message in a pop up -If an icon is present in this column, &kde; will open a message box and inform the user of the notification. This is probably the most commonly selected option for alerting users to an error. - - - -Log to a file -If an icon is present in this column, &kde; will write certain information to a file on disk for later retrieval. This is useful for tracking problems or important system changes. - - - -Mark taskbar entry -If an icon is present in this column, &kde; will cause the taskbar to flash until the user has clicked the taskbar entry. This is most useful when you want the user to look at the program (such as a new email message was received, or the users name was said on an IRC channel). - - - -Speech -If a mark is in this checkbox, &kde; will cause the taskbar of the program sending the notification to flash until the user has clicked the taskbar entry. - - - - -Run command -If an icon is present in this column, a separate program will be executed when this notification is performed. This can be used to execute a program to help restore data, shutdown a potentially compromised system or email another user to alert them to a problem. - - - - -Change a notification -To make a change to a notification, click on the name of the notification once with the &LMB;. The notification will be highlighted -and the checkboxes for all notification types are enabled. - -You can have more than one event triggered by a single notification. As an example, it is easy to have a sound played and -a message box appear in response to a system notification. One notification does not prevent other notifications from operating. - -The following list details each of the notification types and how to use them. - - - -Play a sound -If a mark is in this checkbox, &kde; will play a sound everytime this notification is initiated. To specify the sound, use the text box to the right of the checkbox to enter the folder location of the sound file you want &kde; to play. You can use the folder button (located to the far right of the dialog box) to browse your directory tree. To hear a test of your sound, simply click on the play button (small button directly to the right of Play a sound.) - - - -Show a message in a pop up -If a mark is in this checkbox, &kde; will open a message box and inform the user of the notification. The text of the box can not be changed from this dialog. - - - -Log to a file -If a mark is in this checkbox, &kde; will write certain information to a file on disk for later retrieval. To specify the log file to use, enter the pathname in the text box to the right of the checkbox. You can use the folder button (located to the far right of the dialog box) to browse your directory tree. - - - -Mark taskbar entry -If a mark is in this checkbox, &kde; will cause the taskbar of the program sending the notification to flash until the user has clicked the taskbar entry. - - - -Run command -If a mark is in this checkbox, a separate program will be executed when this notification is performed. To specify the program to execute, enter the pathname in the text box to the right of the checkbox. You can use the folder button (located to the far right of the dialog box) to browse your directory tree. - - - -Speech -If a mark is in this checkbox, &kde; will use Jovie to speak the event -message, event name or custom text. -If you select Speak Custom Text, enter the text in the box. -You may use the following -substitution strings in the text: - - %e Name of the event - %a Application that sent the event - %m Message sent by the application - - - - - -You can use the icon columns (located to the left of the notifications) to quickly select or deselect the options. Clicking in the column with the &LMB; will toggle the notification on and off. - - - - -Player Settings - - - -Use the &kde; sound system -If a mark is in this radio button, &kde; will play all sound notifications through the &kde; sound system. You can adjust the volume of system notifications using the slider. -The slider only affects &kde; system notifications. Changes to this slider will not affect other sounds on your computer. - - -Use an external player -If a mark is in this radio button, &kde; will not use the &kde; sound system to play the sound. This is a good choice if the sound format you want to use is not supported by the &kde; notification system. After checking the radio box, enter the full path and name of the program you want to use into the text field. You can use the folder button (located along the right side) to browse the directory tree. - - -No audio output -Disables all sound notifications. - - - - - -
diff --git a/doc/kcontrol/kcmsmserver/CMakeLists.txt b/doc/kcontrol/kcmsmserver/CMakeLists.txt deleted file mode 100644 index 954e9f31..00000000 --- a/doc/kcontrol/kcmsmserver/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -#KDE_LANG = en -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmsmserver) diff --git a/doc/kcontrol/kcmsmserver/index.docbook b/doc/kcontrol/kcmsmserver/index.docbook deleted file mode 100644 index fe387e04..00000000 --- a/doc/kcontrol/kcmsmserver/index.docbook +++ /dev/null @@ -1,122 +0,0 @@ - - - -]> - -
- -Session Management - -&Jost.Schenck; &Jost.Schenck.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -KControl -session -System Settings - - - - -Session Management - - -Use - -In this &systemsettings; module you can configure &kde;'s session -manager and logout settings. - -Session management refers to &kde;'s ability to save the state -of applications and windows when you log out of &kde; and restore them -when you log back in. - - -General - - -Confirm logout - -If this option is checked, when logging out, &kde; will display a -dialog asking for confirmation. In this dialog you can also choose -whether you want to restore your current session when you login the next -time. - - - -Offer shutdown options - -If this option is checked, &kde; will offer a choice of actions during -logout. These include simply ending the current session (the -action performed if shutdown options are not enabled) turning off the -computer, or restarting the computer. - - - - - - -Default Leave Option -You can configure what should happen by default when you log out of -&kde;. These options are not possible on all operating systems, and some of -them may not appear unless you are using &kdm; as your login manager. - -The options available are self explanatory, if you are in doubt, -leave the default settings. They are: - - -End current session (this is the default) -Turn off computer -Restart computer - - - - -On Login -You may choose one of three options on what should happen when -you log into &kde;: - - - -Restore previous session -If this option is checked, &kde; will save your current -session's state when you logout. &kde; will restore your session on the -next login, so you can continue to work with a desktop just like you -left it. - - - -Restore manually saved session -Instead of restoring &kde; to the state it was when -you logged out last, it will be restored to a specific state that you -have saved manually. -If this option is checked, the start menu offers an additional item -LeaveSave Session. - - - -Start with an empty session - -If you choose this option, &kde; will never restore sessions that it has saved. - - - -Finally, you can enter a colon (:) or comma (,) -separated list of applications that should not be saved in sessions, -and therefore will not be started when restoring a session. For example -xterm:konsole or xterm,konsole. - - - - - - - -
- diff --git a/doc/kcontrol/kcmstyle/CMakeLists.txt b/doc/kcontrol/kcmstyle/CMakeLists.txt deleted file mode 100644 index 6a3947ea..00000000 --- a/doc/kcontrol/kcmstyle/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kcmstyle) diff --git a/doc/kcontrol/kcmstyle/index.docbook b/doc/kcontrol/kcmstyle/index.docbook deleted file mode 100644 index faf1a682..00000000 --- a/doc/kcontrol/kcmstyle/index.docbook +++ /dev/null @@ -1,238 +0,0 @@ - - - -]> - -
- - -Style - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-06-02 -&kde; 4.11 - - -KDE -System Settings -style - - - -Style - - -Introduction - -This module is used to configure how the individual widgets are -drawn by &kde;. - -A Widget is a commonly-used -programmer's term for referring to User Interface elements such as -buttons, menus, and scroll bars. You can think of them as the -fundamental pieces that are assembled to make your -application. - -You can configure how the widgets are drawn with this module, -but to change the color of the widgets, you should refer to the -section entitled Colors. - -This panel is divided into two tabs: Applications -and Fine Tuning. - - -<guilabel>Applications</guilabel> tab - -The top drop down box, labeled Widget Style -contains a list of the pre-defined styles. -Each style has a name, and a brief description. - -To change styles, simply click on the style name, and a preview -of the style will be displayed in the preview box below the style list. - - If a style is configurable, the Configure... button -at the right side of the drop down box is enabled and can be used to open -a dialog to select further settings. - - - - - - -<guilabel>Fine Tuning</guilabel> tab - - - - -Graphical effects - -&kde; applications will run internal animations with the selected display resolution and CPU usage. - - - - -Show icons on buttons - -If this option is selected, action buttons (like OK and -Apply) will have a small icon located within them to act -as a visual reference. If this option is not selected, then only text -will appear on the button. - - - - -Show icons in menus - -If this option is selected, &kde; applications will show small icons alongside -most menu items. If this option is not selected, then only text -will appear in the menus. Changes to the visibility of menu icons will only affect newly started -applications. - - - - -Main toolbar text, Secondary toolbar text - -These drop down boxes lets you determine where on the button in both toolbars the -text name of the button will appear as the default. -If No Text is selected, then there is no text on the toolbar buttons. -If Text Only is selected, then the button's icon is replaced with a text name of -the button. If Text Beside Icons is selected, then the name of the button -will be placed to the right of the icon. -If Text Below Icons is selected, the default will be to have the text -of the button below the icon. - -This option only specifies the default location. -Each application can override the setting used in this panel. - - - - -Menubar style - -In application: The classic menubar at the top of the application window. -Title bar button: The window has an additional menu button top left. -All changes will take effect only for newly started applications. -Top screen menubar: This will turn on a menubar at the top of the screen that -is hidden by default and revealed on mouse over or a menu button on the window decoration. -This menubar will reflect the menu options of the active application. -Only export: for use by plasma runners + applets. -To use this feature you need a KRunner plugin like Appmenu action launcher. -Select an application, press &Alt;F2 -and type the menu action you want to perform. - - - - - - - - - - - -
diff --git a/doc/kcontrol/kded/CMakeLists.txt b/doc/kcontrol/kded/CMakeLists.txt deleted file mode 100644 index 101c29b8..00000000 --- a/doc/kcontrol/kded/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kded) diff --git a/doc/kcontrol/kded/index.docbook b/doc/kcontrol/kded/index.docbook deleted file mode 100644 index b63668ac..00000000 --- a/doc/kcontrol/kded/index.docbook +++ /dev/null @@ -1,64 +0,0 @@ - - - -]> - -
- - -Service Manager - -BurkhardLück -lueck@hube-lueck.de - - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -Service - - - - -The Service Manager module allows you to have an overview of all -plugins of the &kde; Daemon, also referred to as &kde; Services. Generally, -there are two types of service: - - - - -Load-on-Demand Services - -This is a list of available &kde; services which will be started on demand. -They are only listed for convenience, as you cannot manipulate these -services. - - - - -Startup Services - -This shows all &kde; services that can be loaded on &kde; startup. -Services checked in the Use column will be invoked on next startup. -Be careful with deactivation of -unknown services: some services are vital for &kde;; do -not deactivate services if you do not know what you are doing. - -To change the Status of a service, select it in the list. -Then you can use the Start and Stop -to change the status of a service from Not running to Running -and vice versa. - - - - - - -
diff --git a/doc/kcontrol/keyboard/CMakeLists.txt b/doc/kcontrol/keyboard/CMakeLists.txt deleted file mode 100644 index 23797c03..00000000 --- a/doc/kcontrol/keyboard/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/keyboard) diff --git a/doc/kcontrol/keyboard/index.docbook b/doc/kcontrol/keyboard/index.docbook deleted file mode 100644 index 31c9dcdc..00000000 --- a/doc/kcontrol/keyboard/index.docbook +++ /dev/null @@ -1,218 +0,0 @@ - - - -]> - -
-Keyboard - - - -&Mike.McBride; &Mike.McBride.mail; -&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -System Settings -keyboard - - - -This module allows you to choose how your keyboard works. - -There are three tabs in this module. - - -The Hardware tab -The actual effect of setting these options depends upon the -features provided by your keyboard hardware and the X server on which -&kde; is running. As an example, you may find that changing the key -click volume has no effect because that feature is not available on your -system. - - - -Keyboard model: - - -Here you can set your keyboard model. This setting is independent of your -keyboard layout and refers to the "hardware" model, i.e. the way your -keyboard is manufactured. Modern keyboards that come with your computer usually -have two extra keys and are referred to as "104-key" models, which is -probably what you want if you do not know what kind of keyboard you have. - - - - - -NumLock on KDE Startup - -You can choose to either always Turn on or -Turn off the NumLock when &kde; starts, or you can -choose to have &kde; leave NumLock at whatever it was set to before &kde; -started up. - - - - -Keyboard Repeat - -When this option is turned on, pressing and holding down a key -emits the same character repeatedly until the key is released. Pressing -and holding the key will have the same effect as pressing it multiple -times in succession. - Almost all users will want to have this option enabled, because it -makes navigating through documents with the arrow keys significantly -easier. - - - -Delay - -This option allows you to set the delay after which a pressed -key will start generating keycodes. - - - -Rate - -This option allows you to set the rate at which keycodes are -generated while a key is pressed. - - - -Key click volume - -If supported, this option allows you to hear audible clicks from -your computer's speakers when you press the keys on your keyboard. In -essence, this simulates the click of a mechanical -type-writer. You can change the loudness of the key click feedback by -dragging the slider button. Setting the volume to 0% by moving the slider -to the left turns off the key click. -Type some characters into the Test area text box to -verify the volume you selected. -Many computers won't support this function. -Very few people would choose to enable this option, since it -generally annoys everyone else in the room. However, if your heart -yearns for the pre-soft-key era, this may help you to re-experience the -warm sentimentality of days-gone-by. - - - - - - - - - - - -The Layouts tab -This tab lets you choose what keyboard layouts you want to use, what -indicator you want in the system tray, how you want to switch and which -shortcuts you will use. - - - -Layout Indicator - -You can choose to Show layout indicator -which will show the language iso name in the system tray. You can choose to -show the indicator even if you have a single layout enabled -and you can show the language flag instead of only the ISO code by checking -Show flag. - - - - -Switching Policy - -If you select Application or -Window switching policy, changing the keyboard layout will -only affect the current application or window. Global will -change the keyboard layout globally and Desktop will change -it only for the current virtual desktop. - - - - - -Shortcuts for Switching Layout - -Main shortcuts is a shortcut for switching -layouts which is handled by X.org. 3rd level shortcuts is a -shortcut for switching to a third level of the active layout (if it has one) -which is handled by X.org. It allows modifier-only shortcuts. -Alternative shortcut is a shortcut for switching layouts -which is handled by &kde;. It does not support modifier-only shortcuts and also -may not work in some situations (⪚ if popup is active or from screensaver). - - - - - -Configure layouts - -If you check Configure layouts you will be able to -add and remove keyboard layouts in order to switch between them when you need. - -Clicking on Add will open a dialog where you -will be able to choose the new keyboard layout you want to add as well as its -variant, label and shortcut. - - -The list of layouts right to the Layout label in the -Add Layout dialog can be narrowed down using -Limit selection by language drop-down list. You -can click on Preview button to preview chosen layout -in a separate window. - -You can order the layouts with the up and down buttons, the top one being -the default one. - - - - -Spare layouts - -This option can be enabled only if you have more than two layouts. -Spare layouts allow to toggle between small number of layouts easily -while keeping more layouts handy close by. For example you might use 3 -languages: English, Ukrainian and German but first two are used often -and third one just occasionally. In this case you can configure first -two as main layouts (setting Main layout count: 2) -and German one as spare one - when you toggle with -keyboard and left mouse button the switch will happen between main -layouts only but you can always choose 3rd layout with context menu. -When spare layout is chosen it replaces the last main layout (this is -done for technical reasons, usually global shortcuts work based on the -1st active layout so it's more reliable to preserve the 1st layout when -allowing to activate spare layouts). - -As X.org only allows to have 4 layouts to switch spare layouts feature -also allows to overcome this limitation: user can have up to 4 main -layouts (managed by X.org) but 4 more spare layouts allowed (managed by -layout switcher). Thus user can conveniently work with up to total of 8 -layouts (although the 4 spare layouts limit can be raised in the future). - - - - - - - - -The Advanced tab -In this tab, if you check Configure keyboard options -you will then be able to set a few options regarding some keys settings. You can -expand these options by clicking on the > symbol on the left of the option -then you choose your setting in the expanded list. - -
diff --git a/doc/kcontrol/keys/CMakeLists.txt b/doc/kcontrol/keys/CMakeLists.txt deleted file mode 100644 index 2fe4a4ef..00000000 --- a/doc/kcontrol/keys/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/keys) diff --git a/doc/kcontrol/keys/index.docbook b/doc/kcontrol/keys/index.docbook deleted file mode 100644 index f06fff13..00000000 --- a/doc/kcontrol/keys/index.docbook +++ /dev/null @@ -1,202 +0,0 @@ - - - -]> - -
-Shortcuts - - -&Mike.McBride; &Mike.McBride.mail; -&Jost.Schenck; &Jost.Schenck.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -KControl -key bindings -bindings -shortcuts - - - - -Shortcuts - - -Introduction - -While most of the functionality offered by &kde; can be accessed -using a simple point and click interface, many people -prefer using the keyboard for some tasks. Pressing something like - &Ctrl;F is often -just faster than moving your hands off the keyboard to the mouse, -opening the Edit menu and selecting -Find. - - As different people have different preferences about keyboard -shortcuts, &kde; offers full customization of key -bindings. A key binding or shortcut is a combination of an -action with a key or a combination of keys. - - - - -Standard Shortcuts and Global Shortcuts - -Standard shortcuts and Global shortcuts work just the same. -Actually, in a certain way standard or application shortcuts are -global as well. The only -difference is: - - -Standard keyboard shortcuts refer to actions -that are often available in applications, such as Save, Print, Copy -&etc; -Global keyboard shortcuts are shortcuts for -actions that make sense even when no application is opened. These -shortcuts usually refer to actions like switching desktops, manipulating -windows &etc; - - -Please note, that the application shortcuts configured here are -only the standard actions often found in -applications. Most applications will define their own actions as well, -for which you have to customize key bindings using the application's -key bindings dialog. - - -Standard Keyboard Shortcuts page -At the top of this dialog you see an input box, where you can -search interactively for shortcut names (⪚ Copy) or combination of keys -(⪚ Ctrl+C) by typing them literally here. -Below the search box you can see a list of key bindings, &ie; associations between actions -(⪚ Copy) shown in the Actions column and keys or combination of keys -(⪚ &Ctrl;C ) shown in the -Shortcut or Alternate column. - - - - - -Global Keyboard Shortcuts page -At the top of this page is a drop down box which allows you -to select a KDE component like KWin, Plasma Desktop &etc; -The defined shortcuts for the selected component are displayed in the -Action and Global column in the list view. -Click the File drop down box at the right to import/export a -Scheme, set all shortcuts to none and remove a component. -This page has the same search box as the Standard Keyboard -Shortcuts tab. - - - - -Configuring Key Bindings - -Configuring key bindings is pretty easy. In the middle of -these &systemsettings; modules you will find a list of available -actions. If there's a key binding configured for that action you will -find it in the columns right to it. Just select the action you want to -configure. - -After you have selected an action in the list you will notice that -this item is highlighted and you see two additional check boxes below -this item in the list view. There you can configure a -combination of keys or maybe no key binding at all for the selected -action. - - - -Default: the selected action -will be associated with &kde;'s default value. This is a good choice -for most actions, as &kde; comes with reasonable key bindings we have -thought about. - -Custom: if this option is -enabled, you can create a key combination for the selected -action. Click on the button labeled either None -or labeled with the previously selected custom shortcut. Now the button label -changes to Input. Then press any modifier key -(&ie; &Shift;, &Ctrl;, or &Alt;) and then normal key or a function key (⪚ F11) -you want to assign to this key combination. -Clicking on the Alternate column of a row in the list -allows to edit the second shortcut for the action. - - - - - - - - -
diff --git a/doc/kcontrol/khotkeys/CMakeLists.txt b/doc/kcontrol/khotkeys/CMakeLists.txt deleted file mode 100644 index cf166228..00000000 --- a/doc/kcontrol/khotkeys/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/khotkeys) diff --git a/doc/kcontrol/khotkeys/groups-comment.png b/doc/kcontrol/khotkeys/groups-comment.png deleted file mode 100644 index 8ef80c3a..00000000 Binary files a/doc/kcontrol/khotkeys/groups-comment.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/index.docbook b/doc/kcontrol/khotkeys/index.docbook deleted file mode 100644 index 3097c446..00000000 --- a/doc/kcontrol/khotkeys/index.docbook +++ /dev/null @@ -1,751 +0,0 @@ - - - -]> -
-Custom Shortcuts - - - -Subhashish Pradhan -&TC.Hollingsworth; &TC.Hollingsworth.mail; - - - - -2011 -Subhashish Pradhan - - -2012 -&TC.Hollingsworth; - -&FDLNotice; - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -shortcuts -hotkeys -Custom Shortcuts -khotkeys - - - - -Introduction - -The Custom Shortcuts &systemsettings; module -allows you to configure custom keyboard shortcuts and mouse gestures. You can -use them to control applications, run specific commands, and more. - - - - - -Managing Shortcuts and Groups - - -Adding Groups - -The module allows to you to sort related shortcuts into Groups. For -instance, if you have some shortcuts that relate to your music player, you -could create a group for them called Music Player. - - -To add a new group, click on the Edit button below -the left pane and select the New Group option. - - - - -Adding Shortcuts - -To add a new shortcut, click on the Edit button -below the left pane and select the New option. - -The first menu that appears allows you to select the type of trigger. The -following options are available: - - - - -Global Shortcut -These are standard keyboard shortcuts that will be recognized -anywhere, as long as a &kde; &plasma; Workspace is running. - - - -Window Action -Window Actions are triggers that occur when something happens -to a particular window, like when it appears, gains focus, or is closed. - - - - -Mouse Gesture Action -A mouse gesture action is triggered when a particular movement -of the mouse (or touchpad or touchscreen) is performed. - - - - -Once you've selected the type of trigger, another submenu appears that allows -you to select an action type. The following types are available: - - - - -Command/&URL; -This action will launch a command or open a &URL; when the -shortcut is triggered. - - - -&DBus; Command -This action will call a &DBus; method in a running application or -system daemon. For more information on &DBus;, see the -&DBus; -Introduction on &kde; TechBase. - - - -Send Keyboard Input -This action will send keyboard input to the currently -running application, just as if you had typed it in yourself. - - - - -Once you've selected the action type, you can then edit the shortcut to -your liking. See for more information. - - - - -Deleting Shortcuts and Groups - -To delete a shortcut or group, select it, then click on the -Edit button below the left pane, and select the -Delete option. - - - - -Exporting Groups - -You can export a group, so you can save the shortcuts contained within and -use them on another computer or maintain a backup. - -To export a group, select the group to be exported, then click on the -Edit button below the left pane and select the -Export Group... option, which opens a new window that -lets you define some options about the exported group. The following options -are available: - - - - -Export Actions -This allows you to select the state the shortcuts will be in -when they are imported later. Select Actual State to -maintain their current state, Enabled to ensure they are -all enabled, or Disabled to ensure they are all disabled. - - - - -Id -Here you may enter text to identify the group. If the group is -included by default, this text may be filled in by default. - - - -Allow Merging -This defines what happens if the group already exists on the -system the exported group is imported to. When enabled, any new actions will -be added to the group on the target system, while actions that have the same -name but a different configuration will updated with the configuration from the -imported file. When disabled, the module will refuse to import the file. - - - - -Filename -Here you may enter the filename you wish to export the -shortcut to. You may also select the Browse button to -the right of the text box to open the File dialog and select a file from there. - - -Exported files use the extension .khotkeys by -default. - - - - - - -Exporting a Group - - -The Export Group dialog. -Exporting a group of shortcuts. - - - - - - -Importing Groups - -To import a group, click the Edit button below the -left pane and select Import.... A file selection dialog -opens that permits you to locate a file previously created using the Export -function. - - - - - - - -Modifying Groups - -In the left section of the window, the default shortcuts are categorized -into groups. These groups can be expanded by clicking the arrow beside them to -reveal the shortcuts. - -When you click on a group, you are presented with two tabs to configure -the group itself. The Comment allows you to store notes -about the group, and are not actually used by the system for anything. The -Conditions tab allows you to restrict which windows a group -of shortcuts works with. - - -The Comment Tab - - -The Comment tab in a group. -Modifying a group's comment. - - - -Conditions are displayed in a tree, the top level of which is -And. All conditions beneath And must -be satisfied for shortcuts in the group to be triggered. - -You may add additional groups of conditions by clicking the -New drop down box to the right of the tree of conditions. Types -of groups include the aforementioned And, -Or, in which only one member of the group must be -satisfied, or Not, in which the inverse of all -members will trigger the shortcuts in the group. - -To add a window definition to the list, press the New -button. You may select Active Window... if you want -the shortcut to be triggered only if the specified window currently has focus, -or you may select Existing Window... if you want the -shortcut to be triggered as long as that window is open , regardless of -whether or not you are using it. Selecting either of these options opens a -window where you can edit the window definitions. - -Click the Edit... button to edit an existing set -of window definitions. A window opens with the window definition editor. For -more information, see . - -To remove a window definition from the conditions list, click the -Delete button. - - - - - -Modifying Shortcuts - -In the left section of the window, the default shortcuts are categorized -into groups. These groups can be expanded by clicking the arrow beside them to -reveal the shortcuts. - -The Preset Actions group, when expanded, reveals a -shortcut configuration named PrintScreen which, when -selected, reveals section on the right side, with three tabs: - - -The Comment Tab - -The Comment tab allows you to describe how to use the -shortcut, what it does, or anything else you might want to include. - - - - -The Trigger Tab -The Trigger tab contains the trigger configuration, -which depends on the type of trigger specified: - - - - -Global (Keyboard) Shortcut - - -To modify a keyboard shortcut, click on the button that contains a wrench, -and then enter the desired keyboard shortcut. To erase the shortcut, click on -the button with the icon to the right of the -change shortcut button. - - -Modifying a Keyboard Trigger - - -The Trigger tab for a keyboard shortcut. -Modifying a trigger for a keyboard shortcut. - - - - - - - -Window Action - - -Window actions contain several options: - - - - -Trigger When - - -This configures the particular window action that must occur for the -shortcut to be triggered. The following options are available: - - - -Window appears - -Triggered when a window is opened. - -Window disappears - -Triggered when a window is closed. - -Window gets focus - -Triggered when you switch to a window. - -Window loses focus - -Triggered when you switch away from a window. - - - - - - - -Window -This is where you define the actual window or windows the trigger applies -to. For more information, see - - - - - - - - -Mouse Gesture - - -A mouse gesture can be changed by clicking the Edit -button below the area that displays the mouse gesture, which will open a window. -Hold down the &LMB; and draw the desired mouse gesture in the area provided. -The gesture will be saved when you release the &LMB;. - - -Modifying a Mouse Gesture Trigger - - -The Trigger tab for a mouse gesture shortcut. -Modifying a trigger for a mouse gesture. - - - - - - - - - - - -The Action Tab - -The Action tab is where you configure the action that -will be performed when the shortcut is triggered. There are several types of -actions that have different configuration options: - - - - -Command/&URL; - - -When using a Command or &URL; is a trigger, a text box is provided where -you may enter the command to run or &URL; to open when the shortcut is triggered. -You may also click the Browse button to the right of the -text box to open a file selection dialog in which you can select a file on your -local or a remote system. - - -Modifying a Command Action - - -The Action tab for a command. -Modifying a command action. - - - - - - - -&DBus; Command - - -The following options are provided that allow you to specify a &DBus; -method to be performed: - - - - -Remote application -The service name of the remote application the method is to -be performed on, for instance org.kde.kate if you wanted -to perform it on the &kate; Advanced Text Editor. - - - -Remote object -The path to the remote object the method is to be performed on, -for instance /Document/1, if you wanted to perform it on -the first document opened in &kate;. - - - -Function -The name of the &DBus; method to be called, for instance -print if you wanted to print the document. - - - - -For more information on &DBus;, see the -&DBus; -Introduction on &kde; TechBase. - - - - - -Send Keyboard Input - - -At the top of the Action tab, there is a large text -entry where you may enter the keystrokes you wish to be sent when the shortcut -is triggered. - -Most keys contain a single character, and to enter them here you just -enter that character. For instance, to type an A, just enter -A. Some keys have longer names, and you can also use -those names. For instance, to press the &Alt; key, simply enter -Alt. - - -Individual keystrokes should be separated by a colon -(:). For instance, to type foo, enter -F:O:O. - -Keys that need to pressed at the same time should be separated by a plus -sign. For instance, to press -&Ctrl;C, enter -Ctrl+C. - - -Remember, you must enter keystrokes here exactly as you would on a keyboard. -To capitalize letters, you must enter the &Shift; key. For instance, to type -Hello, enter Shift+H:E:L:L:O. - -This also applies to special characters. For instance, to type the -at-sign on the U.S. English keyboard layout, enter Shift+2. - - - - -The action that is performed is dependent on the currently selected -keyboard layout. If you change keyboard layouts and trigger a shortcut, it -may have undesired consequences. - - -Beneath the keystroke entry text box, you may select which window the -keystrokes will be directed to. You may choose from the following options: - - - -Active window - -The window that is currently open. - -Specific window - -The window that you describe using the form below. For more information on -describing windows, see . - -Action window - -When using the Window Actions trigger type, enter the keystrokes in the window -that triggered the shortcut. - - - - -Modifying a Keyboard Input Action - - -The Action tab for keyboard input. -Modifying the keyboard input action for a shortcut. - - - - - - - - - - - - - - -Defining Windows - -Several areas of the module allow you to define a list of windows. They -all use the same interface, which contains the following options: - - - - -Comment -This is merely an informational text box you can use to explain -what the trigger applies to or save other useful information. It is not -actually used by the system for anything. - - - -Window List -Beneath the Comment box on the left is the -list of all window definitions currently present in the trigger. Simply click -on one to perform an operation on it. - - - -Edit... - - -Press this button to modify the currently selected window definition. A -new window is opened that allows you to edit it. This window contains the -following options: - - - - -Window Data - - -This is where you describe the window the trigger should apply to. - -At the top, there is a Comment field, which is -informational just like the one in the main Trigger tab. - -Three window characteristics are available: - - - -Window title - -The title that appears at the top of the window. - -Window class - -Usually the name of the application. - -Window role - -Usually the name of the &Qt; class that makes up the window. - - - -Each window characteristic provides a drop-down box, and a text box below -it. Enter the value you wish to test windows for in the text box. From the -drop-down box, select which kind of test you wish to apply. You can use -Is to require an exact match, Contains -to require that the text entered be somewhere inside the full value, or -Matches Regular Expression to use a regular expression to -define the match. You may also perform the inverse of all these operations. -Select Is Not Important if you do not wish for that -particular characteristic to be examined. - -The easiest way to fill in this information is to open the desired window, -then click the Autodetect button at the bottom of this -section, and finally click on the desired trigger window. All three window -characteristics will be populated with the information from that window, and -you can then adjust the settings as necessary. - - - - - -Window Types - - -This lets you restrict the match to a particular type of window. The -following options are available: - - - -Normal - -A regular application window. - -Desktop - -The main desktop is actually a special window all its own. - -Dialog - -A small window that is part of a normal application, such as a message box or -a configuration screen. - -Dock - -A small window that can be attached or detached from a main application window. - - - - - - - - - - - - - -New... -Create a new window definition. This opens the edit dialog -described above. - - - -Duplicate... -This creates a new window definition with the exact same -specifications as the currently selected window definition. It will open the -edit dialog described above so you may make further changes. - - - -Delete -Removes the currently selected window definition. - - - - - - - - -Settings - -When you first enter the module, or when you click the -Settings button below the left pane, there will be -several configuration options in the right pane: - - - - -Start the Input Actions daemon on login -This configures whether or not to activate the background -application that monitors for keyboard shortcuts and triggers configured -actions. It is enabled by default. - - - -Gestures - -Select this check box to enable mouse gestures. - -There are two options specific to mouse gestures: - - - - -Timeout -This specifies the maximum time interval during which the mouse -gesture will be monitored and recognized by the system, in milliseconds. - - - - -Mouse Button -This specifies the mouse button to be used for mouse gestures. -Usually, 1 is the &LMB;, 2 is the -&RMB;, and 3 is the middle or wheel button. If your -mouse has more buttons, you can also use those instead. - - -Button 1 is unavailable, so mouse gestures do not interfere with the -normal operation of your system. - - - - - - - - - - - -Settings - - -The Settings screen. -Editing Custom Shortcuts settings. - - - - - - - -Credits and License - -Special thanks to Google Code-In 2011 participant Subhashish Pradhan for -writing much of this article. - - - -&underFDL; -&underGPL; - - - -
- - diff --git a/doc/kcontrol/khotkeys/manage-export.png b/doc/kcontrol/khotkeys/manage-export.png deleted file mode 100644 index 20a6fd89..00000000 Binary files a/doc/kcontrol/khotkeys/manage-export.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/oxygen-22x22-edit-clear-locationbar-rtl.png b/doc/kcontrol/khotkeys/oxygen-22x22-edit-clear-locationbar-rtl.png deleted file mode 100644 index 2bc48d86..00000000 Binary files a/doc/kcontrol/khotkeys/oxygen-22x22-edit-clear-locationbar-rtl.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/settings.png b/doc/kcontrol/khotkeys/settings.png deleted file mode 100644 index 95c297d2..00000000 Binary files a/doc/kcontrol/khotkeys/settings.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/shortcuts-action-command.png b/doc/kcontrol/khotkeys/shortcuts-action-command.png deleted file mode 100644 index 2ed9b2bb..00000000 Binary files a/doc/kcontrol/khotkeys/shortcuts-action-command.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/shortcuts-action-keyboard.png b/doc/kcontrol/khotkeys/shortcuts-action-keyboard.png deleted file mode 100644 index b2a7fca2..00000000 Binary files a/doc/kcontrol/khotkeys/shortcuts-action-keyboard.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/shortcuts-trigger-keyboard.png b/doc/kcontrol/khotkeys/shortcuts-trigger-keyboard.png deleted file mode 100644 index 564665c9..00000000 Binary files a/doc/kcontrol/khotkeys/shortcuts-trigger-keyboard.png and /dev/null differ diff --git a/doc/kcontrol/khotkeys/shortcuts-trigger-mouse.png b/doc/kcontrol/khotkeys/shortcuts-trigger-mouse.png deleted file mode 100644 index 0eedf6f5..00000000 Binary files a/doc/kcontrol/khotkeys/shortcuts-trigger-mouse.png and /dev/null differ diff --git a/doc/kcontrol/khtml-adblock/CMakeLists.txt b/doc/kcontrol/khtml-adblock/CMakeLists.txt deleted file mode 100644 index c50b0f11..00000000 --- a/doc/kcontrol/khtml-adblock/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/khtml-adblock) diff --git a/doc/kcontrol/khtml-adblock/index.docbook b/doc/kcontrol/khtml-adblock/index.docbook deleted file mode 100644 index e153d5f4..00000000 --- a/doc/kcontrol/khtml-adblock/index.docbook +++ /dev/null @@ -1,90 +0,0 @@ - - - - -]> - -
- -AdBlocK Filters - -&Krishna.Tateneni; &Krishna.Tateneni.mail; - - - -2011-11-22 -&kde; 4.8 - - -&konqueror; AdBlocK can be configured to replace or remove -images or frames from web pages that match a series of filters. - -The setting Enable filters enables or -disables the use of list of URL filters. -If Hide filtered images is enabled then -blocked images are completely removed from the page and the space they -occupied is reclaimed. If the option is disabled then a placeholder -image is used in place of filtered images. - - - -Manual Filter - -The main part of this tab is a list of -URLs that will be compared against image and frame names to decide -on fitlering actions. The wildcards can be given as filename style -regular expressions. - -Use the Search edit box above the list box -to filter matching entries an the fly. - -Each filter can either be expressed as a file style wildcard -string (e.g. http://www.site.com/ads/*) or as a full regular expression -by enclosing the filter with forward slashes (e.g. //(ads|dclk)\./). - -Any filter string can be preceded by @@ to whitelist -(allow) any matching &URL;, which takes priority over any blacklist (blocking) -filter. - -Import and Export will -save or read the current filter list to a plain text file. The file begins with a -header line [AdBlock], then all of the filters follow each -on a separate line. Lines prefixed with an exclamation mark (!) -and the header line are treated as comments and can be used -to clarify or label a set of filters. - -Highlight an entry from the list to change it in the edit box or remove this item. -Enter a new filter string here and add it to the list using the -Insert button. - - - - -Automatic Filter - - -This tab shows a list of names and &URL;'s with predefined AdBlock filter entries. -To enable an entry tick the checkbox beside the filter name and adjust the -Automatic update interval (default 7 days). - - - - - - - -If AdBlock filters are enabled, an icon at the right side of status bar is shown. -Use a &RMB; click on this icon to open the context menu with actions to show all blockable -elements on a web page, open this &systemsettings; module and disable blocking for a site -or page temporarily. - -A click with the &LMB; shows the dialog with all blockable elements on the opened web page -as well. From this dialog you can add new filters directly without opening this &systemsettings; -module. - -
diff --git a/doc/kcontrol/khtml-behavior/CMakeLists.txt b/doc/kcontrol/khtml-behavior/CMakeLists.txt deleted file mode 100644 index 71ad7fbb..00000000 --- a/doc/kcontrol/khtml-behavior/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/khtml-behavior) diff --git a/doc/kcontrol/khtml-behavior/index.docbook b/doc/kcontrol/khtml-behavior/index.docbook deleted file mode 100644 index f101feac..00000000 --- a/doc/kcontrol/khtml-behavior/index.docbook +++ /dev/null @@ -1,96 +0,0 @@ - - - - -]> - -
- -Web Browsing - -&Krishna.Tateneni; &Krishna.Tateneni.mail; - - - -2011-11-11 -&kde; 4.10 - - -KDE -Systemsettings -konqueror -browsing - - - - -Web Browsing - -The &konqueror; Browser module of &systemsettings; allows you to select -various options for the behavior of &konqueror;, the -integrated web browser of &kde;. - -If Ask for name and folder when adding bookmarks -is checked, &konqueror; will allow you to change the title of the -bookmark and choose a folder in which to store it when you add a new -bookmark. - -Enable Show only marked bookmarks in bookmark toolbar -and &konqueror; will show only those bookmarks in the -bookmark toolbar which you have marked to do so in the bookmark editor. - -The next option you can enable on this page is Form -Completion. If you check this box, &konqueror; will -try to remember what you answer to form questions, and will try to fill -in forms for you with the answers you previously used. - -You can configure the number of form items &konqueror; remembers -with the spin box labelled Maximum -completions - -Of course, anything &konqueror; fills in a form with, you -can still edit before submitting the form! - -The next option is Change cursor over -links. If this option is selected, the shape of the cursor -will change (usually to a hand) whenever it moves over a -hyperlink. This makes it easy to identify links, especially when they -are in the form of images. - -If Middle click opens URL in selection -is checked, you can open the &URL; in the selection by middle -clicking on a &konqueror; view. - -As a convenience feature, if you enable Right click -goes back in history, then clicking an empty area (&ie; not -a link) in the &konqueror; window will act as if you pressed the -Back button on the toolbar. - -Enabling Allow automatic delayed -reloading/redirecting allows websites to send you to -another page without your interaction. In many cases, this is a -convenience. For example, the website has moved to a new -&URL;. Many webmasters in this situation will put up -a page on the old site, telling you that it has moved and you may like -to change your bookmark, and then automatically move you along to the -new website. However, such features can be confusing, or annoying, -when misused, and so you may wish to disable it. - -Enable Access Key activation with &Ctrl; key: -Pressing the &Ctrl; key when viewing web pages activates Access Keys. -Unchecking this box will disable this accessibility feature. &konqueror; -needs to be restarted for this change to take effect. - -Send the DNT header to tell web sites you do not want -to be tracked. Check this box if you want to inform a web site -that you do not want to your web browsing habits tracked. - - -Offer to save website passwords. -Uncheck this box from being prompted to save website passwords - - - -
diff --git a/doc/kcontrol/khtml-general/CMakeLists.txt b/doc/kcontrol/khtml-general/CMakeLists.txt deleted file mode 100644 index 23cdaef4..00000000 --- a/doc/kcontrol/khtml-general/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/khtml-general) diff --git a/doc/kcontrol/khtml-general/index.docbook b/doc/kcontrol/khtml-general/index.docbook deleted file mode 100644 index 70c14f08..00000000 --- a/doc/kcontrol/khtml-general/index.docbook +++ /dev/null @@ -1,135 +0,0 @@ - - - -]> - -
-General &konqueror; Behavior - - - -&Burkhard.Lueck; - - - -2011-11-22 -&kde; 4.8 - - -On this page you find settings for home and start page and the behavior -of tabbed browsing both for &konqueror;'s file manager and browser mode. - - - -When Konqueror starts - -This option determines which page is displayed when &konqueror; starts, -the introduction page, your home page, a blank page or your bookmarks page. - - - - -Home page -This is the &URL; (⪚ a -folder or a web page) where &konqueror; in browser mode will jump to -when the Home Page button in the toolbar is pressed. -You can set a path that is your Home page by -typing into the text field, or using the browse -icon to select a local folder. &konqueror; needs to be restarted for -changes to take effect. -When &konqueror; is used in file manager mode, the Home Page -button in the toolbar is replaced by a Home Folder button -which makes it jump to your local home folder instead. - - - -Default web browser engine - -This option provides an easy way to select the preferred web engine in &konqueror;, either -KHTML or Webkit, if installed. -Using the ViewView Mode -menu allows you to change the web engine temporarily on the fly. - - - - - -Open links in -new tab instead of in new window -&konqueror; defaults to a single window per page, but has the -capability to open multiple tabs inside a -single window. &konqueror; also, by default, has a &MMB; shortcut to -open any link in a new window. If you enable Open links in -new tab instead of in new window you can &MMB; click on a -link to have it open in a new tab. - - - -Open popups in new tab instead of in new window -Whether or not JavaScript popups if allowed shall open in a new tab or in a -new window. - - - -Open as tab in existing Konqueror when URL is called externally -When you click a &URL; in another &kde; program or call kfmclient to open a &URL;, -the current desktop will be searched for a non-minimized &konqueror; and, if -found, the &URL; opened as a new tab within it. Otherwise a new &konqueror; -window will be opened with the required &URL;. - - - -Open new tabs in the background -If you are using tabbed browsing, you can choose if a newly -opened tab becomes the active (front) tab, or goes to -the back. On a slow Internet connection, or while browsing a page -that has a list of headlines or other links in a list, you may like to -have the new tabs load in the background while you continue reading. -In this case, enable this setting. If you prefer to go -straight to the new page, leaving the old one in the background to -return to later, disable it. - - - -Open new tab after current tab -This will open a new tab opened from a page after the current tab, instead -of after the last tab. - - - -Hide the tab bar when only one tab is open -This will display the tab bar only if there are two or more tabs. Otherwise -it will always be displayed. - - - -Show close button on tabs -This will display close buttons inside each tab instead of websites' icons. - - - -Middle-click on a tab to close it -When you click on a tab using the middle mouse button or mouse wheel, it -will close that tab. &konqueror; needs to be restarted for changes to take -effect. - - - -Confirm when closing windows with multiple tabs -If you close a window in &konqueror; that has multiple tabs -open, &konqueror; will ask you if you're sure that you meant to close -it. You can toggle on and off this behavior with this -check box. - - - -Activate previously used tab when closing the current tab -When checking this the previous used or opened tab will be activated when -you close the current active tab instead of the one right to the current tab. - - - - -
diff --git a/doc/kcontrol/khtml-java-js/CMakeLists.txt b/doc/kcontrol/khtml-java-js/CMakeLists.txt deleted file mode 100644 index c91facf6..00000000 --- a/doc/kcontrol/khtml-java-js/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/khtml-java-js) diff --git a/doc/kcontrol/khtml-java-js/index.docbook b/doc/kcontrol/khtml-java-js/index.docbook deleted file mode 100644 index 0b0e5dad..00000000 --- a/doc/kcontrol/khtml-java-js/index.docbook +++ /dev/null @@ -1,145 +0,0 @@ - - - - -]> - -
- -Java and JavaScript - -&Krishna.Tateneni; &Krishna.Tateneni.mail; - - - -2009-11-24 -&kde; 4.4 - - -KDE -Systemsettings -konqueror -browsing -Java -JavaScript - - - - -&Java; and JavaScript - - -&Java; - -&Java; allows applications to be downloaded and run by a web -browser, provided you have the necessary software installed on your -machine. Many web sites make use of &Java; (for example, online -banking services or interactive gaming sites). You should be aware -that running programs from unknown sources could pose a threat to the -security of your computer, even if the potential extent of the damage -is not great. - -The check box Enable Java globally allows -you to turn &Java; support on for all web sites by default. You can -also select to turn &Java; on or off for specific hosts. To add a -policy for a specific host, click the New... -button to bring up a dialog in which you can type the host name and -then choose to accept or reject &Java; code from that particular host, -which will add the domain to the list on the left of the page. - -You can select a host in the list, and click the -Change... button to choose a different policy for -that host. Clicking the Delete button removes the -policy for the selected host; after deletion, the global settings will -then apply to that host. - -Finally, the group of controls labeled Java Runtime -Settings allows you to set some options for the way in -which &Java; should run. - -Use security -manager is normally enabled by default. This setting will -cause the JVM to run with a Security Manager in place. This will keep -applets from being able to read and write to your file system, creating -arbitrary sockets, and other actions which could be used to compromise -your system. Disable this option at your own risk. You can modify your -$HOME/.java.policy file with the -&Java; policytool utility to give code downloaded from certain sites -more permissions. - -Use KIO will cause the -JVMto use &kde;'s own KIO -transports for network connections. - -The Shutdown applet server when inactive for more than -check box allows you to save resources by closing the &Java; Applet -Server when it is not in use, rather than leaving it running in the -background. Leaving this disabled may make &Java; applets start up -faster, but it will use system resources when you are not using a -&Java; applet. If you enable this, you can set a timeout. - -You can either opt to have &konqueror; automatically detect the -&Java; installation on your system, or specify the path to the -installation yourself by selecting Path to Java -executable or 'java'. You may want to choose the latter method, for -instance, if you have multiple &Java; installations on your system, -and want to specify which one to use. If the &Java; Virtual Machine -you are using requires any special startup options, you can type them -in the text box labeled Additional Java -arguments. - - - - -JavaScript - -Despite the name, JavaScript is not related at all to -&Java;. - -The first part of this tab works the same as the &Java; settings. - -The checkbox Enable JavaScript globally allows -you to turn JavaScript support on for all web sites by default. You -can also select to turn JavaScript on or off for specific hosts. To -add a policy for a specific host, click the -New... button to bring up a dialog in which you -can type the host name and then choose to accept or reject JavaScript -code from that particular host, which will add the domain to the list -on the left of the page. - -You can select a host in the list, and click the -Change... button to choose a different policy for -that host. Clicking the Delete button removes the -policy for the selected host; after deletion, the global settings will -then apply to that host. - -The final set of options in the section Global JavaScript -Policies determine what happens -when a page uses JavaScript for specific actions. - -You can individually enable or disable the ability of JavaScript -to manipulate your windows by moving, resizing or changing focus. You -can also disable JavaScript from changing the status bar text, so that -for instance, you can always see where links will take you when -clicked. The choices for these options are Allow and -Ignore. - -For opening a new window, there is even more control. You can -set &konqueror; to Allow all such requests, -Ask each time a request is made, or -Deny all popup requests. - -The Smart setting will only allow -JavaScript popup windows when you have explicitly chosen a link that -creates one. - - - - -
diff --git a/doc/kcontrol/khtml-plugins/CMakeLists.txt b/doc/kcontrol/khtml-plugins/CMakeLists.txt deleted file mode 100644 index f65154b2..00000000 --- a/doc/kcontrol/khtml-plugins/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/khtml-plugins) diff --git a/doc/kcontrol/khtml-plugins/index.docbook b/doc/kcontrol/khtml-plugins/index.docbook deleted file mode 100644 index 410162be..00000000 --- a/doc/kcontrol/khtml-plugins/index.docbook +++ /dev/null @@ -1,149 +0,0 @@ - - - - -]> - -
- -Browser Plugins - -&Krishna.Tateneni;&Jost.Schenck; - - - - -2009-11-24 -&kde; 4.4 - - -KDE -Systemsettings -Konqueror -Browsing -Plugins - - - - - -Browser Plugins - - -Global Settings - -The first setting here is Enable Plugins -globally. If you disable this check box, then &konqueror; -will not use any plugins. If you enable it, then any installed and -configured plugins that it can find will be used by &konqueror; - -You can also restrict &konqueror; to Only allow HTTP -and HTTPS URLs for plugins by checking the box. - -The next option determines, if plugins are loaded on demand only. -Use the slider labeled CPU priority for plugins -to adjust this setting. - - -Click the Domain-Specific Settings button to open -a dialog where you can set specific plugin policies for any particular -host or domain. These policies will be used instead of the default policy for -enabling or disabling plugins on pages sent by these domains or hosts. - -Add a new policy here or select a policy and use the controls on the right to modify it. - - - - -Plugins - - -Introduction - -As &Netscape;'s Navigator has been a -web browsing standard for many years, so-called &Netscape; plugins have -appeared that allow rich web content. Using those plugins, web sites -can contain PDF files, flash animations, video, &etc; -With &konqueror;, you can still use these plugins to take advantage of -rich web content. - -&Netscape; plugins should not be confused with &konqueror; -plugins. The latter ones specifically extend &konqueror;'s -functionality; they are normally not used to display rich web -content. - - - - -Scan for Plugins - -&konqueror; has to know where your &Netscape; plugins are -installed. This can be in several places, &ie; you might have -system-wide plugins in /opt/netscape/plugins and your personal -plugins in $HOME/.netscape/plugins. -However, &konqueror; will not automatically use the installed plugins: -it first has to scan a list of folders. You can initiate the scan -by clicking Scan for Plugins. - -To find plugins, &konqueror; will look in the folders -specified in the Folders frame. When you -use this control module for the first time, this list will already be -filled with reasonable paths that should work on most operating systems. -If you need to provide a new path, click the New -button; then you can either enter the new path in the text edit box to -the left, or choose a folder using the file dialog by clicking the -Open file icon. As scanning the folders can take -a little time, you might want to remove folders from the list where -you know that no plugins are installed: do this by selecting a folder -and clicking Remove. Using the -Up and Down buttons you -can change the order in which folders will be scanned by moving the -selected folder up or down. - -As usual, click Apply to save your changes -permanently. - - - - -Plugins - -In this section, you can see a list of the &Netscape; plugins found by -&konqueror;, displayed as a tree. Double click on a plugin to fold it -out and you will see that the different mime types this plugin can handle -will be displayed as branches. Fold out a mime type to see its -info. - -This list is only for informational purposes. - - - - - - -
diff --git a/doc/kcontrol/kwincompositing/CMakeLists.txt b/doc/kcontrol/kwincompositing/CMakeLists.txt deleted file mode 100644 index 877a45ce..00000000 --- a/doc/kcontrol/kwincompositing/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kwincompositing) diff --git a/doc/kcontrol/kwincompositing/index.docbook b/doc/kcontrol/kwincompositing/index.docbook deleted file mode 100644 index dce55c39..00000000 --- a/doc/kcontrol/kwincompositing/index.docbook +++ /dev/null @@ -1,82 +0,0 @@ - - - -]> - -
- - -Desktop Effects - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -KControl -desktop -effects - - - -Desktop Effects - - -Introduction - -This module is used to configure desktop effects -for &kde;. - - -This panel is divided into three tabs: General, -All Effects and Advanced. - - -<guilabel>General</guilabel> tab - -At the top of this tab in the section Activation is a checkbox labeled Enable -desktop effects at startup. If there is no mark in front of this checkbox, then all -visual effects are disabled. -All desktop effects can be turned on and off using the global shortcut -&Alt;&Shift;F12. - -Below that section there are some settings for the simple desktop effects like -improved window management, various animations, effects for desktop switching and -the animation speed. - - - -<guilabel>All Effects</guilabel> tab - -The main part of this page is a list of all available effects grouped -by Accessibility, Appearance, -Candy, Focus, Tools -and Window Management. -Use the incremental search bar above the list window to find items in the list. - -Check an effect in the list to enable it. Display the About -dialog by clicking the info button at the right side of the list item. -Some effects have settings options, in this case there is a tool button -at the left of the info button. Click it to open a configuration dialog. - - - -<guilabel>Advanced</guilabel> tab - -On this tab you can select a Compositing type and the Qt graphics system. -In the next two sections you can configure General Options and OpenGL Options. - - - - - - - - -
diff --git a/doc/kcontrol/kwindecoration/CMakeLists.txt b/doc/kcontrol/kwindecoration/CMakeLists.txt deleted file mode 100644 index ab136bcf..00000000 --- a/doc/kcontrol/kwindecoration/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kwindecoration) diff --git a/doc/kcontrol/kwindecoration/buttons.png b/doc/kcontrol/kwindecoration/buttons.png deleted file mode 100644 index 1c4fdf7c..00000000 Binary files a/doc/kcontrol/kwindecoration/buttons.png and /dev/null differ diff --git a/doc/kcontrol/kwindecoration/decoration.png b/doc/kcontrol/kwindecoration/decoration.png deleted file mode 100644 index 9fc84e54..00000000 Binary files a/doc/kcontrol/kwindecoration/decoration.png and /dev/null differ diff --git a/doc/kcontrol/kwindecoration/index.docbook b/doc/kcontrol/kwindecoration/index.docbook deleted file mode 100644 index 17ea824d..00000000 --- a/doc/kcontrol/kwindecoration/index.docbook +++ /dev/null @@ -1,150 +0,0 @@ - - - -]> - -
- -Window Decorations - -&Rik.Hemsley; &Rik.Hemsley.mail; -&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -kwin -window -border -theme -style - - - -Window Decoration - -This module allows you to select a style for the buttons and borders around -windows. - - -Window Decorations - - - -Window Decoration Configuration Module - - - - - - Window Decoration Configuration Module - - - - - -Choose a window decoration style from the preview list, using the -search field at the top of the screen. - -The &kde; default window decoration is called "Oxygen". - -Each style has a different look, but also a different -feel. Some have (sometimes invisible) -resize borders all around the edge, which make resizing -easier but moving more difficult. Some have no borders on certain -edges. One (BII) even has a dynamically sized and -positioned title element. - -You are encouraged to experiment with the different styles until -you find one which best suits your pattern of work. - -Below the preview pane you find three buttons to open configuration dialogs -for decoration and buttons of the selected style or to download additional -styles. - - - - -Decorations - -In this dialog you can change the decoration of the window. - -The available options depend on the selected style. - - - -Oxygen Decoration Options - - - - - - Oxygen Decoration Options - - - - - - - -Buttons - -This dialog allows you to customize the buttons location on the titlebar. You can move Close button to the left for example. Check the Use custom titlebar button positions option in order to customize your titlebars. Then use the &kde; titlebar below and the buttons on its left and right to rearrange them as you want them. - - - - -Window Decoration Configuration Module - - - - - - Window Decoration Configuration Module - - - - - - By default, Show window button tooltips is checked and tooltips are shown. - - -This page has instructions directly on it - just drag around the -buttons until you have the order that makes you comfortable. - - -Not all the window decorations are able to comply with your custom -set button order. The ones that cannot are being converted, but at the -time of this release they have not been all been changed. - - -Apart from choosing the window decoration itself, you can choose -here two further options: if there should be a tooltip while you hover -your mouse over a window decoration button, and if the window -decoration should attempt to use a custom set button order. - - -The tooltips can be quite useful if you have set a custom button -order, and then changed to an unfamiliar window decoration. - - - -For accessibility purposes, some window decorations support -extra wide borders. If this is available, you can also choose a -border size here. These large borders are easier to see for low -vision users, and easier to grab for people with limited mobility or -difficulty using a mouse. - - - - - - -
diff --git a/doc/kcontrol/kwindecoration/main.png b/doc/kcontrol/kwindecoration/main.png deleted file mode 100644 index 1946aa3e..00000000 Binary files a/doc/kcontrol/kwindecoration/main.png and /dev/null differ diff --git a/doc/kcontrol/kwinscreenedges/CMakeLists.txt b/doc/kcontrol/kwinscreenedges/CMakeLists.txt deleted file mode 100644 index 84580ea8..00000000 --- a/doc/kcontrol/kwinscreenedges/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kwinscreenedges) diff --git a/doc/kcontrol/kwinscreenedges/index.docbook b/doc/kcontrol/kwinscreenedges/index.docbook deleted file mode 100644 index 3a401d4d..00000000 --- a/doc/kcontrol/kwinscreenedges/index.docbook +++ /dev/null @@ -1,69 +0,0 @@ - - - -]> - -
- - -Screen Edges - -&Mike.McBride; &Mike.McBride.mail; - - - -2014-03-05 -&kde; 4.11 - - -KDE -Systemsettings -desktop -effects - - - -Active screen edges allow you to activate effects by pushing your mouse -cursor against the edge of the screen. Here you can configure which effect -will get activated on each edge and corner of the screen. - - -Click with any mouse button onto a square and select an effect -in the context menu. Edges with a black square have already an attached effect, -a grey colored square indicates that no effect is selected for this edge. - -The number of accessible items in the context menu depends on the settings in the module - -Desktop Effects in the Workspace Appearance and Behavior -category. Enable desktop effects to activate compositing, select the compositing type, -and then choose your favorite effects on the -All Effects tab from the Windows Management -group. This activates the corresponding items in the context menu. - -If you are looking for the setting to enable switching of -desktops by pushing your mouse cursor against the edge of -the screen choose one of the above mentioned -Window Management effects from the context menu. - -The section Window Management has two additional options when moving windows to screen edges: - -Maximize windows by dragging them to the top of the screen. - -Tile windows by dragging them to the side of the screen. The windows will be tiled to a quarter of the screen if dragged to the upper or lower part of the screen height determined by the value in the spinbox, otherwise to the full height of the screen. - - - - -The Other Settings configure the behavior pushing the mouse cursor to a screen edge. -Switch desktop on edge: Change desktop when the mouse cursor is pushed against the edge of the screen. -If Always Enabled is selected all effects configured for screen edges in the first section of this module will be disabled. - -Activation delay: The amount of time required for the mouse cursor to be pushed against the edge -of the screen before the action is triggered - -Reactivation delay: The amount of time required after triggering an action until the next trigger can occur. - - -
diff --git a/doc/kcontrol/kwintabbox/CMakeLists.txt b/doc/kcontrol/kwintabbox/CMakeLists.txt deleted file mode 100644 index d170cde3..00000000 --- a/doc/kcontrol/kwintabbox/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/kwintabbox) diff --git a/doc/kcontrol/kwintabbox/index.docbook b/doc/kcontrol/kwintabbox/index.docbook deleted file mode 100644 index 9bd26c96..00000000 --- a/doc/kcontrol/kwintabbox/index.docbook +++ /dev/null @@ -1,101 +0,0 @@ - - - -]> -
- -Task Switcher - -&Martin.Graesslin;&Martin.Graesslin.mail; - - - -2014-03-10 -&kde; 4.11 - - -KDE -System Settings -desktop -window -navigation - - - - -Navigating through Windows - -This module offers the possibility to configure the behaviour for Navigating through windows often referred to as &Alt; . There are two independent sets of effects which can have different settings. For each of this sets there is an own tab (Main and Alternative) in this module. - - - -The first set of effects on the Main tab has predefined shortcuts. If you want to use the second set of effects on the Alternative tab, you have to set a shortcut for these effects in the Shortcut Editor manually. - - -For navigating through windows without &Alt; , you can define screen edge actions in the &systemsettings; module Screen Edges. - - -The following documentation of options applies to the general settings and the alternative settings as well. - - -Visualization - -There are several effects which can be used instead of the normal window list when compositing is enabled. By default the Thumbnails effect is used. This effect displays a small thumbnail of each window inside a box and the currently selected window is highlighted. -There are several additional predefined layouts which provide an informative or compact view, small or large icons, a grid and window title only. -Selecting one of these layouts you will have a button to show a preview. -If you enable Show selected window it will be shown as background of the task switcher window. - - -Cover Switch and Flip Switch effect are more fancy effects which require OpenGL. Cover Switch displays the windows in a gallery with a large thumbnail of the currently selected window in the center of the screen while all other windows are rotated on the left and right. Flip Switch displays all windows on a 3D stack. The selected window is on top of the stack and navigating through the windows will move the stack so that the new selected window is on the top. - - -If the effect provides additional settings the configure button will be activated. By clicking this button a configuration dialog will be shown. - - -When compositing is not active or gets suspended the normal window list will be shown. There is no loss in functionality if an effect is selected and compositing is not active. - - - -Shortcuts - -The shortcut editor provides the configuration interface for the keyboard shortcuts for navigating through windows. Each of the two possible sets of effects has two shortcuts: one for the forward direction and one for the reverse direction. Please note that the window list can only be shown if you select a shortcut with a keyboard modifier such as the &Alt; or &Ctrl; key. This modifier has to be hold while switching. Selecting a shortcut without a modifier key can break the behaviour of navigating through windows. - - - - -Content -It is possible to influence the sort order, you can either use a sort order based on the last usage of the windows or the stacking order of the windows. - -If you check Include "Show Desktop" icon an entry for the desktop will be added to list with application windows. Then you can select this entry in the list to minimize all windows. -If Only one window per application is selected then only the last used instance of an application is contained in the list. Switching to other instances is possible only via the panel then. - - - -Filter windows - -You can configure which windows should be shown in the list initiated by pressing &Alt; (predefined for the settings on the Main tab) or the user defined shortcut for the alternative settings. - -So it is possible to only show windows on the current virtual desktop or windows from all other desktops. Additionally you can apply similar rules for windows in activities or on screens for a multimonitor setup. - -The last option allows you to filter on the minimization status of windows. - - - - -
- - - diff --git a/doc/kcontrol/language/CMakeLists.txt b/doc/kcontrol/language/CMakeLists.txt deleted file mode 100644 index b4f20027..00000000 --- a/doc/kcontrol/language/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/language) diff --git a/doc/kcontrol/language/index.docbook b/doc/kcontrol/language/index.docbook deleted file mode 100644 index cf15342e..00000000 --- a/doc/kcontrol/language/index.docbook +++ /dev/null @@ -1,633 +0,0 @@ - - - -]> - -
- -Country/Region & Language - -&Mike.McBride; &Mike.McBride.mail; -&Krishna.Tateneni; &Krishna.Tateneni.mail; - - - - 2013-12-05 - 4.12 - - - KDE - Systemsettings - locale - country - language - - - - - - -Country/Region & Language - - -This module of the &kde; &systemsettings; allows you to select customization -options that depend on the region of the world that you happen to live in. -There are seven different tabs in this module, each of which is described in -detail in the following sections. - - - -In most cases, you can simply select the country and the language, and the -other options will be set in an appropriate manner. - - - -Below the tabs of this module you can see a preview of what the settings look -like. In addition to positive and negative numbers, you can see how positive -and negative currency values, long and short dates, and times are displayed. -When you change any of the settings, the preview shows the effects of the -changes before you apply them. - - - -Each setting option in the various tabs has an individual - - default button which -is activated whenever that setting is different to your country default value. -Clicking on the button will restore only that setting to your Country default. - - - - - -Country - - -In this tab you can select the country or region that you want to use. - - - -The Country drop down box contains the list of available -countries and will initially show your currently selected country. If the -selection shows System Country then you have not set a country -and are defaulting to the Country set by the system, which will also be shown. -Changing the country will automatically change the settings to the defaults for -that country, except were you have set your own settings which will be left -unchanged. You can easily see where your personal settings differ from the -country settings by looking at the Default button next to the individual -setting. If the button is enabled then your personal setting is different and -you can click on the button to restore the country setting for that option -only. - - - - - - - -Languages - - -In this tab you can set your preferred languages for the &kde; Workspace and -Applications to be displayed in. - - - -The &kde; Workspace and Applications are written in American English and are -translated into many different languages by teams of volunteers. These -translations need to be installed first before you can choose to use them. The -list of Available Languages shows what KDE translations -are installed and available on your system. If the language you want to use is -not shown in this list then you will need to install it using the usual method -for your system. Your system may have enabled the -Install more languages button to make this easy for you. - - - -The Preferred Languages list shows the languages that will -be used when displaying the &kde; Workspace and Applications. Because not all -of the KDE Workspace and Applications may be translated into every language -&kde; will try to find suitable translations for you by working down the -Preferred Languages list until it finds a translation. If -none of your preferred languages have a required translation then the original -American English will be used. - - - -You can add a language to the Preferred Languages list by -selecting it in the Available Languages and then clicking -on the Add arrow button. You can remove a language from the -Preferred Languages list by selecting it and then clicking -on the Remove arrow button. You can change the order of preference in the -Preferred Languages list by selecting a language and -clicking on the Up or Down arrow button. - - -Only languages listed in Preferred Languages and -Available Languages will be offered as options -for Primary language and Fallback language -in the Switch Application Language dialog of the -Help menu. - - - - -Language and Country/Region are independent settings. Changing a language does -not automatically change the settings for numbers, -currency &etc; to the corresponding country or region. It will only change the -language used in displaying dates, such as month names. - - - - - - - - -Numbers - - -On this tab, you can select options for how numbers are displayed. The defaults -are selected automatically based on the country which is currently selected. - - -In the first drop down box you can define the Digit grouping -used to display numbers. - - -In the Group separator text box you can type the character -that you want to use to separate groups of digits in numbers, usually a -. or a ,. You should ensure that -this value is different to the Decimal separator setting. -The drop-down box provides a list of common values to choose from. - - - -In the Decimal separator text box you can type the -character that you want to use to separate the decimal portion of numbers, -usually a . or a ,. You should -ensure that this value is different to the Group separator -setting. The drop-down box provides a list of common values to choose from. - - - -In the Decimal places spin box you can set the number of -decimal places displayed for numeric values, &ie; the number of digits -after the decimal separator. - - - -In the Positive sign text box you can type the character -that you want to use to indicate positive numbers. You should ensure that this -value is different to the Negative sign setting. The -drop-down box provides a list of common values to choose from. This value may -also be used for monetary values depending on the -Positive format selected in the Money -tab. - - - -In the Negative sign text box you can type the character -that you want to use to indicate negative numbers. You should ensure that this -value is different to the Positive sign setting. The -drop-down box provides a list of common values to choose from. This value may -also be used for monetary values depending on the -Negative format selected in the Money -tab. - - - -The Digit set drop down box lists digit sets which may be -used instead of Arabic digits when displaying numbers. If you select a digit -set other than Arabic, it will be applied only to numbers which appear in a -language context that uses that digit set while Arabic digits are still going -to be used elsewhere, ⪚ Arabic-Indic digits will be applied to Arabic but -not to American English. - - - -Note that digit grouping, group separator, decimal separator, decimal places, positive format, -negative format and the digit set used to display monetary values has to be set -separately on the Money tab. - - - - - - - -Money - - -On this tab, you can select options for how monetary values are displayed. The -defaults are selected automatically based on the country which is currently -selected. - - - -In the Currency drop-down box you can choose the currency -you want to use when displaying monetary values. This will default to the main -currency in use in your selected country. You can choose a different currency -from the drop-down box, which displays the names of all available currencies -their ISO 4217 standard Currency Code. The currencies used in your selected -country are listed at the top, followed by all the other currencies. Changing -the currency will also update the Currency symbol to use -the default symbol for that currency, but no other format settings will be -changed. - - - -In the Currency symbol drop-down box you can choose the -currency symbol you want to use when displaying monetary values. This will -default to the usual symbol of the currency you have selected in the -Currency drop-down box. This will only allow you to select -a valid currency symbol for the currency code to prevent inconsistent choices, -such as choosing US Dollars but showing the Pound Sterling symbol £ instead. -This setting will automatically be changed when you change the -Currency setting. - - -In the next drop down box you can define the Digit grouping -used to display monetary values. - - -In the Group separator text box you can type the character -that you want to use to separate groups of digits in monetary values, usually a -. or a ,. You should ensure that -this value is different to the Decimal separator setting. -The drop-down box provides a list of common values to choose from. - - - -In the Decimal separator text box you can type the -character that you want to use to separate the decimal portion of monetary -values, usually a . or a ,. You -should ensure that this value is different to the -Group separator setting. The drop-down box provides a list -of common values to choose from. - - - -In the Decimal places spin box you can set the number of -decimal places displayed for monetary values, &ie; the number of digits -after the decimal separator. - - - -In the Positive format drop-down box you can select how -you want positive monetary values to be displayed. The drop-down box displays a -list of four sample formats that you can choose from, combining the options for -where the Currency symbol and the numeric value -Positive sign are displayed. You can also choose to -replace the numeric value Positive sign with brackets. - - - -In the Negative format drop-down box you can select how -you want negative monetary values to be displayed. The drop-down box displays a -list of ten sample formats that you can choose from, combining the options for -where the Currency symbol and the numeric value -Negative sign are displayed. You can also choose to -replace the numeric value Negative sign with brackets. - - - -The Digit set drop down box lists digit sets which may be -used instead of Arabic digits when displaying money. If you select a digit -set other than Arabic, it will be applied only to numbers which appear in a -language context that uses that digit set while Arabic digits are still going -to be used elsewhere, ⪚ Arabic-Indic digits will be applied to Arabic but -not to American English. - - - -Note that digit grouping, group separator, decimal separator, decimal places, positive sign, -negative sign and the digit set used to display numeric values has to be set -separately on the Numbers tab. - - - - - - - -Calendar - - -On this tab, you can select options for how calendar information is displayed. -The defaults are selected automatically based on the country which is currently -selected. - - - -In the Calendar system drop-down box you can choose the -calendar system to be used when displaying or inputting dates. This will -default to the main calendar system in use in your selected country, usually -the Gregorian calendar. Changing the calendar system will also update the -various weekday name drop-down combos with the names of days of the week in the -new calendar system, will enable or disable the Use Common Era -tick box and may change the value of the Short year window -setting. - - - -Note that the Gregorian calendar used is a hybrid of the Julian calendar up to -Thursday 4 October 1582 and the Gregorian calendar from Friday 15 October 1582, -leaving a gap of ten missing days. We are aware -this conversion date is not factually correct for all countries, however this -is how Qt have chosen to implement the Gregorian calendar and we wish to remain -consistent with them. - - - -If you have selected the Gregorian calendar system then the Use -Common Era tick box will be enabled. This allows you to choose to -use the Common Era (CE/BCE) instead of the Christian Era (AD/BC) when -displaying and inputting dates. See the Date & Time -tab for how to set this up. - - - -The Short year window option is only used when you choose -to use a short two digit year format (YY) in the Long date -format or Short date format settings in the -Date & Time tab. When inputting a short year value, -⪚ 10, the system must guess what century that year falls in. By setting -the Short year window you tell the system how you want the -short year to be interpreted, ⪚ whether 50 is interpreted as 1950 or 2050. -This window can be set differently for each calendar system as they all use -different epochs (start dates). For example, the Hebrew calendar is into its -58th century (2010 Gregorian is roughly 5771 Hebrew), so may use a window of -5750 to 5850. - - -The Week number system option determines how the -week number will be calculated. There are four options available: - - -ISO Week -Use the ISO standard Week Number. This will always use Monday -as the first day of the ISO week. This is the most commonly used system. - - - -Full First Week -The first week of the year starts on the first occurrence -of the First day of the week, and lasts for seven days. -Any days before Week 1 are considered part of the last week of the previous year. -This system is most commonly used in the USA. - - - -Partial First Week -The first week -starts on the first day of the year. The second week of the year starts on -the first occurrence of the First day of the week, and -lasts for seven days. The first week may not contain seven days. - - - -Simple Week -The first week starts on the first day of the year and lasts -seven days, with all new weeks starting on the same weekday as the first day -of the year. - - - - -In the First day of week drop-down box you can choose -which weekday is considered the first day of the week. This value is often -used when displaying calendar tables to determine which day is listed first. - - - -In the First working day of week drop-down box you can -choose which weekday is considered the first working day of the week. This -value is often used when displaying calendar tables to determine when the -weekend is. - - - -In the Last working day of week drop-down box you can -choose which weekday is considered the last working day of the week. This -value is often used when displaying calendar tables to determine when the -weekend is. - - - -In the Week day for special religious observance drop-down -box you can choose which weekday is regularly used for special religious -observances. This value is often used when displaying calendar tables to -red letter a certain day. If you do not have any particular -weekday for religious observance then you can choose the -None / None in particular option. - - - - - - - -Date & Time - - -On this tab, you can select options for how date and time values are input or -displayed. The defaults are selected automatically based on the country which -is currently selected. - - - -In the Time format text box you can enter the format that -you want to use to input and display times. The format entered is a combination -of special codes representing time components and literal text used to separate -the time components. The special time component codes are listed below. You can -set the format to any combination of time components you like, but you should -always include at least an hour and minutes portion to allow you to input times -that are not ambiguous. The drop-down box provides a list of common time -formats in your currently selected language to choose from. - - - - -HH - The hour as a decimal number using a 24-hour clock -(00-23). - - -hH - The hour as a decimal number using a 24-hour clock -(0-23). - - -PH - The hour as a decimal number using a 12-hour clock -(01-12). - - -pH - The hour as a decimal number using a 12-hour clock -(1-12). - - -MM - The minutes as a decimal number (00-59). - - -SS - The seconds as a decimal number (00-59). - - -AMPM - Either 'AM' or 'PM' according to the given time -value. Noon is treated as 'PM' and midnight as 'AM'. You should always include -this code if you are using the 12-hour clock codes PH or -pH to prevent ambiguity when entering times. - - - - -In the AM symbol text box you can enter the symbol that -you want to use to input or display for AM when using a 12-hour clock. The -drop-down box provides a list of common symbols for your currently selected -language to choose from. - - - -In the PM symbol text box you can enter the symbol that -you want to use to input or display for PM when using a 12-hour clock. The -drop-down box provides a list of common symbols for your currently selected -language to choose from. - - - -In the Long date format text box you can enter the format -that you want to use to input and display long dates. The format entered is a -combination of special codes representing date components and literal text used -to separate the date components. The special date component codes are listed -below. You can set the format to any combination of date components you like, -but you should always include at least enough components to uniquely identify a -day in the year, ⪚ a month and day, to allow you to input dates that are not -ambiguous. If you don't include a year component then the current year will be -used. The drop-down box provides a list of common date formats in your -currently selected language to choose from. - - - - -YYYY - The year with century as a decimal number -(0000-9999). - - -YY - The year without century as a decimal number -(00-99). - - -MM - The month as a decimal number (01-12). - - -mM - The month as a decimal number (1-12). - - -MONTH - The full month name. - - -SHORTMONTH - The first three characters of the month -name. - - -DD - The day of month as a decimal number (01-31). - - -dD - The day of month as a decimal number (1-31). - - -WEEKDAY - The full weekday name. - - -SHORTWEEKDAY - The first three characters of the weekday -name. - - -ERAYEAR - The Era Year in local format (⪚ 2000 AD). - - -SHORTERANAME - The short Era Name (⪚ AD). - - -YEARINERA - The Year in Era as a decimal number -(⪚ 2000). - - -DAYOFYEAR - The Day of Year as a decimal number. - - -ISOWEEK - The ISO Week as a decimal number. - - -DAYOFISOWEEK - The Day of the ISO Week as a decimal -number. - - - - -In the Short date format text box you can enter the format -that you want to use to input and display short dates. This is in the same -format as the Long date format, please read that section -for more details. The drop-down box provides a list of common date formats in -your currently selected language to choose from. - - - -The Digit set drop down box lists digit sets which may be -used instead of Arabic digits when displaying dates and times. If you select a -digit set other than Arabic, it will be applied only to numbers which appear in -a language context that uses that digit set while Arabic digits are still going -to be used elsewhere, ⪚ Arabic-Indic digits will be applied to Arabic but -not to American English. - - - - - - - -Other - - -On this tab, you can select how other options are displayed. The defaults are -selected automatically based on the country which is currently selected. - - - -In the Page size drop-down box you can choose the page -size to use as the default for new documents, ⪚ in KWord. Note that this -setting does not affect your default paper size in the print dialog, to set -that you need to use the Printers module of the &kde; &systemsettings;. - - - -In the Measurement system drop-down box you can choose the -measurement system to use, either metric or imperial. - - - -In the Byte size units drop-down box you can choose the -unit system to use when displaying numbers counted in bytes. Traditionally -kilobytes meant units of 1024 instead of the metric 1000 for -most but not all byte sizes. To reduce confusion you can choose which system -you prefer. The available unit systems are listed below. - - - - -The IEC Units standard is always in multiples of 1024. - - -The Metric Units standard is always in multiples of 1000. - - -The JEDEC Units standard uses the traditional units used -in &kde; 3.5 and some other operating systems. - - - - - - - -
diff --git a/doc/kcontrol/language/oxygen-22x22-document-revert.png b/doc/kcontrol/language/oxygen-22x22-document-revert.png deleted file mode 100644 index 75ff210d..00000000 Binary files a/doc/kcontrol/language/oxygen-22x22-document-revert.png and /dev/null differ diff --git a/doc/kcontrol/mouse/CMakeLists.txt b/doc/kcontrol/mouse/CMakeLists.txt deleted file mode 100644 index 36a0d843..00000000 --- a/doc/kcontrol/mouse/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/mouse) diff --git a/doc/kcontrol/mouse/index.docbook b/doc/kcontrol/mouse/index.docbook deleted file mode 100644 index 20f8610f..00000000 --- a/doc/kcontrol/mouse/index.docbook +++ /dev/null @@ -1,472 +0,0 @@ - - - -]> - -
- -Mouse - -&Mike.McBride; &Mike.McBride.mail; -&Brad.Hards; &Brad.Hards.mail; - - - -2013-12-05 -&kde; 4.12 - - -This is the documentation for the &kde; &systemsettings; module that configures mice and other pointing devices. - - - - -KDE -Systemsettings -mouse - - - - -Mouse - -This module allows you to configure your pointing device. Your -pointing device may be a mouse, a track ball, a touch-pad, or another piece -of hardware that performs a similar function. - -This module is divided into several tabs: -General, -Advanced and -Mouse Navigation. -There may also be one or more additional tabs if you have a Logitech mouse -or trackball, providing access to special features. - - - -General - - - -Button Order - -If you are left-handed, you may -prefer to swap the functions of the left and -right buttons on your pointing device by choosing the -Left handed option. If your pointing device has more than two -buttons, only those that function as the left and -right buttons are affected. For example, if you have -a three-button mouse, the middle button is -unaffected. - - - - -Reverse scroll direction - -With this check box selected, the scroll wheel (if any) will work in the opposite direction (so that if rolling the top of the scroll wheel towards you previously causes a scroll down, then it will now cause a scroll up). This may be useful to handle a unusual setup of the X server. - - - - - -Double-click to open files and folders (select icons on first click) - - If this option is not checked, icons/files will be opened with a -single click of the left mouse-button. This -default behavior is consistent with what you would expect when you click -links in most web browsers. If checked however, icons/files will be -opened with a double click, while a single click will only select the -icon or file. This is the behavior you may know from other desktops or -operating systems. - -This option can be changed in the configuration dialogs of &dolphin; and &konqueror; -on the Navigation tab as well. - - - - - -Single-click to open files and folders - -This is the default setting for &kde;. Clicking once on an icon -will open it. To select you can drag around the icon(s) or &Ctrl;Right click, -or simply click and hold to drag it. You can also enable automatic selection of icons using the Automatically select icons check box, discussed below. - - - - -Change pointer shape over icons - -When this option is checked, the shape of the mouse pointer -changes whenever it is over an icon. - -This option should be checked in most situations. It gives -more visual feedback and says, in essence, if you click here, something -will happen. - - - - - -Automatically select icons - - -As noted above, if you have Single-click to open files and folders selected, you can select icons by dragging around them, or by using &Ctrl;Right click. If you routinely need to select icons, you may want to enable this check box, which will allow icons to be selected automatically by pausing over the icon. The Delay: slider determines how long is required before the automatic selection takes effect. - - - - - - - - -Advanced - - - - -Pointer acceleration - -This option allows you to change the relationship -between the distance that the mouse pointer moves on the -screen and the relative movement of the physical device -itself (which may be a mouse, track-ball, or some other -pointing device.) - -A high value for the acceleration multiplier will lead to large -movements of the mouse pointer on the screen, even when -you only make a small movement with the physical device. - -A multiplier between 1x and -3x will works well for many systems. With a multiplier -over 3x the mouse pointer may become difficult to -control. - - - - -Pointer threshold - -The threshold is the smallest distance that the mouse pointer must -move on the screen before acceleration has any effect. If the movement -is within the threshold, the mouse pointer moves as if the acceleration -were set to 1x. - -Thus, when you make small movements with the physical device (⪚ -mouse), you still have fine control of the mouse pointer on the screen, -whereas larger movements of the physical device will move the mouse -pointer rapidly to different areas on the screen. - -You can set the threshold by entering a value into the edit box or -by clicking the up/down arrows to the right of the box. - -In general, the higher you set the Pointer -acceleration value, the higher you will want to set the -Pointer threshold value. For example, a -Pointer threshold of 4 pixels may -be appropriate for a Pointer Acceleration of -2x, but 10 pixels might be -better for 3x. - - - - -Double click interval - -This is the maximum amount of time between clicks for &kde; to -register a double click. If you click twice, and the time between those -two clicks is less than this number, &kde; recognizes that as a double -click. If the time between these two clicks is greater than this -number, &kde; recognizes those as two separate -single clicks. - - - - -Drag start time and Drag start -distance - - -If you - -click with the mouse -drag within the time specified in Drag start -time, and -move a distance equal to or greater than the number (of -pixels) specified in Drag start distance - - - -&kde; will drag the selected item. - - - - -Mouse wheel scrolls by - -If you have a wheel mouse, use the spin box to determine how many -lines of text one step of the mouse wheel will -scroll. - - - - - - - - -Mouse Navigation - - -This tab allows you to configure the keyboard number pad keys as a mouse-type device. This may be useful when you are working on a device without another pointing device, or where you have no other use for the number pad. - - - - - -Move pointer with keyboard (using the num pad) - - -To enable keyboard mouse mode, you need to select the check box labeled Move pointer with keyboard (using the num pad). When you do this, the other settings will become enabled, and you can customize the keyboard pointer behavior further, if required. - - -The various keys on the number pad move in the direction you would expect. Note that you can move diagonally as well as up, down, left and right. The 5 key emulates a click to a pointer button, typically &LMB;. You change which button is emulated by using the / key (which makes it &LMB;), * key (which makes it &MMB;) and - (which makes it &RMB;). Using the + emulates a double click to the selected pointer button. You can use the 0 key to emulate holding down the selected pointer button (for easy dragging), and then use the . to emulate releasing the selected pointer button. - - - - - -Acceleration delay - - -This is the time (in milliseconds) between the initial key press and the first repeated motion event for mouse key acceleration. - - - - - -Repeat interval - - -This is the time in milliseconds between repeated motion events for mouse key acceleration. - - - - - -Acceleration time - - -This is the time in milliseconds before the pointer reaches a maximum speed for mouse key acceleration. - - - - - -Maximum speed - - -This is the maximum speed in pixels per second the pointer can reach for mouse key acceleration. - - - - - -Acceleration profile - - -This is the slope of the acceleration curve for mouse key acceleration. - - - - - - - - - -Logitech Support - - -Some Logitech USB mice support special features, such as switching to a higher resolution, or -providing cordless status. If &kde; was built with libusb support, then you will get an additional -tab for each supported mouse that is plugged in. - - - -The supported devices are: - - -Wheel Mouse Optical -MouseMan Traveler -MouseMan Dual Optical -MX310 Optical Mouse -MX510 Optical Mouse -MX300 Optical Mouse -MX500 Optical Mouse -iFeel Mouse -Mouse Receiver -Dual Receiver -Cordless Freedom Optical -Cordless Elite Duo -MX700 Optical Mouse -Cordless Optical Trackman -Cordless MX Duo Receiver -MX100 Laser Mouse -Receiver for Cordless Presenter - - - -Not all devices support all capabilities (typically cordless devices do not -provide resolution switching, and of course only cordless devices support -cordless status reporting), so some parts of the tab will not be enabled for -some mouse types. - - - -If the mouse supports resolution switching, the Sensor Resolution -radio button group will be enabled, and you can switch from 400 counts per -inch to 800 counts per inch and back. If you use -800 counts per inch, the same physical movement of the mouse -will cause a greater (roughly double) amount of motion of the cursor. This tends -to be popular amongst gamers. - - - -If the mouse supports cordless reporting, the Battery Level -and RF Channel widgets will be enabled. You can only change -the RF Channel if your mouse has two channel support. - - - - - - -
diff --git a/doc/kcontrol/nepomuk/CMakeLists.txt b/doc/kcontrol/nepomuk/CMakeLists.txt deleted file mode 100644 index cf87e2d6..00000000 --- a/doc/kcontrol/nepomuk/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/nepomuk) diff --git a/doc/kcontrol/nepomuk/index.docbook b/doc/kcontrol/nepomuk/index.docbook deleted file mode 100644 index 96ef4ab7..00000000 --- a/doc/kcontrol/nepomuk/index.docbook +++ /dev/null @@ -1,152 +0,0 @@ - - - -]> - -
- -Nepomuk Desktop Search Configuration - - -SebastianTruegtrueg@kde.org -&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; - - - -2013-11-01 -&kde; 4.12 - - -KDE -KControl -nepomuk -desktop search - - - - -Introduction - -This module allows to configure certain parts of the desktop search and the Nepomuk semantic desktop. More information -about the Nepomuk semantic desktop can be found at the Nepomuk homepage. - - -Basic Settings - -The basic settings tab allows to enable or disable the semantic desktop and desktop search systems. - -There are three checkboxes: - -Enable Nepomuk Semantic Desktop Enabling the Nepomuk semantic desktop means that -the Nepomuk services are running. These services provide metadata/annotation storage (files can be tagged or rated in &dolphin; -for example) but also desktop search which can be used through the &kde; runner or again &dolphin;. -Enable Nepomuk File Indexer Enabling the nepomuk file indexer means that -the file indexer service is started in addition to the standard services already running. The file indexer service will run through -all files in the configured folders (see below) and extract metadata from them (such as title or artist on music files or even -simple things like the creation date). This metadata is then exposed through the desktop search just like the manual annotations -mentioned earlier. -Enable PIM Data Indexer This option has to be checked to allow full text search in -&kmail;. - - -On the right of Enable Nepomuk Semantic Desktop you can click on Details... and -a dialog will inform you on the status of the KDE metadata store: how many files are indexed and the size of the store. - -Under the Enable Nepomuk File Indexer checkbox the current status of the file indexing service is -shown. The service has four normal operation states: - -File indexer is idle - The file indexer is currently not working and waiting for an event to -trigger an update (an event can be a newly created file or a changed file or a timeout for the recurring full check) -Indexing files in folder foobar - The file indexer is currently running though -all files in folder foobar and analyzes new or changed files. -Scanning for recent changes in files for desktop search - The file indexer is currently performing -its recurring check for new files in all index folders. This check is intended to find files that were not caught through normal file -system monitoring. -File indexer is suspended - The file indexer has been suspended, &ie; it is in a paused state. -This can either be triggered by the user or due to low disk space or a laptop being in a power-saving state. In the two latter -cases the indexer will resume once the reason for the suspension has been resolved. - - -Apart from the normal operation states the indexer service can have an erroneous state. There are two possibilities: - -File indexing service failed to initialize, most likely due to an installation problem - This should rarely -occur that means that a mandatory plugin could not be loaded. This can be due to an installation problem (missing dependency) or due -to a faulty setup of the &kde; plugin system. -Any other error means a communication problem with the service. These errors are produced by the &DBus; subsystem and need -to be evaluated case by case. - - - - - -Indexing - -This tab allows to select the files and folders that are to be analyzed by the file indexer explained - above. By default Documents, Audio, Images and Videos are selected here. - - -Click the Customize Folders button to select and de-select folders that should be searched for files -to be analyzed. By default the home folder and all subfolders are analyzed. By simply unchecking a folder it can be excluded. -It is also possible to include a subfolder of an excluded one by checking it again. This allows a rather fine selection of the -folders to be analyzed. - -Clicking the Advanced button allows to define exclude filters using the mime type or the name of a file. -The mime types and names of all files found in the configured folders will be matched against these filters. Only if none of them -matches the file will be analyzed. This is very helpful to exclude log and backup files and the like. - -Removable media handling: Nepomuk can index files on removable devices like USB keys or external -hard-disks for fast desktop searches. By default no files are indexed. Here this behaviour can be changed to one of two options: - -Index files on all removable devices - Files on removable media are indexed as soon as the -medium is mounted. Caution: this does not include media which have been rejected via the second option -Ask individually when newly mounted - The user will be asked to decide if files on the -newly mounted medium should be indexed or not. Once decided Nepomuk will not ask again. - - - - -Backup - -On this tab you can decide to make a backup of all data that could not be restored otherwise. This includes -manually created tags, ratings but also statistical data. No backup is done as default so you need to decide what you want to do. -You have two possibilities: automatic backups and manual ones. - - -Automatic Backups -First choose the Backup Frequency: this is set to Disable Automatic Backups but you -can choose Daily Backup or Weekly Backup. -Then set the Backup Time: to anything convenient for you using the spinbox: you can set the hour and minutes -and the day of the week for weekly backups. -Finally you can set a limit for the number of backup files using Max Number of Backups:. -This will ensure you do not waste disk space with the backup files and only the N last files will be kept, N being -the number you set there, 10 as default. -Your automatic backups are saved locally in the following directory: -$KDEHOME/share/apps/nepomuk/backupsync/backups/. - - - -Tools - -Manual Backup... -You can also perform manual backups. Manual backups will be saved in your chosen location, as a file. -Click on Manual Backup... and a wizard will guide you. You first need to point to the location -of the backup file. Enter a full valid path in the field or use the file dialog to point to a file. -You can create a new file in the folder of your choice and then point to this new file. -Then click on the Next button and the dialog should report that the backup has been done. - -Restore Backup... -If you want to later restore your backup, use this button and follow the wizard. The backup will be merged -into the local Nepomuk database. - - - - - - - - -
diff --git a/doc/kcontrol/netpref/CMakeLists.txt b/doc/kcontrol/netpref/CMakeLists.txt deleted file mode 100644 index 1d634b51..00000000 --- a/doc/kcontrol/netpref/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/netpref) diff --git a/doc/kcontrol/netpref/index.docbook b/doc/kcontrol/netpref/index.docbook deleted file mode 100644 index d5436bb3..00000000 --- a/doc/kcontrol/netpref/index.docbook +++ /dev/null @@ -1,109 +0,0 @@ - - - -]> - -
- -Connection Preferences - -&Lauri.Watts; &Lauri.Watts.mail; - - - - -2013-12-05 -&kde; 4.12 - - -KDE -kdebase -kcontrol -network -timeouts - - - - - - -Connection Preferences - -Here you can set timeout values. You might want to tweak them -if your connection is very slow, but the default settings are -appropriate for most users. - -Here Timeout Values are the length of time -an application should wait for an answer from a network operation. - -You can configure the following timeouts: - - - -Socket read: - - Some applications use sockets to -communicate. You can think of a socket as a water tap; while it is -open, water (or in our case, data) comes out, without any interaction. -If something stops this flow of data, the application will wait for -more to come. This could be a very long time, but you can configure a -maximum time for an application to wait with this option. -This setting will only apply to &kde; applications, of course. - - - - -Proxy connect: - - -Sets how long to wait for a connection to a proxy server, if one is configured. - - - - - -Server connect: - - -Sets how long to wait for a connection to a remote server. - - - - - -Server response: - - -Sets how long to wait for a reply from a remote server. - - - - - - -You can configure FTP Options here. At -present there is just two options: - - -Enable passive mode (PASV) -Passive &FTP; is often required when you are behind a firewall. -Many firewalls only permit connections that were initiated from -the inside. Passive &FTP; is controlled by the client, -which makes it usable through firewalls. - - - -Mark partially uploaded files -When a mark is placed in this box, partially uploaded files will -have a .part extension added to the end -of the file. This extension is removed once the file download is complete. - - - - - - - -
diff --git a/doc/kcontrol/paths/CMakeLists.txt b/doc/kcontrol/paths/CMakeLists.txt deleted file mode 100644 index a521e4f5..00000000 --- a/doc/kcontrol/paths/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/paths) diff --git a/doc/kcontrol/paths/index.docbook b/doc/kcontrol/paths/index.docbook deleted file mode 100644 index b4da78ce..00000000 --- a/doc/kcontrol/paths/index.docbook +++ /dev/null @@ -1,91 +0,0 @@ - - - -]> - -
-Paths - - - - -Michael -Anderson - -
nosrednaekim@gmail.com
-
-
-Anne-Marie -Mahfouf - -
annma@kde.org
-
- -
- -2009-11-17 -&kde; 4.4 - - -KDE -KControl -desktop -paths - -
- -This is a module to configure essential paths for the &kde; desktop. - - - -Configure some &kde; paths - - - - - - Configure some &kde; paths - - - - - - - -Desktop path: -The Desktop folder contains all the files which you see on your desktop. The default path is usually ~/Desktop but you can change here the location of this folder. - - - -Autostart path: - -The Autostart folder contains applications or links to applications or scripts you want to start whenever &kde; starts. You can change the location of this folder if you want to. - - - -Documents path: -This folder will be used by default to load or save documents from or to. - - -Download path: -This folder will be used by default to save your downloaded items. - - -Movies path: -This folder will be used by default to load or save movies from or to. - - -Pictures path: -This folder will be used by default to load or save pictures from or to. - - -Music path: -This folder will be used by default to load or save music from or to. - - -If you change a path and click Apply a dialog appears where you can choose to move the content to the -new folder or use the new folder without moving the files. - -
diff --git a/doc/kcontrol/paths/paths.png b/doc/kcontrol/paths/paths.png deleted file mode 100644 index eff8756d..00000000 Binary files a/doc/kcontrol/paths/paths.png and /dev/null differ diff --git a/doc/kcontrol/performance/CMakeLists.txt b/doc/kcontrol/performance/CMakeLists.txt deleted file mode 100644 index 027649ef..00000000 --- a/doc/kcontrol/performance/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/performance) diff --git a/doc/kcontrol/performance/index.docbook b/doc/kcontrol/performance/index.docbook deleted file mode 100644 index 3534dc00..00000000 --- a/doc/kcontrol/performance/index.docbook +++ /dev/null @@ -1,91 +0,0 @@ - - - -]> - -
- -Performance - -&Mike.McBride; &Mike.McBride.mail; - - - -2009-11-24 -&kde; 4.4 - - -KDE -Systemsettings -performance -preload - - - - -Performance Settings - -&kde;, is used on a wide variety of computers by a wide variety of users. Under the category of -performance, this dialog allows each user to adjust options which may make the computer that &konqueror; is -installed on feel more responsive. - -&konqueror; instances -The first section of this dialog is labeled Minimize Memory Usage and has three options which determine maximum number of instances of &konqueror; that can be open on one machine at any one time. - -Do not confuse &konqueror; instances, with &konqueror; windows or tabs. The number of &konqueror; instances is determined by &kde; not by the user. You can think of instances as the hidden data of your &konqueror; windows and tabs. One &konqueror; instance can contain the data for multiple windows or tabs. Your choice on the following radio buttons does not limit the number of windows you can open at one time, but rather, how many instances of &konqueror; you can have open. -The reason the choices you make in this dialog box are important is evident when something goes wrong and &konqueror; is forced to close an instance. All &konqueror; windows associated with a &konqueror; instance must be closed immediatly (without time to save data or bookmark locations). Therefore, the more instances you can have open at one time, the less likely a problem in one instance will affect all of your work. Each instance requires more memory which can be a problem on systems with less system memory. - -Your options are: - - - -Never -There are no restraints. Any number of &konqueror; instances can be open at any one time. The advantage of this option is if any &konqueror; instance crashes the remaining will be unaffected. The disadvantage is that each &konqueror; instance uses more memory. - - - -For file browsing only (recommended) -If this option is selected, you can have as many as you want &konqueror; instances open that are browsing the web, but only one instance of &konqueror; for file management. - - - -Always (use with care) -If this option is selected, you can only have one instance of &konqueror; running at any one time. This saves system memory, but if your &konqueror; window crashes, all your browsing windows close immediatly without warning. This should only be used for seriously memory limited systems. - - - - -Preloading -The subsection labeled Preloading also makes a tradeoff between memory and performance. - -Preloading refers to loading an instance of &konqueror; into memory before a user asks to start &konqueror;. The positive effect of this is that when a user asks &kde; to load &konqueror; the window appears instantly - because most of the application has been preloaded. The negative effect is that this instance of &konqueror; uses memory that -could be used by other programs. By default, when a user closes &konqueror;, &kde; does not close the instance. -This means that the next time a user wants &konqueror; loaded, it is nearly instantaneous again. -The spinbox labeled Maximum number of instances kept preloaded: can be used to adjust the maximum number of preloaded instances. This option does not affect instances when they are loaded. It also does not limit the number of instances that can be used by active windows. It only affects the number of preloaded instances. -The check box labeled Preload an instance after &kde; startup does just what it says. It tells -&kde; to preload one instance of &konqueror; at the startup of &kde;. -This does extend the startup time for &kde;. -The final check box labeled Always try to have at least one preloaded instance signals to &kde; that you always want &kde; to have one preloaded, but not used, instance of &konqueror; available. This option will actually decrease performance on some machines (especially those with limited physical memory). - - - - -
diff --git a/doc/kcontrol/phonon/CMakeLists.txt b/doc/kcontrol/phonon/CMakeLists.txt deleted file mode 100644 index 035c37d9..00000000 --- a/doc/kcontrol/phonon/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/phonon) diff --git a/doc/kcontrol/phonon/index.docbook b/doc/kcontrol/phonon/index.docbook deleted file mode 100644 index eed863c8..00000000 --- a/doc/kcontrol/phonon/index.docbook +++ /dev/null @@ -1,93 +0,0 @@ - - - -]> -
-Audio and Video Settings - - -MatthiasKretz - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -hardware -multimedia -sound -video -backend - - - - -This &systemsettings; module allows you to configure the sound and video device -preference and the backends used by Phonon. - - - -Device Preference tab - -On the left you are presented a tree list with various categories of playback and recording. -For each category you may choose what device you wish to use. -The Audio Playback and Audio Recording -items define the default ordering of devices which can be overridden by -each sub items. -Clicking the Apply Device List To button shows a dialog -which enables you to copy the selected setting from one category to many others. -Highlight a category and the available devices for this category are displayed in the -list on the right. The order in this list determines the preference of the output and capture -devices. If for some reason the first device cannot be used Phonon will try to use the second, &etc; -Use the Prefer and Defer buttons to change the order -and the Test button to play a test sound on the selected device. - - - -Audio Hardware Setup tab - -The various drop down boxes in this tab allow full control over all cards that are attached -to the system. - - -Hardware -Select the Sound Card and an available -Profile to be used. - - -Device Configuration -Select the Sound Device and a Connector. - - -Speaker Placement and Testing or Input Levels - -For a playback device: The buttons on this pane allow you to test each speaker separately. - -For a recording device: A slider shows the Input Levels -of the selected Connector. - - - - - - - - - -Backend tab - -On the left side of this module a list of Phonon backends found on your system is shown. -The order here determines the order Phonon will use the backends. -Use the Prefer and Defer buttons -to change this order. - - - - - -
diff --git a/doc/kcontrol/powerdevil/CMakeLists.txt b/doc/kcontrol/powerdevil/CMakeLists.txt deleted file mode 100644 index 9b94e716..00000000 --- a/doc/kcontrol/powerdevil/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/powerdevil) diff --git a/doc/kcontrol/powerdevil/activity.png b/doc/kcontrol/powerdevil/activity.png deleted file mode 100644 index 2522903f..00000000 Binary files a/doc/kcontrol/powerdevil/activity.png and /dev/null differ diff --git a/doc/kcontrol/powerdevil/advanced.png b/doc/kcontrol/powerdevil/advanced.png deleted file mode 100644 index 5b928274..00000000 Binary files a/doc/kcontrol/powerdevil/advanced.png and /dev/null differ diff --git a/doc/kcontrol/powerdevil/energy.png b/doc/kcontrol/powerdevil/energy.png deleted file mode 100644 index 1998a57f..00000000 Binary files a/doc/kcontrol/powerdevil/energy.png and /dev/null differ diff --git a/doc/kcontrol/powerdevil/index.docbook b/doc/kcontrol/powerdevil/index.docbook deleted file mode 100644 index 6ab5f009..00000000 --- a/doc/kcontrol/powerdevil/index.docbook +++ /dev/null @@ -1,317 +0,0 @@ - - - -]> -
- -Power Management - -&Dario.Freddi;&Dario.Freddi.mail; - - - -2013-08-18 -&kde; 4.11 - - -KDE -System Settings -powerdevil -power management -laptop power - - - - -PowerDevil, a Power Management Daemon - -This module is a configuration tool for managing Power Management in &kde;. It is a configurator for the PowerDevil daemon, that you can start or stop from the Service Manager module. - -Through this module, you can define your computer's behavior in various situations, allowing you to save as much energy as possible. - - -Powerdevil works with Solid only and it's integrated in your desktop. You won't even notice it is running, apart from notifications. Moreover, Powerdevil checks your system capabilities first, so you'll see only options available for your system in this module. - - -Note that PowerDevil does not poll your system. This means that it will not waste energy while trying to save it, as some other power managers do. - -Energy Saving Settings - -This page shows the actual energy saving settings. If a battery is detected you have three tabs with different settings for On AC Power, On Battery and On Low Battery profiles. - - - -Energy Saving Settings - - - - - - Energy Saving Settings - - - Energy Saving Settings - - - - - -There are a lot of options you can configure for each profile: - - - -Screen Brightness - -Sets the screen's brightness using a slider. - - - -Dim Screen - -If checked, the display will be progressively dimmed, until reaching -brightness 0, in the amount of time you specify in the spin box. - - - - -Screen Energy Saving - -Here you can define power saving for your monitor. -The check box defines if DPMS support should be enabled or disabled. -If you choose to activate it, set the timeouts in the spin boxes below. - - - - -Suspend Session - -Suspends the session after the selected time to the status -Sleep, Hibernate, -Shutdown or Lock screen. - - - -Button events handling - -Select actions to perform whenever the laptop lid is closed or a button is pressed. - - -Run Script - -Activate this option to run a custom script when a profile is loaded, unloaded -or after a given amount of time. - - - - - - - - -Activity Settings -Here you can configure the Power Management settings per activity. The settings for each activity can be configured on its own tab. - - -Activity Settings - - - - - - Activity Settings - - - Activity Settings - - - - - - -Don't use special settings - - -Use the settings defined on Energy Saving page. - - - - -Act like - - -Here you can choose a predefined profile from the drop-down box: PC running on AC power, PC running on battery power or PC running on low battery. - - - - -Define a special behavior - - -If this option is chosen, a special behavior for activity can be chosen. If this is a presentation activity, you can check the Never shutdown the screen and Never suspend or shutdown the computer boxes. It is also possible to define the time interval for the computer to switch to a suspension mode for the power saving activities. - - - - -Use separate settings (advanced users only) - - -This option allows users to choose the detail power saving settings for a separate activity. The settings are similar to the settings from the Energy Saving page. - - - - - - - -Advanced Settings - - -Advanced Settings - - - - - - Advanced Settings - - - Advanced Settings - - - - - -Battery levels - -These items are only displayed if a battery is detected. - - -Battery is at low level at - - -Here you can set the percentage after which the battery will be considered low. - - - -Battery is at critical level at - - -Here you can set the percentage after which the battery will be considered at critical level. - - - -When battery is at critical level - - -Defines the action that will be done when battery reaches the critical level. - - - - - - -Events - - -Lock screen on resume - - -When this box is checked, every time the PC gets suspended, the screen will be locked when resuming. You will be asked for a password when resuming from sleep state. - - -Never prevent an action on lid close - - -When this option is selected, applications will not be allowed to inhibit sleep when the lid is closed. - - - -Configure Notifications - - -If you want a deeper control over your notifications, you can refine them by clicking this button. - - - - - - - - - - - - -PowerDevil Runner - -PowerDevil can be manually controlled through &krunner; (&Alt;F2). This makes changing profile, brightness, governor and more much easier and faster. The runner has various keywords you can enter to access its functions - - -Runner Keywords - -Here comes a list of keywords you can enter in &krunner; to perform PowerDevil related actions. - - -Power Profile - - -You can manually choose a profile using this keyword. All available profiles will be shown in form of &krunner; matches. - - - - -Screen Brightness - - -You can control screen brightness through this keyword. In this form, some &krunner; matches that let you do some common actions will be shown. If you enter a value after the keyword (⪚: Screen Brightness 50), the brightness will be set to that value. - - - -Suspend - - -You can suspend your pc through this keyword. Available suspend methods will be shown as &krunner; matches. - - - - - - -
- - - diff --git a/doc/kcontrol/proxy/CMakeLists.txt b/doc/kcontrol/proxy/CMakeLists.txt deleted file mode 100644 index 7777c4ec..00000000 --- a/doc/kcontrol/proxy/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/proxy) diff --git a/doc/kcontrol/proxy/index.docbook b/doc/kcontrol/proxy/index.docbook deleted file mode 100644 index ec5d7777..00000000 --- a/doc/kcontrol/proxy/index.docbook +++ /dev/null @@ -1,209 +0,0 @@ - - - -]> - -
-Proxy - - -&Krishna.Tateneni; &Krishna.Tateneni.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -proxy -proxies - - - - -Proxies - - - -Introduction - -Proxies are programs running on a computer that acts a server on -the network you are connected to (whether by modem or other -means). These programs receive &HTTP; and &FTP; requests, retrieve the -relevant files from the internet, and pass them on to the client -computer that made the requests. - -When you have configured a proxy, &HTTP; and/or &FTP; requests -are re-routed through the computer that is acting as a proxy server. -However, you can also select specific hosts which should be contacted -directly, rather than through the proxy server. If you are on a local -network, for example, access to local hosts probably doesn't need to -go through a proxy server. - -You should only need to configure a proxy server if your network -administrator requires it (if you are a dial-up user, that would be -your internet service provider or ISP). Otherwise, -especially if you are feeling a bit confused about this proxy -business, but everything seems to be fine with your internet -connection, you don't need to change anything. - -Please note that using proxy servers is optional, but has the -benefit or advantage of giving you faster access to data on the -internet. - -If you are uncertain whether or not you need to use a proxy -server to connect to the internet, please consult with your internet -service provider's setup guide or your system administrator. - - - - - -Use - - - -No Proxy - - -Select this option if you do not want to use a proxy server -and connect to the Internet directly. - - - - -If you have decided to use a proxy, you have several methods to -configure the settings for it. - - - -Detect proxy configuration automatically - - -Select this option if you want the proxy setup configuration -script file to be automatically detected and downloaded. -This option only differs from the next choice in that it -does not require you to supply the location of -the configuration script file. Instead, it will be automatically -downloaded using Web Proxy Auto-Discovery -(WPAD) protocol. - -If you have a problem using this setup, please consult the -FAQ section at http://www.konqueror.org for -more information. - - - - -Use proxy auto configuration URL - -Select this option if your proxy support is provided through a -script file located at a specific address. You can then enter the -address in the location text box, or use the folder -icon to browse to it. - - - - -Use system proxy configuration - -Some systems are setup with $HTTP_PROXY to allow -graphical as well as non-graphical applications to share the same -proxy configuration information. -If you know this applies to you, select this option and click on -the Auto Detect button to provide the environment -variable names used to set the address of the proxy server(s). - -In the Exceptions field enter the environment variable, -⪚ $NO_PROXY, used to store the -addresses of sites for which the proxy server should not be used. -Use Show the value of the environment variables to -show the value of an environment variable instead of its name. -However it is not possible to edit the values of environment variables in this module. - - - - - -Use manually specified proxy configuration - - -The complete addressing information for the proxy includes both -the Internet address and a port number. You should enter these into -the relevant text boxes. Check Use this proxy server for all -protocols to copy the addresses and port of the HTTP proxy server -into all other proxy fields, in order to help save some typing. - - - -Exceptions - -Enter a comma separated list of hostnames or ip addresses that should -be excluded from using the above proxy settings. If you want to exclude all -hosts for a given domain, then simply enter the domain name preceded by a dot. -For example, to exclude all hostnames for kde.org, enter .kde.org. -Wildcard characters such as * or ? -are not supported and will have no effect. -Additionally, you can also enter IP addresses, e.g. 127.0.0.1 and -IP addresses with a subnet, e.g. 192.168.0.1/24. - - - - -You can also choose Use proxy settings only for addresses -in the Exceptions list. - -Check this box to reverse the use of the exception list, &ie; -the proxy servers will only be used when the requested &URL; matches -one of the addresses listed here. - -This feature is useful if all you need is a proxy to access a -few specific sites, for example, an internal intranet. If you have -more complex requirements you might want to use a configuration -script. - - - - - - - - -
diff --git a/doc/kcontrol/screensaver/CMakeLists.txt b/doc/kcontrol/screensaver/CMakeLists.txt deleted file mode 100644 index 57ded656..00000000 --- a/doc/kcontrol/screensaver/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/screensaver) diff --git a/doc/kcontrol/screensaver/index.docbook b/doc/kcontrol/screensaver/index.docbook deleted file mode 100644 index 02395bf1..00000000 --- a/doc/kcontrol/screensaver/index.docbook +++ /dev/null @@ -1,110 +0,0 @@ - - - -]> - -
- -Screen Locker - -&Mike.McBride; &Mike.McBride.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -systemsettings -screensaver -screen saver - - - - - -Screen Locker - -Using this module, you can choose your screen saver, determine -how much time must pass before the screen saver is activated, and add -or remove password protection to your screen saver. - - -Setting the time, priority and passwords for screen -savers. - -At the top is a check box to have the screen saver Start automatically after, -and a spin box which determines the period of inactivity before the screen saver should be started. -You can enter any positive number of minutes in this box. - -Below that is a check box labeled Require password -after. If it is checked, when you click a key -or click a mouse button to end the screen saver after the time in the spinbox and return to your -work, you must enter a password. The password used is the same -password you used to login to your machine. If there is no mark in -the check box, no password is required to return to your -desktop. - -Locking the desktop manually causes the password protection to engage immediately. - - - - -Choosing the screen saver, and configuring its options - -Use the Simple locker option for a basic unlock dialog that prompts for a password. - -If you would like to have some interactive widgets like notes or a player -on the locked screen saver, select Desktop Widgets -and click the Configure... button to select your -favorite widgets. - - -To enable the selection of all available screen savers select the Screen -saver option. You can select a screen saver by simply clicking on its name. -Once you have selected a screen saver, you will see a small preview on the -monitor on the right. - -The preview monitor will often show the screen saver -larger than it is when the screen saver is activated. This is done on -purpose, since many of the details of the screen savers would be -unintelligible if actually scaled down to such a small -size. - -Each screen saver has a different set of setup options. By -clicking on Setup..., a dialog box will appear with -all available options. As you adjust the options, the preview box in -the dialog box will show you what effect you will achieve with the -current settings. - -When you are done setting up your screen saver, click -OK. Clicking Cancel -will erase any changes you made in this dialog box, and return you to the -screen saver module. - -For most screen savers a description, Copyright and Author information -is shown directly in the dialog, for others you need to click the -About button to read this information. - -When you think you have all the options set the way you want, -simply click on Test to immediately start the -screen saver exactly as it will appear. - - - - -Using a non-&kde; screen saver - -&kde; does not prevent another screen saver from working. To use a -different screen saver, such as xscreensaver, simply -disable the &kde; Screen Saver, and set up your other screen saver program -normally. - - - - - -
diff --git a/doc/kcontrol/smb/CMakeLists.txt b/doc/kcontrol/smb/CMakeLists.txt deleted file mode 100644 index 295359ac..00000000 --- a/doc/kcontrol/smb/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/smb) diff --git a/doc/kcontrol/smb/index.docbook b/doc/kcontrol/smb/index.docbook deleted file mode 100644 index 70d331d8..00000000 --- a/doc/kcontrol/smb/index.docbook +++ /dev/null @@ -1,104 +0,0 @@ - - - -]> - -
- -Windows Shares - -&Mike.McBride; &Mike.McBride.mail; -&Jost.Schenck; &Jost.Schenck.mail; - - - -2013-12-05 -&kde; 4.12 - - -KDE -Systemsettings -Windows shares - - - -Windows Shares - - -Introduction - -In many small local area networks, the SMB -protocol is used to offer network services. Names like -&Windows; Network or &Windows; for Workgroups -Network or LanManager are often used as -well. Using SMB you can access so-called -shares (&ie; folders made available by the server) -as well as printers. - -&kde; comes with built-in support for the SMB -protocol. As &kde; is network-transparent that means you can access -SMB shares from everywhere you can access your -local files, for example in the &konqueror; file manager and in the -file dialog. To make use of this you should provide &kde; with some -information on your SMB network. But don't worry, -this is normally pretty simple as, for example, all the Windows -clients in your network need and have the same information. - - - - - -For the SMB protocol to work, it is -required to have Samba correctly -installed. - - - - - - -Use - -Although there are a lot of insecure SMB -networks out there which allow access to anyone, in principle you have -to authenticate yourself to access the services of an -SMB server. By default, &kde; will use the data -entered in the Default user name and -Default password fields to authenticate itself on -SMB hosts. If you leave the field Default -user name empty, &kde; will try to access -SMB hosts without a username. If you leave the -default password empty, it will try without a password. If &kde; is -unsuccessful accessing the host using these settings, you will be -asked for a username and a password. - -While it makes things more comfortable if &kde; -stores your SMB password, this may be a security -problem. If you are using SMB in a security -conscious environment, you should not store your password here but -rather enter it anew every time you need to access an -SMB host. - - - - - - -
diff --git a/doc/kcontrol/solid-actions/CMakeLists.txt b/doc/kcontrol/solid-actions/CMakeLists.txt deleted file mode 100644 index 05eb12aa..00000000 --- a/doc/kcontrol/solid-actions/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/solid-actions) diff --git a/doc/kcontrol/solid-actions/add-action.png b/doc/kcontrol/solid-actions/add-action.png deleted file mode 100644 index 67b4ea98..00000000 Binary files a/doc/kcontrol/solid-actions/add-action.png and /dev/null differ diff --git a/doc/kcontrol/solid-actions/edit-action.png b/doc/kcontrol/solid-actions/edit-action.png deleted file mode 100644 index aa2731b2..00000000 Binary files a/doc/kcontrol/solid-actions/edit-action.png and /dev/null differ diff --git a/doc/kcontrol/solid-actions/index.docbook b/doc/kcontrol/solid-actions/index.docbook deleted file mode 100644 index 5cd818b0..00000000 --- a/doc/kcontrol/solid-actions/index.docbook +++ /dev/null @@ -1,222 +0,0 @@ - - - -]> -
- -Device Actions - -BenCooksley -&Anne-Marie.Mahfouf; - - - -2013-12-05 -&kde; 4.12 - - -KDE -System Settings -Solid -actions -devices -hardware - - - - -Actions for new devices - -Introduction - -This module allows you to set up the actions you want to associate when -you plug new devices. - - -Screenshot of the Device Actions Manager - - - - - - Screenshot of the Device Actions Manager - - - - - -You will see listed all of the possible actions that are available when -devices are plugged in. -Please note that they will only be available under certain conditions. - - -Add - This will ask you to supply a name for your new action, then will open that -action for editing. - If you do not supply all the required details in that dialog, then your -action will be deleted. - - -Edit - This will allow you to change the Name, Icon, command to execute - and the conditions the action must match to be shown. - - -Discard / Cannot be deleted / Remove - This will do different actions, depending on if it was supplied with your -system or created by you. - You can only discard changes to system wide actions, if there are no changes -then these actions cannot be deleted. - User created actions are completely removed, including all changes. - - - - - - -Add Action - - -The Add button brings you a dialog to enter the -new action name. - - - -Screenshot of the Add Action dialog - - - - - - Screenshot of the Add Action dialog - - - - - -The action name should correctly describe the action. After entering a name and -clicking OK, the Edit Action dialog will show to allow -you to set up the action properties. - - - - -Edit Action - -This dialog allows you to change the settings of the action you -selected. - - -Screenshot of the Edit Action dialog - - - - - - Screenshot of the Edit Action dialog - - - - - -This includes the icon, the action name, the action command and the various -parameters. -You can change the icon by clicking on it. -The parameters are displayed in a -tree, the top item having to be true in order for the action to be shown. - - -Edit parameter - - -Parameter type - -This controls what can be contained inside it, or -what matching is performed to check if it is true. - - -Property Match - -Compares the specified property of the Device (using -Device type and Value name) and using the evaluator, compares it against the -text provided. - - - -Content Conjunction - -All sub-properties of this must be true for -it to be true itself. - - - -Content Disjunction - -Any sub-property of this may be true for it -to be true itself. - - - -Device interface match - -Checks to see if the Device can be -classed as the selected Device type. - - - - - - - - -Device type - -These are the possible device types supported by &kde; on -your system. -They are used in both Property and Device interface matches. - - - - -Value name - -This is a list of all possible property names for the -selected device type. -It also provides the selection of the value evaluator (which is either -Equals or Contains), and allows -entry of the text to be compared with. - - - -Reset Parameter - -Reverts any unsaved changes you have made to this parameter. - - - -Save Parameter changes - -Saves the changes you have made to the parameter. - - - - - - - -
- - diff --git a/doc/kcontrol/solid-actions/main.png b/doc/kcontrol/solid-actions/main.png deleted file mode 100644 index 19c91c6a..00000000 Binary files a/doc/kcontrol/solid-actions/main.png and /dev/null differ diff --git a/doc/kcontrol/solid-device-automounter/CMakeLists.txt b/doc/kcontrol/solid-device-automounter/CMakeLists.txt deleted file mode 100644 index 4b626ed6..00000000 --- a/doc/kcontrol/solid-device-automounter/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/solid-device-automounter) diff --git a/doc/kcontrol/solid-device-automounter/index.docbook b/doc/kcontrol/solid-device-automounter/index.docbook deleted file mode 100644 index 4197374b..00000000 --- a/doc/kcontrol/solid-device-automounter/index.docbook +++ /dev/null @@ -1,102 +0,0 @@ - - - -]> -
-Removable Devices - - -TreverFischer - - - -2012-12-05 -&kde; 4.12 - - -KDE -Systemsettings -automount -device - - - - -This dialog allows you to configure automatic handling of removable storage media. - - -If you enable the automatic mounting features in this module, you will not need to use -the device notifier applet or the navigation panel in the file manager to get access to a -recently plugged in device. - - -At the top of the dialog you find the global settings, which can be overridden -for each single device in the Device Overrides list. -For a single-user desktop it is recommended to have all the -check boxes above the overrides list enabled. - - -Enable automatic mounting of removable media - -When this is unchecked, no device automounting of any kind will happen, -regardless of anything selected in the Device Overrides section. - - - -Only automatically mount removable media that has been -manually mounted before - -When this is checked, &kde; will only automatically mount devices it -remembers. A device is remembered if it has ever been mounted before; ⪚ -plugging in a USB media player to charge is not sufficient to remember it. -If the files are not accessed, &kde; -will not automatically mount the player next time it is seen. Once they have -been accessed, however, &kde; will remember to automatically make the contents -accessible to your system. - - - -Mount all removable media at login - -If any removable storage devices are connected to your system when you login -to your desktop, &kde; will automatically make the contents available to your -system for other programs to read. - - - -Automatically mount removable media when attached - -When this is checked, &kde; will automatically make the contents of any -storage device available to the system when it is plugged in or attached. - - - -Device Overrides - -This list contains the storage devices known to &kde;. If Automount on Login -is checked, the device will be automatically mounted even though Mount -all removable media at login is unchecked. The same applies for -Automount on Attach. - -If Enable automatic mounting of removable media is unchecked, the -overrides do not apply and no devices will be automatically mounted. - - - -Forget Device - -Clicking this button causes &kde; to forget that the selected devices ever -existed. This is only useful if Only automatically mount removable media -that has been manually mounted before is checked. Once a device is -forgotten and &kde; is set to only automatically mount familiar devices, the -device will not be automatically mounted. - - - - - - - -
diff --git a/doc/kcontrol/spellchecking/CMakeLists.txt b/doc/kcontrol/spellchecking/CMakeLists.txt deleted file mode 100644 index 1e15f569..00000000 --- a/doc/kcontrol/spellchecking/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/spellchecking) diff --git a/doc/kcontrol/spellchecking/index.docbook b/doc/kcontrol/spellchecking/index.docbook deleted file mode 100644 index 59526340..00000000 --- a/doc/kcontrol/spellchecking/index.docbook +++ /dev/null @@ -1,119 +0,0 @@ - - - - -]> - -
- -Spell Checker - - -&Lauri.Watts; &Lauri.Watts.mail; - - - - -2013-12-05 -&kde; 4.12 - - -KDE -Spelling -dictionary - - - - - - - -Spell Checker -The configuration options available here are used as default by all &kde; -applications that use &sonnet;, which is a frontend to various free spell checkers. - -To use &sonnet; you need to install spell checkers like ⪚ -GNU Aspell, -Enchant, -Hspell, -ISpell or -Hunspell -and additionally the corresponding dictionaries for your language. - -The configuration options selected here can be overridden by each application. - -In the drop down box Default language choose from the -available dictionaries, which one to use for &sonnet;. - - -Spell Options - - - - -Automatic spell checking enabled by default - -If a mark is placed in this checkbox, the spelling of words will be check in your document -as you type them. Misspelled will have a red line drawn under them. - - - - - -Skip all uppercase words - -If a mark is placed in this checkbox, the spelling of any word which consists of all capital -letters will not be checked. -This is useful for document using a large number of acronyms. If this box is left unchecked, -most of those acronyms will be incorrectly marked. By placing a mark in this checkbox, -the acronyms will not be marked as misspelled. - - - - -Skip run-together words -If this box is not checked, then words that appear in the -dictionary separately, but have been run together, are considered to be -spelling errors. Examples of such words are shutout, cannot, and blackout. - - -Checking this box will help prevent applications from flagging website and email addresses -for spelling errors. These addresses often contain words run together. - - - - - - -Ignoring words -The bottom half of the dialog box allows you to designate specific words (they may be specialized terminology, proper names, &etc;) which -should be ignored by the spelling program. - -Adding a word to the ignore list -To add a word, type the word in the text box and click the Add button. - - -Deleting a word from the ignore list -To remove a word, select the word in the listbox containing all the currently ignored words by clicking on it with -the &LMB;. Now click the Remove button. - - -Changing the order a word appears in the list -To move a word in the list, select the word in the listbox containing all the currently ignored words by clicking on it with -the &LMB;. Now click the Move Up button or the Move Down button to move the word -within the list. - -When you are happy with the changes, simply click -Apply. - -Clicking on the Defaults button restores all -values to their default values. - - - - -
diff --git a/doc/kcontrol/splashscreen/CMakeLists.txt b/doc/kcontrol/splashscreen/CMakeLists.txt deleted file mode 100644 index 72d242cc..00000000 --- a/doc/kcontrol/splashscreen/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/splashscreen) diff --git a/doc/kcontrol/splashscreen/get-new-theme.png b/doc/kcontrol/splashscreen/get-new-theme.png deleted file mode 100644 index dc631ed7..00000000 Binary files a/doc/kcontrol/splashscreen/get-new-theme.png and /dev/null differ diff --git a/doc/kcontrol/splashscreen/index.docbook b/doc/kcontrol/splashscreen/index.docbook deleted file mode 100644 index 09777dc2..00000000 --- a/doc/kcontrol/splashscreen/index.docbook +++ /dev/null @@ -1,117 +0,0 @@ - - - -]> -
-Splash Screen - - - -Anne-Marie -Mahfouf - -
&Anne-Marie.Mahfouf.mail;
-
-
- -
- -2010-09-25 -&kde; 4.5 - - -KDE -System Settings -splash screen -theme - -
- - -This module provides an interface to install and view splash screen themes. - - - -Here's a screenshot of the splash screen manager - - - - - - The splash screen manager module - - - - - -On the left you can see the list of already installed splash screens. The current splash screen name is highlighted. -On the right is displayed a preview of the current splash screen with some information about it below the preview. - - -Get New Themes... - - -You need to be connected to the Internet to use this action. A dialog will display a list of themes from the http://www.kde-look.org website. Clicking the Install button associated with a theme will install this theme locally. - - - -Installing a new theme - - - - - - Installing a new theme - - - - - -This new theme is immediately available after you close the System Settings Add-On Installer dialog and is highlighted. The preview displays the picture. You need to click the Apply biutton to make this theme your current splash-screen theme. - - - - -Install Theme File... - - -Instead of installing a theme directly as above you might have a tarball of a theme locally that you want to install. Clicking on this button will open a file dialog and you choose the tarball of the theme you want to install. The installer then unpacks the theme locally and makes it immediately available in the themes list. - - - - -Remove Theme - - -Removing a theme means removing the theme files from your disk. A message box warns you before doing anything and indicates to you what it will remove. Clicking on Delete in this message box will remove the splash screen theme from your disk. Clicking Cancel will abort the remove action. If you choose Delete, the theme is then no longer available in the list. - - - - -Test Theme - - -This shows you the theme and the associated icons as they will be displayed as splash screen when &kde; starts. Clicking on the splash screen hides it. - - - - - -
- - diff --git a/doc/kcontrol/splashscreen/splash-main.png b/doc/kcontrol/splashscreen/splash-main.png deleted file mode 100644 index 375455e9..00000000 Binary files a/doc/kcontrol/splashscreen/splash-main.png and /dev/null differ diff --git a/doc/kcontrol/trash/CMakeLists.txt b/doc/kcontrol/trash/CMakeLists.txt deleted file mode 100644 index 559f8e34..00000000 --- a/doc/kcontrol/trash/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/trash) diff --git a/doc/kcontrol/trash/index.docbook b/doc/kcontrol/trash/index.docbook deleted file mode 100644 index 099d6db2..00000000 --- a/doc/kcontrol/trash/index.docbook +++ /dev/null @@ -1,65 +0,0 @@ - - - -]> -
-Trash - - -&Burkhard.Lueck; - - - -2009-11-24 -&kde; 4.4 - - -KDE -Systemsettings -trash - - - - -This module allows you to configure the settings for the trash. - - - -Delete files older than - -Check this box to allow automatic deletion of files that are -older than the value specified. Leave this disabled to not -automatically delete any items after a certain timespan. -Set the number of days that files can remain in the trash. Any files -older than this will be automatically deleted. - - - -Limit to maximum size - -Check this box to limit the trash to the maximum amount of disk space -that you specify below. Otherwise, it will be unlimited. - - - -Maximum size - -This is the maximum percent of disk space that will be used for the -trash. The calculated amount of disk space that will be allowed for -the trash is displayed right of the spinbox. - - - -When limit reached - -When the size limit is reached, the selected action will be performed, -either the oldest or biggest files will be deleted automatically -or you will be warned. - - - - - -
diff --git a/doc/kcontrol/useragent/CMakeLists.txt b/doc/kcontrol/useragent/CMakeLists.txt deleted file mode 100644 index c350c7bc..00000000 --- a/doc/kcontrol/useragent/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/useragent) diff --git a/doc/kcontrol/useragent/index.docbook b/doc/kcontrol/useragent/index.docbook deleted file mode 100644 index 816e379f..00000000 --- a/doc/kcontrol/useragent/index.docbook +++ /dev/null @@ -1,110 +0,0 @@ - - - -]> - -
-Browser Identification - - -&Krishna.Tateneni; &Krishna.Tateneni.mail; - - - -2009-11-24 -&kde; 4.4 - - -KDE -Systemsettings -user agent -browser -identification - - - - - -Browser Identification - - - -Introduction - -When &konqueror; connects to a web site to retrieve information, -some basic identifying information is sent to the web site in the form -of a User Agent header. - -Because of minor differences in the way that different web -browsers function, web sites that rely too much on a single browser may -sometimes not display as intended when viewed using another -browser. Some web sites are smart enough to examine the contents of the -user agent header and incorporate this information in the -&HTML; code so that the content is displayed correctly -regardless of the browser used. - -However, you may find that some web sites refuse to function -correctly unless you are using a browser recognized as -proper by that site. In these cases, you may find it -necessary to fool the web site by having &konqueror; report itself to be -another browser by means of the user agent header. - - - - -Use - -In this module you can configure the -type of browser that &konqueror; will report itself to be. You can -control this information by web site. Usually, the list box that is -labeled Site Specific Identification will be -empty, so that &konqueror; will always use its default useragent -string. - -You can disable the sending of a user agent entirely, by -unchecking the Send identification -check box. This may cause strange behavior on some sites, and may even -deny you access to some websites, so disable this with caution. - -To configure a new agent binding, press the -New... button. Type the name of the server or -a domain in the text box at the top of the dialog that pops up, which -is labeled When browsing the following -site. - -Note that you can not use the wildcard -character * in this text box. However, the string -kde.org will match all hosts in the domain -kde.org - -After typing the name of the server, type in the identifying -string in the next combo box, which is labeled Use the -following identification:, or choose a string from the list. If -you don't choose a string from the list, you will need to know what a -valid string from the browser looks like. For example, you could type -Mozilla/4.0 (compatible; MSIE 4.0). - -You can click on an existing entry in the list, and then modify the contents of the -text boxes, followed by clicking Change.... - -The Delete button can be used to delete -the selected entry in the list of configured agent bindings. The -Delete All will remove all the configured user -agent strings. Click the Apply to take your -changes in effect. - -You can use the check boxes at the top of the screen to build a -user agent that is uniquely yours, by choosing your own combination of -operating system name and version, platform, processor type, and -language. - -In all cases, the user agent that is being sent by default is -displayed in bold text at the top of the page. - - - - - -
\ No newline at end of file diff --git a/doc/kcontrol/windowbehaviour/CMakeLists.txt b/doc/kcontrol/windowbehaviour/CMakeLists.txt deleted file mode 100644 index d4349e09..00000000 --- a/doc/kcontrol/windowbehaviour/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/windowbehaviour) diff --git a/doc/kcontrol/windowbehaviour/index.docbook b/doc/kcontrol/windowbehaviour/index.docbook deleted file mode 100644 index f0bf292d..00000000 --- a/doc/kcontrol/windowbehaviour/index.docbook +++ /dev/null @@ -1,676 +0,0 @@ - - - -]> - - - -
- -Window Behavior - -&Mike.McBride; &Mike.McBride.mail; -&Jost.Schenck; &Jost.Schenck.mail; - - - -2013-11-15 -&kde; 4.12 - - -KDE -KControl -system settings -actions -window placement -window size - - - -Window Behavior - - In the upper part of this control module you can see several -tabs: Focus, Titlebar Actions, -Window Actions, Moving and -Advanced. In the -Focus panel you can configure how windows gain or -lose focus, &ie; become active or inactive. Using -Titlebar Actions and Window Actions -you can configure how titlebars and windows react to -mouse clicks. Moving allows you to configure how -windows move and place themselves when started. The -Advanced options cover some specialized options -like window tabbing and window -shading. - - - - -Please note that the configuration in this module will not take effect -if you do not use &kde;'s native window manager, &kwin;. If you do use a -different window manager, please refer to its documentation for how to -customize window behavior. - - - - -Focus - - -The focus of the desktop refers to the window which the -user is currently working on. The window with focus is often referred to -as the active window. - - -Focus does not necessarily mean the window is the one at the -front — this is referred to as raised, and -although this is configured here as well, focus and raising of windows -are configured independently. - - -Focus Policy - - -There are six methods &kde; can use to determine the current focus: - - - - -Click To Focus - - -A window becomes active when you click into it. -This behaviour is common on other operating systems and likely what you want. - - - - -Click To Focus - Mouse Precedence - - -This is mostly the same as Click To Focus. -If an active window has to be chosen by the system -(⪚ because the currently active one was closed) -the window under the mouse is the preferred candidate. -Unusual, but possible variant of Click To Focus. - - - - - -Focus Follows Mouse - - -Moving the mouse pointer actively over a normal window activates it. New -windows such as the mini command line invoked with -&Alt;F2 will receive the focus, -without you having to point the mouse at them explicitly. -⪚ windows randomly appearing under the mouse will not gain the focus. -Focus stealing prevention takes place as usual. -Think as Click To Focus just without having to actually click. - - - -In other window managers, this is sometimes known as Sloppy focus -follows mouse. - - - - - -Focus Follows Mouse - Mouse Precedence - - -This is mostly the same as Focus Follows Mouse. -If an active window has to be chosen by the system -(⪚ because the currently active one was closed) -the window under the mouse is the preferred candidate. -Choose this, if you want a hover controlled focus. - - - - - -Focus Under Mouse - - -The window that happens to be under the mouse pointer becomes active. If -the mouse is not over a window (for instance, it's on the desktop) the last -window that was under the mouse has focus. New windows such as the mini -command line invoked with &Alt;F2 will -not receive the focus, you must move the mouse over them to type. - - - - - -Focus Strictly Under Mouse - -Similar to Focus Under Mouse, but even more -strict with its interpretation. Only the window under the mouse pointer is -active. If the mouse pointer is not over a window, no window has focus. -New windows such as the mini command line invoked with -&Alt;F2 will not receive the focus, -you must move the mouse over them to type. - - - - - - -Note that Focus Under Mouse and -Focus Strictly Under Mouse prevent certain -features, such as Focus stealing prevention and the -&Alt; -walk-through-windows dialog, from working properly. - - - - - -Focus stealing prevention level - -This option specifies how much KWin will try to prevent unwanted focus -stealing caused by unexpected activation of new windows. - - - -None -Prevention is turned off and new windows always become activated. - - -Low -Prevention is enabled; when some window does not have support -for the underlying mechanism and KWin cannot reliably decide whether to activate -the window or not, it will be activated. This setting may have both worse and better -results than the medium level, depending on the applications. - - -Medium -Prevention is enabled. - - - -High -New windows get activated only -if no window is currently active or if they belong to the currently active -application. This setting is probably not really usable when not using mouse -focus policy. - - -Extreme -All windows must be explicitly activated by the user. - - -Windows that are prevented from stealing focus are marked as demanding -attention, which by default means their taskbar entry will be highlighted. -This can be changed in the Notifications control module. - - - -Raising window - -Once you have determined the focus policy, there are the window -raising options. - - - -By placing a mark in front of Raise on hover, delayed by, &kde; can -bring a window to the front if the mouse is over that window for a -specified period of time. You can determine the delay for this option by using the spin box control. - - - - -Setting the delay too short will cause a rapid fire changing of -windows, which can be quite distracting. Most people will like a delay -of 100-300 ms. This is responsive, but it will let you slide over the -corners of a window on your way to your destination without bringing -that window to the front. - - - - -If you do not use auto raise, make sure the -Click raises active window option has a mark in front of it. You -will not be happy with both auto raise and -Click raise active window disabled, the net effect is that -windows are not raised at all. - - - - - - - -Titlebar Actions - - -In this panel you can configure what happens to windows when a mousebutton is -clicked on their titlebars. - - - -Titlebar double-click - - -In this drop down box you can select either -Shade, several variations of -Maximize or Lower. - - - -Selecting Maximize causes &kde; to maximize the -window whenever you doubleclick on the titlebar. You can further -choose to maximize windows only horizontally or only -vertically. - -Shade, on the other hand, causes the window to be -reduced to simply the titlebar. Double clicking on the titlebar again, -restores the window to its normal size. - - - - - - -You can have windows automatically unshade when you simply place the -mouse over their shaded titlebar. Just check the Enable -hover check box in the Advanced tab of -this module. This is a great way to reclaim desktop space when you are -cutting and pasting between a lot of windows, for example. - - - - - - -<guilabel>Titlebar & Frame</guilabel> - - -This section allows you to determine what happens when you single click -on the titlebar or frame of a window. Notice that you can have -different actions associated with the same click depending on whether -the window is active or not. - - - For each combination of mousebuttons, Active and -Inactive, you can select the most appropriate choice. The actions are -as follows: - - - -Activate - - -Make this window active. - - - - - -Lower - - -Will move this window to the bottom of the display. This will get the -window out of the way. - - - - - -Nothing - - -Just like it says. Nothing happens. - - - - - -Operations Menu - - -Will bring up a small submenu, where you can choose window related -commands (&ie; Maximize, Minimize, Close, &etc;). - - - - - -Raise - - -Will bring the window to the top of the display. All other windows -which overlap with this one, will be hidden below it. - - - - - -Toggle Raise & Lower - - -This will raise windows which are not on top, and lower windows which -are already on top. - - - - - - - - -<guilabel>Maximize Button</guilabel> - -This section allows you to determine the behavior of the three mouse buttons -onto the maximize button. You have the choice between vertical only, horizontal -only or both directions. - - - - - - -Window Actions - - -<guilabel>Inactive Inner Window</guilabel> - - -This part of the module, allows you to configure what happens when you -click on an inactive window, with any of the three mouse buttons or use -the mouse wheel. - - - -Your choices are as follows: - - - - -Activate, Raise & Pass Click - - -This makes the clicked window active, raises it to the top of the -display, and passes a mouse click to the application within the window. - - - - - -Activate & Pass Click - - -This makes the clicked window active and passes a mouse click to the -application within the window. - - - - - -Activate - - -This simply makes the clicked window active. The mouse click is not -passed on to the application within the window. - - - - - -Activate & Raise - - -This makes the clicked window active and raises the window to the top of -the display. The mouse click is not passed on to the application within -the window. - - - - - - - - - - -<guilabel>Inner Window, Titlebar & Frame</guilabel> - - -This bottom section, allows you to configure additional actions, when -a modifier key (by default &Alt;) is pressed, and a mouse click is -made on a window. - - -Once again, you can select different actions for -Left, Middle and -Right button clicks and the Mouse -wheel. - - -Your choices are: - - - -Lower - - -Will move this window to the bottom of the display. This will get the -window out of the way. - - - - - -Move - - -Allows you to drag the selected window around the desktop. - - - - - -Nothing - - -Just like it says. Nothing happens. - - - - - -Raise - - -Will bring the window to the top of the display. All other windows -which overlap with this one, will be hidden below it. - - - - - -Resize - - -Allows you to change the size of the selected window. - - - - - -Toggle Raise & Lower - - -This will raise windows which are not on top, and lower windows which -are already on top. - - - - - - - - - - - - -Moving - - -<guilabel>Windows</guilabel> - -The options here determine how windows appear on screen when you -are moving them. - - - -Display window geometry when moving or resizing - -Enable this option if you want a window's geometry to be displayed -while it is being moved or resized. The window position relative to the top-left -corner of the screen is displayed together with its size. - - - - - - - -<guilabel>Snap Zones</guilabel> - -The rest of this page allows you to configure the Snap -Zones. These are like a magnetic field along the side of -the desktop and each window, which will make windows snap alongside -when moved near. - - - -Border snap zone: - - -Here you can set the snap zone for screen borders. Moving a -window within the configured distance will make it snap to the edge of -the desktop. - - - - -Window snap zone: - - -Here you can set the snap zone for windows. As with screen -borders, moving a window near to another will make it snap to the edge -as if the windows were magnetized. - - - - -Center snap zone: - - -Here you can set the snap zone for the screen center, &ie; the -strength of the magnetic field which will make windows snap -to the center of the screen when moved near it. - - - - - -Snap windows only when overlapping - - -If checked, windows will not snap together if they are only near -each other, they must be overlapping, by the configured amount or -less. - - - - - - - - -Advanced - - -In the Advanced panel you can do more advanced fine -tuning to the window behavior. - - - -Shading - - -Enable hover - - -If this option is enabled, a shaded window will un-shade automatically -when the mouse pointer has been over the titlebar for some time. Use -the spinbox to configure the delay un-shading. - - - - - - -Window Tabbing - - -Automatically group similar windows -When turned on attempt to automatically detect when a newly opened window is -related to an existing one and place them in the same window group. - - - -Switch to automatically grouped windows immediately -When turned on immediately switch to any new window tabs that were -automatically added to the current group. - - - -Placement -The placement policy determines where a new window will appear -on the desktop. Smart will try to achieve a minimum -overlap of windows, Cascade will cascade the -windows, and Random will use a random -position. Centered will open all new windows in -the center of the screen, and Zero-Cornered will -open all windows with their top left corner in the top left corner of -the screen. - - - - - -Special Window - -Hide utility windows for inactive applications -When turned on, utility windows (tool windows, torn-off menus,...) of -inactive applications will be hidden and will be shown only when the -application becomes active. Note that applications have to mark the windows -with the proper window type for this feature to work. - - - - - - - - -
diff --git a/doc/kcontrol/windowspecific/CMakeLists.txt b/doc/kcontrol/windowspecific/CMakeLists.txt deleted file mode 100644 index 69d7e2e9..00000000 --- a/doc/kcontrol/windowspecific/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/windowspecific) diff --git a/doc/kcontrol/windowspecific/Face-smile.png b/doc/kcontrol/windowspecific/Face-smile.png deleted file mode 100644 index 501cc796..00000000 Binary files a/doc/kcontrol/windowspecific/Face-smile.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/akgregator-info.png b/doc/kcontrol/windowspecific/akgregator-info.png deleted file mode 100644 index c05311f7..00000000 Binary files a/doc/kcontrol/windowspecific/akgregator-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/akregator-attributes.png b/doc/kcontrol/windowspecific/akregator-attributes.png deleted file mode 100644 index b22478fe..00000000 Binary files a/doc/kcontrol/windowspecific/akregator-attributes.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/akregator-fav.png b/doc/kcontrol/windowspecific/akregator-fav.png deleted file mode 100644 index 553fc446..00000000 Binary files a/doc/kcontrol/windowspecific/akregator-fav.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/config-win-behavior.png b/doc/kcontrol/windowspecific/config-win-behavior.png deleted file mode 100644 index afe9ebb4..00000000 Binary files a/doc/kcontrol/windowspecific/config-win-behavior.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/emacs-attribute.png b/doc/kcontrol/windowspecific/emacs-attribute.png deleted file mode 100644 index 4a75d35d..00000000 Binary files a/doc/kcontrol/windowspecific/emacs-attribute.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/emacs-info.png b/doc/kcontrol/windowspecific/emacs-info.png deleted file mode 100644 index c1a106e5..00000000 Binary files a/doc/kcontrol/windowspecific/emacs-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/focus-stealing-pop2top-attribute.png b/doc/kcontrol/windowspecific/focus-stealing-pop2top-attribute.png deleted file mode 100644 index 187e713d..00000000 Binary files a/doc/kcontrol/windowspecific/focus-stealing-pop2top-attribute.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/index.docbook b/doc/kcontrol/windowspecific/index.docbook deleted file mode 100644 index 27df810b..00000000 --- a/doc/kcontrol/windowspecific/index.docbook +++ /dev/null @@ -1,1025 +0,0 @@ - - - -]> - - -Window Rules - -&Lauri.Watts; &Lauri.Watts.mail; - - - Parts of this documentation was converted from the KDE UserBase KWin Rules page. - - - - - -&FDLNotice; -2012-06-02 - &kde; SC 4.9 - -Here you can customize window settings specifically only for -some windows. - - -KDE -KControl -window settings -window placement -window size - - - -Window Specific Settings: Quick Start - -Here you can customize window settings specifically only for -some windows. - - -Please note that this configuration will not take effect if you -do not use &kwin; as your window manager. If you do use a different -window manager, please refer to its documentation for how to customize -window behavior. - - -Many of the settings you can configure here are those you can -configure on a global basis in the Window Behavior -&systemsettings; module, however some of them are even more detailed. - -They encompass geometry, placement, whether a window should be -kept above or below others, focus stealing prevention, and translucency -settings. - -You can access this module in two ways: from the titlebar of the -application you wish to configure, or from the &systemsettings;. If you -start it from within &systemsettings; you can use the -New... to create a window profile, and the -Detect Window Properties button on the resulting dialog to -partially fill in the required information for the application -you wish to configure. - -You can also at any time Modify... or -Delete any stored settings profile, and -reorder the list. Reordering the list using the Move Up -and Move Down buttons effects on how they are applied. - - - - - -Overview -&kwin; allows the end-user to define rules to alter an application's window attributes. - -For example, when an application is started, it can be forced to always run on Virtual Desktop 2. Or a defect in an application can be worked-around to force the window above others. - -Step-by-step examples are provided along with detailed information on using the &kwin; Rule Editor to specify Window Matching and Window Attributes. - - -Examples and Application Workaround -To see what's possible, detailed examples are provided which can also be used to model your own rules. - -A special page is to dedicated to address Application Workaround. - - -KWin Rule Editor -Invoking the KWin Rule Editor - - - - - - - - - - - - - -There are several ways to invoke the &kwin; Rule Editor. Below are two: - - -Right-click on the title-bar of any window, choose More ActionsWindow Manager Settings... and in the Configure window, select Window Rules or - - -System SettingsWindow BehaviorWindow Rules - -The main window is used to: - - -Affect rules with New..., Modify... and Delete -Share rules with others via Import and Export -Ensure desired rule evaluation using Move Up and Move Down - -Rule Evaluation -When an application starts (or the rules are modified), &kwin; evaluates the rules from the top of the list to the bottom. For all rules which match a window, the collective set of attributes are applied to the window, then the window is displayed. - -Should two or more matching rules enable the same attribute, the setting in the first rule in the list is used. - -You can tailor children windows for the application by placing the more restrictive rules first - see the Kopete and Kopete Chat Window example. - - - -Rule Editor - - - - - - - - - - - - - -The editor is composed of four tabs: - - -Window matching -Size & Position -Arrangement & Access -Appearance & Fixes - -As the name implies, Window matching is used to specify criteria to match one or more windows. The other three tabs are used to alter the attributes of the matching windows. - -Panels can also be affected. - -Window Matching -Each window rule has user specified Window Matching criteria. &kwin; uses the criteria to determine whether the rule is applicable for an application. - - -Window Attributes -Along with Window Matching criteria, each window rule has a set of Window Attributes. The attributes override the corresponding application's settings and are applied before the window is displayed by &kwin;. - - - - - -Window Matching - - - - - - - - - - - - - -The Window Matching tab is used to specify the criteria &kwin; uses to evaluate whether the rule is applicable for a given window. - -Zero (match any window) or more of the following may be specified: - - -Window class (application) - match the class. -Match whole window class - include matching the secondary class. - - -Window role - restrict the match to the function of the window (⪚ a main window, a chat window, &etc;) -Window types - restrict the match to the type of window: Normal Window, Dialog Window, &etc; -Window title - restrict the match to the title of the window. -Machine (hostname) - restrict the match to the host name associated with the window. - -While it's possible to manually enter the above information, the preferred method is to use the Detect Window Properties button. - -For each field, the following operators can be applied against the field value: - - -Unimportant - ignore the field. -Exact Match -Substring Match - -Both Exact Match and Substring Match implement case insensitive matching. For example, AB matches the string AB, ab, Ab and aB. - - -Regular Expression - Qt's regular expressions are implemented - see pattern matching using regular expressions. - -Detect Window Properties - - - - - - - - - - - - - -The Detect Window Properties function simplifies the process of entering the matching-criteria. - - -For the application you'd like to create a rule, start the application. -Next, in the Window matching tab, set the number of seconds of delay before the Detect Window Properties function starts. The default is zero seconds. -Click on Detect Window Properties and -When the mouse-cursor turns to cross-hairs, place it inside the application window (not the title bar) and left-click. -A new window is presented with information about the selected window. Select the desired fields: -Secondary class name - some applications have a secondary class name. This value can be used to restrict windows by this value. -Window role -Window type -Window title - - - -Click the OK button to back-fill the Window Matching criteria. - -By using a combination of the information, a rule can apply to an entire application (by Class) or a to a specific window Type within the Class - say a Toolbar. - - - -Window Attributes - - - - - - - - - - - - - -The attributes which can be set are grouped by function in three tabs: - - -Size & Position -Arrangement & Access -Appearance & Fixes - -Each attribute has a set of parameters which determines its disposition. - -Parameters -Each attribute, minimally, accepts one of the following parameters. Additional, attribute-specific arguments are listed within each attribute definition. - - - Do Not Affect - - Ensure a subsequent rule, which matches the window, does not affect the attribute. - - - Apply Initially - - Start the window with the attribute and allow it to be changed at run-time. - - - Remember - - Use the attribute setting as defined in the rule and if changed at run-time, save and use the new value instead. - - - Force - - The setting cannot be changed at run-time. - - - Apply Now, Force Temporarily - - Apply/Force the setting once and unset the attribute.The difference between the two is at run-time, Apply Now allows the attribute to be changed and Force Temporarily prohibits it to be altered until all affected windows exit. - - - -For Apply Now, if the rule has no other attributes set, the rule is deleted after evaluation whereas Force Temporarily, the rule is deleted after the last affected window terminates. - - -Attributes -The Detect Window Properties button back-fills attribute-specific values - for more information see Window Matching. For example the height and width values of the Size attribute is set to the height and width of the detected window. - -Yes/No arguments are used to toggle on or off attributes. Leniency with grammar helps one understand how a setting will be processed. For example, the attribute Skip taskbar, when set to No means do not skip the taskbar. In other words, show the window in the taskbar. - -Size & Position - - Position - - Position the window's upper left corner at the specified x,y coordinate. - - - -&kwin;'s origin, (0,0), is the upper left of the desktop. - - - Size - - The width and height of the window. - - - Maximized horizontally, Maximized vertically, Fullscreen - - These attributes are used to toggle the maximum horizontal/minimum horizontal/full-screen window attribute. - - - Desktop - - Place the window on the specified (Virtual) Desktop. Use All Desktops to place the window on all Virtual Desktops. - - - Minimized, Shaded - - Toggle the Minimize and Shading window attribute. For example, a window can be started Minimized or if it is started Minimized, it can be forced to not. - - - -Maximized attribute is emulated by using both Maximized horizontally and Maximized vertically or Initial placement with the Maximizing argument. - - - Initial placement - - Override the global window placement strategy with one of the following: - -Default - use the global window placement strategy. -No Placement - top-left corner. -Smart - place where no other window exists. -Maximizing - start the window maximized. -Cascade - staircase-by-title. -Centered - center of the desktop. -Random -Top-Left Corner -Under Mouse -On Main Window - restrict placement of a child window to the boundaries of the parent window. - - - - - Ignore requested geometry - - Toggle whether to accept or ignore the window's requested geometry position. To avoid conflicts between the default placement strategy and the window's request, the placement strategy is ignored when the window's request is accepted. - - - Minimum size, Maximum size - - The minimum and maximum size allowed for the window. - - - Obey geometry restrictions - - Toggle whether to adhere to the window's requested aspect ratio or base increment.In order to understand this attribute, some background is required. Briefly, windows must request from the Window Manager, a base increment: the minimum number of height X width pixels per re-size request. Typically, it's 1x1. Other windows though, for example terminal emulators or editors, use fixed-fonts and request their base-increment according to the size of one character. - - - - -Arrangement & Access - - Keep above, Keep below - - Toggle whether to keep the window above/below all others. - - - Autogroup with identical - - Toggle the grouping (commonly known as tabbing) of windows. - - - Autogroup in foreground - - Toggle whether to make the window active when it is added to the current Autogroup. - - - Autogroup by ID - - Create a group via a user-defined ID. More than one rule can share the same ID to allow for seemingly unrelated windows to be grouped. - - - Tiling - - Override the default window behavior to either Tiled or Floating. - - - Skip taskbar - - Toggle whether to display the window in the taskbar. - - - Skip pager - - Toggle whether to display the window in pager: - - - - - - - - - - - - - - - - - - Skip switcher - - Toggle whether to display the window in the ALT+TAB list. - - - Shortcut - - Assign a shortcut to the window. When Edit... is clicked, additional instructions are presented. - - - - -Appearance & Fixes - - No titlebar and frame - - Toggle whether to display the titlebar and frame around the window. - - - Active/Inactive opacity - - When the window is active/inactive, set its opacity to the percentage specified. - - - -Active/Inactive opacity can only be affected when Desktop Effects are enabled. - - - Moving/resizing - - Deprecated as of >4.8 - - - - Focus stealing prevention - - When a window wants focus, control on a scale (from None to Extreme) whether to honor the request and place above all other windows, or ignore its request (potentially leaving the window behind other windows): - -None - Always grant focus to the window. -Low -Normal -High -Extreme - The window's focus request is denied. Focus is only granted by explicitly requesting via the mousing. - - - - - -See Accept focus to make a window read-only - not accept any keyboard input. - - - Accept focus - - Toggle whether the window accepts keyboard input. Make the window read-only. - - - Ignore global shortcuts - - Toggle whether to ignore global shortcuts (as defined by System SettingsShortcuts and GesturesGlobal Shortcuts or by running kcmshell4 keys in konsole) while the window is active. - - - Closeable - - Toggle whether to display the Close button on the title bar. - - - -A terminal window may still be closed by the end user by ending the shell session however using Accept focus to disable keyboard input will make it more difficult to close the window. - - - Window type - - Change the window to another type and inherit the characteristics of that window: - -Normal Window -Dialog Window -Utility Window -Dock (panel) -Toolbar -Torn-Off Menu -Splash Screen -Desktop -Standalone Menubar - - - - - -Use with care because unwanted results may be introduced. For example, a Splash Screen is a automatically closed by &kwin; when clicked. - - - Block compositing - - Toggle whether to disable compositing while the window exists. If compositing is enabled and the rule specifies to disable compositing, while any matching window exists, compositing will be disabled. Compositing is re-enabled when the last matching window terminates. - - - - - - -Examples -The first example details all the necessary steps to create the rules. In order to keep this page a manageable size, subsequent examples only list steps specific to the example. - -The Pager attribute refers to the Virtual Desktop Manager: - - - - - - - - - - - - -Pin a Window to a Desktop and set other Attributes -Pin &akregator; to Virtual Desktop 2. Additionally, start the application with a preferred size and position. For each attribute, use the Apply Initially parameter so it can be overridden at run-time. - -The &kwin; rule is created as follows: - - -Start &akregator; on desktop two, size and position it to suit: - - - - - - - - - - - -Right-click on the titlebar and select More ActionsWindow Manager Settings...: - - - - - - - - - - - -Select the Window Rules in the left column and click on New...: - - - - - - - - - - - -The Edit Window-Specific Settings window is displayed. Window matching is the default tab: - - - - - - - - - - - -Click Detect Window Properties with 0s delay the cursor immediately turns into cross-hairs. Click (anywhere) inside the &akregator; window (but not the title bar). The window criteria are presented. Match only by primary class name so leave the check boxes unchecked - for additional information see window matching: - - - - - - - - - - - -Clicking OK the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description field (which is displayed in the KWin Rule window): - - - - - - - - - - - -Enable the window attributes: Position, Size and Desktop. The initial values are set by Detect Window Properties and can be overridden: - - - - - - - - - - - -Clicking OK in the previous window returns to the main KWin Rules. The new rule with its description is listed: - - - - - - - - - - - -Click OK to close the window. -Done. - - -Application on all Desktops and Handle One Child Window Uniquely -Except for conversation windows, display &kopete; and its children windows on all desktops and skip the systray and pager. For children conversation windows, treat them as the parent window except show them in systray. - -For each attribute, use the Force parameter so it can not be overridden. - -In order to implement the above, two rules need to be created: - - -A rule for Kopete Chat and -A rule for &kopete; - -The Kopete Chat rule's matching-criteria is more restrictive than the Kopete rule as it needs to match a specific Window Role: the chat window. Due to rule evaluation processing, the Kopete Chat rule must precede the &kopete; rule in the KWin Rule list for Kopete. - -Kopete Chat Rule -Assuming a Kopete Chat window is open: - - -Use Detect Window Properties and select the Kopete Chat window. Check the Window role box to restrict the criteria to chat windows - for additional information see window matching: - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description box: - - - - - - - - - - - -Enable the following attributes: - - - - - - - - - - - -Click through to complete entry of the rule. - -The Skip taskbar attribute is set to No to display the window in the taskbar which loosely translates to: no do not skip taskbar . - - -Kopete Rule -Assuming &kopete; is open: - - -Use Detect Window Properties and select the &kopete; window. Match only by primary class name so leave the check boxes unchecked - for additional information see window matching: - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description box: - - - - - - - - - - - -Enable the following attributes: - - - - - - - - - - - -Click through to complete entry of the rule. - - -Kopete KWin Rule List -As mentioned, due to rule evaluation processing, the Kopete Chat rule must precede the &kopete; rule: - - - - - - - - - - - - - - -Suppress a Window from showing on Pager -KNotes currently does not allow for its notes to skip the pager however a rule easily solves this shortcoming. - -Assuming a sticky note' window is available: - - -Use Detect Window Properties and select any sticky note window. Match only by primary class name so leave the check boxes unchecked - for additional information see window matching: - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description box: - - - - - - - - - - - -Enable the Skip Pager attribute with the Force parameter: - - - - - - - - - - - -Click through to complete entry of the rule. - - -Force a Window to the Top -To pop an active window to the top, set its Focus stealing prevention attribute to None, typically, in conjunction with the Force parameter: - - - - - - - - - - - - - -Multiple Rules per Application -Thunderbird has several different child windows. This example: - - -Pin Thunderbird's main window on Virtual Desktop 1 with a specific size and location on the desktop. -Allow the Thunderbird composer window to reside on any desktop and when activated, force focus and pop it to the top of all windows. -Pop the Thunderbird reminder to the top and do not give it focus so it isn't inadvertently dismissed. - -Each rule's matching criteria is sufficiently restrictive so their order within the main &kwin; window is not important to affect rule evaluation. - -Thunderbird - Main -Assuming the Thunderbird Main window is open, sized and position to suit: - - -Use Detect Window Properties and select the Thunderbird Main window. Check the Window role box to restrict the criteria to the main window - for additional information see window matching: - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description box: - - - - - - - - - - - -Enable the following attributes: - - - - - - - - - - - -Click through to complete entry of the rule. - - -Thunderbird - Composer -Assuming a Thunderbird Composer window is open: - - -Use Detect Window Properties and select the Thunderbird Compose window. Check the Window role and Window type boxes to restrict the criteria to composition windows - for additional information see window matching: - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description box: - - - - - - - - - - - -Enable the following attributes: - - - - - - - - - - - -Click through to complete entry of the rule. - - -Thunderbird - Reminder -Assuming a Thunderbird Reminder window is open: - - -Use Detect Window Properties and select the Thunderbird Reminder window. Check the Secondary class name and Window Type boxes to restrict the criteria to reminder windows - for additional information see window matching: - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description box: - - - - - - - - - - - -Enable the following attributes: - - - - - - - - - - - -Click through to complete entry of the rule. - - - - - -Application Workarounds -Below are Workarounds for misbehaving applications. - -If you are unfamiliar with creating &kwin; Rules, see this detailed example to base your new rule. - -Full-screen Re-size Error -&Emacs; and gVim, when maximized (full-screen mode) and under certain conditions may encounter window re-sizing issues - see Emacs window resizes ... A &kwin; Rule will work-around the issue. - -Assuming an &Emacs; window is open: - - -Use Detect Window Properties and select the &Emacs; window. Match only by primary class name so leave the check boxes unchecked - for additional information see window matching - - - - - - - - - - - -Clicking OK in the previous window back-fills the results in the Window Matching tab. Enter a meaningful text in the Description text box: - - - - - - - - - - - -Ignore &Emacs;'s full-screen request by enabling the Obey geometry restrictions attribute, toggling it to off (No) to ignore and selecting the Force parameter: - - - - - - - - - - - -Click through to complete entry of the rule. - - - - - - -Credits and License - -Documentation Copyright see the UserBase - KWin Rules page history - -&underFDL; - -&documentation.index; - diff --git a/doc/kcontrol/windowspecific/knotes-attribute.png b/doc/kcontrol/windowspecific/knotes-attribute.png deleted file mode 100644 index 3f15cc9a..00000000 Binary files a/doc/kcontrol/windowspecific/knotes-attribute.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/knotes-info.png b/doc/kcontrol/windowspecific/knotes-info.png deleted file mode 100644 index 522b984c..00000000 Binary files a/doc/kcontrol/windowspecific/knotes-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kopete-attribute-2.png b/doc/kcontrol/windowspecific/kopete-attribute-2.png deleted file mode 100644 index 95dc5b00..00000000 Binary files a/doc/kcontrol/windowspecific/kopete-attribute-2.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kopete-chat-attribute.png b/doc/kcontrol/windowspecific/kopete-chat-attribute.png deleted file mode 100644 index 06e303e4..00000000 Binary files a/doc/kcontrol/windowspecific/kopete-chat-attribute.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kopete-chat-info.png b/doc/kcontrol/windowspecific/kopete-chat-info.png deleted file mode 100644 index 4569419a..00000000 Binary files a/doc/kcontrol/windowspecific/kopete-chat-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kopete-info.png b/doc/kcontrol/windowspecific/kopete-info.png deleted file mode 100644 index ca4dfe77..00000000 Binary files a/doc/kcontrol/windowspecific/kopete-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-detect-window.png b/doc/kcontrol/windowspecific/kwin-detect-window.png deleted file mode 100644 index ae31d5eb..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-detect-window.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-kopete-rules.png b/doc/kcontrol/windowspecific/kwin-kopete-rules.png deleted file mode 100644 index 48901312..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-kopete-rules.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-rule-editor.png b/doc/kcontrol/windowspecific/kwin-rule-editor.png deleted file mode 100644 index e42b7b26..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-rule-editor.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-rules-main-n-akregator.png b/doc/kcontrol/windowspecific/kwin-rules-main-n-akregator.png deleted file mode 100644 index a801fef8..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-rules-main-n-akregator.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-rules-main.png b/doc/kcontrol/windowspecific/kwin-rules-main.png deleted file mode 100644 index fa290fab..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-rules-main.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-rules-ordering.png b/doc/kcontrol/windowspecific/kwin-rules-ordering.png deleted file mode 100644 index 1397150d..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-rules-ordering.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-window-attributes.png b/doc/kcontrol/windowspecific/kwin-window-attributes.png deleted file mode 100644 index b6223522..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-window-attributes.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/kwin-window-matching.png b/doc/kcontrol/windowspecific/kwin-window-matching.png deleted file mode 100644 index 50162f98..00000000 Binary files a/doc/kcontrol/windowspecific/kwin-window-matching.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/pager-4-desktops.png b/doc/kcontrol/windowspecific/pager-4-desktops.png deleted file mode 100644 index 4f2b2832..00000000 Binary files a/doc/kcontrol/windowspecific/pager-4-desktops.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/tbird-compose-attribute.png b/doc/kcontrol/windowspecific/tbird-compose-attribute.png deleted file mode 100644 index ee0cdf46..00000000 Binary files a/doc/kcontrol/windowspecific/tbird-compose-attribute.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/tbird-compose-info.png b/doc/kcontrol/windowspecific/tbird-compose-info.png deleted file mode 100644 index 2bde0f93..00000000 Binary files a/doc/kcontrol/windowspecific/tbird-compose-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/tbird-main-attribute.png b/doc/kcontrol/windowspecific/tbird-main-attribute.png deleted file mode 100644 index 98e81eeb..00000000 Binary files a/doc/kcontrol/windowspecific/tbird-main-attribute.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/tbird-main-info.png b/doc/kcontrol/windowspecific/tbird-main-info.png deleted file mode 100644 index ecaff484..00000000 Binary files a/doc/kcontrol/windowspecific/tbird-main-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/tbird-reminder-attribute-2.png b/doc/kcontrol/windowspecific/tbird-reminder-attribute-2.png deleted file mode 100644 index 9110bc65..00000000 Binary files a/doc/kcontrol/windowspecific/tbird-reminder-attribute-2.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/tbird-reminder-info.png b/doc/kcontrol/windowspecific/tbird-reminder-info.png deleted file mode 100644 index bcaf2c44..00000000 Binary files a/doc/kcontrol/windowspecific/tbird-reminder-info.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-emacs.png b/doc/kcontrol/windowspecific/window-matching-emacs.png deleted file mode 100644 index d0404b1b..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-emacs.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-init.png b/doc/kcontrol/windowspecific/window-matching-init.png deleted file mode 100644 index 0bdbcf3f..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-init.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-knotes.png b/doc/kcontrol/windowspecific/window-matching-knotes.png deleted file mode 100644 index 2e33a43c..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-knotes.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-kopete-chat.png b/doc/kcontrol/windowspecific/window-matching-kopete-chat.png deleted file mode 100644 index a232d3b9..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-kopete-chat.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-kopete.png b/doc/kcontrol/windowspecific/window-matching-kopete.png deleted file mode 100644 index dbab3bd3..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-kopete.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-ready-akregator.png b/doc/kcontrol/windowspecific/window-matching-ready-akregator.png deleted file mode 100644 index f2c0f7c2..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-ready-akregator.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-tbird-compose.png b/doc/kcontrol/windowspecific/window-matching-tbird-compose.png deleted file mode 100644 index 30e8494d..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-tbird-compose.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-tbird-main.png b/doc/kcontrol/windowspecific/window-matching-tbird-main.png deleted file mode 100644 index 4dda3601..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-tbird-main.png and /dev/null differ diff --git a/doc/kcontrol/windowspecific/window-matching-tbird-reminder.png b/doc/kcontrol/windowspecific/window-matching-tbird-reminder.png deleted file mode 100644 index 2787ac1f..00000000 Binary files a/doc/kcontrol/windowspecific/window-matching-tbird-reminder.png and /dev/null differ diff --git a/doc/kcontrol/workspaceoptions/CMakeLists.txt b/doc/kcontrol/workspaceoptions/CMakeLists.txt deleted file mode 100644 index f8c96f80..00000000 --- a/doc/kcontrol/workspaceoptions/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/workspaceoptions) diff --git a/doc/kcontrol/workspaceoptions/index.docbook b/doc/kcontrol/workspaceoptions/index.docbook deleted file mode 100644 index cfad4e1d..00000000 --- a/doc/kcontrol/workspaceoptions/index.docbook +++ /dev/null @@ -1,104 +0,0 @@ - - - -]> -
- -Workspace - -&Marco.Martin;&Marco.Martin.mail; - - - -2011-08-24 -&kde; 4.7 - - -KDE -System Settings -desktop -workspace -netbook - - - - -Workspace - -This is a module to configure global options for the Plasma workspace. - - - -Workspace Type -In this section you can configure the type of workspace you will be -using. Right now there are two options: - - - -Desktop - -A workspace optimized for traditional desktops and laptop computers. - - - - -Netbook - -A workspace optimized for netbooks and in general for devices with -a smaller screen resolution. - - - - - - - -Dashboard - -In the dashboard section you can configure the behavior of the Plasma dashboard. -Right now there are two options: - - - - -Show Desktop Widgets - -The dashboard will show the same widgets present on the desktop. - - - - -Show an Independent Widget Set - -The dashboard will present an independent -set of widget that is different from the ones in the desktop. - - - - - - - -Informational Tips - -Show Informational Tips are displayed hovering items in the -Plasma panel or on the desktop. - - -
- - - diff --git a/doc/kdebugdialog/CMakeLists.txt b/doc/kdebugdialog/CMakeLists.txt deleted file mode 100644 index cad13c8f..00000000 --- a/doc/kdebugdialog/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/kdebugdialog/index.docbook b/doc/kdebugdialog/index.docbook deleted file mode 100644 index b3250911..00000000 --- a/doc/kdebugdialog/index.docbook +++ /dev/null @@ -1,138 +0,0 @@ - -KDebugDialog"> - - - - - -]> - -
-KDebugDialog - - -&David.Faure; &David.Faure.mail; - - - -2011-12-20 -1.0 &kde; 4.8 - - -KDE -KDebugdialog -Debug - - - - -&kdebugdialog; is a dialog box for managing diagnostic messages at runtime. -It features a simple and a full mode. -In order to be able to make changes -Disable all debug output has to be unchecked. - - - -Simple mode - -If you simply start kdebugdialog, you will -see a list of areas, that can be disabled or enabled. A -kDebug(area) call in the code will show -something in the debug output only if the area is enabled. - -Note that kWarning, kError and kFatal always appear, -they are NOT controlled by this setting. - -Enter a matching string into the Search -box at the top of the list, this allows you to filter the areas -which are displayed in the list view. -Use the buttons below the list to select or deselect all items in the view -(the other areas are not effected) or change the debug output for a single -item using the check box in front of it. - - - - - - -Full mode - -If you start kdebugdialog -, then for every severity level you can -define separately what should be done with the diagnostic messages of -that level, and the same for each debug area. - -In full mode, first you should select the debug area you are -interested in from the list at the left of the dialog using the -search box at the top of the list. - -You may independently set the output for various types of -messages: - - -Information -Warning -Error -Fatal Error - - -For each of these types, you can set the following: - - - -Output to: - -In this Combobox, you can choose where the messages -should be output. The choices are: File, Message -Box, Shell (meaning stderr) and -Syslog. Please do not direct fatal messages to syslog -unless you are the system administrator yourself. The default is -Shell. - - - - -Filename: -This is only enabled when you have chosen -File as the output and provides the name of that file -(which is interpreted as relative to the current folder). The -default is kdebug.dbg. - - - - -Apart from this, you can also tick the check box Abort -on fatal errors. In this case, if a diagnostic message with -the severity level KDEBUG_FATAL is -output, the application aborts with a SIGABRT after outputting the -message. - - - - - -When you close the dialog by pressing OK, -your entries apply immediately and are saved in -$KDEHOME/share/config/kdebugrc. When you press -Cancel, your entries are discarded and the old -ones are restored. - -Credits to Kalle Dalheimer for the original version of -&kdebugdialog; - - - -&underFDL; - -
- - diff --git a/doc/kdesu/CMakeLists.txt b/doc/kdesu/CMakeLists.txt deleted file mode 100644 index e78f6bd5..00000000 --- a/doc/kdesu/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -########### install files ############### -# - -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) - -kde4_create_manpage(man-kdesu.1.docbook 1 INSTALL_DESTINATION ${MAN_INSTALL_DIR}) diff --git a/doc/kdesu/index.docbook b/doc/kdesu/index.docbook deleted file mode 100644 index dee6f311..00000000 --- a/doc/kdesu/index.docbook +++ /dev/null @@ -1,339 +0,0 @@ - - - - - -]> - - - - -The &kdesu; handbook - - -&Geert.Jansen; &Geert.Jansen.mail; - - - - -2000 -&Geert.Jansen; - - -&FDLNotice; - -2010-09-21 -&kde; 4.5 - - -&kdesu; is a graphical front end for the &UNIX; -su command. - - -KDE -su -password -root - - - - - -Introduction - - - -Welcome to &kdesu;! &kdesu; is a graphical front end for the -&UNIX; su command for the K Desktop Environment. -It allows you to run a program as different user by supplying the -password for that user. &kdesu; is an unprivileged program; it uses -the system's su. - -&kdesu; has one additional feature: it can remember passwords -for you. If you are using this feature, you only need to enter the -password once for each command. See for more information on this and a -security analysis. - -This program is meant to be started from the command line or -from .desktop files. Although it asks for the -root password using a &GUI; -dialog, I consider it to be more of a command line <-> &GUI; -glue instead of a pure &GUI; program. - -Since kdesu is no longer installed in -$(kde4-config --prefix)/bin but in kde4-config --path libexec -and therefore not in your Path, you have to use $(kde4-config ---path libexec)kdesu to launch kdesu. - - - -Using &kdesu; - -Usage of &kdesu; is easy. The syntax is like this: - - -kdesu - - command - - file - icon name - - priority - - - - user - - winid - - - -kdesu -&kde; Generic Options -&Qt; Generic Options - - -The command line options are explained below. - - - - -This specifies the command to run as root. It has to be passed -in one argument. So if, for example, you want to start a new file manager, you -would enter at the prompt: $(kde4-config --path libexec)kdesu - - - -Show debug information. - - - -This option allow efficient use of &kdesu; in -.desktop files. It tells &kdesu; to examine the -file specified by file. If this file is -writable by the current user, &kdesu; will execute the command as the -current user. If it is not writable, the command is executed as user -user (defaults to root). -file is evaluated like this: if -file starts with a /, it is -taken as an absolute filename. Otherwise, it is taken as the name of a -global &kde; configuration file. - - - icon name -Specify icon to use in the password dialog. You may specify -just the name, without any extension. -For instance to run &konqueror; in filemanager mode and show the -&konqueror; icon in the password dialog: -$(kde4-config --path libexec)kdesu - - - - - - -Do not keep the password. This disables the keep -password checkbox in the password dialog. - - - priority - -Set priority value. The priority is an arbitrary number between 0 and -100, where 100 means highest priority, and 0 means lowest. The default is -50. - - - - -Use realtime scheduling. - - - - - -Stop the kdesu daemon. See . - - - -Enable terminal output. This disables password keeping. This is -largely for debugging purposes; if you want to run a console mode app, use the -standard su instead. - - - user -While the most common use for &kdesu; is to run a command as -the superuser, you can supply any user name and the appropriate -password. - - - - - - - - -Internals - - -X authentication - -The program you execute will run under the root user id and will -generally have no authority to access your X display. &kdesu; gets -around this by adding an authentication cookie for your display to a -temporary .Xauthority file. After the command -exits, this file is removed. - -If you don't use X cookies, you are on your own. &kdesu; will -detect this and will not add a cookie but you will have to make sure -that root is allowed to access to your display. - - - - -Interface to <command>su</command> - -&kdesu; uses the sytem's su for acquiring -priviliges. In this section, I explain the details of how &kdesu; does -this. - -Because some su implementations (&ie; the one -from &RedHat;) don't want to read the password from -stdin, &kdesu; creates a pty/tty pair and executes -su with its standard filedescriptors connected to -the tty. - -To execute the command the user selected, rather than an -interactive shell, &kdesu; uses the argument with -su. This argument is understood by every shell that -I know of so it should work portably. su passes -this argument to the target user's shell, and the -shell executes the program. Example command: su . - -Instead of executing the user command directly with -su, &kdesu; executes a little stub program called -kdesu_stub. This stub (running as the -target user), requests some information from &kdesu; over the pty/tty -channel (the stub's stdin and stdout) and then executes the user's -program. The information passed over is: the X display, an X -authentication cookie (if available), the PATH and the -command to run. The reason why a stub program is used is that the X -cookie is private information and therefore cannot be passed on the -command line. - - - - -Password Checking - -&kdesu; will check the password you entered and gives an error -message if it is not correct. The checking is done by executing a test -program: /bin/true. If this succeeds, the -password is assumed to be correct. - - - - -Password Keeping - -For your comfort, &kdesu; implements a keep -password feature. If you are interested in security, you -should read this paragraph. - -Allowing &kdesu; to remember passwords opens up a (small) -security hole in your system. Obviously, &kdesu; does not allow -anybody but your user id to use the passwords, but, if done without -caution, this would lowers root's security level to that of a -normal user (you). A hacker who breaks into your account, would get -root access. &kdesu; tries -to prevent this. The security scheme it uses is, in my opinion at -least, reasonably safe and is explained here. - -&kdesu; uses a daemon, called -kdesud. The daemon listens to a &UNIX; -socket in /tmp for commands. The mode of the -socket is 0600 so that only your user id can connect to it. If -password keeping is enabled, &kdesu; executes commands through this -daemon. It writes the command and root's password to the socket and the -daemon executes the command using su, as describe -before. After this, the command and the password are not thrown -away. Instead, they are kept for a specified amount of time. This is -the timeout value from in the control module. If another request for -the same command is coming within this time period, the client does -not have to supply the password. To keep hackers who broke into your -account from stealing passwords from the daemon (for example, by -attaching a debugger), the daemon is installed set-group-id -nogroup. This should prevent all normal users (including you) from -getting passwords from the kdesud -process. Also, the daemon sets the DISPLAY environment -variable to the value it had when it was started. The only thing a -hacker can do is execute an application on your display. - -One weak spot in this scheme is that the programs you execute -are probably not written with security in mind (like setuid -root programs). This means -that they might have buffer overruns or other problems and a hacker -could exploit those. - -The use of the password keeping feature is a tradeoff between -security and comfort. I encourage you to think it over and decide for -yourself if you want to use it or not. - - - - - -Author - -&kdesu; - -Copyright 2000 &Geert.Jansen; - -&kdesu; is written by &Geert.Jansen;. It is somewhat based on -Pietro Iglio's &kdesu;, version 0.3. Pietro and I agreed that I will -maintain this program in the future. - -The author can be reached through email at &Geert.Jansen.mail;. -Please report any bugs you find to me so that I can fix them. If you -have a suggestion, feel free to contact me. - - - -&underFDL; -&underArtisticLicense; - - - - - - diff --git a/doc/kdesu/man-kdesu.1.docbook b/doc/kdesu/man-kdesu.1.docbook deleted file mode 100644 index 9de4f05e..00000000 --- a/doc/kdesu/man-kdesu.1.docbook +++ /dev/null @@ -1,194 +0,0 @@ - - -]> - - - -KDE User's Manual -&Lauri.Watts; &Lauri.Watts.mail; -2010-09-18 -K Desktop Environment - - - -kdesu -1 - - - -kdesu -Runs a program with elevated privileges - - - - -kdesu - - command - - file - icon name - - priority - - - - user - - winid - - - -kdesu -KDE Generic Options -Qt Generic Options - - - - -Description -&kdesu; is a graphical front end for the -&UNIX; su command for the K Desktop Environment. -It allows you to run a program as different user by supplying the -password for that user. &kdesu; is an unprivileged program; it uses -the system's su. - -&kdesu; has one additional feature: it can optionally remember passwords -for you. If you are using this feature, you only need to enter the -password once for each command. - -This program is meant to be started from the command line or -from .desktop files. - -Since kdesu is no longer installed in -$(kde4-config --prefix)/bin but in kde4-config --path libexec -and therefore not in your Path, you have to use $(kde4-config ---path libexec)kdesu to launch kdesu. - - - -Options - - - - -This specifies the command to run as root. It has to be passed -in one argument. So if, for example, you want to start a new file manager, you -would enter at the prompt: $(kde4-config --path libexec)kdesu - - - -Show debug information. - - - -This option allow efficient use of &kdesu; in -.desktop files. It tells &kdesu; to examine the -file specified by file. If this file is -writable by the current user, &kdesu; will execute the command as the -current user. If it is not writable, the command is executed as user -user (defaults to root). -file is evaluated like this: if -file starts with a /, it is -taken as an absolute filename. Otherwise, it is taken as the name of a -global &kde; configuration file. - - - icon name -Specify icon to use in the password dialog. You may specify -just the name, without any extension. - - - - - -Do not keep the password. This disables the keep -password checkbox in the password dialog. - - - priority - -Set priority value. The priority is an arbitrary number between 0 and -100, where 100 means highest priority, and 0 means lowest. The default is -50. - - - - -Use realtime scheduling. - - - - - -Stop the kdesu daemon. This is the daemon that caches -successful passwords in the background. This feature may also be disabled with - when &kdesu; is initially run. - - - -Enable terminal output. This disables password keeping. This is -largely for debugging purposes; if you want to run a console mode app, use the -standard su instead. - - - user -While the most common use for &kdesu; is to run a command as -the superuser, you can supply any user name and the appropriate -password. - - - - - -Do not display an ignore button. - - - - - winid -Makes the dialog transient for an X app specified by winid. - - - - - - - - -See Also -su(1) - -More detailed user documentation is available from help:/kdesu -(either enter this URL into &konqueror;, or run -khelpcenter -help:/kdesu). - - - - -Examples -Run kfmclient as user jim, and show the &konqueror; icon in the -password dialog: -$(kde4-config --path libexec)kdesu kfmclient - - - - -Authors -&kdesu; was written by -GeertJansen jansen@kde.org -and PietroIglio -iglio@fub.it. - - - - diff --git a/doc/kdm/CMakeLists.txt b/doc/kdm/CMakeLists.txt deleted file mode 100644 index 312e2ec2..00000000 --- a/doc/kdm/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -set(confproc ${KDEBASE_WORKSPACE_SOURCE_DIR}/kdm/confproc.pl) -set(confdef ${KDEBASE_WORKSPACE_SOURCE_DIR}/kdm/config.def) -set(confdoc ${CMAKE_CURRENT_SOURCE_DIR}/kdmrc-ref.docbook) -add_custom_target(ref - COMMAND ${PERL_EXECUTABLE} -w ${confproc} --doc ${confdef} ${confdoc}) -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/kdm/index.docbook b/doc/kdm/index.docbook deleted file mode 100644 index e84ee008..00000000 --- a/doc/kdm/index.docbook +++ /dev/null @@ -1,1786 +0,0 @@ - - - - kdmrc"> - ksmserver"> - kdesktop"> - XDMCP"> - xdm"> - - - - -]> - - - -The &kdm; Handbook - - - -&Oswald.Buddenhagen; &Oswald.Buddenhagen.mail; - - - - - - - -2000 -&Neal.Crook; - - - -20022007 -&Oswald.Buddenhagen; - - - -2003 -&Lauri.Watts; - - -&FDLNotice; - -2007-12-07 -0.06.00 - - -This document describes &kdm; the &kde; Display Manager. &kdm; -is also known as the Login Manager. - - - -KDE -kdm -xdm -display manager -desktop manager -login manager - - - - - -Introduction - -&kdm; provides a graphical interface that allows you to log in to a -system. It prompts for login (username) and password, authenticates the user -and starts a session. &kdm; is superior to &xdm;, the X -Display Manager, in a number of ways. - - - - - - - -Quick Start Guide - -This is a quick start guide for users who fit the following -pattern: - - - -X is configured and works with the command -startx from the commandline. - - -Each user will generally only use a single window manager or -desktop environment, and does not change this choice very -often, or is comfortable editing a single text file in order to change -their choice. - - - -This scenario will be sufficient for many environments where a single -user or several users normally boot the computer and log into their -preferred environment. - - -Setting up a Default Session - -Create or open the file ~/.xinitrc -If you already have a working ~/.xinitrc, go to -the next step - - -If one does not already exist, add a line to the -~/.xinitrc to start your preferred window manager -or desktop environment. -For &kde; you should enter: -startkde -For other window managers or desktop environments, you should -look in their documentation for the correct command. - -Make a link as follows: -ln ~/.xinitrc ~/.xsession - - - -At this point, typing startx -on the commandline should start X, with a &kde; session. The next task is -to try &kdm;. - -As root, type -kdm at the prompt. - -You should see a login window, which is described more fully in . - -Typing your normal username and password in the fields provided, and -leaving selected as the session type should now -open a &kde; session for your user. - -If you have other users to configure, you should repeat the procedure -above for each of them. - - -This is a quick guide to getting up and running only. You probably -will want to customize &kdm; further, for example, to hide the names of the -system accounts, to allow further sessions, and much more. Please read -through the rest of this manual to find out how to do these things. - - - - - -The Login Window - - The user interface to &kdm; consists of dialog boxes. The main -dialog box contains: - - - -Widgets allowing you to authenticate. When the "classic" authentication -method is chosen, these are: - - - -A Username: field for you to enter your -username. - - - -A Password: field for you to enter your -password. - - - - - - -(Optionally) a list containing entries with the name and graphical -image of each user (for example, a digitized photograph). -Clicking a list entry is equivalent to typing the associated username -into the Username: field. - - - -(Optionally) a region to the right of or above the -authentication area which can be used to display either a static image or an -analog clock. - - - -A Login button that validates the -username/password combination and attempts to start a session of the -selected type. - - - -A Menu button that opens an action menu -with the following items: - - - -(Optionally) A Session Type item -to choose the type of session (desktop environment, window manager) to start. -See to find out -how to configure different session types. - - - -(Optionally) A Authentication Method item -to switch between different authentication methods like the classical -username+password, smartcard, biometry, &etc; The actual authenticators -are combinations of PAM modules and matching frontend -modules (conversation plugins). See -. - - - -(Optionally on local displays) A -Switch User... item to switch between local -sessions running on different virtual terminals of this computer. - - - -(Optionally on local displays) A -Restart X Server item -that terminates the currently running &X-Server;, starts a new one and -displays the login dialog again. You can use this if the display content -seems to be broken somehow. - - - -(Optionally on remote displays) A -Close Connection -item that closes the connection to the &XDMCP; server you are currently -connected to. If you got to this server through a host chooser, this will -bring you back to the chooser, otherwise it will only reset the &X-Server; -and bring up the login dialog again. - - - -(Optionally on local displays) A -Remote Login item that displays a host chooser -dialog with &XDMCP; servers one can log into remotely. - - - -(Optionally on local displays) A Console Mode -item that terminates graphical login and leaves you at the console. See - and -. - - - -(Optionally) A Shutdown... item that displays -the Shutdown dialog box. - - - - - - - -The Shutdown dialog box presents a set of -buttons that allow one of these actions to be executed: - - - -Turn Off Computer - -Shut the system down in a controlled manner, ready for -power-down. - - - -Restart Computer - -Shut the system down and reboot. For systems that use -Lilo or Grub, -an optional drop down box allows you to select a particular operating system -to be used for the reboot. - - - -Schedule... - -If this option is enabled, you may use it to enter a more complex -shutdown dialog. See for details. - - - - -Pressing the Cancel button returns to the -main &kdm; dialog box. - - - - - -Configuring &kdm; - -This chapter assumes that &kdm; is already up and running on your -system, and that you simply want to change its behavior in some way. - -When &kdm; starts up, it reads its configuration from the folder -$KDEDIR/share/config/kdm/ -(this may -be /etc/kde4/kdm/ or something else -on your system). - -The main configuration file is &kdmrc;; all other files are -referenced from there and could be stored under any name anywhere on -the system - but usually that would not make much sense for obvious -reasons (one particular exception is referencing configuration files -of an already installed &xdm; - however when a new &kdm; is installed, -it will import settings from those files if it finds an already installed -&xdm;). - -Since &kdm; must run before any user is logged in, it is not -associated with any particular user. Therefore, it is not possible to have -user-specific configuration files; all users share the common &kdmrc;. It -follows from this that the configuration of &kdm; can only be altered by -those users that have write access to -$KDEDIR/share/config/kdm/kdmrc (normally -restricted to system administrators logged in as root). - -You can view the &kdmrc; file currently in use on your system, and you -can configure &kdm; by editing this file. Alternatively, you can use the -graphical configuration tool provided by the &systemsettings; (the -Login Screen module in the System Administration category). - - -The remainder of this chapter describes configuration of &kdm; -via the &systemsettings; module, and the next -chapter describes the options available in &kdmrc; itself. If -you only need to configure for local users, the &systemsettings; module -should be sufficient for your needs. If you need to configure remote -logins, or have multiple &kdm; sessions running, you will need to read -on. - - - - - -&Thomas.Tanghus; &Thomas.Tanghus.mail; -&Steffen.Hansen; &Steffen.Hansen.mail; -&Mike.McBride; &Mike.McBride.mail; - - - -The Login Manager &systemsettings; Module - -Using this module, you can configure the &kde; graphical login -manager, &kdm;. You can change how the login screen looks, who has -access using the login manager and who can shutdown the -computer. - -All settings will be written to the configuration file -&kdmrc;, which in its original state has many comments to help you -configure &kdm;. Using this &systemsettings; module will strip these -comments from the file. All available options in &kdmrc; are covered -in . - -The options listed in this chapter are cross referenced with -their equivalents in &kdmrc;. All options available in the &systemsettings; -module are also available directly in &kdmrc; but the reverse is not -true. - -In order to organize all of these options, this module is -divided into several sections: General, -Dialog, Background, -Theme, -Shutdown, -Users and -Convenience. - -You can switch between the sections using the tabs at the top of -the window. - -You can only make changes if you run this module with superuser rights. - - -General - -First you have a drop down box to choose the language for -your login box, corresponding to setting in -&kdmrc;. - -In the Appearance section you have an option to use -&kdm; in themed mode. If Use themed greeter is checked, -the settings on the Dialog and Background -pages cannot be configured separately. - -While &kde;'s style depends on the settings of the user logged -in, the style used by &kdm; can be configured using the GUI -style: and Color scheme: options. -These correspond to the keys and in -&kdmrc; respectively. - -From the Fonts section of this page you can change the fonts used in the -login window. Only fonts available to all users are available here, not -fonts you have installed on a per user basis. - -You can select three different font styles in this section -(General:, Failure:, -Greeting:). When you click on the -Choose... button a dialog appears from which you can -select the new characteristics for the font style. - - - -The General: font is used in all other places in the -login window. - - -The Failure: font is used when a login -fails. - - -The Greeting: font is the font used for the title -(Greeting String). - - - -You can also check the box labeled Use anti-aliasing for -fonts if you want smoothed fonts in the login dialog. - - - - -Dialog - -From this page you can change the visual appearance of &kdm;, -&kde;'s graphical login manager in non themed mode. - -The Greeting: is the title of the login - screen. Setting this is especially useful if you have many servers users - may log in to. You may use various placeholders, which are described - along with the corresponding key - - in &kdmrc;. - - -You can then choose to show either the current system time, a logo or -nothing special in the login box. Make your choice in the radio buttons -labeled Logo area:. This corresponds to in &kdmrc; - -If you chose Show logo you can now choose a -logo: - - - -Drop an image file on the image button. - - -Click on the image button and select a new image from the image chooser -dialog. - - - -If you do not specify a logo, the default -$KDEDIR/share/apps/kdm/pics/kdelogo.xpm -will be displayed. - -Normally the login box is centered on the screen. -Drag the anchor to move the center of the dialog to the desired position. -Keyboard control is possible as well: Use the arrow keys or Home to center. -Note that the actual proportions of the dialog are probably different. -These correspond to the key - -in &kdmrc;. - - - - -Background - -Here you can change the desktop background which will be displayed -before a user logs in. Selecting Enable background -allows you to edit the options on this tab. - -This tab is comprised of three areas: - - - -An area for selecting background images - - -The background Preview Monitor - - -An area for determining the background color - - - - - -Preview Monitor - -This is a preview window. It will give you a sense of what to -expect with each change. - - - - -Background - -This section allows you to load a wallpaper on top of the color -gradient chosen in the section below. - -There are three choices available here: - - - -No Picture - -No picture background will be shown. The color and pattern -choices below will still take effect. - - - - -Picture - -A single picture will be used as the background for the selected -desktops. -How this picture is positioned and scaled can be fine tuned -below. - - - - -Slide show - -&kde; allows you to have an automatic slide show of wallpaper -images. To enable this option, press the Setup... -button. In the resulting dialog you may choose any -image or folder of images available on your computer, using the -Add... button to navigate your file system. -Remove will remove the currently selected -entry from the list. - -You may choose the length of time any image is displayed in the -Change picture after: box, and you may choose -Show pictures in random order if you don't want -them displayed in the order they are listed. - -Displaying wallpaper requires that the image be kept in -memory. If you are low on memory, using a small, tiled image or none -at all is recommended. - -Scaling or centering a small image still requires an image the -size of your display to be maintained in memory. - - - - - - - -Options - - - -<guilabel>Position:</guilabel> - -Centered -The image will be centered on the screen without changing the -size of the image. The background colors will be present anywhere the image -does not cover. - - -Tiled -The image will be duplicated until it fills the entire -desktop. The first image will be placed in the upper left corner of the screen, -and duplicated downward and to the right. - - -Center Tiled -The image will be duplicated until it -fills the entire desktop. The first image will be placed in the center of the -screen, and duplicated upward, downward to the right, and to the left. - - -Centered Maxpect -The image will be placed in the center of the screen. It will -be scaled to fit the desktop, but it will not change the aspect ratio of the -original image. This will provide you with an image that is not distorted. - - - -Tiled Maxpect - -The image will be placed in the corner of the screen. It will -be scaled to fit the desktop, but it will not change the aspect ratio -of the original image. This will provide you with an image that is -not distorted. If there is any space over, the image will be -duplicated to fill it. - - - -Scaled -The image will be scaled to fit the desktop. It will be -stretched to fit to all four corners. This may distort the image. - - -Centered Auto fit - -If the picture fits the desktop size, this mode works like the -centered option. If the picture is larger than the desktop then it is -scaled down to fit while keeping the aspect ratio. - - - - -Scale & Crop - -Magnify the picture without distorting it until it fills both the -width and height of the desktop (cropping the picture if necessary), and -then center it on the desktop. - - - - - - -Colors: - -The first drop down box allows you to choose the type of color, -gradient, or pattern to display under (or in place of) wallpaper. -If you are going to be using a picture as a wallpaper, you -can skip this section of the dialog box. -However, if your chosen wallpaper does not cover the entire -desktop, the chosen colors will still show in the remaining -space. - - - -Single Color -By choosing this mode, you select one color using the -first color bar, and the entire background is covered with this one -color. - - -Horizontal Gradient -By choosing this mode, you select two colors (using both color -buttons). &kde; will then start with the primary color selected with the left -button on the left edge of the screen, and slowly transform into the blend color -selected with the right button by the time it gets to the -right edge of the screen. - - -Vertical Gradient -By choosing this mode, you select two colors (using both color -buttons). &kde; will then start with the primary color selected with the left -button on the top edge of the screen, and slowly transform into the blend color -selected with the right button as it moves to the bottom of -the screen. - - -Pyramid Gradient -By choosing this mode, you select two colors (using both color -buttons). &kde; will then start with the primary color selected with the left -button in each corner of the screen, and slowly transform into the blend color -selected with the right button as it moves to the center of the -screen. - - -Pipecross Gradient -By choosing this mode, you select two colors (using both color -buttons). &kde; will then start with the primary color selected with the left -button in each corner of the screen, and slowly transform into the blend color -selected with the right button as it moves to the center of the screen. -The shape of this gradient is different than the pyramid gradient. - - -Elliptic Gradient -By choosing this mode, you select two colors (using both color -buttons). &kde; will then start with the blend color selected with the right -button in the center of the screen, and slowly -transform into the primary color selected by the left button -as it moves to the edges, in an elliptical pattern. - - - -Pattern - -The rest of the list are the names of various patterns -or textures you can choose. -For more on patterns, see -the section Adding, Removing and -Modifying Patterns. - -Select the primary color with the first color bar. If you have -chosen a pattern that requires two colors to be set the secondary -color can be set by pressing the appropriate button. - - - - - - - - - - -Blending: - -The drop down box labeled Blending: contains the -options to make a smooth transition (blend) from the wallpaper as it -changes to the background. - - -A drop down box allows you to select the blending mode. -Many of the modes are similar to blending modes for background colors. Select -your mode from the list, and the preview window shows you what it will look -like. -The Balance slider adjusts the -blending. The results can be seen immediately in the preview -window. -The Reverse roles can reverse the -role of the picture and the background for some types of -blending. - - - - - - - - - - -Advanced options -Located below the preview monitor is a button labeled -Advanced Options. - -To use an external program to determine and change the -background of &kde;, simply select Use the following program -for drawing the background. Available &kde; programs are -listed, select one to enable it. - - - - - -Adding, Removing and Modifying Wallpapers and Patterns - -There is a button under the preview monitor labeled Get -New Wallpapers that helps you fetch new wallpaper images from a -selection of popular images from the KDE-Look website. You can of course -select any image you have available to use as wallpaper, and it may be -stored in any location on your hard drive. To have a wallpaper show up in -the list automatically for all users, you should save it to the $KDEDIR/share/wallpapers -folder. - -A pattern is a picture file which &kde; uses as a template to -draw your background. The picture file provides the shapes, but &kde; -provides the colors. &kde; is packaged with several patterns, and you also -can add new patterns. - -To add a new pattern that is available to every user on your -computer, simply place the file in $KDEDIR/share/apps/kdm/patterns/. - -Copy a .desktop file from -this folder, and name it the same as your new pattern image file. -Modify the contents to suit your new pattern. - -To add a new pattern for a single user, add the files to -$KDEHOME/share/apps/kdm/patterns/. - -For best results, the pattern should be a grayscale PNG file. - - - - - - -Theme -This page consists of three sections: - -A list of installed themes, where you can select the one to be used. - -A screenshot with a preview of the selected theme and additional -information like Copyright and Description. - -Three buttons to install or remove a theme and a button to launch -the Get Hot New Stuff dialog where you can download new themes. - -The settings on this page are only available in themed mode. - - - - -Shutdown - -Allow Shutdown -Use this drop down box to choose who is allowed to shut down: - - -Nobody: No one can shutdown the computer using -&kdm;. You must be logged in, and execute a command. - - -Everybody: Everyone can shutdown the computer using -&kdm;. - -Only Root: &kdm; requires that the -root password be entered before shutting down the -computer. - - -You can independently configure who is allowed to issue a -shutdown command for the Local: and -Remote: users. - -Commands Use these text fields to -define the exact shutdown command. The -Halt: command defaults to -/sbin/halt. The Reboot: command -defaults to -/sbin/reboot. - -When Boot manager is set to Grub -or Lilo, &kdm; -will on reboot offer you options for these boot managers. Note that this -option is not available on all operating systems. - - - - -Users - -From here you can change the way users are represented in the -login window. - -Independently of the users you specify by name, you can use the -System UIDs to specify a range of valid -UIDs that are shown in the list. By default user -id's under 1000, which are often system or daemon users, and user id's -over 30000, are not shown. - -You may disable the user list in &kdm; entirely in the -Users section. You can choose from: - - - -Show list - -Only show users you have specifically not excluded in the list -alongside -If you do not check this box, no list will be shown. This is the most secure setting, since an -attacker would then have to guess a valid login name as well as a -password. It is also the preferred option if you have more than a -handful of users to list, or the list itself would become -unwieldy. - - - -Autocompletion - -If this option is checked, &kdm; will automatically complete user names while -they are typed in the line edit. - - - -Inverse selection - -Allows you to instead select a list of users that should -be shown, and all other users will not be -listed. - - - - -You can also enable the Sort users -checkbox, to have the user list sorted alphabetically. If this is -disabled, users will appear in the order they are listed in the -password file. &kdm; will also autocomplete user names if you enable the -Autocompletion option. - -If you choose to show users, then the login window will show -images (which you select), of a list of users. When someone is ready -to login, they may select their user name/image, enter their password, -and they are granted access. - -If you permit a user image, then you can configure the -User Image Source: - -Here you can specify where &kdm; will obtain the images that represent users. -System represents the global folder; these are the pictures you can set -below. User means that &kdm; should read the user's -$HOME/.face.icon file. -The two selections in the middle define the order of preference if both -sources are available. - - -If you choose not to show users, then the login window will be -more traditional. Users will need to type their username and password -to gain entrance. This is the preferred way if you have many users on -this terminal. - - - - -Convenience - -In the Convenience tab you can configure -some options that make life easier for lazy people, like automatic -login or disabling passwords. - -Please think more than twice before using these -options. Every option in the Convenience tab is -well-suited to seriously compromise your system security. Practically, -these options are only to be used in a completely non-critical -environment, ⪚ a private computer at home. - - -Automatic Login - -Automatic login will give anyone access to a certain account on -your system without doing any authentication. You can enable it using -the option Enable Auto-Login. - -You can choose the account to be used for automatic login from -the list labeled User:. - -With Lock session the automatically started session -will be locked immediately (provided it is a &kde; session). This can be used -to obtain a super-fast login restricted to one user. - - -Automatic login can be suppressed by pressing the &Shift; key immediately -after the &X-Server; switches to graphics mode and releasing it when &kdm;'s -hourglass cursor appears. - - - -<guilabel>Preselected User</guilabel> - -You can also choose which user is preselected -when &kdm; starts. The default is None, but you -can choose Previous to have &kdm; default to the -last successfully logged in user, or you can -Specify a particular user to always be selected -from the list. You can also have &kdm; set the focus to the password -field, so that when you reach the &kdm; login screen, you can type the -password immediately. - - - - -<guilabel>Password-Less Login</guilabel> - -Using this feature, you can allow certain users to login without -having to provide their password. Enable this feature using the -Enable Password-Less Logins option. - -Below this option you'll see a list of users on the system. -Enable password-less login for specific users by checking the checkbox -next to the login names. By default, this feature is disabled for -all users. - -Again, this option should only be used in a safe -environment. If you enable it on a rather public system you should -take care that only users with heavy access restrictions are granted -password-less login, ⪚ -guest. - -The Automatically login after X server crash -option allows you to skip the authentication procedure when your X -server accidentally crashed. - - - - - - - - - -&kdmrc-ref; - -&theme-ref; - - - -Configuring your system to use &kdm; - -This chapter assumes that your system is already configured to -run the &X-Window;, and that you only need to reconfigure it to -allow graphical login. - - -Setting up &kdm; - -The fundamental thing that controls whether your computer boots to a -terminal prompt (console mode) or a graphical login prompt is the default -runlevel. The runlevel is set by the program /sbin/init under the control of the -configuration file /etc/inittab. The default runlevels -used by different &UNIX; systems (and different &Linux; distributions) vary, -but if you look at /etc/inittab the start of it should -be something like this: - -# Default runlevel. The runlevels used by RHS are: -# 0 - halt (Do NOT set initdefault to this) -# 1 - Single user mode -# 2 - Multiuser, without NFS -# 3 - Full multiuser mode -# 4 - unused -# 5 - X11 -# 6 - reboot (Do NOT set initdefault to this) - -id:3:initdefault: - - -All but the last line of this extract are comments. The comments -show that runlevel 5 is used for X11 and that runlevel 3 is used for -multi-user mode without X11 (console mode). The final line specifies -that the default runlevel of the system is 3 (console mode). If your -system currently uses graphical login (for example, using &xdm;) its -default runlevel will match the runlevel specified for X11. - -The runlevel with graphical login (&xdm;) for some common &Linux; -distributions is: - - -5 for &RedHat; 3.x and later, and for &Mandrake; -4 for Slackware -3 for &SuSE;. 4.x and 5.x - - -The first step in configuring your system is to ensure that you -can start &kdm; from the command line. Once this is working, you can -change your system configuration so that &kdm; starts automatically -each time you reboot your system. - -To test &kdm;, you must first bring your system to a runlevel -that does not run &xdm;. To do so, issue a command like this: - -/sbin/init - -Instead of the number you should specify the -appropriate runlevel for console mode on your system. - -If your system uses Pluggable Authentication Modules -(PAM), which is normal with recent &Linux; and &Solaris; -systems, you should check that your PAM configuration permits -login through the service named kde. If you previously used -&xdm; successfully, you should not need to make any -changes to your PAM configuration in order to use -&kdm;. /etc/pam.conf or -/etc/pam.d/kde. Information on configuring -PAM is beyond the scope of this handbook, but -PAM comes with comprehensive documentation (try looking in -/usr/share/doc/*pam*/html/). - -Now it's time for you to test &kdm; by issuing the following -command: - -kdm - - -If you get a &kdm; login dialog and you are able to log in, -things are going well. The main thing that can go wrong here is that -the run-time linker might not find the shared &Qt; or &kde; libraries. -If you have a binary distribution of the &kde; libraries, make sure -&kdm; is installed where the libraries believe &kde; is installed and -try setting some environment variables to point to your &kde; and &Qt; -libraries. - -For example: - -export - -export - -export - -export - - - -If you are still unsuccessful, try starting &xdm; instead, to -make sure that you are not suffering from a more serious X -configuration problem. - -When you are able to start &kdm; successfully, you can start to -replace &xdm; by &kdm;. Again, this is distribution-dependent. - - - -For &RedHat;, edit /etc/inittab, look for this - line: -x:5:respawn:/usr/X11/bin/xdm -nodaemon -and replace with: -x:5:respawn:/opt/kde/bin/kdm -This tells init(8) to respawn &kdm; when the -system is in run level 5. Note that &kdm; does not need the - option. - - -For &Mandrake;, the X11 runlevel in -/etc/inittab invokes the shell script -/etc/X11/prefdm, which is set up to select from -amongst several display managers, including &kdm;. Make sure that all -the paths are correct for your installation. - - -For &SuSE;, edit /sbin/init.d/xdm to add a -first line: - -. /etc/rc.config -DISPLAYMANAGER=kdm -export DISPLAYMANAGER - -For FreeBSD, edit /etc/ttys and find -the line like this: -ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure -and edit it to this: -ttyv8 "/opt/kde/bin/kdm" xterm on secure - - -Most other distributions are a variation of one of -these. - - -At this stage, you can test &kdm; again by bringing your system -to the runlevel that should now run &kdm;. To do so, issue a command -like this: - -/sbin/init - - -Instead of the number you should specify the -appropriate runlevel for running X11 on your system. - -The final step is to edit the initdefault -entry in /etc/inittab to specify the appropriate -runlevel for X11. - -Before you make this change, ensure that you have a way -to reboot your system if a problem occurs. This might be a -rescue floppy-disk provided by your operating system -distribution or a specially-designed rescue -floppy-disk, such as tomsrtbt. Ignore this advice -at your peril. - -This usually involves changing the line: -id:3:initdefault: -to -id:5:initdefault: - -When you reboot your system, you should end up with the -graphical &kdm; login dialog. - -If this step is unsuccessful the most likely problem is that the -environment used at boot time differs from the environment that you used for -testing at the command line. If you are trying to get two versions of &kde; -to co-exist, be particularly careful that the settings you use for your -PATH and LD_LIBRARY_PATH environment variables -are consistent, and that the startup scripts are not over-riding them in -some way. - - - - - - -Supporting multiple window managers - -&kdm; detects most available window managers and desktop environments when -it is run. Installing a new one should make it automatically available in -the &kdm; main dialog's Session Type submenu. - -If you have a very new window manager, or something that &kdm; does -not support, the first thing you should check is that the executable to be -run is in the PATH and has not been renamed by the distributor -into something unexpected. - -If the case is that the session type is not supported by &kdm; yet -(maybe because it is too new), you can quite easily add it. - -The session types are defined by .desktop files -located in the directories listed in . The -last named directory contains the system-provided default session types -and is $KDEDIR/share/apps/kdm/sessions -in an installation from source. Software upgrades will typically overwrite -anything in here, so it is unwise to use it for configuration purposes. -Instead, a separate configuration directory should be listed first. It is -set to $KDEDIR/share/config/kdm/sessions -in an installation from source, but distributors often change it to something -like /etc/kde4/kdm/sessions. -You can simply add an appropriately named .desktop files here. The fields are: - -[Desktop Entry] -Encoding=UTF-8 This is fixed to and -may be omitted -Type=XSession This is fixed to and -may be omitted -Exec=executable name Passed to -eval exec in a Bourne shell -TryExec=executable name Supported -but not required -Name=name to show in the &kdm; session list - -There are also three magic types: - - - -default - - -The default session for &kdm; is normally &kde; but can be configured by the -system administrator. - - - - -custom - - -The Custom session will run the user's ~/.xsession if it exists, falling -back to the default session otherwise. - - - - -failsafe - - -Failsafe will run a very plain session, and is useful only for debugging -purposes. - - - - - -To override a session type, copy the .desktop file from the data dir -to the config dir and edit it at will. Removing the shipped session types -can be accomplished by shadowing them with .desktop files -containing Hidden=true. For the magic session types no .desktop files exist -by default, but &kdm; pretends they would, so you can override them like any -other type. - - - - -Using &kdm; for Remote Logins (&XDMCP;) - -&XDMCP; is the Open Group standard, the X Display Manager -Control Protocol. This is used to set up connections between -remote systems over the network. - -&XDMCP; is useful in multiuser situations where there are users -with workstations and a more powerful server that can provide the -resources to run multiple X sessions. For example, &XDMCP; is a good -way to reuse old computers - a Pentium or even 486 computer with 16 Mb -RAM is sufficient to run X itself, and using &XDMCP; such a computer can -run a full modern &kde; session from a server. For the server part, -once a single &kde; (or other environment) session is running, running -another one requires very few extra resources. - -However, allowing another method of login to your machine -obviously has security implications. You should run this service only -if you need to allow remote X Servers to start login sessions on your -system. Users with a single &UNIX; computer should not need to run -this. - - - - -Advanced Topics - - -Command Sockets - -This is a feature you can use to remote-control &kdm;. It's mostly -intended for use by &ksmserver; and &kdesktop; from a running session, but -other applications are possible as well. - -The sockets are &UNIX; domain sockets which live in subdirectories of the -directory specified by =. The subdir is the key to -addressing and security; the sockets all have the file name -socket and file permissions -rw-rw-rw- (0666). This is because some systems don't care -for the file permission of the socket files. - -There are two types of sockets: the global one (dmctl) and the -per-display ones (dmctl-<display>). - -The global one's subdir is owned by root, the subdirs of the per-display -ones' are owned by the user currently owning the session (root or the -logged in user). Group ownership of the subdirs can be set via FifoGroup=, -otherwise it's root. The file permissions of the subdirs are rwxr-x--- -(0750). - -The fields of a command are separated by tabs (\t), the -fields of a list are separated by spaces, literal spaces in list fields are -denoted by \s. - -The command is terminated by a newline (\n). - -The same applies to replies. The reply on success is -ok, possibly followed by the requested -information. The reply on error is an errno-style word (⪚ -perm, noent, &etc;) -followed by a longer explanation. - - -Global commands: - - -login -(now | schedule) user password -[session_arguments] - -login user at specified display. if now is -specified, a possibly running session is killed, otherwise the login is done -after the session exits. session_arguments are printf-like escaped contents -for .dmrc. Unlisted keys will default to previously saved values. - - - - -resume - -Force return from console mode, even if TTY logins are still -active. - - - - -manage display -[display_class -[auth_name auth_data]] - -Start managing the named foreign display. -display_class, if specified and non-empty, -will be used for configuration matching; see . - -auth_name and auth_data -need to be passed if the display requires X authorization. The format is -the same as the 2nd and 3rd column of the xauth list -output. - - - - -unmanage display - -Stop managing the named foreign display. - - - - - - -Per-display commands: - -lock - -The display is marked as locked. If the &X-Server; crashes in this -state, no auto-relogin will be performed even if the option is on. - - - -unlock - -Reverse the effect of lock, and re-enable -auto-relogin. - - - -suicide - -The currently running session is forcibly terminated. No auto-relogin -is attempted, but a scheduled "login" command will be executed. - - - - - -Commands for all sockets - - -caps - -Returns a list of this socket's capabilities: - - - -kdm - -identifies &kdm;, in case some other DM implements this protocol, -too - - - -list, lock, -suicide, login, -resume, manage - - -The respective command is supported - - - -bootoptions - -The listbootoptions command and the - to shutdown are supported - - - -shutdown <list> - -shutdown is supported and allowed for the listed -users (a comma separated list.) * means all -authenticated users. - - - -nuke <list> - -Forced shutdown may be performed by the listed users. - - - -nuke - -Forced shutdown may be performed by everybody - - - -reserve <number> - -Reserve displays are configured, and number -are available at this time - - - - - - - - -list [all | -alllocal] - -Return a list of running sessions. By default all active sessions are -listed (this is useful for a shutdown warning). If all -is specified, passive sessions are listed as well. -If alllocal is specified, passive -sessions are listed as well, but all incoming remote sessions are -skipped (this is useful for a fast user switching agent). -Each session entry is a comma separated tuple of: - -Display or TTY name -VT name for local sessions, remote host name prefixed by -@ for remote TTY sessions, otherwise empty -Logged in user's name, empty for passive sessions and -outgoing remote sessions (local chooser mode) -Session type for active local sessions, remote hostname for -outgoing remote sessions, empty for passive sessions. -A Flag field: -* for the display belonging -to the requesting socket. -! for sessions that cannot be killed by the -requesting socket. -t for TTY sessions. - - - -New fields may be added in the future. - - - - -reserve - -Start a reserve login screen. If nobody logs in within some -time, the display is removed again. When the session on the display -exits, the display is removed, too. -Permitted only on sockets of local displays and the global -socket. - - - - -activate -(vt|display) - -Switch to a particular VT (virtual terminal). The VT may be specified -either directly (⪚ vt3) or by a display using it -(eg; :2). -Permitted only on sockets of local displays and the global -socket. - - - - -listbootoptions - -List available boot options. -The return value contains these tokens: - - -A list of boot options (as shown in &kdm; itself). - - -The default boot option. - - -The current boot option. - - -The default and current option are zero-based indices into the list -of boot options. If either one is unset or not determinable, it is -1. - - - - -shutdown (reboot | -halt) -[=bootchoice] -(ask|trynow|forcenow|schedule|start -(-1|end -(force|forcemy|cancel)))) - -Request a system shutdown, either a reboot or a halt/poweroff. -An OS choice for the next boot may be specified from the list returned -by listbootoptions -Shutdowns requested from per-display sockets are executed when the -current session on that display exits. Such a request may pop up a dialog -asking for confirmation and/or authentication -start is the time for which the shutdown is -scheduled. If it starts with a plus-sign, the current time is added. Zero -means immediately. -end is the latest time at which the shutdown -should be performed if active sessions are still running. If it starts with -a plus-sign, the start time is added. -1 means wait infinitely. If end is -through and active sessions are still running, &kdm; can do one of the -following: - -cancel - give up the -shutdown -force - shut down -nonetheless -forcemy - shut down nonetheless if -all active sessions belong to the requesting user. -Only for per-display sockets. - -start and end are -specified in seconds since the &UNIX; epoch. -trynow is a synonym for 0 0 -cancel, forcenow for 0 0 -force and schedule for 0 --1. -ask attempts an immediate shutdown and -interacts with the user if active sessions are still running. Only for -per-display sockets. - - - - -shutdown cancel -[local|global} - -Cancel a scheduled shutdown. The global socket always cancels the -currently pending shutdown, while per-display sockets default to cancelling -their queued request. - - - - -shutdown status - -Return a list with information about shutdowns. -The entries are a comma-separated tuples of: - - -(global|local) - -pending vs. queued shutdown. A local entry can be returned only by a -per-display socket. - -(halt|reboot) -start -end -("ask"|"force"|"forcemy"|"cancel") -Numeric user ID of the requesting user, -1 for the global -socket. -The next boot OS choice or "-" for none. - -New fields might be added later - - - - - -There are two ways of using the sockets: - - -Connecting them directly. FifoDir is exported as -$DM_CONTROL; the name of per-display sockets can be derived -from $DISPLAY. - - -By using the kdmctl command (⪚ from within a -shell script). Try kdmctl to find out -more. - - - -Here is an example bash script reboot into FreeBSD: - -if kdmctl | grep -q shutdown; then - IFS=$'\t' - set -- `kdmctl listbootoptions` - if [ "$1" = ok ]; then - fbsd=$(echo "$2" | tr ' ' '\n' | sed -ne 's,\\s, ,g;/freebsd/I{p;q}') - if [ -n "$fbsd" ]; then - kdmctl shutdown reboot "=$fbsd" ask > /dev/null - else - echo "FreeBSD boot unavailable." - fi - else - echo "Boot options unavailable." - fi -else - echo "Cannot reboot system." -fi - - - - - -Other sources of information - -Since &kdm; is descended from &xdm;, the xdm man page may provide useful background -information. For X-related problems try the man pages X and startx. If you have -questions about &kdm; that are not answered by this handbook, take advantage of -the fact the &kdm; is provided under the terms of the &GNU; -General Public License: look at the source code. - - - - - -Credits and License - -&kdm; is derived from, and includes code from, -&xdm; © Keith Packard, MIT X Consortium. - -&kdm; 0.1 was written by &Matthias.Ettrich;. Later versions till &kde; -2.0.x were written by &Steffen.Hansen;. Some new features for &kde; 2.1.x and -a major rewrite for &kde; 2.2.x made by &Oswald.Buddenhagen;. - -Other parts of the &kdm; code are copyright by the authors, and -licensed under the terms of the &GNU; -GPL. Anyone is allowed to change &kdm; and redistribute the result -as long as the names of the authors are mentioned. - -&kdm; requires the &Qt; library, which is copyright Troll Tech AS. - -Documentation contributors: - - -Documentation written by &Steffen.Hansen; -&Steffen.Hansen.mail; - -Documentation extended by Gregor -Zumsteinzumstein@ssd.ethz.ch. Last update August 9, -1998 - -Documentation revised for &kde; 2 by &Neal.Crook; -&Neal.Crook.mail;. Last update August 6, -2000 - -Documentation extended and revised for &kde; 2.2 and 4.0 by -&Oswald.Buddenhagen; &Oswald.Buddenhagen.mail;. Last update December 7, -2007 - - - -Documentation copyright &Steffen.Hansen;, Gregor Zumstein, &Neal.Crook; -and &Oswald.Buddenhagen;. -This document also includes large parts of the &xdm; man page, -which is © Keith Packard. -The theme format documentation is heavily based on the GDM manual, -which is © Martin K. Petersen, George Lebl, &RedHat;, Inc. and -Sun Microsystems, Inc. - - - -&underFDL; - - - - -Glossary - - -greeter -The greeter is the login dialog, &ie; the part of &kdm; -which the user sees. - - - - -entropy -The entropy of a system is the measure of its -unpredictability. This is used during the generation of random numbers. - - - - - - - diff --git a/doc/kdm/kdmrc-ref.docbook b/doc/kdm/kdmrc-ref.docbook deleted file mode 100644 index e83f8743..00000000 --- a/doc/kdm/kdmrc-ref.docbook +++ /dev/null @@ -1,2402 +0,0 @@ - - - -The Files &kdm; Uses for Configuration - -This chapter documents the files that control &kdm;'s behavior. -Some of this can be also controlled from the &systemsettings; module, but -not all. - - -&kdmrc; - The &kdm; master configuration file - -The basic format of the file is INI-like. -Options are key/value pairs, placed in sections. -Everything in the file is case sensitive. -Syntactic errors and unrecognized key/section identifiers cause &kdm; to -issue non-fatal error messages. - -Lines beginning with # are comments; empty lines -are ignored as well. - -Sections are denoted by -[Name of Section]. - - -You can configure every X-display individually. -Every display has a display name, which consists of a host name -(which is empty for local displays specified in -or ), a colon, and a display number. -Additionally, a display belongs to a -display class (which can be ignored in most cases). - -Sections with display-specific settings have the formal syntax -[X- host [ : number [ _ class ] ] - sub-section ] - -All sections with the same sub-section -make up a section class. - -You can use the wildcard * (match any) for -host, number, -and class. You may omit trailing components; -they are assumed to be * then. The host part may be a -domain specification like .inf.tu-dresden.de -or the wildcard + (match non-empty). - -From which section a setting is actually taken is determined by -these rules: - - - -An exact match takes precedence over a partial match (for the -host part), which in turn takes precedence over a wildcard -(+ taking precendence over *). - - - -Precedence decreases from left to right for equally exact matches. - - - - - -Example: display name myhost.foo:0, class dpy - - - -[X-myhost.foo:0_dpy] precedes - - -[X-myhost.foo:0_*] (same as [X-myhost.foo:0]) precedes - - -[X-myhost.foo:*_dpy] precedes - - -[X-myhost.foo:*_*] (same as [X-myhost.foo]) precedes - - -[X-.foo:*_*] (same as [X-.foo]) precedes - - -[X-+:0_dpy] precedes - - -[X-*:0_dpy] precedes - - -[X-*:0_*] (same as [X-*:0]) precedes - - -[X-*:*_*] (same as [X-*]). - - -These sections do not match this display: -[X-hishost], [X-myhost.foo:0_dec], [X-*:1], [X-:*] - - - - - - - -Common sections are [X-*] (all displays), [X-:*] (all local displays) -and [X-:0] (the first local display). - -The format for all keys is - = value. -Keys are only valid in the section class they are defined for. -Some keys do not apply to particular displays, in which case they are ignored. - - -If a setting is not found in any matching section, the default -is used. - -Special characters need to be backslash-escaped (leading and trailing -spaces (\s), tab (\t), linefeed -(\n), carriage return (\r) and the -backslash itself (\\)). -In lists, fields are separated with commas without whitespace in between. - -Some command strings are subject to simplified sh-style word splitting: -single quotes (') and double quotes (") -have the usual meaning; the backslash quotes everything (not only special -characters). Note that the backslashes need to be doubled because of the -two levels of quoting. - -A pristine &kdmrc; is very thoroughly commented. -All comments will be lost if you change this file with the -&systemsettings; frontend. - - - -The [General] section of &kdmrc; - - -This section contains global options that do not fit into any specific section. - - - - - - - - -This option exists solely for the purpose of clean automatic upgrades. -Do not change it, you may interfere with future -upgrades and this could result in &kdm; failing to run. - - - - - - - - -List of displays (&X-Server;s) permanently managed by &kdm;. Displays with a -hostname are foreign displays which are expected to be already running, -the others are local displays for which &kdm; starts an own &X-Server;; -see . Each display may belong to a display class; -append it to the display name separated by an underscore. -See for the details. - -The default is :0. - - - - - - - -List of on-demand displays. See for syntax. - -Empty by default. - - - - - - - -List of Virtual Terminals to allocate to &X-Server;s. For negative numbers the -absolute value is used, and the VT will be allocated only -if the kernel says it is free. If &kdm; exhausts this list, it will allocate -free VTs greater than the absolute value of the last entry -in this list. -Currently Linux only. - -Empty by default. - - - - - - - -This option is for operating systems (OSs) with support -for virtual terminals (VTs), by both &kdm; and the -OSs itself. -Currently this applies only to Linux. - -When &kdm; switches to console mode, it starts monitoring all -TTY lines listed here (without the leading -/dev/). -If none of them is active for some time, &kdm; switches back to the X login. - -Empty by default. - - - - - - - -The filename specified will be created to contain an ASCII representation -of the process ID of the main &kdm; process; the PID will not be stored -if the filename is empty. - -Empty by default. - - - - - - - -This option controls whether &kdm; uses file locking to keep multiple -display managers from running onto each other. - -The default is true. - - - - - - - -This names a directory under which &kdm; stores &X-Server; authorization -files while initializing the session. &kdm; expects the system to clean up -this directory from stale files on reboot. - -The authorization file to be used for a particular display can be -specified with the option in [X-*-Core]. - -The default is /var/run/xauth. - - - - - - - -This boolean controls whether &kdm; automatically re-reads its -configuration files if it finds them to have changed. - -The default is true. - - - - - - - -Additional environment variables &kdm; should pass on to all programs it runs. -LD_LIBRARY_PATH and XCURSOR_THEME are good candidates; -otherwise, it should not be necessary very often. - -Empty by default. - - - - - - - -If the system has no native entropy source like /dev/urandom (see -) and no entropy daemon like EGD (see - and ) is running, -&kdm; will fall back to its own pseudo-random number generator -that will, among other things, successively checksum parts of this file -(which, obviously, should change frequently). - -This option does not exist on Linux and various BSDs. - -The default is /dev/mem. - - - - - - - -If the system has no native entropy source like /dev/urandom (see -), read random data from a Pseudo-Random -Number Generator Daemon, -like EGD (http://egd.sourceforge.net) via this UNIX domain socket. - -This option does not exist on Linux and various BSDs. - -Empty by default. - - - - - - - -Same as , only use a TCP socket on localhost. - - - - - - - - -The path to a character device which &kdm; should read random data from. -Empty means to use the system's preferred entropy device if there is one. - -This option does not exist on OpenBSD, as it uses the arc4_random -function instead. - -Empty by default. - - - - - - - -The directory in which the command sockets should -be created; make it empty to disable them. - -The default is /var/run/xdmctl. - - - - - - - -The group to which the global command socket should belong; -can be either a name or a numerical ID. - - - - - - - - -The user the greeter should run as. Empty results in root. -Consider the impact on when setting it. - -Empty by default. - - - - - - - -The directory in which &kdm; should store persistent working data; such data -is, for example, the previous user that logged in on a particular display. - -The default is /var/lib/kdm. - - - - - - - -The directory in which &kdm; should store users' .dmrc files. This is only -needed if the home directories are not readable before actually logging in -(like with AFS). - -Empty by default. - - - - - - - - -The [Xdmcp] section of &kdmrc; - - -This section contains options that control &kdm;'s handling of -&XDMCP; requests. - - - - - - - - -Whether &kdm; should listen to incoming &XDMCP; requests. - -The default is true. - - - - - - - -This indicates the UDP port number which &kdm; uses to listen for incoming -&XDMCP; requests. Unless you need to debug the system, leave this with its -default value. - -The default is 177. - - - - - - - -XDM-AUTHENTICATION-1 style &XDMCP; authentication requires a private -key to be shared between &kdm; and the terminal. This option specifies -the file containing those values. Each entry in the file consists of a -display name and the shared key. - -Empty by default. - - - - - - - -To prevent unauthorized &XDMCP; service and to allow forwarding of &XDMCP; -IndirectQuery requests, this file contains a database of hostnames which -are either allowed direct access to this machine, or have a list of hosts -to which queries should be forwarded to. The format of this file is -described in . - -The default is ${kde_confdir}/kdm/Xaccess. - - - - - - - -Number of seconds to wait for the display to respond after the user has -selected a host from the chooser. If the display sends an &XDMCP; -IndirectQuery within this time, the request is forwarded to the chosen -host; otherwise, it is assumed to be from a new session and the chooser -is offered again. - -The default is 15. - - - - - - - -When computing the display name for &XDMCP; clients, the name resolver will -typically create a fully qualified host name for the terminal. As this is -sometimes confusing, &kdm; will remove the domain name portion of the host -name if it is the same as the domain name of the local host when this option -is enabled. - -The default is true. - - - - - - - -Use the numeric IP address of the incoming connection on multihomed hosts -instead of the host name. This is to avoid trying to connect on the wrong -interface which might be down at this time. - -The default is false. - - - - - - - -This specifies a program which is run (as -root) when an &XDMCP; -DirectQuery or BroadcastQuery is received and this host is configured -to offer &XDMCP; display management. The output of this program may be -displayed in a chooser window. If no program is specified, the string -Willing to manage is sent. - -Empty by default. - - - - - - - - -The [Shutdown] section of &kdmrc; - - -This section contains global options concerning system shutdown. - - - - - - - - -The command (subject to word splitting) to run to halt/poweroff the system. - -The default is something reasonable for the system on which &kdm; was built, like -/sbin/shutdown  now. - - - - - - - - -The command (subject to word splitting) to run to reboot the system. - -The default is something reasonable for the system &kdm; on which was built, like -/sbin/shutdown  now. - - - - - - - - -Whether it is allowed to shut down the system via the global command socket. - -The default is false. - - - - - - - -Whether it is allowed to abort active sessions when shutting down the -system via the global command socket. - -This will have no effect unless is enabled. - -The default is true. - - - - - - - -The boot manager &kdm; should use for offering boot options in the -shutdown dialog. - - - -None -no boot manager - - -Grub -Grub boot manager - - -Grub2 -Grub2 boot manager - - -Lilo -Lilo boot manager (Linux on i386 & x86-64 only) - - -The default is None. - - - - - - - - -The [X-*-Core] section class of &kdmrc; - - -This section class contains options concerning the configuration -of the &kdm; backend (core). - - - - - - - - -See . - -The default is 15. - - - - - - - -See . - -The default is 120. - - - - - - - -These options control the behavior of &kdm; when attempting to open a -connection to an &X-Server;. is the length -of the pause (in seconds) between successive attempts, - is the number of attempts to make and - is the amount of time to spend on a -connection attempt. After attempts have been -made, or if seconds elapse in any particular -connection attempt, the start attempt is considered failed. - -The default is 5. - - - - - - - -How many times &kdm; should attempt to start a foreign -display listed in before giving up -and disabling it. -Local displays are attempted only once, and &XDMCP; displays are retried -indefinitely by the client (unless the option -was given to the &X-Server;). - -The default is 4. - - - - - - - -How many times &kdm; should attempt to start up a local &X-Server;. -Starting up includes executing it and waiting for it to come up. - -The default is 1. - - - - - - - -How many seconds &kdm; should wait for a local &X-Server; to come up. - -The default is 30. - - - - - - - -The command line to start the &X-Server;, without display number and VT spec. -Note that with some &X-Server;s (in particular, OpenSolaris') it is necessary -to put most additional arguments into and - even if they are the same for both. -This string is subject to word splitting. - -The default is something reasonable for the system on which &kdm; was built, -like /usr/X11R6/bin/X. - - - - - - - - -Additional arguments for the &X-Server;s for local sessions. -This string is subject to word splitting. - -Empty by default. - - - - - - - -Additional arguments for the &X-Server;s for remote sessions. -This string is subject to word splitting. - -Empty by default. - - - - - - - -The VT the &X-Server; should run on. - should be used instead of this option. -Leave it zero to let &kdm; assign a VT automatically. -Set it to -1 to avoid assigning a VT -alltogether - this is required for setups with multiple physical consoles. -Currently Linux only. - - - - - - - - -This option is for OSs without support for -VTs, either by &kdm; or the OS itself. -Currently this applies to all OSs but Linux. - -When &kdm; switches to console mode, it starts monitoring this -TTY line (specified without the leading -/dev/) for activity. If the line is not used for some time, -&kdm; switches back to the X login. - -Empty by default. - - - - - - - -The user the &X-Server; should run as. Empty results in root. - -Empty by default. - - - - - - - -See . - -The default is 5. - - - - - - - -To discover when remote displays disappear, &kdm; -regularly pings them. - specifies the time (in minutes) between the -pings and specifies the maximum amount of -time (in minutes) to wait for the terminal to respond to the request. If -the terminal does not respond, the session is declared dead and terminated. - -If you frequently use X terminals which can become isolated from -the managing host, you may wish to increase the timeout. The only worry -is that sessions will continue to exist after the terminal has been -accidentally disabled. - -The default is 5. - - - - - - - -Whether &kdm; should restart the local &X-Server; after session exit instead -of resetting it. Use this if the &X-Server; leaks memory or crashes the system -on reset attempts. - -The default is false. - - - - - - - -Controls whether &kdm; generates and uses authorization for -local &X-Server; connections. -For &XDMCP; displays the authorization requested by the display is used; -foreign non-&XDMCP; displays do not support authorization at all. - -The default is true. - - - - - - - -If is true, use the authorization mechanisms -listed herein. The MIT-MAGIC-COOKIE-1 authorization is always available; -XDM-AUTHORIZATION-1, SUN-DES-1 and MIT-KERBEROS-5 might be available as well, -depending on the build configuration. - -The default is DEF_AUTH_NAME. - - - - - - - -Some old &X-Server;s re-read the authorization file -at &X-Server; reset time, instead of when checking the initial connection. -As &kdm; generates the authorization information just before connecting to -the display, an old &X-Server; would not get up-to-date authorization -information. This option causes &kdm; to send SIGHUP to the &X-Server; -after setting up the file, causing an additional &X-Server; reset to occur, -during which time the new authorization information will be read. - -The default is false. - - - - - - - -This file is used to communicate the authorization data from &kdm; to -the &X-Server;, using the &X-Server; command line -option. It should be kept in a directory which is not world-writable -as it could easily be removed, disabling the authorization mechanism in -the &X-Server;. If not specified, a random name is generated from - and the name of the display. - -Empty by default. - - - - - - - -This option specifies the name of the file to be loaded by -xrdb as the resource database onto the root window -of screen 0 of the display. KDE programs generally do not use -X-resources, so this option is only needed if the -program needs some X-resources. - -Empty by default. - - - - - - - -The xrdb program to use to read the X-resources file -specified in . -The command is subject to word splitting. - -The default is ${x_bindir}/xrdb. - - - - - - - -This string is subject to word splitting. -It specifies a program which is run (as -root) before offering the -greeter window. This may be used to change the appearance of the screen -around the greeter window or to put up other windows (e.g., you may want -to run xconsole here). -Usually, a script named Xsetup is used here. -See . - -Empty by default. - - - - - - - -This string is subject to word splitting. -It specifies a program which is run (as -root) after the user -authentication process succeeds. -Usually, a script named Xstartup is used here. -See . - -Empty by default. - - - - - - - -This string is subject to word splitting. -It specifies a program which is run (as -root) after the session -terminates. -Usually, a script named Xreset is used here. -See . - -Empty by default. - - - - - - - -This string is subject to word splitting. -It specifies the session program to be executed (as the user owning -the session). -Usually, a script named Xsession is used here. -See . - -The default is ${x_bindir}/xterm -ls -T. - - - - - - - -If the program fails to execute, &kdm; will -fall back to this program. This program is executed with no arguments, -but executes using the same environment variables as the session would -have had (see ). - -The default is ${x_bindir}/xterm. - - - - - - - -The PATH environment variable for -non-root s. - -The default depends on the system &kdm; was built on. - - - - - - - - -The PATH environment variable for all programs but -non-root -s. Note that it is good practice not to include -. (the current directory) into this entry. - -The default depends on the system &kdm; was built on. - - - - - - - - -The SHELL environment variable for all programs but the -. - -The default is /bin/sh. - - - - - - - -When &kdm; is unable to write to the usual user authorization file -($HOME/.Xauthority), it creates a unique file name in this -directory and points the environment variable XAUTHORITY -at the created file. - -The default is /tmp. - - - - - - - -If true, will be used unconditionally. - -The default is false. - - - - - - - -If enabled, &kdm; will automatically restart a session after an &X-Server; -crash (or if it is killed by Alt-Ctrl-BackSpace). Note that enabling this -feature opens a security hole: a secured display lock can be circumvented -(unless &kde;'s built-in screen locker is used). - -The default is false. - - - - - - - -If disabled, do not allow root -(and any other user with UID = 0) to log in directly. - -The default is true. - - - - - - - -If disabled, only users that have passwords assigned can log in. - -The default is true. - - - - - - - -Who is allowed to shut down the system. This applies both to the -greeter and to the command sockets. - - - -None -no Shutdown... menu entry is shown at all - - -Root -the root password must be entered to shut down - - -All -everybody can shut down the machine - - -The default is All. - - - - - - - -Who is allowed to abort active sessions when shutting down. - - - -None -no forced shutdown is allowed at all - - -Root -the root password must be entered to shut down forcibly - - -All -everybody can shut down the machine forcibly - - -The default is All. - - - - - - - -The default choice for the shutdown condition/timing. - - - -Schedule -shut down after all active sessions exit (possibly at once) - - -TryNow -shut down, if no active sessions are open; otherwise, do nothing - - -ForceNow -shut down unconditionally - - -The default is Schedule. - - - - - - - -How to offer shutdown scheduling options: - - - -Never -not at all - - -Optional -as a button in the simple shutdown dialogs - - -Always -instead of the simple shutdown dialogs - - -The default is Never. - - - - - - - -Enable password-less logins on this display. Use with extreme care! - -The default is false. - - - - - - - -The users that do not need to provide a password to log in. -Items which are prefixed with @ represent all users in the -user group named by that item. -* means all users but -root -(and any other user with UID = 0). -Never list root. - -Empty by default. - - - - - - - -Enable automatic login. Use with extreme care! - -The default is false. - - - - - - - -If true, auto-login after logout. If false, auto-login is performed only -when a display session starts up. - -The default is false. - - - - - - - -The delay in seconds before automatic login kicks in. This is also known as -Timed Login. - - - - - - - - -The user to log in automatically. Never specify root! - -Empty by default. - - - - - - - -The password for the user to log in automatically. This is not required -unless the user is logged into a NIS or Kerberos domain. If you use this -option, you should chmod  kdmrc for obvious reasons. - -Empty by default. - - - - - - - -Immediately lock the automatically started session. This works only with -KDE sessions. - -The default is false. - - - - - - - -A list of directories containing session type definitions. -Ordered by falling priority. - -The default is ${kde_datadir}/kdm/sessions. - - - - - - - -The file (relative to the user's home directory) to redirect the session -output to. - -The following character pairs are replaced by their value: - - -%d -name of the current display - - -%u -login name of the current user - - -%r -empty at first. See below. - - -%% -a single % - - -When the constructed filename cannot be used safely and the specification -contains -%stuffr, -other names will be tried - this time expanding -%stuffr -to stuff followed by a random number. - -The default is .xsession-errors. - - - - - - - -Fallback when cannot be used. The same expansions are -supported. Do not use relative paths here. - -The default is /tmp/xerr-%u-%d%-r. - - - - - - - -Specify whether &kdm;'s built-in utmp/wtmp/lastlog registration should -be used. If it is not, the tool sessreg should be used -in the and scripts, or, -alternatively, the pam_lastlog module should be used on -PAM-enabled systems. - -The default is true. - - - - - - - - -The [X-*-Greeter] section class of &kdmrc; - - -This section class contains options concerning the configuration -of the &kdm; frontend (greeter). - - - - - - - - -Specify the widget style for the greeter. Empty means to use the -built-in default which currently is Oxygen-air. - -Empty by default. - - - - - - - -Specify the widget color scheme for the greeter. Empty means to use the -built-in default which currently is Oxygen-air. - -Empty by default. - - - - - - - -What should be shown in the greeter righthand of the input lines (if - is disabled) or above them (if - is enabled): - - - -None -nothing - - -Logo -the image specified by - - -Clock -a neat analog clock - - -The default is Clock. - - - - - - - -The image to show in the greeter if is -Logo. - -Empty by default. - - - - - - - -The relative coordinates (percentages of the screen size; X,Y) at which -the center of the greeter is put. &kdm; aligns the greeter to the edges -of the screen it would cross otherwise. - -The default is 50,50. - - - - - - - -The screen the greeter should be displayed on in multi-headed and Xinerama -setups. The numbering starts with 0. For Xinerama, it corresponds to the -listing order in the active ServerLayout section of XF86Config; -1 means -to use the upper-left screen, -2 means to use the upper-right screen. - - - - - - - - -The headline in the greeter. An empty greeting means none at all. - -The following character pairs are replaced by their value: - - -%d -name of the current display - - -%h -local host name, possibly with the - domain name - - -%n -local node name, most probably the host name without the - domain name - - -%s -operating system - - -%r -operating system version - - -%m -machine (hardware) type - - -%% -a single % - - - -The default is Welcome to %s at %n. - - - - - - - -Whether the fonts used in the greeter should be antialiased. - -The default is false. - - - - - - - -The font for the greeter headline. The value is encoded. - -The default is Serif 20pt bold. - - - - - - - -The normal font used in the greeter. The value is encoded. - -The default is Sans Serif 10pt. - - - - - - - -The font used for the Login Failed message. The value is encoded. - -The default is Sans Serif 10pt bold. - - - - - - - -What to do with the Num Lock modifier for the time the greeter is running: - - - -Off -turn off - - -On -turn on - - -Keep -do not change the state - - -The default is Keep. - - - - - - - -Language and locale to use in the greeter, encoded like $LANGUAGE. -If empty, the settings from the environment are used. - -Empty by default. - - - - - - - -Enable autocompletion in the username line edit. - -The default is false. - - - - - - - -Show a user list with unix login names, real names, and images in the greeter. - -The default is true. - - - - - - - -This option controls which users will be shown in the user view -() and/or offered for autocompletion -(). -If it is Selected, contains -the final list of users. -If it is NotHidden, the initial user list contains all -users found on the system. Users contained in are -removed from the list, just like all users with a UID greater than specified -in and users with a non-zero UID less than -specified in . -Items in and -which are prefixed with @ represent all users in the -user group named by that item. -Finally, the user list will be sorted alphabetically, if - is enabled. - -The default is NotHidden. - - - - - - - -See . - -Empty by default. - - - - - - - -See . - -Empty by default. - - - - - - - -See . - - - - - - - - -See . - -The default is 65535. - - - - - - - -See . - -The default is true. - - - - - - - -If is enabled, this specifies where &kdm; gets the -images from: - - - -AdminOnly -from <>/$USER.face[.icon] - - -PreferAdmin -prefer <>, fallback on $HOME - - -PreferUser -... and the other way round - - -UserOnly -from the user's $HOME/.face[.icon] - - - - -The images can be in any format Qt recognizes, but the filename -must match &kdm;'s expectations: .face.icon should be a -48x48 icon, while .face should be a 300x300 image. -Currently the big image is used only as a fallback and is scaled down, -but in the future it might be displayed full-size in the logo area or a -tooltip. -To be accessible to &kdm;, the images must be world readable and their -parent directories must be world executable. - -The default is AdminOnly. - - - - - - - -See . - -The default is ${kde_datadir}/kdm/faces. - - - - - - - -Specify, if/which user should be preselected for log in: - - - -None -do not preselect any user - - -Previous -the user which successfully logged in last time - - -Default -the user specified in the option - - - - -If is enabled and a user was preselected, -the cursor is placed in the password input field automatically. - -Enabling user preselection can be considered a security hole, -as it presents a valid login name to a potential attacker, so he -only needs to guess the password. On the other hand, -one could set to a fake login name. - - -The default is None. - - - - - - - -See . - -Empty by default. - - - - - - - -See . - -The default is false. - - - - - - - -If this is true, the entered password is echoed as bullets. Otherwise, -no feedback is given at all. - -The default is true. - - - - - - - -If enabled, &kdm; will automatically start the krootimage -program to set up the background; otherwise, the -program is responsible for the background. - -The default is true. - - - - - - - -The configuration file to be used by krootimage. -It contains a section named [Desktop0] like -kdesktoprc does. Its options are not described -herein; guess their meanings or use the control center. - -The default is ${kde_confdir}/kdm/backgroundrc. - - - - - - - -To improve security, the greeter may grab mouse and keyboard input so -no other X clients can eavesdrop it. However, the X authorization -mechanism will usually prevent malicious X clients from connecting -in the first place. Consequently, enabling grabs for local displays -is pointless and only marginally improves security for remote displays. - -The mouse grab will make on-screen keyboards unusable. - - - - - -Never -never grab - - -IfNoAuth -grab if the display requires no X authorization - - -Always -always grab - - -The default is IfNoAuth. - - - - - - - -To improve security, the greeter grabs the &X-Server; and then the input -when it starts up. This option specifies if the &X-Server; grab should be held -for the duration of the name/password reading. When disabled, the &X-Server; -is ungrabbed after the input grabs succeed; otherwise, the &X-Server; is -grabbed until just before the session begins. - -Enabling this option disables and -. - - -The default is false. - - - - - - - -This option specifies the maximum time &kdm; will wait for the grabs to -succeed. A grab may fail if some other X-client has the &X-Server; or the -keyboard grabbed, or possibly if the network latencies are very high. You -should be cautious when raising the timeout, as a user can be spoofed by -a look-alike window on the display. If a grab fails, &kdm; kills and -restarts the &X-Server; (if possible) and the session. - -The default is 3. - - - - - - - -Warn, if a display has no X-authorization. This will be the case if - - - the authorization file for a local &X-Server; could not be created, - - - a remote display from &XDMCP; did not request any authorization or - - - the display is a foreign display specified in - . - - - -The default is true. - - - - - - - -Specify whether the greeter of local displays should start up in host chooser -(remote) or login (local) mode and whether it is allowed to switch to the -other mode. - - - -LocalOnly -only local login possible - - -DefaultLocal -start up in local mode, but allow switching to remote mode - - -DefaultRemote -... and the other way round - - -RemoteOnly -only choice of remote host possible - - -The default is LocalOnly. - - - - - - - -A list of hosts to be automatically added to the remote login menu. -The special name * means broadcast. -Has no effect if is LocalOnly. - -The default is *. - - - - - - - -Use this number as a random seed when forging saved session types, etc. of -unknown users. This is used to avoid telling an attacker about existing users -by reverse conclusion. This value should be random but constant across the -login domain. - - - - - - - - -Enable &kdm;'s built-in xconsole. -Note that this can be enabled for only one display at a time. -This option is available only if &kdm; was configured -with . - -The default is false. - - - - - - - -The data source for &kdm;'s built-in xconsole. -If empty, a console log redirection is requested from -/dev/console. -Has no effect if is disabled. - -Empty by default. - - - - - - - -Specify conversation plugins for the login dialog; the first in the list -is selected initially. -Each plugin can be specified as a base name (which expands to -$kde_modulesdir/kgreet_base) -or as a full pathname. - -Conversation plugins are modules for the greeter which obtain authentication -data from the user. Currently only the classic plugin is -shipped with &kde;; it presents the well-known username and password form. - -The default is classic. - - - - - - - -Same as , but for the shutdown dialog. - -The default is classic. - - - - - - - -A list of options of the form -Key=Value. -The conversation plugins can query these settings; it is up to them what -possible keys are. - -Empty by default. - - - - - - - -Show the Console Login action in the greeter (if / -is configured). - -The default is true. - - - - - - - -Show the Restart X Server/Close Connection action in the greeter. - -The default is true. - - - - - - - -A program to run while the greeter is visible. It is supposed to preload -as much as possible of the session that is going to be started (most -probably). - -Empty by default. - - - - - - - -Whether the greeter should be themed. -Note that the themed greeter is challenged accessibility-wise, and themes -may lack support for features like a user list or alternative -authentication methods. - -The default is false. - - - - - - - -The theme to use for the greeter. Can point to either a directory or an XML -file. - -Empty by default. - - - - - - - -Enable the Alt-Ctrl-D shortcut to toggle greeter theme debugging. - -The default is false. - - - - - - - - - - - -Specifying permanent &X-Server;s - -Each entry in the list indicates a -display which should constantly be -managed and which is not using &XDMCP;. This method is typically used only for -local &X-Server;s that are started by &kdm;, but &kdm; can manage externally -started (foreign) &X-Server;s as well, may they run on the -local machine or rather remotely. - -The formal syntax of a specification is - -display name [_display class] - -for all &X-Server;s. Foreign displays differ in having -a host name in the display name, may it be localhost. - -The display name must be something that can -be passed in the option to an X program. This string -is used to generate the display-specific section names, so be careful to match -the names. -The display name of &XDMCP; displays is derived from the display's address by -reverse host name resolution. For configuration purposes, the -localhost prefix from locally running &XDMCP; displays is -not stripped to make them distinguishable from local -&X-Server;s started by &kdm;. - -The display class portion is also used in the -display-specific sections. This is useful if you have a large collection of -similar displays (such as a corral of X terminals) and would like to set -options for groups of them. -When using &XDMCP;, the display is required to specify the display class, -so the manual for your particular X terminal should document the display -class string for your device. If it does not, you can run &kdm; in debug -mode and grep the log for class. - -The displays specified in will not be -started when &kdm; starts up, but when it is explicitly requested via -the command socket. -If reserve displays are specified, the &kde; menu will have a -Start New Session item near the bottom; use that to -activate a reserve display with a new login session. The monitor will switch -to the new display, and you will have a minute to login. If there are no more -reserve displays available, the menu item will be disabled. - -When &kdm; starts a session, it sets up authorization data for the -&X-Server;. For local servers, &kdm; passes - filename -on the &X-Server;'s command line to point it at its authorization data. -For &XDMCP; displays, &kdm; passes the authorization data to the &X-Server; -via the Accept &XDMCP; message. - - - - -&XDMCP; access control - -The file specified by the option provides -information which &kdm; uses to control access from displays requesting service -via &XDMCP;. -The file contains four types of entries: entries which control the response -to Direct and Broadcast queries, entries which -control the response to Indirect queries, macro definitions, -and entries which control on which network interfaces &kdm; listens for &XDMCP; -queries. -Blank lines are ignored, # is treated as a comment -delimiter causing the rest of that line to be ignored, and \ -causes an immediately following newline to be ignored, allowing host lists -to span multiple lines. - - -The format of the Direct entries is simple, either a -host name or a pattern, which is compared against the host name of the display -device. Alternatively, a macro may be used to make the entry match everything -the macro expands to. -Patterns are distinguished from host names by the inclusion of one or more -meta characters; * matches any sequence of 0 or more -characters, and ? matches any single character. -If the entry is a host name, all comparisons are done using network addresses, -so any name which converts to the correct network address may be used. Note -that only the first network address returned for a host name is used. -For patterns, only canonical host names are used in the comparison, so ensure -that you do not attempt to match aliases. -Host names from &XDMCP; queries always contain the local domain name -even if the reverse lookup returns a short name, so you can use -patterns for the local domain. -Preceding the entry with a ! character causes hosts which -match that entry to be excluded. Preceding it with an = has -no effect but is required when specifying a macro to distinguish the entry -from a macro definition. -To only respond to Direct queries for a host or pattern, -it can be followed by the optional NOBROADCAST keyword. -This can be used to prevent a &kdm; server from appearing on menus based on -Broadcast queries. - -An Indirect entry also contains a host name, pattern or -macro, but follows it with a list of host names or macros to which the queries -should be forwarded. Indirect entries can be excluding as well, -in which case a (valid) dummy host name must be supplied to make the entry -distinguishable from a Direct entry. -If compiled with IPv6 support, multicast address groups may also be included -in the list of addresses the queries are forwarded to. - -If the indirect host list contains the keyword CHOOSER, -Indirect queries are not forwarded, but instead a host chooser -dialog is displayed by &kdm;. The chooser will send a Direct -query to each of the remaining host names in the list and offer a menu of -all the hosts that respond. The host list may contain the keyword -BROADCAST, to make the chooser send a -Broadcast query as well; note that on some operating systems, -UDP packets cannot be broadcast, so this feature will not work. - - -When checking access for a particular display host, each entry is scanned -in turn and the first matching entry determines the response. -Direct and Broadcast entries are ignored when -scanning for an Indirect entry and vice-versa. - -A macro definition contains a macro name and a list of host names and -other macros that the macro expands to. To distinguish macros from hostnames, -macro names start with a % character. - -The last entry type is the LISTEN directive. -The formal syntax is - - LISTEN [interface [multicast list]] - -If one or more LISTEN lines are specified, &kdm; listens -for &XDMCP; requests only on the specified interfaces. -interface may be a hostname or IP address -representing a network interface on this machine, or the wildcard -* to represent all available network interfaces. -If multicast group addresses are listed on a LISTEN line, -&kdm; joins the multicast groups on the given interface. For IPv6 multicasts, -the IANA has assigned ff0X:0:0:0:0:0:0:12b as the -permanently assigned range of multicast addresses for &XDMCP;. The -X in the prefix may be replaced by any valid scope -identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and -so on (see IETF RFC 2373 or its replacement for further details and scope -definitions). &kdm; defaults to listening on the Link-Local scope address -ff02:0:0:0:0:0:0:12b to most closely match the IPv4 subnet broadcast behavior. -If no LISTEN lines are given, &kdm; listens on all -interfaces and joins the default &XDMCP; IPv6 multicast group (when -compiled with IPv6 support). -To disable listening for &XDMCP; requests altogether, a -LISTEN line with no addresses may be specified, but using -the [Xdmcp] option is preferred. - - - - - -Supplementary programs - - -The following programs are run by &kdm; at various stages of a session. -They typically are shell scripts. - - - -The Setup, Startup and Reset programs are run as -root, so they should be careful -about security. -Their first argument is auto if the session results -from an automatic login; otherwise, no arguments are passed to them. - - - -Setup program - - -The Xsetup program is run after the &X-Server; is -started or reset, but before the greeter is offered. -This is the place to change the root background (if - is disabled) or bring up other windows that -should appear on the screen along with the greeter. Resources for this -program can be put into the file named by . - - - -In addition to any specified by , -the following environment variables are passed: - - - DISPLAY - the associated display name - - - PATH - the value of - - - SHELL - the value of - - - XAUTHORITY - may be set to an authority file - - - DM_CONTROL - the value of - - - - can make &kdm; grab the -keyboard and mouse, making any other windows unable to receive input. -If is set, Xsetup -will not be able to connect to the display at all. - - - - -Startup program - -The Xstartup program is run as -root when the user logs in. -This is the place to put commands which add entries to -utmp (the sessreg program -may be useful here), mount users' home directories from file servers, -or abort the session if some requirements are not met (but note that on -modern systems, many of these tasks are already taken care of by -PAM modules). - -In addition to any specified by , -the following environment variables are passed: - - - DISPLAY - the associated display name - - - HOME - the initial working directory of the user - - - LOGNAME - the username - - - USER - the username - - - PATH - the value of - - - SHELL - the value of - - - XAUTHORITY - may be set to an authority file - - - DM_CONTROL - the value of - - - -&kdm; waits until this program exits before starting the user session. -If the exit value of this program is non-zero, &kdm; discontinues the session -and starts another authentication cycle. - - - - -Session program - -The Xsession program is the command which is run -as the user's session. It is run with the permissions of the authorized user. -One of the keywords failsafe, default -or custom, or a string to eval by a -Bourne-compatible shell is passed as the first argument. - -In addition to any specified by , -the following environment variables are passed: - - - DISPLAY - the associated display name - - - HOME - the initial working directory of the user - - - LOGNAME - the username - - - USER - the username - - - PATH - the value of - (or for - root user sessions) - - - - SHELL - the user's default shell - - - XAUTHORITY - may be set to a non-standard authority file - - - KRBTKFILE - may be set to a Kerberos4 credentials cache name - - - - KRB5CCNAME - may be set to a Kerberos5 credentials cache name - - - - DM_CONTROL - the value of - - - XDM_MANAGED - will contain a comma-separated list of parameters the - session might find interesting, like which conversation - plugin was used for the login - - - - DESKTOP_SESSION - the name of the session the user has chosen to run - - - - - - - -Reset program - -Symmetrical with Xstartup, the -Xreset program is run after the user session has -terminated. Run as root, it should -contain commands that undo the effects of commands in -Xstartup, removing entries from utmp -or unmounting directories from file servers. - -The environment variables that were passed to -Xstartup are also passed to Xreset. - - - - - - - diff --git a/doc/kdm/theme-ref.docbook b/doc/kdm/theme-ref.docbook deleted file mode 100644 index 931483c0..00000000 --- a/doc/kdm/theme-ref.docbook +++ /dev/null @@ -1,1348 +0,0 @@ - - Creating themes for the &kdm; greeter - - - This section describes the creation of themes for the themed - greeter. For examples including screenshots, see the installed - standard themes and the themes from - - the theme website. - - - - Theme Overview - - - &kdm; themes can be created by creating an XML file that follows the - specification in - $KDEDIR/share/apps/doc/kdm/greeter.dtd. - Theme files are stored in the directory - $KDEDIR/share/apps/kdm/themes/theme_name. - The theme directory should contain a file called - KdmGreeterTheme.desktop which has similar format - to other .desktop files and looks - like: - - -[KdmGreeterTheme] -Greeter=circles.xml -Name=Circles -Description=Theme with blue circles -Author=Bond, James Bond -Copyright=(c) 2002 Bond, James Bond -Screenshot=screenshot.png - - - - - The Name, Description, - Author and Copyright fields can - be translated just like in other - .desktop files. All the files - that are mentioned should be in the theme directory itself. The - Screenshot field points to a file which should be a - 200x150 screenshot of the theme in action (it is OK not to have one, - but it makes it nicer for the user). The Greeter - entry points to an XML file that contains the description of the theme. - - - - - - Once a theme has been fully tested, make a tarball that contains - the directory as it would be installed to the - $KDEDIR/share/apps/kdm/themes - directory. This is the standard format for distributing &kdm; themes. - - - - - Detailed Description of Theme XML format - - - Toplevel Node - - - &kdm; themes are XML files with the <greeter> tag at their root. - The toplevel node is an item node - of type rect with an implicit - fixed layout. - - - - - -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE greeter SYSTEM "greeter.dtd"> -<greeter> -[...] -</greeter> - - - - Contained within the greeter tag can be the nodes described - in the next sections of this document. Some of these nodes are - containers (layout nodes, item nodes) which can contain other - nodes again. - - - - - Item Nodes - - - A &kdm; theme is created by specifying a hierarchy of item and layout - nodes. Item nodes can have the following value for the - type attribute: - - - - - - button - - - A button field. This field uses a Qt button. - - - It is also possible to make any other item act like a button - by setting its button attribute to - true. However, it is better to use - Qt buttons in &kdm; themes since these are accessible to - users with disabilities. - - - - - - entry - - An input widget like a line edit or combo box. - Note that this is merely a placeholder for Qt widgets. - - - - - label - - - A text label. Must contain either a - text node - or a - stock node - to specify the text. - - - - - - list - - A face browser widget. - - - - - pixmap - - A raster image in a format that Qt supports, ⪚ - PNG, JPEG, Tiff, etc. - - - - - rect - - A plain rectangle. - - - - - svg - - A vector image in SVG format. - - - - - - For example: - -<item type="label"> - - - An item that acts as a button: - - <item type="rect" id="disconnect_button" button="true">. - - - - - By default, the &kdm; login screen will disappear after authentication. - This can result in flicker between the login screen and the session. - The background attribute allows users to specify - what elements of the theme are the background image. When used, this - will cause &kdm; to remove all non-background items from the display - and render the remaining background items to the root - window. This can be used to create a smooth transition between the - login screen and the session: - - -<item type="rect" background="true"> - <normal file="background.svg"/> - <pos x="0" y="0" width="100%" height="-75"/> -</item> - - - To use a different background for login transition than the one - used for login, the theme should specify two item nodes (which - could contain pixmaps or svg images, for example). The item - which corresponds to the greeter background should not have the - background property while the item which corresponds - to the transition background should have the - background property. For instance : - - -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE greeter SYSTEM "greeter.dtd"> -<greeter> - <item type="rect" background="true"> - <normal file="background_for_login.svg" element="background"/> - <pos x="0" y="0" width="100%" height="100%"/> - </item> - <item type="rect"> - <normal file="background_for_greeter.svg"/> - <pos x="0" y="0" width="100%" height="100%"/> - </item> - [...] -</greeter> - - - - - - In multi-screen setups, themes may also specify the look of other - screens than the one the greeter is on - but typically only background - items will appear there. To specify which screen(s) an item should - appear on, the screen attribute can be used with the - value being one of greeter, other - or all, meaning the screen the greeter is on, all - screens the greeter is not on and all screens, resp. - - - - - Each item can be given a name via the id - attribute. Certain ids are recognized by &kdm; to give those - items a special function: - - - - - - button items and items with the - button="true" attribute. - - - - Buttons typically trigger certain actions. - Addionally, &kdm; will hide buttons whose actions are - not available for some reason. - - - - - IdAction - - - chooser_button - Runs the XDMCP chooser. - - - - - - disconnect_button - Disconnect from remote session. - - - - - - - - session_button - Open the session type selection menu. - - - - system_button - Open a catch-all menu with various options and actions, - depending on the configuration. - - - - - - - label items - - - - &kdm; will show/hide these labels and set their text depending - on the state of the login dialog. - - - - - IdFunction - - - - - pam-error - This displays the Login failed. - message. - - - - - - - - Widget embedding items - - - - &kdm; will embed particular Qt widgets into these items. - - - - - IdFunction - - - user-entry - Entry field for username entry. - - - - pw-entry - Entry field for password entry. - - - - domain-entry - Some conversation plugins use this field - to query a domain name. If this field is present, the related - enclosing items should have - show nodes with the type - plugin-domain-entry. - - - - talker - This item should be of type rect. - It represents the hot area of the - greeter: it contains the label and - entry items which concern the - authentication process. If a given - conversation plugin cannot match the - existing items with its needs, it tries to embed a complex - widget with an own layout into this item, thus completely - overriding the theme's talker. - Strictily speaking, &kdm; themes do not need to provide - own talker designs at all, as all &kdm; - authentication plugins are able make use of the - talker item. - - - - - userlist - This item must be of type list. - If the user list feature is enabled, &kdm; will embed - the user list widget here. Otherwise, this item is - hidden. - - - - xconsole - This item should be of type rect. - If the built-in xconsole feature is - compiled in and enabled, &kdm; will embed - the console log widget here. Otherwise, this item is - hidden. - - - - - - - - Other items - - - - &kdm; will show/hide these items depending on the configuration - and the current state of the greeter. &kdm; does not impose - type requirements on them, but they usually lend themselves - to a particular type. - - - - - IdShown only when ... - - - timed-label - ... timed login is in progress. - - - - caps-lock-warning - ... Caps Lock is active. - - - - xauth-warning - ... the &X-Server; requires no X authorization to - connect. - - - - - - userlist-rect - ... the user list is enabled. By nesting the - userlist item into this one, it is possible - to create something like a frame around the list and have - it shown only when the user list itself if shown. - - - - xconsole-rect - ... the built-in xconsole is enabled. - Analogous to userlist-rect. - - - - - - - - - - - - Layout Container Nodes - - - Layout nodes appear inside item nodes and contain item nodes again. - The type of the layout node determines the arrangement of its - child nodes. An item node can contain one layout node of each type. - - - - Box Nodes - - - Box nodes automatically arrange their children in a row. - They are specified as follows: - -<box orientation="alignment" min-width="num" min-height="num" - xpadding="num" ypadding="num" spacing="num" - homogeneous="bool"> - - Where num means number of pixels and - bool means either true - or false. - The alignment value can be either - horizontal or vertical. - If you leave any attribute off, it will default to zero for numbers, - false for bools and vertical - for the orientation. - - - - The spacing is the distance between neighboring child items. - The padding is the box' outer margin. - If the box is homogeneous, the same amount of space is allocated - to each child item. - - - - - Fixed Nodes - - - Fixed is a container that has its children - laid out at precise coordinates. The size of this container - is the smallest rectangle that contains all the children. Fixed - has no extra attributes and so you just use: - -<fixed> - - Then you put other items with proper position nodes inside it. - - - - - - - Position Nodes - - - Each item can specify its position and size via the pos - node. For example: - -<pos x="0" y="4" width="100%" height="100%"/> - - - - - If the size is not specified, it will be the item's - natural size, called the size hint. - Note that not all items have a useful size hint. - - - - Both position and size can be given in percent and will be calculated - relative to the size of the enclosing container in this case. - For toplevel items it is the percentage of the whole screen. - By appending circumflexes (^) to the size - specification it is possible to modify it to be relative to the - size of the enclosing item's enclosing item and so on. - - - - If the item contains a box, width and - height can be specified to be - box to mean that they are supposed to be the width - and height of the box, that is the items in the box plus the padding. - - - - One of width and height can - be specified to be scale - to mean that it should be scaled according to the other dimension's - scale relative to its size hint. Use this to preserve the aspect - ratio of scaled images automatically. - - - - If the expand attribute is specified and - true, this item will be expanded in the - enclosing box as much as possible (that is it will be given - more space if available). - - - - If width or height is a - plain number, a negative value represents - an offset from the enclosing container's size. Note that it is - possible to specify a positive offset by writing two minus signs. - - - - In either case it is possible to constrain the final size with the - min-width, min-height, - max-width and max-height - attributes which can be specified in the same ways as - width and height. - - - - If x or y is a plain number, - a negative value represents an offset from the right resp. bottom edge, - unlike the default which is the left resp. top edge. - - - - It is also possible to specify which point within the item the - position refers to. This is called the anchor and can be - either c for center or one of - n, ne, e, - se, s, sw, - w and nw - which stand for the different edges/corners corresponding the - directions on a topographical map. - The default is nw, which is the upper left corner. - For example: - -<pos x="10%" y="50%" anchor="w" width="80%" height="95"/> - - - - - - - Show Nodes - - - - - You can specify the type attribute to indicate that - certain items should only be displayed if the type is set. - Prefixing the type with an exclamation mark (!) - reverses the condition. - Valid values include the following: - - - - TypeDisplay if ... - - - chooser - switching to remote login is permitted. - - - - - - halt and reboot - system shutdown is permitted. - - - - - - system - no condition (always set in &kdm;). - - - - - - plugin-entry-name - the conversation plugin provides a - corresponding input field. - - - - - - - For example: - -<show type="chooser"/> - - - - - Alternatively, you can specify a min-screen-width or - min-screen-height value to indicate that certain - items should be displayed only if the screen resolution is the - at least the specified size. - For example: - -<show min-screen-height="768"/> - - - - - - - Normal/Active/Prelight Nodes - - - The look of most item types can be parametrized via the following - tags: - - - - - normal - - Normal state. - - - - prelight - - When the mouse is hovering over the item. - - - - active - - When a mouse button is clicked on the item. - - - - - - - - The exact set of available attributes depends on the item type: - - - - rect - - - -<normal color="#000000" alpha="0.0"/> - - Either of the attributes may be omitted, in which case the - default is used (the example represents the defaults). - alpha is a floating point number between - zero (transparent) and one (opaque). - color is a hashmark followed by a six-digit - hex number; the format is - #rrggbb. - Alternatively, color may be specified as an - eight-digit hex number, in which case the first two digits are - the alpha value. - - - - - - label - - - -<normal color="#ffffff" alpha="1.0" font="Sans 14"/> - - alpha and color are - specified like in rect items. - - - font follows the format - family-list style-options size. - Each part is optional. - - - family-list is a comma-separated - list of font families like helvetica, - monospace, etc. - - - style-options is a space-delimited - list of keywords from the categories style, weight and stretch; - from each category at most one. - The style can be normal, - italic or oblique. - Weight can be ultra-light, - light, medium, - semi-bold, bold, - ultra-bold or heavy. - Allowable stretches comprise ultra-condensed, - extra-condensed, condensed, - semi-condensed, normal, - semi-expanded, expanded, - extra-expanded and ultra-expanded. - - - size is either a floating point - number representing the size in points (1/72 inch) or an - integer followed by px representing the - size in pixels. Point sizes are preferable, as they are - independent from the display resolution. - - - If either attribute is left out, the values from the - style node are used. - If this yields no window-text color specification, white - is used. The default font is the one configured in &kdmrc;. - - - - - - pixmap - svg - - - -<normal file="picture.png" tint="#dddddd" alpha="1.0"/> - - - - - file specifies the file containing the image. - Relative pathnames are relative to the theme's directory. - - - - wallpaper can be used instead of - file to have &kdm; look for images in the - usual locations for &kde; wallpapers. Plasma wallpaper packages - are supported. - - - - element specifies the element id of a SVG file. - If empty, the whole SVG image will be rendered. - - - - For pixmap nodes, it is possible to provide - multiple images, so the best-quality image for a given resolution - can be used. Size-tagged file names have the format - basename-widthxheight.extension. - If the not size-tagged file exists and it is no Plasma - wallpaper package, &kdm; will accept only a perfect match - for a given size and otherwise fall back to the original file. - Otherwise it will try to find an image whose dimensions come - closest to the required size if no perfect match is found. - - - - - - scalemode specifies how to adjust the size of - images which do not match the element's size. - free (the default) means to simply scale the - image to the right size, possibly distorting its aspect ratio. - The other two modes maintain the image's aspect ratio: - fit means to zoom the image to the maximal size - which fits into the element's geometry. The image will be centered. - The remaining area will not be painted by this element, so it should - be placed on top of a solid-filled rect. - crop means to zoom the image to the minimal size - which completely fills the element's geometry. The image will be - clipped symmetrically. - - - - tint and alpha form a - color specification like in rect items. - Each pixel of the image is multiplied with this color - component-wise. - - - - - - - - - - Widget Style Nodes - - - This tag makes it possible to change the appearance of labels and - Qt widgets embedded into the theme, e.g., line edits, buttons or - the user list. - The style settings are inherited by child items, but can be - overridden individually. The defaults are taken from &kdmrc;. - - - - The font attribute defines the font for all widgets. - For widgets with an input function it can be overridden with the - edit-font attribute. - Fonts are specified the same way as in - normal/active/prelight nodes. - - - - Usually, the theming engine tries hard to remove any frames from - Qt widgets, so they melt into the theme seamlessly. In cases - where this is not desired, the frame attribute can - be set to true. - - - - The guistyle attribute can be used to override the - Qt GUI style for embedded widgets. The default is given by - in &kdmrc; - - - - It is possible to specify almost the entire palette for the widgets - as documented at - Trolltech's site. - Attribute names are composed from a scope, a color role and a suffix. - - Possible scopes are - in order of increasing precedence - - all- for all color groups, - no scope for the active and inactive color groups and - active-, inactive- and - disabled- for the respective color group. - - Supported color roles are - window, window-text, - base, alternate-base, - text, bright-text, - highlight, highlighted-text, - button and button-text. - - The suffix can be -color or - -alpha with the respective meaning as in - normal/active/prelight nodes. - - - - As an alternative to specifying the palette inline, the - colorscheme attribute can be used to load - a complete &kde; color scheme. The default is given by - in &kdmrc;. - Individual color specifications will override - the colors from the scheme. - - - - Example: - -<style edit-font="Comic 16" text-color="#dddddd" frame="true"/> - - - - - - Face Browser Color Nodes - - - Color nodes permit overriding the background color of the items - in the face browser. labelcolor and - altlabelcolor are essentially equivalent to - all-base-color resp. - all-alternate-base-color in - style nodes. - If only labelcolor is specified, alternating - item backgrounds are disabled. - - - - -<color labelcolor="#80ffffff" altlabelcolor="#80f0f0f0"/> - - - - - - Text Nodes - - - Text tags are used by labels. They can be used to display - localized text as follows (if the xml:lang - attribute is omitted, the POSIX locale is assumed): - -<text xml:lang="fr">Option</text> - - - - - - - Text nodes can contain the following special character sequences - which will be translated as follows: - - - - - SequenceExpansion - - - %% - A literal % character - - - - %c - Wall clock time and date - - - - %d - Display name (DISPLAY environment variable) - - - - %h - Hostname (gethostname output) - - - - %m - Machine name (machine part of - uname output) - - - - %n - Node name (nodename part of - uname output) - - - - %o - Domain name (getdomainname output) - - - - %r - Release name (release part of - uname output) - - - - %s - System name (sysname part of - uname output) - - - - %t - Remaining number of seconds until timed login is performed, - plus the appropriate i18n plural form of second - - - - %u - Username for timed login - - - - - - _ - Causes the following character to be an accelerator - - - - - - %t and %u are intended to be - used only internally to display the timed-label - message, which is automatically updated every second. - - - - - Stock Nodes - - - Certain common localized labels can be specified via the stock - tags. The text tag is ignored if the - stock tag is used. You really should use the - stock labels rather than just putting all the translations into - the themes. This yields faster load times and likely better - translations. The following values are valid: - - - - - TypeExpansion - - - - caps-lock-warning - Caps Lock is enabled - - - chooser - XDMCP Choose_r - - - quit - _Quit - - - disconnect - Disconn_ect - - - halt - Power o_ff - - - language - Lan_guage - - - login - _Login - - - session - Session _Type - - - reboot - Re_boot - - - - system - _Menu - - - timed-label - User %u will login in %t - - - domain-label - _Domain: - - - username-label - _Username: - - - password-label - _Password: - - - welcome-label - Welcome to %h - - - - - - For example: - -<stock type="welcome-label"/> - - - - - - Buddy Nodes - - - Items which do not directly cause an action can be assigned a buddy. - The buddy is given input focus when the item is activated (clicked - or a label's accelerator pressed). - - - - The buddy is referenced by id with the idref - attribute. Obviously, it must be given an id. Example: - -<item type="label"> - <stock type="username-label"/> - <buddy idref="user-entry"/> - [...] -</item> -[...] -<item type="entry" id="user-entry"> - [...] -</item> - - - - - - - diff --git a/doc/kfontview/CMakeLists.txt b/doc/kfontview/CMakeLists.txt deleted file mode 100644 index dd75aec8..00000000 --- a/doc/kfontview/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/kfontview/index.docbook b/doc/kfontview/index.docbook deleted file mode 100644 index 77dae585..00000000 --- a/doc/kfontview/index.docbook +++ /dev/null @@ -1,124 +0,0 @@ - -KFontview"> - - - - -]> - -
- - -Font Viewer - -&Burkhard.Lueck; &Burkhard.Lueck.mail; - - - - -2013-06-19 -1.1 (&kde; 4.11) - - -KDE -fontview -fonts - - - - -&kfontview; is an application to view and install different types of fonts: - -TrueType (.ttf) -OpenType (otf, .ttf) -Postscript type 1 (file extension on &Windows; & OS/2 .pfb/.pfm; on &UNIX;/&Linux; .pfa/.afm) -BDF (Bitmap Distribution Format, file extension .bdf) -PCF (Portable Compiled Format, file extension .pcf) - - -You can use it as standalone program to preview and install a font -downloaded from the Internet. In the preview you can check that the font -has all characters you need. - - -Additionally &kfontview; can be launched from -the &systemsettings; module -Font Installer to use the extended preview capabilities -of &kfontview;. -To use &kfontview; in &konqueror; select Services in -the sidebar and go to the folders Fonts/Personal - or Fonts/System. -Then open the context menu with a &RMB; click on a font and start &kfontview; -by selecting it from the context menu. - - - - -&kfontview; application - - - - - - &kfontview; application - - - - - - -&kfontview;'s Standard Preview displays your font in several -different sizes using a pangram (a sentence using every letter of the alphabet at least once). -So you can get a good idea of what it will look like. -From the drop down box in the toolbar you can choose additional preview types: - -All Characters displays all characters -provided by the font in one size. -Unicode Block: The Unicode standard arranges groups of characters -together in blocks -Unicode Script: In Unicode, a script is a collection of letters -and other written signs used to represent textual information in one or more -writing systems -Change Text: Using this button opens the Preview -String dialog where you can insert a user defined text. -This feature enables you to check that a font supports the characters you need. - - -You can use the zoom buttons or the mousewheel to change the font size in all preview types. -In Unicode Block and Unicode Script -preview mode additional tooltip info's are displayed hovering a character with the -mouse pointer: -The character's Unicode Category and the value in -UCS-4, UTF-16, UTF-8 and -as XML Decimal Entity. - - -To install a font you downloaded from the Internet, click the -Install button in the lower-right corner. - - -You can install the font for personal us only available to you or system-wide available -for all users, the latter will require administrator privileges. - -Fonts are often provided in an archive format like zip. -Open these archives with &ark; which provides a simple previewer for fonts. -To make use of the extended capabilities of &kfontview; extract the fonts and open them in -&kfontview;. - -Applications need to be restarted to use of the newly installed fonts. -
- - diff --git a/doc/kfontview/kfontview.png b/doc/kfontview/kfontview.png deleted file mode 100644 index fa205993..00000000 Binary files a/doc/kfontview/kfontview.png and /dev/null differ diff --git a/doc/khelpcenter/CMakeLists.txt b/doc/khelpcenter/CMakeLists.txt deleted file mode 100644 index d5868ac2..00000000 --- a/doc/khelpcenter/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -########### install files ############### -# -# -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/khelpcenter/background.png b/doc/khelpcenter/background.png deleted file mode 100644 index 65459539..00000000 Binary files a/doc/khelpcenter/background.png and /dev/null differ diff --git a/doc/khelpcenter/bgtable.png b/doc/khelpcenter/bgtable.png deleted file mode 100644 index 145bbd48..00000000 Binary files a/doc/khelpcenter/bgtable.png and /dev/null differ diff --git a/doc/khelpcenter/index.docbook b/doc/khelpcenter/index.docbook deleted file mode 100644 index 84bbad86..00000000 --- a/doc/khelpcenter/index.docbook +++ /dev/null @@ -1,906 +0,0 @@ - - - - -]> - - - -The &khelpcenter; - -The &kde; Team - - -&FDLNotice; -2013-05-22 -&kde; 4.11 - - - -&kde; is an international technology team that creates -Free Software -for desktop and portable computing. Among &kde;'s products are a modern -desktop system for &Linux; and &UNIX; platforms, comprehensive office -productivity and groupware suites and hundreds of software titles in many -categories including Internet and web applications, multimedia, entertainment, -educational, graphics and software development. - - - - -KDE -kdebase -khelpcenter -kdehelp -help -help center -KDE help center - - - - - - -&kde; Help System Handbook - - - -&kde; Help System - -The &kde; help system is designed to make accessing the common -&UNIX; help systems (man and -info) simple, as well as the native &kde; -documentation (&XML;). - - - -All base &kde; applications come fully documented, thanks to the efforts of the -Documentation team. If you are interested in helping with the documentation -efforts, join the -mailing -list and write to the team at kde-doc-english@kde.org. No -experience is required, just enthusiasm and patience. - - - -If you would like to help translating &kde; documentation to your native -language, review the information, including coordinators for each language team, -on the Localization web site. - - - -Installation - - -&khelpcenter; is an integral part of the &kde; Base installation, and -is installed with every copy of &kde;. It can be found in the kdebase-runtime -package, and is available from the &kde-ftp;, or will be found in your -operating system's kdebase-runtime package. - - - - - - -Invoking Help - - -&khelpcenter; can be called in several ways: - - - - -From the Help menu - - -The most common will probably be from within an application. Choose - - -F1 - -Help -Application Handbook to open that -application's handbook. - - - - - -From the Kickoff Application Launcher - - -Choose the big K in your panel, and select the -Applications tab followed by selecting -Help to open &khelpcenter;, which will open up to the -default start page. - - - - - -From the command line - - -&khelpcenter; may be started using a &URL; to display a -file. &URL;s have been added for -info and man pages -also. You can use them as follows: - - - - -An application help file - - -khelpcenter - - - -Opens the &kwrite; help file, at the contents page. - - - - - -A local &URL; - -khelpcenter - - - - - - -A Man page - - -khelpcenter - - - - - - -An Info page - - -khelpcenter - - - - - - - -Invoking khelpcenter with no parameters opens the -default start page. - - - - - - - - -The &khelpcenter; interface - - -The &khelpcenter; interface consists of two panes of information. - - - -The toolbar and menus are explained further in . - - - -Documents contain their own navigation tools, enabling you to move -either sequentially through a document, using -Next, Previous, and -Contents links, or to move around in a less -structured manner, using hyperlinks. - - - -Links can take you to other parts of the same document, or to a -different document, and you can use the Back (Left -pointing arrow) or Forward (Right pointing arrow) -icons on the toolbar to move through the documents you have viewed in -this session. - - - -The two panes display the contents of the help system, and the help -files themselves, on the left and right respectively. - - - -The Contents Pane - - -The contents pane in &khelpcenter; is -displayed on the left hand side of the window. As you might expect, you -can move the splitter bar, to make sure you can comfortably read the -contents of either pane. - - - -The contents pane is further divided into two -tabs, one containing a tree view -showing all the help information &khelpcenter; is aware of, and the -other contains the &kde; glossary -of terms. - - - -The Contents Tab - - -The Contents tab contains the following default -top level entries in the tree view: - - - - - -&kde; Fundamentals - -The Fundamentals introduce you to the many features of the &kde; Software Collection and -describe many common tasks you can perform in all &kde; applications. - - - - - -Plasma Manual - - -The &plasma; Manual is the documentation for the most visible pillar of &kde;, -the core interface to the desktop. - - - - - -Online Help - -A page with links to online help and additional information provided by the &kde; community. - - - - - -Application Manuals - - -Native &kde; application documentation. All &kde; applications have -documentation in &XML; format, which are converted to -HTML when you view them. This section lists all the -&kde; applications with a brief description and a link to the full -application documentation. - - -The applications are displayed in a tree structure that echoes the default -structure of the K menu, making it easy to find the -application you are looking for. - - - - - -Control Center Modules - - -Provides a list of links to various modules that are located in the &kde; -&systemsettings; application. - - - - - -KInfoCenter Modules - - -Contains a list of links to various KInfocenter modules documentation. - - - - - -Kioslaves - - -Contains a list of links to various KIO modules documentation. - - - - - -&UNIX; manual pages - - -&UNIX; man pages are the traditional on-line documentation format for -&UNIX; systems. Most programs on your system will have a man page. In -addition, man pages exist for programming functions and file -formats. - - - - - -Scrollkeeper - -Additional non-&kde; documentation installed on your system. - - - - - -Browse Info Pages - - -TeXinfo documentation is used by many &GNU; applications, -including gcc (the C/C++ compiler), -emacs, and many others. - - - - - - - - - - - - -The <application>Man</application> and <application>Info</application> -sections - -Man pages are the standard &UNIX; manual pages, and have been in -use for many years on many operating systems. They are extremely -thorough, and are the very best place to get information about most -&UNIX; commands and applications. When people say -RTFM, the Manual they are referring to is very often the -man page. - -The man pages are not perfect. They tend to be in depth, but -also extremely technical, often written by developers, and for -developers. In some cases this makes them somewhat unfriendly, if not -downright impossible for many users to understand. They are, however, -the best source of solid information on most command line -applications, and very often the only source. - -If you've ever wondered what the number is when people write -things like man(1) it means which section of the manual the item is -in. You will see &khelpcenter; uses the numbers to divide the very many -man pages into their own sections, making it easier for you to find -the information you're looking for, if you're just browsing. - -Also available are the Info pages, intended to be a replacement -for the man pages. The maintainer of some applications no longer -update the man pages, so if there is both a man page and an info page -available, the info page is probably the most recent. Most -applications have one or the other though. If the application you are -looking for help on is a &GNU; utility, you will most likely find it -has an info page, not a man page. - - -Navigating inside the <application>Info</application> pages - -Info documents are arranged hierarchically with each page called -a node. All info documents have a Top node, -&ie; the opening page. You can return to the -Top of an info document by pressing -Top. - -Prev & Next -are used to move to the previous/next page at the current level of the -hierarchy. - -Clicking on a menu item within a document moves you to a lower -level in the hierarchy. You may move up the hierarchy by pressing -Up. - -Man is treated similarly to info, with the section index being -the Top node and each man page on the level below. Man entries are -one page long. - - - - - -The &kde; glossary - - -The glossary provides a quick reference point, where you can look up -the definitions of words that may be unfamiliar to you. These range -from &kde; specific applications and technologies, through to general -&UNIX; computing terms. - - - -In the left hand pane you will see a tree view, with two choices: -Alphabetically or By Topic. -Both contain the same entries, sorted differently, to allow you to -quickly find the item of interest. - - - -Navigate down the tree views to the left, and items you select will be -displayed on the right. - - - - - -The menus and toolbar - - -&khelpcenter; has a very minimal interface, allowing you to concentrate -on getting help rather than learning how to use the help browser. - - - -The icons available to you in the toolbar are as follows: - - - -Toolbar Icons - - -Table of Contents - - -Go to the main start page of &khelpcenter;. - - - - - -Back - - -Go to the previous page you viewed. Click the check mark right to the icon. -This displays a list of previously viewed pages. Selecting one -will take you directly back to that page. - - - - - -Forward - - -Go forward one page. This icon is only active if you have -already used the Back icon. - - - - - -Copy - - -Copy text to the clipboard to be pasted in another application. - - - - - -Find - - -Find a word or words within the currently visible page. - - - - - -Increase Font Sizes - - -Increase the size of the text in the viewer pane. - - - - - -Decrease Font Sizes - - -Decrease the size of the text in the viewer pane. This icon is only -enabled if you have previously enlarged the text. - - - - - - - -The menus contain the following entries: - - - - -File - - - - - - - - -&Ctrl;P - -File -Print - - - - -Print the contents of the currently visible page. Handbooks in PDF format you find -on the &kde; Documentation Server. - - - - - - - - -&Ctrl;Q - -File -Quit - - - - -Close and exit &khelpcenter; - - - - - - - - - - -Edit - - - - - - - -&Ctrl;C - -EditCopy - - - - -Copy the selected text to the clipboard. - - - - - - -&Ctrl;A -Edit -Select All - - - - -Select all the text in the current page. - - - - - - -&Ctrl;F -Edit -Find... - - - - -Find a word or words in the currently visible page. - - - - - - - - - - -View - - - - -View -Set Encoding - - - - -Change the encoding of the current page. Normally, the default setting -of Default should be sufficient, but if you are -having problems viewing pages written in languages other than English, -you may need to choose a specific encoding in this menu. - - - - - - - - - - -Go - - - - -&Alt;Home -Go -Table of Contents - - -Go to the main start page of &khelpcenter;. - - - - - - -&Ctrl;PgUp -Go -Previous Page - - -Go to the previous page of the current documentation. - - - - - - -&Ctrl;PgDown -Go -Next Page - - -Go to the next page of the current documentation. - - - - - - -&Alt;Left -Go -Back - -Go back to the previous page you were viewing. - - - - - -&Alt;Right -Go -Forward - - -If you have previously moved back with the back icon or menu -entry, you can work your way forward again with this menu -entry. - - - - - - - - - - - -Settings - - - - - - -Settings -Configure Fonts... - - - - -Allows you to configure the font family and size used by &khelpcenter;. - - - - - - - - - - -Additionally &khelpcenter; has the common &kde; Settings and Help -menu items, for more information read the sections about the Settings Menu and Help Menu -of the &kde; Fundamentals. - - - - - - - -Credits and License - -&khelpcenter; - -Originally developed by &Matthias.Elter; &Matthias.Elter.mail; -The current maintainer is &Cornelius.Schumacher; &Cornelius.Schumacher.mail; - - - -&underFDL; -&underGPL; - - - - - - - - - diff --git a/doc/khelpcenter/kdelogo2.png b/doc/khelpcenter/kdelogo2.png deleted file mode 100644 index d2039e2b..00000000 Binary files a/doc/khelpcenter/kdelogo2.png and /dev/null differ diff --git a/doc/khelpcenter/khelpcenter.png b/doc/khelpcenter/khelpcenter.png deleted file mode 100644 index 224084a4..00000000 Binary files a/doc/khelpcenter/khelpcenter.png and /dev/null differ diff --git a/doc/khelpcenter/konq.css b/doc/khelpcenter/konq.css deleted file mode 100644 index ee75f658..00000000 --- a/doc/khelpcenter/konq.css +++ /dev/null @@ -1,68 +0,0 @@ -body {background-color: #3679AD; - color: #000000; - margin-left: 0; - margin-right: 0; - margin-top: 5; - padding: 0; - background-image: url(background.png); - background-repeat: no-repeat; - background-position: top-center;} - -.caption { - color: black; - font-family: sans-serif; - font-size: 23pt; - font-style: italic; - font-weight: bolder; - margin-left: 3pt; -} - -td.trans {background-image: url(bgtable.png); - background-repeat: no-repeat;} -td.end {background-image: url(lines2.png); - background-repeat: x-repeat;} -td.shadow1 {background-image: url(shadow1.png); - background-repeat: x-repeat;} - -table.vnice { font-family: sans-serif; - font-size: x-small;} - -a:link {background-color: transparent; - color: #191970; - text-decoration:none;} -a:visited {background-color: transparent; - color: #551a8a; - text-decoration:none;} -a:active {background-color: transparent; - color: #fe0000; - text-decoration:none;} -a:hover {background-color: transparent; - color: #1919aa; - text-decoration:underline;} - -tr.menurow {background-color: #505050; - color: #000000; - vertical-align: middle;} - -td.deco {color: #ffffff; - background-color: #505050; - font-family: sans-serif; - font-size: small;} - -td.menuactive {color: #ffcc00; - background-color: #777777; - font-family: sans-serif; - font-size: small;} - -td.menu {color: #ffffff; - background-color: #505050; - font-family: sans-serif; - font-size: small;} - -a.menu {color: #eeeeee; - font-family: sans-serif; - font-size: small;} - -a.menu:hover {color: #ffffff; - text-decoration:none;} - diff --git a/doc/khelpcenter/lines.png b/doc/khelpcenter/lines.png deleted file mode 100644 index 5fbba934..00000000 Binary files a/doc/khelpcenter/lines.png and /dev/null differ diff --git a/doc/khelpcenter/lines2.png b/doc/khelpcenter/lines2.png deleted file mode 100644 index f2dd21c5..00000000 Binary files a/doc/khelpcenter/lines2.png and /dev/null differ diff --git a/doc/khelpcenter/pointers.png b/doc/khelpcenter/pointers.png deleted file mode 100644 index 987283a0..00000000 Binary files a/doc/khelpcenter/pointers.png and /dev/null differ diff --git a/doc/khelpcenter/shadow1.png b/doc/khelpcenter/shadow1.png deleted file mode 100644 index 661c0b9c..00000000 Binary files a/doc/khelpcenter/shadow1.png and /dev/null differ diff --git a/doc/kinfocenter/CMakeLists.txt b/doc/kinfocenter/CMakeLists.txt deleted file mode 100644 index dd75aec8..00000000 --- a/doc/kinfocenter/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/kinfocenter/index.docbook b/doc/kinfocenter/index.docbook deleted file mode 100644 index 62a8b333..00000000 --- a/doc/kinfocenter/index.docbook +++ /dev/null @@ -1,931 +0,0 @@ - - - - -]> - - - -The &infocenter; - - - -Michael -McBride -
&Mike.McBride.mail;
-
- -
- -&FDLNotice; -2013-06-22 -&kde; SC 4.11 - - -This documentation describes &kde;’s information center. - - - -KDE -kinfocenter -system -information -module - - -
- - -The &infocenter; - - -The &infocenter; provides you with a centralized and convenient -overview of your system and desktop environment. - - - -The information center is made up of multiple modules. Each module is a -separate application, but the information center organizes all of these -programs into a convenient location. - - - -This next section details the use of the information center itself. For -information on individual modules, please see Default KInfo -Center Modules. - - - -Starting the &infocenter; - - -The &infocenter; can be started in three ways: - - - - - -By selecting Applications -SystemInfo -Center from the application launcher in the panel. - - - - - -By pressing &Alt;F2. -This will bring up &krunner;. Type -kinfocenter, and press &Enter;. - - - - - -You can type kinfocenter & at any command prompt. - - - - - -All three of these methods are equivalent, and produce the same result. - - - - - -The &infocenter; Screen - - -When you start the information center, you are presented with a window, -which can be divided into three functional parts. - - - - The &infocenter; Screen. - - - - - - The &infocenter; Screen - - - - - -Across the top is a toolbar. The toolbar will provide you with quick -access to most of &infocenter;’s features like export, get help on the current -module and a help menu. - - - -Along the left hand side, is a column with a filter field at the top. -This is a where you choose which module to investigate. To navigate through the various KCM modules, left click on -the module in the tree view. You can also use the arrow keys to scroll though the KCM's and pressing &Enter; will select the module. The module will -now appear of the main panel of the &infocenter; window. Some items within the tree view are categories, you can left click or again press &Enter; to expand and collapsed these items. This -will show the modules under the category. -You can right click on the module listing to show the following options: - - Collapse All Categories: Collapses the tree to show only top level modules and categories. - Expand All Categories: Expands the tree to show modules. - Clear Search: This will clear any filter you have applied on the module listing via the search box - - - - -The main panel shows you the system information about the selected module. - - - - - - - - - - -The &infocenter; Toolbar - -This next section gives you a brief description of what each toolbar item does. - - - - -Module Help button - - -This button opens khelpcenter with the current help page for the information module. - - - - -Help Menu button - -&kinfocenter; has the common &kde; Help -menu items, for more information read the section about the Help Menu -of the &kde; Fundamentals. - - - - - - -Exiting The &kde; Information Center - -You can exit the info center one of two ways: - - - -Type &Ctrl;Q on the keyboard. - - - - -Click on the Close button on the frame surrounding the info center. - - - - - - - - -The Default &infocenter; Modules - - - - -Summary Information Module - - -The summary information KCM provides a quick way to display important information. -The module has three categories; OS Information, CPU Information and Hard Drive Information. - -You may have more than one of these information boxes per category. - - -<acronym>OS</acronym> Information Box - - -Screenshot of OS Information box - - - - - - OS Information Box - - - - -The OS information box has the following information: - - -OS Version: This is the version information of the Operating System KInfoCenter is present on. -KDE SC Version: This is the version of the KDE Software Collection KInfoCenter was compiled on. -Hostname: This is the hostname of the computer KInfoCenter is present on. - - - - - -<acronym>CPU</acronym> Information Box - - -Screenshot of CPU Information box - - - - - - CPU Information Box - - - - -The CPU information box has the following information: - - -Processor: This is the vendors name for your CPU -Processor Number: This is the ID number of your CPU, starting from zero. -Processor Max Speed: This is the processors maximum speed. - - - - - -Hard Drive Information Box - - -Screenshot of Hard Drive Information box - - - - - - Hard Drive Information Box - - - - -The Hard Drive information box has the following information: - - -Drive Title: This is the vendors name for the hard drive. -Storage Size: This is the current size of your hard drive. -Bus: This is the bus your hard drive uses. - - - - - - - -Memory Information Module - -This module displays the current memory usage. It is updated -constantly, and can be very useful for pinpointing bottlenecks when certain -applications are executed. - - -Memory Types - -The first thing you must understand, is there are two types of -memory, available to the operating system and the programs -that run within it. - -The first type, is called physical memory. This is the memory located -within the memory chips, within your computer. This is the -RAM (for Random Access Memory) you bought when you -purchased your computer. - -The second type of memory, is called virtual or swap memory. This -block of memory, is actually space on the hard drive. The operating -system reserves a space on the hard drive for swap space. -The operating system can use this virtual memory (or swap space), if it -runs out of physical memory. The reason this is called -swap memory, is the operating system takes some data that -it doesn't think you will want for a while, and saves that to disk in -this reserved space. The operating system then loads the new data you -need right now. It has swapped the not needed data, for -the data you need right now. Virtual or swap memory is not as fast as -physical memory, so operating systems try to keep data (especially often -used data), in the physical memory. - -The total memory, is the combined total of physical memory and -virtual memory. - - - - -Memory Information Module - -This window is divided into a top and bottom section - -The top section shows you the total physical memory, total free - physical memory, shared memory, and buffered memory. - -All four values are represented as the total number of bytes, and - as the number of megabytes (1 megabyte = slightly more than 1,000,000 - bytes) - -The bottom section shows you three graphs: - - -Total Memory (this is the combination of physical and virtual memory). -Physical Memory -Virtual memory, or Swap Space. - - -The grey areas are free, and the blue and green areas are used. -The exact values of each type of memory are not critical, and - they change regularly. When you evaluate this page, look at - trends. - -Does your computer have plenty of free space (grey areas)? If - not, you can increase the swap size or increase the physical - memory. - -Also, if your computer seems sluggish: is your physical memory - full, and does the hard drive always seem to be running? This suggests - that you do not have enough physical memory, and your computer is - relying on the slower virtual memory for commonly used data. Increasing - your physical memory will improve the responsiveness of your - computer. - - - - - - - -Device Information Module - -Device Information is a device viewer module. It shows all relevant devices that are present within your PC. It has three sections, -a device viewer, a information panel and a UDI listing for the currently selected device. - -Device Listing -The device viewer displays all the current devices detected on your PC in a tree. The main topics at the beginning of the tree -are the device categories, left click on a collapsed category to expand it and vice versa to collapse it. -To display information about a device, left click on the device in the viewer, the information will display on the right side information panel. -You can right click on the device viewer to show the following options: - -Collapse All: Collapses the tree to show only the main categories. -Expand All: Expands the tree to show all the children devices. -Show All Devices: Show all the categories no matter if devices are present in those categories -Show Relevant Devices: Only show categories that have devices present. - -The default display is to collapse all while showing only relevant devices. Please note that the devices shown -in the device listing are not all devices within your PC, they are just devices that have been detected via the Solid. - The device viewer can show the following devices: - -Processors: These are your computers CPUs ( Central Processing Units ). -Storage Drives: Devices that are used to store your PCs files and data. -Network Interfaces: Devices that allow you to connect to a network or to another PC. -Audio Interfaces: Devices that allow your PC to play Sound. They are split into 2 categories, ALSA and OSS sound architectures. -Video Devices: Devices that allow you to stream live video. -Serial Devices: Devices that are connected to your serial port in your PC. -Smart Card Devices: Devices that are smart card readers. -Digital Video Broadcasting Devices: Devices that use the open standards for digital television. -Device Buttons: These are buttons that are present on your PC or external devices. -Batteries: These are battery devices that are plugged into your laptop. -AC Adapters: These devices will be present when you plug in your AC Adapter. -Multimedia Players: Devices that play media files, like a music player. -Camera Devices: These are digital camera that are connected to your PC. - - -Video devices do not include your video card adapter - - - -Information Panel -The information panel is where device information is shown when you select a device. The first two information topics are always: - -Product: The name of the device. -Vendor: The vendors name of the device. - -The following information topics are dependent on the device chosen. They are labeled with easy to understand names. -The information labels have the ability to be selected and copied from. - -Processor Max Speed and Supported Instruction sets topics are usual not set by solid. - - -Top categories in the device listing do not show any information. - - - -<acronym>UDI</acronym> Information -The bottom information panel shows the current selected devices UDI. This is the unique device identifier. -The label has the ability to be selected and copied from. - - - - - - -Interrupt Request (<abbrev>IRQ</abbrev>) Information Module - -This page displays information about the Interrupt Request -Lines in use, and the devices that use them. - -An IRQ is a hardware line used in a -PC by (ISA bus) devices like -keyboards, modems, sound cards, &etc;, to send interrupt signals to the -processor to tell it that the device is ready to send or accept data. -Unfortunately, there are only sixteen IRQ's (0-15) -available in the i386 (PC) architecture for sharing among -the various ISA devices. - -Many hardware problems are the result of IRQ -conflicts, when two devices try to use the same IRQ, or -software is misconfigured to use a different IRQ from the -one a device is actually configured for. - -The exact information displayed is system-dependent. On some -systems, IRQ information cannot be displayed - yet. - -On &Linux;, this information is read from -/proc/interrupts, which is only -available if the /proc -pseudo-filesystem is compiled into the kernel. - -The first column, is the IRQ number. The second -column, is the number of interrupts that have been received since the last -reboot. The third column shows the type of interrupt. The fourth, -identifies the device assigned to that interrupt. - -The user cannot modify any settings on this page. - - - - - -<acronym>DMA</acronym> Channel Information Module - - This page displays information about the DMA -(Direct Memory Access) Channels. A DMA channel is a -direct connection that allows devices to transfer data to and from -memory without going through the processor. Typically, i386-architecture -systems (PC's) have eight DMA -channels (0-7). - - The exact information displayed is system-dependent. On -some systems, DMA Channel information cannot be -displayed yet. - - On &Linux;, this information is read from /proc/dma, which is only available if the -/proc pseudo-filesystem is -compiled into the kernel. - - A list of all currently-registered (ISA bus) -DMA channels that are in use is shown. The first -column shows the DMA channel, and the second column -shows the device which uses that channel. - - -Unused DMA channels are not listed. - - - -The user cannot modify any settings on this page. - - - - - - -IEEE 1394 Device Information Module - -The IEEE 1394 interface, also known as FireWire, -is a serial bus interface standard for high-speed -communications and isochronous real-time data transfer. - -The list in this module displays all devices attached to IEEE 1394 bus and -allows you to reset the bus by clicking the Generate 1394 Bus Reset -button. - -The meaning of the columns in this list: - -Name: port or node name, the number can change with each bus reset -GUID: the 64 bit GUID of the node -Local: checked if the node is an IEEE 1394 port of your computer -IRM: checked if the node is isochronous resource manager capable -CRM: checked if the node is cycle master capable -ISO: checked if the node supports isochronous transfers -BM: checked if the node is bus manager capable -PM: checked if the node is power management capable -Acc: the cycle clock accuracy of the node, valid from 0 to 100 -Speed: the speed of the node -Vendor: the vendor of the device - - - - - - -<acronym>PCI</acronym>-bus/Installed <acronym>PCI</acronym> Cards Information Module - -This page displays information about the -PCI-bus and installed PCI cards, -and other devices that use the Peripheral Component Interconnect -(PCI) bus. - -The exact information displayed is system-dependent. On some -systems, PCI-information can not yet be -displayed. - -On &Linux;, this information is read from /proc/pci which is only available if the -/proc pseudo-filesystem is -compiled into the kernel. A listing of all PCI -devices found during kernel initialization, and their configuration, is -shown. - -Each entry begins with a bus, device and function number. -The user cannot modify any settings on this page. - - - - - -Input/Output Port Information Module - -This page displays information about the I/O ports. - -I/O Ports are memory addresses used by the processor for direct -communication with a device that has sent an -interrupt signal to the processor. - -The exchange of commands or data between the processor and the device -takes place through the I/O port address of the device, which is a - hexadecimal -number. No two devices can share the same I/O port. Many devices use - multiple -I/O port addresses, which are expressed as a range of hexadecimal -numbers. - -The exact information displayed is system-dependent. On some -systems, I/O port information can not yet be displayed. - -On &Linux;, this information is read from /proc/ioports which is only available if -the /proc pseudo-filesystem is -compiled into the kernel. A list of all currently-registered I/O port -regions that are in use is shown. - -The first column is the I/O port (or the range of I/O ports), the -second column identifies the device that uses these I/O ports. - -The user cannot modify any settings on this page. - - - - - -<acronym>SCSI</acronym> Interface Information Module - -This page displays information about Small Computer Systems -Interface (SCSI) Interfaces and the attached -SCSI devices. - -The exact information displayed is system-dependent. On -some systems SCSI information cannot be displayed -yet. - -On &Linux;, this information is read from /proc/scsi/scsi, which is only available -if the /proc pseudo-filesystem is -compiled into the kernel. A listing of all SCSI -devices known to the kernel is shown. - -The devices are sorted numerically by their host, channel, and -ID numbers. - -The user cannot modify any settings on this page. - - - - - -<acronym>USB</acronym> Controller/<acronym>USB</acronym> Devices Information Module - -This module allows you to see the devices attached to your -USB bus(es). - -This module is for information only, you cannot edit any -information you see here. - - - - - -Samba Status Information Module - -The Samba and NFS Status Monitor is a front end -to the programs smbstatus and -showmount. Smbstatus reports on current Samba -connections, and is part of the suite of Samba tools, which implements -the SMB (Session Message Block) protocol, also called -the NetBIOS or LanManager protocol. - -This protocol can be used to provide printer sharing or drive -sharing services on a network including machines running the various -flavors of &Microsoft; &Windows;. - -showmount is part of the NFS -software package. NFS stands for Network File System -and is the traditional &UNIX; way to share folders over the -network. In this case the output of showmount - is parsed. On some systems showmount is in -/usr/sbin, check if you have -showmount in your PATH. - - -Exports - -On this page you can see a big list which shows the currently -active connections to Samba shares and NFS exports of -your machine. The first column shows you whether the resource is a Samba -(SMB) share or a NFS export. The -second column contains the name of the share, the third the name of the -remote host, which accesses this share. The remaining columns have only -a meaning for Samba-shares. - -The fourth column contains the User ID of the -user, who accesses this share. Note that this does not have to be equal -to the &UNIX; user ID of this user. The same applies -for the next column, which displays the group ID of the -user. - -Each connection to one of your shares is handled by a single -process (smbd), the next column shows the process -ID (pid) of this -smbd. If you kill this process the connected user -will be disconnected. If the remote user works from &Windows;, as soon -as this process is killed a new one will be created, so he will almost -not notice it. - -The last column shows how many files this user has currently open. -Here you see only, how many files he has open just -now, you don't see how many he copied or formerly opened &etc; - - - - -Imports - - Here you see which Samba- and NFS-shares from -other hosts are mounted on your local system. The first column shows -whether it is a Samba- or NFS-share, the second column -displays the name of the share, and the third shows where it is -mounted. - -The mounted NFS-shares you should see on -&Linux; (this has been tested), and it should also work on &Solaris; -(this has not been tested). - - - - -Log - -This page presents the contents of your local samba log file in a -nice way. If you open this page, the list will be empty. You have to -press the Update button, then the samba log file -will be read and the results displayed. Check whether the samba log file -on your system is really at the location as specified in the input -line. If it is somewhere else or if it has another name, correct -it. After changing the file name you have to press -Update again. - -Samba logs its actions according to the log level (see -smb.conf). If loglevel = 1, samba logs only when -somebody connects to your machine and when this connection is closed -again. If log level = 2, it logs also if somebody opens a file and if he -closes the file again. If the log level is higher than 2, yet more -stuff is logged. - -If you are interested in who accesses your machine, and which -files are accessed, you should set the log level to 2 and regularly -create a new samba log file (⪚ set up a cron task -which once a week moves your current samba log file into another -folder or something like that). Otherwise your samba log file may -become very big. - -With the four checkboxes below the big list you can decide, which -events are displayed in the list. You have to press -Update to see the results. If the log level of -your samba is too low, you won't see everything. - -By clicking on the header of one column you can sort the list by -this column. - - - -Statistics - -On this page you can filter the contents of the third page for -certain contents. - -Let's say the Event field (not the one in the -list) is set to Connection, -Service/File is set to *, -Host/User is set to *, -Show expanded service info is disabled and -Show expanded host info is disabled. - -If you press Update now, you will see how -often a connection was opened to share * (&ie; to any -share) from host * (&ie; from any host). Now enable -Show expanded host info and press -Update again. Now you will see for every host -which matches the wildcard *, how many connections -were opened by him. - -Now press clear. - -Now set the Event field to File Access and -enable Show expanded service info and press -Update again. - -Now you will see how often every single file was accessed. If you -enable Show expanded host info too, you will see -how often every single user opened each file. - -In the input lines Service/File and -Host/User you can use the wildcards -* and ? in the same way you use -them at the command line. Regular expressions are not -recognized. - -By clicking on the header of a column you can sort the list by -this column. This way you can check out which file was opened most -often, or which user opened the most files or whatever. - - - - - -Section Author - -Module copyright 2000: Michael Glauche and &Alexander.Neundorf; &Alexander.Neundorf.mail; - -Originally written by: Michael Glauche - -Currently maintained by: &Alexander.Neundorf; &Alexander.Neundorf.mail; - - -Contributors -Conversion to kcontrol applet: -&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail; -Use of K3Process instead of popen, and more error checking: -&David.Faure; &David.Faure.mail; -Conversion to kcmodule, added tab pages 2,3,4, bug -fixed: -&Alexander.Neundorf; &Alexander.Neundorf.mail; - - -Documentation copyright 2000 &Alexander.Neundorf; &Alexander.Neundorf.mail; - -Documentation translated to docbook by &Mike.McBride; &Mike.McBride.mail; - - - - - - - - - -Network Interfaces Information Module - - -This page displays information about the network interfaces -installed in your computer. - - -The exact information displayed is system-dependent. On -some systems, this information can not yet be displayed. - -The user cannot modify any settings on this page. - - - - - -OpenGL Information Module - -This page displays information about installed OpenGL implementation. -OpenGL (for "Open Graphics Library") is a cross-platform, -hardware independent interface for 3D graphics. - -GLX is the binding for OpenGL to X Window system. - - DRI (Direct Rendering Infrastucture) provides hardware acceleration for OpenGL. -You must have a videocard with 3D accelerator and properly installed driver for this. - - -Read more at the official OpenGL site http://www.opengl.org - - - - - -X Server Information Module - -This screen is useful for getting specific information about your -X server and the current session of X. - -When you open this module, you are presented with some -information. The left hand side of the window is organized into a -tree. Some of the elements have a plus sign in front of the label. -Clicking this sign opens a submenu related to the -label. Clicking on a minus sign in front of a label hides the -submenu. - -The right hand side of the window contains the individual -values for each of the parameters on the left. - -The information presented will vary depending on your -setup. - -Some setups may not be able to determine some or all of the -parameters. - -You can not change any values from this menu. It is for -information only. - - - - - - - -Credits and License - -&infocenter; -Program copyright 1997-2001 The &infocenter; Developers -Contributors: - - -Matthias Hoelzer-Kluepfel -&Matthias.Hoelzer-Kluepfel.mail; -&Matthias.Elter; &Matthias.Elter.mail; - - -Documentation copyright 2000 Michael -McBride &Mike.McBride.mail; - -Contributors: - - -&Paul.Campbell; &Paul.Campbell.mail; -&Helge.Deller; &Helge.Deller.mail; -&Mark.Donohoe; -&Patrick.Dowler; -&Duncan.Haldane; duncan@kde.org -&Steffen.Hansen; stefh@mip.ou.dk. -Matthias Hoelzer-Kluepfel &Matthias.Hoelzer-Kluepfel.mail; -Martin Jones &Martin.R.Jones.mail; -&Jost.Schenck; &Jost.Schenck.mail; -&Jonathan.Singer; &Jonathan.Singer.mail; -&Thomas.Tanghus; &Thomas.Tanghus.mail; -&Krishna.Tateneni; &Krishna.Tateneni.mail; -Ellis Whitehead ewhitehe@uni-freiburg.de - - - - - -&underFDL; -&underGPL; - - -
- diff --git a/doc/kinfocenter/kinfocenter.png b/doc/kinfocenter/kinfocenter.png deleted file mode 100644 index 29176c92..00000000 Binary files a/doc/kinfocenter/kinfocenter.png and /dev/null differ diff --git a/doc/kinfocenter/os_block.png b/doc/kinfocenter/os_block.png deleted file mode 100644 index 1fa1fce0..00000000 Binary files a/doc/kinfocenter/os_block.png and /dev/null differ diff --git a/doc/kinfocenter/pro_block.png b/doc/kinfocenter/pro_block.png deleted file mode 100644 index 551fbd1c..00000000 Binary files a/doc/kinfocenter/pro_block.png and /dev/null differ diff --git a/doc/kinfocenter/sto_block.png b/doc/kinfocenter/sto_block.png deleted file mode 100644 index 079f460d..00000000 Binary files a/doc/kinfocenter/sto_block.png and /dev/null differ diff --git a/doc/kioslave/CMakeLists.txt b/doc/kioslave/CMakeLists.txt deleted file mode 100644 index 4d19fd7e..00000000 --- a/doc/kioslave/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -add_subdirectory(bookmarks) -add_subdirectory(bzip2) -add_subdirectory(cgi) -add_subdirectory(finger) -add_subdirectory(fish) -add_subdirectory(floppy) -add_subdirectory(gzip) -add_subdirectory(info) -add_subdirectory(man) -add_subdirectory(network) -add_subdirectory(nfs) -add_subdirectory(sftp) -add_subdirectory(smb) -add_subdirectory(tar) -add_subdirectory(thumbnail) -add_subdirectory(xz) -add_subdirectory(nepomuksearch) diff --git a/doc/kioslave/bookmarks/CMakeLists.txt b/doc/kioslave/bookmarks/CMakeLists.txt deleted file mode 100644 index f030511b..00000000 --- a/doc/kioslave/bookmarks/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/bookmarks) - diff --git a/doc/kioslave/bookmarks/index.docbook b/doc/kioslave/bookmarks/index.docbook deleted file mode 100644 index 9923e6c0..00000000 --- a/doc/kioslave/bookmarks/index.docbook +++ /dev/null @@ -1,29 +0,0 @@ - - - -]> - -
-bookmarks - - - -XavierVello -xavier.vello@gmail.com - - - - -2008-08-31 -0.2 - - - -This KIO displays your bookmarks as a nice and functional &HTML; page. You access it typing bookmarks:/ in the &konqueror; location bar. - -The content and layout of the page is configurable. Just point &konqueror; to bookmarks:/config to launch the configuration dialog. - -
- diff --git a/doc/kioslave/bzip2/CMakeLists.txt b/doc/kioslave/bzip2/CMakeLists.txt deleted file mode 100644 index 114efda1..00000000 --- a/doc/kioslave/bzip2/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/bzip2) - diff --git a/doc/kioslave/bzip2/index.docbook b/doc/kioslave/bzip2/index.docbook deleted file mode 100644 index d104ac6f..00000000 --- a/doc/kioslave/bzip2/index.docbook +++ /dev/null @@ -1,40 +0,0 @@ - - - -]> - -
-bzip2 / bzip - - -&Lauri.Watts; &Lauri.Watts.mail; - - - - -bzip2 is a compression program. - -The bzip2 kioslave is not directly usable, and is intended for use -as a filter. For example, the tar kioslave can filter a file through -the bzip2 kioslave, in order to display the contents of a tar.bz2 file directly in a &konqueror; -window. - -If you click on a file compressed with a .bz2 in &konqueror;, this kioslave is used to -uncompress it and display it as a normal (uncompressed) file. - -If you are a developer, and would like to use the bzip2 filter, -you can find documentation on using kioslaves at http://techbase.kde.org - - See the manual: bzip2. - - -bzip is the ancestor of bzip2. It is rarely -used today, having been replaced with bzip2, which offers much better -compression. - -
diff --git a/doc/kioslave/cgi/CMakeLists.txt b/doc/kioslave/cgi/CMakeLists.txt deleted file mode 100644 index 132d95dd..00000000 --- a/doc/kioslave/cgi/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/cgi) - diff --git a/doc/kioslave/cgi/index.docbook b/doc/kioslave/cgi/index.docbook deleted file mode 100644 index 04e9721b..00000000 --- a/doc/kioslave/cgi/index.docbook +++ /dev/null @@ -1,45 +0,0 @@ - - - -]> - -
-cgi - - -&Lauri.Watts;&Lauri.Watts.mail; - - - - -The CGI slave provides a way to execute -CGI programs without the need to have a running web -server. This can for example be used for local testing of -CGI programs or for using search engines that only -provide a CGI frontend like the one from -Doxygen. - -The slave implements the cgi: protocol. It -uses the filename from the given &URL; and searches a configurable -list of folders. -The list of folders can be retrieved using the command -kde4-config -. The value defaults to $HOME/.kde4/cgi-bin/. - -Use the &systemsettings; module CGI Script -(launched with kcmshell4 -) to add or remove additional user defined paths that are searched for -CGI scripts. - -If this kioslave finds an executable with the given name it -executes it, passes the arguments of the &URL; and sets the -environment variables needed by CGI -programs. - -
- diff --git a/doc/kioslave/finger/CMakeLists.txt b/doc/kioslave/finger/CMakeLists.txt deleted file mode 100644 index a3bc4b6e..00000000 --- a/doc/kioslave/finger/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/finger) - diff --git a/doc/kioslave/finger/index.docbook b/doc/kioslave/finger/index.docbook deleted file mode 100644 index 988450b2..00000000 --- a/doc/kioslave/finger/index.docbook +++ /dev/null @@ -1,40 +0,0 @@ - - - -]> - -
-finger - - -&Lauri.Watts;&Lauri.Watts.mail; - - - - -Finger is a program to display information about users. - -If finger is enabled on the remote machine, you may be given -information on the user's real name, if they are currently logged in, if -they have mail and the text of their .plan file in -their home folder. - -Finger is normally associated with a user@hostname address, which -may or may not be the same as a users email address. - -Most Internet Service Providers no longer allow finger access, so, -you may find that you get no useful answer for most people. - -Other people use their local .plan file to -hold such information as PGP keys, the fact they are -on vacation, and all sorts of information. - -Use the finger kioslave like this: -finger://username@hostname - - See the manual: finger. - - -
diff --git a/doc/kioslave/fish/CMakeLists.txt b/doc/kioslave/fish/CMakeLists.txt deleted file mode 100644 index cdfbbe89..00000000 --- a/doc/kioslave/fish/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/fish) - diff --git a/doc/kioslave/fish/index.docbook b/doc/kioslave/fish/index.docbook deleted file mode 100644 index f1af31db..00000000 --- a/doc/kioslave/fish/index.docbook +++ /dev/null @@ -1,73 +0,0 @@ - - - -]> - -
-fish - - -&Joerg.Walter; &Joerg.Walter.mail; -&Brad.Hards; &Brad.Hards.mail; - - - -2010-10-27 -&kde; 4.5 - - - -Allows you to access another computer's files using the Secure SHell (SSH) protocol. The remote computer needs to be running the SSH daemon, but the remainder of the protocol uses standard commandline tools as discussed below. - -You can use the fish kioslave like this: -fish://hostname or fish://username@hostname. - -You need to use double forward slashes. - -You can omit the username (and the trailing -@ symbol) if you have the same username on both computers. - -You can add a password in the format: -fish://username:password@hostname -but it is not necessary as you will be prompted for one if it is not -supplied. - -If you are running the SSH daemon on a non-standard -port, you can specify that port using the normal &URL; syntax as shown -below: -fish://hostname:portnumber. - -Fish should work with any roughly POSIX compatible -&UNIX; based remote computer. It uses the shell commands -cat, chgrp, -chmod, chown, -cp, dd, -env, expr, -grep, ls, -mkdir, mv, -rm, rmdir, -sed, -and wc. Fish starts -/bin/sh as its shell and expects it to be a -Bourne shell (or compatible, like bash). -If the sed and -file commands are available, as well as a -/etc/apache/magic file with &MIME; type -signatures, these will be used to guess &MIME; types. - - -If Perl is available on the remote -machine, it will be used instead. Then only env and -/bin/sh are needed. Using -Perl has the additional benefit of being -faster. - -Fish may even work on &Windows; machines, if tools like -Cygwin are installed. All the above -utilities must be in the system PATH, and the initial -shell must be able to process the command echo -FISH:;/bin/sh correctly. - -
diff --git a/doc/kioslave/floppy/CMakeLists.txt b/doc/kioslave/floppy/CMakeLists.txt deleted file mode 100644 index 6eaae266..00000000 --- a/doc/kioslave/floppy/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/floppy) - diff --git a/doc/kioslave/floppy/index.docbook b/doc/kioslave/floppy/index.docbook deleted file mode 100644 index f90d4416..00000000 --- a/doc/kioslave/floppy/index.docbook +++ /dev/null @@ -1,58 +0,0 @@ - - - -]> - -
-Floppy - - -&Alexander.Neundorf; &Alexander.Neundorf.mail; - - - - - -The floppy ioslave gives you easy access to the floppy disk drives -installed on your system. - - - -The drive letter becomes the first subdirectory -in the floppy &URL;. Let's say there is a file logo.png on your floppy -disk in drive A, then the &URL; will be floppy:/a/logo.png - - - -If you want to access drive B, floppy:/b will do it. -floppy:/ is a shortcut for floppy:/a. - - -Note that floppy:/logo.png means you have a disk drive -named logo.png. - - -To use it you need to have the mtools package -installed, and the floppy ioslave supports everything the various mtools -command line utilities support. You don't have to mount your floppy disks, -simply enter floppy:/ in any &kde; 3.x app and you will be able to -read from and write to your floppy drive. - - -It also works with USB sticks, ZIP and JAZ drives. -You can use floppy:/u for the USB stick and floppy:/z for the zip drive, for example. -To make this work, you might need to adjust your /etc/mtools file. See the manpage -for documentation. - - -The ioslave gives read and write access to the floppy drive, but not -simultaneously. While you can read and write to the floppy during the same -session, reading and writing have to happen one after the other, not at the same -time. - -Author: Alexander Neundorf neundorf@kde.org - -
- diff --git a/doc/kioslave/gzip/CMakeLists.txt b/doc/kioslave/gzip/CMakeLists.txt deleted file mode 100644 index 7a2b465f..00000000 --- a/doc/kioslave/gzip/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/gzip) - diff --git a/doc/kioslave/gzip/index.docbook b/doc/kioslave/gzip/index.docbook deleted file mode 100644 index d8752a5c..00000000 --- a/doc/kioslave/gzip/index.docbook +++ /dev/null @@ -1,37 +0,0 @@ - - - -]> - -
-gzip - - -&Lauri.Watts; &Lauri.Watts.mail; - - - - -gzip is a compression program - -The gzip kioslave is not directly usable, and is intended for use -as a filter. For example, the tar kioslave can filter a file through -the gzip kioslave, in order to display the contents of a tar.gz file directly in a &konqueror; -window. - -If you click on a file compressed with a gz extension in &konqueror;, this kioslave is -used to uncompress it and display it as a normal (uncompressed) -file. - -If you are a developer, and would like to use the gzip filter, you -can find documentation on using kioslaves at http://techbase.kde.org - - See the manual: gzip. - - -
diff --git a/doc/kioslave/info/CMakeLists.txt b/doc/kioslave/info/CMakeLists.txt deleted file mode 100644 index 76351eff..00000000 --- a/doc/kioslave/info/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/info) - diff --git a/doc/kioslave/info/index.docbook b/doc/kioslave/info/index.docbook deleted file mode 100644 index 2724c7dd..00000000 --- a/doc/kioslave/info/index.docbook +++ /dev/null @@ -1,43 +0,0 @@ - - - -]> - -
-Info - - -&Lauri.Watts; &Lauri.Watts.mail; - - Nicolas - Goutte - goutte@kde.org - - - - - -Info is a type of documentation. The documents are in a file -format called texinfo, and can be read on the command line with the -info program. - -The Info ioslave allows you to read the info pages installed on -your system, from within &konqueror;. You can use it very easily: - -info:gcc - -This would show you the top level node of the Info documentation -for the &gcc; compiler. - -Info is a &GNU; replacement for -man, but is not widely used outside of -&GNU; software. - -You can quite easily browse the info documentation you have -installed from within the &khelpcenter; application, or you can use the -info ioslave directly from within both &konqueror; and the -mini-cli. - -
diff --git a/doc/kioslave/man/CMakeLists.txt b/doc/kioslave/man/CMakeLists.txt deleted file mode 100644 index 4d61de76..00000000 --- a/doc/kioslave/man/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/man) - diff --git a/doc/kioslave/man/index.docbook b/doc/kioslave/man/index.docbook deleted file mode 100644 index d337f2cb..00000000 --- a/doc/kioslave/man/index.docbook +++ /dev/null @@ -1,93 +0,0 @@ - - - -]> - -
-Man - - -&Lauri.Watts; &Lauri.Watts.mail; - - Nicolas - Goutte - goutte@kde.org - - - - - - -Using the man ioslave you are able to read the man pages installed -on your system. It is easy to use: - - - - -man: - -See the sections of the manual, click to find the rest. - - - - -man:/fopen - -See the man page of fopen. - - - - -man:/fopen(3) - -See the man page of fopen in section 3. - - - - -man:/(3) - -See the index of section 3. - - - - -man:/intro(3) - -See the introduction of section 3. - - - - - -If there are more than one man page of the name that you -have entered, you will get a list where you can choose the man page -that you want to see. - - -There is also a shortcut: #fopen, -which has the same effect as above. - - - -If you do not find all your man pages, adjust the configuration file -/etc/manpath.config -(or a file of a similar name depending on your distribution) -or adjust the environment variables -MANPATH and MANSECT. - - - -As with any other &kde; ioslave, it is possible to enter a &URL;, like -man:/socket in any -&kde; application. Try it in &kwrite; and you will see the man page in -&HTML; format. - - - -Contact mailing list: kde-devel@kde.org - - -
diff --git a/doc/kioslave/nepomuksearch/CMakeLists.txt b/doc/kioslave/nepomuksearch/CMakeLists.txt deleted file mode 100644 index 1154b0f2..00000000 --- a/doc/kioslave/nepomuksearch/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/nepomuksearch) - diff --git a/doc/kioslave/nepomuksearch/index.docbook b/doc/kioslave/nepomuksearch/index.docbook deleted file mode 100644 index 4843ebf6..00000000 --- a/doc/kioslave/nepomuksearch/index.docbook +++ /dev/null @@ -1,110 +0,0 @@ - - - - -]> - -
- nepomuksearch - - - - - Sebastian - Trüg - - trueg@kde.org - - - - - 2010-09-10 - 1.0.0 - - - - Overview - - The nepomuksearch protocol allows to search the Nepomuk meta data store for files or any other type of resource (although files is the most important use case since we are talking about virtual file systems here). - - For it to work the Nepomuk system needs to be activated. Activating the Strigi file indexer provides better results and way more search possibilities. - - - Typically nepomuksearch is used transparently to the user through an application like Dolphin which provide GUI elements to construct the necessary query and the corresponding URL. However, it is also possible to write a query URL manually. There are two different possibilities which might be of interest to the user (be aware that queries created as presented below are not restricted to files): - - - - nepomuksearch:/?query=Nepomuk - - - will look for anything containing the word "Nepomuk". "Nepomuk" can be replaced with anything the simple allows. - - - - - nepomuksearch:/?sparql=select ?r where { ?r nao:hasTag ?tag . ?tag nao:prefLabel 'Nepomuk'^^xsd:string . } - - - will execute the SPARQL query which in this case looks for all resources that are tagged with a tag that has the label "Nepomuk". Be aware that the query needs to be percent-encoded, &ie; a URI like <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#Tag> would have to be written as %3chttp:%2f%2fwww.semanticdesktop.org%2fontologies%2f2007%2f08%2f15%2fnao#Tag%3e. - - - - - - - - Nepomuk Query Syntax - The syntax is fairly simple. Multiple query terms can be combined with the keywords AND or OR, terms can be excluded by prefixing them with a minus, and specific properties can be searched by combining the property name with a comparator and the value. - - This syntax can also be used in standard search fields such as the Dolphin one. - - - Examples - - - - Nepomuk KDE or Nepomuk AND KDE - - - search for everything containing the words "Nepomuk" and "KDE" in any of their properties (this includes the content of files). - - - - - Nepomuk OR KDE - - - search for everything containing either the word "Nepomuk" or the word "KDE" in any of their properties. - - - - - "Nepomuk KDE" - - - search for everything containing the exact phrase "Nepomuk KDE" in any of their properties. - - - - - hastag:Nepomuk - - - search for everything that is tagged with a tag named "Nepomuk". - - - - - +hastag:nepomuk AND -hastag:scribo - - - search for everything that has a tag labeled "nepomuk" but not a tag labeled "scribo". - - - - - - -
diff --git a/doc/kioslave/network/CMakeLists.txt b/doc/kioslave/network/CMakeLists.txt deleted file mode 100644 index 707228e9..00000000 --- a/doc/kioslave/network/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/network) diff --git a/doc/kioslave/network/index.docbook b/doc/kioslave/network/index.docbook deleted file mode 100644 index 560d4c1d..00000000 --- a/doc/kioslave/network/index.docbook +++ /dev/null @@ -1,61 +0,0 @@ - - - -]> - -
- -network - - - - - Friedrich W. H.Kossebau - kossebau@kde.org - - - - - 2009-04-28 - 0.1 - - - - - - The network ioslave enables the user to browse the devices connected to the local network - and the services running on them. It it also possible to start programs for services - whose type is known. - - - - To see all the devices found, enter - network:/. - - - - network:/hostname_of_device - will list the services found to be running on a device. - - - - Selecting a service will forward to a url which matches the service, given there is a suitable, e.g. - ssh:/hostname_of_device:port/ for a SSH service. - Each known service type has a mimetype assigned to it, so a user can assign new handlers - for the resulting urls. This is done with the control module - File Associations in &systemsettings;. - The mimetypes of the services are currently all named inode/vnd.kde.service.*. - - - - - The network kioslave currently only finds and displays devices and services which are - actively advertising themselves using the service discovery framework - DNS-SD. - - - -
- diff --git a/doc/kioslave/nfs/CMakeLists.txt b/doc/kioslave/nfs/CMakeLists.txt deleted file mode 100644 index 668a6040..00000000 --- a/doc/kioslave/nfs/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/nfs) - diff --git a/doc/kioslave/nfs/index.docbook b/doc/kioslave/nfs/index.docbook deleted file mode 100644 index f0c8799b..00000000 --- a/doc/kioslave/nfs/index.docbook +++ /dev/null @@ -1,46 +0,0 @@ - - - -]> - -
-nfs - - -&Lauri.Watts; &Lauri.Watts.mail; - - - - -Sun's NFS protocol provides transparent remote access to -shared file systems across networks. The NFS protocol is -designed to be machine, operating system, network architecture, and -transport protocol independent. This independence is achieved through the -use of Remote Procedure Call (RPC) primitives built on -top of an eXternal Data Representation (XDR). - - - -The supporting MOUNT protocol performs the operating system-specific -functions that allow clients to attach remote folder trees to a point -within the local file system. The mount process also allows the server to -grant remote access privileges to a restricted set of clients via export -control. - - -The Lock Manager provides support for file locking when used in the -NFS environment. The Network Lock Manager -(NLM) protocol isolates the inherently stateful aspects -of file locking into a separate protocol. - - -Source: - -http://www.networksorcery.com/enp/protocol/nfs.htm - - - See the manual: nfs. - -
diff --git a/doc/kioslave/sftp/CMakeLists.txt b/doc/kioslave/sftp/CMakeLists.txt deleted file mode 100644 index 9e83b7eb..00000000 --- a/doc/kioslave/sftp/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/sftp) - diff --git a/doc/kioslave/sftp/index.docbook b/doc/kioslave/sftp/index.docbook deleted file mode 100644 index ba14a682..00000000 --- a/doc/kioslave/sftp/index.docbook +++ /dev/null @@ -1,26 +0,0 @@ - - - -]> - -
-sftp - - -&Ferdinand.Gassauer; &Ferdinand.Gassauer.mail; - - - -SFTP is a Secure file transfer protocol. -sftp is an interactive file transfer program, -similar to ftp, but it performs all operations over an encrypted -ssh transport. It may use many of the features of -ssh, including public key authentication and -compression. - - See the manual: sftp. - - -
diff --git a/doc/kioslave/smb/CMakeLists.txt b/doc/kioslave/smb/CMakeLists.txt deleted file mode 100644 index 06084267..00000000 --- a/doc/kioslave/smb/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/smb) - diff --git a/doc/kioslave/smb/index.docbook b/doc/kioslave/smb/index.docbook deleted file mode 100644 index e676e8ae..00000000 --- a/doc/kioslave/smb/index.docbook +++ /dev/null @@ -1,64 +0,0 @@ - - - -]> - -
-SMB - - -&Alexander.Neundorf; &Alexander.Neundorf.mail; - - - - -The smb ioslave enables you to browse the shares of a &Windows; (or Samba) -network. - - - -To see the workgroups, enter -smb:/. - - -smb://a_workgroup -will list the hosts in this workgroup. - - -To see the shares of a host, enter -smb://the_host -or -smb:/a_workgroup/the_host. - - -To access a share directly enter -smb://the_host/the_share -or -smb:/a_workgroup/the_host/the_share - - - -The smb ioslave requires that you have libsmbclient to use this ioslave. - - - -You can set your default user name and password in the &systemsettings; -category Network and Connectivity in -Sharing -Windows Shares. This is especially useful if you are a -member of a &Windows; NT domain. There you can also set your -workgroup name, but in most cases this is not required. The kioslave will ask for your username and password if a default is not set. - - - -This ioslave is tested and developed using mainly Samba 2.0.7, but other -versions of Samba should work too. - - - -Author: Alexander Neundorf neundorf@kde.org - -
- diff --git a/doc/kioslave/tar/CMakeLists.txt b/doc/kioslave/tar/CMakeLists.txt deleted file mode 100644 index 9577b046..00000000 --- a/doc/kioslave/tar/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/tar) - diff --git a/doc/kioslave/tar/index.docbook b/doc/kioslave/tar/index.docbook deleted file mode 100644 index d15770ac..00000000 --- a/doc/kioslave/tar/index.docbook +++ /dev/null @@ -1,25 +0,0 @@ - - - -]> - -
-tar - - -&Ferdinand.Gassauer; &Ferdinand.Gassauer.mail; - - - - -An archiving program designed to store and extract files from an archive -file known as a tarfile. A tarfile may be made on a tape drive, however, it -is also common to write a tarfile to a normal file. - - - See the manual: tar. - - -
diff --git a/doc/kioslave/thumbnail/CMakeLists.txt b/doc/kioslave/thumbnail/CMakeLists.txt deleted file mode 100644 index 987324e7..00000000 --- a/doc/kioslave/thumbnail/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/thumbnail) - diff --git a/doc/kioslave/thumbnail/index.docbook b/doc/kioslave/thumbnail/index.docbook deleted file mode 100644 index 5cbd9a2b..00000000 --- a/doc/kioslave/thumbnail/index.docbook +++ /dev/null @@ -1,35 +0,0 @@ - - - -]> - -
-thumbnail - - -&Carsten.Pfeiffer; &Carsten.Pfeiffer.mail; - - - -The thumbnail kioslave is used by &kde; for network transparent -and persistent generation of thumbnails. - -The thumbnail kioslave uses plugins to generate the actual -thumbnails. You can enable viewing of these thumbnails from the -View -Preview submenu, available in -&konqueror; in file manager mode. - -The thumbnail kioslave is not directly useful to a user, but if -you are a developer, you can use it within your own applications to -create file previews. - -See the documentation in the sources for more information. You -will find these at -$KDEDIR/include/kio/thumbcreator.h or -in the source folder kdebase/runtime/kioslave/thumbnail - -
diff --git a/doc/kioslave/xz/CMakeLists.txt b/doc/kioslave/xz/CMakeLists.txt deleted file mode 100644 index 6d422ad5..00000000 --- a/doc/kioslave/xz/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kioslave/xz) - diff --git a/doc/kioslave/xz/index.docbook b/doc/kioslave/xz/index.docbook deleted file mode 100644 index b8c5fecf..00000000 --- a/doc/kioslave/xz/index.docbook +++ /dev/null @@ -1,37 +0,0 @@ - - - -]> - -
-xz / lzma - - -Per Øyvind Karlsen - - - - -Xz is a compression program - -The xz kioslave is not directly usable, and is intended for use -as a filter. For example, the tar kioslave can filter a file through -the xz kioslave, in order to display the contents of a tar.lzma or tar.xz -file directly in a &konqueror; window. - -If you click on a file compressed with a .lzma or tar.xz -in &konqueror;, this kioslave is used to -uncompress it and display it as a normal (uncompressed) file. - -If you are a developer, and would like to use the xz filter, -you can find documentation on using kioslaves at http://techbase.kde.org - -See the manual: xz. - - -
diff --git a/doc/klipper/CMakeLists.txt b/doc/klipper/CMakeLists.txt deleted file mode 100644 index 0df9c9ad..00000000 --- a/doc/klipper/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -########### install files ############### -# -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/klipper/index.docbook b/doc/klipper/index.docbook deleted file mode 100644 index c119f6d6..00000000 --- a/doc/klipper/index.docbook +++ /dev/null @@ -1,532 +0,0 @@ - - - - - -]> - - - -The &klipper; Handbook - - -&Philip.Rodrigues; &Philip.Rodrigues.mail; - - -&Carsten.Pfeiffer; &Carsten.Pfeiffer.mail; - - - - - - - - -2000-2003 -&Philip.Rodrigues; - - -&FDLNotice; - -2013-06-02 -0.9.7 (&kde; 4.11) - - -&klipper; is the &kde; clipboard cut & paste utility. - - - -KDE -Klipper -kdebase -clipboard - - - - -Introduction -&klipper; is the &kde; clipboard utility. It stores clipboard -history, and allows you to link clipboard contents to application -actions. Please report any problems or feature requests to KDEs bugzilla or use the Report Bug -item in the Help menu. - - - - -Using &klipper; - - -Basic Usage - -The &klipper; icon. - - - - - -The &klipper; icon - - - - -To display the clipboard history, click on the &klipper; icon in - the &kde; panel, or press &Ctrl;&Alt;V . Previous - clipboard entries are shown at the top of the popup menu which - appears. Selecting one of these copies it to the clipboard, from - where it can be pasted into any &kde; or X application as - usual. - -The shortcut for this action has to be configured in the -System Tray Settings on the Entries -page. - -You can search through the clipboard history by opening it -(click on &klipper;) and typing your query. The results are updated as -you type. In case you're wondering how to use the accelerator keys in -the &klipper; menu, just press &Alt; and the accelerator you want. For -example, to clear the clipboard history when the &klipper; menu is -open, press &Alt; and the underlined letter in Clear Clipboard History -. - -Select Show Barcode from the &klipper; popup menu to open a -dialog with a QRCode and a -DataMatrix barcode. -Use &ksnapshot; to capture the barcodes and save them. - - -To disable &klipper;, click on its icon and -from the menu that appears, select -Quit. - - - - -Actions - -&klipper; can perform actions on the contents of the clipboard, -based on whether they match a particular regular expression. For -example, any clipboard contents starting with http:// can -be passed to Firefox or &konqueror; as &URL;s to open. In addition, if the -contents matches a path, similar actions can be performed according to the file's -type. E.g, if the path to a PDF file is copied to the clipboard, the file can be -viewed in &okular;. - -To use this feature, just select a &URL; or path. -If there is a matching regular expression in &klipper;'s -list, a menu will appear showing you the programs for your selection. -Use the mouse or cursor keys to select a program, and &klipper; will run -this program, opening the address pointed to by the -selection. - -If you do not want to perform any actions on the clipboard -contents, select Disable This Popup on the pop-up menu -to return to what you were doing before. If you leave the menu, it will -disappear, leaving you to continue your work. You can change the time -that the menu remains for in the Configure Klipper... -dialog, with the option Timeout for action popups -under the General page. You can separately disable the -file path part using the option Enable MIME-based actions under -the Actions page. - -Actions can be disabled completely by clicking on &klipper; and -deselecting Enable Clipboard Actions, or by pressing -&Ctrl;&Alt;X. - -Clipboard contents which match a regular expression can also be -edited before performing an action on them. Select Edit -contents... on the &klipper; pop-up menu, and you can -change the clipboard contents in the dialog which appears, before -clicking the OK button to run the appropriate -action. - -Pressing &Ctrl;&Alt;R shows the pop-up -menu to repeat the last action which &klipper; performed. - - - - -Clipboard/Selection Behavior - - -General - -&klipper; can be used to set the behavior of the clipboard and selection in -&kde;. - - -The &X-Window; uses two separate clipboard buffers: the -selection and the clipboard. Text is -placed in the selection buffer by simply selecting it, and can be -pasted with the middle mouse button. To place text in -the clipboard buffer, select it and press -&Ctrl;X or -&Ctrl;C . Text from the -clipboard buffer is pasted using &Ctrl;V - or by selecting -EditPaste -. - - - - - - -Changing Clipboard/Selection Behavior - -In order to change clipboard/selection behavior, select -Configure &klipper;... from the &klipper; pop-up menu, -and in the dialog box that appears, select the -General page. Unchecking Synchronize contents of the clipboard and the -selection makes the clipboard and selection function as completely -separate buffers as described above. With this option set, the option -Ignore selection will prevent &klipper; from -including the contents of the selection in its clipboard history and from -performing actions on the contents of the selection. Selecting -Synchronize contents of the clipboard and the selection -causes the clipboard and selection buffers to always be the same, meaning that -text in the selection can be pasted with either the -middle mouse button or the key combination &Ctrl;V -, and similarly for text in the clipboard buffer. - - - - - - - - - - - - -Configuring &klipper; - - - -Viewing the Configuration Dialog - -To view or change &klipper;'s settings, open the &klipper; -pop-up menu, and select Configure Klipper.... The &klipper; -configuration dialog will appear. Its contents are described -below. - - - - -General Options - - - - -Save clipboard contents on -exit If this option is on, the clipboard -history will be saved when &klipper; exits, allowing you to use it next time -&klipper; starts. - - - - -Prevent empty clipboard -If selected, the clipboard will never be empty: &klipper; will -insert the most recent item from the clipboard history into the clipboard -instead of allowing it to be empty. - - - -Ignore images -When an area of the screen is selected with mouse or keyboard, -this is called the selection. If this option is selected, only text -selections are stored in the history, while images and other selections are not. - - - - - -Ignore selection -Sets the clipboard mode. This option will prevent &klipper; from -including the contents of the selection in its clipboard history and from -performing actions on the contents of the selection. See . - - - - - -Text selection only -When an area of the screen is selected with mouse or keyboard, this is -called the selection. If this option is selected, only text selections -are stored in the history, while images and other selections are not. -See . - - - - - -Synchronize contents of the clipboard and the -selection -Sets the clipboard mode. -When an area of the screen is selected with mouse or keyboard, this is -called the selection. If this option is selected, the selection and the -clipboard is kept the same, so that anything in the selection is immediately -available for pasting elsewhere using any method, including the traditional -middle mouse button. Otherwise, the selection is recorded in the clipboard -history, but the selection can only be pasted using the middle mouse button. -Also see the Ignore selection option. -See . - - - - - -Timeout for Action pop-ups -Set the time that a popup menu will remain for if you do -nothing with it. - - -Clipboard history -size -Sets the number of items that are stored -in the clipboard history. - - - - - - - -Actions Options - - - -Replay actions on an item selected from -history -If this is switched on, selecting an item from the history -causes &klipper; to display the actions pop-up on that item, if -appropriate. - - - - -Remove white space when executing actions -If selected, any white space (spaces, tabs, &etc;) at the -beginning and end of the clipboard contents will be removed before passing the -clipboard contents to an application. This is useful, for example, if the -clipboard contains a &URL; with spaces which, if opened by a web browser, would -cause an error. - - - - -Enable MIME-based actions -If selected, in addition to the actions you defined -a list of applications for the detected MIME type will appear in the popup menu. - - - - -Editing Expressions/Actions -On the Actions page, double-click -the regular expression or action that you want to edit or select it and -press the Edit Action button. A dialog will appear in which the -expression text can be edited as you wish. - - - -Adding Expressions/Actions -Click the Add Action button -to add a regular expression for &klipper; to match. &klipper; uses -&Qt;'s QRegExp, which understands most regular -expressions as you would use in grep or -egrep for instance. -You can add a description of the regular expression type (⪚ -HTTP URL) by left clicking in the -Description column. - -You can find detailed information about the use of -QRegExp regular expressions at http://qt-project.org/doc/qt-4.8/qregexp.html#details. -Note that &klipper; does not support the wildcard mode mentioned on this -page. - -Edit the regular expression as described above. To add a command -to execute, click Add Command and edit the command -in an in-place text editing box. Double-clicking on a command allows you to edit it. - -Note that %s in the command line is replaced with -the clipboard contents, ⪚ if your command definition is -kwrite %s and -your clipboard contents are /home/phil/textfile, -the command kwrite -/home/phil/textfile will be run. To -include %s in the command line, escape it with a -backslash, as so: \%s. - - -Advanced -Brings up the Disable Actions for windows of type -WM_CLASS dialog. -Some programs, such as &konqueror;, -use the clipboard internally. If you get unwanted &klipper; pop-ups all the time -when using a certain application, do the following: - - -Open the application. -From a terminal, run xprop -| grep WM_CLASS -and then click on the window of the application you are -running. -The first string after the equals sign is the one to -enter. - - -Once the WM_CLASS is added, no more actions will be generated for -windows of that application. - - - - - - - -Shortcuts Options - -The shortcuts page allows you to change the keyboard shortcuts -which are used to access &klipper; functions. You can change the -shortcut to one of three things: - - - -None -The selected action cannot be accessed directly from the -keyboard - - -Default -The selected action uses &klipper;'s default key. These are the -shortcuts referred to in this manual. - - -Custom -The selected action is assigned to the keys you choose. -To choose a custom key for the action you have selected, click on -Custom and then None. -Now type the desired key combination on your keyboard, as in any &kde; application. - - - - -If you define a shortcut for Open Klipper at Mouse Position -pressing this shortcut will open the &klipper; popup menu at the position of -the mouse cursor, instead of their default position (in the &kde; Panel). -Useful if you use the mouse more than the keyboard. - - - - - -Credits and License - - -&klipper; - - -Program copyright 1998 &Andrew.Stanley-Jones; asj@cban.com - - -Program copyright 1998-2000 &Carsten.Pfeiffer; &Carsten.Pfeiffer.mail; - -Currently maintained by Esben Mose Hansen. See http://mosehansen.dk/about -for contact details. - - - -Documentation copyright 2000-2003, 2005 &Philip.Rodrigues; -&Philip.Rodrigues.mail; - - -&underFDL; -&underGPL; - - - - -Installation - - -How to obtain &klipper; - -&install.intro.documentation; - - - - -Compilation and Installation -&install.compile.documentation; - - - - - - -&documentation.index; - - - - - - - - - - - - - diff --git a/doc/klipper/screenshot.png b/doc/klipper/screenshot.png deleted file mode 100644 index 6c660576..00000000 Binary files a/doc/klipper/screenshot.png and /dev/null differ diff --git a/doc/kmenuedit/CMakeLists.txt b/doc/kmenuedit/CMakeLists.txt deleted file mode 100644 index cad13c8f..00000000 --- a/doc/kmenuedit/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/kmenuedit/done.png b/doc/kmenuedit/done.png deleted file mode 100644 index e9caa39e..00000000 Binary files a/doc/kmenuedit/done.png and /dev/null differ diff --git a/doc/kmenuedit/index.docbook b/doc/kmenuedit/index.docbook deleted file mode 100644 index b02f6851..00000000 --- a/doc/kmenuedit/index.docbook +++ /dev/null @@ -1,645 +0,0 @@ - - - - Firefox"> - - -]> - - - - - -The &kde; Menu Editor Handbook - - -&Milos.Prudek; &Milos.Prudek.mail; -&Anne-Marie.Mahfouf; &Anne-Marie.Mahfouf.mail; - -&Lauri.Watts; &Lauri.Watts.mail; - - - - - - -2000 -&Milos.Prudek; - - -2008 -&Anne-Marie.Mahfouf; - - -&FDLNotice; - -2013-09-07 -0.9 (&kde; 4.11) - -&kmenuedit; allows editing one of the &kde; application launchers: &kickoff;, the classic &kmenu; or Lancelot Launcher. - - - -KDE -KDE Menu Editor -kmenuedit -application -program -menu -kickoff -Lancelot - - - - -Introduction - -&kmenuedit; allows editing the menu of &kde; application launchers: &kickoff;, classic &kmenu; or Lancelot Launcher. - -&kmenuedit; can be started either by &RMB; clicking the application launcher -button on the panel and choosing Edit -Applications..., or -by typing kmenuedit in the &krunner; line. - -&kmenuedit; allows you to: - - -View and edit the menu used by the current application launcher (&kickoff;, classic menu or Lancelot Launcher) -Cut, Copy -and Paste submenus and items -Create and delete submenus and items -Change the order of submenus and items -Hide items and add new submenus and items - - -By default all applications installed on the computer appear in the application launchers menu of all users. -Applications may appear more than once in several different menus. -Empty submenu categories defined in the desktop menu specification will show up as well, -but are not visible in application launchers unless you install applications belonging to these categories. - - -The tree view has three different entry types: - -Submenu: Only Name, Comment and -Description fields and the button to select an icon -are enabled, the Advanced tab is disabled. -Any submenu can hold additional submenus and/or items. - -Items: Use this entry to enter the data for the application you want to add. -For detailed information see Using &kmenuedit;. - -Separator: A visual entry to structure the menu. It cannot be modified -and all editing actions are disabled. - - - -&kmenuedit; has two tree view modes - normal and with hidden entries. To see the latter check the option -Show hidden entries in the configuration dialog on the General options page. - -Many additional entries appear in hidden view mode in the tree. Several hidden entries seem to be just duplicates -but have different command options. Usually you should never change these hidden entries or you risk to break some -functionality of the system. - -In hidden mode you will have a special submenu .hidden [Hidden] as top level -item in the tree. This special submenu is not editable. In this submenu all deleted items will be shown at the next -start of &kmenuedit;. -It is not possible to delete entries using the &GUI; in this special submenu. They will reappear at the -next start of &kmenuedit;. - - - -Use Cases - - -Adapt the Menu for a User - - -Reorder Items - -This should be done in hidden view mode where only the submenus and items visible in the application -launcher menu are displayed. - -By default the menu is sorted alphabetically using the English names or descriptions. Using another language -than English some submenus and items therefore will appear in an unsorted order. - -Use the options in EditSort -to sort either by name or description. If you use the classic application launcher you have to select the -corresponding Format option in the settings dialog. In the &kickoff; launcher check -Show applications by name if you sort them by name here. - -Grouping your frequently used submenus or items together ⪚ at the top of the menu makes selecting them easier. -To change the order of particular items or submenus in the tree use the Move Up or -Move Down button in the toolbar or these actions in the menu. - -All application launchers will use the order of submenus defined in &kmenuedit;. - - - - -Remove Items from the Menu View - -Having shown all applications installed on a computer may be confusing for some users so you may -want to hide some less frequently used items or submenus. There are two different ways to do that: - - -Switch to normal view mode without hidden entries. If you delete items they are moved to the -.hidden [Hidden] submenu. You can move them back into the tree to have them in the menu again. - -If you delete a submenu it will be really deleted with all its submenus and items. -To recreate them you can use EditRestore to System -Menu, but this will remove all your custom submenus and items -and the corresponding .desktop files are deleted too. This action cannot be reverted. - - -The preferred way to remove submenus and items in the menu of an application launcher is to check Hidden -entry on the General tab and switch to the hidden view mode. -In this mode it is easy to revert changes without destroying the menu structure. -The only drawback is that you have to hide all entries in a submenu manually to -hide the whole submenu from the view. - - - - - - -Adding Custom Items - -To add custom items (submenu, item or separator) use the actions in the menu or toolbar. -Items need a Name and a Command, without a command entry an item will not be saved and your addition gets lost. - -If you add an entry it is inserted as sub entry at the actual highlighted position in the tree. -Move an entry by dragging it with the mouse or using the Move Down button -to the bottom of the tree to make it a top level entry. - - - - - -Transfer application launcher settings - -There is no way to transfer menu settings using the &GUI;, you have to do that manually -and copy the following files to the target user: -&kmenuedit; stores the menu hierarchy in -$HOME/.config/menus/applications-kmenuedit.menu -and $HOME/.local/share/desktop-directories -contains desktop files for submenus you created. -In $HOME/.local/share/applications/ you -find the desktop files for the custom items you created. - -The shortcuts for each application are stored in ~/.kde/share/config/kglobalshortcutsrc, -but export/import does not work because the UUIDs of the shortcuts do not match up between systems, even though the -.desktop files are the same. You have to assign all shortcuts manually again. - - - - - - - - - - -&Virgil.J.Nisly; &Virgil.J.Nisly.mail; - - -Adding a Menu Entry - - In this example, we will add &firefox; to the Internet submenu. - To start off, we need to open &kmenuedit;, so &RMB; on the application -launcher menu, click Edit Applications... to start -&kmenuedit;. After &kmenuedit; has started, select Internet as shown in picture below. - -Select Internet - - - - - -Select Internet - - - - - Once you have selected Internet, click on FileNew Item..., opening the New Item dialog, as shown below. Type the name of the program you want to add, in this case, type firefox. - -New Item dialog - - - - - -The New Item dialog. - - - - - -Press return, and you should see something like the picture below in the main window. - -New Item - - - - - -The new item created. - - - - - -Now lets fill in the Description:, in this case type Web Browser. -The appearance how description and name will be displayed depends on the settings in the application -launcher ⪚ Web Browser (Firefox) or Firefox (Web Browser). -We will need to fill in the executable name in the Command: field, in this instance we will type firefox. -The command has to be in your PATH variable or you have to specify the full path to the executable. -If you do not know the executable name of an application use the locate -command to search for the desktop file and enter the string from the Exec line as command here. - -Following the command, you can have several place holders which will be replaced with actual values when the program is run: - -%f - a single file name -%F - a list of files; use for applications that can open several local files at once -%u - a single &URL; -%U - a list of &URL;s -%d - the folder of a file to open -%D - a list of folders -%i - the icon -%m - the mini icon -%c - the caption - -For example: if you want to firefox to start your web browsing at www.kde.org - instead of firefox you would type firefox %u www.kde.org. -Most applications accept additional options ⪚ the name of a defined profile like &konqueror; or &konsole;. -To see all options for an application launch applicationname in &konsole;. -We would like to have a more creative icon, so we will click the generic icon sitting beside Name: (note, the default icon may be blank, in which case click in the area to the right of the name entry box.) It will bring the Select Icon dialog which will let us choose the new icon, as shown below. - -Select Icon dialog - - - - - -The Select Icon dialog. - - - - - We choose the firefox icon from the list, and press &Enter;. Your finished screen should probably look something like the screenshot below. - -Done screenshot - - - - - -This is what the completed menu item should looks like. - - - - -The place of the new menu item can now be changed using Move Up and Move Down buttons on the &kmenuedit; toolbar or by dragging with the mouse. - The submenu items can be sorted using Sort button on the &kmenuedit; toolbar or EditSort submenu items. - -Click FileSave, wait for the Updating System Configuration dialog to get finished, you should find &firefox; in the application launcher Internet submenu. - - - - -Using &kmenuedit; - -The left application panel shows the application launcher structure. When -you browse items in the left panel, the right panel shows detailed -information for the highlighted menu item. - - -General tab - - - -Name: -This is the name of your program as it appears in the -application launcher menu. It can be different from the real executable -name. For instance the name of mc executable is -"Midnight Commander". - - -Description: -The description will be displayed together with the name in the application launcher. This is entirely optional. - - -Comment: -Describe the program in greater detail in this field. This is -entirely optional. - - -Command: -This is the name of the executable program. Make sure that you -have permission to run the program. - - -Enable launch feedback -If this box is checked, this will display feedback when an application is started. - - - -Place in system tray -When checked, the application's icon will show up in the panel system tray. -You will then be able to hide or show the application by clicking on the system -tray icon. Clicking on it using the &RMB; will allow also you to undock, or quit the -application. - - - -Only show in &kde; -When checked, the application entry will only be visible in all &kde; application launchers but not in other desktops environments. - - - -Hidden entry -Remove an entry from the menu view in the application launcher. - - - - - -Advanced tab - - - -Work path: -Specify the work path of the program. This will be the current -path when the program launches. It does not need to be the same as the -executable location. - - -Run in terminal -You must check this if your program requires terminal emulator -in order to run. This mainly applies to console -applications. - - -Terminal options: -Put all terminal options in this field. - - -Run as a different user -If you want to run this program as a different user (not you), -check this checkbox, and provide the username in the -Username: field. - - - -Current shortcut key: -You can assign a special keyboard shortcut to launch your program. - -Click the None button to the right of the Current -shortcut key: checkbox. - -The button text will change to Input... -and you can press the key combination on your keyboard that you want to be assigned to your program. - -You can reset the shortcut to None by using this button: . - - -Don't forget to save your setting by clicking the toolbar Save icon or using the -FileSave - menu item. - - - - - - - - - -Menu Reference - -Most actions in the menubar are also available in the context menu opened with a &RMB; -click on an item in the tree view. - - - - -&Ctrl;N -File New Item... - Adds new menu -item. - - - - -File -New Submenu... - -Adds new submenu. - - - -FileNew -Separator - -Adds a new separator to the menu. - - - - - -&Ctrl;S -FileSave - - -Saves the menu - - - - - - -&Ctrl;Q - -File -Quit - -Quits &kmenuedit;. - - - - -Edit -Move Up - -Moves the selected item up in its submenu. - - - - -Edit -Move Down - -Moves the selected item down in its submenu. - - - - - - -&Ctrl;X - - -Edit Cut - -Cuts the current menu item to the clipboard. If -you want to move menu item, you should first cut it to the clipboard, move to -the destination place using the left panel, and use the -Paste function to paste the menu item from the -clipboard. - - - - - -&Ctrl;C - - -Edit Copy - -Copies the current menu item to the -clipboard. You can later use the Paste -function to paste the copied menu item from the clipboard to its destination. You -can paste the same item many times. - - - - - -&Ctrl;V - -Edit -Paste -Paste menu item from the clipboard to currently -selected place in the main menu. You must first use -Cut or Copy before you can -Paste. - - - - -Del -Edit Delete - -Deletes currently selected menu -item. - - - - -Edit -Sort - -Opens submenu to sort selected submenu or all menu tree. There are two sorting methods implemented, namely, by the name and by the description. - - - - -Edit Restore to System Menu - -This will restore the application launcher as it was as default and remove all your custom settings. A message box will ask you if you really want to do that. - - - - - -&kmenuedit; has the common &kde; Settings and Help -menu items, for more information read the sections about the Settings Menu and Help Menu -of the &kde; Fundamentals. - - - - - - -Credits and License - - -&kmenuedit; - -Program copyright © 2002, &Raffaele.Sandrini; - -Contributors: - -&Matthias.Elter; &Matthias.Elter.mail; - Original -Author - -&Matthias.Ettrich; &Matthias.Ettrich.mail; - -&Daniel.M.Duley; &Daniel.M.Duley.mail; - -&Preston.Brown; &Preston.Brown.mail; - - - -Documentation copyright © 2000 &Milos.Prudek; -Documentation copyright © 2008 &Anne-Marie.Mahfouf; -Updated for &kde; 3.0 by &Lauri.Watts; &Lauri.Watts.mail; -2002 - - - -&underFDL; -&underGPL; - - - - -Glossary - - -Console Application - - -Application originally written for non-graphic, text oriented -environment. Such applications run fine in &kde;. They must run within -console emulator, like &konsole;. They are not warned automatically -when you shut down your &kde; session. You therefore must not forget -to save documents open in these applications before you log out from -the &kde;. - -Console applications support copying and pasting from -&kde;-compliant applications.Simply mark the text in the console -application with your mouse, switch to the &kde;-compliant application -and press &Ctrl; -V to paste the text. If you want to copy -from &kde; application to a console application, first mark the text -with your mouse, press &Ctrl; -C, switch to the console application and -press the middle button on your mouseIf your mouse -does not have a middle button, you must press -left and right -button at the same time. This is called middle button -emulation and it must be supported by your operating system to -work.. - - - - - - -&documentation.index; - - - - diff --git a/doc/kmenuedit/itemname.png b/doc/kmenuedit/itemname.png deleted file mode 100644 index 5d0abffa..00000000 Binary files a/doc/kmenuedit/itemname.png and /dev/null differ diff --git a/doc/kmenuedit/new.png b/doc/kmenuedit/new.png deleted file mode 100644 index 6ebf25cd..00000000 Binary files a/doc/kmenuedit/new.png and /dev/null differ diff --git a/doc/kmenuedit/reset.png b/doc/kmenuedit/reset.png deleted file mode 100644 index 02a20bd0..00000000 Binary files a/doc/kmenuedit/reset.png and /dev/null differ diff --git a/doc/kmenuedit/selecticon.png b/doc/kmenuedit/selecticon.png deleted file mode 100644 index 518f16e8..00000000 Binary files a/doc/kmenuedit/selecticon.png and /dev/null differ diff --git a/doc/kmenuedit/selectinternet.png b/doc/kmenuedit/selectinternet.png deleted file mode 100644 index 45ce5fdf..00000000 Binary files a/doc/kmenuedit/selectinternet.png and /dev/null differ diff --git a/doc/knetattach/CMakeLists.txt b/doc/knetattach/CMakeLists.txt deleted file mode 100644 index ac64649a..00000000 --- a/doc/knetattach/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -########### install files ############### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/knetattach/index.docbook b/doc/knetattach/index.docbook deleted file mode 100644 index ccbb55e7..00000000 --- a/doc/knetattach/index.docbook +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - -]> - - - - - - -The &knetattach; Handbook - - - -&Orville.Bennett; &Orville.Bennett.mail; - - - - - - -2005 -&Orville.Bennett; - -&FDLNotice; - -2010-01-18 -&kde; 4.4 - - - -&knetattach; is a wizard which makes it easier to integrate your -network resources with your &kde; Desktop. - - - - - - -KDE -kdebase -knetattach -Network Folders -Network Folder Wizard -KDE Network Folder Wizard - - - - - - - -Introduction - - -The &knetattach; wizard, affectionately and hereafter known as the -Network Folder Wizard, allows easy addition and integration of various -network folders with your &kde; desktop. Please report any problems or -feature requests for it to the &kde; bugs website. - - - - -Using &knetattach; - - -As you will see in the screenshot below, the Network Folder Wizard currently -allows you to add four types of network folders: WebDav, &FTP;, -&Microsoft; &Windows; (Samba) network drives and SSH. -Additionally you can select a recent connection for the list box. - - -Here's a screenshot of &knetattach; - - - - - -Screenshot - - -Network Folder Wizard main window - - - - - - - -Adding network folders - - -Network folders show up in a special location of &konqueror; and &dolphin; -called a virtual folder. -This virtual folder is accessed by typing remote:/ in -the location bar or by selecting Network from the -Places panel. You will then be able to see -any folders which have been previously added and you also will be able to use -the wizard to add new ones. - -Here's a screenshot of &knetattach; - - - - - -Screenshot - - -The virtual folder with the Network Folder wizard - - - - - - -Speaking of wizards, the Network Folder Wizard aims at being very easy to use. -After opening the wizard you must choose the type of network folder you would -like to access. When you move on to the next screen you will just need to -fill in the requested information. The final step is entering your username and -login password for the network share you've chosen to access. - - -Below is a list of the information needed by the wizard to create the network -folders. If an option is not -available for a particular folder it does not have to be entered. The Samba -folders ⪚ do not require a Port entry. - - - - - -Name: - - -This is where you give a name to the network connection. It is limited only by -your imagination (or alphabet). - - - - -User: - - -This is the username that will be used to establish the connection. - - - - -Server: - - -This is the address of the server you are attempting to add. It can be an -IP address or domain name. - - - - -Port: - - -Here you enter the port number you wish to connect to. The defaults are usually -sufficient. - - -Not available for &Microsoft; &Windows; (Samba) folders. - - - - - - -Folder: - - -The path to the folder you wish to connect to should go here. - - - - -Encoding: - - -Use the items in this list box to select an encoding for &FTP; and ssh connections. - - - - -Create an icon for this remote folder - - -If this box is checked an icon will be created allowing access through the -remote:/ virtual folder. If it is not checked, a connection will be possible -but it will not be accessible from remote:/. - - -The Recent connection: option allows you to re-connect to -the -last network mount point you connected to using the wizard whether an icon is -created or not. - - - - - - -Use encryption - - -If checked the ability to make a secure connection will be enabled. - -Available only for WebDav folders. - - - - - - - - - - - -&knetattach; Walkthrough - - - -This will be a quick walkthrough of the Network Folder Wizard. Don't -blink or you might miss it. - - - -Below you see the main window of the Network Folder Wizard. It is here -that we choose what type of folder we want to add or connect to. For -the purposes of this walkthrough we will be using &FTP;. It contains most -of the options you will encounter while using the wizard. - - - - -Here's a screenshot of the &knetattach; main window - - - - - -Screenshot - - - - - - -OK, so we (as in me) have chosen to add an &FTP; folder. Below you see -an example of the type of information you will need to add for your particular -&FTP; server. After filling it in we press Save & -Connect -and wait for the magic. Oh yes, if your server requires validation of some kind -you will be prompted at this point before being allowed to connect. - - - - -Screenshot showing addition of &FTP; Folder -using &knetattach; - - - - - -Screenshot - - - - - - -So now we are all connected now and able to navigate our newly added share. Joy! - - - - -Screenshot of the connected &FTP; folder - - - - - -Screenshot - - - - - - -To get back to our network folders all that is necessary is typing -remote:/ -in the location bar of &konqueror; or &dolphin; or -select Network from the Places panel. - - - - -Screenshot of the remote:/ virtual folder with the -added connection - - - - - -Screenshot - - - - - - -You can even add new folders from the same location by using the -Add a Network Folder link. Well that brings us to -the end of our walkthrough (told you it would be quick). I wish you the -best of luck in your own network folder adventures ;-) - - - - - -Credits and License - - -&knetattach; - - -Program copyright 2004 &George.Staikos; &George.Staikos.mail; - - - -Documentation Copyright © 2005 &Orville.Bennett; &Orville.Bennett.mail; - - - - -&underFDL; -&underGPL; - - - -&documentation.index; - - - diff --git a/doc/knetattach/screenshot.png b/doc/knetattach/screenshot.png deleted file mode 100644 index 4ec81f46..00000000 Binary files a/doc/knetattach/screenshot.png and /dev/null differ diff --git a/doc/knetattach/screenshot1.png b/doc/knetattach/screenshot1.png deleted file mode 100644 index 93f0a64e..00000000 Binary files a/doc/knetattach/screenshot1.png and /dev/null differ diff --git a/doc/knetattach/screenshot2.png b/doc/knetattach/screenshot2.png deleted file mode 100644 index e5ca3e45..00000000 Binary files a/doc/knetattach/screenshot2.png and /dev/null differ diff --git a/doc/knetattach/screenshot3.png b/doc/knetattach/screenshot3.png deleted file mode 100644 index 04328978..00000000 Binary files a/doc/knetattach/screenshot3.png and /dev/null differ diff --git a/doc/knetattach/screenshot4.png b/doc/knetattach/screenshot4.png deleted file mode 100644 index 94ce11a5..00000000 Binary files a/doc/knetattach/screenshot4.png and /dev/null differ diff --git a/doc/ksysguard/CMakeLists.txt b/doc/ksysguard/CMakeLists.txt deleted file mode 100644 index 0df9c9ad..00000000 --- a/doc/ksysguard/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -########### install files ############### -# -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) diff --git a/doc/ksysguard/index.docbook b/doc/ksysguard/index.docbook deleted file mode 100644 index 1f30bc67..00000000 --- a/doc/ksysguard/index.docbook +++ /dev/null @@ -1,533 +0,0 @@ - - - - - -]> - - - -The &ksysguard; Handbook - - - -&Chris.Schlaeger;&Chris.Schlaeger.mail; - - - -&John.Tapsell; &John.Tapsell.mail; - - - - -&Chris.Schlaeger;&Chris.Schlaeger.mail; - - - - -&Tobias.Koenig;&Tobias.Koenig.mail; - - - - - - - -2000 -&Chris.Schlaeger; - - -&FDLNotice; - -2010-10-24 -&kde; 4.5 - -&ksysguard; is a network enabled task and system monitor -application. - - -KDE -KSysGuard -process monitor -performance monitor -system monitor -top -ps - - - - -Introduction - -&ksysguard; is the &kde; Task and Performance Monitor. - - -It features -a client/server architecture that allows monitoring of local as well as remote -hosts. The graphical front end uses so-called sensors to retrieve the -information it displays. A sensor can return simple values or more complex -information like tables. For each type of information, one or more displays are -provided. Displays are organized in worksheets that can be saved and loaded -independently from each other. So, &ksysguard; is not only a simple task manager -but also a very powerful tool to control large server farms. - - - - -Using &ksysguard; - - -Getting started - -&ksysguard; can be started from the application launcher menu, using the entry -System Monitor in the -ApplicationsSystem menu. Alternatively, you -can start it by typing ksysguard in a terminal. - -The &ksysguard; main window consists of a menu bar, an optional tool bar -and status bar, and the work space. Custom worksheets will also show the sensor -browser. - - - -By default &ksysguard; shows two worksheets: Process Table -and System Load. The Process Table -lists the running processes and lets the user control them. -Multiple processes can be selected and controlled at once. -The System Load worksheet shows graphs of system utilization: -CPU History, Memory and Swap History, -and the Network History. - - -This default setup is sufficient enough for an inexperienced user to do -some system management. An experienced user or even a system administrator of a -large computer lab has different needs. To address a wide range of users, -&ksysguard; -is highly flexible. - - - -Process Table - -The Process Table gives you a list of processes on your -system. The list can be sorted by each column. Just press the left -mouse button at the head of the column. - -Use the What's This help for the columns titles -to get additional information about the value displayed here. - -In the context menu of a process in the list view you find additional actions -like changing the priority, sending signals to the process, switching to the -application window, showing detailed memory information and killing the process. - -The list shows the following information about each process. Please note -that not all properties are available on every operating system. - - -Default Columns in the Process Table - - - -Name -The name of the executable that started the process - - -Username -The user who owns this process - - -CPU % -The current total CPU usage of the process, divided by the number of -processor cores in the machine - - -Memory -This is the amount of real physical memory that this process is using by -itself, and approximates the Private memory usage of the process. -It does not include any swapped out memory, nor the code size of its shared -libraries. -This is often the most useful figure to judge the memory use -of a program. - - -Shared Mem -This is approximately the amount of real physical memory that this -process's shared libraries are using. This memory is shared among all -processes that use this library - - - -
- - -Additional Columns in the Process Table - - - -PID -The unique Process ID that identifies this process - - -TTY -The controlling terminal on which this process is running - - -Niceness -The priority with which this process is being run. For the normal scheduler, -this ranges from 19 (very nice, least priority) to -19 (top priority) - - -CPU Time -The total user and system time that this process has been running for, -displayed as minutes:seconds - - -IO Read -The number of bytes read. The Display Units -and the Displayed Information can be changed using -the context menu of this column header - - -IO Write -The number of bytes written. The Display Units -and the Displayed Information can be changed using -the context menu of this column header - - -Virtual Size -This is the amount of virtual memory space that the process is using, -included shared libraries, graphics memory, files on disk, and so on. This -number is almost meaningless. Use the context menu to select the -Display Units - - -Command -The command with which this process was launched - - - -
- -At the top of the table you find three controls which will be described now -from left to right. - - -End Processes - -If you have selected one or more processes you can press the End -Process button to kill them. A so called SIGKILL -is sent to the processes which causes them to terminate immediately. -If these applications still have unsaved data this data -will be lost. So use this button with care. - - - -Filter Bar - -Filter which processes are shown by the text given here. The text can be a -partial string match of the Name, Command -or Window Title of the process. -It can also be a Username or a Process ID number. - - - - -Process Filter - -The Process Filter can be used to reduce the number of processes displayed -in the table. You can filter out processes you are not interested in. Currently -you can display All Processes in a flat or tree view, System -Processes only, User Processes only, your -Own Processes only or Programs Only. - -The tree view has been designed to show the relationships between the -running processes. A process that is started by another process is called the -child of that process. A tree is an elegant way to show this parent-child -relationship. The init process is the ancestor of all -processes. - -If you are not interested in the children of a particular process you can -click on the little box to the left of the parent and the subtree will -collapse. Another click on that box will unfold the subtree again. - -You can launch the Process Table from &krunner; -using the Show System Activities button or using -the global shortcut &Ctrl;&Esc; at any time. -The process table is displayed in a window titled System Activities. - - - -
- - -Work Space - -The work space is organized as worksheets. Select -New Tab... from the File menu to create a -new worksheet. A dialog will appear where you can set the name, the -dimension and the update interval of the worksheet. To remove a worksheet -again, select -Close Tab from the File menu. Any -modifications will be saved to the worksheet file. If a worksheet has -never been saved, you will be asked for a file name. Worksheets consist of -cells -organized as a grid. - -Each cell can be filled with a display for one or more sensors. You can -fill a cell by dragging a sensor from the sensor browser and dropping it over -the cell. If there is more than one type of display available for that type -of sensor, a popup menu will appear. You can then select which display you -prefer to use. Certain types of displays can display more than one sensor. Add more -sensors to a display by dragging them over from the sensor browser and dropping -them over the already existing display. - -Worksheets can be configured by clicking Tab Properties -at the View menu. In the appearing dialog -you can set the dimension and the update interval. - - -Displays can be configured by clicking with the right mouse button on -them. A popup menu appear where you can select whether you want to change the -properties of that display or remove it from the worksheet. - - -Sensor Browser -The sensor browser exposes &ksysguard;'s advanced functionality. To -use it, you must first go to the File menu and create a new worksheet. -It is shown whenever a custom worksheet is selected. -The sensor browser displays the registered hosts and their sensors in a -tree form. Click on the tree handles to open or close a branch. Each sensor -monitors a certain system value. -After you have configured your custom worksheet use the splitter and move -it to the right edge of the window to hide the sensor browser. -If the sensor browser does not appear on a custom worksheet, it is -probably hidden. To unhide it, select the right edge of the window and -drag it to the left. - - - -Line Graph - -The line graph prints samples of one or more sensors over time. If, -several sensors are displayed, the values are piled in different colors. If -the display is large enough a grid will be displayed to show the range of the -plotted samples. By default, the automatic range mode is active so the minimum -and maximum values will be set automatically. Sometimes you want fixed -minimum and maximum values. In that case, you can deactivate automatic range -mode and set the values in the properties dialog. - - - -Digital Display - -The multimeter displays the sensor values as a digital meter. In the -properties dialog you can specify a lower and upper limit. If the range -is exceeded, the display is colored in the alarm color. - - - -Bar Graph - -The bar graph displays the sensor values as dancing bars. In the -properties dialog you can specify minimum and maximum values of range and -a lower and upper limit. If the range is exceeded, the display is -colored in the alarm color. - - - -Log to a File - -The sensor logger does not display any values, but logs them in -a file with additional date and time information. For each sensor -you can specify a lower and upper limit in the properties dialog. -If the range is exceeded, the entry of the sensor table is colored in -the alarm color. - - - -Partition Table - -The Partition Usage has a special table -sensor showing information about all mounted partitions - - - -Connecting to other hosts - -To connect to a new host use Monitor Remote Machine... -from the File menu. A dialog box will appear and allows you -to enter the name of the host you want to connect to. Below the name you can choose -the connection method. The default is ssh, the secure -shell. Alternatively the rsh, the remote shell, -the daemon mode or a custom command can be used. Click OK to -establish the connection. Shortly afterwards the new host will appear in the -sensor browser and you can browse the list of sensors. - - - -To establish a connection, a program called -ksysguardd, that can be started in the following -two modes, must be installed on the new host. - - - -daemon mode - -You can start ksysguardd at boot time in -Daemon mode by adding -d as the -argument. In this case, you have to select daemon mode at the connection -dialog of ksysguard. -A disadvantage of this connection type is that you won't be able to kill or -renice a process in the Process Table and -the data exchange over network won't be encrypted. As a result, daemon -mode is not recommended. - - - -shell mode - -In this mode ksysguardd is started at -connecting time by ksysguard. To make that possible, -its location needs to be included in your PATH. -Unfortunately the ssh does not source your .profile file, -so your regular PATH setting will not be available. -Instead it uses a default PATH like -/bin:/usr/bin. -Since it is very likely that &kde; is not installed in these folders you need -to create or update a file in your home folder. The file is called -environment and needs to be in a hidden folder called -.ssh. See the manual page for -ssh for more details. The file needs to contain a -line similar to: - - -PATH=/bin:/usr/bin:/opt/kde/bin - - -assuming that ksysguardd can be found under -/opt/kde/bin/ksysguardd. - -When using ssh you should make sure that -you have your identity.pub installed on the remote machine -and the host key of the remote machine is already registered on your machine. -If you don't set up identity.pub correctly, you will be asked -for your password every time you start ksysguard. -The easiest way to make sure that everything is working is to run ssh in a shell. If you are greeted by -ksysguardd, then everything is working correctly -and you can type quit to exit ksysguardd. - - - - -For experts: ksysguardd is a -very small program that is only linked against the libc. So it can -also be used on machines that do not have a full blown &kde; -installed, such as servers. Many major distributions provide a separate -ksysguardd package for your convenience. -If you choose the custom command option in -the host connector you need to specify the complete command to start -ksysguardd. - - - - - - -
- - -Configuring <application>ksysguardd</application> - -The graphical front-end is available on any platform that &kde; runs -on. The back-end is at the moment available on the following flavors of -&UNIX;: - - - -&Linux; 2.x - For ksysguardd to work it -is necessary to compile the &Linux; Kernel -with the /proc File system enabled. This is the default -setting and most &Linux; Distributions have it already. - - -FreeBSD -The ksysguardd program -needs to be owned by the kmem group and needs to have the setgid -bit set. - - -&Solaris; -To be written - - - -Support for other platforms is in progress. Your help is greatly -appreciated. - - - -Credits and License - -&ksysguard; is currently developed and maintained by &John.Tapsell; -&John.Tapsell.mail;. &ksysguard; is a rewrite of -KTop, the &kde; 1.x task manager. Several other people -have worked on KTop: - - - A. Sanda alex@darkstar.ping.at - Ralf Mueller ralf@bj-ig.de - &Bernd.Johannes.Wuebben; -wuebben@math.cornell.edu - Nicolas Leclercq -nicknet@planete.net - - -The porting to other platforms than &Linux; was done by: - - - FreeBSD: Hans Petter Bieker -zerium@traad.lavvu.no - - - -&underFDL; -&underGPL; - - - -
- - diff --git a/doc/onlinehelp/CMakeLists.txt b/doc/onlinehelp/CMakeLists.txt deleted file mode 100644 index b3d0a394..00000000 --- a/doc/onlinehelp/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -########### install files ############### -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR onlinehelp) diff --git a/doc/onlinehelp/index.docbook b/doc/onlinehelp/index.docbook deleted file mode 100644 index 77aa4232..00000000 --- a/doc/onlinehelp/index.docbook +++ /dev/null @@ -1,96 +0,0 @@ - - - -]> -
-Online Help - - -2010-05-13 -&kde; 4.5 - - - -On this page, you can find different ways to find online -help and additional information provided by the KDE community. - - -KDE UserBase - -An -Introduction to KDE  - -Learn more about the -KDE community and its software and find information to help you get -started. Also, discover what -UserBase is and how it can help you. - - - - - -Getting Help  - -Need some help? Here are some suggested places where you can get help -with problems, as well some hints on how to improve the quality of answers you receive. - - - - - -Applications  - -Discover the wide variety of applications from the KDE Community, -and find out what program suits your needs and preferences. - - - - - -Tutorials  - -How-To's, Tips & Tricks that can help make your KDE software -experience more enjoyable and productive. - - - - - - - -KDE Forum - -KDE Community Forums  - -The KDE Forums offer users, developers and people interested in KDE -a place to help each other, discuss KDE-related topics and exchange ideas. -You can find Tutorials & -Tips in the forum. - - - - - -KDE Techbase - -KDE Techbase  - -Information for developers and help to set up a KDE development environment. - - - - - -KDE Documentation - -KDE Documentation site  - -This page holds the complete KDE User Documentation in over 25 languages -for the released and the development version of KDE SC. - - - - -
\ No newline at end of file diff --git a/doc/plasma-desktop/CMakeLists.txt b/doc/plasma-desktop/CMakeLists.txt deleted file mode 100644 index 1d646fe0..00000000 --- a/doc/plasma-desktop/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -########### install files ############### -# -# -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) - diff --git a/doc/plasma-desktop/add-widgets.png b/doc/plasma-desktop/add-widgets.png deleted file mode 100644 index 7c062760..00000000 Binary files a/doc/plasma-desktop/add-widgets.png and /dev/null differ diff --git a/doc/plasma-desktop/desktop-settings.png b/doc/plasma-desktop/desktop-settings.png deleted file mode 100644 index 03732de5..00000000 Binary files a/doc/plasma-desktop/desktop-settings.png and /dev/null differ diff --git a/doc/plasma-desktop/device_notifier_widget.png b/doc/plasma-desktop/device_notifier_widget.png deleted file mode 100644 index 34d916da..00000000 Binary files a/doc/plasma-desktop/device_notifier_widget.png and /dev/null differ diff --git a/doc/plasma-desktop/device_notifier_widget_actions.png b/doc/plasma-desktop/device_notifier_widget_actions.png deleted file mode 100644 index d00a7a2e..00000000 Binary files a/doc/plasma-desktop/device_notifier_widget_actions.png and /dev/null differ diff --git a/doc/plasma-desktop/index.docbook b/doc/plasma-desktop/index.docbook deleted file mode 100644 index 786dda27..00000000 --- a/doc/plasma-desktop/index.docbook +++ /dev/null @@ -1,642 +0,0 @@ - - - - - -]> - - - -The &plasma; Handbook - - - - -Sebastian -Kügler - -sebas@kde.org - -Claus Christensen - - - - -2008–2010 -Sebastian Kügler - - -&FDLNotice; - -2013-06-19 -&kde; 4.11 - - - -&plasma;, the most visible pillar of &kde;, is the core interface to the desktop. - - - - -KDE -Plasma -Plasmoid -Widget -Containments -Desktop -Runner -Kicker - - - - - -Introduction - - -&plasma; is one of the key technologies of &kde; Software Compilation 4 (also known as the -“Pillars of &kde;”), and one of the most visible to users. As &plasma; -treats the user interface differently than a traditional desktop, there may be -confusion on what &plasma; is, what it does, and how to perform common tasks. - - - -This document attempts to address these problems by providing answers to the -most common questions. - - - - -Using &plasma; - - -&plasma; Components - - -&plasma; Widgets and Containments - - -The essence of &plasma; revolves around two basic concepts: - - - - -&plasma; Widgets - - -Applets, or small applications that live on the desktop. - - - - -Containments - - -Applets that act as the container for the &plasma; widgets - - - - - - -On a default desktop, there are two main elements: the Panel and the Desktop -itself. Both are containments in the &plasma; sense. - - - - - -Default &plasma; Desktop - -The &plasma; Desktop can be configured in countless ways. The screenshot seen below shows a fairly standard desktop. Some distributions apply extensive customizations, so your desktop may look different. - -Similarly, the graphical appearance of the interface elements can be styled. These screenshots uses the &kde; default style, Oxygen. - - - -A fairly standard &plasma; Desktop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -The program starter. Usually this will be &kickoff;. -A couple of icons giving easy access to often used applications -The Pager widget -The Task Manager, which shows the titles of windows belonging to the applications currently running. No application had opened a window, when the screenshot was taken -The System Tray -The Digital Clock widget -The Panel Toolbox -The Desktop Toolbox (previously known as a Cashew) -A Folder View widget, showing the content of the Desktop folder - - - - - - -The Panel - - -The default panel holds a few &plasma; widgets: starting from the left, there is the -&kickoff; application launcher. You can use it to start applications, open recently -opened files and the usual logout/shutdown options. There is also a structure -that allows you to browse through your applications. The layout has been -optimized for the use case that is most common: starting an application. The -default tab is the Favorites tab that holds the most-used -entries. In the beginning, you'll probably find yourself using the -Applications tab more often. -Once you have found out what your most frequently started applications are, -right click on the items and select the -Add to Favorites to add them to your -Favorites (or directly into the panel or on the desktop. -Note that you need to unlock &plasma; by means of right -clicking on the desktop for any kind of modification). If you prefer the -traditional menu-style application launcher, change it by -right clicking on the menu button and selecting -Switch to Classic Menu Style. - - - -The taskbar is another widget on the panel. It shows an area for all open windows on -all desktops by default. You can make it show all open windows on the current -desktop only by checking Only show tasks from the -current desktop when you right click on the task manager, between -two windows. The size of the text on the taskbar items can be set -in &systemsettings; under the -Application AppearanceFonts -Taskbar. Right-clicking on the taskbar -brings the Settings dialog where you can choose several options to customize -your taskbar. - -Here is a screenshot of the taskbar settings dialog - - - - - - Taskbar settings dialog - - - - - - -Another default panel item is the System Tray, which -is used by traditional applications and widgets as a dock. Right clicking on the -System Tray allows you to open the settings dialog, -where you can set entries to display and their visibility. - - -System Tray settings dialog - - - - - - System Tray settings dialog - - - - -An icon located usually in the system tray is the Device Notifier. -Plug in a USB disk and a dialog will open that allows you to -open the device in &dolphin; or another associated application. - - - - - - - - - - - - - - -The Device Notifier is used for handling pluggable devices such as USB pendrives (also called flash drives or thumb drives), digital cameras, external USB hard drives, &etc; It also comes into play when a medium such as a &CD; or DVD is loaded into an optical drive. - -When you plug in an external device, or load a new medium into a drive, the Notifier window pops up (you can also open it explicitly by clicking on its Panel icon.) It stays open while the cursor is over it, otherwise it hides itself after a few seconds. - -The Notifier window shows a list of all the devices it currently knows about. Moving the mouse cursor over a device will highlight how many possible actions are associated with that device. - - - - - - - - - - - - - - -Clicking anywhere in the shaded box around the device name (but not on the eject/unmount icon if present) expands the entry to show the list of possible actions for that device. The set of actions depends on the device; it is configurable from the Device Notifier's context menu or from the &systemsettings; modules Device Actions and Removable Devices. Simply select one with the mouse or keyboard to launch that action. - -There is also a small icon to the right of each entry showing whether that device is currently accessible (or mounted) or not. Only when a device is not mounted is it safe to physically disconnect it from the computer. Clicking on the icon causes the device to be unmounted and/or the medium to be ejected if it is currently mounted, and will mount it if it is not. Note that unmounting/ejecting might fail if the device still has open files on it, ⪚ if a large file copy hasn't finished. In most cases you can just wait a while and try again. When an unmounting has succeeded, a success icon will be shown on the Device Notifier's icon. - - -The System Tray normally holds some more entries like -&klipper;, &kmix; &etc; - -Some of the default entries in the System Tray are hidden -to save space in the bar. To display these entries click on the small white triangle - -, then use -the &LMB; to launch a widget or the &RMB; to open its settings dialog. - - -The right-most &plasma; widget in the default panel holds the Digital -Clock. -This clock can display the time in different timezones as well as have its size -changed. The clock will adjust its font size to the area it is given by the -surrounding containment (that is the panel in this case). If you choose to -display the date, this date will be rendered using the Small -font option from the &systemsettings; Font -dialog. The time will take the rest of the space. So in the end, you'll choose -yourself the amount of information displayed, and if that fits. If you want to -display more information, make the panel larger or put the clock on the desktop -where it can grow freely. - - - -An optional item on your panel is the Pager. -It allows you to switch between your virtual desktops. -If you change the layout of the Pager -through the Number of rows option, -which will also affect the layout and animations that are shown in &kwin;’s -Desktop Grid effect. -For larger pagers, selecting Display windows icons -typically makes sense. - - - - - - - - - - -The Panel Toolboxes - -If your desktop is unlocked (you can do that by -right clicking on the desktop, or when no -application has the focus, with &Alt;D, L), a small &plasma; -logo will appear in the bottom right corner in the panel (it is commonly named the -“cashew”). Click on this cashew, and the panel controller opens. - - -Panel Settings - - - - - - Panel Settings - - - - -The panel controller allows you to reposition, resize and realign the panel. The -&plasma; widgets living in this panel will adjust their size automatically. -&plasma; widgets have basic knowledge about sizing, provided by the containment. They -are programmed to take advantage of that size, and inform the applet about how -much space they possibly need. In the end, the containment gives a possible size -to the applets, the applets obey. - - - - -Adding Applets - - -Unlock the desktop and you'll be able to add and remove &plasma; widgets from panel -or desktop. You add &plasma; widgets by simply dragging them where you want them. -Right click on an widget to remove it. - - -Add Widgets - - - - - - Add Widgets - - - - -The Get New Widgets button allows you to add widgets -you've previously downloaded and download new &plasma; widgets. -Currently it supports native &plasmagik; packages -and some &Mac; OS X dashboard widgets. Widgets you install this way can then be -accessed just like regular, preinstalled widgets. - - - - -The Desktop - - -The desktop is in fact another containment. One that does not put size -constraints on the applets. Applets can be moved and sized freely. On the -unlocked desktop, &plasma; widgets will show a frame when you move the mouse over -them. This applet handle allows you to move, resize, relocate and realign the -panel. It also allows you to drag &plasma; widgets on the desktop. The buttons in the -corner are used to resize, rotate configure and remove the applet. When -rotated, a &plasma; widget will act magnetic towards 12 o'clock, so it is easy to get -them back into sensible position. By default, most applets keep their aspect -ratio when they are being resized. If you want to freely resize an applet, -hold the &Ctrl; key pressed while resizing. - - - -Right clicking on the desktop also offers you to configure aspects such as the -wallpaper and the layout used, and the mouse actions. It offers to download new -wallpapers through &knewstuff;. - - - -Desktop Settings - - - - - - Desktop Settings - - - - -To change the &plasma; theme or download a new one through &knewstuff; -open the Workspace Appearance Desktop -Theme page in the &systemsettings;. - - -With open applications, it quickly gets hard to see the &plasma; widgets on your -desktop. The Dashboard gets those &plasma; widgets -in front of you, much like the Show desktop functionality -you are used to from traditional desktops. - - - - - -&krunner; - - -&krunner; is a versatile mini command-line. You can use it to start applications, -open web pages, access bookmarks, search through your desktop data, calculate -short equations, and many more.Pressing &Alt;F2 opens the &krunner; dialog. -You just start typing and &krunner; will start searching matches as soon as -you've entered more than two characters. You can open the settings dialog to -learn about &krunner;’s functionality, provided by plugins. You can -navigate through the matches using the tab and arrow keys. - - - -If you want to know what is going on on your system, there is the Show -System Activity button, giving you quick access to a list of windows -and processes, with options to monitor their output and kill processes. - - - - - -Activities - - -The desktop toolbox, accessed via the upper right corner has a button for -displaying your activities, of which &plasma; allows you to have more than one. -Basically, that is multiple desktop containments hosting multiple sets of &plasma; widgets. -Display the Activities bar, select one of the predefined activities -or choose Create Activity -to create a new containment, select your new containment and customize suiting your taste. -&plasma;’s activities and &kwin;’s desktop grid are similar in that respect, but there -is a fundamental difference. While virtual desktop are used to group and organize windows, -&plasma;’s activities are used to group and organize &plasma; widgets. This way, you can -switch between activities and have relevant &plasma; widgets supporting the task you are -currently trying to accomplish. You can create a Free time activity, with -comic strips, a puzzle and other &plasma; widgets, and a Work activity, -with relevant RSS feeds, calculator and calendar, for example. - - - -To delete an activity, press the Stop Activity button on -Activities bar (press &Alt;D then &Alt;A to open this bar) then click -the red 'X' (or press &Alt;D -then &Alt;R) and confirm the -deletion. - - - - - - -Shortcuts - - -Most of &plasma;’s functionality is also accessible through keyboard -shortcuts. The various combinations should be pressed in sequence, that -is for example &Alt;D, A -means: Press &Alt; and D, release and press A. - -Currently, the following default shortcuts can be used: - - - - -&Alt;D, A -Add Widgets - - - -&Alt;D, R -Remove Widget - - - -&Alt;D, L -Lock/Unlock Widgets - - - - -&Alt;D, N -Next Widget - - - -&Alt;D, P -Previous Widget - - - -&Alt;D, S -Widget settings - - - -&Alt;D, &Alt;A -Activities - - - -&Alt;D, &Alt;R -Remove this Activity - - - -&Alt;D, &Alt;S -Activities Settings - - - -Meta -Next Activity - - - -Meta&Shift; -Previous Activity - - - -&Ctrl;F12 -Show Dashboard - - - -&Alt;D, T -Run the Associated Application - - - - - -To change shortcuts, click with the &LMB; on the desktop Toolbox -(the cashew usually at the top right of the desktop) and select Shortcut Settings. - - - - - - -Credits and License - - -&plasma; - - -Program copyright 2008 &Aaron.J.Seigo; &Aaron.J.Seigo.mail; - - - -Documentation Copyright © 2008–2010 Sebastian Kügler sebas@kde.org - - - - -&underFDL; - - - -&documentation.index; - - - diff --git a/doc/plasma-desktop/panel-settings.png b/doc/plasma-desktop/panel-settings.png deleted file mode 100644 index 49fe1dc4..00000000 Binary files a/doc/plasma-desktop/panel-settings.png and /dev/null differ diff --git a/doc/plasma-desktop/plasma-desktop-annotated.png b/doc/plasma-desktop/plasma-desktop-annotated.png deleted file mode 100644 index 8ab73438..00000000 Binary files a/doc/plasma-desktop/plasma-desktop-annotated.png and /dev/null differ diff --git a/doc/plasma-desktop/system-tray-settings.png b/doc/plasma-desktop/system-tray-settings.png deleted file mode 100644 index e3ff1c3a..00000000 Binary files a/doc/plasma-desktop/system-tray-settings.png and /dev/null differ diff --git a/doc/plasma-desktop/system-tray-up-arrow.png b/doc/plasma-desktop/system-tray-up-arrow.png deleted file mode 100644 index 6de1abb9..00000000 Binary files a/doc/plasma-desktop/system-tray-up-arrow.png and /dev/null differ diff --git a/doc/plasma-desktop/taskbar-settings.png b/doc/plasma-desktop/taskbar-settings.png deleted file mode 100644 index 47c61e97..00000000 Binary files a/doc/plasma-desktop/taskbar-settings.png and /dev/null differ diff --git a/doc/plasmapkg/CMakeLists.txt b/doc/plasmapkg/CMakeLists.txt deleted file mode 100644 index f846cd5e..00000000 --- a/doc/plasmapkg/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -kde4_create_manpage(man-plasmapkg.1.docbook 1 INSTALL_DESTINATION ${MAN_INSTALL_DIR}) - diff --git a/doc/plasmapkg/man-plasmapkg.1.docbook b/doc/plasmapkg/man-plasmapkg.1.docbook deleted file mode 100644 index 223ba622..00000000 --- a/doc/plasmapkg/man-plasmapkg.1.docbook +++ /dev/null @@ -1,107 +0,0 @@ - - -]> - - - -KDE User's Manual -2012-12-05 -K Desktop Environment - - - -plasmapkg -1 - - - -plasmapkg -Install, list, remove Plasma packages - - - - -plasmapkg - - path - - type - path - path - - - name - path -KDE Generic Options -Qt Generic Options - - - - -Description -plasmapkg is a command line tool to -install, list, remove Plasma packages. - - - - -Options - - - - path -Generate a SHA1 hash for the package at path. - - - -For install or remove, operates on packages installed for all users. - - - type -The type of package, ⪚ theme, wallpaper, plasmoid, dataengine, runner, layout-template, &etc; [plasmoid]. - - - path -Install the package at path. - - - path -Upgrade the package at path. - - - -List installed packages. - - - name -Remove the package named name. - - - path -Absolute path to the package root. If not supplied, then the standard data -directories for this &kde; session will be searched instead. - - - - - - - -See Also - -More detailed user documentation is available from help:/plasma-desktop -(either enter this URL into &konqueror;, or run -khelpcenter -help:/plasma-desktop). - - - - -Authors -plasmapkg was written by -AaronSeigo aseigo@kde.org. - - - diff --git a/doc/systemsettings/CMakeLists.txt b/doc/systemsettings/CMakeLists.txt deleted file mode 100644 index 2757f627..00000000 --- a/doc/systemsettings/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -##### Install Systems Settings Documentation ##### -kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en) - -##### Install System Settings Modules Documentation ##### diff --git a/doc/systemsettings/index.docbook b/doc/systemsettings/index.docbook deleted file mode 100644 index 5feb5d2b..00000000 --- a/doc/systemsettings/index.docbook +++ /dev/null @@ -1,473 +0,0 @@ - - - - - -]> - - - -The &systemsettings; Handbook - - - -&Richard.Johnson; -&Richard.Johnson.mail; - - - - - -2007 -&Richard.Johnson; - -&FDLNotice; - -2013-12-05 -4.12 (&kde; 4.12) - - - -This documentation describes &kde;'s system configuration and administration center. - - - - -KDE -System -Settings -configuration -administration -config -admin - - - - - -Introduction - - -The &kde; &systemsettings; provides the user with a centralized and convenient way to configure all of the &kde; settings. - - - -&systemsettings; is made up of multiple modules. Each module is a separate application, however the &kde; &systemsettings; organizes all of these applications into a single location. - - - - -Each &systemsettings; module can be executed individually - - -See section entitled Running -individual &systemsettings; modules for more information. - - - - -&systemsettings; groups all of the configuration modules into several categories: - -Common Appearance and Behavior -Workspace Appearance and Behavior -Network and Connectivity -Hardware -System Administration - - - - -The modules that make up &systemsettings; fall under one of the above categories, making it easier to locate the correct configuration module. - - - - - -Using &systemsettings; - - -This section details the use of &systemsettings; itself. For information on each individual module, please see &systemsettings; Modules. - - - -Starting &systemsettings; - - -The &kde; &systemsettings; can be started in one of three ways: - - - - - -By selecting K ButtonApplicationsSystem Settings. - - - - - By pressing &Alt;F2. This will bring up the &krunner; dialog. Type systemsettings, and press &Enter;. - - - - -Type systemsettings & at any command prompt. - - - - - -All three of these methods are equivalent, and produce the same result. - - - - -The &kde; &systemsettings; Screen - - -When you start &systemsettings;, you are presented with a window, which is divided into three functional parts. - - - -Across the top is a toolbar. The toolbar provides the user with the ability to go back into the main view from within a module using the Overview. -You can also find a Help menu as well as a Configure button which provides you a dialog with alternate view settings. - -To search for something within all of the modules, start to type keywords into the search field at the right of the toolbar in the Overview. When you start typing, a list of matching topics will popup. Select one and only the groups with settings for this keyword are enabled, the other are greyed out. -When the icon window has the focus, you can type the first letter of -any module or module group name to select it. Typing this letter again the -selection moves to the next match. - - -Underneath the toolbar is an icon view of the individual modules or module groups that -make up &systemsettings; grouped by different categories. By default, -if your mouse stays a few seconds over an icon, a detailed tooltip -appears, explaining the purpose of the module or the modules in this group. - - - - -&systemsettings; Categories and Modules -A brief overview of all categories and their modules: - - - -Common Appearance and Behavior - - - -Account Details (Password & User Account, Paths, KDE Wallet, Social Desktop, Web Shortcuts) - - -Application Appearance (Style, Colors, Icons, Fonts, Emoticons) - - -Application and System Notifications (Manage Notifications, System Bell, Launch Feedback) - - -File Associations - - -Locale (Country/Region & Language, Spell Checker) - - -Personal Information (Akonadi Resources Configuration) - - -Shortcuts and Gestures (Custom Shortcuts, Standard Keyboard Shortcuts, Global Keyboard Shortcuts) - - - - - - - -Workspace Appearance and Behavior - - - -Desktop Effects - - -Workspace Appearance (Window Decorations, Cursor Theme, Desktop Theme, Splash Screen) - - -Accessibility (Accessibility, Text-to-Speech) - - -Default Applications - - -Desktop Search - - -Window Behavior (Task Switcher, Window Behavior, KWin Scripts, Window Rules) - - -Workspace Behavior (Activities, Virtual Desktops, Screen Edges, Workspace) - - - - - - - -Network and Connectivity - - - -Network Settings (Proxy, Connection Preferences, Service Discovery) - - -Sharing (Windows Shares) - - -SSL Preferences - - - - - - - -Hardware - - - -Device Actions - - -Digital Camera - - -Display and Monitor (Size & Orientation, Screen Locker, Gamma) - - -Input Devices (Keyboard, Mouse, Joystick, Remote Controls) - - -Power Management (Energy Savings Settings, Activity Settings, Advanced Settings) - - -Printers - - -Removable Devices - - -Multimedia (Audio CDs, Audio and Video Settings, CDDB Retrieval) - - - - - - - -System Administration - - - -Date & Time - - -Font Management - - -Login Screen - - -Startup and Shutdown (Autostart, Service Manager, Session Management) - - -Task Scheduler - - - - - - - - -Use the search field in Overview to find all matching modules for a given keyword. - - -Exiting the &kde; &systemsettings; - - -&systemsettings; can be exited in one of two ways: - - - - - -Press &Ctrl;Q on the keyboard. - - - - -Click on the Close button located in the toolbar. - - - - - - -Configuring &systemsettings; - - -The Configure icon in the toolbar allows you to change some &systemsettings; parameters. -You can change from Icon View (default view) to Classic Tree View. - - - -You can also turn off the detailed tooltips by unchecking Show detailed tooltips. -You will then get only normal tooltips and not the content of a module group. - - - - -Running Individual &systemsettings; Modules - - -Individual modules can be run without running &systemsettings; using the command kcmshell4 from the command line. Type kcmshell4 --list to see a list of the available &kde; &systemsettings; modules. - - - - - - -The &kde; &systemsettings; Modules - - -In order to make it as easy as possible, the &kde; &systemsettings; has organized options into five categories. Under each category, there are icons grouped together under subcategories. Each icon is called a module. When you double click on a module icon, you will be presented with the options of the module in the main window. - - - -Each module will have some or all of the following buttons: - - - - -Help - - -This button will provide help specific to the current module. Clicking the button will open &khelpcenter; in a new window providing detailed information on the module. - - - - - -Defaults - - -Clicking this button will restore this module to its default values. You must click Apply to save the options. - - - - - -Reset - - -This button will "Reset" the module to the previous settings. - - - - - -Apply - - -Clicking this button will save all changes to &kde;. If you have changed anything, clicking Apply will cause the changes to take effect. - - - - - - - -You must either "Reset" or "Apply" the changes before changing to another module. - - -If you try to change without saving or resetting your options, you will be asked if you want to save your changes, or discard them. - - - - - - - -Credits and License - - -&systemsettings; - - -Program copyright 2007 Benjamin C. Meyer. - - -Program copyright 2009 Ben Cooksley. - - -Contributors: - - - -Will Stephenson wstepheson@kde.org - - - -Michael D. Stemle, Jr. manchicken@notsosoft.net - - - - -Matthias Kretz kretz@kde.org - - - - -&Daniel.Molkentin; &Daniel.Molkentin.mail; - - - - -&Matthias.Elter; &Matthias.Elter.mail; - - - - -Frans Englich englich@kde.org - - - - -Michael Jansen kde@michael-jansen.biz - - - - - - -Documentation Copyright © 2008 &Richard.Johnson; &Richard.Johnson.mail; - - - - -&underFDL; -&underGPL; - - -&documentation.index; - - - diff --git a/drkonqi/doc/debug_package_installer.txt b/drkonqi/doc/debug_package_installer.txt deleted file mode 100644 index ce1178da..00000000 --- a/drkonqi/doc/debug_package_installer.txt +++ /dev/null @@ -1,86 +0,0 @@ -This version of DrKonqi supports automatic installation of debug symbols packages -when it finds that debug symbols are missing. This document is to explain what is -needed from packagers to do in order to enable this functionality for their distribution. - -If your distribution does not ship packages with debug symbols you can safely ignore -the rest of this document. In this case, DrKonqi will not offer the ability to install -debug symbol packages. - -If your distribution does ship packages with debug symbols, then in order for DrKonqi -to offer the ability to install them automatically, you need to provide a script that -will do the work. This is because the packaging systems vary a lot among different -distributions and DrKonqi cannot implement distro-specific functionality in its main -code for all distributions. - -Please note that I chose to use the word "script" here having in mind a shell script, -but you may as well provide a python script, a perl script, or whatever else, even a -compiled binary written in any language you want. DrKonqi will use KProcess for -launching it, so as long as it is executable, it will work. - - -Name of the script -================== -By default DrKonqi looks for a shell script called "installdbgsymbols.sh". It expects -it to be in PATH, or somewhere that it is possible to be located by KStandardDirs::findExe(). -For example, the path where DrKonqi itself is installed (`kde4-config --path libexec`), -is a valid path to install this script, although it is not in PATH. - -If you wish to provide a script with a different name, you can change the name by setting -the cmake variable DEBUG_PACKAGE_INSTALLER_NAME to the name that you want. For example, -configuring kdebase-runtime with: - - cmake -DDEBUG_PACKAGE_INSTALLER_NAME="installdbgsymbols.py" - -will use "installdbgsymbols.py" as the script for installing debug packages. - - -Interface of the script -======================= - -1. Arguments ------------- -The script is called with arguments all the filenames of the binaries that are clearly -missing symbols. The first argument (argv[1]) is always supplied and is the path to -the executable that crashed itself. The rest of the arguments are optional and are filenames -of libraries that are missing symbols (for example, "/usr/lib/libkio.so.5"). All the -paths are absolute, but they will probably point to symlinks (at least for libraries). -The paths are taken from gdb. For each stack frame that is missing details, if gdb can -tell where is this symbol from, the path to the library that gdb specifies is passed -as is to the script. Note that for applications that were launched via kdeinit, argv[1] -is the path to kdeinit4, not the path to the executable that would be launched if there -was no kdeinit involved. - -2. Return values ----------------- -0 - Debug packages installed successfully -1 - Some kind of error was encountered -2 - Debug symbols not found -3 - User canceled the operation - - -Testing -======= -In order to test your script you can try the following: -1) Find a kde application and remove its debug symbols package. I will use konqueror - in this example. -2) Run the application and then kill it with a signal that drkonqi can catch. - For example, "killall -6 konqueror". -3) In drkonqi's main dialog, switch to the "Backtrace" tab and wait for it to - generate a backtrace. -4) After the backtrace has been generated, if drkonqi can find your script, a button - saying "Install debug symbols" will appear in the bottom left side of the backtrace tab. -5) Click on it and your script will be launched. - - -Examples -======== -I have written example scripts for Debian, OpenSuSE and Fedora, which are available -in the examples/ subdirectory of the drkonqi source code directory. These were -developed as a proof of concept, to test that this script model and interface will -work for most distributions. You may use them as is, or you may use them as references -to write your own scripts. Just note that I am not going to maintain those scripts -or fix bugs in them. - --- -George Kiagiadakis -Last updated: 25 Semptember 2009 diff --git a/drkonqi/doc/examples/installdbgsymbols_debian.sh b/drkonqi/doc/examples/installdbgsymbols_debian.sh deleted file mode 100644 index e1eaa552..00000000 --- a/drkonqi/doc/examples/installdbgsymbols_debian.sh +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009 George Kiagiadakis -# -# 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, see . - - -# This function runs a command in a terminal -# The first argument ($1) must be the full command to run. -# It returns 0 if the command finished or 1 if the user closed -# the terminal without waiting for the command to finish. -# The return value of the command is saved in the $exit_status variable. -run_in_terminal() -{ - local fifo=/tmp/drkonqi-fifo-$$ - mkfifo $fifo - - # start terminal - x-terminal-emulator -e sh -c "echo \$\$ > $fifo; $1; exit_status=\$?; sleep 1; rm $fifo; echo \$exit_status > $fifo" & - - # wait for it to finish - local pid=`cat $fifo` - while [ "$?" = "0" ]; do - sleep 1 - kill -0 $pid 2>/dev/null - done - - # check if terminal has finished succesfully and return the command's exit status - local canceled=0 - if [ -p $fifo ]; then - # terminal was closed before finishing execution - canceled=1 - else - exit_status=`cat $fifo` - #echo "\"$1\" returned: $exit_status" - fi - rm $fifo - return $canceled -} - -# check for availability of kdialog -which kdialog >/dev/null -if [ "$?" != "0" ]; then - xmessage -center "Could not find kdialog (part of kdebase). Please install kdialog and try again." - exit 1 -fi - -# check misc script dependencies -check_dep() -{ - which $1 >/dev/null - if [ "$?" != "0" ]; then - kdialog --sorry "$1 was not found on your system. Please install $1 and try again." - exit 1 - fi -} - -check_dep apt-file -check_dep qdbus - -# update apt-file database -run_in_terminal "apt-file update" - -if [ "$?" = "1" ]; then - exit 3 -elif [ "$exit_status" != "0" ]; then - kdialog --sorry "apt-file failed to update package lists." - exit 1 -fi - -# start searching for packages -packages="" -progress_counter=0 -dbus_handle=`kdialog --progressbar "Searching for packages that contain the requested debug symbols..." $#` - -while [ "$1" != "" ]; -do - # dereference symlinks - cur_file=$1 - while [ -L "$cur_file" ]; do - cur_file="`dirname $cur_file`/`ls -l $cur_file | cut -d ' ' -f 10`" - done - - # look for the package - expr match "$cur_file" ".*libQt.*" >/dev/null - if [ "$?" = "0" ]; then - # HACK for Qt, which doesn't install debug symbols in /usr/lib/debug like everybody else - package="libqt4-dbg" - else - package=`apt-file search --non-interactive --package-only --fixed-string "/usr/lib/debug$cur_file"` - fi - packages="$packages $package" - - # update progress dialog - progress_counter=$(($progress_counter+1)) - qdbus $dbus_handle Set org.kde.kdialog.ProgressDialog value $progress_counter - - # check if dialog was closed - if [ "$?" != "0" ]; then - exit 3 - fi - - shift -done - -# filter out duplicates -packages=`echo "$packages" | tr " " "\n" | sort | uniq | tr "\n" " "` - -# close the progress dialog -qdbus $dbus_handle close - -# if there are no packages to install, exit -trimmed_packages=`echo $packages | tr -d "[:blank:]"` -if [ -z "$trimmed_packages" ]; then - exit 2 # note that we don't need to display an error message here. drkonqi will do it for us. -fi - -kdialog --yesno "You need to install the following packages: $packages -Would you like drkonqi to attempt to install them now?" - -if [ "$?" = "0" ]; then - # determine package manager - package_manager=aptitude - which $package_manager >/dev/null - if [ "$?" != "0" ]; then - package_manager=apt-get - fi - - run_in_terminal "su-to-root -c '$package_manager install $packages'" - - if [ "$?" = "1" ]; then - exit 3 - elif [ "$exit_status" = "0" ]; then - exit 0 - else - exit 1 - fi -else - exit 3 -fi diff --git a/drkonqi/doc/examples/installdbgsymbols_fedora.sh b/drkonqi/doc/examples/installdbgsymbols_fedora.sh deleted file mode 100644 index 4a1254ab..00000000 --- a/drkonqi/doc/examples/installdbgsymbols_fedora.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009 George Kiagiadakis -# -# 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, see . - - -# This function runs a command in a terminal -# The first argument ($1) must be the full command to run. -# It returns 0 if the command finished or 1 if the user closed -# the terminal without waiting for the command to finish. -# The return value of the command is saved in the $exit_status variable. -run_in_terminal() -{ - local fifo=/tmp/drkonqi-fifo-$$ - mkfifo $fifo - - # start terminal - konsole -e sh -c "echo \$\$ > $fifo; $1; exit_status=\$?; sleep 1; rm $fifo; echo \$exit_status > $fifo" & - - # wait for it to finish - local pid=`cat $fifo` - while [ "$?" = "0" ]; do - sleep 1 - kill -0 $pid 2>/dev/null - done - - # check if terminal has finished succesfully and return the command's exit status - local canceled=0 - if [ -p $fifo ]; then - # terminal was closed before finishing execution - canceled=1 - else - exit_status=`cat $fifo` - #echo "\"$1\" returned: $exit_status" - fi - rm $fifo - return $canceled -} - -# check misc script dependencies -check_dep() -{ - which $1 >/dev/null - if [ "$?" != "0" ]; then - # check for availability of kdialog - which kdialog >/dev/null - if [ "$?" != "0" ]; then - xmessage -center "$1 was not found on your system. Please install $1 and try again." - else - kdialog --sorry "$1 was not found on your system. Please install $1 and try again." - fi - exit 1 - fi -} - -check_dep debuginfo-install -check_dep konsole - -# start searching for packages -packages="" -while [ "$1" != "" ]; -do - package=`rpm -q --whatprovides "$1" --queryformat "%{NAME}"` - packages="$packages $package" - shift -done - -# filter out duplicates -packages=`echo "$packages" | tr " " "\n" | sort | uniq | tr "\n" " "` - -run_in_terminal "su -c \"debuginfo-install $packages\"" - -if [ "$?" = "1" ]; then - exit 3 -elif [ "$exit_status" = "0" ]; then - exit 0 -else - exit 1 -fi diff --git a/drkonqi/doc/examples/installdbgsymbols_suse.sh b/drkonqi/doc/examples/installdbgsymbols_suse.sh deleted file mode 100644 index dbc7468f..00000000 --- a/drkonqi/doc/examples/installdbgsymbols_suse.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2009 George Kiagiadakis -# -# 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, see . - - -# This function runs a command in a terminal -# The first argument ($1) must be the full command to run. -# It returns 0 if the command finished or 1 if the user closed -# the terminal without waiting for the command to finish. -# The return value of the command is saved in the $exit_status variable. -run_in_terminal() -{ - local fifo=/tmp/drkonqi-fifo-$$ - mkfifo $fifo - - # start terminal - konsole -e sh -c "echo \$\$ > $fifo; $1; exit_status=\$?; sleep 1; rm $fifo; echo \$exit_status > $fifo" & - - # wait for it to finish - local pid=`cat $fifo` - while [ "$?" = "0" ]; do - sleep 1 - kill -0 $pid 2>/dev/null - done - - # check if terminal has finished succesfully and return the command's exit status - local canceled=0 - if [ -p $fifo ]; then - # terminal was closed before finishing execution - canceled=1 - else - exit_status=`cat $fifo` - #echo "\"$1\" returned: $exit_status" - fi - rm $fifo - return $canceled -} - -# check misc script dependencies -check_dep() -{ - which $1 >/dev/null - if [ "$?" != "0" ]; then - # check for availability of kdialog - which kdialog >/dev/null - if [ "$?" != "0" ]; then - xmessage -center "$1 was not found on your system. Please install $1 and try again." - else - kdialog --sorry "$1 was not found on your system. Please install $1 and try again." - fi - exit 1 - fi -} - -check_dep pbuildid -check_dep konsole - -# start searching for packages -packages="" -while [ "$1" != "" ]; -do - # look for the build id - file -L "$1" | grep ELF >/dev/null - if [ "$?" = "0" ]; then - buildid=`pbuildid "$1" | cut -d ' ' -f 2` - package="\"debuginfo(build-id)=$buildid\"" - packages="$packages $package" - fi - - shift -done - -run_in_terminal "sudo zypper install -C $packages" - -if [ "$?" = "1" ]; then - exit 3 -elif [ "$exit_status" = "0" ]; then - exit 0 -else - exit 1 -fi diff --git a/khelpcenter/CMakeLists.txt b/khelpcenter/CMakeLists.txt deleted file mode 100644 index 62b67555..00000000 --- a/khelpcenter/CMakeLists.txt +++ /dev/null @@ -1,61 +0,0 @@ -add_subdirectory( plugins ) -add_subdirectory( searchhandlers ) -add_subdirectory( tests ) - -########### next target ############### - -set(khc_indexbuilder_SRCS khc_indexbuilder.cpp ) - - -kde4_add_executable(khc_indexbuilder NOGUI ${khc_indexbuilder_SRCS}) - -target_link_libraries(khc_indexbuilder ${KDE4_KDECORE_LIBS} ) - -install(TARGETS khc_indexbuilder DESTINATION ${LIBEXEC_INSTALL_DIR}) - - -########### next target ############### - -set(khelpcenter_KDEINIT_SRCS - navigator.cpp - navigatoritem.cpp - navigatorappitem.cpp - view.cpp - searchwidget.cpp - searchengine.cpp - docmetainfo.cpp - docentrytraverser.cpp - formatter.cpp - glossary.cpp - toc.cpp - mainwindow.cpp - docentry.cpp - htmlsearch.cpp - history.cpp - application.cpp - treebuilder.cpp - infotree.cpp - kcmhelpcenter.cpp - htmlsearchconfig.cpp - fontdialog.cpp - plugintraverser.cpp - scrollkeepertreebuilder.cpp - searchhandler.cpp ) - -qt4_add_dbus_adaptor( khelpcenter_KDEINIT_SRCS org.kde.khelpcenter.kcmhelpcenter.xml kcmhelpcenter.h KCMHelpCenter ) - -kde4_add_kcfg_files(khelpcenter_KDEINIT_SRCS prefs.kcfgc ) -kde4_add_app_icon(khelpcenter_KDEINIT_SRCS "${KDE4_INSTALL_DIR}/share/icons/oxygen/*/apps/help-browser.png") - -kde4_add_kdeinit_executable( khelpcenter ${khelpcenter_KDEINIT_SRCS}) -target_link_libraries(kdeinit_khelpcenter ${KDE4_KHTML_LIBS} ${QT_QTXML_LIBRARY} ${KDE4_KCMUTILS_LIBS} ) -install(TARGETS kdeinit_khelpcenter ${INSTALL_TARGETS_DEFAULT_ARGS} ) -install(TARGETS khelpcenter ${INSTALL_TARGETS_DEFAULT_ARGS}) - -########### install files ############### - -install( PROGRAMS Help.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) -install( FILES khelpcenter.kcfg DESTINATION ${KCFG_INSTALL_DIR} ) -install( FILES khelpcenter.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) -install( FILES khelpcenterui.rc glossary.html.in table-of-contents.xslt glossary.xslt index.html.in DESTINATION ${DATA_INSTALL_DIR}/khelpcenter ) -install( FILES org.kde.khelpcenter.kcmhelpcenter.xml DESTINATION ${DBUS_INTERFACES_INSTALL_DIR}) diff --git a/khelpcenter/COPYING b/khelpcenter/COPYING deleted file mode 100644 index 0b84a43f..00000000 --- a/khelpcenter/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - 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. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/khelpcenter/DESIGN b/khelpcenter/DESIGN deleted file mode 100644 index c65f3ff9..00000000 --- a/khelpcenter/DESIGN +++ /dev/null @@ -1,433 +0,0 @@ -Design for a possible reimplementation of the KDE help center -============================================================= - -Preludium ---------- -This document presents an alternative design for a 'help center' applicaiton -in KDE. Lines which start with a # are supposed to be thoughts I had while -writing this, much like the stuff you write on the side of a page when reading -a book. - -Lines starting with ## were added by my as further comments - Cornelius - -And I'll have the ### lines - Lauri - -General -------- -- main() instantiates a KHC::Application -- KHC::Application() deals with parsing the commandline parameters and - instantiates a KHC::MainWindow -- KHC::MainWindow creates the main UI, setting up actions, using a QSplitter - as it's mainwidget to separate a KHC::Navigator at the left from a KHC::View - at the right - -That's the simple part. ;-) - -## Apparently already done ;-) - -KHC::Navigator --------------- - -KHC::Navigator inherits QTabWidget and provides, on two tabs, a -KHC::ContentsTab object and a KHC::SearchTab object. - -## KHC::Navigator shouldn't inherit from QTabWidget. This limits flexibility. -## It can create a QTabWidget instance as aggregate just as well. - -# I fear premature generalization ("We could need that bit of flexibility one -# day), aggregation adds a level of indirection through a pointer variable as -# well. I would prefer not making the system more complex as long as we cannot -# predict changes which justify doing so. - -1.) KHC::ContentsTab provides the following entires: - - Welcome to KDE - - KDE user's manual - - KDE FAQ - - Contact information - - Supporting KDE - -# Should we create an extra item for these five and put them in there? -# Something like "General KDE" or so? OTOH that makes them less visible, and -# these are really ought to be seen. - Frerich - -## The items are ok, in principle, but we should have a look at the content of -## the documents they point at. This document could benefit from some attention. - -### Yes, they would. Also, there are license issues with one of them. -### I'd personally like to do an entire rewrite of the User Manual, -### without GPL encumbrance and sans the content that hasn't changed since -### KDE 1.x days. The odds of me getting this done before KDE 3.1, slim to fair. - - - - Application manuals - - Tutorials - - UNIX man pages - - UNIX info pages - - Glossary - -# Do we really need this "Tutorials" item at all? right now it holds only two -# items, perhaps we can get rid of it. - Frerich - -## Yes, please. - -### There should be a "General" area, where documentation that isn't -### attached directly to an application can go. Tutorials might not be -### the best name for it I agree, but there is now some further content to -### add (the DCOP tutorial, for example, or any of the numerous tutorials -### on the websites, documenting things that aren't in the handbooks.q - -# Alright, after some talk on IRC this structure evolved: -# -# - Tasks - contains short, three to four paragraph documents about how to -# solve an everyday task, examples: -# Browsing the web -# Send and receive email -# How to view images -# Playing sound files -# Installing new KDE themes -# How to configure KDE fonts -# Getting in touch with KDE contributors -# Supporting the KDE team -# -# - Guides - slightly longer, Mini-HOWTO style guides (about three to four -# pages long, perhaps) which talk about tackling jobs which don't -# occur very often, examples: -### I don't know about limiting the length. Some of these topics can stand -### a much longer document, but one of the things that differentiates them -### from the references is that they are not specific to a single application, -### nor are they complete references in the manner of the "KDE User Guide" -### Specificaly, the dcop tutorial we have is about 15 pages already, but if -### the user is interested in the topic, that isn't over much, and it's full of -### examples -# How to debug KDE programs -# Sending useful KDE bug reports -# Extending KDE's service menus -# Taking advantage of KDE's DCOP facilities -# Creating panel applets -# Phrasing questions most effectively -# -# - References - references. :-) -# KDE API reference -# KDE application manuals -# Info pages -# Man pages -# FAQ -# User's manual -# -# - Glossary - same as always. -# - By topic -# - Alphabetically -# -# My primary argument for such a structure is that it resembles a -# task-oriented interface much more closely than the simple list of -# application manuals. Imagine a user new to KDE who has a fairly precise -# description of what he's trying to do in mind (think "I want to view an -# image file") but no idea what tool to use for the job. The current list of -# application manuals requires the user to browse all the manuals which seem -# relevant, searching for the information he seeks. A task-oriented list -# solves that issue. -# This effectively enables people new to KDE in less time to become productive -# (a task-oriented list isn't so useful for peoplew ho are familiar with KDE's -# applications, of course). -# Implementation-wise, we should perhaps stop using a K3ListView and use a -# KOffice-style component selection widget like koshell has at the left? - -The first five items are generated by KHC::Navigator itself and are direct -links to KDE documentations. The work of generating each of the last four -items is (with one exception) delegated to four helper classes, which inherit a -'KHC::TreeBuilder' class which has the following interface: - -class KHC::TreeBuilder - virtual void build( K3ListViewItem *parent ) = 0; - -## What about the trees generated as children of the contents list view? - -# Oops, that's a typo, what you mean is what I originally intented: a -# TreeBuilder should take a 'K3ListView' as it's parent, subclasses can then -# overload that method (such as the KHC::TOCBuilder which will want to provide -# a build( K3ListViewItem *parent ) method). - -# This concept of using a TreeBuilder baseclass might make it possible to turn -# all the classes which use that interface into plugins. That way we could -# e.g. have a ScrollKeeper plugin. - Frerich - -## What exactly do you mean by plugin? A shared library loaded at run time or -## the desktop file based insertion of documents into the help center? - -# The former. - -The classes which inherit this interface are: - - KHC::ManualTreeBuilder: responsible for generating the tree below the - "Application manuals" item - - KHC::TOCBuilder: responsible for generating a TOC tree below each of the - manual trees items, so that you can choose Application - Manuals->Editors->KWrite->Using KWrite->Menu bar transparently. This is - the only builder which is not instantiated by KHC::ContentsTab but - instead instantiated by KHC::ManualTreeBuilder - - KHC::TutorialTreeBuilder: responsible for generating the tree below the - "Tutorials" item - - KHC::ManTreeBuilder: responsible for building the tree below the "UNIX - man pages" item - - KHC::InfoTreeBuilder: responsible for building the tree below the "UNIX - info pages" item - - KHC::GlossaryTreeBuilder: guess what - -## - KHC::ScrollkeeperTreeBuilder - -## It's certainly a good idea to move stuff like the info and man pages and -## scrollkeeper support to its own classes. What I consider as important is -## that the concept of representing the documentation by desktop meta files is -## used as far as possible. This makes the system very flexible and extandable. - -2.) KHC::SearchTab provides a widget which lets the search through all -available help repositories, also defining some flags such as 'Search by -regexp' or 'Search case sensitive'. - -# I think this means that we have to create a 'DataCollection' class which -# gets inherited by all classes which are "searchable". DataCollections should -# also be able to contains multiple child DataCollection, so that we have e.g. -# one DataCollection per application manual, and one "Manuals" collection -# which contains all the application manual collections. -# We'd probably also need a DataCollection for the info pages and man pages. -# And later, in the far future, we might extent this concept to web searches, -# so that e.g. Google represents a DataCollection which we can query. -# I'm not yet decided how to do that properly, perhaps using multiple -# inheritance, so that each TOCBuilder is a DataCollection - naw, we'd rather -# have a "TableOfContents" class which contains a TOCBuilder, and is a -# datacollection? Hm, not sure. -# In any case DataCollections should some sort of plugins, so that we can add -# e.g. new web search interfaces lateron. -# - Frerich - -## What you call a DataCollection is currently represented by the DocEntry -## objects. Each DocEntry object represents a document or a collection of -## documents. It has information about the name and description of the -## document, the location and how it can be searched. -## -## Currently this information is based on URLs or file names and is optimized -## to be used by scripts, e.g. CGI scripts. A little exception from this is -## the htdig support where just a keyword "SearchMethod=htdig" is put in the -## desktop file and the help center figures out how to perform that search by -## using a special class. This could be extended to cover other search methods -## like web searches or special search methods optimized for certain kind of -## documents. - -# I just thought about it - isn't that a bit overkill for the web search -# stuff? I just thought about it - all we need to do is to copy the .desktop -# files (at least some of them, like the ones for google, yahoo and excite) -# from the enhanced browsing thing and treat those as plugin .desktop files. -# We could show them in a listview on the Search tab, each found search engine -# being represented by a checkable listview item. So, we just let the user -# enter a term, replace the \{@} placeholder in the URIs specified in the -# selected .desktop files with that term, send out a request via KIO and show -# the results in our KHTMLPart (after all KHC::View is a KHTMLPart already). A -# problem with this: How to display the multiple HTML pages returned by the -# selected search engines? Using a QSplitter to split multiple KHTMLParts? -# Hmm... just wondered... perhaps we can work around that by not showing the -# returned HTML data at all but rather use a XSLT script (that is, one XSLT -# script per web search) which transforms the returned search results into a -# common format - that way, we could also filter out duplicates and then -# transform that filtered output into a nice, uniform HTML page. How about -# that? - -# I like this idea very much, I just thought it and noticed you wrote this -# down already. What I thought of was having a .desktop/.xslt file pair per -# search engine: each .desktop file holds at least the name of the engine (for -# the listview) and a search URI with a placeholder, just like in your scenario. -# In additionl there could be a X-KHelpCenter-XSLT key which defines which .xslt -# stylesheet to use for that particular search engine. We then query that search -# engine by replacing the placeholder in the URI with whatever the user entered -# and hand it to KIO. All the HTML returned by the various search engines gets -# then transformed into a custom, intermediate, XML dialect, using the XSLT -# stylesheets define in the .desktop files. Using that intermediate step we -# can nicely drop duplicate hits, for example, or create a list of hits in the -# sidebar (much like http://www.copernic.com does). After that, we can use -# another XSLT stylesheet to transform that cleaned XML tree into HTML which -# we then feed to our KHTMLView. Since we then have one unified output, we don't -# need to worry about having multiple KHTMLParts, and it's also nice because -# the user doesn't see which search engine returned which hit. - -# A problem with this would be that we cannot tell how a particular search -# engine treats boolean expressions (e.g. some search engines use 'foo AND bar', -# others use '+foo +bar', a third variation is '"foo bar"'). We thus cannot -# replace the placeholder in the URI but first have to translate the syntax -# entered by the user into a syntax which is appropriate for each single news -# engine. Right now I don't know how we could do this with just a .desktop/.xslt -# pair. We could always use fullblown C++ plugins which hold code which is able -# to do that translation, but I would really prefer to stick with .desktop files -# now since they're much easier to create. - -# Another thing which would speak in favor of C++ plugins: different search -# engines support different features (like, google can search more than just the -# web, and you can sometimes tell a search engine to list only results in a -# certain language, or with a certain encoding), so it would be nice if we could -# let the user access those features: through a dialog which has to be tailored -# to the possibilities of the respective search engine. I wonder whether we -# could have some sort of XML tree which defines how an UI should look like, and -# then let KHelpCenter create a dialog using that XML markup, but that idea is -# very vague right now. - -# Hmm, I just tried it and the XSLT idea didn't really take off: the problem -# is that many HTML pages returned by Google, Yahoo & co. don't seem to be -# valid XML, which is why tools such as meinproc or xsltproc refuse to process -# themm. :-/ - -KHC::View ---------- -KHC::View inherits KHTMLPart and does the actual job of showing some sort of -document. Most importantly, it has a slot which passes it a KUrl pointing to a -document to show. KHC::View will invoke kio_help if necessary (if the URL's -protocol == "help") by itself and otherwise use the plain URL. - -# TODO: Things I didn't really think about yet: the interface between the -# navigator and the view. I think this has to be a bidirectional association -# since the navigator can change the view (e.g. by clicking on a manual which -# shows it in the view), but the view can also change the navigator (think of -# clicking on a 'See also' link in the glossary which should also scroll to -# the corresponding entry in the navigator). - -## That's a very important aspect. We should have one central place where all -## document requests are processed and the necessary actions (like updating -## the navigator, loading a new page, caching the search results, etc.) are -## done. -## -## The TreeBuilder might need some interface to tell, if a certain URL exist -## in their tree, to make it possible to select content entries which aren't -## created yet, because they are only created on demand (like the application -## manuals). - -# Very good idea. Perhaps I think iterating over a list of TreeBuilder -# instances and doing something like 'if ((*it)->canHandle(url)) -# (*it)->selectItem(url)' which checks whether a TreeBuilder provides an item -# which corresponds to an URL (hmm, this makes me think, TreeBuilder is a bad -# name. Perhaps just 'Tree'?) and selects it (using -# QListView::ensureItemVisible() or so) if requested. This probably implies. -# that a TreeBuilder needs an internal QMap. - -# Also, the whole search engine needs more thought, that DataCollection idea -# seems promising to me but I'm not yet decided on how to do it properly. - -## See above. We already have something which isn't too bad, I think. - -# I just thought about this a bit, I think KHC::MainWindow should act as the -# interface between KHC::Navigator and KHC::View. - -## I would prefer to have an extra class which does no GUI stuff, but passes -## URL requests around, does the needed processing and stores data, if needed -## (e.g. caching search results). - -# Agreed. - -## One very important aspect of the help center is that it has to be fast. It's -## not acceptable to wait several seconds after clicking on the Help menu of an -## application. We should think about that. Perhaps we can do some tricks like -## showing the main window before creating the other widgets and processing data -## or something similar. We could also think about creating more stuff only on -## demand. - -# My perception is that filling the Navigator's listview takes a significant -# amount of time, just like setting up the KHTML view (loading the stylesheet, -# showing the welcome page). We could easily do taht in the background - show -# the mainwindow, then tell the TreeBuilders to start populating (using a -# QTimer with a timeout of 0, for a snappy GUI). Since they're collapsed at -# the start, the users won't even notice (and we can "fake" that they're -# already populated by calling setExpandable(true) for all of them (or letting -# them do that themselves) at the start. - -## Finally a crazy idea: Wouldn't it be cool, if we would make the manuals more -## interactive. So when you read about a certain menu or a certain dialog of an -## application you can click on a link in the manual and the menu or dialog gets -## opened in the real application, or some widgets get highlghted in the real -## application. Such a feature could also be used to create interactive -## tutorials, where you have a small helpcenter window and the application next -## to each other on the screen and you can go through the tutorial step by step -## and practice with the real application while reading the instructions. -## With the help of DCOP it shouldn't be too hard to implement such an -## interactive help system. Maybe it's even possible to do it in a general way -## in the libs, so that application authors don't have to think about that -## feature. - -# Hmm, that's an interesting idea. That takes KHelpCenter way beyond what it's -# currently doing. I can imagine this: we introduce a virtual "dcop" protocol, -# so that e.g. -# represents the DCOP call 'dcop kfortune KFortuneIface nextfortune'. -# KHelpCenter catches that protocol (oh dear, a lot of special cases with -# gloss, info etc. already - guess another one won't hurt). That looks like a -# good way for encapsulating DCOP calls. -# Now, the problem is - the application has to provide a dedicated -# "documentation" DCOP interface for this, with lots of calls for highlighting -# the various widgets (hm, this probably means taht we can skip the first two -# parts in our 'dcop' URL syntax, the application is known anyway, and the -# interface is hardcoded in KHelpCenter). -# So, what could happen is this: We have a piece of HTML in the documentation -# for our SuperApp application which goes like 'The -# button labelled Connect makes -# SuperApp establish a connection.' - the user clicks on that link, -# KHelpCenter catches a dcop: URL, checks whether SuperApp has already been -# started. If not, it starts a SuperApp process and does the dcop call 'dcop -# SuperApp DocIface highlightConnectButton' and SuperApp starts highlighting -# that connect button. The thing is that this requires a lot of work on the -# application side. The idea is very cool, but we'd have to think about -# outsourceing parts of that functionality, either to KHelpCenter, or to -# kdelibs. - -## And another idea: The WhatsThis help texts describe all widgets of an -## application (provided that the texts are set by the developers). Currently -## they aren't accessible very easily. You have to go to a special mode and -## can then click on one widget after another to get the help, if there is one. -## There is no visual indication which widgets have help and which not. But the -## application knows about the WhatsThis helps. Perhaps it's possible to use -## the Qt object inspection stuff to extract all the texts and put them on an -## automatically generated screenshot of the corresponding dialog and put this -## graphic into the docs. Maybe it's even possible to do this at run-time and -## decorate dialogs with all WhatsThis helps at once, if the user triggers this -## mode. - -# Hmm yes, that should be possible. Take the toplevel widget, use -# QObject::children() and iterate over all children, use QToolTip::textFor() to -# check whether the given qwidget has a tooltip and if so, use QToolTip::tip() -# to show the tooltip. -# One could probably add a standard dcop call to KMainWindow, like -# "showAllToolTips". KSnapShot could get a QCheckBox "Show all tooltips", and -# if that box is checked it tells the selected window to show all it's -# tooltips via that DCOP call right before it does the snapshot. The thing is -# - is it possible to map the WinID of the window the user clicked on to -# the process name we should send your DCOP call to? - -## One thing we should also keep in mind is that it might be useful to provide -## the help center as a component. FOr example KDevelop has a very similar -## thing. It would be much nicer, if it could reuse the KHelpcenter code. This -## would probbaly also mean to at a DoxygenTreeBuilder or something similar. - -# That probably implies that instead of a QSplitter which holds the Navigator -# and the View, we'd have a KHC::MainWidget KPart which in turn aggregates the -# splitter. The DoxygenTreeBuilder sounds like a reason to make TreeBuilders -# real plugins, with dynamically loaded libraries, so that KDevelop or other -# "IDE"-like applications (perhaps a KOffice help system?) can have their -# customized tree builders. - -Font Configuration ------------------- - -### Many bug reports on KHelpCenter not honouring KHTML font settings, -### which is odd, because the stylesheet is intentionally loose, -### specifying only "sans-serif" as the font face. - -### Ideas to fix: - -### Help pages already make heavy use of the cascading feature of CSS, we -### ought to be able to leverage that by writing to perhaps the -### kde-localized.css file or a copy of it in $KDEHOME. There is already -### code in KControl to create a user CSS stylesheet, and we probably only -### need to configure the size and the face for KHC. - -### Or, fix whatever is the reason KHC doesn't follow the rules. It could -### be encoding related, the help pages specify utf-8 as the encoding, and -### previous incarnations of the KHTML settings allowed fonts set on a -### per-encoding basis (at which time, this was apparently working, the bug -### reports dropped off, and only returned post KDE 3.0 - -# FWIW I added a simple font configuration facility a while back, which should -# IMHO be sufficient for the vast majority of users. - -// vim:tw=78 diff --git a/khelpcenter/Help.desktop b/khelpcenter/Help.desktop deleted file mode 100755 index 71505f16..00000000 --- a/khelpcenter/Help.desktop +++ /dev/null @@ -1,104 +0,0 @@ -[Desktop Entry] - -Exec=khelpcenter -Icon=help-browser -X-DocPath=khelpcenter/index.html -Type=Application -Terminal=false - -Name=Help -Name[af]=Hulp -Name[ar]=مساعدة -Name[as]=সহায় -Name[ast]=Ayuda -Name[be]=Дапамога -Name[be@latin]=Dapamoha -Name[bg]=Помощ -Name[bn]=সাহায্য -Name[bn_IN]=সাহায্য -Name[br]=Skoazell -Name[bs]=Pomoć -Name[ca]=Ajuda -Name[ca@valencia]=Ajuda -Name[cs]=Nápověda -Name[csb]=Pòmòc -Name[cy]=Cymorth -Name[da]=Hjælp -Name[de]=Hilfe -Name[el]=Βοήθεια -Name[en_GB]=Help -Name[eo]=Helpo -Name[es]=Ayuda -Name[et]=Abi -Name[eu]=Laguntza -Name[fa]=کمک -Name[fi]=Ohjeet -Name[fr]=Aide -Name[fy]=Help -Name[ga]=Cabhair -Name[gl]=Axuda -Name[gu]=મદદ -Name[he]=עזרה -Name[hi]=मदद -Name[hne]=मदद -Name[hr]=Pomoć -Name[hsb]=Pomoc -Name[hu]=Súgó -Name[ia]=Adjuta -Name[id]=Bantuan -Name[is]=Hjálp -Name[it]=Aiuto -Name[ja]=ヘルプ -Name[ka]=დახმარება -Name[kk]=Анықтама -Name[km]=ជំនួយ -Name[kn]=ಸಹಾಯ -Name[ko]=도움말 -Name[ku]=Alîkarî -Name[lt]=Pagalba -Name[lv]=Palīdzība -Name[mai]=मद्दति -Name[mk]=Помош -Name[ml]=സഹായം -Name[mr]=मदत -Name[ms]=Bantuan -Name[nb]=Hjelp -Name[nds]=Hülp -Name[ne]=मद्दत -Name[nl]=Documentatie -Name[nn]=Hjelp -Name[oc]=Ajuda -Name[or]=ସହାୟତା -Name[pa]=ਮੱਦਦ -Name[pl]=Pomoc -Name[pt]=Ajuda -Name[pt_BR]=Ajuda -Name[ro]=Ajutor -Name[ru]=Справка -Name[se]=Veahkki -Name[si]=උදව් -Name[sk]=Pomocník -Name[sl]=Pomoč -Name[sr]=Помоћ -Name[sr@ijekavian]=Помоћ -Name[sr@ijekavianlatin]=Pomoć -Name[sr@latin]=Pomoć -Name[sv]=Hjälp -Name[ta]=உதவி -Name[te]=సహాయం -Name[tg]=Роҳнамо -Name[th]=วิธีใช้ -Name[tr]=Yardım -Name[ug]=ياردەم -Name[uk]=Довідка -Name[uz]=Yordam -Name[uz@cyrillic]=Ёрдам -Name[vi]=Trợ giúp -Name[wa]=Aidance -Name[xh]=Uncedo -Name[x-test]=xxHelpxx -Name[zh_CN]=帮助 -Name[zh_TW]=求助 - -Categories=Qt;KDE;Core; -OnlyShowIn=KDE; diff --git a/khelpcenter/Messages.sh b/khelpcenter/Messages.sh deleted file mode 100644 index 75a558f0..00000000 --- a/khelpcenter/Messages.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -$EXTRACTRC `find . -name "*.kcfg" -o -name "*.rc"` >> rc.cpp || exit 11 -$XGETTEXT *.cpp -o $podir/khelpcenter.pot -rm -f rc.cpp diff --git a/khelpcenter/README.htdig b/khelpcenter/README.htdig deleted file mode 100644 index c4981035..00000000 --- a/khelpcenter/README.htdig +++ /dev/null @@ -1,14 +0,0 @@ -To make use of the full-text search function in khelpcenter, -you need ht://dig. - -ht://dig is a HTML indexing and searching tool. - -You can get it from http://www.htdig.org. - -NOTE: If you install htdig from source, make sure -that you put the 'htsearch' as well as the 'htdig' -and 'htmerge' binaries into your PATH. - -Per default, 'htsearch' goes to some cgi-bin -directory. - diff --git a/khelpcenter/README.metadata b/khelpcenter/README.metadata deleted file mode 100644 index 6a113cdf..00000000 --- a/khelpcenter/README.metadata +++ /dev/null @@ -1,128 +0,0 @@ -KHelpCenter documentation meta data structure -============================================= - -KHelpCenter uses meta data files which describe the documentation available in -the system. Each document is represented by a meta data file and shown as an -entry in the KHelpCenter navigation tree view. The meta data contains -information about title and short description of the document, the location of -the document and some more information like how to search the document and -translations of title and description. Document hierarchy is represented as -hierarchy of the meta data files. Directories are also described by a meta data -file which contains the same information as a document meta data file. - -Format of the meta data files ------------------------------ - -The meta files adhere to the Desktop Entry Standard -(http://www.freedesktop.org/Standards/desktop-entry-spec). Documentation -specific extensions are covered by an own namespace using the prefix "X-DOC-". -The following table describes all keys which are currently used by -KHelpCenter: - -Key Value Description - -Name string Title of document -Name[xx] string Translated title for language xx -Comment string Short description of document -Comment[xx] string Translated short description for - Language xx -Icon string Name of icon for document -X-DocPath URI Location of document. In addition to the - standard URI schemes like http: and file: - all schemes which are supported through - kioslaves can be used. In particular the - following non-standard URI schemes are - supported: - help: KDE manual identified by app name - ghelp: GNOME manual identified by app name - man: man page - info: info page - cgi: output of CGI script -X-DocPath[xx] URI Language specific location for - language xx -Lang langcode Language of document -X-DOC-Identifier string Unique identifier for document, if this - entry is not present the base name of the - file is used as identifier -X-DOC-Indexer command Command used for creating a search index - for the document. - The following symbols are replaced by the - corresponding values: - %f - Filename -X-DOC-IndexTestFile filename Name of file whose existence indicates - the existence of a usable search index -X-DOC-Search command Command used for searching, the output - of the command should be HTML which is - shown in KHelpCenter. - The following symbols in the command are - replaced by the corresponding values: - %k - Words to be searched for - %n - Maximum number of results - %m - Method for combining search words, - can be 'and' or 'or' - %l - Language of documents to be searched - %s - Scope of search. This is a list of - identifiers as given by the - X-DOC-Identifier entry or the bas - name of the desktop file if not - present. -X-DOC-SearchMethod string If this entry is 'htdig' htdig is used to - index and search the document. The - Indexer, IndexTestFile and Search entries - aren't required in this case. -X-DOC-SearchEnabledDefault bool If set to 'true' the document is searched - by default, if set to 'false' it is not. - This setting is overridden by user - selected search scopes. -X-DOC-Weight int A number indicating the position of the - document within the list of siblings. A - greater weight indicates that the document - is 'heavier', thus shown below 'lighter' - documents. The default weight is 0. -X-KDE-KHelpcenter string If this entry is set to one of the - following values a set of documents - generated by other means than desktop file - meta info is inserted at the place - specified by the desktop file: - 'apps' manuals of applications - from the start menu - 'scrollkeeper' scrollkeeper docs - 'kinfocenter' kinfocenter docs - 'kcontrol' kcontrol module docs - 'konqueror' konqueror plugin docs - 'kioslave' kioslave docs - 'info' info pages -X-DOC-DocumentType string Type of document. The type is used to look - up corresponding search handlers. - -Meta File Location ------------------- - -A list of directories given by the config entry "MetaInfoDirs" in the "General" -group of the help center configuration file "khelpcenterrc" (at -$KDEDIRS/share/config) is scanned for desktop files. They are merged to a common -hierarchy. If the "MetaInfoDirs" entry is empty the directory at -$KDEDIRS/share/apps/khelpcenter/plugins is used. - -Document Hierarchy ------------------- - -The hierarchy of the documents shown in the help center is reflected by the -hierarchy of the desktop files in the filesystem. Directories can have an -associated desktop file with the name ".directory". It can contain all the -keys described above. - -Language handling ------------------ - -In addition to translation of meta information like title and short description -of documents which is contained in the meta file, translations of whole -documents are handled. Each translation of a document has an own desktop file. -The language of the document is indicated by adding the language code as -additional suffix to the filename of the desktop file. The language suffix -is added before the ".desktop" suffix (Example: 'apache.de.desktop' would be the -file name for the german translation of the apache documentation). - -KHelpCenter shows only the documents whose language is contained in the list of -used languages configured for the desktop in the control center. A document -corresponding to a desktop file without language suffix is always shown. diff --git a/khelpcenter/application.cpp b/khelpcenter/application.cpp deleted file mode 100644 index 7f3d8b6a..00000000 --- a/khelpcenter/application.cpp +++ /dev/null @@ -1,90 +0,0 @@ - -/* - * This file is part of the KDE Help Center - * - * Copyright (c) 2002 Frerich Raabe - * - * 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 "application.h" -#include "mainwindow.h" -#include "version.h" - -#include -#include -#include - -using namespace KHC; - -Application::Application() : KUniqueApplication(), mMainWindow( 0 ) -{ -} - -int Application::newInstance() -{ - if (restoringSession()) return 0; - - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - - KUrl url; - if ( args->count() ) - url = args->url( 0 ); - - if( !mMainWindow ) - { - mMainWindow = new MainWindow; - mMainWindow->show(); - } - - mMainWindow->openUrl( url ); - - return KUniqueApplication::newInstance(); -} - -extern "C" int KDE_EXPORT kdemain( int argc, char **argv ) -{ - KAboutData aboutData( "khelpcenter", 0, ki18n("KDE Help Center"), - HELPCENTER_VERSION, - ki18n("The KDE Help Center"), - KAboutData::License_GPL, - ki18n("(c) 1999-2011, The KHelpCenter developers") ); - - aboutData.addAuthor( ki18n("Cornelius Schumacher"), KLocalizedString(), "schumacher@kde.org" ); - aboutData.addAuthor( ki18n("Frerich Raabe"), KLocalizedString(), "raabe@kde.org" ); - aboutData.addAuthor( ki18n("Matthias Elter"), ki18n("Original Author"), - "me@kde.org" ); - aboutData.addAuthor( ki18n("Wojciech Smigaj"), ki18n("Info page support"), - "achu@klub.chip.pl" ); - aboutData.setProgramIconName( "help-browser" ); - - KCmdLineArgs::init( argc, argv, &aboutData ); - - KCmdLineOptions options; - options.add("+[url]", ki18n("URL to display")); - KCmdLineArgs::addCmdLineOptions( options ); - KCmdLineArgs::addStdCmdLineOptions(); - - KHC::Application app; - - if ( app.isSessionRestored() ) - { - RESTORE( MainWindow ); - } - - return app.exec(); -} - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/application.h b/khelpcenter/application.h deleted file mode 100644 index 0d5cf416..00000000 --- a/khelpcenter/application.h +++ /dev/null @@ -1,47 +0,0 @@ - -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe - * - * 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 KHC_APPLICATION_H -#define KHC_APPLICATION_H - -#include - -namespace KHC { - - class MainWindow; - - class Application : public KUniqueApplication - { - public: - Application(); - - virtual int newInstance(); - - private: - MainWindow *mMainWindow; - }; - -} - -extern "C" { int KDE_EXPORT kdemain(int argc, char **argv); } - -#endif // KHC_APPLICATION_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/docentry.cpp b/khelpcenter/docentry.cpp deleted file mode 100644 index bd74e226..00000000 --- a/khelpcenter/docentry.cpp +++ /dev/null @@ -1,359 +0,0 @@ -#include "docentry.h" - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "prefs.h" - -using namespace KHC; - -DocEntry::DocEntry() -{ - init(); -} - -DocEntry::DocEntry( const QString &name, const QString &url, - const QString &icon ) -{ - init(); - - mName = name; - mUrl = url; - mIcon = icon; -} - -void DocEntry::init() -{ - mWeight = 0; - mSearchEnabled = false; - mDirectory = false; - mParent = 0; - mNextSibling = 0; -} - -void DocEntry::setName( const QString &name ) -{ - mName = name; -} - -QString DocEntry::name() const -{ - return mName; -} - -void DocEntry::setSearch( const QString &search ) -{ - mSearch = search; -} - -QString DocEntry::search() const -{ - return mSearch; -} - -void DocEntry::setIcon( const QString &icon ) -{ - mIcon = icon; -} - -QString DocEntry::icon() const -{ - if ( !mIcon.isEmpty() ) return mIcon; - if ( !docExists() ) return QLatin1String("unknown"); - if ( isDirectory() ) return QLatin1String("help-contents"); - - else return "text-plain"; -} - -void DocEntry::setUrl( const QString &url ) -{ - mUrl = url; -} - -QString DocEntry::url() const -{ - if ( !mUrl.isEmpty() ) return mUrl; - if ( identifier().isEmpty() ) return QString(); - - return "khelpcenter:" + identifier(); -} - -void DocEntry::setInfo( const QString &info ) -{ - mInfo = info; -} - -QString DocEntry::info() const -{ - return mInfo; -} - -void DocEntry::setLang( const QString &lang ) -{ - mLang = lang; -} - -QString DocEntry::lang() const -{ - return mLang; -} - -void DocEntry::setIdentifier( const QString &identifier ) -{ - mIdentifier = identifier; -} - -QString DocEntry::identifier() const -{ - if ( mIdentifier.isEmpty() ) mIdentifier = KRandom::randomString( 15 ); - return mIdentifier; -} - -void DocEntry::setIndexer( const QString &indexer ) -{ - mIndexer = indexer; -} - -QString DocEntry::indexer() const -{ - return mIndexer; -} - -void DocEntry::setIndexTestFile( const QString &indexTestFile ) -{ - mIndexTestFile = indexTestFile; -} - -QString DocEntry::indexTestFile() const -{ - return mIndexTestFile; -} - -void DocEntry::setWeight( int weight ) -{ - mWeight = weight; -} - -int DocEntry::weight() const -{ - return mWeight; -} - -void DocEntry::setSearchMethod( const QString &method ) -{ - mSearchMethod = method; -} - -QString DocEntry::searchMethod() const -{ - return mSearchMethod; -} - -void DocEntry::setDocumentType( const QString &str ) -{ - mDocumentType = str; -} - -QString DocEntry::documentType() const -{ - return mDocumentType; -} - -QString DocEntry::khelpcenterSpecial() const -{ - return mKhelpcenterSpecial; -} - -void DocEntry::enableSearch( bool enabled ) -{ - mSearchEnabled = enabled; -} - -bool DocEntry::searchEnabled() const -{ - return mSearchEnabled; -} - -void DocEntry::setSearchEnabledDefault( bool enabled ) -{ - mSearchEnabledDefault = enabled; -} - -bool DocEntry::searchEnabledDefault() const -{ - return mSearchEnabledDefault; -} - -void DocEntry::setDirectory( bool dir ) -{ - mDirectory = dir; -} - -bool DocEntry::isDirectory() const -{ - return mDirectory; -} - -bool DocEntry::readFromFile( const QString &fileName ) -{ - KDesktopFile file( fileName ); - KConfigGroup desktopGroup = file.desktopGroup(); - - mName = file.readName(); - mSearch = desktopGroup.readEntry( "X-DOC-Search" ); - mIcon = file.readIcon(); - mUrl = file.readDocPath(); - mInfo = desktopGroup.readEntry( "Info" ); - if ( mInfo.isNull() ) - { - mInfo = desktopGroup.readEntry( "Comment" ); - } - mLang = desktopGroup.readEntry( "Lang", "en" ); - mIdentifier = desktopGroup.readEntry( "X-DOC-Identifier" ); - if ( mIdentifier.isEmpty() ) - { - QFileInfo fi( fileName ); - mIdentifier = fi.completeBaseName(); - } - mIndexer = desktopGroup.readEntry( "X-DOC-Indexer" ); - mIndexer.replace( "%f", fileName ); - mIndexTestFile = desktopGroup.readEntry( "X-DOC-IndexTestFile" ); - mSearchEnabledDefault = desktopGroup.readEntry( "X-DOC-SearchEnabledDefault", - false ); - mSearchEnabled = mSearchEnabledDefault; - mWeight = desktopGroup.readEntry( "X-DOC-Weight", 0 ); - mSearchMethod = desktopGroup.readEntry( "X-DOC-SearchMethod" ); - mDocumentType = desktopGroup.readEntry( "X-DOC-DocumentType" ); - - mKhelpcenterSpecial = desktopGroup.readEntry("X-KDE-KHelpcenter-Special"); - - return true; -} - -bool DocEntry::indexExists( const QString &indexDir ) -{ - QString testFile; - if ( mIndexTestFile.isEmpty() ) - { - testFile = identifier() + QLatin1String(".exists"); - } else { - testFile = mIndexTestFile; - } - - if ( !testFile.startsWith( QLatin1Char('/') ) ) testFile = indexDir + QLatin1Char('/') + testFile; - return QFile::exists( testFile ); -} - -bool DocEntry::docExists() const -{ - if ( !mUrl.isEmpty() ) - { - KUrl docUrl( mUrl ); - if ( docUrl.isLocalFile() && !KStandardDirs::exists( docUrl.toLocalFile() ) ) - { - return false; - } - } - - return true; -} - -void DocEntry::addChild( DocEntry *entry ) -{ - entry->setParent( this ); - - int i; - for( i = 0; i < mChildren.count(); ++i ) - { - if ( i == 0 ) { - if ( entry->weight() < mChildren.first()->weight() ) - { - entry->setNextSibling( mChildren.first() ); - mChildren.prepend( entry ); - break; - } - } - if ( i + 1 < mChildren.count() ) - { - if ( entry->weight() >= mChildren[ i ]->weight() && - entry->weight() < mChildren[ i + 1 ]->weight() ) - { - entry->setNextSibling( mChildren[ i + 1 ] ); - mChildren[ i ]->setNextSibling( entry ); - mChildren.insert( mChildren.indexOf(mChildren.at( i + 1 )), entry ); - break; - } - } - } - if ( i == mChildren.count() ) - { - if ( i > 0 ) - { - mChildren.last()->setNextSibling( entry ); - } - mChildren.append( entry ); - } -} - -bool DocEntry::hasChildren() -{ - return mChildren.count(); -} - -DocEntry *DocEntry::firstChild() -{ - return mChildren.first(); -} - -DocEntry::List DocEntry::children() -{ - return mChildren; -} - -void DocEntry::setParent( DocEntry *parent ) -{ - mParent = parent; -} - -DocEntry *DocEntry::parent() -{ - return mParent; -} - -void DocEntry::setNextSibling( DocEntry *next ) -{ - mNextSibling = next; -} - -DocEntry *DocEntry::nextSibling() -{ - return mNextSibling; -} - -bool DocEntry::isSearchable() -{ - return !search().isEmpty() && docExists() && - indexExists( Prefs::indexDirectory() ); -} - -void DocEntry::dump() const -{ - kDebug() << " "; - kDebug() << " " << mName << ""; - kDebug() << " " << mSearchMethod << ""; - kDebug() << " " << mSearch << ""; - kDebug() << " " << mIndexer << ""; - kDebug() << " " << mIndexTestFile << ""; - kDebug() << " " << mIcon << ""; - kDebug() << " " << mUrl << ""; - kDebug() << " " << mDocumentType << ""; - kDebug() << " "; -} -// vim:ts=2:sw=2:et diff --git a/khelpcenter/docentry.h b/khelpcenter/docentry.h deleted file mode 100644 index 8af4e779..00000000 --- a/khelpcenter/docentry.h +++ /dev/null @@ -1,118 +0,0 @@ - -#ifndef KHC_DOCENTRY_H -#define KHC_DOCENTRY_H - -#include -#include - -namespace KHC { - - class DocEntry - { - public: - typedef QList List; - - DocEntry(); - - explicit DocEntry( const QString &name, const QString &url = QString(), - const QString &icon = QString() ); - - void setName( const QString & ); - QString name() const; - - void setSearch( const QString & ); - QString search() const; - - void setIcon( const QString & ); - QString icon() const; - - void setUrl( const QString & ); - QString url() const; - - void setInfo( const QString & ); - QString info() const; - - void setLang( const QString & ); - QString lang() const; - - void setIdentifier( const QString & ); - QString identifier() const; - - void setIndexer( const QString & ); - QString indexer() const; - - void setIndexTestFile( const QString & ); - QString indexTestFile() const; - - void setWeight( int ); - int weight() const; - - void setSearchMethod( const QString & ); - QString searchMethod() const; - - void enableSearch( bool enabled ); - bool searchEnabled() const; - - void setSearchEnabledDefault( bool enabled ); - bool searchEnabledDefault() const; - - void setDocumentType( const QString & ); - QString documentType() const; - - void setDirectory( bool ); - bool isDirectory() const; - - bool readFromFile( const QString &fileName ); - - bool indexExists( const QString &indexDir ); - - bool docExists() const; - - void addChild( DocEntry * ); - bool hasChildren(); - DocEntry *firstChild(); - List children(); - - void setParent( DocEntry * ); - DocEntry *parent(); - - void setNextSibling( DocEntry * ); - DocEntry *nextSibling(); - - QString khelpcenterSpecial() const; - - bool isSearchable(); - - void dump() const; - - protected: - void init(); - - private: - QString mName; - QString mSearch; - QString mIcon; - QString mUrl; - QString mInfo; - QString mLang; - mutable QString mIdentifier; - QString mIndexer; - QString mIndexTestFile; - int mWeight; - QString mSearchMethod; - bool mSearchEnabled; - bool mSearchEnabledDefault; - QString mDocumentType; - bool mDirectory; - - QString mKhelpcenterSpecial; - - List mChildren; - DocEntry *mParent; - DocEntry *mNextSibling; - }; - -} - -#endif //KHC_DOCENTRY_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/docentrytraverser.cpp b/khelpcenter/docentrytraverser.cpp deleted file mode 100644 index aa4383ac..00000000 --- a/khelpcenter/docentrytraverser.cpp +++ /dev/null @@ -1,69 +0,0 @@ - -/* This file is part of the KDE project - * Copyright 2002 Cornelius Schumacher - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License version 2 or at your option version 3 as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "docentrytraverser.h" -#include "docmetainfo.h" - -using namespace KHC; - -void DocEntryTraverser::setNotifyee( DocMetaInfo *n ) -{ - mNotifyee = n; -} - -void DocEntryTraverser::startProcess( DocEntry *entry ) -{ - process( entry ); - mNotifyee->endProcess( entry, this ); -} - -DocEntryTraverser *DocEntryTraverser::childTraverser( DocEntry *parentEntry ) -{ - DocEntryTraverser *child = createChild( parentEntry ); - if (!child) - return 0; - if ( child != this ) - { - child->mParent = this; - child->mNotifyee = mNotifyee; - } - return child; -} - -DocEntryTraverser *DocEntryTraverser::parentTraverser() -{ - return mParent; -} - -void DocEntryTraverser::deleteTraverser() -{ - delete this; -} - -void DocEntryTraverser::setParentEntry( DocEntry *entry ) -{ - mParentEntry = entry; -} - -DocEntry *DocEntryTraverser::parentEntry() -{ - return mParentEntry; -} -// vim:ts=2:sw=2:et diff --git a/khelpcenter/docentrytraverser.h b/khelpcenter/docentrytraverser.h deleted file mode 100644 index ee3ffa48..00000000 --- a/khelpcenter/docentrytraverser.h +++ /dev/null @@ -1,64 +0,0 @@ - -/* This file is part of the KDE project - Copyright 2002 Cornelius Schumacher - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License version 2 or at your option version 3 as published - by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef KHC_DOCENTRYTRAVERSER_H -#define KHC_DOCENTRYTRAVERSER_H - -namespace KHC { - - class DocEntry; - class DocMetaInfo; - - class DocEntryTraverser - { - public: - DocEntryTraverser() : mNotifyee( 0 ), mParent( 0 ), mParentEntry( 0 ) {} - virtual ~DocEntryTraverser() {} - - void setNotifyee( DocMetaInfo * ); - - virtual void process( DocEntry * ) = 0; - - virtual void startProcess( DocEntry * ); - - virtual DocEntryTraverser *createChild( DocEntry *parentEntry ) = 0; - - virtual void deleteTraverser(); - - virtual void finishTraversal() {} - - DocEntryTraverser *childTraverser( DocEntry *parentEntry ); - virtual DocEntryTraverser *parentTraverser(); - - void setParentEntry( DocEntry * ); - DocEntry *parentEntry(); - - protected: - DocMetaInfo *mNotifyee; - DocEntryTraverser *mParent; - - private: - DocEntry *mParentEntry; - }; - -} - -#endif //KHC_DOCENTRYTRAVERSER_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/docmetainfo.cpp b/khelpcenter/docmetainfo.cpp deleted file mode 100644 index 3de13bcb..00000000 --- a/khelpcenter/docmetainfo.cpp +++ /dev/null @@ -1,327 +0,0 @@ - -/* This file is part of the KDE project - * Copyright 2002 Cornelius Schumacher - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License version 2 or at your option version 3 as published - * by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "docmetainfo.h" - -#include - -#include -#include -#include -#include -#include - -#include "htmlsearch.h" -#include "docentrytraverser.h" - -using namespace KHC; - -bool DocMetaInfo::mLoaded = false; - -DocMetaInfo *DocMetaInfo::mSelf = 0; - -DocMetaInfo *DocMetaInfo::self() -{ - if ( !mSelf ) mSelf = new DocMetaInfo; - return mSelf; -} - -DocMetaInfo::DocMetaInfo() -{ - kDebug() << "DocMetaInfo()"; - - mHtmlSearch = new HTMLSearch; - - mRootEntry.setName( i18n("Top-Level Documentation") ); -} - -DocMetaInfo::~DocMetaInfo() -{ - kDebug() << "~DocMetaInfo()"; - - DocEntry::List::ConstIterator it; - for( it = mDocEntries.constBegin(); it != mDocEntries.constEnd(); ++it ) - { - delete *it; - } - - delete mHtmlSearch; - - mLoaded = false; - - mSelf = 0; -} - -DocEntry *DocMetaInfo::addDocEntry( const QString &fileName ) -{ - QFileInfo fi( fileName ); - if ( !fi.exists() ) return 0; - - QString extension = fi.completeSuffix(); - QStringList extensions = extension.split( '.'); - QString lang; - if ( extensions.count() >= 2 ) - { - lang = extensions[ extensions.count() - 2 ]; - } - - if ( !lang.isEmpty() && !mLanguages.contains( lang ) ) - { - return 0; - } - - DocEntry *entry = new DocEntry(); - - if ( entry->readFromFile( fileName ) ) - { - if ( !lang.isEmpty() && lang != mLanguages.first() ) - { - entry->setLang( lang ); - entry->setName( i18nc("doctitle (language)","%1 (%2)", - entry->name() , - mLanguageNames[ lang ] ) ); - } - if ( entry->searchMethod().toLower() == "htdig" ) - { - mHtmlSearch->setupDocEntry( entry ); - } - QString indexer = entry->indexer(); - indexer.replace( "%f", fileName ); - entry->setIndexer( indexer ); - addDocEntry( entry ); - return entry; - } - else - { - delete entry; - return 0; - } -} - -void DocMetaInfo::addDocEntry( DocEntry *entry ) -{ - mDocEntries.append( entry ); - if ( !entry->search().isEmpty() ) mSearchEntries.append( entry ); -} - -DocEntry::List DocMetaInfo::docEntries() -{ - return mDocEntries; -} - -DocEntry::List DocMetaInfo::searchEntries() -{ - return mSearchEntries; -} - -QString DocMetaInfo::languageName( const QString &langcode ) -{ - if ( langcode == "en" ) return i18nc("Describes documentation entries that are in English","English"); - - QString cfgfile = KStandardDirs::locate( "locale", - QString::fromLatin1( "%1/entry.desktop" ).arg( langcode ) ); - - kDebug() << "-- langcode: " << langcode << " cfgfile: " << cfgfile; - - KConfig _cfg( cfgfile, KConfig::SimpleConfig ); - KConfigGroup cfg(&_cfg, "KCM Locale" ); - QString name = cfg.readEntry( "Name", langcode ); - - return name; -} - -void DocMetaInfo::scanMetaInfo( bool force ) -{ - if ( mLoaded && !force ) return; - - mLanguages = KGlobal::locale()->languageList(); - - kDebug( 1400 ) << "LANGS: " << mLanguages.join( QLatin1String(" ") ); - - QStringList::ConstIterator it; - for( it = mLanguages.constBegin(); it != mLanguages.constEnd(); ++it ) - { - mLanguageNames.insert( *it, languageName( *it ) ); - } - - KConfig config( QLatin1String("khelpcenterrc") ); - KConfigGroup cg(&config, "General"); - QStringList metaInfos = cg.readEntry( "MetaInfoDirs" , QStringList() ); - - if ( metaInfos.isEmpty() ) - { - KStandardDirs* kstd = KGlobal::dirs(); - metaInfos = kstd->findDirs( "appdata", "plugins" ); - } - for( it = metaInfos.constBegin(); it != metaInfos.constEnd(); ++it) - { - kDebug() << "DocMetaInfo::scanMetaInfo(): scanning " << *it; - scanMetaInfoDir( *it, &mRootEntry ); - } - - mLoaded = true; -} - -DocEntry *DocMetaInfo::scanMetaInfoDir( const QString &dirName, - DocEntry *parent ) -{ - QDir dir( dirName ); - if ( !dir.exists() ) return 0; - - foreach( const QFileInfo &fi, dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot) ) - { - DocEntry *entry = 0; - if ( fi.isDir() ) - { - DocEntry *dirEntry = addDirEntry( QDir( fi.absoluteFilePath() ), parent ); - entry = scanMetaInfoDir( fi.absoluteFilePath(), dirEntry ); - } - else if ( fi.suffix() == QLatin1String("desktop") ) - { - entry = addDocEntry( fi.absoluteFilePath() ); - if ( parent && entry ) parent->addChild( entry ); - } - } - - return 0; -} - -DocEntry *DocMetaInfo::addDirEntry( const QDir &dir, DocEntry *parent ) -{ - DocEntry *dirEntry = addDocEntry( dir.absolutePath() + QLatin1String("/.directory") ); - - if ( !dirEntry ) - { - dirEntry = new DocEntry; - dirEntry->setName( dir.dirName() ); - addDocEntry( dirEntry ); - } - - dirEntry->setDirectory( true ); - if ( parent ) parent->addChild( dirEntry ); - - return dirEntry; -} - - -void DocMetaInfo::traverseEntries( DocEntryTraverser *traverser ) -{ - traverseEntry( &mRootEntry, traverser ); -} - -void DocMetaInfo::traverseEntry( DocEntry *entry, DocEntryTraverser *traverser ) -{ - DocEntry::List children = entry->children(); - DocEntry::List::ConstIterator it; - for( it = children.constBegin(); it != children.constEnd(); ++it ) - { - if ( (*it)->isDirectory() && !(*it)->hasChildren() && - (*it)->khelpcenterSpecial().isEmpty() ) continue; - traverser->process( *it ); - if ( (*it)->hasChildren() ) - { - DocEntryTraverser *t = traverser->childTraverser( *it ); - if (t) - { - traverseEntry( *it, t ); - t->deleteTraverser(); - } - } - } -} - -void DocMetaInfo::startTraverseEntries( DocEntryTraverser *traverser ) -{ - kDebug() << "DocMetaInfo::startTraverseEntries()"; - traverser->setNotifyee( this ); - startTraverseEntry( &mRootEntry, traverser ); -} - -void DocMetaInfo::startTraverseEntry( DocEntry *entry, - DocEntryTraverser *traverser ) -{ - if ( !traverser ) - { - kDebug() << "DocMetaInfo::startTraverseEntry(): ERROR. No Traverser." - << endl; - return; - } - - if ( !entry ) - { - kDebug() << "DocMetaInfo::startTraverseEntry(): no entry."; - endTraverseEntries( traverser ); - return; - } - - traverser->startProcess( entry ); -} - -void DocMetaInfo::endProcess( DocEntry *entry, DocEntryTraverser *traverser ) -{ - if ( !entry ) - { - endTraverseEntries( traverser ); - return; - } - - if ( entry->hasChildren() ) - { - startTraverseEntry( entry->firstChild(), traverser->childTraverser( entry ) ); - } else if ( entry->nextSibling() ) - { - startTraverseEntry( entry->nextSibling(), traverser ); - } else - { - DocEntry *parent = entry->parent(); - DocEntryTraverser *parentTraverser = 0; - while ( parent ) { - parentTraverser = traverser->parentTraverser(); - traverser->deleteTraverser(); - if ( parent->nextSibling() ) { - startTraverseEntry( parent->nextSibling(), parentTraverser ); - break; - } - else - { - parent = parent->parent(); - traverser = parentTraverser; - } - } - if ( !parent ) - { - endTraverseEntries( traverser ); - } - } -} - -void DocMetaInfo::endTraverseEntries( DocEntryTraverser *traverser ) -{ - kDebug() << "DocMetaInfo::endTraverseEntries()"; - - if ( !traverser ) - { - kDebug() << " no more traversers."; - return; - } - - traverser->finishTraversal(); -} -// vim:ts=2:sw=2:et diff --git a/khelpcenter/docmetainfo.h b/khelpcenter/docmetainfo.h deleted file mode 100644 index 72383ca7..00000000 --- a/khelpcenter/docmetainfo.h +++ /dev/null @@ -1,97 +0,0 @@ - -/* This file is part of the KDE project - Copyright 2002 Cornelius Schumacher - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License version 2 or at your option version 3 as published - by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef KHC_DOCMETAINFO_H -#define KHC_DOCMETAINFO_H - -#include -#include - -#include "docentry.h" - -namespace KHC { - - class HTMLSearch; - class DocEntryTraverser; - - /*! - This class provides some meta information about help documents. - */ - class DocMetaInfo - { - public: - /*! - Return instance of DocMetaInfo. There can only be one instance at a time. - */ - static DocMetaInfo *self(); - - ~DocMetaInfo(); - - void scanMetaInfo( bool force = false ); - - DocEntry *addDocEntry( const QString &fileName ); - - void addDocEntry( DocEntry * ); - - DocEntry::List docEntries(); - - DocEntry::List searchEntries(); - - void traverseEntries( DocEntryTraverser * ); - - void startTraverseEntries( DocEntryTraverser *traverser ); - void startTraverseEntry( DocEntry *entry, DocEntryTraverser *traverser ); - void endProcess( DocEntry *entry, DocEntryTraverser *traverser ); - void endTraverseEntries( DocEntryTraverser * ); - - static QString languageName( const QString &langcode ); - - protected: - DocEntry *scanMetaInfoDir( const QString &filename, DocEntry *parent ); - DocEntry *addDirEntry( const QDir &dir, DocEntry *parent ); - void traverseEntry( DocEntry *, DocEntryTraverser * ); - - private: - /*! - DocMetaInfo is a singleton. Private constructor prevents direct - instantisation. - */ - DocMetaInfo(); - - DocEntry::List mDocEntries; - DocEntry::List mSearchEntries; - - DocEntry mRootEntry; - - QStringList mLanguages; - - QMap mLanguageNames; - - HTMLSearch *mHtmlSearch; - - static bool mLoaded; - - static DocMetaInfo *mSelf; - }; - -} - -#endif //KHC_DOCMETAINFO_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/fontdialog.cpp b/khelpcenter/fontdialog.cpp deleted file mode 100644 index 50a220ba..00000000 --- a/khelpcenter/fontdialog.cpp +++ /dev/null @@ -1,228 +0,0 @@ - -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2003 Frerich Raabe - * - * 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 "fontdialog.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -using namespace KHC; - -FontDialog::FontDialog( QWidget *parent ) - : KDialog( parent ) -{ - setModal( true ); - setCaption( i18n( "Font Configuration" ) ); - setButtons( Ok | Cancel ); - - m_mainWidget = new KVBox( this ); - setMainWidget( m_mainWidget ); - - setupFontSizesBox(); - setupFontTypesBox(); - setupFontEncodingBox(); - - load(); - - connect( this, SIGNAL( okClicked() ), SLOT( slotOk() ) ); -} - -void FontDialog::slotOk() -{ - save(); - accept(); -} - -void FontDialog::setupFontSizesBox() -{ - QGroupBox *gb = new QGroupBox( i18n( "Sizes" ), m_mainWidget ); - - QGridLayout *layout = new QGridLayout( gb ); - layout->setSpacing( KDialog::spacingHint() ); - layout->setMargin( KDialog::marginHint() * 2 ); - - QLabel *lMinFontSize = new QLabel( i18nc( "The smallest size a will have", "M&inimum font size:" ), gb ); - layout->addWidget( lMinFontSize, 0, 0 ); - m_minFontSize = new KIntNumInput( gb ); - layout->addWidget( m_minFontSize, 0, 1 ); - m_minFontSize->setRange( 1, 20 ); - lMinFontSize->setBuddy( m_minFontSize ); - - QLabel *lMedFontSize = new QLabel( i18nc( "The normal size a font will have", "M&edium font size:" ), gb ); - layout->addWidget( lMedFontSize, 1, 0 ); - m_medFontSize = new KIntNumInput( gb ); - layout->addWidget( m_medFontSize, 1, 1 ); - m_medFontSize->setRange( 4, 28 ); - lMedFontSize->setBuddy( m_medFontSize ); -} - -void FontDialog::setupFontTypesBox() -{ - QGroupBox *gb = new QGroupBox( i18n( "Fonts" ), m_mainWidget ); - - QGridLayout *layout = new QGridLayout( gb ); - layout->setSpacing( KDialog::spacingHint() ); - layout->setMargin( KDialog::marginHint() * 2 ); - - QLabel *lStandardFont = new QLabel( i18n( "S&tandard font:" ), gb ); - layout->addWidget( lStandardFont, 0, 0 ); - m_standardFontCombo = new KFontComboBox( gb ); - layout->addWidget( m_standardFontCombo, 0, 1 ); - lStandardFont->setBuddy( m_standardFontCombo ); - - QLabel *lFixedFont = new QLabel( i18n( "F&ixed font:" ), gb ); - layout->addWidget( lFixedFont, 1, 0 ); - m_fixedFontCombo = new KFontComboBox( gb ); - layout->addWidget( m_fixedFontCombo, 1, 1 ); - lFixedFont->setBuddy( m_fixedFontCombo ); - - QLabel *lSerifFont = new QLabel( i18n( "S&erif font:" ), gb ); - layout->addWidget( lSerifFont, 2, 0 ); - m_serifFontCombo = new KFontComboBox( gb ); - layout->addWidget( m_serifFontCombo, 2, 1 ); - lSerifFont->setBuddy( m_serifFontCombo ); - - QLabel *lSansSerifFont = new QLabel( i18n( "S&ans serif font:" ), gb ); - layout->addWidget( lSansSerifFont, 3, 0 ); - m_sansSerifFontCombo = new KFontComboBox( gb ); - layout->addWidget( m_sansSerifFontCombo, 3, 1 ); - lSansSerifFont->setBuddy( m_sansSerifFontCombo ); - - QLabel *lItalicFont = new QLabel( i18n( "&Italic font:" ), gb ); - layout->addWidget( lItalicFont, 4, 0 ); - m_italicFontCombo = new KFontComboBox( gb ); - layout->addWidget( m_italicFontCombo, 4, 1 ); - lItalicFont->setBuddy( m_italicFontCombo ); - - QLabel *lFantasyFont = new QLabel( i18n( "&Fantasy font:" ), gb ); - layout->addWidget( lFantasyFont, 5, 0 ); - m_fantasyFontCombo = new KFontComboBox( gb ); - layout->addWidget( m_fantasyFontCombo, 5, 1 ); - lFantasyFont->setBuddy( m_fantasyFontCombo ); -} - -void FontDialog::setupFontEncodingBox() -{ - QGroupBox *gb = new QGroupBox( i18n( "Encoding" ), m_mainWidget ); - - QGridLayout *layout = new QGridLayout( gb ); - layout->setSpacing( KDialog::spacingHint() ); - layout->setMargin( KDialog::marginHint() * 2 ); - - QLabel *lDefaultEncoding = new QLabel( i18n( "&Default encoding:" ), gb ); - layout->addWidget( lDefaultEncoding, 0, 0 ); - m_defaultEncoding = new KComboBox( false, gb ); - layout->addWidget( m_defaultEncoding, 0, 1 ); - QStringList encodings = KGlobal::charsets()->availableEncodingNames(); - encodings.prepend( i18n( "Use Language Encoding" ) ); - m_defaultEncoding->addItems( encodings ); - lDefaultEncoding->setBuddy( m_defaultEncoding ); - - QLabel *lFontSizeAdjustement = new QLabel( i18n( "&Font size adjustment:" ), gb ); - layout->addWidget( lFontSizeAdjustement, 1, 0 ); - m_fontSizeAdjustement = new KIntSpinBox( gb ); - m_fontSizeAdjustement->setRange( -5, 5 ); - m_fontSizeAdjustement->setSingleStep( 1 ); - layout->addWidget( m_fontSizeAdjustement, 1, 1 ); - lFontSizeAdjustement->setBuddy( m_fontSizeAdjustement ); -} - -void FontDialog::load() -{ - KSharedConfig::Ptr cfg = KGlobal::config(); - { - KConfigGroup configGroup( cfg, "HTML Settings" ); - - m_minFontSize->setValue( configGroup.readEntry( "MinimumFontSize", (int)HTML_DEFAULT_MIN_FONT_SIZE ) ); - m_medFontSize->setValue( configGroup.readEntry( "MediumFontSize", 10 ) ); - - QStringList fonts = configGroup.readEntry( "Fonts" , QStringList() ); - if ( fonts.isEmpty() ) - fonts << KGlobalSettings::generalFont().family() - << KGlobalSettings::fixedFont().family() - << QLatin1String(HTML_DEFAULT_VIEW_SERIF_FONT) - << QLatin1String(HTML_DEFAULT_VIEW_SANSSERIF_FONT) - << QLatin1String(HTML_DEFAULT_VIEW_CURSIVE_FONT) - << QLatin1String(HTML_DEFAULT_VIEW_FANTASY_FONT) - << QString(); - - m_standardFontCombo->setCurrentFont( fonts[ 0 ] ); - m_fixedFontCombo->setCurrentFont( fonts[ 1 ] ); - m_serifFontCombo->setCurrentFont( fonts[ 2 ] ); - m_sansSerifFontCombo->setCurrentFont( fonts[ 3 ] ); - m_italicFontCombo->setCurrentFont( fonts[ 4 ] ); - m_fantasyFontCombo->setCurrentFont( fonts[ 5 ] ); - - QString encoding = configGroup.readEntry( "DefaultEncoding" ); - if (encoding.isEmpty()) m_defaultEncoding->setCurrentIndex( 0 ); - else m_defaultEncoding->setCurrentItem( encoding ); - m_fontSizeAdjustement->setValue( fonts[ 6 ].toInt() ); - } -} - -void FontDialog::save() -{ - KSharedConfig::Ptr cfg = KGlobal::config(); - { - KConfigGroup configGroup( cfg, "General" ); - configGroup.writeEntry( "UseKonqSettings", false ); - } - { - KConfigGroup configGroup( cfg, "HTML Settings" ); - - configGroup.writeEntry( "MinimumFontSize", m_minFontSize->value() ); - configGroup.writeEntry( "MediumFontSize", m_medFontSize->value() ); - - QStringList fonts; - fonts << m_standardFontCombo->currentFont().family() - << m_fixedFontCombo->currentFont().family() - << m_serifFontCombo->currentFont().family() - << m_sansSerifFontCombo->currentFont().family() - << m_italicFontCombo->currentFont().family() - << m_fantasyFontCombo->currentFont().family() - << QString::number( m_fontSizeAdjustement->value() ); - - configGroup.writeEntry( "Fonts", fonts ); - - if ( m_defaultEncoding->currentText() == i18n( "Use Language Encoding" ) ) - configGroup.writeEntry( "DefaultEncoding", QString() ); - else - configGroup.writeEntry( "DefaultEncoding", m_defaultEncoding->currentText() ); - } - cfg->sync(); -} - -#include "fontdialog.moc" -// vim:ts=4:sw=4:noet diff --git a/khelpcenter/fontdialog.h b/khelpcenter/fontdialog.h deleted file mode 100644 index a0bd4cd9..00000000 --- a/khelpcenter/fontdialog.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2003 Frerich Raabe - * - * 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 KHC_FONTDIALOG_H -#define KHC_FONTDIALOG_H - -#include - -class KIntSpinBox; - -class KComboBox; -class KFontComboBox; -class KIntNumInput; -class KVBox; - -namespace KHC { - - class FontDialog : public KDialog - { - Q_OBJECT - - public: - FontDialog( QWidget *parent ); - - protected Q_SLOTS: - virtual void slotOk(); - - private: - void setupFontSizesBox(); - void setupFontTypesBox(); - void setupFontEncodingBox(); - - void load(); - void save(); - - KIntNumInput *m_minFontSize; - KIntNumInput *m_medFontSize; - KFontComboBox *m_standardFontCombo; - KFontComboBox *m_fixedFontCombo; - KFontComboBox *m_serifFontCombo; - KFontComboBox *m_sansSerifFontCombo; - KFontComboBox *m_italicFontCombo; - KFontComboBox *m_fantasyFontCombo; - KComboBox *m_defaultEncoding; - KIntSpinBox *m_fontSizeAdjustement; - KVBox *m_mainWidget; - }; - -} - -#endif // KHC_FONTDIALOG_H -// vim:ts=4:sw=4:noet diff --git a/khelpcenter/formatter.cpp b/khelpcenter/formatter.cpp deleted file mode 100644 index cbf8963d..00000000 --- a/khelpcenter/formatter.cpp +++ /dev/null @@ -1,227 +0,0 @@ -/* - This file is part of KHelpcenter. - - Copyright (c) 2003 Cornelius Schumacher - - 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 "formatter.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -using namespace KHC; - -Formatter::Formatter() - : mHasTemplate( false ) -{ -} - -Formatter:: ~Formatter() -{ -} - -bool Formatter::readTemplates() -{ - KConfigGroup cfg(KGlobal::config(), "Templates"); - QString mainTemplate = cfg.readEntry( "MainTemplate" ); - - if ( mainTemplate.isEmpty() ) - { - mainTemplate = KStandardDirs::locate( "appdata", "maintemplate" ); - } - - if ( mainTemplate.isEmpty() ) - { - kWarning() << "Main template file name is empty." ; - return false; - } - - QFile f( mainTemplate ); - if ( !f.open( QIODevice::ReadOnly ) ) - { - kWarning() << "Unable to open main template file '" << mainTemplate - << "'." << endl; - return false; - } - - QTextStream ts( &f ); - QString line; - enum State { IDLE, SINGLELINE, MULTILINE }; - State state = IDLE; - QString symbol; - QString endMarker; - QString value; - while( !( line = ts.readLine() ).isNull() ) { - switch ( state ) { - case IDLE: - if ( !line.isEmpty() && !line.startsWith( '#' ) ) - { - int pos = line.indexOf( "<<" ); - if ( pos >= 0 ) - { - state = MULTILINE; - symbol = line.left( pos ).trimmed(); - endMarker = line.mid( pos + 2 ).trimmed(); - } else { - state = SINGLELINE; - symbol = line.trimmed(); - } - } - break; - case SINGLELINE: - mSymbols.insert( symbol, line ); - state = IDLE; - break; - case MULTILINE: - if ( line.startsWith( endMarker ) ) - { - mSymbols.insert( symbol, value ); - value = ""; - state = IDLE; - } - else - { - value += line + '\n'; - } - break; - default: - kError() << "Formatter::readTemplates(): Illegal state: " - << static_cast(state) << endl; - break; - } - } - - f.close(); - - QStringList requiredSymbols; - requiredSymbols << "HEADER" << "FOOTER"; - - bool success = true; - QStringList::ConstIterator it2; - for( it2 = requiredSymbols.constBegin(); it2 != requiredSymbols.constEnd(); ++it2 ) - { - if ( !mSymbols.contains( *it2 ) ) - { - success = false; - kError() << "Symbol '" << *it2 << "' is missing from main template file." - << endl; - } - } - - if ( success ) mHasTemplate = true; - return success; -} - -QString Formatter::header( const QString &title ) -{ - QString s; - if ( mHasTemplate ) - { - s = mSymbols[ "HEADER" ]; - s.replace( "--TITLE:--", title ); - } else { - s = QLatin1String("") + title + QLatin1String("\n\n"); - } - return s; -} - -QString Formatter::footer() -{ - if ( mHasTemplate ) - { - return mSymbols[ "FOOTER" ]; - } else { - return QLatin1String(""); - } -} - -QString Formatter::separator() -{ - return "
"; -} - -QString Formatter::docTitle( const QString &title ) -{ - return QLatin1String("

") + title + QLatin1String("

"); -} - -QString Formatter::sectionHeader( const QString §ion ) -{ - return QLatin1String("

") + section + QLatin1String("

"); -} - -QString Formatter::processResult( const QString &data ) -{ - QString result; - - enum { Header, BodyTag, Body, Footer }; - - int state = Header; - - for( int i = 0; i < data.length(); ++i ) - { - QChar c = data[i]; - switch ( state ) - { - case Header: - if ( c == QLatin1Char('<') && data.mid( i, 5 ).toLower() == QLatin1String("' ) state = Body; - break; - case Body: - if ( c == QLatin1Char('<') && data.mid( i, 7 ).toLower() == QLatin1String("") ) - { - state = Footer; - } else { - result.append( c ); - } - break; - case Footer: - break; - default: - result.append( c ); - break; - } - } - - if ( state == Header ) return data; - else return result; -} - -QString Formatter::paragraph( const QString &str ) -{ - return QLatin1String("

") + str + QLatin1String("

"); -} - -QString Formatter::title( const QString &title ) -{ - return QLatin1String("

") + title + QLatin1String("

"); -} - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/formatter.h b/khelpcenter/formatter.h deleted file mode 100644 index 3c13fc6f..00000000 --- a/khelpcenter/formatter.h +++ /dev/null @@ -1,56 +0,0 @@ - -/* - This file is part of KHelpcenter. - - Copyright (c) 2003 Cornelius Schumacher - - 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 KHC_FORMATTER_H -#define KHC_FORMATTER_H - -#include - -namespace KHC { - - class Formatter - { - public: - Formatter(); - virtual ~Formatter(); - - bool readTemplates(); - - virtual QString header( const QString &title ); - virtual QString footer(); - virtual QString separator(); - virtual QString docTitle( const QString & ); - virtual QString sectionHeader( const QString & ); - virtual QString paragraph( const QString & ); - virtual QString title( const QString & ); - - virtual QString processResult( const QString & ); - - private: - bool mHasTemplate; - QMap mSymbols; - }; - -} - -#endif //KHC_FORMATTER_H - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/glossary.cpp b/khelpcenter/glossary.cpp deleted file mode 100644 index 0a52e8a0..00000000 --- a/khelpcenter/glossary.cpp +++ /dev/null @@ -1,355 +0,0 @@ - -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe (raabe@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 "glossary.h" -#include "view.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include - -#include - -using namespace KHC; - -class SectionItem : public QTreeWidgetItem -{ - public: - SectionItem( QTreeWidgetItem *parent, const QString &text ) - : QTreeWidgetItem( parent ) - { - setText(0,text); - setIcon(0,SmallIcon( "help-contents" )); - } -}; - -class EntryItem : public QTreeWidgetItem -{ - public: - EntryItem( SectionItem *parent, const QString &term, const QString &id ) - : QTreeWidgetItem( parent ), m_id( id ) - { - setText(0,term); - } - - QString id() const { return m_id; } - - private: - QString m_id; -}; - -bool Glossary::m_alreadyWarned = false; - -Glossary::Glossary( QWidget *parent ) : QTreeWidget( parent ) -{ - m_initialized = false; - setFrameStyle( QFrame::NoFrame ); - - connect( this, SIGNAL( itemActivated(QTreeWidgetItem *, int) ), - this, SLOT( treeItemSelected( QTreeWidgetItem * ) ) ); - - setHeaderHidden(true); - setAllColumnsShowFocus( true ); - setRootIsDecorated( true ); - - m_byTopicItem = new QTreeWidgetItem( this ); - m_byTopicItem->setText( 0, i18n( "By Topic" ) ); - m_byTopicItem->setIcon( 0, SmallIcon( "help-contents" ) ); - - m_alphabItem = new QTreeWidgetItem( this ); - m_alphabItem->setText( 0, i18n( "Alphabetically" ) ); - m_alphabItem->setIcon( 0, SmallIcon( "character-set" ) ); - - m_cacheFile = KStandardDirs::locateLocal( "cache", "help/glossary.xml" ); - - m_sourceFile = View::langLookup( QLatin1String( "khelpcenter/glossary/index.docbook" ) ); - m_config = KGlobal::config(); - -} - -void Glossary::showEvent(QShowEvent *event) -{ - if ( !m_initialized ) - { - if ( cacheStatus() == NeedRebuild ) - rebuildGlossaryCache(); - else - buildGlossaryTree(); - m_initialized = true; - } - QTreeWidget::showEvent(event); -} - -Glossary::~Glossary() -{ - qDeleteAll( m_glossEntries ); -} - -const GlossaryEntry &Glossary::entry( const QString &id ) const -{ - return *m_glossEntries[ id ]; -} - -Glossary::CacheStatus Glossary::cacheStatus() const -{ - if ( !QFile::exists( m_cacheFile ) || - m_config->group("Glossary").readPathEntry( "CachedGlossary", QString() ) != m_sourceFile || - m_config->group("Glossary").readEntry( "CachedGlossaryTimestamp" ).toInt() != glossaryCTime() ) - return NeedRebuild; - - return CacheOk; -} - -int Glossary::glossaryCTime() const -{ - struct stat stat_buf; - stat( QFile::encodeName( m_sourceFile ).data(), &stat_buf ); - - return stat_buf.st_ctime; -} - -void Glossary::rebuildGlossaryCache() -{ - KXmlGuiWindow *mainWindow = dynamic_cast( kapp->activeWindow() ); - if (mainWindow) - mainWindow->statusBar()->showMessage( i18n( "Rebuilding glossary cache..." ) ); - - KProcess *meinproc = new KProcess; - connect( meinproc, SIGNAL( finished(int,QProcess::ExitStatus) ), - this, SLOT( meinprocFinished(int,QProcess::ExitStatus) ) ); - - *meinproc << KStandardDirs::locate( "exe", QLatin1String( "meinproc4" ) ); - *meinproc << QLatin1String( "--output" ) << m_cacheFile; - *meinproc << QLatin1String( "--stylesheet" ) - << KStandardDirs::locate( "data", QLatin1String( "khelpcenter/glossary.xslt" ) ); - *meinproc << m_sourceFile; - - meinproc->setOutputChannelMode(KProcess::OnlyStderrChannel); - meinproc->start(); - if (!meinproc->waitForStarted()) - { - kError() << "could not start process" << meinproc->program(); - if (mainWindow && !m_alreadyWarned) - { - ; // add warning message box with don't display again option - // http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/classKDialog.html - m_alreadyWarned = true; - } - delete meinproc; - } -} - -void Glossary::meinprocFinished( int exitCode, QProcess::ExitStatus exitStatus ) -{ - KProcess *meinproc = static_cast(sender()); - KXmlGuiWindow *mainWindow = dynamic_cast( kapp->activeWindow() ); - - if (exitStatus != QProcess::NormalExit || exitCode != 0) - { - kError() << "running" << meinproc->program() << "failed with exitCode" << exitCode; - kError() << "stderr output:" << meinproc->readAllStandardError(); - if (mainWindow && !m_alreadyWarned) - { - ; // add warning message box with don't display again option - // http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/classKDialog.html - m_alreadyWarned = true; - } - delete meinproc; - return; - } - delete meinproc; - - if ( !QFile::exists( m_cacheFile ) ) - return; - - m_config->group("Glossary").writePathEntry( "CachedGlossary", m_sourceFile ); - m_config->group("Glossary").writeEntry( "CachedGlossaryTimestamp", glossaryCTime() ); - m_config->sync(); - - m_status = CacheOk; - - if (mainWindow) - mainWindow->statusBar()->showMessage( i18n( "Rebuilding cache... done." ), 2000 ); - - buildGlossaryTree(); -} - -void Glossary::buildGlossaryTree() -{ - QFile cacheFile(m_cacheFile); - if ( !cacheFile.open( QIODevice::ReadOnly ) ) - return; - - QDomDocument doc; - if ( !doc.setContent( &cacheFile ) ) - return; - - QDomNodeList sectionNodes = doc.documentElement().elementsByTagName( QLatin1String( "section" ) ); - for ( int i = 0; i < sectionNodes.count(); i++ ) - { - QDomElement sectionElement = sectionNodes.item( i ).toElement(); - QString title = sectionElement.attribute( QLatin1String( "title" ) ); - SectionItem *topicSection = new SectionItem( m_byTopicItem, title ); - - QDomNodeList entryNodes = sectionElement.elementsByTagName( QLatin1String( "entry" ) ); - for ( int j = 0; j < entryNodes.count(); j++ ) - { - QDomElement entryElement = entryNodes.item( j ).toElement(); - - QString entryId = entryElement.attribute( QLatin1String( "id" ) ); - if ( entryId.isNull() ) - continue; - - QDomElement termElement = childElement( entryElement, QLatin1String( "term" ) ); - QString term = termElement.text().simplified(); - - EntryItem *entry = new EntryItem(topicSection, term, entryId ); - m_idDict.insert( entryId, entry ); - - SectionItem *alphabSection = 0L; - - QTreeWidgetItemIterator it(m_alphabItem); - while(*it) - { - if ( (*it)->text( 0 ) == QString( term[ 0 ].toUpper() ) ) - { - alphabSection = static_cast( (*it) ); - break; - } - ++it; - } - - if ( !alphabSection ) - alphabSection = new SectionItem( m_alphabItem, QString( term[ 0 ].toUpper() ) ); - - new EntryItem( alphabSection, term, entryId ); - - QDomElement definitionElement = childElement( entryElement, QLatin1String( "definition" ) ); - QString definition = definitionElement.text().simplified(); - - GlossaryEntryXRef::List seeAlso; - - QDomElement referencesElement = childElement( entryElement, QLatin1String( "references" ) ); - QDomNodeList referenceNodes = referencesElement.elementsByTagName( QLatin1String( "reference" ) ); - if ( referenceNodes.count() > 0 ) - for ( int k = 0; k < referenceNodes.count(); k++ ) - { - QDomElement referenceElement = referenceNodes.item( k ).toElement(); - - QString term = referenceElement.attribute( QLatin1String( "term" ) ); - QString id = referenceElement.attribute( QLatin1String( "id" ) ); - - seeAlso += GlossaryEntryXRef( term, id ); - } - - m_glossEntries.insert( entryId, new GlossaryEntry( term, definition, seeAlso ) ); - } - } - sortItems(0, Qt::AscendingOrder); -} - -void Glossary::treeItemSelected( QTreeWidgetItem *item ) -{ - if ( !item ) - return; - - if ( EntryItem *i = dynamic_cast( item ) ) - emit entrySelected( entry( i->id() ) ); - - item->setExpanded( !item->isExpanded() ); -} - -QDomElement Glossary::childElement( const QDomElement &element, const QString &name ) -{ - QDomElement e; - for ( e = element.firstChild().toElement(); !e.isNull(); e = e.nextSibling().toElement() ) - if ( e.tagName() == name ) - break; - return e; -} - -QString Glossary::entryToHtml( const GlossaryEntry &entry ) -{ - QFile htmlFile( KStandardDirs::locate("data", "khelpcenter/glossary.html.in" ) ); - if (!htmlFile.open(QIODevice::ReadOnly)) - return QString( "

%1

%2" ) - .arg( i18n( "Error" ) ) - .arg( i18n( "Unable to show selected glossary entry: unable to open " - "file 'glossary.html.in'!" ) ); - - QString seeAlso; - if (!entry.seeAlso().isEmpty()) - { - seeAlso = i18n("See also: "); - GlossaryEntryXRef::List seeAlsos = entry.seeAlso(); - GlossaryEntryXRef::List::ConstIterator it = seeAlsos.constBegin(); - GlossaryEntryXRef::List::ConstIterator end = seeAlsos.constEnd(); - for (; it != end; ++it) - { - seeAlso += QLatin1String("") + (*it).term(); - seeAlso += QLatin1String(", "); - } - seeAlso = seeAlso.left(seeAlso.length() - 2); - } - - QTextStream htmlStream(&htmlFile); - return htmlStream.readAll() - .arg( i18n( "KDE Glossary" ) ) - .arg( entry.term() ) - .arg( entry.definition() ) - .arg( seeAlso ); -} - -void Glossary::slotSelectGlossEntry( const QString &id ) -{ - if ( !m_idDict.contains( id ) ) - return; - - EntryItem *newItem = m_idDict.value( id ); - EntryItem *curItem = dynamic_cast( currentItem() ); - if ( curItem != 0 ) - { - if ( curItem->id() == id ) - return; - curItem->parent()->setExpanded( false ); - } - - setCurrentItem( newItem ); -} - -#include "glossary.moc" -// vim:ts=4:sw=4:et diff --git a/khelpcenter/glossary.h b/khelpcenter/glossary.h deleted file mode 100644 index 0d7b614c..00000000 --- a/khelpcenter/glossary.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * glossary.h - part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe (raabe@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 KHC_GLOSSARY_H -#define KHC_GLOSSARY_H - -#include -#include -#include -#include -#include -#include - -class EntryItem; - -namespace KHC { - - class GlossaryEntryXRef - { - friend QDataStream &operator>>( QDataStream &, GlossaryEntryXRef & ); - public: - typedef QList List; - - GlossaryEntryXRef() {} - GlossaryEntryXRef( const QString &term, const QString &id ) : - m_term( term ), - m_id( id ) - { - } - - QString term() const { return m_term; } - QString id() const { return m_id; } - - private: - QString m_term; - QString m_id; - }; - - inline QDataStream &operator<<( QDataStream &stream, const GlossaryEntryXRef &e ) - { - return stream << e.term() << e.id(); - } - - inline QDataStream &operator>>( QDataStream &stream, GlossaryEntryXRef &e ) - { - return stream >> e.m_term >> e.m_id; - } - - class GlossaryEntry - { - friend QDataStream &operator>>( QDataStream &, GlossaryEntry & ); - public: - GlossaryEntry() {} - GlossaryEntry( const QString &term, const QString &definition, - const GlossaryEntryXRef::List &seeAlso ) : - m_term( term ), - m_definition( definition ), - m_seeAlso( seeAlso ) - { } - - QString term() const { return m_term; } - QString definition() const { return m_definition; } - GlossaryEntryXRef::List seeAlso() const { return m_seeAlso; } - - private: - QString m_term; - QString m_definition; - GlossaryEntryXRef::List m_seeAlso; - }; - - inline QDataStream &operator<<( QDataStream &stream, const GlossaryEntry &e ) - { - return stream << e.term() << e.definition() << e.seeAlso(); - } - - inline QDataStream &operator>>( QDataStream &stream, GlossaryEntry &e ) - { - return stream >> e.m_term >> e.m_definition >> e.m_seeAlso; - } - - class Glossary : public QTreeWidget - { - Q_OBJECT - public: - Glossary( QWidget *parent ); - virtual ~Glossary(); - - const GlossaryEntry &entry( const QString &id ) const; - - static QString entryToHtml( const GlossaryEntry &entry ); - - public Q_SLOTS: - void slotSelectGlossEntry( const QString &id ); - - Q_SIGNALS: - void entrySelected( const GlossaryEntry &entry ); - - private Q_SLOTS: - void meinprocFinished(int exitCode, QProcess::ExitStatus exitStatus); - void treeItemSelected( QTreeWidgetItem *item ); - - protected: - virtual void showEvent(QShowEvent *event); - - private: - enum CacheStatus { NeedRebuild, CacheOk }; - - CacheStatus cacheStatus() const; - int glossaryCTime() const; - void rebuildGlossaryCache(); - void buildGlossaryTree(); - QDomElement childElement( const QDomElement &e, const QString &name ); - - KSharedConfigPtr m_config; - QTreeWidgetItem *m_byTopicItem; - QTreeWidgetItem *m_alphabItem; - QString m_sourceFile; - QString m_cacheFile; - CacheStatus m_status; - QHash m_glossEntries; - QHash m_idDict; - bool m_initialized; - static bool m_alreadyWarned; - }; - -} - -#endif // KHC_GLOSSARY_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/glossary.html.in b/khelpcenter/glossary.html.in deleted file mode 100644 index b03bf2a6..00000000 --- a/khelpcenter/glossary.html.in +++ /dev/null @@ -1,47 +0,0 @@ - - - - %1: %2 - - - - -
-
- -
-
- -
-
- %2 -
-
-
- %3 -
-
- %4 -
-
-
- -
-
- -
-
- - - diff --git a/khelpcenter/glossary.xslt b/khelpcenter/glossary.xslt deleted file mode 100644 index 4be123a8..00000000 --- a/khelpcenter/glossary.xslt +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - -
- - -
-
- - - - - - - - - - - - - - - - - -
diff --git a/khelpcenter/history.cpp b/khelpcenter/history.cpp deleted file mode 100644 index 59b1c9d9..00000000 --- a/khelpcenter/history.cpp +++ /dev/null @@ -1,389 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe - * - * 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 "history.h" -#include "view.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -using namespace KHC; - -// TODO: Needs complete redo! -// TODO: oh yeah - -History *History::m_instance = 0; - -History &History::self() -{ - if ( !m_instance ) - m_instance = new History; - return *m_instance; -} - -History::History() : QObject(), - m_goBuffer( 0 ) -{ - m_entries_current = m_entries.end(); -} - -History::~History() -{ - qDeleteAll(m_entries); -} - -void History::setupActions( KActionCollection *coll ) -{ - QPair backForward = KStandardGuiItem::backAndForward(); - - m_backAction = new KToolBarPopupAction( KIcon( backForward.first.iconName() ), backForward.first.text(), this ); - coll->addAction( "back", m_backAction ); - m_backAction->setShortcut(KStandardShortcut::back()); - - connect( m_backAction, SIGNAL( triggered() ), this, SLOT( back() ) ); - - connect( m_backAction->menu(), SIGNAL( triggered( QAction* ) ), - SLOT( backActivated( QAction* ) ) ); - - connect( m_backAction->menu(), SIGNAL( aboutToShow() ), - SLOT( fillBackMenu() ) ); - - m_backAction->setEnabled( false ); - - m_forwardAction = new KToolBarPopupAction( KIcon( backForward.second.iconName() ), backForward.second.text(), this ); - coll->addAction( QLatin1String("forward"), m_forwardAction ); - m_forwardAction->setShortcut(KStandardShortcut::forward()); - - connect( m_forwardAction, SIGNAL( triggered() ), this, SLOT( forward() ) ); - - connect( m_forwardAction->menu(), SIGNAL( triggered( QAction* ) ), - SLOT( forwardActivated( QAction* ) ) ); - - connect( m_forwardAction->menu(), SIGNAL( aboutToShow() ), - SLOT( fillForwardMenu() ) ); - - m_forwardAction->setEnabled( false ); -} - -void History::installMenuBarHook( KXmlGuiWindow *mainWindow ) -{ - QMenu *goMenu = dynamic_cast( - mainWindow->guiFactory()->container( QLatin1String("go_web"), mainWindow ) ); - if ( goMenu ) - { - connect( goMenu, SIGNAL( aboutToShow() ), SLOT( fillGoMenu() ) ); - - connect( goMenu, SIGNAL( triggered( QAction* ) ), - SLOT( goMenuActivated( QAction* ) ) ); - - m_goMenuIndex = goMenu->actions().count(); - } -} - -void History::createEntry() -{ - kDebug() << "History::createEntry()"; - - // First, remove any forward history - if (m_entries_current!=m_entries.end()) - { - - m_entries.erase(m_entries.begin(),m_entries_current); - - // If current entry is empty reuse it. - if ( !(*m_entries_current)->view ) { - return; - } - } - // Append a new entry - m_entries_current = m_entries.insert(m_entries_current, new Entry ); // made current -} - -void History::updateCurrentEntry( View *view ) -{ - if ( m_entries.isEmpty() ) - return; - - KUrl url = view->url(); - - Entry *current = *m_entries_current; - - QDataStream stream( ¤t->buffer, QIODevice::WriteOnly ); - view->browserExtension()->saveState( stream ); - - current->view = view; - - if ( url.isEmpty() ) { - kDebug() << "History::updateCurrentEntry(): internal url"; - url = view->internalUrl(); - } - - kDebug() << "History::updateCurrentEntry(): " << view->title() - << " (URL: " << url.url() << ")" << endl; - - current->url = url; - current->title = view->title(); - - current->search = view->state() == View::Search; -} - -void History::updateActions() -{ - m_backAction->setEnabled( canGoBack() ); - m_forwardAction->setEnabled( canGoForward() ); -} - -void History::back() -{ - kDebug( 1400 ) << "History::back()"; - goHistoryActivated( -1 ); -} - -void History::backActivated( QAction *action ) -{ - int id = action->data().toInt(); - kDebug( 1400 ) << "History::backActivated(): id = " << id; - goHistoryActivated( -( id + 1 ) ); -} - -void History::forward() -{ - kDebug( 1400 ) << "History::forward()"; - goHistoryActivated( 1 ); -} - -void History::forwardActivated( QAction *action ) -{ - int id = action->data().toInt(); - kDebug( 1400 ) << "History::forwardActivated(): id = " << id; - goHistoryActivated( id + 1 ); -} - -void History::goHistoryActivated( int steps ) -{ - kDebug( 1400 ) << "History::goHistoryActivated(): m_goBuffer = " << m_goBuffer; - if ( m_goBuffer ) - return; - m_goBuffer = steps; - QTimer::singleShot( 0, this, SLOT( goHistoryDelayed() ) ); -} - -void History::goHistoryDelayed() -{ - kDebug( 1400 ) << "History::goHistoryDelayed(): m_goBuffer = " << m_goBuffer; - if ( !m_goBuffer ) - return; - int steps = m_goBuffer; - m_goBuffer = 0; - goHistory( steps ); -} - -void History::goHistory( int steps ) -{ - kDebug() << "History::goHistory(): " << steps; - - // If current entry is empty remove it. - Entry *current = *m_entries_current; - if ( current && !current->view ) m_entries_current = m_entries.erase(m_entries_current); - - EntryList::iterator newPos = m_entries_current - steps; - - current = *newPos; - if ( !current ) { - kError() << "No History entry at position " << newPos - m_entries.begin() << endl; - return; - } - - if ( !current->view ) { - kWarning() << "Empty history entry." ; - return; - } - - m_entries_current = newPos; - - if ( current->search ) { - kDebug() << "History::goHistory(): search"; - current->view->lastSearch(); - return; - } - - if ( current->url.protocol() == QLatin1String("khelpcenter") ) { - kDebug() << "History::goHistory(): internal"; - emit goInternalUrl( current->url ); - return; - } - - kDebug() << "History::goHistory(): restore state"; - - emit goUrl( current->url ); - - Entry h( *current ); - h.buffer.detach(); - - QDataStream stream( h.buffer ); - - h.view->closeUrl(); - updateCurrentEntry( h.view ); - h.view->browserExtension()->restoreState( stream ); - - - updateActions(); -} - -void History::fillBackMenu() -{ - QMenu *menu = m_backAction->menu(); - menu->clear(); - fillHistoryPopup( menu, true, false, false ); -} - -void History::fillForwardMenu() -{ - QMenu *menu = m_forwardAction->menu(); - menu->clear(); - fillHistoryPopup( menu, false, true, false ); -} - -void History::fillGoMenu() -{ - KXmlGuiWindow *mainWindow = static_cast( kapp->activeWindow() ); - QMenu *goMenu = dynamic_cast( mainWindow->guiFactory()->container( QLatin1String( "go" ), mainWindow ) ); - if ( !goMenu || m_goMenuIndex == -1 ) - return; - - for ( int i = goMenu->actions().count() - 1 ; i >= m_goMenuIndex; i-- ) - goMenu->removeAction( goMenu->actions()[i] ); - - // TODO perhaps smarter algorithm (rename existing items, create new ones only if not enough) ? - - // Ok, we want to show 10 items in all, among which the current url... - - if ( m_entries.count() <= 9 ) - { - // First case: limited history in both directions -> show it all - m_goMenuHistoryStartPos = m_entries.count() - 1; // Start right from the end - } else - // Second case: big history, in one or both directions - { - // Assume both directions first (in this case we place the current URL in the middle) - m_goMenuHistoryStartPos = (m_entries_current - m_entries.begin()) + 4; - - // Forward not big enough ? - if ( m_goMenuHistoryStartPos > (int) m_entries.count() - 4 ) - m_goMenuHistoryStartPos = m_entries.count() - 1; - } - Q_ASSERT( m_goMenuHistoryStartPos >= 0 && (int) m_goMenuHistoryStartPos < m_entries.count() ); - m_goMenuHistoryCurrentPos = m_entries_current - m_entries.begin(); // for slotActivated - fillHistoryPopup( goMenu, false, false, true, m_goMenuHistoryStartPos ); -} - -void History::goMenuActivated( QAction* action ) -{ - KXmlGuiWindow *mainWindow = static_cast( kapp->activeWindow() ); - QMenu *goMenu = dynamic_cast( mainWindow->guiFactory()->container( QLatin1String( "go" ), mainWindow ) ); - if ( !goMenu ) - return; - - // 1 for first item in the list, etc. - int index = goMenu->actions().indexOf(action) - m_goMenuIndex + 1; - if ( index > 0 ) - { - kDebug(1400) << "Item clicked has index " << index; - // -1 for one step back, 0 for don't move, +1 for one step forward, etc. - int steps = ( m_goMenuHistoryStartPos+1 ) - index - m_goMenuHistoryCurrentPos; // make a drawing to understand this :-) - kDebug(1400) << "Emit activated with steps = " << steps; - goHistory( steps ); - } -} - -void History::fillHistoryPopup( QMenu *popup, bool onlyBack, bool onlyForward, bool checkCurrentItem, uint startPos ) -{ - Q_ASSERT ( popup ); // kill me if this 0... :/ - - Entry * current = *m_entries_current; - QList::iterator it = m_entries.begin(); - if (onlyBack || onlyForward) - { - it = m_entries_current; // Jump to current item - // And move off it - if ( !onlyForward ) { - if ( it != m_entries.end() ) ++it; - } else { - if ( it != m_entries.begin() ) --it; - } - } else if ( startPos ) - it += startPos; // Jump to specified start pos - - uint i = 0; - while ( it != m_entries.end() ) - { - QString text = (*it)->title; - text = KStringHandler::csqueeze(text, 50); //CT: squeeze - text.replace( '&', "&&" ); - QAction *action = popup->addAction( text ); - action->setData( i ); - if ( checkCurrentItem && *it == current ) - { - action->setChecked( true ); // no pixmap if checked - } - if ( ++i > 10 ) - break; - if ( !onlyForward ) { - ++it; - } else { - if ( it == m_entries.begin() ) { - it = m_entries.end(); - } else { - --it; - } - } - } -} - -bool History::canGoBack() const -{ - return m_entries.size()>1 && EntryList::const_iterator(m_entries_current) != (m_entries.begin()+(m_entries.size()-1)); -} - -bool History::canGoForward() const -{ - return EntryList::const_iterator(m_entries_current) != m_entries.constBegin() && m_entries.size() > 1; -} - -void History::dumpHistory() const { - for(EntryList::const_iterator it = m_entries.constBegin() ; it!=m_entries.constEnd() ; ++it) { - kDebug() << (*it)->title << (*it)->url << (it==EntryList::const_iterator(m_entries_current) ? "current" : "" ) ; - } - -} - -#include "history.moc" -// vim:ts=2:sw=2:et diff --git a/khelpcenter/history.h b/khelpcenter/history.h deleted file mode 100644 index e9e6af27..00000000 --- a/khelpcenter/history.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe - * - * 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 KHC_HISTORY_H -#define KHC_HISTORY_H - -#include - -#include - -#include -#include - -class KActionCollection; -class KXmlGuiWindow; -class KToolBarPopupAction; -class QMenu; - -namespace KHC { - -class View; - -class History : public QObject -{ - Q_OBJECT - public: - friend class foo; // to make gcc shut up - struct Entry - { - Entry() : view( 0 ), search( false ) {} - - View *view; - KUrl url; - QString title; - QByteArray buffer; - bool search; - }; - - static History &self(); - - void setupActions( KActionCollection *coll ); - void updateActions(); - - void installMenuBarHook( KXmlGuiWindow *mainWindow ); - - void createEntry(); - void updateCurrentEntry( KHC::View *view ); - - Q_SIGNALS: - void goInternalUrl( const KUrl & ); - void goUrl( const KUrl & ); - - private Q_SLOTS: - void backActivated( QAction *action ); - void fillBackMenu(); - void forwardActivated( QAction *action ); - void fillForwardMenu(); - void goMenuActivated( QAction* action ); - void fillGoMenu(); - void back(); - void forward(); - void goHistoryActivated( int steps ); - void goHistory( int steps ); - void goHistoryDelayed(); - - private: - History(); - History( const History &rhs ); - History &operator=( const History &rhs ); - ~History(); - - typedef QList EntryList; - - bool canGoBack() const; - bool canGoForward() const; - void fillHistoryPopup( QMenu *, bool, bool, bool, uint = 0 ); - - /** - * dumps the history with a kDebug and mark wihch one is the current one - * This is a debugging function. - */ - void dumpHistory() const; - - static History *m_instance; - - EntryList m_entries; - EntryList::Iterator m_entries_current; - - - int m_goBuffer; - int m_goMenuIndex; - int m_goMenuHistoryStartPos; - int m_goMenuHistoryCurrentPos; - public: - KToolBarPopupAction *m_backAction; - KToolBarPopupAction *m_forwardAction; -}; - -} - -#endif // KHC_HISTORY_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/htmlsearch.cpp b/khelpcenter/htmlsearch.cpp deleted file mode 100644 index 200885aa..00000000 --- a/khelpcenter/htmlsearch.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "htmlsearch.h" - -#include -#include -#include - -#include "docentry.h" - -#include "htmlsearch.moc" - -using namespace KHC; - -HTMLSearch::HTMLSearch() -{ - mConfig = new KConfig("khelpcenterrc"); -} - -HTMLSearch::~HTMLSearch() -{ - delete mConfig; -} - -void HTMLSearch::setupDocEntry( KHC::DocEntry *entry ) -{ -// kDebug() << "HTMLSearch::setupDocEntry(): " << entry->name(); - - if ( entry->searchMethod().toLower() != QLatin1String("htdig") ) return; - - if ( entry->search().isEmpty() ) - entry->setSearch( defaultSearch( entry ) ); - if ( entry->indexer().isEmpty() ) - entry->setIndexer( defaultIndexer( entry ) ); - if ( entry->indexTestFile().isEmpty() ) - entry->setIndexTestFile( defaultIndexTestFile( entry ) ); - -// entry->dump(); -} - -QString HTMLSearch::defaultSearch( KHC::DocEntry *entry ) -{ - QString htsearch = QLatin1String("cgi:"); - htsearch += mConfig->group("htdig").readPathEntry( "htsearch", QString() ); - htsearch += "?words=%k&method=and&format=-desc&config="; - htsearch += entry->identifier(); - - return htsearch; -} - -QString HTMLSearch::defaultIndexer( KHC::DocEntry * ) -{ - QString indexer = mConfig->group("htdig").readPathEntry( "indexer", QString() ); - indexer += " --indexdir=%i %f"; - - return indexer; -} - -QString HTMLSearch::defaultIndexTestFile( KHC::DocEntry *entry ) -{ - return entry->identifier() + QLatin1String(".exists"); -} - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/htmlsearch.h b/khelpcenter/htmlsearch.h deleted file mode 100644 index 04b1022c..00000000 --- a/khelpcenter/htmlsearch.h +++ /dev/null @@ -1,51 +0,0 @@ -/* This file is part of the KDE project - Copyright 2002 Cornelius Schumacher - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License version 2 or at your option version 3 as published - by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef KHC_HTMLSEARCH_H -#define KHC_HTMLSEARCH_H - -#include - -class KConfig; - -namespace KHC { - -class DocEntry; - -class HTMLSearch : public QObject -{ - Q_OBJECT - public: - HTMLSearch(); - ~HTMLSearch(); - - void setupDocEntry( KHC::DocEntry * ); - - QString defaultSearch( KHC::DocEntry * ); - QString defaultIndexer( KHC::DocEntry * ); - QString defaultIndexTestFile( KHC::DocEntry * ); - - private: - KConfig *mConfig; -}; - -} - -#endif //KHC_HTMLSEARCH_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/htmlsearch/CMakeLists.txt b/khelpcenter/htmlsearch/CMakeLists.txt deleted file mode 100644 index af3585c5..00000000 --- a/khelpcenter/htmlsearch/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ - - -########### next target ############### - -set(htmlsearch_LIB_SRCS htmlsearch.cpp progressdialog.cpp) - - -kde4_add_library(htmlsearch SHARED ${htmlsearch_LIB_SRCS}) - -target_link_libraries(htmlsearch ${KDE4_KIO_LIBS}) - -set_target_properties(htmlsearch PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION}) -install(TARGETS htmlsearch ${INSTALL_TARGETS_DEFAULT_ARGS}) - - -########### next target ############### - -set(kcm_htmlsearch_LIB_SRCS kcmhtmlsearch.cpp klangcombo.cpp ktagcombobox.cpp) - - -kde4_add_library(kcm_htmlsearch SHARED ${kcm_htmlsearch_LIB_SRCS}) - -target_link_libraries(kcm_htmlsearch ${KDE4_KIO_LIBS}) - -set_target_properties(kcm_htmlsearch PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION}) -install(TARGETS kcm_htmlsearch ${INSTALL_TARGETS_DEFAULT_ARGS}) - - -########### next target ############### - -set(khtmlindex_SRCS index.cpp ) - - -kde4_add_executable(khtmlindex ${khtmlindex_SRCS}) - -target_link_libraries(khtmlindex ${KDE4_KDEUI_LIBS} htmlsearch ) - -install(PROGRAMS khtmlindex ${INSTALL_TARGETS_DEFAULT_ARGS}) - - -########### install files ############### - -install( FILES htmlsearch.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) -install( FILES long.html short.html wrapper.html nomatch.html syntax.html DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/en ) -install( FILES star.png star_blank.png DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/pics ) -install( FILES unchecked.xpm checked.xpm DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/pics ) - -install( PROGRAMS meinproc_wrapper DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/ ) - -kde4_install_icons( ${DATA_INSTALL_DIR}/khelpcenter/ ) diff --git a/khelpcenter/htmlsearch/Messages.sh b/khelpcenter/htmlsearch/Messages.sh deleted file mode 100644 index eaae93e4..00000000 --- a/khelpcenter/htmlsearch/Messages.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -### TODO: why do we need 2 POT files for one directory? -$XGETTEXT index.cpp htmlsearch.cpp progressdialog.cpp rc.cpp -o $podir/htmlsearch.pot -$XGETTEXT kcmhtmlsearch.cpp klangcombo.cpp ktagcombobox.cpp rc.cpp -o $podir/kcmhtmlsearch.pot diff --git a/khelpcenter/htmlsearch/checked.xpm b/khelpcenter/htmlsearch/checked.xpm deleted file mode 100644 index 1ed19024..00000000 --- a/khelpcenter/htmlsearch/checked.xpm +++ /dev/null @@ -1,23 +0,0 @@ -/* XPM */ -static char*unchecked[]={ -"16 16 4 1", -"# c #000000", -"+ c #ffffff", -"D c #000000", -". c None", -"................", -"............++++", -"..++++++++++DDD+", -"..+########DDD+.", -"..+#++++++DDD+..", -"+DDD+...+DDD#+..", -"++DDD+++DDD+#+..", -"..+DDDDDDD++#+..", -"..+#DDDDD+.+#+..", -"..+#++DD+..+#+..", -"..+#+++++..+#+..", -"..+#++++++++#+..", -"..+##########+..", -"..++++++++++++..", -"................", -"................"}; diff --git a/khelpcenter/htmlsearch/htmlsearch.cpp b/khelpcenter/htmlsearch/htmlsearch.cpp deleted file mode 100644 index 38e72160..00000000 --- a/khelpcenter/htmlsearch/htmlsearch.cpp +++ /dev/null @@ -1,478 +0,0 @@ -#include -#include -#include - -#include -#include -#include -#include -#include - - -#include "progressdialog.h" -#include -#include "htmlsearch.moc" - - -HTMLSearch::HTMLSearch() - : QObject(), _proc(0) -{ -} - - -QString HTMLSearch::dataPath(const QString& _lang) -{ - return kapp->dirs()->saveLocation("data", QString("khelpcenter/%1").arg(_lang)); -} - - -void HTMLSearch::scanDir(const QString& dir) -{ - assert( dir.at( dir.length() - 1 ) == '/' ); - - QStringList::ConstIterator it; - - if ( KStandardDirs::exists( dir + "index.docbook" ) ) { - _files.append(dir + "index.docbook"); - progress->setFilesScanned(++_filesScanned); - } else { - QDir d(dir, "*.html", QDir::Name|QDir::IgnoreCase, QDir::Files | QDir::Readable); - QStringList const &list = d.entryList(); - QString adir = d.canonicalPath () + '/'; - QString file; - for (it=list.begin(); it != list.end(); ++it) - { - file = adir + *it; - if ( !_files.contains( file ) ) { - _files.append(file); - progress->setFilesScanned(++_filesScanned); - } - } - } - - QDir d2(dir, QString(), QDir::Name|QDir::IgnoreCase, QDir::Dirs); - QStringList const &dlist = d2.entryList(); - for (it=dlist.begin(); it != dlist.end(); ++it) - if (*it != "." && *it != "..") - { - scanDir(dir + *it + '/'); - kapp->processEvents(); - } -} - - -bool HTMLSearch::saveFilesList(const QString& _lang) -{ - QStringList dirs; - - // throw away old files list - _files.clear(); - - // open config file - KConfig config("khelpcenterrc"); - KConfigGroup scopeGroup( &config, "Scope" ); - - // add KDE help dirs - if (scopeGroup.readEntry("KDE", true)) - dirs = kapp->dirs()->findDirs("html", _lang + '/'); - kDebug() << "got " << dirs.count() << " dirs\n"; - - // TODO: Man and Info!! - - // add local urls - QStringList add = scopeGroup.readEntry("Paths", QStringList() ); - QStringList::const_iterator it; - for (it = add.begin(); it != add.end(); ++it) { - if ( ( *it ).at( ( *it ).length() - 1 ) != '/' ) - ( *it ) += '/'; - dirs.append(*it); - } - - _filesScanned = 0; - - for (it = dirs.begin(); it != dirs.end(); ++it) - scanDir(*it); - - return true; -} - - -bool HTMLSearch::createConfig(const QString& _lang) -{ - QString fname = dataPath(_lang) + "/htdig.conf"; - - // locate the common dir - QString wrapper = locate("data", QString("khelpcenter/%1/wrapper.html").arg(_lang)); - if (wrapper.isEmpty()) - wrapper = locate("data", QString("khelpcenter/en/wrapper.html")); - if (wrapper.isEmpty()) - return false; - wrapper = wrapper.left(wrapper.length() - 12); - - // locate the image dir - QString images = locate("data", "khelpcenter/pics/star.png"); - if (images.isEmpty()) - return false; - images = images.left(images.length() - 8); - - // This is an example replacement for the default bad_words file - // distributed with ht://Dig. It was compiled by Marjolein Katsma - // . - QString bad_words = i18nc( "List of words to exclude from index", - "above:about:according:across:actually:\n" - "adj:after:afterwards:again:against:all:\n" - "almost:alone:along:already:also:although:\n" - "always:among:amongst:and:another:any:\n" - "anyhow:anyone:anything:anywhere:are:aren:\n" - "arent:around:became:because:become:\n" - "becomes:becoming:been:before:beforehand:\n" - "begin:beginning:behind:being:below:beside:\n" - "besides:between:beyond:billion:both:but:\n" - "can:cant:cannot:caption:could:couldnt:\n" - "did:didnt:does:doesnt:dont:down:during:\n" //krazy:exclude=spelling - "each:eight:eighty:either:else:elsewhere:\n" - "end:ending:enough:etc:even:ever:every:\n" - "everyone:everything:everywhere:except:few:\n" - "fifty:first:five:for:former:formerly:forty:\n" - "found:four:from:further:had:has:hasnt:have:\n" //krazy:exclude=spelling - "havent:hence:her:here:hereafter:hereby:\n" - "herein:heres:hereupon:hers:herself:hes:him:\n" - "himself:his:how:however:hundred:\n" - "inc:indeed:instead:into:isnt:its:\n" - "itself:last:later:latter:latterly:least:\n" - "less:let:like:likely:ltd:made:make:makes:\n" - "many:may:maybe:meantime:meanwhile:might:\n" - "million:miss:more:moreover:most:mostly:\n" - "mrs:much:must:myself:namely:neither:\n" - "never:nevertheless:next:nine:ninety:\n" - "nobody:none:nonetheless:noone:nor:not:\n" //krazy:exclude=spelling - "nothing:now:nowhere:off:often:once:\n" - "one:only:onto:others:otherwise:our:ours:\n" - "ourselves:out:over:overall:own:page:per:\n" - "perhaps:rather:recent:recently:same:\n" - "seem:seemed:seeming:seems:seven:seventy:\n" - "several:she:shes:should:shouldnt:since:six:\n" //krazy:exclude=spelling - "sixty:some:somehow:someone:something:\n" - "sometime:sometimes:somewhere:still:stop:\n" - "such:taking:ten:than:that:the:their:them:\n" - "themselves:then:thence:there:thereafter:\n" - "thereby:therefore:therein:thereupon:these:\n" - "they:thirty:this:those:though:thousand:\n" - "three:through:throughout:thru:thus:tips:\n" - "together:too:toward:towards:trillion:\n" - "twenty:two:under:unless:unlike:unlikely:\n" - "until:update:updated:updates:upon:\n" - "used:using:very:via:want:wanted:wants:\n" - "was:wasnt:way:ways:wed:well:were:\n" - "werent:what:whats:whatever:when:whence:\n" - "whenever:where:whereafter:whereas:whereby:\n" - "wherein:whereupon:wherever:wheres:whether:\n" - "which:while:whither:who:whoever:whole:\n" - "whom:whomever:whose:why:will:with:within:\n" - "without:wont:work:worked:works:working:\n" - "would:wouldnt:yes:yet:you:youd:youll:your:\n" - "youre:yours:yourself:yourselves:youve" ); - - QFile f; - f.setName( dataPath(_lang) + "/bad_words" ); - if (f.open(QIODevice::WriteOnly)) - { - QTextStream ts( &f ); - QStringList words = bad_words.split( QRegExp ( "[\n:]" ), QString::SkipEmptyParts ); - for ( QStringList::ConstIterator it = words.begin(); - it != words.end(); ++it ) - ts << *it << endl; - f.close(); - } - - f.setName(fname); - if (f.open(QIODevice::WriteOnly)) - { - kDebug() << "Writing config for " << _lang << " to " << fname; - - QTextStream ts(&f); - - ts << "database_dir:\t\t" << dataPath(_lang) << endl; - ts << "start_url:\t\t`" << dataPath(_lang) << "/files`" << endl; - ts << "local_urls:\t\tfile:/=/" << endl; - ts << "local_urls_only:\ttrue" << endl; - ts << "maximum_pages:\t\t1" << endl; - ts << "image_url_prefix:\t" << images << endl; - ts << "star_image:\t\t" << images << "star.png" << endl; - ts << "star_blank:\t\t" << images << "star_blank.png" << endl; - ts << "compression_level:\t6" << endl; - ts << "max_hop_count:\t\t0" << endl; - - ts << "search_results_wrapper:\t" << wrapper << "wrapper.html" << endl; - ts << "nothing_found_file:\t" << wrapper << "nomatch.html" << endl; - ts << "syntax_error_file:\t" << wrapper << "syntax.html" << endl; - ts << "bad_word_list:\t\t" << dataPath(_lang) << "/bad_words" << endl; - ts << "external_parsers:\t" << "text/xml\t" << locate( "data", "khelpcenter/meinproc_wrapper" ) << endl; - f.close(); - return true; - } - - return false; -} - - -#define CHUNK_SIZE 15 - -bool HTMLSearch::generateIndex( const QString & _lang, QWidget *parent) -{ - if (_lang == "C") - _lang = "en"; - - if (!createConfig(_lang)) - return false; - - // create progress dialog - progress = new ProgressDialog(parent); - progress->show(); - kapp->processEvents(); - - // create files list ---------------------------------------------- - if (!saveFilesList(_lang)) - return false; - - progress->setState(1); - - // run htdig ------------------------------------------------------ - KConfig config("khelpcenterrc", true); - KConfigGroup group(&config, "htdig"); - QString exe = group.readPathEntry("htdig", KGlobal::dirs()->findExe("htdig")); - - if (exe.isEmpty()) - { - return false; - } - bool initial = true; - bool done = false; - int count = 0; - - _filesToDig = _files.count(); - progress->setFilesToDig(_filesToDig); - _filesDigged = 0; - - QDir d; d.mkdir(dataPath(_lang)); - - while (!done) - { - // kill old process - delete _proc; - - // prepare new process - _proc = new K3Process(); - *_proc << exe << "-v" << "-c" << dataPath(_lang)+"/htdig.conf"; - if (initial) - { - *_proc << "-i"; - initial = false; - } - - kDebug() << "Running htdig"; - - connect(_proc, SIGNAL(receivedStdout(K3Process *,char*,int)), - this, SLOT(htdigStdout(K3Process *,char*,int))); - - connect(_proc, SIGNAL(processExited(K3Process *)), - this, SLOT(htdigExited(K3Process *))); - - _htdigRunning = true; - - // write out file - QFile f(dataPath(_lang)+"/files"); - if (f.open(QIODevice::WriteOnly)) - { - QTextStream ts(&f); - - for (int i=0; istart(K3Process::NotifyOnExit, K3Process::Stdout ); - - kapp->enter_loop(); - - if (!_proc->normalExit() || _proc->exitStatus() != 0) - { - delete _proc; - delete progress; - return false; - } - - // _filesDigged += CHUNK_SIZE; - progress->setFilesDigged(_filesDigged); - kapp->processEvents(); - } - - progress->setState(2); - - // run htmerge ----------------------------------------------------- - exe = group.readPathEntry("htmerge", kapp->dirs()->findExe("htmerge")); - if (exe.isEmpty()) - { - return false; - } - delete _proc; - _proc = new K3Process(); - *_proc << exe << "-c" << dataPath(_lang)+"/htdig.conf"; - - kDebug() << "Running htmerge"; - - connect(_proc, SIGNAL(processExited(K3Process *)), - this, SLOT(htmergeExited(K3Process *))); - - _htmergeRunning = true; - - _proc->start(K3Process::NotifyOnExit, K3Process::Stdout); - - kapp->enter_loop(); - - if (!_proc->normalExit() || _proc->exitStatus() != 0) - { - delete _proc; - delete progress; - return false; - } - - delete _proc; - - progress->setState(3); - kapp->processEvents(); - - delete progress; - - return true; -} - - - -void HTMLSearch::htdigStdout(K3Process *, char *buffer, int len) -{ - QString line = QString(buffer).left(len); - - int cnt=0, index=-1; - while ( (index = line.find("file://", index+1)) > 0) - cnt++; - _filesDigged += cnt; - - cnt=0; - index=-1; - while ( (index = line.find("not changed", index+1)) > 0) - cnt++; - _filesDigged -= cnt; - - progress->setFilesDigged(_filesDigged); -} - - -void HTMLSearch::htdigExited(K3Process *p) -{ - kDebug() << "htdig terminated " << p->exitStatus(); - _htdigRunning = false; - kapp->exit_loop(); -} - - -void HTMLSearch::htmergeExited(K3Process *) -{ - kDebug() << "htmerge terminated"; - _htmergeRunning = false; - kapp->exit_loop(); -} - - -void HTMLSearch::htsearchStdout(K3Process *, char *buffer, int len) -{ - _searchResult += QString::fromLocal8Bit(buffer,len); -} - - -void HTMLSearch::htsearchExited(K3Process *) -{ - kDebug() << "htsearch terminated"; - _htsearchRunning = false; - kapp->exit_loop(); -} - - -QString HTMLSearch::search( const QString & _lang, const QString & words, const QString & method, int matches, - const QString & format, const QString & sort) -{ - if (_lang == "C") - _lang = "en"; - - createConfig(_lang); - - QString result = dataPath(_lang)+"/result.html"; - - // run htsearch ---------------------------------------------------- - KConfig *config = new KConfig("khelpcenterrc", true); - KConfigGroup group(config, "htdig"); - QString exe = group.readPathEntry("htsearch", kapp->dirs()->findExe("htsearch")); - if (exe.isEmpty()) - { - delete config; - return QString(); - } - _proc = new K3Process(); - *_proc << exe << "-c" << dataPath(_lang)+"/htdig.conf" << - QString("words=%1;method=%2;matchesperpage=%3;format=%4;sort=%5").arg(words).arg(method).arg(matches).arg(format).arg(sort); - - kDebug() << "Running htsearch"; - - connect(_proc, SIGNAL(receivedStdout(K3Process *,char*,int)), - this, SLOT(htsearchStdout(K3Process *,char*,int))); - connect(_proc, SIGNAL(processExited(K3Process *)), - this, SLOT(htsearchExited(K3Process *))); - - _htsearchRunning = true; - _searchResult = ""; - - _proc->start(K3Process::NotifyOnExit, K3Process::Stdout); - - kapp->enter_loop(); - - if (!_proc->normalExit() || _proc->exitStatus() != 0) - { - kDebug() << "Error running htsearch... returning now"; - delete _proc; - delete config; - return QString(); - } - - delete _proc; - - // modify the search result - _searchResult = _searchResult.replace("http://localhost/", "file:/"); - _searchResult = _searchResult.remove("Content-type: text/html"); - - // dump the search result - QFile f(result); - if (f.open(QIODevice::WriteOnly)) - { - QTextStream ts(&f); - - ts << _searchResult << endl; - - f.close(); - delete config; - return result; - } - delete config; - return QString(); -} diff --git a/khelpcenter/htmlsearch/htmlsearch.desktop b/khelpcenter/htmlsearch/htmlsearch.desktop deleted file mode 100644 index f23fe4a0..00000000 --- a/khelpcenter/htmlsearch/htmlsearch.desktop +++ /dev/null @@ -1,256 +0,0 @@ -[Desktop Entry] -Exec=kcmshell4 htmlsearch -Icon=help_index -Type=Service -X-KDE-ServiceTypes=KCModule -X-DocPath=kcontrol/help-index.html - -X-KDE-Library=kcm_htmlsearch -X-KDE-FactoryName=htmlsearch -X-KDE-ParentApp=kcontrol - -Name=Index -Name[af]=Indeks -Name[ar]=الفهرس -Name[ast]=Índiz -Name[be]=Індэкс -Name[be@latin]=Źmiest -Name[bg]=Индекс -Name[bn]=সূচি -Name[bn_IN]=ইন্ডেক্স -Name[br]=Meneger -Name[bs]=Indeks -Name[ca]=Índex -Name[ca@valencia]=Índex -Name[cs]=Rejstřík -Name[csb]=Indeks -Name[cy]=Mynegai -Name[da]=Indeks -Name[de]=Stichwortverzeichnis -Name[el]=Ευρετήριο -Name[en_GB]=Index -Name[eo]=Indekso -Name[es]=Índice -Name[et]=Indeks -Name[eu]=Indizea -Name[fa]=فهرست -Name[fi]=Hakemisto -Name[fr]=Index -Name[fy]=Yndeks -Name[ga]=Innéacs -Name[gl]=Índice -Name[gu]=અનુક્રમણિકા -Name[he]=אינדקס -Name[hi]=निर्देशिका -Name[hne]=निर्देसिका -Name[hr]=Indeks -Name[hsb]=Indeks -Name[hu]=Keresési index -Name[ia]=Indice -Name[id]=Indeks -Name[is]=Yfirlit -Name[it]=Indice -Name[ja]=インデックス -Name[ka]=ინდექსი -Name[kk]=Индекс -Name[km]=លិបិក្រម -Name[kn]=ಅನುಕ್ರಮ (ಇಂಡೆಕ್ಸ್) -Name[ko]=찾아보기 -Name[ku]=Pêrist -Name[lt]=Rodyklė -Name[lv]=Indekss -Name[mai]=सूची -Name[mk]=Индекс -Name[ml]=സൂചിക -Name[mr]=सूची -Name[ms]=Indeks -Name[nb]=Indeks -Name[nds]=Index -Name[ne]=अनुक्रमणिका -Name[nl]=Index -Name[nn]=Indeks -Name[oc]=Indèx -Name[or]=ଅନୁକ୍ରମଣିକା -Name[pa]=ਇੰਡੈਕਸ -Name[pl]=Indeks -Name[pt]=Índice -Name[pt_BR]=Índice -Name[ro]=Index -Name[ru]=Индекс -Name[se]=Indeaksa -Name[si]=පටුන -Name[sk]=Index -Name[sl]=Kazalo -Name[sr]=Индекс -Name[sr@ijekavian]=Индекс -Name[sr@ijekavianlatin]=Indeks -Name[sr@latin]=Indeks -Name[sv]=Index -Name[ta]=பொருளடக்கம் -Name[te]=సూచిక -Name[tg]=Индекс -Name[th]=ดัชนี -Name[tr]=Dizin -Name[ug]=مۇندەرىجە -Name[uk]=Індекс -Name[uz]=Indeks -Name[uz@cyrillic]=Индекс -Name[vi]=chỉ mục -Name[wa]=Indecse -Name[xh]=Isalathiso -Name[x-test]=xxIndexxx -Name[zh_CN]=索引 -Name[zh_TW]=索引 - -Comment=Index generation -Comment[af]=Indeks genereering -Comment[ar]=توليد الفهرس -Comment[ast]=Xeneración del índiz -Comment[be]=Стварэнне індэксу -Comment[be@latin]=Stvareńnie źmiestu -Comment[bg]=Създаване на индекс -Comment[bn]=সূচি উত্‍পাদন -Comment[bn_IN]=ইন্ডেক্স নির্মাণ প্রণালী -Comment[br]=Genel ar meneger -Comment[bs]=Stvaranje indeksa -Comment[ca]=Generació de l'índex -Comment[ca@valencia]=Generació de l'índex -Comment[cs]=Vytvoření rejstříku -Comment[csb]=Generowanié indeksu -Comment[cy]=Cynhyrchu mynegai -Comment[da]=Indeksgenerering -Comment[de]=Erstellung des Stichwortverzeichnisses -Comment[el]=Δημιουργία περιεχομένων -Comment[en_GB]=Index generation -Comment[eo]=Kreado de indekso -Comment[es]=Generación del índice -Comment[et]=Indeksi loomine -Comment[eu]=Indizea sortzea -Comment[fa]=تولید فهرست -Comment[fi]=Hakemiston luonti -Comment[fr]=Génération d'index -Comment[fy]=Yndeksgeneraasje -Comment[ga]=Giniúint innéacs -Comment[gl]=Xeración do índice -Comment[gu]=અનુક્રમણિકા બનાવટ -Comment[he]=יצירת אינדקס -Comment[hi]=सूची बनाएँ -Comment[hne]=सूची बनाव -Comment[hr]=Generiranje indeksa -Comment[hsb]=Stworjenje indeksa -Comment[hu]=Index létrehozása -Comment[ia]=Generation de indice -Comment[id]=Pembuatan indeks -Comment[is]=Yfirlitsgerð -Comment[it]=Generazione dell'indice -Comment[ja]=インデックスを生成 -Comment[ka]=ინდექსის შექმნა -Comment[kk]=Индексті құру -Comment[km]=ការ​បង្កើត​លិបិក្រម -Comment[kn]=ಅನುಕ್ರಮ (ಇಂಡೆಕ್ಸ್) ಉತ್ಪತ್ತಿ -Comment[ko]=찾아보기 생성 -Comment[ku]=Afirandina pêristê -Comment[lt]=Rodyklės generavimas -Comment[lv]=Indeksa ģenerēšana -Comment[mai]=सूची बनाबू -Comment[mk]=Генерирање на индекс -Comment[ml]=സൂചികാനിര്‍മ്മാണം -Comment[mr]=सूची बनवा -Comment[ms]=Penjanaan indeks -Comment[nb]=Lag innholdsregister -Comment[nds]=Index maken -Comment[ne]=अनुक्रमणिका सिर्जना -Comment[nl]=Indexgeneratie -Comment[nn]=Indekslaging -Comment[or]=ଅନୁକ୍ରମଣିକା ସୃଷ୍ଟି -Comment[pa]=ਇੰਡੈਕਸ ਬਣਾਓ -Comment[pl]=Generowanie indeksu -Comment[pt]=Geração de índices -Comment[pt_BR]=Geração de índice -Comment[ro]=Generează indexul -Comment[ru]=Создание индекса -Comment[se]=Indeaksaráhkadeapmi -Comment[si]=පටුන ජනණය -Comment[sk]=Generovanie indexu -Comment[sl]=Ustvarjanje kazala -Comment[sr]=Стварање индекса -Comment[sr@ijekavian]=Стварање индекса -Comment[sr@ijekavianlatin]=Stvaranje indeksa -Comment[sr@latin]=Stvaranje indeksa -Comment[sv]=Indexskapare -Comment[ta]=பொருளடக்க இயக்கம் -Comment[te]=సూచిక ను తయారుచెయుట -Comment[tg]=Эҷоди индекс -Comment[th]=สร้างดัชนี -Comment[tr]=Dizin oluşturma -Comment[ug]=ئىندېكس ھاسىل قىلىش -Comment[uk]=Створення індексу -Comment[uz]=Indeksni yaratish -Comment[uz@cyrillic]=Индексни яратиш -Comment[vi]=Tạo ra chỉ mục -Comment[wa]=Fijhaedje d' indecse -Comment[xh]=Ulwenziwo Lwesalathiso -Comment[x-test]=xxIndex generationxx -Comment[zh_CN]=索引生成 -Comment[zh_TW]=產生索引 - -X-KDE-Keywords=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[ar]=مساعدة,HTML,بحث,فهرس,htdig,htsearch,htmerge,نطاق,لغة -X-KDE-Keywords[bg]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,Помощ,Търсене,Индекс,Език -X-KDE-Keywords[bn]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[bs]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,pomoć,pretraga,indeks -X-KDE-Keywords[ca]=Ajuda,HTML,Cerca,Índex,htdig,htsearch,htmerge,Àmbit,Idioma -X-KDE-Keywords[ca@valencia]=Ajuda,HTML,Cerca,Índex,htdig,htsearch,htmerge,Àmbit,Idioma -X-KDE-Keywords[cs]=Nápověda,HTML,Hledání,htdig,htsearch,htmerge,Rozsah,Jazyk -X-KDE-Keywords[da]=Hjælp,HTML,Søgning,Indeks,htdig,htsearch,htmerge,Scope,sprog -X-KDE-Keywords[de]=Hilfe,HTML,Suche,Index,Stichwortverzeichnis,htdig,Sprachen -X-KDE-Keywords[el]=Βοήθεια,HTML,αναζήτηση,ευρετήριο,htdig,htsearch,htmerge,εμβέλεια,γλώσσα -X-KDE-Keywords[en_GB]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[eo]=Helpo,HTML,Serĉi,Indekso,htdig,htsearch,htmerge,Amplekso,Lingvo -X-KDE-Keywords[es]=Ayuda,HTML,Buscar,Indice,htdig,htsearch,htmerge,Ámbito,Idioma -X-KDE-Keywords[et]=abi,HTML,otsing,indeks,htdig,htsearch,htmerge,keel -X-KDE-Keywords[eu]=Laguntza,HTML,Bilaketa,Indizea,htdig,htsearch,htmerge,Esparrua,Hizkuntza -X-KDE-Keywords[fa]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[fi]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,Ohjeet,HTML,Haku,Indeksi,Hakemisto,Laajuus,Kieli -X-KDE-Keywords[fr]=Aide, HTML, recherche, index, htdig, htsearch, htmerge, étendue, langage -X-KDE-Keywords[ga]=Cabhair,HTML,Cuardach,Innéacs,htdig,htsearch,htmerge,Scóip,Teanga -X-KDE-Keywords[gl]=Axuda, buscar, índice, html, htdig, htsearch, htmerge, lingua, ámbito -X-KDE-Keywords[gu]=મદદ,HTML,શોધ,અનુક્રમ,htdig,htsearch,htmerge,અવકાશ,ભાષા -X-KDE-Keywords[hi]=मदद, HTML, खोज, सूचकांक, htdig, htsearch, htmerge, स्कोप, भाषा -X-KDE-Keywords[hu]=Súgó,HTML,Keresés,Index,htdig,htsearch,htmerge,Tartomány,Nyelv -X-KDE-Keywords[ia]=Adjuta,HTML,Cerca,Indice,htdig,htsearch,htmerge,Scopo,Linguage -X-KDE-Keywords[id]=Bantuan,HTML,Cari,Indeks,htding,htsearch,htmerge,Cakupan,Bahasa -X-KDE-Keywords[is]=Hjálp,HTML,Leit,Yfirlit,htdig,htsearch,htmerge,Svið,Tungumál -X-KDE-Keywords[it]=aiuto,HTML,ricerca,indice,htdig,htsearch,htmerge,contesto,lingua -X-KDE-Keywords[ja]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[kk]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[km]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[ko]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,도움말,검색,인덱스,언어 -X-KDE-Keywords[lv]=Palīdzība,HTML,meklēšana,indekss,htdig,htsearch,htmerge,Scope,valoda -X-KDE-Keywords[mr]=मदत, HTML, शोध, अनुक्रमणिका, htdig,htsearch,htmerge, सीमा, भाषा -X-KDE-Keywords[nb]=Hjelp,HTML,Søk,Index,htdig,htsearch,htmerge,omfang,språk -X-KDE-Keywords[nds]=Hülp.HTML,Söök,Index,htsearch,htmerge,Rebeet,Spraak -X-KDE-Keywords[nl]=Help,HTML,zoeken,index,htdig,htsearch,htmerge,scope,taal -X-KDE-Keywords[nn]=Hjelp,HTML,Søk,indeksering,htdig,htsearch,htmerge,omfang,Scope,Språk -X-KDE-Keywords[pa]=ਮੱਦਦ,HTML,ਖੋਜ,ਲੱਭੋ,ਇੰਡੈਕਸ,htdig,htsearch,htmerge,ਸਕੋਪ,ਹੱਦ,ਭਾਸ਼ਾ -X-KDE-Keywords[pl]=Pomoc,HTML,Znajdowanie,Wyszukiwanie,Indeks,htdig,htsearch,htmerge,Zakres,Język -X-KDE-Keywords[pt]=Ajuda,HTML,Pesquisa,Índice,htdig,htsearch,htmerge,Âmbito,Linguagem -X-KDE-Keywords[pt_BR]=Ajuda,HTML,Pesquisa,Índice,htdig,htsearch,htmerge,Âmbito,Linguagem -X-KDE-Keywords[ro]=ajutor,HTML,căutare,caută,cuprins,htdig,htsearch,htmerge,limbă -X-KDE-Keywords[ru]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,помощь,справка,поиск,индекс,язык -X-KDE-Keywords[sk]=Pomoc,HTML,Hľadať,Index,htdig,htsearch,htmerge,Scope,Jazyk -X-KDE-Keywords[sl]=pomoč,html,iskanje,kazalo,htdig,htsearch,htmerge,obseg,jezik -X-KDE-Keywords[sr]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,помоћ,ХТМЛ,претрага,тражење,индекс,језик -X-KDE-Keywords[sr@ijekavian]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,помоћ,ХТМЛ,претрага,тражење,индекс,језик -X-KDE-Keywords[sr@ijekavianlatin]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,pomoć,HTML,pretraga,traženje,indeks,jezik -X-KDE-Keywords[sr@latin]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,pomoć,HTML,pretraga,traženje,indeks,jezik -X-KDE-Keywords[sv]=Hjälp,HTML,Sök,Index,htdig,htsearch,htmerge,Omfattning,Språk -X-KDE-Keywords[tg]=Кумак,HTML,Ҷустуҷӯ,Индекс,htdig,htsearch,htmerge,Намудсоз,Забон -X-KDE-Keywords[tr]=Yardım,HTML,Arama,Dizin,htdig,htsearch,htmerge,Kapsam,Dil -X-KDE-Keywords[ug]=ياردەم، HTML، ئىزدەش، ئىندېكس، htdig، htsearch، htmerge، دائىرە، تىل -X-KDE-Keywords[uk]=Help;HTML;Search;Index;htdig;htsearch;htmerge;Scope;Language;довідка;допомога;пошук;індекс;покажчик;область;мова -X-KDE-Keywords[vi]=Trợ giúp,HTML,Tìm kiếm,chỉ mục,htdig,htsearch,htmerge,Phạm vi,Ngôn ngữ,Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language -X-KDE-Keywords[wa]=Aidance,HTML,Cweri,Trover,Cachî,Cachî après,indecse,htdig,htsearch,htmerge,scope,fortchete,lingaedje -X-KDE-Keywords[x-test]=xxHelp,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Languagexx -X-KDE-Keywords[zh_CN]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,帮助,搜索,索引,语言 -X-KDE-Keywords[zh_TW]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language diff --git a/khelpcenter/htmlsearch/htmlsearch.h b/khelpcenter/htmlsearch/htmlsearch.h deleted file mode 100644 index f93cb2b0..00000000 --- a/khelpcenter/htmlsearch/htmlsearch.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __HTMLSEARCH_H__ -#define __HTMLSEARCH_H__ - - - - - -class QWidget; - - -class K3Process; - - -class ProgressDialog; - - -class HTMLSearch : public QObject -{ - Q_OBJECT - -public: - - HTMLSearch(); - - bool generateIndex(const QString & lang, QWidget *parent=0); - - QString search(const QString & lang, const QString & words, const QString & method="and", int matches=10, - const QString & format="builtin-long", const QString & sort="score"); - - -protected Q_SLOTS: - - void htdigStdout(K3Process *proc, char *buffer, int buflen); - void htdigExited(K3Process *proc); - void htmergeExited(K3Process *proc); - void htsearchStdout(K3Process *proc, char *buffer, int buflen); - void htsearchExited(K3Process *proc); - - -protected: - - QString dataPath(const QString& lang); - - bool saveFilesList(const QString& lang); - void scanDir(const QString& dir); - - bool createConfig(const QString& lang); - - -private: - - QStringList _files; - K3Process *_proc; - int _filesToDig, _filesDigged, _filesScanned; - volatile bool _htdigRunning, _htmergeRunning, _htsearchRunning; - QString _searchResult; - ProgressDialog *progress; - -}; - - -#endif diff --git a/khelpcenter/htmlsearch/index.cpp b/khelpcenter/htmlsearch/index.cpp deleted file mode 100644 index 1532afe6..00000000 --- a/khelpcenter/htmlsearch/index.cpp +++ /dev/null @@ -1,28 +0,0 @@ - -#include -#include -#include -#include -#include - -#include "htmlsearch.h" - - -int main(int argc, char *argv[]) -{ - KAboutData aboutData( "khtmlindex", "htmlsearch", ki18n("KHtmlIndex"), - "", - ki18n("KDE Index generator for help files.")); - - KCmdLineArgs::init(argc, argv, &aboutData); - - KCmdLineOptions options; - options.add("lang ", ki18n("The language to index"), "en"); - KCmdLineArgs::addCmdLineOptions( options ); - - KApplication app; - HTMLSearch search; - - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - search.generateIndex(args->getOption("lang")); -} diff --git a/khelpcenter/htmlsearch/kcmhtmlsearch.cpp b/khelpcenter/htmlsearch/kcmhtmlsearch.cpp deleted file mode 100644 index 9b6aa190..00000000 --- a/khelpcenter/htmlsearch/kcmhtmlsearch.cpp +++ /dev/null @@ -1,377 +0,0 @@ -/** - * kcmhtmlsearch.cpp - * - * Copyright (c) 2000 Matthias Hölzer-Klüpfel - * - * 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 -#include -#include -#include -#include -#include -#include -#include -#include "klangcombo.h" -#include -#include -#include -#include - -#include "kcmhtmlsearch.moc" - -K_PLUGIN_FACTORY(KHTMLSearchConfigFactory, registerPlugin();) -K_EXPORT_PLUGIN(KHTMLSearchConfigFactory("kcmhtmlsearch")) - -KHTMLSearchConfig::KHTMLSearchConfig(QWidget *parent, const QVariantList &) - : KCModule(KHTMLSearchConfigFactory::componentData(), parent), indexProc(0) -{ - QVBoxLayout *vbox = new QVBoxLayout(this); - vbox->setSpacing(5); - - - QGroupBox *gb = new QGroupBox(i18n("ht://dig"), this); - vbox->addWidget(gb); - - QGridLayout *grid = new QGridLayout(gb); - grid->setSpacing(6); - grid->setMargin(6); - - grid->addRowSpacing(0, gb->fontMetrics().lineSpacing()); - - QLabel *l = new QLabel(i18n("The fulltext search feature makes use of the " - "ht://dig HTML search engine. " - "You can get ht://dig at the"), gb); - l->setAlignment(QLabel::WordBreak); - l->setMinimumSize(l->sizeHint()); - grid->addWidget(l, 1, 0, 1, 2 ); - QWhatsThis::add( gb, i18n( "Information about where to get the ht://dig package." ) ); - - KUrlLabel *url = new KUrlLabel(gb); - url->setURL("http://www.htdig.org"); - url->setText(i18n("ht://dig home page")); - url->setAlignment(QLabel::AlignHCenter); - grid->addWidget(url, 2, 0, 1, 2 ); - connect(url, SIGNAL(leftClickedUrl(const QString&)), - this, SLOT(urlClicked(const QString&))); - - gb = new QGroupBox(i18n("Program Locations"), this); - - vbox->addWidget(gb); - grid = new QGridLayout(gb); - grid->setSpacing(6); - grid->setMargin(6); - grid->addRowSpacing(0, gb->fontMetrics().lineSpacing()); - - htdigBin = new KUrlRequester(gb); - l = new QLabel(i18n("ht&dig"),gb); - l->setBuddy(htdigBin); - grid->addWidget(l, 1,0); - grid->addWidget(htdigBin, 1,1); - connect(htdigBin->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(configChanged())); - QString wtstr = i18n( "Enter the path to your htdig program here, e.g. /usr/local/bin/htdig" ); - QWhatsThis::add( htdigBin, wtstr ); - QWhatsThis::add( l, wtstr ); - - htsearchBin = new KUrlRequester(gb); - l = new QLabel(i18n("ht&search"),gb); - l->setBuddy(htsearchBin); - grid->addWidget(l, 2,0); - grid->addWidget(htsearchBin, 2,1); - connect(htsearchBin->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(configChanged())); - wtstr = i18n( "Enter the path to your htsearch program here, e.g. /usr/local/bin/htsearch" ); - QWhatsThis::add( htsearchBin, wtstr ); - QWhatsThis::add( l, wtstr ); - - htmergeBin = new KUrlRequester(gb); - l = new QLabel(i18n("ht&merge"),gb); - l->setBuddy(htmergeBin); - grid->addWidget(l, 3,0); - grid->addWidget(htmergeBin, 3,1); - connect(htmergeBin->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(configChanged())); - wtstr = i18n( "Enter the path to your htmerge program here, e.g. /usr/local/bin/htmerge" ); - QWhatsThis::add( htmergeBin, wtstr ); - QWhatsThis::add( l, wtstr ); - - QHBoxLayout *hbox = new QHBoxLayout(vbox); - - gb = new QGroupBox(i18n("Scope"), this); - hbox->addWidget(gb); - QWhatsThis::add( gb, i18n( "Here you can select which parts of the documentation should be included in the fulltext search index. Available options are the KDE Help pages, the installed man pages, and the installed info pages. You can select any number of these." ) ); - - QVBoxLayout *vvbox = new QVBoxLayout(gb); - vvbox->setSpacing(2); - vvbox->setMargin(6); - vvbox->addSpacing(gb->fontMetrics().lineSpacing()); - - indexKDE = new QCheckBox(i18n("&KDE help"), gb); - vvbox->addWidget(indexKDE); - connect(indexKDE, SIGNAL(clicked()), this, SLOT(configChanged())); - - indexMan = new QCheckBox(i18n("&Man pages"), gb); - vvbox->addWidget(indexMan); - indexMan->setEnabled(false), - connect(indexMan, SIGNAL(clicked()), this, SLOT(configChanged())); - - indexInfo = new QCheckBox(i18n("&Info pages"), gb); - vvbox->addWidget(indexInfo); - indexInfo->setEnabled(false); - connect(indexInfo, SIGNAL(clicked()), this, SLOT(configChanged())); - - gb = new QGroupBox(i18n("Additional Search Paths"), this); - hbox->addWidget(gb); - QWhatsThis::add( gb, i18n( "Here you can add additional paths to search for documentation. To add a path, click on the Add... button and select the folder from where additional documentation should be searched. You can remove folders by clicking on the Delete button." ) ); - - grid = new QGridLayout(gb); - grid->setSpacing(2); - grid->setMargin(6); - grid->addRowSpacing(0, gb->fontMetrics().lineSpacing()); - - addButton = new QPushButton(i18n("Add..."), gb); - grid->addWidget(addButton, 1,0); - - delButton = new QPushButton(i18n("Delete"), gb); - grid->addWidget(delButton, 2,0); - - searchPaths = new KListWidget(gb); - grid->addWidget(searchPaths, 1, 1,3, 1); - grid->setRowStretch(2,2); - - gb = new QGroupBox(i18n("Language Settings"), this); - vbox->addWidget(gb); - QWhatsThis::add(gb, i18n("Here you can select the language you want to create the index for.")); - language = new KLanguageCombo(gb); - l = new QLabel(i18n("&Language"),gb); - l->setBuddy(language); - vvbox = new QVBoxLayout(gb); - vvbox->setSpacing(2); - vvbox->setMargin(6); - vvbox->addSpacing(gb->fontMetrics().lineSpacing()); - hbox = new QHBoxLayout(vvbox); - hbox->setSpacing(6); - hbox->addWidget(l); - hbox->addWidget(language,1); - hbox->addStretch(1); - - loadLanguages(); - - vbox->addStretch(1); - - runButton = new QPushButton(i18n("Generate Index..."), this); - QWhatsThis::add( runButton, i18n( "Click this button to generate the index for the fulltext search." ) ); - runButton->setFixedSize(runButton->sizeHint()); - vbox->addWidget(runButton, AlignRight); - connect(runButton, SIGNAL(clicked()), this, SLOT(generateIndex())); - - connect(addButton, SIGNAL(clicked()), this, SLOT(addClicked())); - connect(delButton, SIGNAL(clicked()), this, SLOT(delClicked())); - connect(searchPaths, SIGNAL(highlighted(const QString &)), - this, SLOT(pathSelected(const QString &))); - - checkButtons(); - - load(); -} - - -void KHTMLSearchConfig::loadLanguages() -{ - // clear the list - language->clear(); - - // add all languages to the list - QStringList langs = KGlobal::dirs()->findAllResources("locale", - QLatin1String("*/entry.desktop")); - langs.sort(); - - for (QStringList::ConstIterator it = langs.begin(); it != langs.end(); ++it) - { - KSimpleConfig entry(*it); - entry.setGroup(QLatin1String("KCM Locale")); - QString name = entry.readEntry(QLatin1String("Name"), i18n("without name")); - - QString path = *it; - int index = path.lastIndexOf('/'); - path = path.left(index); - index = path.lastIndexOf('/'); - path = path.mid(index+1); - language->insertLanguage(path, name); - } -} - - -QString KHTMLSearchConfig::quickHelp() const -{ - return i18n( "

Help Index

This configuration module lets you configure the ht://dig engine which can be used for fulltext search in the KDE documentation as well as other system documentation like man and info pages." ); -} - - -void KHTMLSearchConfig::pathSelected(const QString &) -{ - checkButtons(); -} - - -void KHTMLSearchConfig::checkButtons() -{ - - delButton->setEnabled(searchPaths->currentItem() >= 0); -} - - -void KHTMLSearchConfig::addClicked() -{ - QString dir = KFileDialog::getExistingDirectory(); - - if (!dir.isEmpty()) - { - for (uint i=0; icount(); ++i) - if (searchPaths->text(i) == dir) - return; - searchPaths->insertItem(dir); - configChanged(); - } -} - - -void KHTMLSearchConfig::delClicked() -{ - searchPaths->removeItem(searchPaths->currentItem()); - checkButtons(); - configChanged(); -} - - -KHTMLSearchConfig::~KHTMLSearchConfig() -{ -} - - -void KHTMLSearchConfig::configChanged() -{ - emit changed(true); -} - - -void KHTMLSearchConfig::load() -{ - KConfig *config = new KConfig("khelpcenterrc", true); - - config->setGroup("htdig"); - htdigBin->lineEdit()->setText(config->readPathEntry("htdig", kapp->dirs()->findExe("htdig"))); - htsearchBin->lineEdit()->setText(config->readPathEntry("htsearch", kapp->dirs()->findExe("htsearch"))); - htmergeBin->lineEdit()->setText(config->readPathEntry("htmerge", kapp->dirs()->findExe("htmerge"))); - - config->setGroup("Scope"); - indexKDE->setChecked(config->readEntry("KDE", true)); - indexMan->setChecked(config->readEntry("Man", false)); - indexInfo->setChecked(config->readEntry("Info", false)); - - QStringList l = config->readPathEntry("Paths", QStringList()); - searchPaths->clear(); - QStringList::const_iterator it; - for (it=l.begin(); it != l.end(); ++it) - searchPaths->insertItem(*it); - - config->setGroup("Locale"); - QString lang = config->readEntry("Search Language", KGlobal::locale()->language()); - language->setCurrentItem(lang); - delete config; - - emit changed(false); -} - - -void KHTMLSearchConfig::save() -{ - KConfig *config= new KConfig("khelpcenterrc", false); - - config->setGroup("htdig"); - config->writePathEntry("htdig", htdigBin->lineEdit()->text()); - config->writePathEntry("htsearch", htsearchBin->lineEdit()->text()); - config->writePathEntry("htmerge", htmergeBin->lineEdit()->text()); - - config->setGroup("Scope"); - config->writeEntry("KDE", indexKDE->isChecked()); - config->writeEntry("Man", indexMan->isChecked()); - config->writeEntry("Info", indexInfo->isChecked()); - - QStringList l; - for (uint i=0; icount(); ++i) - l.append(searchPaths->text(i)); - config->writePathEntry("Paths", l); - - config->setGroup("Locale"); - config->writeEntry("Search Language", language->currentTag()); - - config->sync(); - delete config; - - emit changed(false); -} - - -void KHTMLSearchConfig::defaults() -{ - htdigBin->lineEdit()->setText(kapp->dirs()->findExe("htdig")); - htsearchBin->lineEdit()->setText(kapp->dirs()->findExe("htsearch")); - htmergeBin->lineEdit()->setText(kapp->dirs()->findExe("htmerge")); - - indexKDE->setChecked(true); - indexMan->setChecked(false); - indexInfo->setChecked(false); - - searchPaths->clear(); - - language->setCurrentItem(KGlobal::locale()->language()); - - emit changed(true); -} - - -void KHTMLSearchConfig::urlClicked(const QString &url) -{ - KToolInvocation::invokeBrowser(url); -} - - -void KHTMLSearchConfig::generateIndex() -{ - save(); - - QString exe = kapp->dirs()->findExe("khtmlindex"); - if (exe.isEmpty()) - return; - - delete indexProc; - - indexProc = new K3Process; - *indexProc << exe << "--lang" << language->currentTag(); - - connect(indexProc, SIGNAL(processExited(K3Process *)), - this, SLOT(indexTerminated(K3Process *))); - - runButton->setEnabled(false); - - indexProc->start(); -} - - -void KHTMLSearchConfig::indexTerminated(K3Process *) -{ - runButton->setEnabled(true); -} diff --git a/khelpcenter/htmlsearch/kcmhtmlsearch.h b/khelpcenter/htmlsearch/kcmhtmlsearch.h deleted file mode 100644 index 40583909..00000000 --- a/khelpcenter/htmlsearch/kcmhtmlsearch.h +++ /dev/null @@ -1,84 +0,0 @@ -/** - * kcmhtmlsearch.h - * - * Copyright (c) 2000 Matthias Hölzer-Klüpfel - * - * 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 __kcmhtmlsearch_h__ -#define __kcmhtmlsearch_h__ - - -#define KDE3_SUPPORT -#include -#undef KDE3_SUPPORT -#include - - -class QCheckBox; -class QPushButton; -class KListWidget; -class K3Process; -class KLanguageCombo; -class KUrlRequester; -class QStringList; - -class KHTMLSearchConfig : public KCModule -{ - Q_OBJECT - -public: - - KHTMLSearchConfig(QWidget *parent, const QVariantList &args); - virtual ~KHTMLSearchConfig(); - - void load(); - void save(); - void defaults(); - - QString quickHelp() const; - - int buttons(); - - -protected Q_SLOTS: - - void configChanged(); - void addClicked(); - void delClicked(); - void pathSelected(const QString &); - void urlClicked(const QString&); - void generateIndex(); - - void indexTerminated(K3Process *proc); - - -private: - - void checkButtons(); - void loadLanguages(); - - KUrlRequester *htdigBin, *htsearchBin, *htmergeBin; - QCheckBox *indexKDE, *indexMan, *indexInfo; - QPushButton *addButton, *delButton, *runButton; - KListWidget *searchPaths; - KLanguageCombo *language; - - K3Process *indexProc; - -}; - -#endif diff --git a/khelpcenter/htmlsearch/klangcombo.cpp b/khelpcenter/htmlsearch/klangcombo.cpp deleted file mode 100644 index 6309e0d9..00000000 --- a/khelpcenter/htmlsearch/klangcombo.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * klangcombo.cpp - Adds some methods for inserting languages. - * - * Copyright (c) 1999-2000 Hans Petter Bieker - * - * Requires the Qt widget libraries, available at no cost at - * http://www.troll.no/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "klangcombo.h" - -#include - -KLanguageCombo::~KLanguageCombo () -{ -} - -KLanguageCombo::KLanguageCombo (QWidget * parent, const char *name) - : KTagComboBox(parent, name) -{ -} - -void KLanguageCombo::insertLanguage(const QString& path, const QString& name, const QString& sub, const QString &submenu, int index) -{ - QString output = name + QLatin1String(" (") + path + QString::fromLatin1(")"); - QPixmap flag(locate("locale", sub + path + QLatin1String("/flag.png"))); - insertItem(QIcon(flag), output, path, submenu, index); -} - -void KLanguageCombo::changeLanguage(const QString& name, int i) -{ - if (i < 0 || i >= count()) return; - QString output = name + QLatin1String(" (") + tag(i) + QString::fromLatin1(")"); - changeItem(output, i); -} - -#include "klangcombo.moc" - diff --git a/khelpcenter/htmlsearch/klangcombo.h b/khelpcenter/htmlsearch/klangcombo.h deleted file mode 100644 index 85359612..00000000 --- a/khelpcenter/htmlsearch/klangcombo.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * klangcombo.h - Adds some methods for inserting languages. - * - * Copyright (c) 1999-2000 Hans Petter Bieker - * - * Requires the Qt widget libraries, available at no cost at - * http://www.troll.no/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - - -#ifndef __KLANGCOMBO_H__ -#define __KLANGCOMBO_H__ - -#include "ktagcombobox.h" - -/* - * Extends KTagCombo to support adding and changing languages. - * - * It has also support for sub menus. - */ -class KLanguageCombo : public KTagComboBox -{ - Q_OBJECT - -public: - explicit KLanguageCombo(QWidget *parent=0, const char *name=0); - ~KLanguageCombo(); - - void insertLanguage(const QString& path, const QString& name, const QString& sub = QString(), const QString &submenu = QString(), int index = -1); - void changeLanguage(const QString& name, int i); -}; - -#endif diff --git a/khelpcenter/htmlsearch/ktagcombobox.cpp b/khelpcenter/htmlsearch/ktagcombobox.cpp deleted file mode 100644 index 535715fd..00000000 --- a/khelpcenter/htmlsearch/ktagcombobox.cpp +++ /dev/null @@ -1,250 +0,0 @@ -/* - * ktagcombobox.cpp - A combobox with support for submenues, icons and tags - * - * Copyright (c) 1999-2000 Hans Petter Bieker - * - * Requires the Qt widget libraries, available at no cost at - * http://www.troll.no/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#define INCLUDE_MENUITEM_DEF 1 -#include "ktagcombobox.h" - -#include - -#include - -KTagComboBox::~KTagComboBox () -{ - delete popup; -} - -KTagComboBox::KTagComboBox (QWidget * parent, const char *name) - : QComboBox(parent, name), - popup(0), - old_popup(0) -{ - clear(); -} - -void KTagComboBox::popupMenu() -{ - popup->popup( mapToGlobal( QPoint(0,0) ), current ); -} - -void KTagComboBox::keyPressEvent( QKeyEvent *e ) -{ - int c; - - if ( ( e->key() == Key_F4 && e->state() == 0 ) || - ( e->key() == Key_Down && (e->state() & AltButton) ) || - ( e->key() == Key_Space ) ) { - if ( count() ) { - popup->setActiveItem( current ); - popupMenu(); - } - return; - } else { - e->ignore(); - return; - } - - c = currentItem(); - emit highlighted( c ); - emit activated( c ); -} - -void KTagComboBox::mousePressEvent( QMouseEvent * ) -{ - popupMenu(); -} - -void KTagComboBox::internalActivate( int index ) -{ - if (current == index) return; - current = index; - emit activated( index ); - repaint(); -} - -void KTagComboBox::internalHighlight( int index ) -{ - emit highlighted( index ); -} - -void KTagComboBox::clear() -{ - tags.clear(); - - delete old_popup; - old_popup = popup; - popup = new QPopupMenu(this); - connect( popup, SIGNAL(activated(int)), - SLOT(internalActivate(int)) ); - connect( popup, SIGNAL(highlighted(int)), - SLOT(internalHighlight(int)) ); -} - -int KTagComboBox::count() const -{ - return tags.count(); -} - -static inline void checkInsertPos(QPopupMenu *popup, const QString & str, int &index) -{ - if (index == -2) index = popup->count(); - if (index != -1) return; - - int a = 0; - int b = popup->count(); - while (a <= b) { - int w = (a + b) / 2; - - int id = popup->idAt(w); - int j = str.compare(popup->text(id)); - - if (j > 0) - a = w + 1; - else - b = w - 1; - } - - index = a; // it doesn't really matter ... a == b here. -} - -static inline QPopupMenu *checkInsertIndex(QPopupMenu *popup, const QStringList& tags, const QString &submenu) -{ - int pos = tags.findIndex(submenu); - - QPopupMenu *pi = 0; - if (pos != -1) - { - QMenuItem *p = popup->findItem(pos); - pi = p?p->popup():0; - } - if (!pi) pi = popup; - - return pi; -} - -void KTagComboBox::insertItem(const QIcon& icon, const QString &text, const QString &tag, const QString &submenu, int index ) -{ - QPopupMenu *pi = checkInsertIndex(popup, tags, submenu); - checkInsertPos(pi, text, index); - pi->insertItem(icon, text, count(), index); - tags.append(tag); -} - -void KTagComboBox::insertItem(const QString &text, const QString &tag, const QString &submenu, int index ) -{ - QPopupMenu *pi = checkInsertIndex(popup, tags, submenu); - checkInsertPos(pi, text, index); - pi->insertItem(text, count(), index); - tags.append(tag); -} - -void KTagComboBox::insertSeparator(const QString &submenu, int index) -{ - QPopupMenu *pi = checkInsertIndex(popup, tags, submenu); - pi->insertSeparator(index); - tags.append(QString()); -} - -void KTagComboBox::insertSubmenu(const QString &text, const QString &tag, const QString &submenu, int index) -{ - QPopupMenu *pi = checkInsertIndex(popup, tags, submenu); - QPopupMenu *p = new QPopupMenu(pi); - checkInsertPos(pi, text, index); - pi->insertItem(text, p, count(), index); - tags.append(tag); - connect( p, SIGNAL(activated(int)), - SLOT(internalActivate(int)) ); - connect( p, SIGNAL(highlighted(int)), - SLOT(internalHighlight(int)) ); -} - -void KTagComboBox::paintEvent( QPaintEvent * ev) -{ - QComboBox::paintEvent(ev); - - QPainter p (this); - - // Text - QRect clip(2, 2, width() - 4, height() - 4); -#if 0 - if ( hasFocus() && style().guiStyle() != MotifStyle ) - p.setPen( colorGroup().highlightedText() ); -#endif - p.drawText(clip, AlignCenter | SingleLine, popup->text( current )); - - // Icon - QIcon *icon = popup->iconSet( this->current ); - if (icon) { - QPixmap pm = icon->pixmap(); - p.drawPixmap( 4, (height()-pm.height())/2, pm ); - } -} - -bool KTagComboBox::containsTag( const QString &str ) const -{ - return tags.contains(str) > 0; -} - -QString KTagComboBox::currentTag() const -{ - return tags.at(currentItem()); -} - -QString KTagComboBox::tag(int i) const -{ - if (i < 0 || i >= count()) - { - kDebug() << "KTagComboBox::tag(), unknown tag " << i; - return QString(); - } - return *tags.at(i); -} - -int KTagComboBox::currentItem() const -{ - return current; -} - -void KTagComboBox::setCurrentItem(int i) -{ - if (i < 0 || i >= count()) return; - current = i; - repaint(); -} - -void KTagComboBox::setCurrentItem(const QString &code) -{ - int i = tags.findIndex(code); - if (code.isNull()) - i = 0; - if (i != -1) - setCurrentItem(i); -} - -void KTagComboBox::setFont( const QFont &font ) -{ - QComboBox::setFont( font ); - popup->setFont( font ); -} - -#include "ktagcombobox.moc" - diff --git a/khelpcenter/htmlsearch/ktagcombobox.h b/khelpcenter/htmlsearch/ktagcombobox.h deleted file mode 100644 index ccf9712f..00000000 --- a/khelpcenter/htmlsearch/ktagcombobox.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * ktagcombobox.h - A combobox with support for submenues, icons and tags - * - * Copyright (c) 1999-2000 Hans Petter Bieker - * - * Requires the Qt widget libraries, available at no cost at - * http://www.troll.no/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - - -#ifndef __KTAGCOMBOBOX_H__ -#define __KTAGCOMBOBOX_H__ - -#include - -class QPopupMenu; - -/* - * This class should be just like qcombobox, but it should be possible - * to have have a QIcon for each entry, and each entry should have a tag. - * - * It has also support for sub menus. - */ -class KTagComboBox : public QComboBox -{ - Q_OBJECT - -public: - explicit KTagComboBox(QWidget *parent=0, const char *name=0); - ~KTagComboBox(); - - void insertItem(const QIcon& icon, const QString &text, const QString &tag, const QString &submenu = QString(), int index=-1 ); - void insertItem(const QString &text, const QString &tag, const QString &submenu = QString(), int index=-1 ); - void insertSeparator(const QString &submenu = QString(), int index=-1 ); - void insertSubmenu(const QString &text, const QString &tag, const QString &submenu = QString(), int index=-1); - - int count() const; - void clear(); - - /* - * Tag of the selected item - */ - QString currentTag() const; - QString tag ( int i ) const; - bool containsTag (const QString &str ) const; - - /* - * Set the current item - */ - int currentItem() const; - void setCurrentItem(int i); - void setCurrentItem(const QString &code); - - // widget stuff - virtual void setFont( const QFont & ); - -Q_SIGNALS: - void activated( int index ); - void highlighted( int index ); - -private Q_SLOTS: - void internalActivate( int ); - void internalHighlight( int ); - -protected: - void paintEvent( QPaintEvent * ); - void mousePressEvent( QMouseEvent * ); - void keyPressEvent( QKeyEvent *e ); - void popupMenu(); - -private: - // work space for the new class - QStringList tags; - QPopupMenu *popup, *old_popup; - int current; -}; - -#endif diff --git a/khelpcenter/htmlsearch/long.html b/khelpcenter/htmlsearch/long.html deleted file mode 100644 index 1d0fa4ce..00000000 --- a/khelpcenter/htmlsearch/long.html +++ /dev/null @@ -1,6 +0,0 @@ -
$&(TITLE)$(STARSLEFT) -
$(EXCERPT)
-$&(URL) -$(MODIFIED), $(SIZE) bytes -
- diff --git a/khelpcenter/htmlsearch/meinproc_wrapper b/khelpcenter/htmlsearch/meinproc_wrapper deleted file mode 100644 index 239cf746..00000000 --- a/khelpcenter/htmlsearch/meinproc_wrapper +++ /dev/null @@ -1,4 +0,0 @@ -#! /bin/sh - -file=`echo $3 | sed -e "s#http://localhost/#/#; s#file:/*#/#"` -meinproc --htdig $file diff --git a/khelpcenter/htmlsearch/nomatch.html b/khelpcenter/htmlsearch/nomatch.html deleted file mode 100644 index 30592703..00000000 --- a/khelpcenter/htmlsearch/nomatch.html +++ /dev/null @@ -1,21 +0,0 @@ -No match for '$&(LOGICAL_WORDS)' - -

-Search results

-
-

No matches were found for '$&(LOGICAL_WORDS)'

-

-Check the spelling of the search word(s) you used. -If the spelling is correct and you only used one word, -try using one or more similar search words with "Any." -

-If the spelling is correct and you used more than one -word with "Any," try using one or more similar search -words with "Any."

-If the spelling is correct and you used more than one -word with "All," try using one or more of the same words -with "Any."

-
- -ht://Dig $(VERSION) - diff --git a/khelpcenter/htmlsearch/progressdialog.cpp b/khelpcenter/htmlsearch/progressdialog.cpp deleted file mode 100644 index 2cc89c0b..00000000 --- a/khelpcenter/htmlsearch/progressdialog.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include -#include - -#include -#include - - -#include "progressdialog.moc" - - -ProgressDialog::ProgressDialog(QWidget *parent, const char *name) - : KDialog( parent ) -{ - setCaption( i18n("Generating Index") ); - setButtons( Cancel ); - setDefaultButton( Cancel ); - setObjectName( name ); - setModal( false ); - - QGridLayout *grid = new QGridLayout(plainPage()); - grid->setSpacing(spacingHint()); - - QLabel *l = new QLabel(i18n("Scanning for files"), plainPage()); - grid->addWidget(l, 0, 1, 1,2); - - filesScanned = new QLabel(plainPage()); - grid->addWidget(filesScanned, 1,2); - setFilesScanned(0); - - check1 = new QLabel(plainPage()); - grid->addWidget(check1, 0,0); - - l = new QLabel(i18n("Extracting search terms"), plainPage()); - grid->addWidget(l, 2, 1, 1,2); - - bar = new QProgressBar(plainPage()); - grid->addWidget(bar, 3,2); - - check2 = new QLabel(plainPage()); - grid->addWidget(check2, 2,0); - - l = new QLabel(i18n("Generating index..."), plainPage()); - grid->addWidget(l, 4, 1, 1,2); - - check3 = new QLabel(plainPage()); - grid->addWidget(check3, 4,0); - - setState(0); - - setMinimumWidth(300); -} - - -void ProgressDialog::setFilesScanned(int n) -{ - filesScanned->setText(i18n("Files processed: %1", n)); -} - - -void ProgressDialog::setFilesToDig(int n) -{ - bar->setRange(0, n); -} - - -void ProgressDialog::setFilesDigged(int n) -{ - bar->setValue(n); -} - - -void ProgressDialog::setState(int n) -{ - QPixmap unchecked = QPixmap(locate("data", "khelpcenter/pics/unchecked.xpm")); - QPixmap checked = QPixmap(locate("data", "khelpcenter/pics/checked.xpm")); - - check1->setPixmap( n > 0 ? checked : unchecked); - check2->setPixmap( n > 1 ? checked : unchecked); - check3->setPixmap( n > 2 ? checked : unchecked); -} diff --git a/khelpcenter/htmlsearch/progressdialog.h b/khelpcenter/htmlsearch/progressdialog.h deleted file mode 100644 index 2b718572..00000000 --- a/khelpcenter/htmlsearch/progressdialog.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __PROGRESS_DIALOG_H__ -#define __PROGRESS_DIALOG_H__ - -#include - -class QLabel; -class QProgressBar; - -class ProgressDialog : public KDialog -{ - - Q_OBJECT - -public: - - explicit ProgressDialog(QWidget *parent=0, const char *name=0); - - void setFilesScanned(int s); - void setFilesToDig(int d); - void setFilesDigged(int d); - - void setState(int n); - -private: - - QLabel *filesScanned, *check1, *check2, *check3; - QProgressBar *bar; - -}; - - -#endif diff --git a/khelpcenter/htmlsearch/short.html b/khelpcenter/htmlsearch/short.html deleted file mode 100644 index e3e5e447..00000000 --- a/khelpcenter/htmlsearch/short.html +++ /dev/null @@ -1 +0,0 @@ -$(STARSRIGHT) $&(TITLE)
diff --git a/khelpcenter/htmlsearch/star.png b/khelpcenter/htmlsearch/star.png deleted file mode 100644 index 1bddebcb..00000000 Binary files a/khelpcenter/htmlsearch/star.png and /dev/null differ diff --git a/khelpcenter/htmlsearch/star_blank.png b/khelpcenter/htmlsearch/star_blank.png deleted file mode 100644 index ede2fd36..00000000 Binary files a/khelpcenter/htmlsearch/star_blank.png and /dev/null differ diff --git a/khelpcenter/htmlsearch/syntax.html b/khelpcenter/htmlsearch/syntax.html deleted file mode 100644 index e724fd90..00000000 --- a/khelpcenter/htmlsearch/syntax.html +++ /dev/null @@ -1,19 +0,0 @@ -Error in Boolean search for '$&(WORDS)' - -

-Error in Boolean search for '$&(LOGICAL_WORDS)'

-
-Boolean expressions need to be 'correct' in order for the search -system to use them. -The expression you entered has errors in it.

-Examples of correct expressions are: cat and dog, cat -not dog, cat or (dog not nose).
Note that -the operator not has the meaning of 'without'. -

-$(SYNTAXERROR) -
-
- -ht://Dig $(VERSION) - - diff --git a/khelpcenter/htmlsearch/unchecked.xpm b/khelpcenter/htmlsearch/unchecked.xpm deleted file mode 100644 index e447281a..00000000 --- a/khelpcenter/htmlsearch/unchecked.xpm +++ /dev/null @@ -1,22 +0,0 @@ -/* XPM */ -static char*unchecked[]={ -"16 16 3 1", -"# c #000000", -"+ c #ffffff", -". c None", -"................", -"................", -"..++++++++++++..", -"..+##########+..", -"..+#++++++++#+..", -"..+#+......+#+..", -"..+#+......+#+..", -"..+#+......+#+..", -"..+#+......+#+..", -"..+#+......+#+..", -"..+#+......+#+..", -"..+#++++++++#+..", -"..+##########+..", -"..++++++++++++..", -"................", -"................"}; diff --git a/khelpcenter/htmlsearch/wrapper.html b/khelpcenter/htmlsearch/wrapper.html deleted file mode 100644 index 251266de..00000000 --- a/khelpcenter/htmlsearch/wrapper.html +++ /dev/null @@ -1,16 +0,0 @@ -Search results for '$&(WORDS)' - -

-Search results for '$&(LOGICAL_WORDS)'

-
- -More *'s indicate a better match. - -
-$(HTSEARCH_RESULTS) -$(PAGEHEADER) -$(PREVPAGE) $(PAGELIST) $(NEXTPAGE) -
- -ht://Dig $(VERSION) - diff --git a/khelpcenter/htmlsearchconfig.cpp b/khelpcenter/htmlsearchconfig.cpp deleted file mode 100644 index 36780b9b..00000000 --- a/khelpcenter/htmlsearchconfig.cpp +++ /dev/null @@ -1,159 +0,0 @@ -/** - * kcmhtmlsearch.cpp - * - * Copyright (c) 2000 Matthias Hölzer-Klüpfel - * - * 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 "htmlsearchconfig.h" - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace KHC { - -HtmlSearchConfig::HtmlSearchConfig(QWidget *parent, const char *name) - : QWidget(parent) -{ - setObjectName( name ); - - QVBoxLayout *vbox = new QVBoxLayout(this); - vbox->setMargin( 5 ); - - - QGroupBox *gb = new QGroupBox(i18n("ht://dig"), this); - vbox->addWidget(gb); - - QGridLayout *grid = new QGridLayout(gb); - grid->setMargin( 6 ); - grid->setSpacing( 6 ); - - grid->addItem( new QSpacerItem( 0, gb->fontMetrics().lineSpacing() ), 0, 0 ); - - QLabel *l = new QLabel(i18n("The fulltext search feature makes use of the " - "ht://dig HTML search engine."), gb); - l->setMinimumSize(l->sizeHint()); - grid->addWidget(l, 1, 1, 0, 1); - gb->setWhatsThis( i18n( "Information about where to get the ht://dig package." ) ); - - KUrlLabel *url = new KUrlLabel(gb); - url->setUrl(QLatin1String("http://www.htdig.org")); - url->setText(i18n("You can get ht://dig at the ht://dig home page")); - url->setAlignment(Qt::AlignHCenter); - grid->addWidget(url, 2,2, 0, 1); - connect(url, SIGNAL(leftClickedUrl(const QString&)), - this, SLOT(urlClicked(const QString&))); - - gb = new QGroupBox(i18n("Program Locations"), this); - - vbox->addWidget(gb); - grid = new QGridLayout(gb); - grid->setMargin( 6 ); - grid->setSpacing( 6 ); - grid->addItem( new QSpacerItem( 0, gb->fontMetrics().lineSpacing() ), 0, 0 ); - - mHtsearchUrl = new KUrlRequester(gb); - l = new QLabel(i18n("htsearch:"), gb); - l->setBuddy( mHtsearchUrl ); - grid->addWidget(l, 1,0); - grid->addWidget(mHtsearchUrl, 1,1); - connect( mHtsearchUrl->lineEdit(), SIGNAL( textChanged( const QString & ) ), - SIGNAL( changed() ) ); - QString wtstr = i18n( "Enter the URL of the htsearch CGI program." ); - mHtsearchUrl->setWhatsThis( wtstr ); - l->setWhatsThis( wtstr ); - - mIndexerBin = new KUrlRequester(gb); - l = new QLabel(i18n("Indexer:"), gb); - l->setBuddy( mIndexerBin ); - grid->addWidget(l, 2,0); - grid->addWidget(mIndexerBin, 2,1); - connect( mIndexerBin->lineEdit(), SIGNAL( textChanged( const QString & ) ), - SIGNAL( changed() ) ); - wtstr = i18n( "Enter the path to your htdig indexer program here." ); - mIndexerBin->setWhatsThis( wtstr ); - l->setWhatsThis( wtstr ); - - mDbDir = new KUrlRequester(gb); - mDbDir->setMode( KFile::Directory | KFile::LocalOnly ); - l = new QLabel(i18n("htdig database:"), gb); - l->setBuddy( mDbDir ); - grid->addWidget(l, 3,0); - grid->addWidget(mDbDir, 3,1); - connect( mDbDir->lineEdit(), SIGNAL( textChanged( const QString & ) ), - SIGNAL( changed() ) ); - wtstr = i18n( "Enter the path to the htdig database folder." ); - mDbDir->setWhatsThis( wtstr ); - l->setWhatsThis( wtstr ); -} - -HtmlSearchConfig::~HtmlSearchConfig() -{ - kDebug() << "~HtmlSearchConfig()"; -} - -void HtmlSearchConfig::makeReadOnly() -{ - mHtsearchUrl->setEnabled( false ); - mIndexerBin->setEnabled( false ); - mDbDir->setEnabled( false ); -} - -void HtmlSearchConfig::load( KConfig *config ) -{ - mHtsearchUrl->lineEdit()->setText(config->group("htdig").readPathEntry("htsearch", KGlobal::mainComponent().dirs()->findExe("htsearch"))); - mIndexerBin->lineEdit()->setText(config->group("htdig").readPathEntry("indexer", QString())); - mDbDir->lineEdit()->setText(config->group("htdig").readPathEntry("dbdir", "/opt/www/htdig/db/" ) ); -} - -void HtmlSearchConfig::save( KConfig *config ) -{ - config->group("htdig").writePathEntry("htsearch", mHtsearchUrl->lineEdit()->text()); - config->group("htdig").writePathEntry("indexer", mIndexerBin->lineEdit()->text()); - config->group("htdig").writePathEntry("dbdir", mDbDir->lineEdit()->text()); -} - -void HtmlSearchConfig::defaults() -{ - mHtsearchUrl->lineEdit()->setText(KGlobal::mainComponent().dirs()->findExe("htsearch")); - mIndexerBin->lineEdit()->setText(""); - mDbDir->lineEdit()->setText(QLatin1String("/opt/www/htdig/db/") ); -} - -void HtmlSearchConfig::urlClicked(const QString &url) -{ - KToolInvocation::invokeBrowser(url); -} - -} // End namespace KHC -// vim:ts=2:sw=2:et - -#include "htmlsearchconfig.moc" - diff --git a/khelpcenter/htmlsearchconfig.h b/khelpcenter/htmlsearchconfig.h deleted file mode 100644 index a93567d0..00000000 --- a/khelpcenter/htmlsearchconfig.h +++ /dev/null @@ -1,58 +0,0 @@ -/** - * This file is part of KHelpCenter - * - * Copyright (c) 2000 Matthias Hölzer-Klüpfel - * - * 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 KHC_HTMLSEARCHCONFIG_H -#define KHC_HTMLSEARCHCONFIG_H - -#include - -class KUrlRequester; -class KConfig; - -namespace KHC { - -class HtmlSearchConfig : public QWidget -{ - Q_OBJECT - public: - explicit HtmlSearchConfig(QWidget *parent = 0L, const char *name = 0L); - virtual ~HtmlSearchConfig(); - - void load( KConfig * ); - void save( KConfig * ); - void defaults(); - void makeReadOnly(); - - Q_SIGNALS: - void changed(); - - protected Q_SLOTS: - void urlClicked(const QString&); - - private: - KUrlRequester *mHtsearchUrl; - KUrlRequester *mIndexerBin; - KUrlRequester *mDbDir; -}; - -} - -#endif //KHC_HTMLSEARCHCONFIG_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/index.html.in b/khelpcenter/index.html.in deleted file mode 100644 index ec8ea453..00000000 --- a/khelpcenter/index.html.in +++ /dev/null @@ -1,42 +0,0 @@ - - - - %1 - - - - -
-
- -
-
- -
-
- %2 -
-
- %3 -
-
- -
-
- -
-
- - - diff --git a/khelpcenter/infotree.cpp b/khelpcenter/infotree.cpp deleted file mode 100644 index ec2136ca..00000000 --- a/khelpcenter/infotree.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe (raabe@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 "infotree.h" - -#include "navigatoritem.h" -#include "docentry.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include // for getenv() - -using namespace KHC; - -class InfoCategoryItem : public NavigatorItem -{ - public: - InfoCategoryItem( NavigatorItem *parent, const QString &text ); - - virtual void setExpanded( bool open ); -}; - -class InfoNodeItem : public NavigatorItem -{ - public: - InfoNodeItem( InfoCategoryItem *parent, const QString &text ); -}; - -InfoCategoryItem::InfoCategoryItem( NavigatorItem *parent, const QString &text ) - : NavigatorItem( new DocEntry( text ), parent ) -{ - setAutoDeleteDocEntry( true ); - setExpanded( false ); -// kDebug(1400) << "Got category: " << text; -} - -void InfoCategoryItem::setExpanded( bool open ) -{ - NavigatorItem::setExpanded( open ); - - if ( open && childCount() > 0 ) setIcon( 0, SmallIcon( "help-contents" ) ); -// TODO: was contents2 -> needs to be changed to help-contents-alternate or similar - else setIcon( 0, SmallIcon( "help-contents" ) ); -} - -InfoNodeItem::InfoNodeItem( InfoCategoryItem *parent, const QString &text ) - : NavigatorItem( new DocEntry( text ), parent ) -{ - setAutoDeleteDocEntry( true ); -// kDebug( 1400 ) << "Created info node item: " << text; -} - -InfoTree::InfoTree( QObject *parent ) - : TreeBuilder( parent ), - m_parentItem( 0 ) -{ -} - -void InfoTree::build( NavigatorItem *parent ) -{ - kDebug( 1400 ) << "Populating info tree."; - - m_parentItem = parent; - - DocEntry *entry = new DocEntry( i18n( "Alphabetically" ) ); - m_alphabItem = new NavigatorItem( entry, parent ); - m_alphabItem->setAutoDeleteDocEntry( true ); - entry = new DocEntry( i18n( "By Category" ) ); - m_categoryItem = new NavigatorItem( entry, parent ); - m_categoryItem->setAutoDeleteDocEntry( true ); - - KConfigGroup cfg(KGlobal::config(), "Info pages"); - QStringList infoDirFiles = cfg.readEntry( "Search paths" , QStringList() ); - // Default paths taken fron kdebase/kioslave/info/kde-info2html.conf - if ( infoDirFiles.isEmpty() ) { - infoDirFiles << "/usr/share/info"; - infoDirFiles << "/usr/info"; - infoDirFiles << "/usr/lib/info"; - infoDirFiles << "/usr/local/info"; - infoDirFiles << "/usr/local/lib/info"; - infoDirFiles << "/usr/X11R6/info"; - infoDirFiles << "/usr/X11R6/lib/info"; - infoDirFiles << "/usr/X11R6/lib/xemacs/info"; - } - - QString infoPath = ::getenv( "INFOPATH" ); - if ( !infoPath.isEmpty() ) - infoDirFiles += infoPath.split( ':'); - - QStringList::ConstIterator it = infoDirFiles.constBegin(); - QStringList::ConstIterator end = infoDirFiles.constEnd(); - for ( ; it != end; ++it ) { - QString infoDirFileName = *it + "/dir"; - if ( QFile::exists( infoDirFileName ) ) - parseInfoDirFile( infoDirFileName ); - } - - m_alphabItem->sortChildren( 0, Qt::AscendingOrder /* ascending */ ); -} - -void InfoTree::parseInfoDirFile( const QString &infoDirFileName ) -{ - kDebug( 1400 ) << "Parsing info dir file " << infoDirFileName; - - QFile infoDirFile( infoDirFileName ); - if ( !infoDirFile.open( QIODevice::ReadOnly ) ) - return; - - QTextStream stream( &infoDirFile ); - // Skip introduction blurb. - while ( !stream.atEnd() && !stream.readLine().startsWith( QLatin1String("* Menu:") ) ) { - ; - } - - while ( !stream.atEnd() ) { - QString s = stream.readLine(); - if ( s.trimmed().isEmpty() ) - continue; - - InfoCategoryItem *catItem = new InfoCategoryItem( m_categoryItem, s ); - while ( !stream.atEnd() && !s.trimmed().isEmpty() ) { - s = stream.readLine(); - if ( s[ 0 ] == '*' ) { - const int colon = s.indexOf( ":" ); - const int openBrace = s.indexOf( "(", colon ); - const int closeBrace = s.indexOf( ")", openBrace ); - const int dot = s.indexOf( ".", closeBrace ); - - QString appName = s.mid( 2, colon - 2 ); - QString url = "info:/" + s.mid( openBrace + 1, closeBrace - openBrace - 1 ); - if ( dot - closeBrace > 1 ) - url += QLatin1Char('/') + s.mid( closeBrace + 1, dot - closeBrace - 1 ); - else - url += QLatin1String("/Top"); - - InfoNodeItem *item = new InfoNodeItem( catItem, appName ); - item->entry()->setUrl( url ); - - InfoCategoryItem *alphabSection = 0; - - QTreeWidgetItemIterator it( m_alphabItem ); - while ( (*it) ) - { - if ( (*it)->text( 0 ) == QString( appName[ 0 ].toUpper() ) ) - { - alphabSection = static_cast( (*it) ); - break; - } - ++it; - } - - if ( alphabSection == 0 ) - alphabSection = new InfoCategoryItem( m_alphabItem, QString( appName[ 0 ].toUpper() ) ); - - item = new InfoNodeItem( alphabSection, appName ); - item->entry()->setUrl( url ); - } - } - } - infoDirFile.close(); -} - -#include "infotree.moc" -// vim:ts=2:sw=2:et diff --git a/khelpcenter/infotree.h b/khelpcenter/infotree.h deleted file mode 100644 index cd704656..00000000 --- a/khelpcenter/infotree.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * infotree.h - part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe (raabe@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 KHC_INFOTREE_H -#define KHC_INFOTREE_H - -#include "treebuilder.h" - -namespace KHC -{ - class NavigatorItem; - class InfoTree : public TreeBuilder - { - Q_OBJECT - public: - InfoTree( QObject *parent ); - - virtual void build( NavigatorItem *parentItem ); - - private: - void parseInfoDirFile( const QString &fileName ); - - NavigatorItem *m_parentItem; - NavigatorItem *m_alphabItem; - NavigatorItem *m_categoryItem; - }; -} - -#endif // KHC_INFOTREE_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/kcmhelpcenter.cpp b/khelpcenter/kcmhelpcenter.cpp deleted file mode 100644 index 9f91d0b5..00000000 --- a/khelpcenter/kcmhelpcenter.cpp +++ /dev/null @@ -1,693 +0,0 @@ -/* - This file is part of KHelpcenter. - - Copyright (C) 2002 Cornelius Schumacher - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "kcmhelpcenter.h" - -#include "htmlsearchconfig.h" -#include "docmetainfo.h" -#include "prefs.h" -#include "searchhandler.h" -#include "searchengine.h" - -#include "kcmhelpcenteradaptor.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -using namespace KHC; - -IndexDirDialog::IndexDirDialog( QWidget *parent ) - : KDialog( parent ) -{ - setModal( true ); - setCaption( i18n("Change Index Folder") ); - setButtons( Ok | Cancel ); - - QFrame *topFrame = new QFrame( this ); - setMainWidget( topFrame ); - - QBoxLayout *urlLayout = new QHBoxLayout( topFrame ); - - QLabel *label = new QLabel( i18n("Index folder:"), topFrame ); - urlLayout->addWidget( label ); - - mIndexUrlRequester = new KUrlRequester( topFrame ); - mIndexUrlRequester->setMode( KFile::Directory | KFile::ExistingOnly | - KFile::LocalOnly ); - urlLayout->addWidget( mIndexUrlRequester ); - - mIndexUrlRequester->setUrl( Prefs::indexDirectory() ); - connect(mIndexUrlRequester->lineEdit(),SIGNAL(textChanged ( const QString & )), this, SLOT(slotUrlChanged( const QString &))); - slotUrlChanged( mIndexUrlRequester->lineEdit()->text() ); - - connect( this, SIGNAL( okClicked() ), SLOT( slotOk() ) ); -} - -void IndexDirDialog::slotUrlChanged( const QString &_url ) -{ - enableButtonOk( !_url.isEmpty() ); -} - - -void IndexDirDialog::slotOk() -{ - Prefs::setIndexDirectory( mIndexUrlRequester->url().url() ); - accept(); -} - - -IndexProgressDialog::IndexProgressDialog( QWidget *parent ) - : KDialog( parent ), - mFinished( true ) -{ - setCaption( i18n("Build Search Indices") ); - - QVBoxLayout *topLayout = new QVBoxLayout( mainWidget() ); - topLayout->setMargin( marginHint() ); - topLayout->setSpacing( spacingHint() ); - - mLabel = new QLabel( mainWidget() ); - mLabel->setAlignment( Qt::AlignHCenter ); - topLayout->addWidget( mLabel ); - - mProgressBar = new QProgressBar( mainWidget() ); - topLayout->addWidget( mProgressBar ); - - mLogLabel = new QLabel( i18n("Index creation log:"), mainWidget() ); - topLayout->addWidget( mLogLabel ); - - mLogView = new QTextEdit( mainWidget() ); - mLogView->setReadOnly( true ); - mLogView->setWordWrapMode( QTextOption::NoWrap ); - mLogView->setMinimumHeight( 200 ); - topLayout->addWidget( mLogView ); - - setButtons( User1 | Close ); - connect( this, SIGNAL( closeClicked() ), SLOT( slotEnd() ) ); - connect( this, SIGNAL( user1Clicked() ), SLOT( toggleDetails() ) ); - - hideDetails(); - - setFinished( false ); -} - -IndexProgressDialog::~IndexProgressDialog() -{ - if ( !mLogView->isHidden() ) { - KConfigGroup cfg(KGlobal::config(), "indexprogressdialog"); - cfg.writeEntry( "size", size() ); - } -} - -void IndexProgressDialog::setTotalSteps( int steps ) -{ - mProgressBar->setRange( 0, steps ); - mProgressBar->setValue( 0 ); - setFinished( false ); - mLogView->clear(); -} - -void IndexProgressDialog::advanceProgress() -{ - mProgressBar->setValue( mProgressBar->value() + 1 ); -} - -void IndexProgressDialog::setLabelText( const QString &text ) -{ - mLabel->setText( text ); -} - -void IndexProgressDialog::setMinimumLabelWidth( int width ) -{ - mLabel->setMinimumWidth( width ); -} - -void IndexProgressDialog::setFinished( bool finished ) -{ - if ( finished == mFinished ) return; - - mFinished = finished; - - if ( mFinished ) { - setButtonText( Close, i18nc("Label for button to close search index progress dialog after successful completion", "Close") ); - mLabel->setText( i18n("Index creation finished.") ); - mProgressBar->setValue( mProgressBar->maximum() ); - } else { - setButtonText( Close, i18nc("Label for stopping search index generation before completion", "Stop") ); - } -} - -void IndexProgressDialog::appendLog( const QString &text ) -{ - mLogView->append( text ); -} - -void IndexProgressDialog::slotEnd() -{ - if ( mFinished ) { - emit closed(); - accept(); - } else { - emit cancelled(); - reject(); - } -} - -void IndexProgressDialog::toggleDetails() -{ - KConfigGroup cfg(KGlobal::config(), "indexprogressdialog"); - if ( mLogView->isHidden() ) { - mLogLabel->show(); - mLogView->show(); - setButtonText( User1, i18n("Details <<") ); - QSize size = cfg.readEntry( "size", QSize() ); - if ( !size.isEmpty() ) resize( size ); - } else { - cfg.writeEntry( "size", size() ); - hideDetails(); - } -} - -void IndexProgressDialog::hideDetails() -{ - mLogLabel->hide(); - mLogView->hide(); - setButtonText( User1, i18n("Details >>") ); - - // causes bug 166343 - //layout()->activate(); - adjustSize(); -} - - -KCMHelpCenter::KCMHelpCenter( KHC::SearchEngine *engine, QWidget *parent, - const char *name) - : KDialog( parent ), - mEngine( engine ), mProgressDialog( 0 ), mCmdFile( 0 ), - mProcess( 0 ), mIsClosing( false ), mRunAsRoot( false ) -{ - new KcmhelpcenterAdaptor(this); - QDBusConnection::sessionBus().registerObject(QLatin1String("/kcmhelpcenter"), this); - setObjectName( name ); - setCaption( i18n("Build Search Index") ); - setButtons( Ok | Cancel ); - - QWidget *widget = new QWidget( this ); - setMainWidget( widget ); - - setupMainWidget( widget ); - - setButtonGuiItem( KDialog::Ok, KGuiItem(i18n("Build Index")) ); - - mConfig = KGlobal::config(); - - DocMetaInfo::self()->scanMetaInfo(); - - load(); - const QString dbusInterface = "org.kde.khelpcenter.kcmhelpcenter"; - QDBusConnection dbus = QDBusConnection::sessionBus(); - bool success = dbus.connect(QString(), "/kcmhelpcenter", dbusInterface, "buildIndexProgress", this, SLOT(slotIndexProgress())); - if ( !success ) - kError() << "connect D-Bus signal failed" << endl; - success = dbus.connect(QString(), "/kcmhelpcenter", dbusInterface, "buildIndexError", this, SLOT(slotIndexError(const QString&))); - if ( !success ) - kError() << "connect D-Bus signal failed" << endl; - KConfigGroup id( mConfig, "IndexDialog" ); - restoreDialogSize( id ); -} - -KCMHelpCenter::~KCMHelpCenter() -{ - KConfigGroup cg( KGlobal::config(), "IndexDialog" ); - KDialog::saveDialogSize( cg ); -} - -void KCMHelpCenter::setupMainWidget( QWidget *parent ) -{ - QVBoxLayout *topLayout = new QVBoxLayout( parent ); - topLayout->setSpacing( KDialog::spacingHint() ); - - QString helpText = - i18n("To be able to search a document, a search\n" - "index needs to exist. The status column of the list below shows whether an index\n" - "for a document exists.\n") + - i18n("To create an index, check the box in the list and press the\n" - "\"Build Index\" button.\n"); - - QLabel *label = new QLabel( helpText, parent ); - topLayout->addWidget( label ); - - mListView = new QTreeWidget( parent ); - //mListView->setFullWidth( true ); - mListView->setColumnCount(2); - mListView->setHeaderLabels( QStringList() << i18n("Search Scope") << i18n("Status") ); - topLayout->addWidget( mListView ); - // not just itemClicked, so that Key_Space also triggers it (#123954) - connect( mListView, SIGNAL(itemChanged(QTreeWidgetItem*,int)), - SLOT(checkSelection()) ); - - QBoxLayout *urlLayout = new QHBoxLayout(); - topLayout->addLayout( urlLayout ); - - QLabel *urlLabel = new QLabel( i18n("Index folder:"), parent ); - urlLayout->addWidget( urlLabel ); - - mIndexDirLabel = new QLabel( parent ); - urlLayout->addWidget( mIndexDirLabel, 1 ); - - QPushButton *button = new QPushButton( i18n("Change..."), parent ); - connect( button, SIGNAL( clicked() ), SLOT( showIndexDirDialog() ) ); - urlLayout->addWidget( button ); - - QBoxLayout *buttonLayout = new QHBoxLayout(); - topLayout->addLayout( buttonLayout ); - - buttonLayout->addStretch( 1 ); - - connect( this, SIGNAL( okClicked() ), SLOT( slotOk() ) ); -} - -void KCMHelpCenter::defaults() -{ -} - -bool KCMHelpCenter::save() -{ - kDebug(1401) << "KCMHelpCenter::save()"; - - if ( !QFile::exists( Prefs::indexDirectory() ) ) { - KMessageBox::sorry( this, - i18n("The folder %1 does not exist; unable to create index.", - Prefs::indexDirectory() ) ); - return false; - } else { - return buildIndex(); - } - - return true; -} - -void KCMHelpCenter::load() -{ - mIndexDirLabel->setText( Prefs::indexDirectory() ); - - mListView->clear(); - - const DocEntry::List &entries = DocMetaInfo::self()->docEntries(); - DocEntry::List::ConstIterator it; - for( it = entries.begin(); it != entries.end(); ++it ) { -// kDebug(1401) << "Entry: " << (*it)->name() << " Indexer: '" -// << (*it)->indexer() << "'" << endl; - if ( mEngine->needsIndex( *it ) ) { - ScopeItem *item = new ScopeItem( mListView, *it ); - item->setOn( (*it)->searchEnabled() ); - } - } - - mListView->header()->setResizeMode( QHeaderView::ResizeToContents ); - - updateStatus(); -} - -void KCMHelpCenter::updateStatus() -{ - QTreeWidgetItemIterator it( mListView ); - while ( (*it) != 0 ) { - ScopeItem *item = static_cast( (*it) ); - QString status; - if ( item->entry()->indexExists( Prefs::indexDirectory() ) ) { - status = i18nc("Describes the status of a documentation index that is present", "OK"); - item->setOn( false ); - } else { - status = i18nc("Describes the status of a documentation index that is missing", "Missing"); - } - item->setText( 1, status ); - - ++it; - } - - checkSelection(); -} - -bool KCMHelpCenter::buildIndex() -{ - kDebug(1401) << "Build Index"; - - kDebug() << "IndexPath: '" << Prefs::indexDirectory() << "'"; - - if ( mProcess ) { - kError() << "Error: Index Process still running." << endl; - return false; - } - - mIndexQueue.clear(); - - QFontMetrics fm( font() ); - int maxWidth = 0; - - mCmdFile = new KTemporaryFile; - if ( !mCmdFile->open() ) { - kError() << "Error opening command file." << endl; - deleteCmdFile(); - return false; - } - - QTextStream ts ( mCmdFile ); - kDebug() << "Writing to file '" << mCmdFile->fileName() << "'"; - - bool hasError = false; - - QTreeWidgetItemIterator it( mListView ); - while ( (*it) != 0 ) { - ScopeItem *item = static_cast( (*it) ); - if ( item->isOn() ) { - DocEntry *entry = item->entry(); - - QString docText = i18nc(" Generic prefix label for error messages when creating documentation index, first arg is the document's identifier, second is the document's name", "Document '%1' (%2):\n", - entry->identifier() , - entry->name() ); - if ( entry->documentType().isEmpty() ) { - KMessageBox::sorry( this, docText + - i18n("No document type.") ); - hasError = true; - } else { - QString error; - SearchHandler *handler = mEngine->handler( entry->documentType() ); - if ( !handler ) { - KMessageBox::sorry( this, docText + - i18n("No search handler available for document type '%1'.", - entry->documentType() ) ); - hasError = true; - } else if ( !handler->checkPaths( &error ) ) { - KMessageBox::sorry( this, docText + error ); - hasError = true; - } else { - QString indexer = handler->indexCommand( entry->identifier() ); - if ( indexer.isEmpty() ) { - KMessageBox::sorry( this, docText + - i18n("No indexing command specified for document type '%1'.", - entry->documentType() ) ); - hasError = true; - } else { - indexer.replace( QLatin1String("%i" ), entry->identifier() ); - indexer.replace( QLatin1String( "%d" ), Prefs::indexDirectory() ); - indexer.replace( QLatin1String( "%p" ), entry->url() ); - kDebug() << "INDEXER: " << indexer; - ts << indexer << endl; - - int width = fm.width( entry->name() ); - if ( width > maxWidth ) maxWidth = width; - - mIndexQueue.append( entry ); - } - } - } - } - ++it; - } - - ts.flush(); - - if ( mIndexQueue.isEmpty() ) { - deleteCmdFile(); - return !hasError; - } - - mCurrentEntry = mIndexQueue.constBegin(); - QString name = (*mCurrentEntry)->name(); - - if ( !mProgressDialog ) { - mProgressDialog = new IndexProgressDialog( parentWidget() ); - connect( mProgressDialog, SIGNAL( cancelled() ), - SLOT( cancelBuildIndex() ) ); - connect( mProgressDialog, SIGNAL( closed() ), - SLOT( slotProgressClosed() ) ); - } - mProgressDialog->setLabelText( name ); - mProgressDialog->setTotalSteps( mIndexQueue.count() ); - mProgressDialog->setMinimumLabelWidth( maxWidth ); - mProgressDialog->show(); - - startIndexProcess(); - - return true; -} - -void KCMHelpCenter::startIndexProcess() -{ - kDebug() << "KCMHelpCenter::startIndexProcess()"; - - mProcess = new KProcess; -#ifndef Q_WS_WIN - if ( mRunAsRoot ) { - QString kdesu = KStandardDirs::findExe("kdesu"); - if(kdesu.isEmpty()) { - kError() << "Failed to run index process as root - could not find kdesu"; - } else { - *mProcess << kdesu; - if(parentWidget()) { - *mProcess << "--attach" << QString::number(parentWidget()->window()->winId()); - kDebug() << "Run as root, attaching kdesu to winid " << QString::number(parentWidget()->window()->winId()); - } - *mProcess << "--"; - } - } -#endif - - *mProcess << KStandardDirs::findExe("khc_indexbuilder"); - *mProcess << mCmdFile->fileName(); - *mProcess << Prefs::indexDirectory(); - - mProcess->setOutputChannelMode(KProcess::SeparateChannels); - connect( mProcess, SIGNAL( readyReadStandardError() ), - SLOT( slotReceivedStderr() ) ); - connect( mProcess, SIGNAL( readyReadStandardOutput() ), - SLOT( slotReceivedStdout() ) ); - connect( mProcess, SIGNAL( finished(int, QProcess::ExitStatus) ), - SLOT( slotIndexFinished(int, QProcess::ExitStatus) ) ); - - mProcess->start(); - if (!mProcess->waitForStarted()) { - kError() << "KCMHelpcenter::startIndexProcess(): Failed to start process."; - deleteProcess(); - deleteCmdFile(); - } -} - -void KCMHelpCenter::cancelBuildIndex() -{ - kDebug() << "cancelBuildIndex()"; - - deleteProcess(); - deleteCmdFile(); - mIndexQueue.clear(); - - if ( mIsClosing ) { - mIsClosing = false; - } -} - -void KCMHelpCenter::slotIndexFinished(int exitCode, QProcess::ExitStatus exitStatus) -{ - kDebug() << "KCMHelpCenter::slotIndexFinished()"; - - if ( exitStatus == QProcess::NormalExit && exitCode == 2 ) { - if ( mRunAsRoot ) { - kError() << "Insufficient permissions." << endl; - } else { - kDebug() << "Insufficient permissions. Trying again as root."; - mRunAsRoot = true; - deleteProcess(); - startIndexProcess(); - return; - } - } else if ( exitStatus != QProcess::NormalExit || exitCode != 0 ) { - kDebug() << "KProcess reported an error."; - KMessageBox::error( this, i18n("Failed to build index.") ); - } else { - mConfig->group( "Search" ).writeEntry( "IndexExists", true ); - emit searchIndexUpdated(); - } - - deleteProcess(); - deleteCmdFile(); - - if ( mProgressDialog ) { - mProgressDialog->setFinished( true ); - } - - mStdOut.clear(); - mStdErr.clear(); - - if ( mIsClosing ) { - if ( !mProgressDialog || !mProgressDialog->isVisible() ) { - mIsClosing = false; - accept(); - } - } -} - -void KCMHelpCenter::deleteProcess() -{ - delete mProcess; - mProcess = 0; -} - -void KCMHelpCenter::deleteCmdFile() -{ - delete mCmdFile; - mCmdFile = 0; -} - -void KCMHelpCenter::slotIndexProgress() -{ - if( !mProcess ) - return; - - kDebug() << "KCMHelpCenter::slotIndexProgress()"; - - updateStatus(); - - advanceProgress(); -} - -void KCMHelpCenter::slotIndexError( const QString &str ) -{ - if( !mProcess ) - return; - - kDebug() << "KCMHelpCenter::slotIndexError()"; - - KMessageBox::sorry( this, i18n("Error executing indexing build command:\n%1", - str ) ); - - if ( mProgressDialog ) { - mProgressDialog->appendLog( "" + str + "" ); - } - - advanceProgress(); -} - -void KCMHelpCenter::advanceProgress() -{ - if ( mProgressDialog && mProgressDialog->isVisible() ) { - mProgressDialog->advanceProgress(); - mCurrentEntry++; - if ( mCurrentEntry != mIndexQueue.constEnd() ) { - QString name = (*mCurrentEntry)->name(); - mProgressDialog->setLabelText( name ); - } - } -} - -void KCMHelpCenter::slotReceivedStdout() -{ - QByteArray text= mProcess->readAllStandardOutput(); - int pos = text.lastIndexOf( '\n' ); - if ( pos < 0 ) { - mStdOut.append( text ); - } else { - if ( mProgressDialog ) { - mProgressDialog->appendLog( mStdOut + text.left( pos ) ); - mStdOut = text.mid( pos + 1 ); - } - } -} - -void KCMHelpCenter::slotReceivedStderr( ) -{ - QByteArray text = mProcess->readAllStandardError(); - int pos = text.lastIndexOf( '\n' ); - if ( pos < 0 ) { - mStdErr.append( text ); - } else { - if ( mProgressDialog ) { - mProgressDialog->appendLog( QLatin1String("") + mStdErr + text.left( pos ) + - QLatin1String("")); - mStdErr = text.mid( pos + 1 ); - } - } -} - -void KCMHelpCenter::slotOk() -{ - if ( buildIndex() ) { - if ( !mProcess ) accept(); - else mIsClosing = true; - } -} - -void KCMHelpCenter::slotProgressClosed() -{ - kDebug() << "KCMHelpCenter::slotProgressClosed()"; - - if ( mIsClosing ) accept(); -} - -void KCMHelpCenter::showIndexDirDialog() -{ - IndexDirDialog dlg( this ); - if ( dlg.exec() == QDialog::Accepted ) { - load(); - } -} - -void KCMHelpCenter::checkSelection() -{ - int count = 0; - - QTreeWidgetItemIterator it( mListView ); - while ( (*it) != 0 ) { - ScopeItem *item = static_cast( (*it) ); - if ( item->isOn() ) { - ++count; - } - ++it; - } - - enableButtonOk( count != 0 ); -} - -#include "kcmhelpcenter.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/kcmhelpcenter.desktop b/khelpcenter/kcmhelpcenter.desktop deleted file mode 100644 index 3de4c05a..00000000 --- a/khelpcenter/kcmhelpcenter.desktop +++ /dev/null @@ -1,253 +0,0 @@ -[Desktop Entry] -Type=Application -Exec=kcmshell4 kcmhelpcenter -Icon=help - -X-KDE-SubstituteUID=true -X-KDE-Library=helpcenter -X-KDE-RootOnly=true -X-KDE-HasReadOnlyMode=true -X-KDE-ParentApp=kcontrol - -Name=Help Index -Name[af]=Hulp Indeks -Name[ar]=فهرس المساعدة -Name[ast]=Índiz d'ayuda -Name[be]=Індэкс дапамогі -Name[be@latin]=Źmiest dapamohi -Name[bg]=Помощна информация -Name[bn]=সাহায্য সূচি -Name[bn_IN]=সহায়িকার ইন্ডেক্স -Name[br]=Meneger ar skoazell -Name[bs]=Indeks pomoći -Name[ca]=Índex d'ajuda -Name[ca@valencia]=Índex d'ajuda -Name[cs]=Rejstřík nápovědy -Name[csb]=Indeks pòmòcë -Name[cy]=Mynegai Cymorth -Name[da]=Hjælpeindeks -Name[de]=Hilfeindex -Name[el]=Ευρετήριο βοήθειας -Name[en_GB]=Help Index -Name[eo]=Helpa indekso -Name[es]=Índice de ayuda -Name[et]=Abifailide indeks -Name[eu]=Laguntza-indizea -Name[fa]=فهرست کمک -Name[fi]=Opasteen hakemisto -Name[fr]=Index d'aide -Name[fy]=Help-yndeks -Name[ga]=Innéacs na Cabhrach -Name[gl]=Índice da axuda -Name[gu]=મદદ અનુક્રમણિકા -Name[he]=אינדקס עזרה -Name[hi]=मदद सूची -Name[hne]=मदद सूची -Name[hr]=Indeks pomoći -Name[hsb]=Indeks za pomoc -Name[hu]=Dokumentációkeresési index -Name[ia]=Indice de adjuta -Name[id]=Indeks Bantuan -Name[is]=Hjálparyfirlit -Name[it]=Indice della guida -Name[ja]=ヘルプインデックス -Name[ka]=დახმარების ინდექსი -Name[kk]=Анықтама индексі -Name[km]=លិបិក្រម​ជំនួយ -Name[kn]=ಸಹಾಯ ಅನುಕ್ರಮ (ಇಂಡೆಕ್ಸ್) -Name[ko]=도움말 찾아보기 -Name[ku]=Pêrista Alîkariyê -Name[lt]=Pagalbos rodyklė -Name[lv]=Palīdzības indekss -Name[mai]=मद्दति सूची -Name[mk]=Индекс за помош -Name[ml]=സഹായത്തിനുളള സൂചിക -Name[mr]=मदत सूची -Name[ms]=Indeks Bantuan -Name[nb]=Hjelpindeks -Name[nds]=Hülpindex -Name[ne]=मद्दत अनुक्रमणिका -Name[nl]=Documentatie-index -Name[nn]=Hjelpindeks -Name[or]=ସହାୟତା ଅନୁକ୍ରମଣିକା -Name[pa]=ਮੱਦਦ ਇੰਡੈਕਸ -Name[pl]=Indeks pomocy -Name[pt]=Índice da Ajuda -Name[pt_BR]=Índice da ajuda -Name[ro]=Index ajutor -Name[ru]=Индекс справки -Name[se]=Veahkkeindeaksa -Name[si]=උදව් පටුන -Name[sk]=Index pomocníka -Name[sl]=Seznam pomoči -Name[sr]=Индекс помоћи -Name[sr@ijekavian]=Индекс помоћи -Name[sr@ijekavianlatin]=Indeks pomoći -Name[sr@latin]=Indeks pomoći -Name[sv]=Hjälpindex -Name[ta]=உதவி பொருளடக்கம் -Name[te]=సహాయ సూచిక -Name[tg]=Индекси роҳнамо -Name[th]=ดัชนีเอกสารช่วยเหลือ -Name[tr]=Yardım İçeriği -Name[ug]=ياردەم ئىندېكسى -Name[uk]=Індекс довідки -Name[uz]=Yordam indeksi -Name[uz@cyrillic]=Ёрдам индекси -Name[vi]=Chỉ mục Trợ giúp -Name[wa]=Indecse di l' aidance -Name[xh]=Uncedo Lwesalathisi -Name[x-test]=xxHelp Indexxx -Name[zh_CN]=帮助索引 -Name[zh_TW]=說明索引 - -Comment=Help center search index configuration and generation -Comment[af]=Hulp sentrum soektog indeks opstelling en genereering -Comment[ar]=توليد وضبط فهرس بحث مركز المساعدة -Comment[ast]=Configuración y xeneración del índiz de gueta del centru d'ayuda -Comment[be]=Настаўленне і стварэнне індэксу для пошуку ў дакументацыі -Comment[be@latin]=Naładžvańnie j stvareńnie źmiestu dla pošuku ŭ centry dapamohi -Comment[bg]=Създаване на индекс за ускоряване на търсенето в помощната информация -Comment[bn]=সহায়িকাসন্ধানসূচি কনফিগারেশন এবং সৃষ্টি -Comment[bn_IN]=সহায়িকা অনুসন্ধানের ইন্ডেক্স কনফিগারেশন ও নির্মাণ প্রণালী -Comment[bs]=Postava i stvaranje indeksa za pretragu Centra za pomoć -Comment[ca]=Configuració i generació de l'índex de cerca per al Centre d'ajuda -Comment[ca@valencia]=Configuració i generació de l'índex de cerca per al Centre d'ajuda -Comment[cs]=Generování a konfigurace rejstříku nápovědy -Comment[csb]=Kònfigùracëje ë generowanié indeksu pòmòcë -Comment[cy]=Ffurfweddu a chynhyrchu mynegai chwilio y Ganolfan Cymorth -Comment[da]=Hjælpecenterets indstilling og generering af søgeindeks -Comment[de]=Stichwortverzeichnis für das Hilfezentrum einrichten und erstellen -Comment[el]=Διαμόρφωση και δημιουργία του ευρετηρίου αναζήτησης του Κέντρου βοήθειας -Comment[en_GB]=Help centre search index configuration and generation -Comment[es]=Configuración y generación del índice de búsqueda del centro de ayuda -Comment[et]=Abifailide otsingu indeksi loomine ja seadistamine -Comment[eu]=Laguntza-zentroaren bilaketa-indizea konfiguratzea eta sortzea -Comment[fa]=تولید و پیکربندی فهرست جستجوی مرکز کمک -Comment[fi]=Opastekeskuksen hakuindeksin asetukset ja tuottaminen -Comment[fr]=Configuration et génération de l'index de recherche du centre d'aide -Comment[fy]=Sykjeyndeks fan it helpsintrum ynstellen en generearen -Comment[ga]=Cumraíocht agus giniúint an innéacs cuardaigh don lárionad cabhrach -Comment[gl]=Configuración e xeración do índice de busca do centro de axuda -Comment[gu]=મદદ કેન્દ્ર શોધ અનુક્રમણિકા રૂપરેખાંકન અને બનાવટ -Comment[he]=שינוי הגדרות ויצירת אינדקס החיפוש של מרכז העזרה -Comment[hi]=मदद केंद्र खोज तालिका कॉन्फ़िगरेशन तथा ज़ेनरेशन -Comment[hne]=मदद केंद्र खोज टेबल कान्फिगरेसन अउ जेनरेसन -Comment[hr]=Konfiguriranje i generiranje indeksa za pretraživanje pomoći -Comment[hsb]=Připrawjenje a stworjenje pytanskeho indeksa za pomhanišćo -Comment[hu]=A dokumentáció keresési indexének beállításai -Comment[ia]=Configuration e generation del indice de cerca pro le centro de adjuta -Comment[id]=Konfigurasi dan pembuatan indeks pencarian pusat bantuan -Comment[is]=Uppsettning og sköpun af leitaryfirliti fyrir hjálparmiðstöðina -Comment[it]=Configurazione e generazione dell'indice di ricerca della guida -Comment[ja]=ヘルプセンターの検索インデックスの設定と生成 -Comment[ka]=KDE-ს დახმარების სისტემაში ინდექსების კონფიგურაცია -Comment[kk]=Анықтамадан табу индексін баптау -Comment[km]=ការ​កំណត់​រចនាសម្ព័ន្ធ និង​ការ​បង្កើត​លិបិក្រម​ស្វែងរក សម្រាប់​មជ្ឈមណ្ឌល​ជំនួយ -Comment[kn]=ಸಹಾಯ ಕೇಂದ್ರ ಶೋಧನಾ ಅನುಕ್ರಮ (ಇಂಡೆಕ್ಸ್) ಸಂರಚನೆ ಮತ್ತು ಉತ್ಪತ್ತಿ -Comment[ko]=도움말 찾아보기 설정 및 생성 -Comment[ku]=Hilberîn û veavakirina îndeksa lêgerînê a navenda alîkariyê -Comment[lt]=Pagalbos centro indekso konfigūravimas ir generavimas -Comment[lv]=Palīdzības centra meklēšanas indeksa konfigurācija un ģenerācija -Comment[mai]=मद्दति केंद्र खोज तालिका कान्फिगरेशन आओर जेनरेशन -Comment[mk]=Конфигурирање и генерирање на индексот на Центарот за Помош -Comment[ml]=സഹായകേന്ദ്രത്തിലെ തെരയാനുള്ള സൂചികയുടെ ക്രമീകരണവും ഉത്പാദനവും -Comment[mr]=मदत केंद्र शोध तालिका संयोजना व जेनरेशन -Comment[nb]=Tilpass søkeindeksen og legg den til i hjelpesenteret -Comment[nds]=Söökindex för't Hülpzentrum inrichten un maken laten -Comment[ne]=मद्दत केन्द्र खोजी अनुक्रमणिका कन्फिगरेसन र सिर्जना -Comment[nl]=Zoekindex van het documentatiecentrum instellen en genereren -Comment[nn]=Oppsett og generering av søkjeindeks for hjelpesenteret -Comment[or]=ସହାୟତା କେନ୍ଦ୍ର ଅନୁକ୍ରମଣିକା ସଂରଚନା ଏବଂ ସୃଷ୍ଟି -Comment[pa]=ਮੱਦਦ ਸੈਂਟਰ ਖੋਜ ਇੰਡੈਕਸ ਸੰਰਚਨਾ ਅਤੇ ਨਿਰਮਾਣ -Comment[pl]=Ustawienia i tworzenie spisu treści pomocy -Comment[pt]=Configuração e geração do índice de pesquisa do centro de ajuda -Comment[pt_BR]=Configuração e geração do índice de busca do centro de ajuda -Comment[ro]=Generează și configurează indexul de căutare pentru Centrul de Ajutor -Comment[ru]=Настройка индекса справочной системы KDE -Comment[se]=Veahkkeguovddáža ohcanindeavssa heiveheapmi ja ráhkadeapmi -Comment[si]=උදව් මධ්‍යස්ථාන සූචිය සැකසීම හා ජනනය -Comment[sk]=Nastavenie a generovanie indexu pre pomocníka -Comment[sl]=Nastavitve in ustvarjanje iskalnega kazala za Središče za pomoč -Comment[sr]=Постава и стварање индекса за претрагу Центра за помоћ -Comment[sr@ijekavian]=Постава и стварање индекса за претрагу Центра за помоћ -Comment[sr@ijekavianlatin]=Postava i stvaranje indeksa za pretragu Centra za pomoć -Comment[sr@latin]=Postava i stvaranje indeksa za pretragu Centra za pomoć -Comment[sv]=Skapa och ställ in sökindex för Hjälpcentralen -Comment[ta]=உதவி மையத்தை தேடும் பொருளடக்கம் வடிவமைத்தல் மற்றும் உருவாக்கல் -Comment[te]=సహాయ కేంద్ర అన్వెషణ సూచి అమరిక మరయూ తయారుచెయుట -Comment[tg]=Маркази роҳнамои ҷустуҷӯи индекси танзимот ва эҷодкорӣ -Comment[th]=การปรับแต่งและสร้างดัชนีสำหรับค้นหาของศูนย์ช่วยเหลือ -Comment[tr]=Yardım merkezi dizininin yapılandırılması ve oluşturulması -Comment[ug]=ياردەم مەركىزىنىڭ ئىزدەش ئىندېكس سەپلىمىسى ۋە ھاسىل قىلىش -Comment[uk]=Створення та налаштування індексу пошуку Центру довідки -Comment[uz]=Yordam markazining qidiruv indeksini yaratish va moslash -Comment[uz@cyrillic]=Ёрдам марказининг қидирув индексини яратиш ва мослаш -Comment[vi]=Cấu hình và tạo ra chỉ mục tìm kiếm của trung tâm trợ giúp -Comment[wa]=Fijhaedje eyet apontiaedje di l' indecse di cweraedje do cinte d' aidance -Comment[xh]=Uqwalaselo lophendlo loncedo osembindi nolwenziwo -Comment[x-test]=xxHelp center search index configuration and generationxx -Comment[zh_CN]=帮助中心搜索索引配置和生成 -Comment[zh_TW]=求助中心搜尋索引的組態與產生 - -X-KDE-Keywords=khelpcenter,help,index,search -X-KDE-Keywords[ar]=مركز مساعدة كدي,مساعدة,فهرس,بحث -X-KDE-Keywords[bg]=khelpcenter,help,index,search,помощ,индекс,търсене -X-KDE-Keywords[bn]=khelpcenter,help,index,search -X-KDE-Keywords[bs]=khelpcenter,help,index,search,pomoć,pretraga,indeks -X-KDE-Keywords[ca]=khelpcenter,ajuda,índex,cerca -X-KDE-Keywords[ca@valencia]=khelpcenter,ajuda,índex,cerca -X-KDE-Keywords[cs]=khelpcenter,help,index,hledat -X-KDE-Keywords[da]=khelpcenter,hjælp,indeks,søg -X-KDE-Keywords[de]=Hilfezentrum,Index,Stichwortverzeichnis,Suche -X-KDE-Keywords[el]=khelpcenter,βοήθεια,ευρετήριο,αναζήτηση -X-KDE-Keywords[en_GB]=khelpcenter,help,index,search -X-KDE-Keywords[eo]=khelpcenter,helpo,indekso,serĉo -X-KDE-Keywords[es]=khelpcenter,ayuda,índice,buscar -X-KDE-Keywords[et]=khelpcenter,abi,indeks,otsing,KDE abikeskus,abikeskus -X-KDE-Keywords[eu]=khelpcenter,laguntza,indizea,bilaketa -X-KDE-Keywords[fa]=khelpcenter,help,index,search -X-KDE-Keywords[fi]=khelpcenter,ohje,opaste,indeksi,hakemisto,haku -X-KDE-Keywords[fr]=khelpcenter, aide, index, recherche -X-KDE-Keywords[ga]=khelpcenter,cabhair,innéacs,cuardach -X-KDE-Keywords[gl]=khelpcenter,axuda,índice,buscar -X-KDE-Keywords[gu]=khelpcenter,મદદ,અનુક્રમ,શોધ -X-KDE-Keywords[hi]=khelpcenter, मदद, सूचकांक, खोज -X-KDE-Keywords[hu]=khelpcenter,súgó,index,keresés -X-KDE-Keywords[ia]=khelpcenter,adjuta,indice,cerca -X-KDE-Keywords[id]=khelpcenter,bantuan,indeks,cari -X-KDE-Keywords[is]=khelpcenter,hjálp,yfirlit,leit -X-KDE-Keywords[it]=khelpcenter,aiuto,indice,ricerca -X-KDE-Keywords[ja]=khelpcenter,help,index,search -X-KDE-Keywords[kk]=khelpcenter,help,index,search -X-KDE-Keywords[km]=khelpcenter,help,index,search -X-KDE-Keywords[ko]=khelpcenter,help,index,search,도움말,인덱스,검색 -X-KDE-Keywords[lv]=khelpcenter,palīdzība,indekss,meklēšana -X-KDE-Keywords[mr]=khelpcenter, मदत, अनुक्रमणिका, शोध -X-KDE-Keywords[nb]=khelpcenter,hjelp,index,søk -X-KDE-Keywords[nds]=khelpcenter,Hülp,Index,Söök -X-KDE-Keywords[nl]=khelpcenter,help,index,zoeken -X-KDE-Keywords[nn]=khelpcenter,hjelp,indeks,stikkord,søk -X-KDE-Keywords[pa]=khelpcenter,ਮੱਦਦ,ਸਹਾਇਤਾ,ਇੰਡੈਕਸ,ਖੋਜ -X-KDE-Keywords[pl]=centrum pomocy,pomoc,indeks,znajdywanie,wyszukiwanie -X-KDE-Keywords[pt]=khelpcenter,ajuda,índice,pesquisa -X-KDE-Keywords[pt_BR]=khelpcenter,ajuda,índice,pesquisa -X-KDE-Keywords[ro]=khelpcenter,centru,ajutor,cuprins,căutare -X-KDE-Keywords[ru]=khelpcenter,help,index,search,помощь,справка,индекс,поиск -X-KDE-Keywords[sk]=khelpcenter,help,index,hľadanie -X-KDE-Keywords[sl]=khelpcenter,pomoč,kazalo,iskanje -X-KDE-Keywords[sr]=khelpcenter,help,index,search,К‑центар-помоћи,помоћ,индекс,претрага,тражење -X-KDE-Keywords[sr@ijekavian]=khelpcenter,help,index,search,К‑центар-помоћи,помоћ,индекс,претрага,тражење -X-KDE-Keywords[sr@ijekavianlatin]=khelpcenter,help,index,search,K‑centar-pomoći,pomoć,indeks,pretraga,traženje -X-KDE-Keywords[sr@latin]=khelpcenter,help,index,search,K‑centar-pomoći,pomoć,indeks,pretraga,traženje -X-KDE-Keywords[sv]=Hjälpcentralen,hjälp,index,sök -X-KDE-Keywords[tg]=khelpcenter,кумак,индекс,ҷустуҷӯ -X-KDE-Keywords[tr]=khelpcenter,yardım,dizin,arama -X-KDE-Keywords[ug]=khelpcenter، ياردەم، ئىندېكس، ئىزدەش -X-KDE-Keywords[uk]=khelpcenter;help;index;search;довідка;центр;покажчик;індекс;пошук;допомога -X-KDE-Keywords[vi]=trung tâm trợ giúp KDE,trợ giúp,chỉ mục,tìm kiếm,khelpcenter,help,index,search -X-KDE-Keywords[wa]=khelpcenter,kcinte d' aidance,indecse,cweri,cweraedje,trover,cachî,cachî après -X-KDE-Keywords[x-test]=xxkhelpcenter,help,index,searchxx -X-KDE-Keywords[zh_CN]=khelpcenter,help,index,search,帮助搜索,索引 -X-KDE-Keywords[zh_TW]=khelpcenter,help,index,search -Categories=Qt;KDE;X-KDE-settings-system; diff --git a/khelpcenter/kcmhelpcenter.h b/khelpcenter/kcmhelpcenter.h deleted file mode 100644 index ccbeb8f5..00000000 --- a/khelpcenter/kcmhelpcenter.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - This file is part of KHelpcenter. - - Copyright (C) 2002 Cornelius Schumacher - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef KHC_KCMHELPCENTER_H -#define KHC_KCMHELPCENTER_H - -#include -#include -#include - -#include "scopeitem.h" - -class QPushButton; -class QProgressBar; -class QTextEdit; -class QLabel; - -class KAboutData; -class KTemporaryFile; -class KUrlRequester; -class QTreeWidget; - -namespace KHC { -class HtmlSearchConfig; -class DocEntry; -class SearchEngine; -} - -class IndexDirDialog : public KDialog -{ - Q_OBJECT - public: - IndexDirDialog( QWidget *parent ); - - protected Q_SLOTS: - void slotOk(); - void slotUrlChanged( const QString &_url); - private: - KUrlRequester *mIndexUrlRequester; -}; - -class IndexProgressDialog : public KDialog -{ - Q_OBJECT - public: - IndexProgressDialog( QWidget *parent ); - ~IndexProgressDialog(); - - void setTotalSteps( int ); - void advanceProgress(); - void setLabelText( const QString & ); - void setMinimumLabelWidth( int width ); - void setFinished( bool ); - - void appendLog( const QString &text ); - - Q_SIGNALS: - void closed(); - void cancelled(); - - protected: - void hideDetails(); - - protected Q_SLOTS: - void slotEnd(); - void toggleDetails(); - - private: - QLabel *mLabel; - QProgressBar *mProgressBar; - QLabel *mLogLabel; - QTextEdit *mLogView; - - bool mFinished; -}; - -class KCMHelpCenter : public KDialog -{ - Q_OBJECT - public: - explicit KCMHelpCenter( KHC::SearchEngine *, QWidget *parent = 0, - const char *name = 0 ); - ~KCMHelpCenter(); - - void load(); - bool save(); - void defaults(); - - public Q_SLOTS: - - Q_SIGNALS: - void searchIndexUpdated(); - public Q_SLOTS: - void slotIndexError( const QString & ); - void slotIndexProgress(); - protected Q_SLOTS: - bool buildIndex(); - void cancelBuildIndex(); - void slotIndexFinished( int exitCode, QProcess::ExitStatus exitStatus ); - void slotReceivedStdout(); - void slotReceivedStderr(); - void slotProgressClosed(); - - void slotOk(); - - void showIndexDirDialog(); - - void checkSelection(); - - protected: - void setupMainWidget( QWidget *parent ); - void updateStatus(); - void startIndexProcess(); - - void deleteProcess(); - void deleteCmdFile(); - - void advanceProgress(); - - private: - KHC::SearchEngine *mEngine; - - QTreeWidget *mListView; - QLabel *mIndexDirLabel; - QPushButton *mBuildButton; - IndexProgressDialog *mProgressDialog; - - QList mIndexQueue; - QList::ConstIterator mCurrentEntry; - - KSharedConfigPtr mConfig; - - KAboutData *mAboutData; - - KHC::HtmlSearchConfig *mHtmlSearchTab; - QWidget *mScopeTab; - - KTemporaryFile *mCmdFile; - - KProcess *mProcess; - - bool mIsClosing; - - QByteArray mStdOut; - QByteArray mStdErr; - - bool mRunAsRoot; -}; - -#endif //KHC_KCMHELPCENTER_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/khc_indexbuilder.cpp b/khelpcenter/khc_indexbuilder.cpp deleted file mode 100644 index 04a55006..00000000 --- a/khelpcenter/khc_indexbuilder.cpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - This file is part of the KDE Help Center - - Copyright (c) 2003 Cornelius Schumacher - - 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 "khc_indexbuilder.h" - -#include "version.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -using namespace KHC; - -IndexBuilder::IndexBuilder(const QString& cmdFile) -{ - m_cmdFile = cmdFile; - kDebug(1402) << "IndexBuilder()"; -} - -void IndexBuilder::buildIndices() -{ - QFile f( m_cmdFile ); - if ( !f.open( QIODevice::ReadOnly ) ) { - kError() << "Unable to open file '" << m_cmdFile << "'" << endl; - exit( 1 ); - } - kDebug(1402) << "Opened file '" << m_cmdFile << "'"; - QTextStream ts( &f ); - QString line = ts.readLine(); - while ( !line.isNull() ) { - kDebug(1402) << "LINE: " << line; - mCmdQueue.append( line ); - line = ts.readLine(); - } - - processCmdQueue(); -} - -void IndexBuilder::processCmdQueue() -{ - kDebug(1402) << "IndexBuilder::processCmdQueue()"; - - QStringList::Iterator it = mCmdQueue.begin(); - - if ( it == mCmdQueue.end() ) { - quit(); - return; - } - - QString cmd = *it; - - kDebug(1402) << "PROCESS: " << cmd; - - KProcess *proc = new KProcess; - - *proc << KShell::splitArgs(cmd); - - connect( proc, SIGNAL( finished( int, QProcess::ExitStatus) ), - SLOT( slotProcessExited( int, QProcess::ExitStatus) ) ); - - mCmdQueue.erase( it ); - - proc->start(); - - if ( !proc->waitForStarted() ) { - sendErrorSignal( i18n("Unable to start command '%1'.", cmd ) ); - processCmdQueue(); - delete proc; - } -} - -void IndexBuilder::slotProcessExited( int exitCode, QProcess::ExitStatus exitStatus ) -{ - KProcess *proc = static_cast(sender()); - - if ( exitStatus != QProcess::NormalExit ) { - kError(1402) << "Process failed" << endl; - kError(1402) << "stdout output:" << proc->readAllStandardOutput(); - kError(1402) << "stderr output:" << proc->readAllStandardError(); - } - else if (exitCode != 0 ) { - kError(1402) << "running" << proc->program() << "failed with exitCode" << exitCode; - kError(1402) << "stdout output:" << proc->readAllStandardOutput(); - kError(1402) << "stderr output:" << proc->readAllStandardError(); - } - delete proc; - - sendProgressSignal(); - - processCmdQueue(); -} - -void IndexBuilder::sendErrorSignal( const QString &error ) -{ - kDebug(1402) << "IndexBuilder::sendErrorSignal()"; - QDBusMessage message = - QDBusMessage::createSignal("/kcmhelpcenter", "org.kde.kcmhelpcenter", "buildIndexError"); - message <quit(); -} - - -int main( int argc, char **argv ) -{ - KAboutData aboutData( "khc_indexbuilder", 0, - ki18n("KHelpCenter Index Builder"), - HELPCENTER_VERSION, - ki18n("The KDE Help Center"), - KAboutData::License_GPL, - ki18n("(c) 2003, The KHelpCenter developers") ); - - aboutData.addAuthor( ki18n("Cornelius Schumacher"), KLocalizedString(), "schumacher@kde.org" ); - - KCmdLineArgs::init( argc, argv, &aboutData ); - - KCmdLineOptions options; - options.add("+cmdfile", ki18n("Document to be indexed")); - options.add("+indexdir", ki18n("Index directory")); - KCmdLineArgs::addCmdLineOptions( options ); - - // Note: no KComponentData seems necessary - QCoreApplication app( KCmdLineArgs::qtArgc(), KCmdLineArgs::qtArgv() ); - - KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); - - if ( args->count() != 2 ) { - kDebug(1402) << "Wrong number of arguments."; - return 1; - } - - QString cmdFile = args->arg( 0 ); - QString indexDir = args->arg( 1 ); - - kDebug(1402) << "cmdFile: " << cmdFile; - kDebug(1402) << "indexDir: " << indexDir; - - QFile file( indexDir + "/testaccess" ); - if ( !file.open( QIODevice::WriteOnly ) || !file.putChar( ' ' ) ) { - kDebug(1402) << "access denied"; - return 2; - } else { - kDebug(1402) << "can access"; - file.remove(); - } - - IndexBuilder builder(cmdFile); - - QTimer::singleShot(0, &builder, SLOT(buildIndices())); - - return app.exec(); -} - -#include "khc_indexbuilder.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/khc_indexbuilder.h b/khelpcenter/khc_indexbuilder.h deleted file mode 100644 index 0b6de7fb..00000000 --- a/khelpcenter/khc_indexbuilder.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2003 Cornelius Schumacher - * - * 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 KHC_INDEXBUILDER_H -#define KHC_INDEXBUILDER_H - -#include -#include - -#include -#include - -namespace KHC { - -class IndexBuilder : public QObject -{ - Q_OBJECT - public: - IndexBuilder(const QString& cmdFile); - - void sendProgressSignal(); - void sendErrorSignal( const QString &error ); - void quit(); - - - void processCmdQueue(); - - protected Q_SLOTS: - void buildIndices(); - void slotProcessExited( int, QProcess::ExitStatus ); - - private: - QString m_cmdFile; - QTimer mTimer; - QStringList mCmdQueue; -}; - -} - -#endif //KHC_INDEXBUILDER_H - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/khelpcenter.desktop b/khelpcenter/khelpcenter.desktop deleted file mode 100644 index 2c88e525..00000000 --- a/khelpcenter/khelpcenter.desktop +++ /dev/null @@ -1,190 +0,0 @@ -[Desktop Entry] -Name=KHelpCenter -Name[af]=Khulpsentrum -Name[ar]=مركز مساعدة كدي -Name[ast]=KHelpcenter -Name[be]=Цэнтр дапамогі KDE -Name[be@latin]=KHelpCenter -Name[bg]=Помощен център -Name[bn]=KHelpCenter -Name[bn_IN]=KHelpCenter -Name[br]=KHelpCenter -Name[bs]=K‑centar-pomoći -Name[ca]=KHelpCenter -Name[ca@valencia]=KHelpCenter -Name[cs]=Centrum nápovědy -Name[csb]=Centróm Pòmòcë -Name[cy]=KCanolfanCymorth -Name[da]=KHjælpecenter -Name[de]=KDE-Hilfezentrum -Name[el]=KHelpCenter -Name[en_GB]=KHelpCentre -Name[eo]=KHelpCenter -Name[es]=KHelpcenter -Name[et]=KDE abikeskus -Name[eu]=KHelpCenter -Name[fa]=KHelpCenter -Name[fi]=KHelpCenter -Name[fr]=Centre d'aide de KDE -Name[fy]=KHelpCenter -Name[ga]=KHelpCenter -Name[gl]=Centro de axuda de KDE -Name[gu]=KHelpCenter -Name[he]=KHelpCenter -Name[hi]=के-हेल्प-सेंटर -Name[hne]=के-हेल्प-सेंटर -Name[hr]=KHelpCenter -Name[hsb]=KHelpCenter (pomhanišćo) -Name[hu]=KHelpCenter -Name[ia]=KHelpCenter -Name[id]=KHelpCenter -Name[is]=Hjálparkerfi KDE -Name[it]=KHelpCenter -Name[ja]=K ヘルプセンター -Name[ka]=KHelpCenter -Name[kk]=KHelpCenter -Name[km]=KHelpCenter -Name[kn]=ಕೆಹೆಲ್ಪ್ ಸೆಂಟರ್ -Name[ko]=KHelpCenter -Name[ku]=KHelpCenter -Name[lt]=KHelpCenter -Name[lv]=KHelpCenter -Name[mai]=के-हेल्प-सेंटर -Name[mk]=KHelpCenter -Name[ml]=സഹായകേന്ദ്രം -Name[mr]=के-हेल्प-सेंटर -Name[ms]=KHelpCenter -Name[nb]=KHelpCenter -Name[nds]=KDE-Hülpzentrum -Name[ne]=केडीई मद्दत केन्द्र -Name[nl]=KHelpCenter -Name[nn]=KHelpCenter -Name[oc]=KHelpCenter -Name[or]=Kସହାୟତା କେନ୍ଦ୍ର -Name[pa]=ਕੇ-ਮੱਦਦਸੈਂਟਰ -Name[pl]=Centrum Pomocy -Name[pt]=KHelpCenter -Name[pt_BR]=KHelpCenter -Name[ro]=Centrul de ajutor KDE -Name[ru]=Центр справки -Name[se]=KHelpCenter -Name[si]=KHelpCenter -Name[sk]=KHelpCenter -Name[sl]=KHelpCenter -Name[sr]=К‑центар-помоћи -Name[sr@ijekavian]=К‑центар-помоћи -Name[sr@ijekavianlatin]=K‑centar-pomoći -Name[sr@latin]=K‑centar-pomoći -Name[sv]=Hjälpcentralen -Name[ta]=Kஉதவிமையம் -Name[te]=కెసహాయ కేంద్రం -Name[tg]=Маркази роҳнамои KDE -Name[th]=ศูนย์ช่วยเหลือ-K -Name[tr]=KHelpCenter -Name[ug]=KHelpCenter -Name[uk]=KHelpCenter -Name[uz]=Yordam markazi -Name[uz@cyrillic]=Ёрдам маркази -Name[vi]=Trung tâm Trợ giúp KDE -Name[wa]=KCinte d' aidance -Name[xh]=KHelpCenter -Name[x-test]=xxKHelpCenterxx -Name[zh_CN]=KHelpcenter -Name[zh_TW]=KHelpCenter -Comment=The KDE Help Center -Comment[af]=Die Kde Hulp Sentrum -Comment[ar]=مركز كدي للمساعدة -Comment[ast]=El centru d'ayuda de KDE -Comment[be]=Цэнтр дапамогі KDE -Comment[be@latin]=Centar dapamohi KDE -Comment[bg]=Център за помощна информация -Comment[bn]=কে.ডি.ই. সাহায্য কেন্দ্র -Comment[bn_IN]=KDE সহায়তা কেন্দ্র -Comment[br]=Kreizenn sikour KDE -Comment[bs]=KDE‑ov centar za pomoć -Comment[ca]=El centre d'ajuda KDE -Comment[ca@valencia]=El centre d'ajuda KDE -Comment[cs]=Centrum nápovědy prostředí KDE -Comment[csb]=Centróm Pòmòcë KDE -Comment[cy]=Canolfan Cymorth KDE -Comment[da]=KDE's hjælpecenter -Comment[de]=Das KDE-Hilfezentrum -Comment[el]=Το κέντρο βοήθειας του KDE -Comment[en_GB]=The KDE Help Centre -Comment[eo]=La helpocentro de KDE -Comment[es]=Centro de ayuda de KDE -Comment[et]=KDE abikeskus -Comment[eu]=KDEren laguntza-zentroa -Comment[fa]=مرکز کمک کی‌دی‌ای -Comment[fi]=KDE:n ohjeet -Comment[fr]=Le centre d'aide de KDE -Comment[fy]=It KDE-dokumintaasjesintrum -Comment[ga]=Lárionad Cabhrach KDE -Comment[gl]=O centro de axuda de KDE -Comment[gu]=KDE મદદ કેન્દ્ર -Comment[he]=מרכז העזרה של KDE -Comment[hi]=केडीई मदद केंद्र -Comment[hne]=केडीई मदद केंद्र -Comment[hr]=KDE pomoć -Comment[hsb]=KDE pomhanišćo -Comment[hu]=KDE Súgó -Comment[ia]=Le centro de adjuta de KDE -Comment[id]=Pusat Bantuan KDE -Comment[is]=Hjálparkerfi KDE -Comment[it]=Guida di KDE -Comment[ja]=KDE ヘルプセンター -Comment[ka]=KDE-ს დახმარების ცენტრი -Comment[kk]=KDE анықтама орталығы -Comment[km]=មជ្ឈមណ្ឌល​ជំនួយ​របស់ KDE -Comment[kn]=ಕೆಡಿಇ ಯ ಸಹಾಯ ಕೇಂದ್ರ -Comment[ko]=KDE 도움말 센터 -Comment[ku]=Navenda Alîkariya KDE'yê -Comment[lt]=KDE pagalbos centras -Comment[lv]=KDE palīdzības centrs -Comment[mai]=केडीई मद्दति केंद्र -Comment[mk]=KDE Центарот за Помош -Comment[ml]=കെഡിഇ സഹായകേന്ദ്രം -Comment[mr]=केडीई मदत केंद्र -Comment[ms]=Pusat Bantuan KDE -Comment[nb]=KDE Hjelpesenter -Comment[nds]=Dat KDE-Hülpzentrum -Comment[ne]=केडीई मद्दत केन्द्र -Comment[nl]=Het KDE-documentatiecentrum -Comment[nn]=KDE-hjelpesenteret -Comment[or]=KDE ସହାୟତା କେନ୍ଦ୍ର -Comment[pa]=ਕੇਡੀਈ ਮੱਦਦ ਸੈਂਟਰ -Comment[pl]=Centrum Pomocy KDE -Comment[pt]=O Centro de Ajuda do KDE -Comment[pt_BR]=O centro de ajuda do KDE -Comment[ro]=Centrul de ajutor al KDE -Comment[ru]=Центр справки KDE -Comment[se]=KDE veahkkeguovddáš -Comment[si]=KDE උදව් මධ්‍යස්ථානය -Comment[sk]=Centrum pomoci KDE -Comment[sl]=Središče za pomoč v KDE -Comment[sr]=КДЕ‑ов центар за помоћ -Comment[sr@ijekavian]=КДЕ‑ов центар за помоћ -Comment[sr@ijekavianlatin]=KDE‑ov centar za pomoć -Comment[sr@latin]=KDE‑ov centar za pomoć -Comment[sv]=KDE:s hjälpcentral -Comment[ta]=KDE உதவி மையம் -Comment[te]=కెడిఈ సహాయ కేంద్రం -Comment[tg]=Маркази роҳнамои KDE -Comment[th]=ศูนย์ช่วยเหลือของ KDE -Comment[tr]=KDE Yardım Merkezi -Comment[ug]=ك د ئې(KDE) ياردەم مەركىزى -Comment[uk]=Центр довідки KDE -Comment[uz]=KDE yordam markazi -Comment[uz@cyrillic]=KDE ёрдам маркази -Comment[vi]=Trung tâm Trợ giúp KDE -Comment[wa]=Li cinte d' aidance di KDE -Comment[xh]=Umbindi woncedo lwe KDE -Comment[x-test]=xxThe KDE Help Centerxx -Comment[zh_CN]=KDE 帮助中心 -Comment[zh_TW]=KDE 求助中心 -Icon=help-browser -X-DocPath=khelpcenter/index.html -Type=Service -Terminal=false -Exec=khelpcenter %u -X-KDE-StartupNotify=true diff --git a/khelpcenter/khelpcenter.kcfg b/khelpcenter/khelpcenter.kcfg deleted file mode 100644 index 0ece51e1..00000000 --- a/khelpcenter/khelpcenter.kcfg +++ /dev/null @@ -1,36 +0,0 @@ - - - kstandarddirs.h - - - - - - Path to directory containing search indices. - KGlobal::dirs()->saveLocation("data", "khelpcenter/index/") - - - - 0 - - - 0 - - - - - - - - - - - - Content - - - - diff --git a/khelpcenter/khelpcenterui.rc b/khelpcenter/khelpcenterui.rc deleted file mode 100644 index 36ffe46e..00000000 --- a/khelpcenter/khelpcenterui.rc +++ /dev/null @@ -1,45 +0,0 @@ - - - - - &Edit - - - - - - - - &View - - - - - &Go - - - - - - - - - - - - - Main Toolbar - - - - - - - - - - - diff --git a/khelpcenter/mainwindow.cpp b/khelpcenter/mainwindow.cpp deleted file mode 100644 index c8d6d7ac..00000000 --- a/khelpcenter/mainwindow.cpp +++ /dev/null @@ -1,508 +0,0 @@ - /* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@kde.org) - * 2001 Stephan Kulow (coolo@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 "mainwindow.h" - -#include "history.h" -#include "view.h" -#include "searchengine.h" -#include "fontdialog.h" -#include "prefs.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -using namespace KHC; - -class LogDialog : public KDialog -{ - public: - LogDialog( QWidget *parent = 0 ) - : KDialog( parent ) - { - setCaption( i18n("Search Error Log") ); - setButtons( Ok ); - - QFrame *topFrame = new QFrame( this ); - setMainWidget( topFrame ); - - QBoxLayout *topLayout = new QVBoxLayout( topFrame ); - - mTextView = new QTextEdit( topFrame ); - mTextView->setReadOnly ( true ); - mTextView->setWordWrapMode( QTextOption::NoWrap ); - topLayout->addWidget( mTextView ); - - KConfigGroup cg = KGlobal::config()->group( "logdialog" ); - restoreDialogSize( cg ); - } - - ~LogDialog() - { - KConfigGroup cg = KGlobal::config()->group( "logdialog" ); - KDialog::saveDialogSize( cg ); - } - - void setLog( const QString &log ) - { - mTextView->setText( log ); - } - - private: - QTextEdit *mTextView; -}; - - -MainWindow::MainWindow() - : KXmlGuiWindow(0), - mLogDialog( 0 ) -{ - setObjectName( QLatin1String( "MainWindow" ) ); - - QDBusConnection::sessionBus().registerObject("/KHelpCenter", this, QDBusConnection::ExportScriptableSlots); - mSplitter = new QSplitter( this ); - - mDoc = new View( mSplitter, this, KHTMLPart::DefaultGUI, actionCollection() ); - connect( mDoc, SIGNAL( setWindowCaption( const QString & ) ), - SLOT( setCaption( const QString & ) ) ); - connect( mDoc, SIGNAL( setStatusBarText( const QString & ) ), - SLOT( statusBarMessage( const QString & ) ) ); - connect( mDoc, SIGNAL( onURL( const QString & ) ), - SLOT( statusBarMessage( const QString & ) ) ); - connect( mDoc, SIGNAL( started( KIO::Job * ) ), - SLOT( slotStarted( KIO::Job * ) ) ); - connect( mDoc, SIGNAL( completed() ), - SLOT( documentCompleted() ) ); - connect( mDoc, SIGNAL( searchResultCacheAvailable() ), - SLOT( enableLastSearchAction() ) ); - - connect( mDoc, SIGNAL( selectionChanged() ), - SLOT( enableCopyTextAction() ) ); - - statusBar()->insertItem(i18n("Preparing Index"), 0, 1); - statusBar()->setItemAlignment(0, Qt::AlignLeft | Qt::AlignVCenter); - - connect( mDoc->browserExtension(), - SIGNAL( openUrlRequest( const KUrl &, - const KParts::OpenUrlArguments &, const KParts::BrowserArguments & ) ), - SLOT( slotOpenURLRequest( const KUrl &, - const KParts::OpenUrlArguments &, const KParts::BrowserArguments & ) ) ); - - mNavigator = new Navigator( mDoc, mSplitter, "nav" ); - connect( mNavigator, SIGNAL( itemSelected( const QString & ) ), - SLOT( viewUrl( const QString & ) ) ); - connect( mNavigator, SIGNAL( glossSelected( const GlossaryEntry & ) ), - SLOT( slotGlossSelected( const GlossaryEntry & ) ) ); - - mSplitter->insertWidget(0, mNavigator); - mSplitter->setStretchFactor(mSplitter->indexOf(mNavigator), 0); - setCentralWidget( mSplitter ); - QList sizes; - sizes << 220 << 580; - mSplitter->setSizes(sizes); - - KSharedConfig::Ptr cfg = KGlobal::config(); - { - KConfigGroup configGroup( cfg, "General" ); - if ( configGroup.readEntry( "UseKonqSettings", true) ) { - KConfig konqCfg( "konquerorrc" ); - const_cast( mDoc->settings() )->init( &konqCfg ); - } - const int fontScaleFactor = configGroup.readEntry( "Font zoom factor", 100 ); - mDoc->setFontScaleFactor( fontScaleFactor ); - } - - setupActions(); - - foreach (QAction *act, mDoc->actionCollection()->actions()) - actionCollection()->addAction(act->objectName(), act); - - setupGUI(QSize(800, 600), ToolBar | Keys | StatusBar | Create); - setAutoSaveSettings(); - - History::self().installMenuBarHook( this ); - - connect( &History::self(), SIGNAL( goInternalUrl( const KUrl & ) ), - mNavigator, SLOT( openInternalUrl( const KUrl & ) ) ); - connect( &History::self(), SIGNAL( goUrl( const KUrl & ) ), - mNavigator, SLOT( selectItem( const KUrl & ) ) ); - - statusBarMessage(i18n("Ready")); - enableCopyTextAction(); - - readConfig(); -} - -MainWindow::~MainWindow() -{ - writeConfig(); -} - -void MainWindow::enableCopyTextAction() -{ - mCopyText->setEnabled( mDoc->hasSelection() ); -} - -void MainWindow::saveProperties( KConfigGroup &config ) -{ - kDebug(); - config.writePathEntry( "URL" , mDoc->baseURL().url() ); -} - -void MainWindow::readProperties( const KConfigGroup &config ) -{ - kDebug(); - mDoc->slotReload( KUrl( config.readPathEntry( "URL", QString() ) ) ); -} - -void MainWindow::readConfig() -{ - KConfigGroup config(KGlobal::config(), "MainWindowState"); - QList sizes = config.readEntry( "Splitter", QList() ); - if ( sizes.count() == 2 ) { - mSplitter->setSizes( sizes ); - } - - mNavigator->readConfig(); -} - -void MainWindow::writeConfig() -{ - KConfigGroup config(KGlobal::config(), "MainWindowState"); - config.writeEntry( "Splitter", mSplitter->sizes() ); - - mNavigator->writeConfig(); - - Prefs::self()->writeConfig(); -} - -void MainWindow::setupActions() -{ - actionCollection()->addAction( KStandardAction::Quit, this, SLOT( close() ) ); - actionCollection()->addAction( KStandardAction::Print, this, SLOT( print() ) ); - - KAction *prevPage = actionCollection()->addAction( "prevPage" ); - prevPage->setText( i18n( "Previous Page" ) ); - prevPage->setShortcut( Qt::CTRL+Qt::Key_PageUp ); - prevPage->setWhatsThis( i18n( "Moves to the previous page of the document" ) ); - connect( prevPage, SIGNAL( triggered() ), mDoc, SLOT( prevPage() ) ); - - KAction *nextPage = actionCollection()->addAction( "nextPage" ); - nextPage->setText( i18n( "Next Page" ) ); - nextPage->setShortcut( Qt::CTRL + Qt::Key_PageDown ); - nextPage->setWhatsThis( i18n( "Moves to the next page of the document" ) ); - connect( nextPage, SIGNAL( triggered() ), mDoc, SLOT( nextPage() ) ); - - QAction *home = KStandardAction::home( this, SLOT( slotShowHome() ), this ); - actionCollection()->addAction( home->objectName(), home ); - home->setText(i18n("Table of &Contents")); - home->setToolTip(i18n("Table of contents")); - home->setWhatsThis(i18n("Go back to the table of contents")); - - mCopyText = KStandardAction::copy( this, SLOT(slotCopySelectedText()), this ); - actionCollection()->addAction( "copy_text", mCopyText ); - - mLastSearchAction = actionCollection()->addAction( QLatin1String("lastsearch") ); - mLastSearchAction->setText( i18n("&Last Search Result") ); - mLastSearchAction->setEnabled( false ); - connect( mLastSearchAction, SIGNAL( triggered() ), this, SLOT( slotLastSearch() ) ); -/* - QAction *action = actionCollection()->addAction( QLatin1String("build_index") ); - action->setText( i18n("Build Search Index...") ); - connect( action, SIGNAL( triggered() ), mNavigator, SLOT( showIndexDialog() ) ); - - KConfigGroup debugGroup( KGlobal::config(), "Debug" ); - if ( debugGroup.readEntry( "SearchErrorLog", false) ) { - action = actionCollection()->addAction(QLatin1String("show_search_stderr")); - action->setText( i18n("Show Search Error Log") ); - connect( action, SIGNAL( triggered() ), this, SLOT( showSearchStderr() ) ); - } -*/ - History::self().setupActions( actionCollection() ); - - QAction *action = actionCollection()->addAction(QLatin1String("configure_fonts" )); - action->setText( i18n( "Configure Fonts..." ) ); - connect( action, SIGNAL( triggered() ), this, SLOT( slotConfigureFonts() ) ); - - action = actionCollection()->addAction(QLatin1String("incFontSizes")); - action->setText( i18n( "Increase Font Sizes" ) ); - action->setIcon( KIcon( QLatin1String("zoom-in") ) ); - connect( action, SIGNAL( triggered() ), this, SLOT( slotIncFontSizes() ) ); - - action = actionCollection()->addAction(QLatin1String("decFontSizes")); - action->setText( i18n( "Decrease Font Sizes" ) ); - action->setIcon( KIcon( QLatin1String("zoom-out") ) ); - connect( action, SIGNAL( triggered() ), this, SLOT( slotDecFontSizes() ) ); -} - -void MainWindow::slotCopySelectedText() -{ - mDoc->copySelectedText(); -} - -void MainWindow::print() -{ - mDoc->view()->print(); -} - -void MainWindow::slotStarted(KIO::Job *job) -{ - if (job) - connect(job, SIGNAL(infoMessage( KJob *, const QString &, const QString &)), - SLOT(slotInfoMessage(KJob *, const QString &))); - - History::self().updateActions(); -} - -void MainWindow::goInternalUrl( const KUrl &url ) -{ - mDoc->closeUrl(); - slotOpenURLRequest( url ); -} - -void MainWindow::slotOpenURLRequest( const KUrl &url, - const KParts::OpenUrlArguments &args, - const KParts::BrowserArguments &browserArgs ) -{ - kDebug( 1400 ) << url.url(); - - mNavigator->selectItem( url ); - viewUrl( url, args, browserArgs ); -} - -void MainWindow::viewUrl( const QString &url ) -{ - viewUrl( KUrl( url ) ); -} - -void MainWindow::viewUrl( const KUrl &url, const KParts::OpenUrlArguments &args, const KParts::BrowserArguments &browserArgs ) -{ - stop(); - - QString proto = url.protocol().toLower(); - - if ( proto == "khelpcenter" ) { - History::self().createEntry(); - mNavigator->openInternalUrl( url ); - return; - } - - bool own = false; - - if ( proto == QLatin1String("help") - || proto == QLatin1String("glossentry") - || proto == QLatin1String("about") - || proto == QLatin1String("man") - || proto == QLatin1String("info") - || proto == QLatin1String("cgi") - || proto == QLatin1String("ghelp")) - own = true; - else if ( url.isLocalFile() ) { - KMimeType::Ptr mime = KMimeType::findByPath( url.toLocalFile() ); - if ( mime->is("text/html") ) - own = true; - } - - if ( !own ) { - new KRun( url,this ); - return; - } - - History::self().createEntry(); - - mDoc->setArguments( args ); - mDoc->browserExtension()->setBrowserArguments( browserArgs ); - - if ( proto == QLatin1String("glossentry") ) { - QString decodedEntryId = QUrl::fromPercentEncoding( url.encodedPathAndQuery().toAscii() ); - slotGlossSelected( mNavigator->glossEntry( decodedEntryId ) ); - mNavigator->slotSelectGlossEntry( decodedEntryId ); - } else { - mDoc->openUrl( url ); - } -} - -void MainWindow::documentCompleted() -{ - kDebug(); - - History::self().updateCurrentEntry( mDoc ); - History::self().updateActions(); -} - -void MainWindow::slotInfoMessage(KJob *, const QString &m) -{ - statusBarMessage(m); -} - -void MainWindow::statusBarMessage(const QString &m) -{ - statusBar()->changeItem(m, 0); -} - -void MainWindow::openUrl( const QString &url ) -{ - openUrl( KUrl( url ) ); -} - -void MainWindow::openUrl( const QString &url, const QByteArray& startup_id ) -{ - KStartupInfo::setNewStartupId( this, startup_id ); - openUrl( KUrl( url ) ); -} - -void MainWindow::openUrl( const KUrl &url ) -{ - if ( url.isEmpty() ) slotShowHome(); - else { - mNavigator->selectItem( url ); - viewUrl( url ); - } -} - -void MainWindow::slotGlossSelected(const GlossaryEntry &entry) -{ - kDebug(); - - stop(); - History::self().createEntry(); - mDoc->begin( KUrl( "help:/khelpcenter/glossary" ) ); - mDoc->write( Glossary::entryToHtml( entry ) ); - mDoc->end(); -} - -void MainWindow::stop() -{ - kDebug(); - - mDoc->closeUrl(); - History::self().updateCurrentEntry( mDoc ); -} - -void MainWindow::showHome() -{ - slotShowHome(); -} - -void MainWindow::slotShowHome() -{ - viewUrl( mNavigator->homeURL() ); - mNavigator->clearSelection(); -} - -void MainWindow::lastSearch() -{ - slotLastSearch(); -} - -void MainWindow::slotLastSearch() -{ - mDoc->lastSearch(); -} - -void MainWindow::enableLastSearchAction() -{ - mLastSearchAction->setEnabled( true ); -} - -void MainWindow::showSearchStderr() -{ - QString log = mNavigator->searchEngine()->errorLog(); - - if ( !mLogDialog ) { - mLogDialog = new LogDialog( this ); - } - - mLogDialog->setLog( log ); - mLogDialog->show(); - mLogDialog->raise(); -} - -void MainWindow::slotIncFontSizes() -{ - mDoc->slotIncFontSizes(); - updateFontScaleActions(); -} - -void MainWindow::slotDecFontSizes() -{ - mDoc->slotDecFontSizes(); - updateFontScaleActions(); -} - -void MainWindow::updateFontScaleActions() -{ - actionCollection()->action( QLatin1String("incFontSizes") )->setEnabled( mDoc->fontScaleFactor() + mDoc->fontScaleStepping() <= 300 ); - actionCollection()->action( QLatin1String("decFontSizes") )->setEnabled( mDoc->fontScaleFactor() - mDoc->fontScaleStepping() >= 20 ); - - KConfigGroup configGroup( KGlobal::config(), QLatin1String("General") ); - configGroup.writeEntry( QLatin1String("Font zoom factor"), mDoc->fontScaleFactor() ); - configGroup.sync(); -} - -void MainWindow::slotConfigureFonts() -{ - FontDialog dlg( this ); - if ( dlg.exec() == QDialog::Accepted ) - { - if (mDoc->baseURL().isEmpty()) - { - const_cast( mDoc->settings() )->init( KGlobal::config().data() ); - slotShowHome(); - } - else mDoc->slotReload(); - } -} - -#include "mainwindow.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/mainwindow.h b/khelpcenter/mainwindow.h deleted file mode 100644 index fcf1ec00..00000000 --- a/khelpcenter/mainwindow.h +++ /dev/null @@ -1,107 +0,0 @@ - -#ifndef KHC_MAINWINDOW_H -#define KHC_MAINWINDOW_H - -#include -#include - -#include -#include - -#include "navigator.h" -#include "glossary.h" - -class QSplitter; - -class LogDialog; - -namespace KHC { - -class View; - -class MainWindow : public KXmlGuiWindow -{ - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.khelpcenter.khelpcenter") - public: - MainWindow(); - ~MainWindow(); - - public Q_SLOTS: - Q_SCRIPTABLE void openUrl( const QString &url ); - Q_SCRIPTABLE void openUrl( const QString &url, const QByteArray& startup_id ); - Q_SCRIPTABLE void showHome(); - Q_SCRIPTABLE void lastSearch(); - - public Q_SLOTS: - void print(); - void statusBarMessage(const QString &m); - void slotShowHome(); - void slotLastSearch(); - void showSearchStderr(); - /** - Show document corresponding to given URL in viewer part. - */ - void viewUrl( const QString & ); - - /** - Open document corresponding to given URL, i.e. show it in the viewer part - and select the corresponding entry in the navigator widget. - */ - void openUrl( const KUrl &url ); - - protected: - void setupActions(); - /** - Show document corresponding to given URL in viewer part. - */ - void viewUrl( const KUrl &url, - const KParts::OpenUrlArguments &args = KParts::OpenUrlArguments(), - const KParts::BrowserArguments &browserArgs = KParts::BrowserArguments() ); - - virtual void saveProperties( KConfigGroup &config ); - virtual void readProperties( const KConfigGroup &config ); - - void readConfig(); - void writeConfig(); - - protected Q_SLOTS: - void enableLastSearchAction(); - void enableCopyTextAction(); - - private: - void stop(); - - private Q_SLOTS: - void slotGlossSelected(const GlossaryEntry &entry); - void slotStarted(KIO::Job *job); - void slotInfoMessage(KJob *, const QString &); - void goInternalUrl( const KUrl & ); - /** - This function is called when the user clicks on a link in the viewer part. - */ - void slotOpenURLRequest( const KUrl &url, - const KParts::OpenUrlArguments &args = KParts::OpenUrlArguments(), - const KParts::BrowserArguments &browserArgs = KParts::BrowserArguments()); - void documentCompleted(); - void slotIncFontSizes(); - void slotDecFontSizes(); - void slotConfigureFonts(); - void slotCopySelectedText(); - -private: - void updateFontScaleActions(); - - QSplitter *mSplitter; - View *mDoc; - Navigator *mNavigator; - - QAction *mLastSearchAction; - QAction *mCopyText; - LogDialog *mLogDialog; -}; - -} - -#endif //KHC_MAINWINDOW_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/navigator.cpp b/khelpcenter/navigator.cpp deleted file mode 100644 index 84be06bb..00000000 --- a/khelpcenter/navigator.cpp +++ /dev/null @@ -1,679 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 "navigator.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "navigatoritem.h" -#include "navigatorappitem.h" -#include "searchwidget.h" -#include "searchengine.h" -#include "docmetainfo.h" -#include "docentrytraverser.h" -#include "glossary.h" -#include "toc.h" -#include "view.h" -#include "infotree.h" -#include "mainwindow.h" -#include "plugintraverser.h" -#include "scrollkeepertreebuilder.h" -#include "kcmhelpcenter.h" -#include "formatter.h" -#include "history.h" -#include "prefs.h" - -using namespace KHC; - -Navigator::Navigator( View *view, QWidget *parent, const char *name ) - : QWidget( parent ), mIndexDialog( 0 ), - mView( view ), mSelected( false ) -{ - setObjectName( name ); - - KConfigGroup config(KGlobal::config(), "General"); - mShowMissingDocs = config.readEntry("ShowMissingDocs", false); - - mSearchEngine = new SearchEngine( view ); - connect( mSearchEngine, SIGNAL( searchFinished() ), - SLOT( slotSearchFinished() ) ); - - DocMetaInfo::self()->scanMetaInfo(); - - QBoxLayout *topLayout = new QVBoxLayout( this ); - - mSearchFrame = new QFrame( this ); - topLayout->addWidget( mSearchFrame ); - - QBoxLayout *searchLayout = new QHBoxLayout( mSearchFrame ); - searchLayout->setSpacing( KDialog::spacingHint() ); - searchLayout->setMargin( 6 ); - - mSearchEdit = new KLineEdit( mSearchFrame ); - mSearchEdit->setClearButtonShown(true); - searchLayout->addWidget( mSearchEdit ); - connect( mSearchEdit, SIGNAL( returnPressed() ), SLOT( slotSearch() ) ); - connect( mSearchEdit, SIGNAL( textChanged( const QString & ) ), - SLOT( checkSearchButton() ) ); - - mSearchButton = new QPushButton( i18n("&Search"), mSearchFrame ); - searchLayout->addWidget( mSearchButton ); - connect( mSearchButton, SIGNAL( clicked() ), SLOT( slotSearch() ) ); - - mTabWidget = new QTabWidget( this ); - topLayout->addWidget( mTabWidget ); - - setupContentsTab(); - setupGlossaryTab(); - setupSearchTab(); - - insertPlugins(); - hideSearch(); -/* - if ( !mSearchEngine->initSearchHandlers() ) { - hideSearch(); - } else { - mSearchWidget->updateScopeList(); - mSearchWidget->readConfig( KGlobal::config().data() ); - } - */ - connect( mTabWidget, SIGNAL( currentChanged( QWidget * ) ), - SLOT( slotTabChanged( QWidget * ) ) ); -} - -Navigator::~Navigator() -{ - delete mSearchEngine; -} - -SearchEngine *Navigator::searchEngine() const -{ - return mSearchEngine; -} - -Formatter *Navigator::formatter() const -{ - return mView->formatter(); -} - -bool Navigator::showMissingDocs() const -{ - return mShowMissingDocs; -} - -void Navigator::setupContentsTab() -{ - mContentsTree = new QTreeWidget( mTabWidget ); - mContentsTree->setFrameStyle( QFrame::NoFrame ); - mContentsTree->setAllColumnsShowFocus(true); - mContentsTree->setRootIsDecorated(false); - mContentsTree->headerItem()->setHidden(true); - - connect(mContentsTree, SIGNAL(itemActivated(QTreeWidgetItem*,int)), - SLOT(slotItemSelected(QTreeWidgetItem*))); - - mTabWidget->addTab(mContentsTree, i18n("&Contents")); -} - -void Navigator::setupSearchTab() -{ - - mSearchWidget = new SearchWidget( mSearchEngine, mTabWidget ); - connect( mSearchWidget, SIGNAL( searchResult( const QString & ) ), - SLOT( slotShowSearchResult( const QString & ) ) ); - connect( mSearchWidget, SIGNAL( scopeCountChanged( int ) ), - SLOT( checkSearchButton() ) ); - connect( mSearchWidget, SIGNAL( showIndexDialog() ), - SLOT( showIndexDialog() ) ); - - mTabWidget->addTab( mSearchWidget, i18n("Search Options")); - -} - -void Navigator::setupGlossaryTab() -{ - mGlossaryTree = new Glossary( mTabWidget ); - connect( mGlossaryTree, SIGNAL( entrySelected( const GlossaryEntry & ) ), - this, SIGNAL( glossSelected( const GlossaryEntry & ) ) ); - mTabWidget->addTab( mGlossaryTree, i18n( "G&lossary" ) ); -} - -void Navigator::insertPlugins() -{ - PluginTraverser t( this, mContentsTree ); - DocMetaInfo::self()->traverseEntries( &t ); -} - -void Navigator::insertParentAppDocs( const QString &name, NavigatorItem *topItem ) -{ - kDebug(1400) << "Requested plugin documents for ID " << name; - - KServiceGroup::Ptr grp = KServiceGroup::childGroup( name ); - if ( !grp ) - return; - - KServiceGroup::List entries = grp->entries(); - KServiceGroup::List::ConstIterator it = entries.constBegin(); - KServiceGroup::List::ConstIterator end = entries.constEnd(); - for ( ; it != end; ++it ) { - QString desktopFile = ( *it )->entryPath(); - if ( QDir::isRelativePath( desktopFile ) ) - desktopFile = KStandardDirs::locate( "apps", desktopFile ); - createItemFromDesktopFile( topItem, desktopFile ); - } -} - -void Navigator::insertKCMDocs( const QString &name, NavigatorItem *topItem, const QString &type ) -{ - kDebug(1400) << "Requested KCM documents for ID" << name; - QString systemsettingskontrolconstraint = "[X-KDE-System-Settings-Parent-Category] != ''"; - QString konquerorcontrolconstraint = "[X-KDE-PluginKeyword] == 'khtml_general'\ - or [X-KDE-PluginKeyword] == 'performance'\ - or [X-KDE-PluginKeyword] == 'bookmarks'"; - QString filemanagercontrolconstraint = "[X-KDE-PluginKeyword] == 'behavior'\ - or [X-KDE-PluginKeyword] == 'dolphinviewmodes'\ - or [X-KDE-PluginKeyword] == 'dolphinnavigation'\ - or [X-KDE-PluginKeyword] == 'dolphinservices'\ - or [X-KDE-PluginKeyword] == 'dolphingeneral'\ - or [X-KDE-PluginKeyword] == 'trash'"; - QString browsercontrolconstraint = "[X-KDE-PluginKeyword] == 'khtml_behavior'\ - or [X-KDE-PluginKeyword] == 'proxy'\ - or [X-KDE-PluginKeyword] == 'khtml_appearance'\ - or [X-KDE-PluginKeyword] == 'khtml_filter'\ - or [X-KDE-PluginKeyword] == 'cache'\ - or [X-KDE-PluginKeyword] == 'cookie'\ - or [X-KDE-PluginKeyword] == 'useragent'\ - or [X-KDE-PluginKeyword] == 'khtml_java_js'\ - or [X-KDE-PluginKeyword] == 'khtml_plugins'"; -/* missing in browsercontrolconstraint -History no X-KDE-PluginKeyword in kcmhistory.desktop -*/ - QString othercontrolconstraint = "[X-KDE-PluginKeyword] == 'cgi'"; - - KService::List list; - - if ( type == QString("kcontrol") ) { - list = KServiceTypeTrader::self()->query( "KCModule", systemsettingskontrolconstraint ); - } else if ( type == QString("konquerorcontrol") ) { - list = KServiceTypeTrader::self()->query( "KCModule", konquerorcontrolconstraint ); - } else if ( type == QString("browsercontrol") ) { - list = KServiceTypeTrader::self()->query( "KCModule", browsercontrolconstraint ); - } else if ( type == QString("filemanagercontrol") ) { - list = KServiceTypeTrader::self()->query( "KCModule", filemanagercontrolconstraint ); - } else if ( type == QString("othercontrol") ) { - list = KServiceTypeTrader::self()->query( "KCModule", othercontrolconstraint ); - } else if ( type == QString("kinfocenter") ) { - list = KServiceTypeTrader::self()->query( "KCModule", "[X-KDE-ParentApp] == 'kinfocenter'" ); - } - - for ( KService::List::const_iterator it = list.constBegin(); it != list.constEnd(); ++it ) - { - KService::Ptr s = (*it); - KCModuleInfo m = KCModuleInfo(s); - QString desktopFile = KStandardDirs::locate( "services", m.fileName() ); - createItemFromDesktopFile( topItem, desktopFile ); - } - topItem->sortChildren( 0, Qt::AscendingOrder /* ascending */ ); -} - -void Navigator::insertIOSlaveDocs( const QString &name, NavigatorItem *topItem ) -{ - kDebug(1400) << "Requested IOSlave documents for ID" << name; - - QStringList list = KProtocolInfo::protocols(); - list.sort(); - - NavigatorItem *prevItem = 0; - for ( QStringList::ConstIterator it = list.constBegin(); it != list.constEnd(); ++it ) - { - QString docPath = KProtocolInfo::docPath(*it); - if ( !docPath.isNull() ) - { - // First parameter is ignored if second is an absolute path - KUrl url(KUrl("help:/"), docPath); - QString icon = KProtocolInfo::icon(*it); - if ( icon.isEmpty() ) icon = "text-plain"; - DocEntry *entry = new DocEntry( *it, url.url(), icon ); - NavigatorItem *item = new NavigatorItem( entry, topItem, prevItem ); - prevItem = item; - item->setAutoDeleteDocEntry( true ); - } - } -} - -void Navigator::createItemFromDesktopFile( NavigatorItem *topItem, - const QString &file ) -{ - KDesktopFile desktopFile( file ); - QString docPath = desktopFile.readDocPath(); - if ( !docPath.isNull() ) { - // First parameter is ignored if second is an absolute path - KUrl url(KUrl("help:/"), docPath); - QString icon = desktopFile.readIcon(); - if ( icon.isEmpty() ) icon = "text-plain"; - DocEntry *entry = new DocEntry( desktopFile.readName(), url.url(), icon ); - NavigatorItem *item = new NavigatorItem( entry, topItem ); - item->setAutoDeleteDocEntry( true ); - } -} - -void Navigator::insertInfoDocs( NavigatorItem *topItem ) -{ - InfoTree *infoTree = new InfoTree( this ); - infoTree->build( topItem ); -} - -NavigatorItem *Navigator::insertScrollKeeperDocs( NavigatorItem *topItem, - NavigatorItem *after ) -{ - ScrollKeeperTreeBuilder *builder = new ScrollKeeperTreeBuilder( this ); - return builder->build( topItem, after ); -} - -void Navigator::selectItem( const KUrl &url ) -{ - kDebug() << "Navigator::selectItem(): " << url.url(); - - if ( url.url() == "khelpcenter:home" ) { - clearSelection(); - return; - } - - // help:/foo&anchor=bar gets redirected to help:/foo#bar - // Make sure that we match both the original URL as well as - // its counterpart. - KUrl alternativeURL = url; - if (url.hasRef()) - { - alternativeURL.setQuery("anchor="+url.ref()); - alternativeURL.setRef(QString()); - } - - // If the navigator already has the given URL selected, do nothing. - NavigatorItem *item; - item = static_cast( mContentsTree->currentItem() ); - if ( item && mSelected ) { - KUrl currentURL ( item->entry()->url() ); - if ( (currentURL == url) || (currentURL == alternativeURL) ) { - kDebug() << "URL already shown."; - return; - } - } - - // First, populate the NavigatorAppItems if we don't want the home page - if ( url != homeURL() ) { - QTreeWidgetItemIterator it1( mContentsTree ); - while( (*it1) ) - { - NavigatorAppItem *appItem = dynamic_cast( (*it1) ); - if ( appItem ) appItem->populate( true ); - ++it1; - } - } - - QTreeWidgetItemIterator it( mContentsTree ); - while ( (*it) ) { - NavigatorItem *item = static_cast( (*it) ); - KUrl itemUrl( item->entry()->url() ); - if ( (itemUrl == url) || (itemUrl == alternativeURL) ) { - mContentsTree->setCurrentItem( item ); - // If the current item was not selected and remained unchanged it - // needs to be explicitly selected - mContentsTree->setCurrentItem(item); - item->setExpanded( true ); - break; - } - ++it; - } - if ( !(*it) ) { - clearSelection(); - } else { - mSelected = true; - } -} - -void Navigator::clearSelection() -{ - mContentsTree->clearSelection(); - mSelected = false; -} - -void Navigator::slotItemSelected( QTreeWidgetItem *currentItem ) -{ - if ( !currentItem ) return; - - mSelected = true; - - NavigatorItem *item = static_cast( currentItem ); - - kDebug(1400) << item->entry()->name() << endl; - - item->setExpanded( !item->isExpanded() ); - - KUrl url ( item->entry()->url() ); - - - - if ( url.protocol() == "khelpcenter" ) { - mView->closeUrl(); - History::self().updateCurrentEntry( mView ); - History::self().createEntry(); - showOverview( item, url ); - } else { - - emit itemSelected( url.url() ); - } - - mLastUrl = url; -} - -void Navigator::openInternalUrl( const KUrl &url ) -{ - if ( url.url() == "khelpcenter:home" ) { - clearSelection(); - showOverview( 0, url ); - return; - } - - selectItem( url ); - if ( !mSelected ) return; - - NavigatorItem *item = - static_cast( mContentsTree->currentItem() ); - - if ( item ) showOverview( item, url ); -} - -void Navigator::showOverview( NavigatorItem *item, const KUrl &url ) -{ - mView->beginInternal( url ); - - QString fileName = KStandardDirs::locate( "data", "khelpcenter/index.html.in" ); - if ( fileName.isEmpty() ) - return; - - QFile file( fileName ); - - if ( !file.open( QIODevice::ReadOnly ) ) - return; - - QTextStream stream( &file ); - QString res = stream.readAll(); - - QString title,name,content; - uint childCount; - - if ( item ) { - title = item->entry()->name(); - name = item->entry()->name(); - - QString info = item->entry()->info(); - if ( !info.isEmpty() ) content = QLatin1String("

") + info + QLatin1String("

\n"); - - childCount = item->childCount(); - } else { - title = i18n("Start Page"); - name = i18n("KDE Help Center"); - - childCount = mContentsTree->topLevelItemCount(); - } - - if ( childCount > 0 ) { - QTreeWidgetItem *child; - if ( item ) child = item; - else child = mContentsTree->invisibleRootItem(); - - mDirLevel = 0; - - content += createChildrenList( child ); - } - else - content += QLatin1String("

"); - - res = res.arg(title).arg(name).arg(content); - - mView->write( res ); - - mView->end(); -} - -QString Navigator::createChildrenList( QTreeWidgetItem *child ) -{ - ++mDirLevel; - - QString t; - - t += QLatin1String("\n"); - - --mDirLevel; - - return t; -} - -void Navigator::slotSearch() -{ - - kDebug(1400) << "Navigator::slotSearch()"; - - if ( !checkSearchIndex() ) return; - - if ( mSearchEngine->isRunning() ) return; - - QString words = mSearchEdit->text(); - QString method = mSearchWidget->method(); - int pages = mSearchWidget->pages(); - QString scope = mSearchWidget->scope(); - - kDebug(1400) << "Navigator::slotSearch() words: " << words; - kDebug(1400) << "Navigator::slotSearch() scope: " << scope; - - if ( words.isEmpty() || scope.isEmpty() ) return; - - // disable search Button during searches - mSearchButton->setEnabled(false); - QApplication::setOverrideCursor(Qt::WaitCursor); - - if ( !mSearchEngine->search( words, method, pages, scope ) ) { - slotSearchFinished(); - KMessageBox::sorry( this, i18n("Unable to run search program.") ); - } - -} - -void Navigator::slotShowSearchResult( const QString &url ) -{ - QString u = url; - u.replace( "%k", mSearchEdit->text() ); - - emit itemSelected( u ); -} - -void Navigator::slotSearchFinished() -{ - mSearchButton->setEnabled(true); - QApplication::restoreOverrideCursor(); - - kDebug( 1400 ) << "Search finished."; -} - -void Navigator::checkSearchButton() -{ - mSearchButton->setEnabled( !mSearchEdit->text().isEmpty() && - mSearchWidget->scopeCount() > 0 ); - mTabWidget->setCurrentIndex( mTabWidget->indexOf( mSearchWidget ) ); -} - - -void Navigator::hideSearch() -{ - mSearchFrame->hide(); - mTabWidget->removeTab( mTabWidget->indexOf( mSearchWidget ) ); -} - -bool Navigator::checkSearchIndex() -{ - KConfigGroup cfg(KGlobal::config(), "Search" ); - if ( cfg.readEntry( "IndexExists", false) ) return true; - - if ( mIndexDialog && !mIndexDialog->isHidden() ) return true; - - QString text = i18n( "A search index does not yet exist. Do you want " - "to create the index now?" ); - - int result = KMessageBox::questionYesNo( this, text, QString(), - KGuiItem(i18n("Create")), - KGuiItem(i18n("Do Not Create")), - QLatin1String("indexcreation") ); - if ( result == KMessageBox::Yes ) { - showIndexDialog(); - return false; - } - - return true; -} - -void Navigator::slotTabChanged( QWidget *wid ) -{ - if ( wid == mSearchWidget ) checkSearchIndex(); -} - -void Navigator::slotSelectGlossEntry( const QString &id ) -{ - mGlossaryTree->slotSelectGlossEntry( id ); -} - -KUrl Navigator::homeURL() -{ - if ( !mHomeUrl.isEmpty() ) return mHomeUrl; - - KSharedConfig::Ptr cfg = KGlobal::config(); - // We have to reparse the configuration here in order to get a - // language-specific StartUrl, e.g. "StartUrl[de]". - cfg->reparseConfiguration(); - mHomeUrl = cfg->group("General").readPathEntry( "StartUrl", QLatin1String("khelpcenter:home") ); - return mHomeUrl; -} - -void Navigator::showIndexDialog() -{ - if ( !mIndexDialog ) { - mIndexDialog = new KCMHelpCenter( mSearchEngine, this ); - connect( mIndexDialog, SIGNAL( searchIndexUpdated() ), mSearchWidget, - SLOT( updateScopeList() ) ); - } - mIndexDialog->show(); - mIndexDialog->raise(); -} - -void Navigator::readConfig() -{ - if ( Prefs::currentTab() == Prefs::Search ) { - mTabWidget->setCurrentIndex( mTabWidget->indexOf( mSearchWidget ) ); - } else if ( Prefs::currentTab() == Prefs::Glossary ) { - mTabWidget->setCurrentIndex( mTabWidget->indexOf( mGlossaryTree ) ); - } else { - mTabWidget->setCurrentIndex( mTabWidget->indexOf( mContentsTree ) ); - } -} - -void Navigator::writeConfig() -{ - if ( mTabWidget->currentWidget() == mSearchWidget ) { - Prefs::setCurrentTab( Prefs::Search ); - } else if ( mTabWidget->currentWidget() == mGlossaryTree ) { - Prefs::setCurrentTab( Prefs::Glossary ); - } else { - Prefs::setCurrentTab( Prefs::Content ); - } -} - -void Navigator::clearSearch() -{ - mSearchEdit->setText( QString() ); -} - -#include "navigator.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/navigator.h b/khelpcenter/navigator.h deleted file mode 100644 index d72c7814..00000000 --- a/khelpcenter/navigator.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 KHC_NAVIGATOR_H -#define KHC_NAVIGATOR_H - -#include "glossary.h" - -#include - -#include -#include -#include -#include -#include -#include - -class QPushButton; -class KLineEdit; -class KCMHelpCenter; - -namespace KHC { - -class NavigatorItem; -class Navigator; -class View; -class SearchEngine; -class SearchWidget; -class Formatter; - -class Navigator : public QWidget -{ - Q_OBJECT - public: - explicit Navigator(View *, QWidget *parent=0, const char *name=0); - virtual ~Navigator(); - - KUrl homeURL(); - - SearchEngine *searchEngine() const; - Formatter *formatter() const; - - const GlossaryEntry &glossEntry(const QString &term) const { return mGlossaryTree->entry( term ); } - - void insertParentAppDocs( const QString &name, NavigatorItem *parent ); - NavigatorItem *insertScrollKeeperDocs( NavigatorItem *parentItem, - NavigatorItem *after ); - void insertInfoDocs( NavigatorItem *parentItem ); - void insertKCMDocs(const QString &, NavigatorItem*parent, const QString &); - void insertIOSlaveDocs(const QString &, NavigatorItem*parent); - - void createItemFromDesktopFile( NavigatorItem *item, const QString &name ); - - bool showMissingDocs() const; - - void clearSelection(); - - void showOverview( NavigatorItem *item, const KUrl &url ); - - void readConfig(); - void writeConfig(); - - public Q_SLOTS: - void openInternalUrl( const KUrl &url ); - void slotItemSelected(QTreeWidgetItem* index); - void slotSearch(); - void slotShowSearchResult( const QString & ); - void slotSelectGlossEntry( const QString &id ); - void selectItem( const KUrl &url ); - void showIndexDialog(); - - Q_SIGNALS: - void itemSelected(const QString& itemURL); - void glossSelected(const GlossaryEntry &entry); - - protected Q_SLOTS: - void slotSearchFinished(); - void slotTabChanged( QWidget * ); - void checkSearchButton(); - - bool checkSearchIndex(); - - void clearSearch(); - - protected: - QString createChildrenList( QTreeWidgetItem *child ); - - private: - void setupContentsTab(); - void setupIndexTab(); - void setupSearchTab(); - void setupGlossaryTab(); - - void insertPlugins(); - void hideSearch(); - - QTreeWidget *mContentsTree; - Glossary *mGlossaryTree; - - SearchWidget *mSearchWidget; - KCMHelpCenter *mIndexDialog; - - QTabWidget *mTabWidget; - - QFrame *mSearchFrame; - KLineEdit *mSearchEdit; - QPushButton *mSearchButton; - - bool mShowMissingDocs; - - SearchEngine *mSearchEngine; - - View *mView; - - KUrl mHomeUrl; - - bool mSelected; - - KUrl mLastUrl; - - int mDirLevel; -}; - -} - -#endif //KHC_NAVIGATOR_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/navigatorappitem.cpp b/khelpcenter/navigatorappitem.cpp deleted file mode 100644 index d5b0f6f7..00000000 --- a/khelpcenter/navigatorappitem.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2001 Waldo Bastian - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License version 2 or at your option version 3 as published - * by the Free Software Foundation. - * - * 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 "navigatorappitem.h" -#include "docentry.h" - -#include -#include -#include - -using namespace KHC; - -NavigatorAppItem::NavigatorAppItem( DocEntry *entry, QTreeWidget *parent, - const QString &relPath ) - : NavigatorItem( entry, parent ), - mRelpath( relPath ), - mPopulated( false ) -{ - populate(); -} - -NavigatorAppItem::NavigatorAppItem( DocEntry *entry, QTreeWidgetItem *parent, - const QString &relPath ) - : NavigatorItem( entry, parent ), - mRelpath( relPath ), - mPopulated( false ) -{ - populate(); -} - -NavigatorAppItem::NavigatorAppItem( DocEntry *entry, QTreeWidget *parent, - QTreeWidgetItem *after ) - : NavigatorItem( entry, parent, after ), - mPopulated( false ) -{ - populate(); -} - -NavigatorAppItem::NavigatorAppItem( DocEntry *entry, QTreeWidgetItem *parent, - QTreeWidgetItem *after ) - : NavigatorItem( entry, parent, after ), - mPopulated( false ) -{ - populate(); -} - -void NavigatorAppItem::setRelpath( const QString &relpath ) -{ - mRelpath = relpath; -} - -void NavigatorAppItem::setExpanded(bool open) -{ - kDebug() << "NavigatorAppItem::setOpen()"; - - if ( open && (childCount() == 0) && !mPopulated ) - { - kDebug() << "NavigatorAppItem::setOpen(" << this << ", " - << mRelpath << ")" << endl; - populate(); - } - QTreeWidgetItem::setExpanded(open); -} - -void NavigatorAppItem::populate( bool recursive ) -{ - if ( mPopulated ) return; - - KServiceGroup::Ptr root = KServiceGroup::group(mRelpath); - if ( !root ) { - kWarning() << "No Service groups\n"; - return; - } - KServiceGroup::List list = root->entries(); - - - for ( KServiceGroup::List::ConstIterator it = list.constBegin(); - it != list.constEnd(); ++it ) - { - const KSycocaEntry::Ptr e = *it; - NavigatorItem *item; - QString url; - - switch ( e->sycocaType() ) { - case KST_KService: - { - const KService::Ptr s = KService::Ptr::staticCast(e); - url = documentationURL( s.data() ); - if ( !url.isEmpty() ) { - DocEntry *entry = new DocEntry( s->name(), url, s->icon() ); - item = new NavigatorItem( entry, this ); - item->setAutoDeleteDocEntry( true ); - } - break; - } - case KST_KServiceGroup: - { - KServiceGroup::Ptr g = KServiceGroup::Ptr::staticCast(e); - if ( ( g->childCount() == 0 ) || g->name().startsWith( '.' ) ) - continue; - DocEntry *entry = new DocEntry( g->caption(), "", g->icon() ); - NavigatorAppItem *appItem; - appItem = new NavigatorAppItem( entry, this, g->relPath() ); - appItem->setAutoDeleteDocEntry( true ); - if ( recursive ) appItem->populate( recursive ); - break; - } - default: - break; - } - } - sortChildren( 0, Qt::AscendingOrder /* ascending */ ); - mPopulated = true; -} - -QString NavigatorAppItem::documentationURL( const KService *s ) -{ - QString docPath = s->property( QLatin1String("DocPath") ).toString(); - if ( docPath.isEmpty() ) { - docPath = s->property( QLatin1String("X-DocPath") ).toString(); - if ( docPath.isEmpty() ) { - return QString(); - } - } - - if ( docPath.startsWith( QLatin1String("file:")) || docPath.startsWith( QLatin1String("http:") ) ) - return docPath; - - return QLatin1String( "help:/" ) + docPath; -} - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/navigatorappitem.h b/khelpcenter/navigatorappitem.h deleted file mode 100644 index 2622286b..00000000 --- a/khelpcenter/navigatorappitem.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * navigatorappitem.h - part of the KDE Help Center - * - * Copyright (C) 2001 Waldo Bastian - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License version 2 or at your option version 3 as published - * by the Free Software Foundation. - * - * 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 KHC_NAVIGATORAPPITEM_H -#define KHC_NAVIGATORAPPITEM_H - -#include "navigatoritem.h" - -class KService; - -namespace KHC { - -class NavigatorAppItem : public NavigatorItem -{ - public: - NavigatorAppItem( DocEntry *entry, QTreeWidget *parent, - const QString &relPath ); - NavigatorAppItem( DocEntry *entry, QTreeWidgetItem *parent, - const QString &relPath ); - - NavigatorAppItem( DocEntry *entry, QTreeWidget *parent, - QTreeWidgetItem *after ); - NavigatorAppItem( DocEntry *entry, QTreeWidgetItem *parent, - QTreeWidgetItem *after ); - - void setRelpath( const QString & ); - - virtual void setExpanded(bool); - void populate( bool recursive = false ); - - protected: - QString documentationURL( const KService *s ); - - private: - QString mRelpath; - bool mPopulated; -}; - -} - -#endif //KHC_NAVIGATORAPPITEM_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/navigatoritem.cpp b/khelpcenter/navigatoritem.cpp deleted file mode 100644 index efd83ed0..00000000 --- a/khelpcenter/navigatoritem.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 "navigatoritem.h" - -#include "toc.h" -#include "docentry.h" -#include "view.h" - -#include -#include - -#include - -using namespace KHC; - -NavigatorItem::NavigatorItem( DocEntry *entry, QTreeWidget *parent, - QTreeWidgetItem *after ) - : QTreeWidgetItem( parent, after ) -{ - init( entry ); -} - -NavigatorItem::NavigatorItem( DocEntry *entry, QTreeWidgetItem *parent, - QTreeWidgetItem *after ) - : QTreeWidgetItem( parent, after ) -{ - init( entry ); -} - -NavigatorItem::NavigatorItem( DocEntry *entry, QTreeWidget *parent ) - : QTreeWidgetItem( parent ) -{ - init( entry ); -} - -NavigatorItem::NavigatorItem( DocEntry *entry, QTreeWidgetItem *parent ) - : QTreeWidgetItem( parent ) -{ - init( entry ); -} - -NavigatorItem::~NavigatorItem() -{ - delete mToc; - - if ( mAutoDeleteDocEntry ) delete mEntry; -} - -void NavigatorItem::init( DocEntry *entry ) -{ - mEntry = entry; - mAutoDeleteDocEntry = false; - mToc = 0; - - updateItem(); -} - -DocEntry *NavigatorItem::entry() const -{ - return mEntry; -} - -void NavigatorItem::setAutoDeleteDocEntry( bool enabled ) -{ - mAutoDeleteDocEntry = enabled; -} - -void NavigatorItem::updateItem() -{ - setText( 0, entry()->name() ); - setIcon( 0, SmallIcon( entry()->icon() ) ); -} - -void NavigatorItem::scheduleTOCBuild() -{ - KUrl url ( entry()->url() ); - if ( !mToc && url.protocol() == "help") { - mToc = new TOC( this ); - - kDebug( 1400 ) << "Trying to build TOC for " << entry()->name() << endl; - mToc->setApplication( url.directory() ); - QString doc = View::langLookup( url.path() ); - // Enforce the original .docbook version, in case langLookup returns a - // cached version - if ( !doc.isNull() ) { - int pos = doc.indexOf( ".html" ); - if ( pos >= 0 ) { - doc.replace( pos, 5, ".docbook" ); - } - kDebug( 1400 ) << "doc = " << doc; - - mToc->build( doc ); - } - } -} - -void NavigatorItem::setExpanded( bool open ) -{ - scheduleTOCBuild(); - QTreeWidgetItem::setExpanded( open ); -} - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/navigatoritem.h b/khelpcenter/navigatoritem.h deleted file mode 100644 index d8b58fba..00000000 --- a/khelpcenter/navigatoritem.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * navigatoritem.h - part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 KHC_NAVIGATORITEM_H -#define KHC_NAVIGATORITEM_H - -#include -#include - -namespace KHC { - -class TOC; -class DocEntry; - -class NavigatorItem : public QTreeWidgetItem -{ - public: - NavigatorItem( DocEntry *entry, QTreeWidget *parent ); - NavigatorItem( DocEntry *entry, QTreeWidgetItem *parent ); - - NavigatorItem( DocEntry *entry, QTreeWidget *parent, - QTreeWidgetItem *after ); - NavigatorItem( DocEntry *entry, QTreeWidgetItem *parent, - QTreeWidgetItem *after ); - - ~NavigatorItem(); - - DocEntry *entry() const; - - void setAutoDeleteDocEntry( bool ); - - void updateItem(); - - TOC *toc() const { return mToc; } - - void setExpanded( bool open ); - - private: - void init( DocEntry * ); - void scheduleTOCBuild(); - - TOC *mToc; - - DocEntry *mEntry; - bool mAutoDeleteDocEntry; -}; - -} - -#endif // KHC_NAVIGATORITEM_H - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/org.kde.khelpcenter.kcmhelpcenter.xml b/khelpcenter/org.kde.khelpcenter.kcmhelpcenter.xml deleted file mode 100644 index 14318bcb..00000000 --- a/khelpcenter/org.kde.khelpcenter.kcmhelpcenter.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - diff --git a/khelpcenter/plugins/Applications/.directory b/khelpcenter/plugins/Applications/.directory deleted file mode 100644 index 2f48c5bd..00000000 --- a/khelpcenter/plugins/Applications/.directory +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] - -Name=Application Manuals -Name[af]=Toepassing Handleidings -Name[ar]=دليل التطبيقات -Name[ast]=Manuales de l'aplicación -Name[be]=Даведкі аплетаў -Name[be@latin]=Padručniki pa aplikacyjach -Name[bg]=Ръководства на аплети -Name[bn]=অ্যাপলিকেশন ম্যানুয়াল -Name[bn_IN]=অ্যাপ্লিকেশনের সহায়িকা -Name[bs]=Uputstva za programe -Name[ca]=Manuals de les aplicacions -Name[ca@valencia]=Manuals de les aplicacions -Name[cs]=Příručky aplikací -Name[csb]=Pòdrãczniczi aplikacëjów -Name[da]=Programmanualer -Name[de]=Programmhandbücher -Name[el]=Εγχειρίδια εφαρμογών -Name[en_GB]=Application Manuals -Name[eo]=Manlibroj de aplikaĵoj -Name[es]=Manuales de las aplicaciones -Name[et]=Rakenduste käsiraamatud -Name[eu]=Aplikazio-eskuliburuak -Name[fa]=راهنماهای کاربرد -Name[fi]=Sovellusten oppaat -Name[fr]=Manuels des applications -Name[fy]=Applikaasje hânlieding -Name[ga]=Lámhleabhair Fheidhmchláir -Name[gl]=Manuais dos programas -Name[gu]=કાર્યક્રમ માર્ગદર્શિકાઓ -Name[he]=ספרי הדרכה של תוכניות -Name[hi]=अनुप्रयोग निर्देशिका -Name[hne]=अनुपरयोग निर्देसिका -Name[hr]=Priručnici aplikacije -Name[hsb]=Přiručki za aplikacije -Name[hu]=Alkalmazások kézikönyvei -Name[ia]=Manuales de application -Name[id]=Manual Aplikasi -Name[is]=Handbækur forrita -Name[it]=Manuali delle applicazioni -Name[ja]=アプリケーションマニュアル -Name[kk]=Қолданбаның нұсқаулары -Name[km]=សៀវភៅ​ដៃ​កម្មវិធី​ -Name[kn]=ಅನ್ವಯಗಳ ಕೈಪಿಡಿಗಳು -Name[ko]=프로그램 사용 설명서 -Name[ku]=Rêberên Sepanan -Name[lt]=Programų vadovai -Name[lv]=Programmu rokasgrāmatas -Name[mai]=अनुप्रयोग निर्देशिका -Name[mk]=Прирачници за апликации -Name[ml]=പ്രയോഗ സഹായകഗ്രന്ഥങ്ങള്‍ -Name[mr]=अनुप्रयोग पुस्तिका -Name[nb]=Håndbøker for programmer -Name[nds]=Programmhandböker -Name[ne]=अनुप्रयोग म्यानुअल -Name[nl]=Programmahandboeken -Name[nn]=Programbruksrettleiingar -Name[or]=ପ୍ରୟୋଗ ସହାୟକ ପୁସ୍ତକ -Name[pa]=ਐਪਲੀਕੇਸ਼ਨ ਮੈਨੂਅਲ -Name[pl]=Podręczniki programów -Name[pt]=Manuais das Aplicações -Name[pt_BR]=Manuais dos aplicativos -Name[ro]=Manualele aplicațiilor -Name[ru]=Руководства приложений -Name[se]=Prográmmagiehtagirjjit -Name[si]=යෙදුම් අත්පොත් -Name[sk]=Aplikačné manuály -Name[sl]=Priročniki za programe -Name[sr]=Упутства за програме -Name[sr@ijekavian]=Упутства за програме -Name[sr@ijekavianlatin]=Uputstva za programe -Name[sr@latin]=Uputstva za programe -Name[sv]=Programhandböcker -Name[ta]=பயன்பாட்டு கையேடுகள் -Name[te]=అనువర్తనముల మాన్యువల్‍స్‌ -Name[tg]=Дастуруламалҳои барнома -Name[th]=คู่มือของโปรแกรมต่าง ๆ -Name[tr]=Uygulama Kılavuzları -Name[ug]=پروگرامما قوللانمىسى -Name[uk]=Підручники з програм -Name[uz]=Dasturlar uchun qoʻllanmalar -Name[uz@cyrillic]=Дастурлар учун қўлланмалар -Name[vi]=Sổ tay ứng dụng -Name[wa]=Manuels des programes -Name[x-test]=xxApplication Manualsxx -Name[zh_CN]=应用程序手册 -Name[zh_TW]=應用程式手冊 - -X-DOC-Weight=200 - -X-KDE-KHelpcenter-Special=apps - -X-DOC-DocumentType=application/docbook+xml -X-DOC-Identifier=kde_application_manuals diff --git a/khelpcenter/plugins/Applications/CMakeLists.txt b/khelpcenter/plugins/Applications/CMakeLists.txt deleted file mode 100644 index f9c45743..00000000 --- a/khelpcenter/plugins/Applications/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -install( FILES .directory DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/plugins/Applications ) diff --git a/khelpcenter/plugins/CMakeLists.txt b/khelpcenter/plugins/CMakeLists.txt deleted file mode 100644 index 4c9a906f..00000000 --- a/khelpcenter/plugins/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ - -add_subdirectory( Applications ) -add_subdirectory( Manpages ) -add_subdirectory( Scrollkeeper ) - - -########### install files ############### - -install( FILES fundamentals.desktop plasma.desktop - onlinehelp.desktop - info.desktop kicmodules.desktop - kcontrolmodules.desktop - konquerorcontrolmodules.desktop - browsercontrolmodules.desktop - filemanagercontrolmodules.desktop - othercontrolmodules.desktop - kioslaves.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/plugins ) - diff --git a/khelpcenter/plugins/Manpages/.directory b/khelpcenter/plugins/Manpages/.directory deleted file mode 100644 index a69c2283..00000000 --- a/khelpcenter/plugins/Manpages/.directory +++ /dev/null @@ -1,92 +0,0 @@ -[Desktop Entry] -Name=UNIX manual pages -Name[af]=UNIX manual pages -Name[ar]=صفحات كتيّب يونِكس -Name[ast]=Páxines de manual d'Unix -Name[be@latin]=Padručnyja staronki UNIX („man”) -Name[bg]=Ръководство за UNIX -Name[bn]=ইউনিক্স ম্যানুয়াল পেজ -Name[bn_IN]=UNIX ম্যানুয়াল পেজ -Name[bs]=Uputne stranice naredbi -Name[ca]=Pàgines de manual del UNIX -Name[ca@valencia]=Pàgines de manual del UNIX -Name[cs]=Manuálové stránky pro UNIX -Name[csb]=Pòdrãczniczi dlô UNIXA -Name[da]=UNIX manualsider -Name[de]=UNIX-Hilfeseiten -Name[el]=Σελίδες εγχειριδίου UNIX -Name[en_GB]=UNIX manual pages -Name[eo]=Paĝoj de manlibro de UNIX -Name[es]=Páginas de manual de Unix -Name[et]=UNIX-i manuaalileheküljed -Name[eu]=UNIX eskuliburu-orriak -Name[fa]=صفحات راهنمای یونیکس -Name[fi]=UNIX man-sivut -Name[fr]=Pages de manuel UNIX -Name[fy]=UNIX hânlieding siden -Name[ga]=Leathanaigh lámhleabhair UNIX -Name[gl]=Páxinas de manual de UNIX -Name[gu]=UNIX માર્ગદર્શિકા પાનાંઓ -Name[he]=דפי הוראות של יוניקס -Name[hi]=यूनिक्स निर्देशिका पृष्ठ -Name[hne]=यूनिक्स निर्देसिका पेज -Name[hr]=UNIX stranice s uputama -Name[hsb]=UNIX manual pages -Name[hu]=UNIX man oldalak -Name[ia]=Paginas de manual UNIX -Name[id]=Halaman manual UNIX -Name[is]=UNIX handbókin -Name[it]=Pagine «man» di UNIX -Name[ja]=UNIX マニュアルページ -Name[kk]=UNIX man беттері -Name[km]=ទំព័រ​សៀវភៅ​ដៃ​របស់​យូនីក -Name[kn]=UNIX ಕೈಪಿಡಿ ಪುಟಗಳು (ಮ್ಯಾನುಯಲ್ ಪೇಜಸ್) -Name[ko]=UNIX 매뉴얼 페이지 -Name[ku]=Rûpelên rêberiyê yên UNIX -Name[lt]=UNIX man (programų vadovų) puslapiai -Name[lv]=UNIX rokasgrāmatas -Name[mai]=यूनिक्स निर्देशिका पृष्ठ -Name[mk]=Страници со UNIX-прирачници -Name[ml]=യുണിക്സിലെ മാനുവല്‍ താളുകള്‍ -Name[mr]=UNIX पुस्तिका पान -Name[nb]=UNIX man-sider -Name[nds]=UNIX man-Sieden -Name[ne]=युनिक्स म्यानुअल पृष्ठ -Name[nl]=UNIX-handboeken -Name[nn]=Unix-manualsider -Name[or]=UNIX ସହାୟକ ପୁସ୍ତକ ପୃଷ୍ଠାଗୁଡ଼ିକ -Name[pa]=UNIX ਮੈਨੂਅਲ ਪੇਜ਼ -Name[pl]=Strony podręcznika UNIX-a -Name[pt]=Páginas de manual do UNIX -Name[pt_BR]=Páginas de manual do UNIX -Name[ro]=Pagini de manual UNIX -Name[ru]=Страницы руководств UNIX -Name[se]=Unix-giehtagirjesiiddut -Name[si]=UNIX අත්පොත් පිටු -Name[sk]=Unixové manuálové stránky -Name[sl]=Strani priročnika za UNIX -Name[sr]=Упутне странице наредби -Name[sr@ijekavian]=Упутне странице наредби -Name[sr@ijekavianlatin]=Uputne stranice naredbi -Name[sr@latin]=Uputne stranice naredbi -Name[sv]=Unix manualsidor -Name[ta]=UNIX உதவிப் பக்கங்கள் -Name[te]=UNIX మాన్యువల్ పుటలు -Name[tg]=Дастуруламалҳои UNIX -Name[th]=หน้าคู่มือ UNIX -Name[tr]=UNIX kılavuz sayfaları -Name[ug]=Unix قوللانما بەتلىرى -Name[uk]=Сторінки довідки UNIX -Name[vi]=Trang hướng dẫn UNIX -Name[wa]=Pådjes di man Unix -Name[x-test]=xxUNIX manual pagesxx -Name[zh_CN]=UNIX 手册页 -Name[zh_TW]=UNIX 手冊 - -X-DocPath=man:/ - -Icon=application-x-troff-man - -X-DOC-Weight=500 -X-DOC-DocumentType=text/man -X-DOC-Identifier=manpages diff --git a/khelpcenter/plugins/Manpages/CMakeLists.txt b/khelpcenter/plugins/Manpages/CMakeLists.txt deleted file mode 100644 index e6a7590d..00000000 --- a/khelpcenter/plugins/Manpages/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ - -install( FILES .directory man1.desktop man2.desktop man3.desktop man4.desktop man5.desktop man6.desktop man7.desktop man8.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/plugins/Manpages ) - diff --git a/khelpcenter/plugins/Manpages/man1.desktop b/khelpcenter/plugins/Manpages/man1.desktop deleted file mode 100644 index 1ef4799c..00000000 --- a/khelpcenter/plugins/Manpages/man1.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Name=(1) User Commands -Name[af]=(1) Gebruikerbevele -Name[ar]=(1) أوامر المستخدم -Name[ast]=(1) Órdenes d'usuariu -Name[be]=(1) Каманды карыстальніка -Name[be@latin]=(1) Zahady karystańnika -Name[bg]=(1) Потребителски команди -Name[bn]=(1) User Commands -Name[bn_IN]=(১) ব্যবহারকারীদের জন্য উপলব্ধ কমান্ড -Name[br]=(1) Urzhiadoù arveriad -Name[bs]=(1) Korisničke naredbe -Name[ca]=(1) Ordres d'usuari -Name[ca@valencia]=(1) Ordes d'usuari -Name[cs]=(1) Uživatelské příkazy -Name[csb]=(1) Pòlét brëkòwnika -Name[cy]=(1) Gorchmynion Defnyddiwr -Name[da]=(1) Brugerkommandoer -Name[de]=(1) Benutzerbefehle -Name[el]=(1) Εντολές χρήστη -Name[en_GB]=(1) User Commands -Name[eo]=(1) Uzantkomandoj -Name[es]=(1) Órdenes de usuario -Name[et]=(1) Kasutaja käsud -Name[eu]=(1) Erabiltzaile-aginduak -Name[fa]=(۱) فرمانهای کاربر -Name[fi]=(1) Käyttäjän komennot -Name[fr]=(1) Commandes utilisateur -Name[fy]=(1) Brûkerskommando's -Name[ga]=(1) Orduithe Úsáideora -Name[gl]=(1) Ordes do usuario -Name[gu]=(૧) વપરાશકર્તા આદેશો -Name[he]=פקודות משתמש (1) -Name[hi]=(1) उपयोक्ता कमांड -Name[hne]=(1) कमइया कमांड -Name[hr]=(1) Korisničke naredbe -Name[hsb]=(1) Přikazy za wužiwarja -Name[hu]=(1) Felhasználói parancsok -Name[ia]=(1) Commandos de usator -Name[id]=(1) Perintah Pengguna -Name[is]=(1) Notandaskipanir -Name[it]=(1) Comandi dell'utente -Name[ja]=(1) ユーザコマンド -Name[ka]=(1) მომხმარებლის ბრძანებები -Name[kk]=(1) Пайдаланушы командалар -Name[km]=(១) ពាក្យ​បញ្ជា​របស់​អ្នក​ប្រើ -Name[kn]=(೧) ಬಳಕೆದಾರ ಆದೇಶಗಳು -Name[ko]=(1) 사용자 명령 -Name[ku]=(1) Fermanên Bikarhêneran -Name[lt]=(1) Naudotojo komandos -Name[lv]=(1) Lietotāja komandas -Name[mai]=(1) प्रयोक्ता कमांड -Name[mk]=(1) Кориснички команди -Name[ml]=(1) ഉപയോക്താവിനുള്ള ആജ്ഞകള്‍ -Name[mr]=(1) वापरकर्ता आदेश -Name[ms]=(1) Arahan Pengguna -Name[nb]=(1) Brukerkommandoer -Name[nds]=(1) Brukerbefehlen -Name[ne]=(१) प्रयोगकर्ता आदेश -Name[nl]=(1) Gebruikercommando's -Name[nn]=(1) Brukarkommandoar -Name[oc]=(1) Comandas personalizadas -Name[or]=(1) ଚାଳକ ନିର୍ଦ୍ଦେଶଗୁଡ଼ିକ -Name[pa]=(1) ਯੂਜ਼ਰ ਕਮਾਡਾਂ -Name[pl]=(1) Polecenia użytkownika -Name[pt]=(1) Comandos do Utilizador -Name[pt_BR]=(1) Comandos do usuário -Name[ro]=(1) Comenzi utilizator -Name[ru]=(1) Пользовательские команды -Name[se]=(1) Geavaheaddjigohččumat -Name[si]=(1) පරිශීලක විධානය -Name[sk]=(1) Užívateľské príkazy -Name[sl]=(1) Uporabniški ukazi -Name[sr]=(1) Корисничке наредбе -Name[sr@ijekavian]=(1) Корисничке наредбе -Name[sr@ijekavianlatin]=(1) Korisničke naredbe -Name[sr@latin]=(1) Korisničke naredbe -Name[sv]=(1) Användarkommandon -Name[ta]=(1) பயன்படுத்துபவர் கட்டளைகள் -Name[te]=(1) యూజర్ ఆదేశాలు -Name[tg]=(1) Фармонҳои корбар -Name[th]=(1) คำสั่งต่าง ๆ ของผู้ใช้ -Name[tr]=(1) Kullanıcı Komutları -Name[ug]=(1) ئىشلەتكۈچى بۇيرۇقلىرى -Name[uk]=(1) Команди користувача -Name[uz]=(1) Foydalanuvchi uchun buyruqlar -Name[uz@cyrillic]=(1) Фойдаланувчи учун буйруқлар -Name[vi]=(1) Lệnh của người dùng -Name[wa]=(1) Comandes uzeu -Name[x-test]=xx(1) User Commandsxx -Name[zh_CN]=(1) 用户命令 -Name[zh_TW]=(1) 使用者命令 - -X-DocPath=man:/(1) diff --git a/khelpcenter/plugins/Manpages/man2.desktop b/khelpcenter/plugins/Manpages/man2.desktop deleted file mode 100644 index 85538e2b..00000000 --- a/khelpcenter/plugins/Manpages/man2.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Name=(2) System Calls -Name[af]=(2) Stelselroepe -Name[ar]=(2) استدعاءات النظام -Name[ast]=(2) Llamaes del sistema -Name[be]=(2) Сістэмныя выклікі -Name[be@latin]=(2) Systemnyja vykliki -Name[bg]=(2) Системни сигнали -Name[bn]=(2) সিস্টেম কল -Name[bn_IN]=(২) সিস্টেম কল -Name[br]=(3) Galvioù reizhiad -Name[bs]=(2) Sistemski pozivi -Name[ca]=(2) Crides del sistema -Name[ca@valencia]=(2) Crides del sistema -Name[cs]=(2) Systémová volání -Name[csb]=(2) Systemòwé fùnkcëje -Name[cy]=(2) Galwadau Cysawd -Name[da]=(2) Systemkald -Name[de]=(2) Systemaufrufe -Name[el]=(2) Κλήσεις συστήματος -Name[en_GB]=(2) System Calls -Name[eo]=(2) Sistemaj vokoj -Name[es]=(2) Llamadas del sistema -Name[et]=(2) Süsteemsed väljakutsed -Name[eu]=(2) Sistema-deiak -Name[fa]=(۲) فراخوانیهای سیستم -Name[fi]=(2) Järjestelmäkutsut -Name[fr]=(2) Appels système -Name[fy]=(2) Systeemoanroppen -Name[ga]=(2) Glaonna ar an chóras -Name[gl]=(2) Chamadas do sistema -Name[gu]=(૨) સિસ્ટમ કૉલ્સ -Name[he]=קריאות מערכת (2) -Name[hi]=(2) सिस्टम काल्स -Name[hne]=(2) सिसटम काल्स -Name[hr]=(2) Sistemski pozivi -Name[hsb]=(2) Systemowe přikazy -Name[hu]=(2) Rendszerhívások -Name[ia]=(2) Appellos de Systema (System Calls) -Name[id]=(2) Panggilan Sistem -Name[is]=(2) Kerfisköll -Name[it]=(2) Chiamate di sistema -Name[ja]=(2) システムコール -Name[ka]=(2) სისტემური გამოძახებები -Name[kk]=(2) Жүйелік шақырулар -Name[km]=(២) ការ​ហៅ​ប្រព័ន្ធ -Name[kn]=(೨) ವ್ಯವಸ್ಥಾ ಕರೆಗಳು -Name[ko]=(2) 시스템 콜 -Name[ku]=(2) Bangên Pergalê -Name[lt]=(2) Sisteminiai iškvietimai -Name[lv]=(2) Sistēmas izsaukumi -Name[mai]=(2) सिस्टम काल्स -Name[mk]=(2) Системски повици -Name[ml]=(2) സിസ്റ്റം കോളുകള്‍ -Name[mr]=(2) सिस्टम कॉल्स -Name[ms]=(2) Panggilan Sistem -Name[nb]=(2) Systemkall -Name[nds]=(2) Systeemoprööp -Name[ne]=(२) प्रणाली कल -Name[nl]=(2) Systeemaanroepen -Name[nn]=(2) Systemkall -Name[oc]=(2) Apèls sistèma -Name[or]=(2) ତନ୍ତ୍ର ଡ଼ାକରା -Name[pa]=(2) ਸਿਸਟਮ ਕਾਲਾਂ -Name[pl]=(2) Wywołania systemowe -Name[pt]=(2) Chamadas do Sistema -Name[pt_BR]=(2) Chamadas de sistema -Name[ro]=(2) Apeluri de sistem -Name[ru]=(2) Системные вызовы -Name[se]=(2) Vuogádatgohččumat -Name[si]=(2) පද්ධතිය ඇමතුම් -Name[sk]=(2) Systémové volania -Name[sl]=(2) Sistemski klici -Name[sr]=(2) Системски позиви -Name[sr@ijekavian]=(2) Системски позиви -Name[sr@ijekavianlatin]=(2) Sistemski pozivi -Name[sr@latin]=(2) Sistemski pozivi -Name[sv]=(2) Systemanrop -Name[ta]=(2) கணினி அழைப்புகள் -Name[te]=(2) వ్యవస్థ కాల్స్ -Name[tg]=(2) Зангҳои система -Name[th]=(2) คำสั่งต่าง ๆ ของระบบ -Name[tr]=(2) Sistem Çağrıları -Name[ug]=(2) سىستېما چاقىرىشلىرى -Name[uk]=(2) Системні виклики -Name[uz]=(2) Tizim chaqiruvlari -Name[uz@cyrillic]=(2) Тизим чақирувлари -Name[vi]=(2) Lệnh gọi hệ thống -Name[wa]=(2) Houcaedjes sistinme -Name[x-test]=xx(2) System Callsxx -Name[zh_CN]=(2) 系统调用 -Name[zh_TW]=(2) 系統呼叫 - -X-DocPath=man:/(2) diff --git a/khelpcenter/plugins/Manpages/man3.desktop b/khelpcenter/plugins/Manpages/man3.desktop deleted file mode 100644 index bcf2e035..00000000 --- a/khelpcenter/plugins/Manpages/man3.desktop +++ /dev/null @@ -1,92 +0,0 @@ -[Desktop Entry] -Name=(3) Subroutines -Name[af]=(3) Subroetines -Name[ar]=(3) الوظائف الفرعية -Name[ast]=(3) Subrutines -Name[be]=(3) Падпраграмы -Name[be@latin]=(3) Padpracedury -Name[bg]=(3) Подпрограми -Name[bn]=(3) সাবরুটিন -Name[bn_IN]=(৩) সাব-রুটিন -Name[br]=(3) Isroudennadoù -Name[bs]=(3) Potprogrami -Name[ca]=(3) Subrutines -Name[ca@valencia]=(3) Subrutines -Name[cs]=(3) Funkce -Name[csb]=(3) Pòdprogramë -Name[cy]=(3) Is-reolweithiau -Name[da]=(3) Subrutiner -Name[de]=(3) Funktionsaufrufe -Name[el]=(3) Υπορουτίνες -Name[en_GB]=(3) Subroutines -Name[eo]=(3) Proceduroj -Name[es]=(3) Subrutinas -Name[et]=(3) Alamfunktsioonid -Name[eu]=(3) Azpirrutinak -Name[fa]=(۳) زیرروالها -Name[fi]=(3) Aliohjelmat -Name[fr]=(3) Sous-programmes -Name[fy]=(3) Subroutines -Name[ga]=(3) Foghnáthaimh -Name[gl]=(3) Subrutinas -Name[gu]=(૩) સબરૂટિનો -Name[he]=תת־שגרות (3) -Name[hi]=(3) सबरूटीन्स -Name[hne]=(3) सबरूटीन्स -Name[hr]=(3) Pod-rutine -Name[hsb]=(3) Subrutiny -Name[hu]=(3) Eljárások -Name[ia]=(3) Subroutines -Name[id]=(3) Subrutin -Name[is]=(3) Stefjur -Name[it]=(3) Procedure -Name[ja]=(3) サブルーチン -Name[ka]=(3) პროცედურები -Name[kk]=(3) Процедуралар -Name[km]=(៣) ទម្រង់ការ​រង -Name[kn]=(೩) ಆಂಶಿಕಕ್ರಮವಿಧಿ (ಸಬ್ರೊಟೀನ್) -Name[ko]=(3) 서브루틴 -Name[ku]=(3) Rûtînên Binî -Name[lt]=(3) Paprogramės -Name[lv]=(3) Subrutīnas -Name[mai]=(3) सबरूटीन्स -Name[mk]=(3) Потпрограми -Name[ml]=(3) സബ്റൂട്ടീനുകള്‍ -Name[mr]=(3) सबरूटीन्स -Name[ms]=(3) Subrutin -Name[nb]=(3) Delrutiner -Name[nds]=(3) Funkschonen -Name[ne]=(३) सहायक कार्यतालिका -Name[nl]=(3) Subroutines -Name[nn]=(3) Subrutinar -Name[or]=(3) Subroutines -Name[pa]=(3) ਸਬ-ਰੂਟੀਨ -Name[pl]=(3) Podprogramy -Name[pt]=(3) Sub-rotinas -Name[pt_BR]=(3) Sub-rotinas -Name[ro]=(3) Subrutine -Name[ru]=(3) Процедуры -Name[se]=(3) Vuollerutiinnat -Name[si]=(3) උප රූටිනය -Name[sk]=(3) Podprogramy -Name[sl]=(3) Podprogrami -Name[sr]=(3) Потпрограми -Name[sr@ijekavian]=(3) Потпрограми -Name[sr@ijekavianlatin]=(3) Potprogrami -Name[sr@latin]=(3) Potprogrami -Name[sv]=(3) Subrutiner -Name[ta]=(3)மற்ற நடைமுறைகள் -Name[te]=(3) సబ్ రొటిన్లు -Name[tg]=(3) Зербарномаҳо -Name[th]=(3) รูทีนย่อยต่าง ๆ -Name[tr]=(3) Alt Yordamlar -Name[ug]=(3) تارماق جەريان -Name[uk]=(3) Підпрограми -Name[vi]=(3) Chương trình con -Name[wa]=(3) Fonccions di programaedje -Name[xh]=(3) Ulwenzeko rhoqo olusezantsi -Name[x-test]=xx(3) Subroutinesxx -Name[zh_CN]=(3) 子程序 -Name[zh_TW]=(3) 子程式 - -X-DocPath=man:/(3) diff --git a/khelpcenter/plugins/Manpages/man4.desktop b/khelpcenter/plugins/Manpages/man4.desktop deleted file mode 100644 index c53487b7..00000000 --- a/khelpcenter/plugins/Manpages/man4.desktop +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] -Name=(4) Devices -Name[af]=(4) Toestelle -Name[ar]=(4) الأجهزة -Name[ast]=(4) Preseos -Name[be]=(4) Прылады -Name[be@latin]=(4) Pryłady -Name[bg]=(4) Устройства -Name[bn]=(4) ডিভাইস -Name[bn_IN]=(৪) ডিভাইস -Name[br]=(4) Trobarzhelloù -Name[bs]=(4) Uređaji -Name[ca]=(4) Dispositius -Name[ca@valencia]=(4) Dispositius -Name[cs]=(4) Zařízení -Name[csb]=(4) Ùrządzenia -Name[cy]=(4) Dyfeisiau -Name[da]=(4) Enheder -Name[de]=(4) Geräte -Name[el]=(4) Συσκευές -Name[en_GB]=(4) Devices -Name[eo]=(4) Aparatoj -Name[es]=(4) Dispositivos -Name[et]=(4) Seadmed -Name[eu]=(4) Gailuak -Name[fa]=(۴) دستگاهها -Name[fi]=(4) Laitteet -Name[fr]=(4) Périphériques -Name[fy]=(4) Apparaten -Name[ga]=(4) Gléasra -Name[gl]=(4) Dispositivos -Name[gu]=(૪) ઉપકરણો -Name[he]=התקנים (4) -Name[hi]=(4) औज़ार -Name[hne]=(4) उपकरन -Name[hr]=(4) Uređaji -Name[hsb]=(4) Graty -Name[hu]=(4) Eszközök -Name[ia]=(4) Dispositivos -Name[id]=(4) Divais -Name[is]=(4) Tæki -Name[it]=(4) Dispositivi -Name[ja]=(4) デバイス -Name[ka]=(4) მოწყობილობები -Name[kk]=(4) Құрылғылар -Name[km]=(៤) ឧបករណ៍ -Name[kn]=(೪) ಸಾಧನಗಳು -Name[ko]=(4) 장치 -Name[ku]=(4) Cîhaz -Name[lt]=(4) Įrenginiai -Name[lv]=(4) Ierīces -Name[mai]=(4) अओजार -Name[mk]=(4) Уреди -Name[ml]=(4) ഉപകരണങ്ങള്‍ -Name[mr]=(4) साधन -Name[ms]=(4) Peranti -Name[nb]=(4) Enheter -Name[nds]=(4) Reedschappen -Name[ne]=(४) यन्त्र -Name[nl]=(4) Apparaten -Name[nn]=(4) Einingar -Name[oc]=(4) Periferics -Name[or]=(4) ଉପକରଣଗୁଡ଼ିକ -Name[pa]=(4) ਜੰਤਰ -Name[pl]=(4) Urządzenia -Name[pt]=(4) Dispositivos -Name[pt_BR]=(4) Dispositivos -Name[ro]=(4) Dispozitive -Name[ru]=(4) Устройства -Name[se]=(4) Ovttadagat -Name[si]=(4) මෙවලම් -Name[sk]=(4) Zariadenia -Name[sl]=(4) Naprave -Name[sr]=(4) Уређаји -Name[sr@ijekavian]=(4) Уређаји -Name[sr@ijekavianlatin]=(4) Uređaji -Name[sr@latin]=(4) Uređaji -Name[sv]=(4) Enheter -Name[ta]=(4) சாதனங்கள் -Name[te]=(4) పరికరాలు -Name[tg]=(4) Дастгоҳҳо -Name[th]=(4) อุปกรณ์ต่าง ๆ -Name[tr]=(4) Aygıtlar -Name[ug]=(4) ئۈسكۈنە -Name[uk]=(4) Пристрої -Name[uz]=(4) Uskunalar -Name[uz@cyrillic]=(4) Ускуналар -Name[vi]=(4) Thiết bị -Name[wa]=(4) Éndjins -Name[xh]=(4) Amacebo -Name[x-test]=xx(4) Devicesxx -Name[zh_CN]=(4) 设备 -Name[zh_TW]=(4) 裝置 - -X-DocPath=man:/(4) diff --git a/khelpcenter/plugins/Manpages/man5.desktop b/khelpcenter/plugins/Manpages/man5.desktop deleted file mode 100644 index b9bac793..00000000 --- a/khelpcenter/plugins/Manpages/man5.desktop +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] -Name=(5) File Formats -Name[af]=(5) Lêerformate -Name[ar]=(5) صيغ الملفات -Name[ast]=(5) Formatos de ficheros -Name[be]=(5) Фарматы файлаў -Name[be@latin]=(5) Farmaty fajłaŭ -Name[bg]=(5) Файлови формати -Name[bn]=(5) ফাইল ফরম্যাট -Name[bn_IN]=(৫) ফাইলের বিন্যাস -Name[br]=(5) Furmadoù ar restroù -Name[bs]=(5) Formati datoteka -Name[ca]=(5) Formats de fitxers -Name[ca@valencia]=(5) Formats de fitxers -Name[cs]=(5) Datové formáty -Name[csb]=(5) Fòrmatë lopków -Name[cy]=(5) Fformatau Ffeil -Name[da]=(5) Filformater -Name[de]=(5) Dateiformate -Name[el]=(5) Μορφές αρχείων -Name[en_GB]=(5) File Formats -Name[eo]=(5) Dosieraranĝoj -Name[es]=(5) Formatos de archivos -Name[et]=(5) Failivormingud -Name[eu]=(5) Fitxategi-formatuak -Name[fa]=(۵) قالبهای پرونده -Name[fi]=(5) Tiedostomuodot -Name[fr]=(5) Formats de fichiers -Name[fy]=(5) Triemopmaak -Name[ga]=(5) Formáidí Comhaid -Name[gl]=(5) Formatos de ficheiro -Name[gu]=(૫) ફાઇલ બંધારણો -Name[he]=תבניות קבצים (5) -Name[hi]=(5) फ़ाइल फार्मेट्स -Name[hne]=(5) फाइल फार्मेट्स -Name[hr]=(5) Oblici datoteka -Name[hsb]=(5) Datajowe formaty -Name[hu]=(5) Fájlformátumok -Name[ia]=(5) Formatos de File -Name[id]=(5) Format Berkas -Name[is]=(5) Skráasnið -Name[it]=(5) Formati di file -Name[ja]=(5) ファイルフォーマット -Name[ka]=(5) ფაილთა ფორმატები -Name[kk]=(5) Файл пішімдері -Name[km]=(៥) ទ្រង់ទ្រាយ​ឯកសារ -Name[kn]=(೫)ಕಡತ ಕ್ರಮವ್ಯವಸ್ಥೆ (ಫಾರ್ಮಾಟ್) -Name[ko]=(5) 파일 형식 -Name[ku]=(5) Formatên Pelan -Name[lt]=(5) Failų formatai -Name[lv]=(5) Failu formāti -Name[mai]=(5) फाइल फार्मेट्स -Name[mk]=(5) Формати на датотеки -Name[ml]=(5) ഫയല്‍ ഫോര്‍മാറ്റുകള്‍ -Name[mr]=(5) फाईल फार्मेट्स -Name[ms]=(5) Format Fail -Name[nb]=(5) Filformat -Name[nds]=(5) Dateiformaten -Name[ne]=(५) फाइल ढाँचा -Name[nl]=(5) Bestandsformaten -Name[nn]=(5) Filformat -Name[oc]=(5) Formats de fichièrs -Name[or]=(5) ଫାଇଲ ଶୈଳୀଗୁଡ଼ିକ -Name[pa]=(5) ਫਾਇਲ ਫਾਰਮੈਟ -Name[pl]=(5) Formaty plików -Name[pt]=(5) Formatos de Ficheiros -Name[pt_BR]=(5) Formatos de arquivo -Name[ro]=(5) Formate de fișiere -Name[ru]=(5) Форматы файлов -Name[se]=(5) Fiilaformáhtat -Name[si]=(5) ගොනු සංයුති -Name[sk]=(5) Formáty súborov -Name[sl]=(5) Vrste datotek -Name[sr]=(5) Формати фајлова -Name[sr@ijekavian]=(5) Формати фајлова -Name[sr@ijekavianlatin]=(5) Formati fajlova -Name[sr@latin]=(5) Formati fajlova -Name[sv]=(5) Filformat -Name[ta]=(5) கோப்பு வடிவமைப்புகள் -Name[te]=(5) దస్త్ర ఫార్మెట్లు -Name[tg]=(5) Намудҳои файл -Name[th]=(5) รูปแบบแฟ้มต่าง ๆ -Name[tr]=(5) Dosya Biçimleri -Name[ug]=(5) ھۆججەت پىچىملىرى -Name[uk]=(5) Формати файлів -Name[uz]=(5) Fayl formatlari -Name[uz@cyrillic]=(5) Файл форматлари -Name[vi]=(5) Định dạng Tập tin -Name[wa]=(5) Sôres di fitchîs -Name[xh]=(5) Ifomati Yeefayile -Name[x-test]=xx(5) File Formatsxx -Name[zh_CN]=(5) 文件格式 -Name[zh_TW]=(5) 檔案格式 - -X-DocPath=man:/(5) diff --git a/khelpcenter/plugins/Manpages/man6.desktop b/khelpcenter/plugins/Manpages/man6.desktop deleted file mode 100644 index e29efdcb..00000000 --- a/khelpcenter/plugins/Manpages/man6.desktop +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] -Name=(6) Games -Name[af]=(6) Speletjies -Name[ar]=(6) الألعاب -Name[ast]=(6) Xuegos -Name[be]=(6) Гульні -Name[be@latin]=(6) Hulni -Name[bg]=(6) Игри -Name[bn]=(6) খেলা -Name[bn_IN]=(৬) খেলা -Name[br]=(6) C'hoarioù -Name[bs]=(6) Igre -Name[ca]=(6) Jocs -Name[ca@valencia]=(6) Jocs -Name[cs]=(6) Hry -Name[csb]=(6) Grë -Name[cy]=(6) Gemau -Name[da]=(6) Spil -Name[de]=(6) Spiele -Name[el]=(6) Παιχνίδια -Name[en_GB]=(6) Games -Name[eo]=(6) Ludoj -Name[es]=(6) Juegos -Name[et]=(6) Mängud -Name[eu]=(6) Jokoak -Name[fa]=(۶) بازیها -Name[fi]=(6) Pelit -Name[fr]=(6) Jeux -Name[fy]=(6) Spultsjes -Name[ga]=(6) Cluichí -Name[gl]=(6) Xogos -Name[gu]=(૬) રમતો -Name[he]=משחקים (6) -Name[hi]=(6) खेल -Name[hne]=(6) खेल -Name[hr]=(6) Igre -Name[hsb]=(6) Hry -Name[hu]=(6) Játékok -Name[ia]=(6) Jocos -Name[id]=(6) Permainan -Name[is]=(6) Leikir -Name[it]=(6) Giochi -Name[ja]=(6) ゲーム -Name[ka]=(6) თამაშები -Name[kk]=(6) Ойындар -Name[km]=(៦) ល្បែង -Name[kn]=(೬)ಆಟಗಳು -Name[ko]=(6) 게임 -Name[ku]=(6) Lîstik -Name[lt]=(6) Žaidimai -Name[lv]=(6) Spēles -Name[mai]=(6) खेल -Name[mk]=(6) Игри -Name[ml]=(6) കളികള്‍ -Name[mr]=(6) खेळ -Name[ms]=(6) Permainan -Name[nb]=(6) Spill -Name[nds]=(6) Spelen -Name[ne]=(६) खेल -Name[nl]=(6) Spelletjes -Name[nn]=(6) Spel -Name[oc]=(6) Jòcs -Name[or]=(6) ଖେଳଗୁଡ଼ିକ -Name[pa]=(6) ਖੇਡਾਂ -Name[pl]=(6) Gry -Name[pt]=(6) Jogos -Name[pt_BR]=(6) Jogos -Name[ro]=(6) Jocuri -Name[ru]=(6) Игры -Name[se]=(6) Spealut -Name[si]=(6) ක්‍රීඩා -Name[sk]=(6) Hry -Name[sl]=(6) Igre -Name[sr]=(6) Игре -Name[sr@ijekavian]=(6) Игре -Name[sr@ijekavianlatin]=(6) Igre -Name[sr@latin]=(6) Igre -Name[sv]=(6) Spel -Name[ta]=(6) விளையாட்டுகள் -Name[te]=(6) ఆటలు -Name[tg]=(6) Бозиҳо -Name[th]=(6) เกมต่าง ๆ -Name[tr]=(6) Oyunlar -Name[ug]=(6) ئويۇنلار -Name[uk]=(6) Ігри -Name[uz]=(6) Oʻyinlar -Name[uz@cyrillic]=(6) Ўйинлар -Name[vi]=(6) Trò chơi -Name[wa]=(6) Djeus -Name[xh]=(6) Imidlalo -Name[x-test]=xx(6) Gamesxx -Name[zh_CN]=(6) 游戏 -Name[zh_TW]=(6) 遊戲 - -X-DocPath=man:/(6) diff --git a/khelpcenter/plugins/Manpages/man7.desktop b/khelpcenter/plugins/Manpages/man7.desktop deleted file mode 100644 index b5476714..00000000 --- a/khelpcenter/plugins/Manpages/man7.desktop +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] -Name=(7) Miscellaneous -Name[af]=(7) Allerlei -Name[ar]=(7) متنوع -Name[ast]=(7) Dellos -Name[be]=(7) Рознае -Name[be@latin]=(7) Roznaje -Name[bg]=(7) Разни -Name[bn]=(7) বিবিধ -Name[bn_IN]=(৭) বিবিধ -Name[br]=(7) A bep seurt -Name[bs]=(7) Razno -Name[ca]=(7) Miscel·lània -Name[ca@valencia]=(7) Miscel·lània -Name[cs]=(7) Různé -Name[csb]=(7) Wszelejaczé -Name[cy]=(7) Amrwyiol -Name[da]=(7) Diverse -Name[de]=(7) Verschiedenes -Name[el]=(7) Διάφορα -Name[en_GB]=(7) Miscellaneous -Name[eo]=(7) Diversaĵoj -Name[es]=(7) Varios -Name[et]=(7) Muud -Name[eu]=(7) Beste zenbait -Name[fa]=(۷) متفرقه -Name[fi]=(7) Sekalaista -Name[fr]=(7) Divers -Name[fy]=(7) Ferskate -Name[ga]=(7) Rudaí éagsúla -Name[gl]=(7) Diversas -Name[gu]=(૭) અન્ય -Name[he]=שונות (7) -Name[hi]=(7) विविध -Name[hne]=(7) विविध -Name[hr]=(7) Razno -Name[hsb]=(7) Wšelake -Name[hu]=(7) Egyéb -Name[ia]=(7) Miscellanea -Name[id]=(7) Lain-lain -Name[is]=(7) Ýmislegt -Name[it]=(7) Varie -Name[ja]=(7) その他 -Name[ka]=(7) სხვადასხვა -Name[kk]=(7) Әр түрлі -Name[km]=(៧) ផ្សេងៗ -Name[kn]=(೭) ಇತರೆ -Name[ko]=(7) 기타 -Name[ku]=(7) Cur be cur -Name[lt]=(7) Įvairūs dalykai -Name[lv]=(7) Dažādi -Name[mai]=(7) विविध -Name[mk]=(7) Разно -Name[ml]=(7) പലവക -Name[mr]=(7) किरकोळ -Name[ms]=(7) Pelbagai -Name[nb]=(7) Diverse -Name[nds]=(7) Annerswat -Name[ne]=(७) विविध -Name[nl]=(7) Diversen -Name[nn]=(7) Ymse -Name[oc]=(7) Divèrs -Name[or]=(7) ମିଶ୍ରିତ -Name[pa]=(7) ਫੁਟਕਲ -Name[pl]=(7) Różne -Name[pt]=(7) Diversos -Name[pt_BR]=(7) Diversos -Name[ro]=(7) Diverse -Name[ru]=(7) Разное -Name[se]=(7) Feará mii -Name[si]=(7) විවිධ -Name[sk]=(7) Rôzne -Name[sl]=(7) Razno -Name[sr]=(7) Разно -Name[sr@ijekavian]=(7) Разно -Name[sr@ijekavianlatin]=(7) Razno -Name[sr@latin]=(7) Razno -Name[sv]=(7) Diverse -Name[ta]=(7) மற்ற -Name[te]=(7) ఇతర -Name[tg]=(7) Барномаҳои гуногун -Name[th]=(7) เบ็ดเตล็ด -Name[tr]=(7) Çeşitli -Name[ug]=(7) باشقىلار -Name[uk]=(7) Різне -Name[uz]=(7) Har xil -Name[uz@cyrillic]=(7) Ҳар хил -Name[vi]=(7) Khác -Name[wa]=(7) Totès sôres -Name[xh]=(7) Ezixubeneyo -Name[x-test]=xx(7) Miscellaneousxx -Name[zh_CN]=(7) 杂项 -Name[zh_TW]=(7) 雜項 - -X-DocPath=man:/(7) diff --git a/khelpcenter/plugins/Manpages/man8.desktop b/khelpcenter/plugins/Manpages/man8.desktop deleted file mode 100644 index ce089855..00000000 --- a/khelpcenter/plugins/Manpages/man8.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Name=(8) Sys. Administration -Name[af]=(8) Sys. Administrasie -Name[ar]=(8) إدارة النظام -Name[ast]=(8) Alministración del sistema -Name[be]=(8) Сістэмнае адміністраванне -Name[be@latin]=(8) Systemnaje administravańnie -Name[bg]=(8) Администрация -Name[bn]=(8) সিস্টেম অ্যাডমিনস্ট্রেশন -Name[bn_IN]=(৮) সিস্টেম অ্যাডমিনিস্ট্রেশন -Name[br]=(8) Melestradur ar reizhiad -Name[bs]=(8) Administracija sistema -Name[ca]=(8) Administració del sistema -Name[ca@valencia]=(8) Administració del sistema -Name[cs]=(8) Správa systému -Name[csb]=(8) Sprôwianié systemą -Name[cy]=(8) Gweinyddiaeth Cysawd -Name[da]=(8) Systemadministration -Name[de]=(8) Systemverwaltung -Name[el]=(8) Διαχείριση συστήματος -Name[en_GB]=(8) Sys. Administration -Name[eo]=(8) Sistemadministrado -Name[es]=(8) Administración del sistema -Name[et]=(8) Süsteemi haldamine -Name[eu]=(8) Sist.-administrazioa -Name[fa]=(۸) سرپرستی سیستم -Name[fi]=(8) Järjestelmänhallinta -Name[fr]=(8) Administration système -Name[fy]=(8) Systeembehear -Name[ga]=(8) Riarachán an Chórais -Name[gl]=(8) Administración do sistema -Name[gu]=(૮) સિસ્ટમ સંચાલન -Name[he]=ניהול המערכת (8) -Name[hi]=(8) तंत्र प्रशासन -Name[hne]=(8) तंत्र प्रसासन -Name[hr]=(8) Administracija sustava -Name[hsb]=(8) Zarjadowanje systema -Name[hu]=(8) Rendszeradminisztráció -Name[ia]=(8) Sys. Administration -Name[id]=(8) Administrasi Sistem -Name[is]=(8) Kerfisstjórnun -Name[it]=(8) Amministrazione di sistema -Name[ja]=(8) システム管理 -Name[ka]=(8) სისტემური ადმინისტრირება -Name[kk]=(8) Жүйе әкімшілігі -Name[km]=(៨) ការ​គ្រប់គ្រង​ប្រព័ន្ធ -Name[kn]=(೮) ಗಣಕವ್ಯವಸ್ಥೆಯ ನಿರ್ವಹಣೆ -Name[ko]=(8) 시스템 관리 -Name[ku]=(8) Gerînendetiya Pergale -Name[lt]=(8) Sist. administravimas -Name[lv]=(8) Sistēmas administrācija -Name[mai]=(8) तंत्र प्रशासन -Name[mk]=(8) Системска администрација -Name[ml]=(8) സിസ്റ്റത്തിന്റെ ഭരണം -Name[mr]=(8) प्रणाली प्रशासन -Name[ms]=(8) Pentadbiran Sistem -Name[nb]=(8) Systemadministrasjon -Name[nds]=(8) Systeempleeg -Name[ne]=(८) प्रणाली प्रशासन -Name[nl]=(8) Systeembeheer -Name[nn]=(8) Systemadministrasjon -Name[or]=(8) ତନ୍ତ୍ର ପ୍ରଶାସକ -Name[pa]=(8) ਸਿਸਟਮ ਪਰਸ਼ਾਸ਼ਨ -Name[pl]=(8) Administracja systemu -Name[pt]=(8) Administração do Sistema -Name[pt_BR]=(8) Administração do sistema -Name[ro]=(8) Administrare de sistem -Name[ru]=(8) Системное администрирование -Name[se]=(8) Vuogádathálddašeapmi -Name[si]=(8) පද්ධති පරිපාලනය -Name[sk]=(8) Administrácia systému -Name[sl]=(8) Sistemsko skrbništvo -Name[sr]=(8) Администрација система -Name[sr@ijekavian]=(8) Администрација система -Name[sr@ijekavianlatin]=(8) Administracija sistema -Name[sr@latin]=(8) Administracija sistema -Name[sv]=(8) Systemadministration -Name[ta]=(8) கணினி-நிர்வாகம் -Name[te]=(8) వ్యవస్థ నిర్వహణ -Name[tg]=(8) Мудирияти система -Name[th]=(8) ผู้ดูแลระบบ -Name[tr]=(8) Sistem Yönetimi -Name[ug]=(8) سىستېما باشقۇرۇش -Name[uk]=(8) Сист. адміністрування -Name[uz]=(8) Tizimni boshqarish -Name[uz@cyrillic]=(8) Тизимни бошқариш -Name[vi]=(8) Quản trị Hệ thống -Name[wa]=(8) Manaedjmint do sistinme -Name[xh]=(8) Sys. Administration -Name[x-test]=xx(8) Sys. Administrationxx -Name[zh_CN]=(8) 系统管理 -Name[zh_TW]=(8) 系統管理 - -X-DocPath=man:/(8) diff --git a/khelpcenter/plugins/Manpages/man9.desktop b/khelpcenter/plugins/Manpages/man9.desktop deleted file mode 100644 index 27e14173..00000000 --- a/khelpcenter/plugins/Manpages/man9.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Name=(9) Kernel -Name[af]=(9) Kern -Name[ar]=(9) النواة -Name[ast]=(9) Nucleu -Name[be]=(9) Ядро -Name[be@latin]=(9) Jadro -Name[bg]=(9) Ядро -Name[bn]=(9) কার্নেল -Name[bn_IN]=(৯) কার্নেল (Kernel) -Name[br]=(9) Kalon -Name[bs]=(9) Kernel -Name[ca]=(9) Nucli -Name[ca@valencia]=(9) Nucli -Name[cs]=(9) Jádro -Name[csb]=(9) Jądro systemë -Name[cy]=(9) Cnewyllen -Name[da]=(9) Kerne -Name[de]=(9) Kernel -Name[el]=(9) Πυρήνας -Name[en_GB]=(9) Kernel -Name[eo]=(9) Kerno -Name[es]=(9) Núcleo -Name[et]=(9) Kernel -Name[eu]=(9) Nukleoa -Name[fa]=(۹) هسته -Name[fi]=(9) Ydin -Name[fr]=(9) Noyau (Kernel) -Name[fy]=(9) Kernel -Name[ga]=(9) Eithne -Name[gl]=(9) Núcleo -Name[gu]=(૯) કર્નલ -Name[he]=גרעין (9) -Name[hi]=(9) कर्नेल -Name[hne]=(9) कर्नेल -Name[hr]=(9) Kernel -Name[hsb]=(9) Kernel -Name[hu]=(9) Kernel -Name[ia]=(9) Kernel -Name[id]=(9) Kernel -Name[is]=(9) Kjarni -Name[it]=(9) Kernel -Name[ja]=(9) カーネル -Name[ka]=(9) ბირთვი -Name[kk]=(9) Өзегі -Name[km]=(៩) ខឺណែល -Name[kn]=(೯) ತಿರುಳು (ಕೆರ್ನಲ್) -Name[ko]=(9) 커널 -Name[ku]=(9) Kernel (Kakîl) -Name[lt]=(9) Branduolys -Name[lv]=(9) Kodols -Name[mai]=(9) कर्नेल -Name[mk]=(9) Кернел -Name[ml]=(9) കെര്‍ണല്‍ -Name[mr]=(9) कर्नल -Name[ms]=(9) Kernel -Name[nb]=(9) Kjerne -Name[nds]=(9) Kernel (Karn vun't Bedriefsysteem) -Name[ne]=(९) कर्नेल -Name[nl]=(9) Kernel -Name[nn]=(9) Kjerne -Name[or]=(9) କର୍ଣ୍ଣଲ -Name[pa]=(9) ਕਰਨਲ -Name[pl]=(9) Jądro systemu -Name[pt]=(9) 'Kernel' -Name[pt_BR]=(9) Kernel -Name[ro]=(9) Nucleu -Name[ru]=(9) Ядро -Name[se]=(9) Čoahkku -Name[si]=(9) කර්ණලය -Name[sk]=(9) Kernel -Name[sl]=(9) Jedro -Name[sr]=(9) Кернел -Name[sr@ijekavian]=(9) Кернел -Name[sr@ijekavianlatin]=(9) Kernel -Name[sr@latin]=(9) Kernel -Name[sv]=(9) Kärna -Name[ta]=(9) கெர்னல் -Name[te]=(9) కెర్నెల్ -Name[tg]=(9) Мағзи система -Name[th]=(9) เคอร์เนล -Name[tr]=(9) Çekirdek -Name[ug]=(9) يادروسى -Name[uk]=(9) Ядро -Name[uz]=(9) Kernel -Name[uz@cyrillic]=(9) Кернел -Name[vi]=(9) Hạt nhân -Name[wa]=(9) Fonccions do nawea linux -Name[xh]=(9) Kernel -Name[x-test]=xx(9) Kernelxx -Name[zh_CN]=(9) 内核 -Name[zh_TW]=(9) 核心 - -X-DocPath=man:/(9) diff --git a/khelpcenter/plugins/Manpages/mann.desktop b/khelpcenter/plugins/Manpages/mann.desktop deleted file mode 100644 index c930eea6..00000000 --- a/khelpcenter/plugins/Manpages/mann.desktop +++ /dev/null @@ -1,94 +0,0 @@ -[Desktop Entry] -Name=(n) New -Name[af]=(n) Nuwe -Name[ar]=(n) جديد -Name[ast]=(n) Nuevu -Name[be]=(n) Новыя -Name[be@latin]=(n) Novaje -Name[bg]=(n) Нови -Name[bn]=(n) নতুন -Name[bn_IN]=(n) নতুন -Name[br]=(n) Nevez -Name[bs]=(n) Novo -Name[ca]=(n) Nou -Name[ca@valencia]=(n) Nou -Name[cs]=(n) Nové -Name[csb]=(n) Nowé -Name[cy]=(n) Newydd -Name[da]=(n) Ny -Name[de]=(n) Neu -Name[el]=(n) Νέο -Name[en_GB]=(n) New -Name[eo]=(n) Nova -Name[es]=(n) Nuevo -Name[et]=(n) Uus -Name[eu]=(n) Berria -Name[fa]=(n) جدید -Name[fi]=(n) Uudet -Name[fr]=(n) Nouveautés -Name[fy]=(n) Nij -Name[ga]=(n) Nua -Name[gl]=(n) Novo -Name[gu]=(n) નવું -Name[he]=חדש (n) -Name[hi]=(n) नया -Name[hne]=(n) नवा -Name[hr]=(n) Novo -Name[hsb]=(n) Nowe -Name[hu]=(n) Új -Name[ia]=(n) Nove -Name[id]=(n) Baru -Name[is]=(n) Nýtt -Name[it]=(n) Nuovi -Name[ja]=(n) 新規 -Name[ka]=(n) ახალი -Name[kk]=(n) Жаңа -Name[km]=(n) ថ្មី -Name[kn]=(n)ಹೊಸ -Name[ko]=(n) 새로운 항목 -Name[ku]=(n) Nû -Name[lt]=(n) Nauji dalykai -Name[lv]=(n) Jauns -Name[mai]=(n) नवीन -Name[mk]=(n) Нови -Name[ml]=(n) പുതിയ -Name[mr]=(n) नवीन -Name[ms]=(n) Baru -Name[nb]=(n) Ny -Name[nds]=(n) Nieg -Name[ne]=(n) नयाँ -Name[nl]=(n) Nieuw -Name[nn]=(n) Ny -Name[or]=(n) ନୂତନ -Name[pa]=(n) ਨਵਾਂ -Name[pl]=(n) nowe -Name[pt]=(n) Novos -Name[pt_BR]=(n) Novos -Name[ro]=(n) Nou -Name[ru]=(n) Новые -Name[se]=(n) Ođđa -Name[si]=(n) නව -Name[sk]=(n) Nové -Name[sl]=(n) Novo -Name[sr]=(n) Ново -Name[sr@ijekavian]=(n) Ново -Name[sr@ijekavianlatin]=(n) Novo -Name[sr@latin]=(n) Novo -Name[sv]=(n) Ny -Name[ta]=(n) புதிய -Name[te]=(n) కొత్త -Name[tg]=(н) Нав -Name[th]=(n) หมวดใหม่ -Name[tr]=(n) Yeni -Name[ug]=(n) يېڭى -Name[uk]=(n) Нові -Name[uz]=(n) Yangi -Name[uz@cyrillic]=(n) Янги -Name[vi]=(n) Mới -Name[wa]=(n) Noveas -Name[xh]=(n) Entsha -Name[x-test]=xx(n) Newxx -Name[zh_CN]=(n) 新建 -Name[zh_TW]=(n) 新 - -X-DocPath=man:/(n) diff --git a/khelpcenter/plugins/Scrollkeeper/.directory b/khelpcenter/plugins/Scrollkeeper/.directory deleted file mode 100644 index b0cba935..00000000 --- a/khelpcenter/plugins/Scrollkeeper/.directory +++ /dev/null @@ -1,88 +0,0 @@ -[Desktop Entry] -Name=Scrollkeeper -Name[af]=Scrollkeeper -Name[ar]=حافظ التمرير -Name[ast]=Scrollkeeper -Name[be]=Scrollkeeper -Name[be@latin]=Scrollkeeper -Name[bg]=Scrollkeeper -Name[bn]=স্ক্রোলকীপার -Name[bn_IN]=স্ক্রোল-কিপার -Name[bs]=Čuvar svitaka -Name[ca]=Scrollkeeper -Name[ca@valencia]=Scrollkeeper -Name[cs]=Scrollkeeper -Name[csb]=Scrollkeeper -Name[da]=Scrollkeeper -Name[de]=Scrollkeeper -Name[el]=Scrollkeeper -Name[en_GB]=Scrollkeeper -Name[es]=Scrollkeeper -Name[et]=Scrollkeeper -Name[eu]=Scrollkeeper -Name[fa]=Scrollkeeper -Name[fi]=Scrollkeeper -Name[fr]=Scrollkeeper -Name[fy]=Skowhâlder -Name[ga]=Scrollkeeper -Name[gl]=Scrollkeeper -Name[gu]=સ્ક્રોલકિપર -Name[he]=Scrollkeeper -Name[hi]=स्क्रॉलकीपर -Name[hne]=स्क्रालकीपर -Name[hr]=Scrollkeeper -Name[hsb]=Scrollkeeper -Name[hu]=Scrollkeeper -Name[ia]=Scrollkeeper (mantenitor de rolo) -Name[id]=Scrollkeeper -Name[is]=Scrollkeeper -Name[it]=Scrollkeeper -Name[ja]=Scrollkeeper -Name[kk]=Scrollkeeper -Name[km]=ឧបករណ៍​រក្សា​រមូរ​ -Name[kn]=ಸುರುಳು ಪಾಲಕ (ಸ್ಕ್ರಾಲ್ ಕೀಪರ್) -Name[ko]=읽을 거리 -Name[ku]=Scrollkeeper -Name[lt]=Scrollkeeper -Name[lv]=Scrollkeeper -Name[mai]=स्क्रालकीपर -Name[mk]=Scrollkeeper -Name[ml]=സ്ക്രോള്‍കീപ്പര്‍ -Name[mr]=स्क्रोलकीपर -Name[nb]=Scrollkeeper -Name[nds]=Scrollkeeper -Name[ne]=स्क्रोलकिपर -Name[nl]=Scrollkeeper -Name[nn]=Scrollkeeper -Name[or]=Scrollkeeper -Name[pa]=ਸਕਰੋਲਕੀਪਰ -Name[pl]=Scrollkeeper -Name[pt]=Scrollkeeper -Name[pt_BR]=Scrollkeeper -Name[ro]=Scrollkeeper -Name[ru]=Scrollkeeper -Name[se]=Scrollkeeper -Name[si]=Scrollkeeper -Name[sk]=Scrollkeeper -Name[sl]=Scrollkeeper -Name[sr]=Чувар свитака -Name[sr@ijekavian]=Чувар свитака -Name[sr@ijekavianlatin]=Čuvar svitaka -Name[sr@latin]=Čuvar svitaka -Name[sv]=Scrollkeeper -Name[ta]=மாற்றுவைப்பு -Name[te]=స్క్రాల్‌కీపర్ -Name[tg]=Дорандаи паймоиш -Name[th]=Scrollkeeper -Name[tr]=Scrollkeeper -Name[ug]=Scrollkeeper -Name[uk]=Scrollkeeper -Name[uz]=Scrollkeeper -Name[uz@cyrillic]=Scrollkeeper -Name[vi]=Scrollkeeper -Name[wa]=Scrollkeeper -Name[x-test]=xxScrollkeeperxx -Name[zh_CN]=Scrollkeeper -Name[zh_TW]=捲軸固定 -Icon=help-contents -X-DOC-Weight=550 diff --git a/khelpcenter/plugins/Scrollkeeper/CMakeLists.txt b/khelpcenter/plugins/Scrollkeeper/CMakeLists.txt deleted file mode 100644 index 8026ac97..00000000 --- a/khelpcenter/plugins/Scrollkeeper/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -install( FILES .directory scrollkeeper.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/plugins/Scrollkeeper ) - diff --git a/khelpcenter/plugins/Scrollkeeper/scrollkeeper.desktop b/khelpcenter/plugins/Scrollkeeper/scrollkeeper.desktop deleted file mode 100644 index 990c4703..00000000 --- a/khelpcenter/plugins/Scrollkeeper/scrollkeeper.desktop +++ /dev/null @@ -1,2 +0,0 @@ -[Desktop Entry] -X-KDE-KHelpcenter-Special=scrollkeeper diff --git a/khelpcenter/plugins/browsercontrolmodules.desktop b/khelpcenter/plugins/browsercontrolmodules.desktop deleted file mode 100644 index 0a39306e..00000000 --- a/khelpcenter/plugins/browsercontrolmodules.desktop +++ /dev/null @@ -1,48 +0,0 @@ -[Desktop Entry] -Name=Browser Settings Modules -Name[ar]=مستعرض دليل الإعدادات -Name[ca]=Mòduls de configuració del navegador -Name[ca@valencia]=Mòduls de configuració del navegador -Name[cs]=Moduly nastavení prohlížeče -Name[da]=Moduler til browserindstillinger -Name[de]=Browser-Einstellungsmodule -Name[el]=Αρθρώματα ρυθμίσεων του περιηγητή -Name[en_GB]=Browser Settings Modules -Name[es]=Módulos de preferencias del navegador -Name[et]=Brauseriseadistuste moodulid -Name[eu]=Arakatzaile-ezarpenen moduluak -Name[fa]=مرور پیمانه‌های تنظیمات -Name[fi]=Selaimen asetusosiot -Name[fr]=Modules des paramètres du navigateur -Name[gl]=Módulos de configuración do navegador -Name[hu]=Böngésző beállítási modulok -Name[ia]=Modulos pro navigar inter preferentias -Name[id]=Modul Pengaturan Peramban -Name[is]=Stillingaeiningar vafra -Name[ko]=브라우저 설정 모듈 -Name[nb]=Moduler for nettleser-innstillinger -Name[nds]=Nettkieker-Instellenmodulen -Name[nl]=Modules voor instellingen van de browser -Name[pa]=ਬਰਾਊਜ਼ਰ ਸੈਟਿੰਗ ਮੋਡੀਊਲ -Name[pl]=Moduły ustawień przeglądarki -Name[pt]=Módulos de Configuração do Navegador -Name[pt_BR]=Módulos de configuração do Navegador -Name[ru]=Модули настроек браузера -Name[sk]=Moduly nastavení prehliadača -Name[sl]=Moduli nastavitev brskalnika -Name[sr]=Модули поставки прегледача -Name[sr@ijekavian]=Модули поставки прегледача -Name[sr@ijekavianlatin]=Moduli postavki pregledača -Name[sr@latin]=Moduli postavki pregledača -Name[sv]=Inställningsmoduler för webbläsare -Name[tr]=Tarayıcı Ayar Modülleri -Name[uk]=Модулі параметрів перегляду інтернету -Name[x-test]=xxBrowser Settings Modulesxx -Name[zh_CN]=浏览器设置模块 -Name[zh_TW]=瀏覽器設定模組 - -Icon=preferences-system - -X-DOC-Weight=370 - -X-KDE-KHelpcenter-Special=browsercontrol diff --git a/khelpcenter/plugins/filemanagercontrolmodules.desktop b/khelpcenter/plugins/filemanagercontrolmodules.desktop deleted file mode 100644 index ea804506..00000000 --- a/khelpcenter/plugins/filemanagercontrolmodules.desktop +++ /dev/null @@ -1,48 +0,0 @@ -[Desktop Entry] -Name=Filemanager Settings Modules -Name[ar]=نماذج إعدادات مدير الملفات -Name[ca]=Mòduls de configuració del gestor de fitxers -Name[ca@valencia]=Mòduls de configuració del gestor de fitxers -Name[cs]=Moduly nastavení správce souborů -Name[da]=Moduler til filhåndteringindstillinger -Name[de]=Dateiverwaltungs-Einstellungsmodule -Name[el]=Αρθρώματα ρυθμίσεων του διαχειριστή αρχείων -Name[en_GB]=Filemanager Settings Modules -Name[es]=Módulos de preferencias del gestor de archivos -Name[et]=Failihalduri seadistuste moodulid -Name[eu]=Fitxategi-kudeatzaile-ezarpenen moduluak -Name[fa]=پیمانه‌های تنظیمات مدیر پرونده -Name[fi]=Tiedostonhallinnan asetusosiot -Name[fr]=Modules des paramètres du gestionnaire de fichiers -Name[gl]=Módulos de configuración do xestor de ficheiros -Name[hu]=Fájlkezelő beállítási modulok -Name[ia]=Modulos de Preferentias de gerente de file -Name[id]=Modul Pengaturan Manajer Berkas -Name[is]=Stillingaeiningar skráastjóra -Name[ko]=파일 관리자 설정 모듈 -Name[nb]=Moduler for filbehandler-innstillinger -Name[nds]=Dateipleger-Instellenmodulen -Name[nl]=Modules voor instellingen van de bestandsbeheerder -Name[pa]=ਫਾਇਲ-ਮੈਨੇਜਰ ਸੈਟਿੰਗ ਮੋਡੀਊਲ -Name[pl]=Moduły ustawień przeglądarki plików -Name[pt]=Módulos de Configuração do Gestor de Ficheiros -Name[pt_BR]=Módulos de configuração do Gerenciador de Arquivos -Name[ru]=Модули настроек диспетчера файлов -Name[sk]=Moduly nastavení správcu súborov -Name[sl]=Moduli nastavitev upravljalnika datotek -Name[sr]=Модули поставки менаџера фајлова -Name[sr@ijekavian]=Модули поставки менаџера фајлова -Name[sr@ijekavianlatin]=Moduli postavki menadžera fajlova -Name[sr@latin]=Moduli postavki menadžera fajlova -Name[sv]=Inställningsmoduler för filhanterare -Name[tr]=Dosya Yönetici Ayar Modülleri -Name[uk]=Модулі параметрів керування файлами -Name[x-test]=xxFilemanager Settings Modulesxx -Name[zh_CN]=文件管理器设置模块 -Name[zh_TW]=檔案管理員設定模組 - -Icon=preferences-system - -X-DOC-Weight=350 - -X-KDE-KHelpcenter-Special=filemanagercontrol diff --git a/khelpcenter/plugins/fundamentals.desktop b/khelpcenter/plugins/fundamentals.desktop deleted file mode 100644 index cf9526c5..00000000 --- a/khelpcenter/plugins/fundamentals.desktop +++ /dev/null @@ -1,61 +0,0 @@ -[Desktop Entry] -X-DocPath=help:/fundamentals/index.html -Icon=system-help -Name=KDE Fundamentals -Name[ar]=أساسيات كدي -Name[bg]=Основи на KDE -Name[bn]=কে.ডি.ই. ফান্ডামেন্টালস -Name[bs]=KDE osnove -Name[ca]=Fonaments del KDE -Name[ca@valencia]=Fonaments del KDE -Name[cs]=Základy KDE -Name[da]=KDE Fundamentals -Name[de]=KDE-Grundlagen -Name[el]=Βασικές αρχές του KDE -Name[en_GB]=KDE Fundamentals -Name[eo]=Bazoj de KDE -Name[es]=Fundamentos de KDE -Name[et]=KDE põhialused -Name[eu]=KDEren oinarriak -Name[fa]=اصول کی‌دی‌ای -Name[fi]=KDE:n perusasiat -Name[fr]=Fondamentaux de KDE -Name[ga]=Uraiceacht KDE -Name[gl]=Esenciais de KDE -Name[gu]=KDE મૂળભૂતો -Name[he]=יסודות של KDE -Name[hi]=केडीई मूल -Name[hu]=KDE Fundamentals -Name[ia]=Fundamentales de KDE -Name[id]=Fundamental KDE -Name[is]=Grunnatriði KDE -Name[it]=Fondamentali di KDE -Name[kk]=KDE негіздері -Name[km]=មូលដ្ឋាន KDE -Name[ko]=KDE 기반 -Name[lt]=KDE pagrindai -Name[mr]=केडीई मूलतत्त्व -Name[nb]=Grunnleggende KDE -Name[nds]=KDE-Grundlagen -Name[nl]=KDE-fundamentals -Name[nn]=Grunnleggjande KDE -Name[pa]=KDE ਮੂਲ -Name[pl]=Fundamenty KDE -Name[pt]=Fundamentos do KDE -Name[pt_BR]=Fundamentos do KDE -Name[ro]=Noțiuni de bază KDE -Name[ru]=Основы KDE -Name[sk]=KDE princípy -Name[sl]=Osnove KDE-ja -Name[sr]=Основе КДЕ‑а -Name[sr@ijekavian]=Основе КДЕ‑а -Name[sr@ijekavianlatin]=Osnove KDE‑a -Name[sr@latin]=Osnove KDE‑a -Name[sv]=KDE:s grunder -Name[tr]=Temel KDE Bilgileri -Name[ug]=ك د ئې(KDE) ئاساسلىرى -Name[uk]=Основи KDE -Name[wa]=Soûmints di KDE -Name[x-test]=xxKDE Fundamentalsxx -Name[zh_CN]=KDE 基础 -Name[zh_TW]=KDE 基礎 diff --git a/khelpcenter/plugins/info.desktop b/khelpcenter/plugins/info.desktop deleted file mode 100644 index 2bb89212..00000000 --- a/khelpcenter/plugins/info.desktop +++ /dev/null @@ -1,98 +0,0 @@ -[Desktop Entry] -Name=Browse Info Pages -Name[af]=Blaai deur inligting bladsye (Info pages) -Name[ar]=تصفح صفحات المعلومات -Name[ast]=Restolar pente páxines d'info -Name[be]=Праглядзець старонкі info -Name[be@latin]=Hartańnie infarmacyjnych staronak („info”) -Name[bg]=Преглед на страниците с информация -Name[bn]=ইনফো পেজ ব্রাউজ করুন -Name[bn_IN]=Info পেজ পরিদর্শন করুন -Name[br]=Furchal ar pajennoù titouroù -Name[bs]=Pregledanje info stranica -Name[ca]=Navega per les pàgines Info -Name[ca@valencia]=Navega per les pàgines Info -Name[cs]=Prohlížeč info stránek -Name[csb]=Przezéranié wëdowiédnëch starnów -Name[cy]=Pori Tudalennau Info -Name[da]=Gennemse infosider -Name[de]=Infoseiten durchsehen -Name[el]=Περιήγηση στις σελίδες info -Name[en_GB]=Browse Info Pages -Name[eo]=Foliumi informopaĝojn -Name[es]=Examinar páginas info -Name[et]=Infolehekülgede lehitsemine -Name[eu]=Arakatu informazio-orriak -Name[fa]=مرور صفحات اطلاعات -Name[fi]=Selaa info-sivuja -Name[fr]=Naviguer dans les pages d'informations -Name[fy]=ynfo-siden trochblêdzje -Name[ga]=Brabhsáil Leathanaigh Eolais -Name[gl]=Navegar polas páxinas info -Name[gu]=માહિતી પાનાંઓ જુઓ -Name[he]=עיון בדפי מידע -Name[hi]=इन्फो पृष्ठ ब्राउज़ करें -Name[hne]=इन्फो पेज ब्राउज करव -Name[hr]=Pretraživanje info stranica -Name[hsb]=Informaciske strony přelistować -Name[hu]=Info oldalak -Name[ia]=Naviga in le paginas de info -Name[id]=Ramban Halaman Info -Name[is]=Flakka um upplýsingasíður -Name[it]=Sfoglia le pagine «info» -Name[ja]=Info ページの参照 -Name[ka]=ცნობარის დათვალიერება -Name[kk]=Info парақтары -Name[km]=រុករក​ទំព័រ​ព័ត៌មាន -Name[kn]=ಮಾಹಿತಿ ಪುಟಗಳನ್ನು ವೀಕ್ಷಿಸು -Name[ko]=Info 페이지 탐색 -Name[ku]=Rûpelên Agahiyan Veke -Name[lt]=Naršyti info puslapius -Name[lv]=Pārlūkot info lapas -Name[mai]=इन्फो पृष्ठ ब्राउज करू -Name[mk]=Прелистај ги info страниците -Name[ml]=ഇന്‍ഫൊ പേജുകള്‍ പരതുക -Name[mr]=इन्फो पान ब्राउज करा -Name[ms]=Layar Halaman Maklumat -Name[nb]=Les info-sider -Name[nds]=Info-Sieden dörkieken -Name[ne]=सूचना पृष्ठ ब्राउज गर्नुहोस् -Name[nl]=Info-pagina's doorbladeren -Name[nn]=Les info-sider -Name[or]=ବ୍ରାଉଜ ସୂଚନା ପୃଷ୍ଠାଗୁଡ଼ିକ -Name[pa]=ਜਾਣਕਾਰੀ ਸਫੇ ਝਲਕ -Name[pl]=Przeglądanie stron informacyjnych -Name[pt]=Navegar nas Páginas do Info -Name[pt_BR]=Páginas de navegação no Info -Name[ro]=Pagini info -Name[ru]=Страницы Info -Name[se]=Loga info-siidduid -Name[si]=තොරතුරු පිටුව ගවේශනය -Name[sk]=Prehliadanie info stránok -Name[sl]=Brskanje po straneh info -Name[sr]=Прегледање инфо страница -Name[sr@ijekavian]=Прегледање инфо страница -Name[sr@ijekavianlatin]=Pregledanje info stranica -Name[sr@latin]=Pregledanje info stranica -Name[sv]=Bläddra i info-sidor -Name[ta]=தகவல் பக்கங்களில் உலாவவும் -Name[te]=info పుటలను అన్వేషించు -Name[tg]=Намоиши саҳифаҳои маълумот -Name[th]=เรียกดูหน้าข้อมูล (info) -Name[tr]=Bilgi Sayfalarını Tara -Name[ug]=ئۇچۇر بېتىنى كۆرۈش -Name[uk]=Перегляд сторінок info -Name[uz]=Info varaqlarni koʻrish -Name[uz@cyrillic]=Info варақларни кўриш -Name[vi]=Duyệt Trang Thông tin -Name[wa]=Foyter les pådjes info -Name[x-test]=xxBrowse Info Pagesxx -Name[zh_CN]=浏览信息页面 -Name[zh_TW]=瀏覽資訊頁 -Icon=help-contents - -X-KDE-KHelpcenter-Special=info - -X-DocPath=info:/dir - -X-DOC-Weight=700 diff --git a/khelpcenter/plugins/kcontrolmodules.desktop b/khelpcenter/plugins/kcontrolmodules.desktop deleted file mode 100644 index aaed0a63..00000000 --- a/khelpcenter/plugins/kcontrolmodules.desktop +++ /dev/null @@ -1,48 +0,0 @@ -[Desktop Entry] -Name=System Settings Modules -Name[ar]=نماذج إعدادات النظام -Name[ca]=Mòduls de configuració del sistema -Name[ca@valencia]=Mòduls de configuració del sistema -Name[cs]=Moduly nastavení systému -Name[da]=Moduler til Systemindstillinger -Name[de]=Systemeinstellungen-Module -Name[el]=Αρθρώματα ρυθμίσεων του συστήματος -Name[en_GB]=System Settings Modules -Name[es]=Módulos de preferencias del sistema -Name[et]=Süsteemi seadistuste moodulid -Name[eu]=Sistema-ezarpenen moduluak -Name[fa]=پیمانه‌های تنظیمات سیستم -Name[fi]=Järjestelmäasetusosiot -Name[fr]=Modules des paramètres du système -Name[gl]=Módulos de configuración do sistema -Name[hu]=Rendszerbeállítások modulok -Name[ia]=Modulosde Preferentias de Systema -Name[id]=Modul Pengaturan Sistem -Name[is]=Stillingaeiningar kerfis -Name[ko]=시스템 설정 모듈 -Name[nb]=Moduler for systeminnstillinger -Name[nds]=Systeem-Instellenmodulen -Name[nl]=Modules voor systeeminstellingen -Name[pa]=ਸਿਸਟਮ ਸੈਟਿੰਗ ਮੋਡੀਊਲ -Name[pl]=Moduły ustawień systemu -Name[pt]=Módulos de Configuração do Sistema -Name[pt_BR]=Módulos das Configurações do Sistema -Name[ru]=Модули «Параметров системы» -Name[sk]=Moduly nastavení systému -Name[sl]=Moduli sistemskih nastavitev -Name[sr]=Модули системских поставки -Name[sr@ijekavian]=Модули системских поставки -Name[sr@ijekavianlatin]=Moduli sistemskih postavki -Name[sr@latin]=Moduli sistemskih postavki -Name[sv]=Inställningsmoduler för system -Name[tr]=Sistem Ayar Modülleri -Name[uk]=Модулі системних параметрів -Name[x-test]=xxSystem Settings Modulesxx -Name[zh_CN]=系统设置模块 -Name[zh_TW]=系統設定模組 - -Icon=preferences-system - -X-DOC-Weight=300 - -X-KDE-KHelpcenter-Special=kcontrol diff --git a/khelpcenter/plugins/kicmodules.desktop b/khelpcenter/plugins/kicmodules.desktop deleted file mode 100644 index 218871cd..00000000 --- a/khelpcenter/plugins/kicmodules.desktop +++ /dev/null @@ -1,98 +0,0 @@ -[Desktop Entry] -Name=KInfoCenter Modules -Name[af]=K-Inligtingsentrum Modules -Name[ar]=نماذج مركز معلومات كدي -Name[ast]=Módulos del KInfoCenter -Name[be]=Модулі інфармацыйнага цэнтра -Name[be@latin]=Moduli KInfoCenter -Name[bg]=Информационен център -Name[bn]=KInfoCenter মডিউল -Name[bn_IN]=KInfoCenter মডিউল -Name[br]=Molladoù KInfoCenter -Name[bs]=Moduli K‑infocentra -Name[ca]=Mòduls del KInfoCenter -Name[ca@valencia]=Mòduls del KInfoCenter -Name[cs]=Moduly Informačního centra -Name[csb]=Wëdowiédné mòdułë centróm kòntrolë -Name[cy]=Modiwlau KInfoCenter -Name[da]=KInfoCenter-moduler -Name[de]=Infozentrum-Module -Name[el]=Αρθρώματα KInfoCenter -Name[en_GB]=KInfoCentre Modules -Name[eo]=Moduloj de KInfoCenter -Name[es]=Módulos de KInfoCenter -Name[et]=Infokeskuse moodulid -Name[eu]=KInfoCenter moduluak -Name[fa]=پیمانه‌های KInfoCenter -Name[fi]=KInfoCenter-moduulit -Name[fr]=Modules du centre d'informations -Name[fy]=Ynformaasjesintrummodules -Name[ga]=Modúil KInfoCenter -Name[gl]=Módulos de KInfoCenter -Name[gu]=KInfoCenter મોડ્યુલો -Name[he]=מודולי מרכז המידע -Name[hi]=के-जानकारी-सेंटर मॉड्यूल्स -Name[hne]=के-इनफो-सेंटर माड्यूल्स -Name[hr]=KInfoCenter moduli -Name[hsb]=Module za KInfoCenter -Name[hu]=KInfoCenter-modulok -Name[ia]=Modulos de KInfoCenter -Name[id]=Modul KInfoCenter -Name[is]=Upplýsingaborðseiningar -Name[it]=Moduli del centro d'informazione -Name[ja]=KInfoCenter モジュール -Name[ka]=საინფორმაციო ცენტრის მოდულები -Name[kk]=KInfoCenter модульдері -Name[km]=ម៉ូឌុល KInfoCenter -Name[kn]=ಕೆಇನ್ಫೋಸೆಂಟರ್ ಘಟಕಗಳು -Name[ko]=KInfoCenter 모듈 -Name[ku]=Modulên Navenda KInfo -Name[lt]=KInfoCenter moduliai -Name[lv]=KInfoCenter moduļi -Name[mai]=के-सूचना-सेंटर मोड्यूल्स -Name[mk]=KInfoCenter модули -Name[ml]=കെഇന്‍ഫൊ കേന്ദ്രം മൊഡ്യൂളുകള്‍ -Name[mr]=केमाहितीकेंद्र विभाग -Name[ms]=Modul KInfoCenter -Name[nb]=Infosentermoduler -Name[nds]=Modulen för dat KDE-Infozentrum -Name[ne]=केडीई सूचना केन्द्र मोड्युल -Name[nl]=Informatiecentrummodules -Name[nn]=Infosentermodular -Name[or]=KInfoCenter ଏକକାଂଶଗୁଡ଼ିକ -Name[pa]=ਕੇਜਾਣਕਾਰੀ-ਸੈਂਟਰ ਮੋਡੀਊਲ -Name[pl]=Moduły informacyjne Centrum sterowania -Name[pt]=Módulos do KInfoCenter -Name[pt_BR]=Módulos do centro de informações -Name[ro]=Module Centru de Informații -Name[ru]=Модули «Информации о системе» -Name[se]=Diehtoguovddášmoduvllat -Name[si]=KInfoCenter මොඩියුල -Name[sk]=Moduly pre Informačné centrum -Name[sl]=Moduli Informacijskega središča -Name[sr]=Модули К‑инфоцентра -Name[sr@ijekavian]=Модули К‑инфоцентра -Name[sr@ijekavianlatin]=Moduli K‑infocentra -Name[sr@latin]=Moduli K‑infocentra -Name[sv]=Moduler i Informationscentralen -Name[ta]=கேதகவல் மைய பகுதிகள் -Name[te]=కెసమాచార కేంద్రం మాడ్యూళ్లు -Name[tg]=Модулҳои маркази иттилоотӣ -Name[th]=มอดูลของศูนย์ข้อมูล -Name[tr]=KInfoCenter Modülleri -Name[ug]=KInfoCenter بۆلەكلىرى -Name[uk]=Модулі KInfoCenter -Name[uz]=KInfoCenter modullari -Name[uz@cyrillic]=KInfoCenter модуллари -Name[vi]=Mô-đun Trung tâm Thông tin của KDE -Name[wa]=Modules do cinte d' infôrmåcions di KDE -Name[xh]=Izicatshulwa ze KInfoCenter -Name[x-test]=xxKInfoCenter Modulesxx -Name[zh_CN]=KInfoCenter 模块 -Name[zh_TW]=KInfoCenter 模組 - -Icon=help-contents - -X-DOC-Weight=400 - -X-KDE-KHelpcenter-Special=kinfocenter diff --git a/khelpcenter/plugins/kioslaves.desktop b/khelpcenter/plugins/kioslaves.desktop deleted file mode 100644 index e5456300..00000000 --- a/khelpcenter/plugins/kioslaves.desktop +++ /dev/null @@ -1,97 +0,0 @@ -[Desktop Entry] -Name=Kioslaves -Name[af]=Kioslaves -Name[ar]=Kioslaves -Name[ast]=Kioslaves -Name[be]=Kioslaves -Name[be@latin]=Słužby „kioslave” -Name[bg]=Система за вход-изход -Name[bn]=Kioslaves -Name[bn_IN]=Kioslaves -Name[br]=Kioslaves -Name[bs]=U/I zahvati -Name[ca]=Kioslaves -Name[ca@valencia]=Kioslaves -Name[cs]=Pomocné protokoly KDE -Name[csb]=wtëkôczë wéńdzeniô/wińdzeniô -Name[cy]=Kioslaves -Name[da]=Kioslaver -Name[de]=Ein-/Ausgabemodule -Name[el]=Kioslaves -Name[en_GB]=Kioslaves -Name[eo]=Kioslaves -Name[es]=Kioslaves -Name[et]=KIO-moodulid -Name[eu]=Kioslaves -Name[fa]=Kioslaves -Name[fi]=KIO-palvelut -Name[fr]=Modules d'entrées / sorties -Name[fy]=Kioslaves -Name[ga]=Sclábhaithe KIO -Name[gl]=Kioslaves -Name[gu]=Kioslaves -Name[he]=פרוטוקולים -Name[hi]=केआईओ-स्लेव्स -Name[hne]=केआईओ-स्लेव्स -Name[hr]=Kioslaves -Name[hsb]=Kioslaves -Name[hu]=KDE-protokollok -Name[ia]=Kioslaves -Name[id]=Kioslaves -Name[is]=Kioslaves -Name[it]=Kioslave -Name[ja]=Kioslave -Name[ka]=Kioslaves -Name[kk]=Kioslaves -Name[km]=Kioslaves -Name[kn]=ಕಐಓಸ್ಲೇವ್ಸ್ -Name[ko]=KIO 슬레이브 -Name[ku]=Kioslaves -Name[lt]=Kioprotokolai -Name[lv]=KIO vergi -Name[mai]=केआईओ-स्लेव्स -Name[mk]=Kioslaves -Name[ml]=കിയോസ്ലേവുകള്‍ -Name[mr]=Kioslaves -Name[ms]=Kioslaves -Name[nb]=Kioslaver -Name[nds]=In-/Utgaavmodulen -Name[ne]=किओस्लाभ -Name[nl]=Kioslaves -Name[nn]=Kioslavar -Name[oc]=Kioslaves -Name[or]=Kioslaves -Name[pa]=Kioslaves -Name[pl]=Wtyczki wejścia/wyjścia -Name[pt]=Kioslaves -Name[pt_BR]=Kioslaves -Name[ro]=Dispozitive KIO -Name[ru]=Поддержка протоколов -Name[se]=KIO-šlávat -Name[si]=Kioslaves -Name[sk]=Kioslaves -Name[sl]=Kioslaves -Name[sr]=У/И захвати -Name[sr@ijekavian]=У/И захвати -Name[sr@ijekavianlatin]=U/I zahvati -Name[sr@latin]=U/I zahvati -Name[sv]=I/O-slavar -Name[ta]=Kioslaves -Name[te]=కెఐఒ బానిసలు -Name[tg]=Kioslaves -Name[th]=Kioslaves -Name[tr]=Kioslaves -Name[ug]=Kioslaves -Name[uk]=Підлеглі В/В -Name[uz]=Kioslaves -Name[uz@cyrillic]=Kioslaves -Name[vi]=Kioslaves -Name[wa]=Vårlets d' I/R (kioslaves) -Name[x-test]=xxKioslavesxx -Name[zh_CN]=Kioslaves -Name[zh_TW]=Kioslaves -Icon=help-contents - -X-DOC-Weight=500 - -X-KDE-KHelpcenter-Special=kioslave diff --git a/khelpcenter/plugins/konquerorcontrolmodules.desktop b/khelpcenter/plugins/konquerorcontrolmodules.desktop deleted file mode 100644 index 94dc8312..00000000 --- a/khelpcenter/plugins/konquerorcontrolmodules.desktop +++ /dev/null @@ -1,49 +0,0 @@ -[Desktop Entry] -Name=Konqueror Settings Modules -Name[ar]=نماذج إعدادات كونكيورر -Name[ca]=Mòduls de configuració del Konqueror -Name[ca@valencia]=Mòduls de configuració del Konqueror -Name[cs]=Moduly nastavení Konqueroru -Name[da]=Moduler til Konqueror-indstillinger -Name[de]=Konqueror-Einstellungsmodule -Name[el]=Αρθρώματα ρυθμίσεων του Konqueror -Name[en_GB]=Konqueror Settings Modules -Name[es]=Módulos de preferencias de Konqueror -Name[et]=Konquerori seadistuste moodulid -Name[eu]=Konqueror-ezarpenen moduluak -Name[fa]=پیمانه‌های تنظیمات کانکرر -Name[fi]=Konquerorin asetusosiot -Name[fr]=Modules des paramètres de Konqueror -Name[gl]=Módulos de configuración do Konqueror -Name[hu]=Konqueror beállítási modulok -Name[ia]=Modulos de preferentias de Konqueror -Name[id]=Modul Pengaturan Konqueror -Name[is]=Stillingaeiningar Konqueror -Name[ja]=Konqueror 設定モジュール -Name[ko]=Konqueror 설정 모듈 -Name[nb]=Modulen for Konqueror-innstillinger -Name[nds]=Konqueror-Instellenmodulen -Name[nl]=Modules voor instellingen van Konqueror -Name[pa]=ਕੋਨਕਿਊਰੋਰ ਸੈਟਿੰਗ ਮੋਡੀਊਲ -Name[pl]=Moduły ustawień Konquerora -Name[pt]=Módulos de Configuração do Konqueror -Name[pt_BR]=Módulos de configuração do Konqueror -Name[ru]=Модули настроек Konqueror -Name[sk]=Moduly nastavení Konquerora -Name[sl]=Moduli nastavitev Konquerorja -Name[sr]=Модули К‑освајачевих поставки -Name[sr@ijekavian]=Модули К‑освајачевих поставки -Name[sr@ijekavianlatin]=Moduli K‑osvajačevih postavki -Name[sr@latin]=Moduli K‑osvajačevih postavki -Name[sv]=Inställningsmoduler för Konqueror -Name[tr]=Konqueror Ayar Modülleri -Name[uk]=Модулі параметрів Konqueror -Name[x-test]=xxKonqueror Settings Modulesxx -Name[zh_CN]=Konqueror 设置模块 -Name[zh_TW]=Konqueror 設定模組 - -Icon=preferences-system - -X-DOC-Weight=330 - -X-KDE-KHelpcenter-Special=konquerorcontrol diff --git a/khelpcenter/plugins/onlinehelp.desktop b/khelpcenter/plugins/onlinehelp.desktop deleted file mode 100644 index f4c42c12..00000000 --- a/khelpcenter/plugins/onlinehelp.desktop +++ /dev/null @@ -1,72 +0,0 @@ -[Desktop Entry] -Name=Online Help -Name[ar]=مساعدة عبر الإنترنت -Name[ast]=Ayuda en llinia -Name[bg]=Помощ в мрежата -Name[bn]=অনলাইন সহায়তা -Name[bs]=Pomoć na vezi -Name[ca]=Ajuda en línia -Name[ca@valencia]=Ajuda en línia -Name[cs]=Nápověda online -Name[da]=Online hjælp -Name[de]=Online-Hilfe -Name[el]=Βοήθεια στο διαδίκτυο -Name[en_GB]=Online Help -Name[eo]=Reta helpo -Name[es]=Ayuda en línea -Name[et]=Abi -Name[eu]=Lineako laguntza -Name[fa]=کمک برخط -Name[fi]=Online-ohje -Name[fr]=Aide en ligne -Name[ga]=Cabhair Ar Líne -Name[gl]=Axuda con conexión -Name[gu]=ઓનલાઈન મદદ -Name[he]=עזרה מקוונת -Name[hi]=ऑनलाइन सहायक -Name[hr]=Online Pomoć -Name[hu]=Online súgó -Name[ia]=Adjuta in linea -Name[id]=Bantuan Daring -Name[is]=Hjálp á netinu -Name[it]=Aiuto in rete -Name[ja]=オンラインヘルプ -Name[kk]=Интернет анықтамасы -Name[km]=ជំនួយ​លើ​បណ្ដាញ -Name[kn]=ಜಾಲಲಭ್ಯ ನೆರವು -Name[ko]=온라인 도움말 -Name[lt]=Pagalba internete -Name[lv]=Tiešsaistes palīdzība -Name[mai]=आनलाइन मदति -Name[mr]=ऑनलाइन मदत -Name[nb]=Hjelp på nettverket -Name[nds]=Online-Hülp -Name[nl]=Online-hulp -Name[nn]=Hjelp på nettet -Name[pa]=ਆਨਲਾਈਨ ਮੱਦਦ -Name[pl]=Pomoc w sieci -Name[pt]=Ajuda 'Online' -Name[pt_BR]=Ajuda on-line -Name[ro]=Ajutor online -Name[ru]=Справка в Интернете -Name[si]=සබැඳි උදව් -Name[sk]=Online pomocník -Name[sl]=Pomoč na spletu -Name[sr]=Помоћ на вези -Name[sr@ijekavian]=Помоћ на вези -Name[sr@ijekavianlatin]=Pomoć na vezi -Name[sr@latin]=Pomoć na vezi -Name[sv]=Direkthjälp -Name[tg]=Кӯмаки онлайн -Name[th]=ความช่วยเหลือออนไลน์ -Name[tr]=Çevrimiçi Yardım -Name[ug]=توردىكى ياردەم -Name[uk]=Довідка у інтернеті -Name[vi]=Trợ giúp trực tuyến -Name[wa]=Aidance so fyis -Name[x-test]=xxOnline Helpxx -Name[zh_CN]=在线帮助 -Name[zh_TW]=線上說明 -Icon=help-contents -X-DocPath=help:/onlinehelp/index.html -X-DOC-Weight=100 diff --git a/khelpcenter/plugins/othercontrolmodules.desktop b/khelpcenter/plugins/othercontrolmodules.desktop deleted file mode 100644 index 958c86dc..00000000 --- a/khelpcenter/plugins/othercontrolmodules.desktop +++ /dev/null @@ -1,48 +0,0 @@ -[Desktop Entry] -Name=Other Settings Modules -Name[ar]=نماذج إعدادا أخرى -Name[ca]=Altres mòduls de configuració -Name[ca@valencia]=Altres mòduls de configuració -Name[cs]=Moduly nastavení ostatního -Name[da]=Andre indstillingsmoduler -Name[de]=Andere Einstellungsmodule -Name[el]=Λοιπά αρθρώματα ρυθμίσεων -Name[en_GB]=Other Settings Modules -Name[es]=Módulos de otras preferencias -Name[et]=Muude seadistuste moodulid -Name[eu]=Beste ezarpen batzuen moduluak -Name[fa]=پیمانه‌های تنظیمات دیگر -Name[fi]=Muut asetusosiot -Name[fr]=Autres modules de paramètres -Name[gl]=Outros módulos de configuración -Name[hu]=Egyéb beállítási modulok -Name[ia]=altere modulos de preferentias -Name[id]=Modul Pengaturan Lainnya -Name[is]=Aðrar stillingaeiningar -Name[ko]=기타 설정 모듈 -Name[nb]=Moduler for andre innstillinger -Name[nds]=Anner Instellenmodulen -Name[nl]=Overige modules voor instellingen -Name[pa]=ਹੋਰ ਸੈਟਿੰਗ ਮੋਡੀਊਲ -Name[pl]=Moduły innych ustawień -Name[pt]=Outros Módulos de Configuração -Name[pt_BR]=Outros módulos de configuração -Name[ru]=Модули других настроек -Name[sk]=Iné moduly nastavení -Name[sl]=Moduli ostalih nastavitev -Name[sr]=Остали модули поставки -Name[sr@ijekavian]=Остали модули поставки -Name[sr@ijekavianlatin]=Ostali moduli postavki -Name[sr@latin]=Ostali moduli postavki -Name[sv]=Övriga inställningsmoduler -Name[tr]=Diğer Ayar Modülleri -Name[uk]=Модулі інших параметрів -Name[x-test]=xxOther Settings Modulesxx -Name[zh_CN]=其它设置模块 -Name[zh_TW]=其他設定檢視 - -Icon=preferences-system - -X-DOC-Weight=390 - -X-KDE-KHelpcenter-Special=othercontrol diff --git a/khelpcenter/plugins/plasma.desktop b/khelpcenter/plugins/plasma.desktop deleted file mode 100644 index a9cc502d..00000000 --- a/khelpcenter/plugins/plasma.desktop +++ /dev/null @@ -1,85 +0,0 @@ -[Desktop Entry] -X-DocPath=help:/plasma-desktop/index.html -Icon=plasma -Name=Plasma Manual -Name[ar]=كتيّب بلازما -Name[ast]=Manual de Plasma -Name[be@latin]=Padručnik pa systemie „Plasma” -Name[bg]=Ръководство за Plasma -Name[bn]=প্লাসমা ম্যানুয়াল -Name[bn_IN]=Plasma সহায়িকা -Name[bs]=Uputstvo za Plazmu -Name[ca]=Manual del Plasma -Name[ca@valencia]=Manual del Plasma -Name[cs]=Manuál k plasmě -Name[csb]=Ùczbòwnik plazmë -Name[da]=Plasma-manual -Name[de]=Handbuch zu Plasma -Name[el]=Εγχειρίδιο του Plasma -Name[en_GB]=Plasma Manual -Name[eo]=Manlibro de Plasmo -Name[es]=Manual de Plasma -Name[et]=Plasma käsiraamat -Name[eu]=Plasma eskuliburua -Name[fa]=راهنمای پلاسما -Name[fi]=Plasma-opas -Name[fr]=Manuel de Plasma -Name[fy]=Plasma hânlieding -Name[ga]=Lámhleabhar Plasma -Name[gl]=Manual de Plasma -Name[gu]=પ્લાઝમા માર્ગદર્શિકા -Name[he]=המדריך של Plasma -Name[hi]=प्लाज़्मा मैनुअल -Name[hne]=प्लाज्मा मेनुअल -Name[hr]=Upute za uporabu Plasme -Name[hsb]=Přiručka za Plasma -Name[hu]=Plasma kézikönyv -Name[ia]=Manual de Plasma -Name[id]=Manual Plasma -Name[is]=Plasma handbók -Name[it]=Manuale di Plasma -Name[ja]=Plasma マニュアル -Name[kk]=Plasma нұсқауы -Name[km]=សៀវភៅ​ដៃ​ប្លាស្មា -Name[kn]=ಪ್ಲಾಸ್ಮಾ ಕೈಪಿಡಿ -Name[ko]=Plasma 설명서 -Name[ku]=Rêberê Plasma -Name[lt]=Plasma Naudotojo vadovas -Name[lv]=Plasma rokasgrāmata -Name[mai]=प्लाज़्मा मैनुअल -Name[mk]=Упатство за Плазма -Name[ml]=പ്ലാസ്മയുടെ സഹായക്കുറിപ്പു് -Name[mr]=प्लाज्मा पुस्तिका -Name[nb]=Plasma-håndbok -Name[nds]=Plasma-Handbook -Name[nl]=Plasma-handleiding -Name[nn]=Plasma-handbok -Name[or]=ପ୍ଲାଜମା ସହାୟକ ପୁସ୍ତକ -Name[pa]=ਪਲਾਜ਼ਮਾ ਮੇਨੂਅਲ -Name[pl]=Podręcznik Plazmy -Name[pt]=Manual do Plasma -Name[pt_BR]=Manual do Plasma -Name[ro]=Manualul Plasma -Name[ru]=Руководство пользователя Plasma -Name[se]=Plasmagiehtagirji -Name[si]=Plasma අත් පොත -Name[sk]=Manuál k Plasme -Name[sl]=Priročnik za Plasmo -Name[sr]=Упутство за Плазму -Name[sr@ijekavian]=Упутство за Плазму -Name[sr@ijekavianlatin]=Uputstvo za Plasmu -Name[sr@latin]=Uputstvo za Plasmu -Name[sv]=Handbok Plasma -Name[ta]=பிளாஸ்மா கையேடு -Name[te]=ప్లాజ్మా మేన్యువల్ -Name[tg]=Дастуруламали Plasma -Name[th]=คู่มือของพลาสมา -Name[tr]=Plasma El Kitabı -Name[ug]=Plasma قوللانمىسى -Name[uk]=Підручник з Плазми -Name[vi]=Sổ tay Plasma -Name[wa]=Esplikêyes di Plasma -Name[x-test]=xxPlasma Manualxx -Name[zh_CN]=Plasma 手册 -Name[zh_TW]=Plasma 手冊 -Icon=plasma diff --git a/khelpcenter/plugins/quickstart.desktop b/khelpcenter/plugins/quickstart.desktop deleted file mode 100644 index e5e11ef0..00000000 --- a/khelpcenter/plugins/quickstart.desktop +++ /dev/null @@ -1,96 +0,0 @@ -# KDE Config File -[Desktop Entry] -Name=Quickstart Guide -Name[af]=Woerts-warts Gids -Name[ar]=مرشد البدء السريع -Name[ast]=Guía rápida -Name[be]=Падручнік для пачаткоўца -Name[be@latin]=Karotki padručnik -Name[bg]=Ръководство за начинаещите -Name[bn]=কুইকস্টার্ট গাইড -Name[bn_IN]=দ্রুত প্রস্তুতির সহায়িকা -Name[br]=Sturier Kregiñ fonnus -Name[bs]=Vodič za početnike -Name[ca]=Guia ràpida -Name[ca@valencia]=Guia ràpida -Name[cs]=Úvodní seznámení -Name[csb]=Sztartowi prowôdnik -Name[cy]=Canllaw cychwyn cyflym -Name[da]=Kvikstart-guide -Name[de]=Kurzeinführung -Name[el]=Οδηγός γρήγορου ξεκινήματος -Name[en_GB]=Quickstart Guide -Name[eo]=Konciza gvidlibro -Name[es]=Guía rápida -Name[et]=Kiire sissejuhatus -Name[eu]=Gida bizkorra -Name[fa]=راهنمای آغاز سریع -Name[fi]=Pikaopas -Name[fr]=Guide de démarrage rapide -Name[fy]=Fluchstartgids -Name[ga]=Lámhleabhar Mearthosaigh -Name[gl]=Guía de inicio rápido -Name[gu]=ઝડપીશરૂઆત માર્ગદર્શન -Name[he]=מדריך התחלה מהירה -Name[hi]=शीघ्रप्रारंभ मार्गदर्शक -Name[hne]=सीघ्रसुरू मार्गदर्सक -Name[hr]=Brzi uvod -Name[hsb]=Spěšny zawod -Name[hu]=Rövid bevezetés -Name[ia]=Guida initial rapide -Name[id]=Panduan Memulai Secara Cepat -Name[is]=Skyndileiðbeiningar -Name[it]=Guida rapida -Name[ja]=クイックスタート -Name[ka]=სახელმძღვანელო დამწყებთათვის -Name[kk]=Бастаушы бағыттамасы -Name[km]=មគ្គុទ្ទេសក៍​ចាប់ផ្ដើម​រហ័ស -Name[kn]=ಶೀಘ್ರ ಪ್ರಾರಂಭ ಮಾರ್ಗದರ್ಶಿ -Name[ko]=빠른 시작 설명서 -Name[ku]=Rêbernameya Destpêkirina Lezgîn -Name[lt]=Greitos pradžios gidas -Name[lv]=Ātras sākšanas ceļvedis -Name[mai]=शीघ्रप्रारंभ मार्गदर्शक -Name[mk]=Водич за брзо снаоѓање -Name[ml]=കൈപ്പുസ്തകം -Name[mr]=Quickstart पुस्तिका -Name[ms]=Panduan Mula Pantas -Name[nb]=Hurtigstart-guide -Name[nds]=Fixstart-Föhrer -Name[ne]=द्रुत सुरुआत मार्गदर्शन -Name[nl]=Snelstartgids -Name[nn]=Snøggstartgaid -Name[or]=Quickstart ପଥ ପ୍ରଦର୍ଶକ -Name[pa]=ਤੁਰੰਤ ਸਟਾਰਟ ਗਾਈਡ -Name[pl]=Przewodnik startowy -Name[pt]=Guia de Iniciação -Name[pt_BR]=Guia de início rápido -Name[ro]=Ghid rapid -Name[ru]=Руководство для начинающих в KDE -Name[se]=Oanehis KDE-introdukšuvdna -Name[si]=ක්‍ෂණික ඇරඹුම් සහාය -Name[sk]=Návod na rýchle použitie -Name[sl]=Vodnik za hitri začetek -Name[sr]=Водич за почетнике -Name[sr@ijekavian]=Водич за почетнике -Name[sr@ijekavianlatin]=Vodič za početnike -Name[sr@latin]=Vodič za početnike -Name[sv]=Snabbstartsguide -Name[ta]=விரைவுதுவக்க வழிகாட்டி. -Name[te]=త్వరితప్రారంభక మార్గదర్శి -Name[tg]=Дастуруламали оғози кор -Name[th]=คำแนะนำด่วน -Name[tr]=Hızlı Başlama Rehberi -Name[ug]=تېز باشلاش يېتەكچىسى -Name[uk]=Настанови з перших кроків -Name[uz]=KDE boʻyicha yoʻlkoʻrsatgich -Name[uz@cyrillic]=KDE бўйича йўлкўрсатгич -Name[vi]=Hướng dẫn bắt đầu nhanh -Name[wa]=Guide d' enondaedje abeye -Name[xh]=Isikhombisi Sesiqalo esikhawulezayo -Name[x-test]=xxQuickstart Guidexx -Name[zh_CN]=速成指南 -Name[zh_TW]=快速入門指南 -Icon=text-plain -X-DocPath=help:/khelpcenter/quickstart/index.html -X-DOC-Weight=-3000 diff --git a/khelpcenter/plugins/userguide.desktop b/khelpcenter/plugins/userguide.desktop deleted file mode 100644 index a5e5e976..00000000 --- a/khelpcenter/plugins/userguide.desktop +++ /dev/null @@ -1,95 +0,0 @@ -[Desktop Entry] -X-DocPath=help:/khelpcenter/userguide/index.html -Name=KDE Users' Manual -Name[af]=KDE gebruikershandleiding -Name[ar]=كتيّب كدي للمستخدمين -Name[ast]=Manual d'usuariu de KDE -Name[be]=Падручнік карыстальніка KDE -Name[be@latin]=Padručnik dla karystańnika KDE -Name[bg]=Ръководство за употреба -Name[bn]=কে.ডি.ই. ব্যবহারকারীদের জন্য ম্যানুয়াল -Name[bn_IN]=KDE ব্যবহারকারীদের জন্য সহায়িকা -Name[br]=Levr-dorn arveriaded KDE -Name[bs]=Korisnički priručnik KDE‑a -Name[ca]=Manual d'usuari KDE -Name[ca@valencia]=Manual d'usuari KDE -Name[cs]=Příručka uživatele KDE -Name[csb]=Pòdrãcznik brëkòwnika KDE -Name[cy]=Llawlyfr Defnyddwyr KDE -Name[da]=KDE-brugervejledning -Name[de]=KDE-Benutzerhandbuch -Name[el]=Εγχειρίδιο χρήστη του KDE -Name[en_GB]=KDE Users' Manual -Name[eo]=Manlibro por uzantoj de KDE -Name[es]=Manual del usuario de KDE -Name[et]=KDE kasutaja käsiraamat -Name[eu]=KDEren erabiltzailearen eskuliburua -Name[fa]=راهنمای کاربران KDE -Name[fi]=KDE:n käyttöopaste -Name[fr]=Manuel utilisateur de KDE -Name[fy]=KDE's hânlieding -Name[ga]=Lámhleabhar KDE d'úsáideoirí -Name[gl]=Manual do usuario de KDE -Name[gu]=KDE વપરાશકર્તાની માર્ગદર્શિકા -Name[he]=המדריך למשתמש ב־KDE -Name[hi]=केडीई उपयोक्ता निर्देशिका -Name[hne]=केडीई कमइया निर्देसिका -Name[hr]=KDE korisnički priručnik -Name[hsb]=Přiručka za wužiwarja KDE -Name[hu]=KDE-felhasználók kézikönyve -Name[ia]=Manual pro le Usator de KDE -Name[id]=Manual Pengguna KDE -Name[is]=KDE notandahandbækur -Name[it]=Manuale degli utenti di KDE -Name[ja]=KDE ユーザマニュアル -Name[ka]=KDE-ს მომხმარებლის სახელმძღვანელო -Name[kk]=KDE пайдаланушының оқулығы -Name[km]=សៀវភៅ​របស់​អ្នក​ប្រើ KDE -Name[kn]=ಕೆಡಿಇ ಬಳಕೆದಾರರ ಕೆಪಿಡಿ -Name[ko]=KDE 사용자 설명서 -Name[ku]=Bikarhênerên KDE Bi Destan -Name[lt]=KDE Naudotojo vadovas -Name[lv]=KDE lietotāja rokasgrāmata -Name[mai]=केडीई प्रयोक्ता निर्देशिका -Name[mk]=KDE кориснички прирачник -Name[ml]=കെഡിഇ ഉപയോക്തൃസഹായകഗ്രന്ഥം -Name[mr]=केडीई वापरकर्ता निर्देशिका -Name[ms]=Manual Pengguna KDE -Name[nb]=Brukerhandbok for KDE -Name[nds]=KDE-Brukerhandbook -Name[ne]=केडीई प्रयोगकर्ता म्यानुअल -Name[nl]=KDE's handleiding -Name[nn]=Brukarhandbok for KDE -Name[or]=KDE ଚାଳକ ସହାୟକ ପୁସ୍ତକ -Name[pa]=KDE ਯੂਜ਼ਰ ਡੌਕੂਮੈਂਟ -Name[pl]=Podręcznik użytkownika KDE -Name[pt]=Manual do Utilizador do KDE -Name[pt_BR]=Manual do usuário do KDE -Name[ro]=Manualul utilizatorului KDE -Name[ru]=Руководство пользователя KDE -Name[se]=KDE giehtagirji -Name[si]=KDE පරිශීලක අත්පොත -Name[sk]=Užívateľský manuál KDE -Name[sl]=Uporabniški priročnik KDE -Name[sr]=Кориснички приручник КДЕ‑а -Name[sr@ijekavian]=Кориснички приручник КДЕ‑а -Name[sr@ijekavianlatin]=Korisnički priručnik KDE‑a -Name[sr@latin]=Korisnički priručnik KDE‑a -Name[sv]=KDE:s användarhandbok -Name[ta]=KDE பயனர்களின் கையேடு -Name[te]=కెడిఈ యూజర్ మెన్యువల్ -Name[tg]=Дастуруламалҳои корбари KDE -Name[th]=คู่มือผู้ใช้งาน KDE -Name[tr]=KDE Kullanıcı Kılavuzu -Name[ug]=KDE ئىشلەتكۈچىلەر قوللانمىسى -Name[uk]=Інструкція користувача KDE -Name[uz]=KDE uchun qoʻllanma -Name[uz@cyrillic]=KDE учун қўлланма -Name[vi]=Sổ tay người dùng KDE -Name[wa]=Manuel di l' uzeu di KDE -Name[x-test]=xxKDE Users' Manualxx -Name[zh_CN]=KDE 用户手册 -Name[zh_TW]=KDE 使用者手冊 - -X-DOC-Weight=-2000 - diff --git a/khelpcenter/plugintraverser.cpp b/khelpcenter/plugintraverser.cpp deleted file mode 100644 index 23a7a401..00000000 --- a/khelpcenter/plugintraverser.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 "plugintraverser.h" -#include "docmetainfo.h" -#include "navigator.h" -#include "navigatorappitem.h" -#include "navigatoritem.h" - -#include -#include -#include -#include -#include -#include - -using namespace KHC; - -PluginTraverser::PluginTraverser( Navigator *navigator, QTreeWidget *parent ) - : DocEntryTraverser(), - mListView( parent ), - mParentItem( 0 ), - mCurrentItem( 0 ), - mNavigator( navigator ) -{ -} - -PluginTraverser::PluginTraverser( Navigator *navigator, NavigatorItem *parent ) - : DocEntryTraverser(), - mListView( 0 ), - mParentItem( parent ), - mCurrentItem( 0 ), - mNavigator( navigator ) -{ -} - -void PluginTraverser::process( DocEntry *entry ) -{ - if ( !mListView && !mParentItem ) { - kDebug( 1400 ) << "ERROR! Neither mListView nor mParentItem is set."; - return; - } - - if ( !entry->docExists() && !mNavigator->showMissingDocs() ) - return; - - if ( entry->khelpcenterSpecial() == QLatin1String("apps") ) { - NavigatorAppItem *appItem; - entry->setIcon( "kde" ); - if ( mListView ) - appItem = new NavigatorAppItem( entry, mListView, mCurrentItem ); - else - appItem = new NavigatorAppItem( entry, mParentItem, mCurrentItem ); - KConfigGroup cfg(KGlobal::config(), "General"); - appItem->setRelpath( cfg.readPathEntry( "AppsRoot", QString() ) ); - mCurrentItem = appItem; - } else if ( entry->khelpcenterSpecial() == QLatin1String("scrollkeeper" )) { - if ( mParentItem ) { - mCurrentItem = mNavigator->insertScrollKeeperDocs( mParentItem, mCurrentItem ); - } - return; - } else { - if ( mListView ) - mCurrentItem = new NavigatorItem( entry, mListView, mCurrentItem ); - else - mCurrentItem = new NavigatorItem( entry, mParentItem, mCurrentItem ); - - if ( entry->khelpcenterSpecial() == QLatin1String("konqueror") ) { - mNavigator->insertParentAppDocs( entry->khelpcenterSpecial(), mCurrentItem ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("kcontrol") ) { - mNavigator->insertKCMDocs( entry->khelpcenterSpecial(), mCurrentItem, QString("kcontrol") ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("konquerorcontrol") ) { - mNavigator->insertKCMDocs( entry->khelpcenterSpecial(), mCurrentItem, QString("konquerorcontrol") ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("filemanagercontrol") ) { - mNavigator->insertKCMDocs( entry->khelpcenterSpecial(), mCurrentItem, QString("filemanagercontrol") ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("browsercontrol") ) { - mNavigator->insertKCMDocs( entry->khelpcenterSpecial(), mCurrentItem, QString("browsercontrol") ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("othercontrol") ) { - mNavigator->insertKCMDocs( entry->khelpcenterSpecial(), mCurrentItem, QString("othercontrol") ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("kinfocenter") ) { - mNavigator->insertKCMDocs( entry->khelpcenterSpecial(), mCurrentItem, QString("kinfocenter") ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("kioslave") ) { - mNavigator->insertIOSlaveDocs( entry->khelpcenterSpecial(), mCurrentItem ); - } else if ( entry->khelpcenterSpecial() == QLatin1String("info") ) { - mNavigator->insertInfoDocs( mCurrentItem ); - } else { - return; - } -// TODO: was contents2 -> needs to be changed to help-contents-alternate or similar - mCurrentItem->setIcon( 0, SmallIcon( QLatin1String("help-contents") ) ); - } -} - -DocEntryTraverser *PluginTraverser::createChild( DocEntry * /*entry*/ ) -{ - if ( mCurrentItem ) { - return new PluginTraverser( mNavigator, mCurrentItem ); - } - kDebug( 1400 ) << "ERROR! mCurrentItem is not set."; - return 0; -} - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/plugintraverser.h b/khelpcenter/plugintraverser.h deleted file mode 100644 index 6a76f516..00000000 --- a/khelpcenter/plugintraverser.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 KHC_PLUGINTRAVERSER_H -#define KHC_PLUGINTRAVERSER_H - -#include "docentrytraverser.h" - -#include - -class QTreeWidget; - -namespace KHC { - - class Navigator; - class NavigatorItem; - - class PluginTraverser : public DocEntryTraverser - { - public: - PluginTraverser( Navigator *navigator, QTreeWidget *parent ); - PluginTraverser( Navigator *navigator, NavigatorItem *parent ); - - virtual void process( DocEntry *entry ); - - virtual DocEntryTraverser *createChild( DocEntry *entry ); - - private: - QTreeWidget *mListView; - NavigatorItem *mParentItem; - NavigatorItem *mCurrentItem; - - Navigator *mNavigator; - }; -} - -#endif // KHC_PLUGINTRAVERSER_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/prefs.kcfgc b/khelpcenter/prefs.kcfgc deleted file mode 100644 index ae03d9c4..00000000 --- a/khelpcenter/prefs.kcfgc +++ /dev/null @@ -1,6 +0,0 @@ -# Code generation options for kconfig_compiler -File=khelpcenter.kcfg -ClassName=Prefs -Singleton=true -Mutators=true -GlobalEnums=true diff --git a/khelpcenter/scopeitem.h b/khelpcenter/scopeitem.h deleted file mode 100644 index dacf06e1..00000000 --- a/khelpcenter/scopeitem.h +++ /dev/null @@ -1,73 +0,0 @@ -/* This file is part of the KDE project - Copyright 2002 Cornelius Schumacher - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public - License version 2 or at your option version 3 as published - by the Free Software Foundation. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef KHC_SCOPEITEM_H -#define KHC_SCOPEITEM_H - -#include - -#include "docmetainfo.h" - -namespace KHC { - -class ScopeItem : public QTreeWidgetItem -{ - public: - ScopeItem( QTreeWidget *parent, DocEntry *entry ) - : QTreeWidgetItem( parent, QStringList() << entry->name(), rttiId() ), - mEntry( entry ), mObserver( 0 ) { init(); } - - ScopeItem( QTreeWidgetItem *parent, DocEntry *entry ) - : QTreeWidgetItem( parent, QStringList() << entry->name(), rttiId() ), - mEntry( entry ), mObserver( 0 ) { init(); } - - DocEntry *entry()const { return mEntry; } - - static int rttiId() { return 734678; } - - class Observer - { - public: - virtual ~Observer() {} - virtual void scopeItemChanged( ScopeItem * ) = 0; - }; - - void setObserver( Observer *o ) { mObserver = o; } - - void setOn( bool on ) { setCheckState( 0, on ? Qt::Checked : Qt::Unchecked ); } - bool isOn() const { return checkState( 0 ) == Qt::Checked; } - - protected: - void stateChange ( bool ) - { - if ( mObserver ) mObserver->scopeItemChanged( this ); - } - - private: - void init() { setCheckState(0, Qt::Checked); } - - DocEntry *mEntry; - - Observer *mObserver; -}; - -} - -#endif //KHC_SCOPEITEM_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/scrollkeepertreebuilder.cpp b/khelpcenter/scrollkeepertreebuilder.cpp deleted file mode 100644 index ba0d935e..00000000 --- a/khelpcenter/scrollkeepertreebuilder.cpp +++ /dev/null @@ -1,197 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 "scrollkeepertreebuilder.h" - -#include "navigatoritem.h" -#include "docentry.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -using namespace KHC; - -ScrollKeeperTreeBuilder::ScrollKeeperTreeBuilder( QObject *parent, const char *name ) - : QObject( parent ) -{ - setObjectName( name ); - - loadConfig(); -} - -void ScrollKeeperTreeBuilder::loadConfig() -{ - KConfigGroup configGroup( KGlobal::config(), "ScrollKeeper" ); - mShowEmptyDirs = configGroup.readEntry( "ShowEmptyDirs", false); -} - -NavigatorItem *ScrollKeeperTreeBuilder::build( NavigatorItem *parent, - NavigatorItem *after ) -{ - QString lang = KGlobal::locale()->language(); - - kDebug(1400) << "ScrollKeeper language: " << lang; - - KProcess proc; - proc << "scrollkeeper-get-content-list"; - proc << lang; - - proc.setOutputChannelMode(KProcess::OnlyStdoutChannel); - proc.start(); - if ( !proc.waitForFinished() ) { - kDebug(1400) << "Could not execute scrollkeeper-get-content-list"; - return 0; - } - mContentsList = proc.readAllStandardOutput().trimmed(); - - if (!QFile::exists(mContentsList)) { - kDebug(1400) << "Scrollkeeper contents file '" << mContentsList - << "' does not exist." << endl; - return 0; - } - - QDomDocument doc("ScrollKeeperContentsList"); - QFile f(mContentsList); - if ( !f.open( QIODevice::ReadOnly ) ) - return 0; - if ( !doc.setContent( &f ) ) { - f.close(); - return 0; - } - f.close(); - - // Create top-level item - mItems.append(parent); - - QDomElement docElem = doc.documentElement(); - - NavigatorItem *result = 0; - - QDomNode n = docElem.firstChild(); - while( !n.isNull() ) { - QDomElement e = n.toElement(); - if( !e.isNull() ) { - if (e.tagName() == "sect") { - NavigatorItem *createdItem; - insertSection( parent, after, e, createdItem ); - if ( createdItem ) result = createdItem; - } - } - n = n.nextSibling(); - } - - return result; -} - -int ScrollKeeperTreeBuilder::insertSection( NavigatorItem *parent, - NavigatorItem *after, - const QDomNode §Node, - NavigatorItem *§Item ) -{ -// TODO: was contents2 -> needs to be changed to help-contents-alternate or similar - DocEntry *entry = new DocEntry( "", "", "help-contents" ); - sectItem = new NavigatorItem( entry, parent, after ); - sectItem->setAutoDeleteDocEntry( true ); - mItems.append( sectItem ); - - int numDocs = 0; // Number of docs created in this section - - QDomNode n = sectNode.firstChild(); - while( !n.isNull() ) { - QDomElement e = n.toElement(); - if( !e.isNull() ) { - if ( e.tagName() == "title" ) { - entry->setName( e.text() ); - sectItem->updateItem(); - } else if (e.tagName() == "sect") { - NavigatorItem *created; - numDocs += insertSection( sectItem, 0, e, created ); - } else if (e.tagName() == "doc") { - insertDoc(sectItem,e); - ++numDocs; - } - } - n = n.nextSibling(); - } - - // Remove empty sections - if (!mShowEmptyDirs && numDocs == 0) { - delete sectItem; - sectItem = 0; - } - - return numDocs; -} - -void ScrollKeeperTreeBuilder::insertDoc( NavigatorItem *parent, - const QDomNode &docNode ) -{ - DocEntry *entry = new DocEntry( "", "", "text-plain" ); - NavigatorItem *docItem = new NavigatorItem( entry, parent ); - docItem->setAutoDeleteDocEntry( true ); - mItems.append( docItem ); - - QString url; - - QDomNode n = docNode.firstChild(); - while( !n.isNull() ) { - QDomElement e = n.toElement(); - if( !e.isNull() ) { - if ( e.tagName() == "doctitle" ) { - entry->setName( e.text() ); - docItem->updateItem(); - } else if ( e.tagName() == "docsource" ) { - url.append( e.text() ); - } else if ( e.tagName() == "docformat" ) { - QString mimeType = e.text(); - if ( mimeType == "text/html") { - // Let the HTML part figure out how to get the doc - } else if ( mimeType == "application/xml" - || mimeType == "text/xml" /*deprecated name*/ ) { - if ( url.left( 5 ) == "file:" ) url = url.mid( 5 ); - url.prepend( "ghelp:" ); -#if 0 - url.replace( QRegExp( ".xml$" ), ".html" ); -#endif - } else if ( mimeType == "text/sgml" ) { - // GNOME docs use this type. We don't have a real viewer for this. - url.prepend( "file:" ); - } else if ( mimeType.left(5) == "text/" ) { - url.prepend( "file:" ); - } - } - } - n = n.nextSibling(); - } - - entry->setUrl( url ); -} - -#include "scrollkeepertreebuilder.moc" -// vim:sw=2:ts=2:et diff --git a/khelpcenter/scrollkeepertreebuilder.h b/khelpcenter/scrollkeepertreebuilder.h deleted file mode 100644 index 7218dd7b..00000000 --- a/khelpcenter/scrollkeepertreebuilder.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 KHC_SCROLLKEEPERTREEBUILDER_H -#define KHC_SCROLLKEEPERTREEBUILDER_H - -#include - -#include "navigatoritem.h" - -class QDomNode; - -namespace KHC { - -class ScrollKeeperTreeBuilder : public QObject -{ - Q_OBJECT - public: - explicit ScrollKeeperTreeBuilder( QObject *parent, const char *name = 0 ); - - NavigatorItem *build( NavigatorItem *parent, NavigatorItem *after ); - - private: - void loadConfig(); - int insertSection( NavigatorItem *parent, NavigatorItem *after, - const QDomNode §Node, NavigatorItem *&created ); - void insertDoc( NavigatorItem *parent, const QDomNode &docNode ); - - bool mShowEmptyDirs; - QString mContentsList; - QList mItems; -}; - -} - -#endif // KHC_SCROLLKEEPERTREEBUILDER_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/searchengine.cpp b/khelpcenter/searchengine.cpp deleted file mode 100644 index bfc4b9e5..00000000 --- a/khelpcenter/searchengine.cpp +++ /dev/null @@ -1,473 +0,0 @@ - -#include "searchengine.h" - -#include "stdlib.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "docmetainfo.h" -#include "formatter.h" -#include "view.h" -#include "searchhandler.h" -#include "prefs.h" - -namespace KHC -{ - -SearchTraverser::SearchTraverser( SearchEngine *engine, int level ) : - mMaxLevel( 999 ), mEngine( engine), mLevel( level ) -{ -#if 0 - kDebug() << "SearchTraverser(): " << mLevel - << " 0x" << QString::number( int( this ), 16 ) << endl; -#endif -} - -SearchTraverser::~SearchTraverser() -{ -#if 0 - kDebug() << "~SearchTraverser(): " << mLevel - << " 0x" << QString::number( int( this ), 16 ) << endl; -#endif - - QString section; - if ( parentEntry() ) { - section = parentEntry()->name(); - } else { - section = ("Unknown Section"); - } - - if ( !mResult.isEmpty() ) { - mEngine->view()->writeSearchResult( - mEngine->formatter()->sectionHeader( section ) ); - mEngine->view()->writeSearchResult( mResult ); - } -} - -void SearchTraverser::process( DocEntry * ) -{ - kDebug() << "SearchTraverser::process()"; -} - -void SearchTraverser::startProcess( DocEntry *entry ) -{ -// kDebug() << "SearchTraverser::startProcess(): " << entry->name() << " " -// << "SEARCH: '" << entry->search() << "'" << endl; - - if ( !mEngine->canSearch( entry ) || !entry->searchEnabled() ) { - mNotifyee->endProcess( entry, this ); - return; - } - -// kDebug() << "SearchTraverser::startProcess(): " << entry->identifier() -// << endl; - - SearchHandler *handler = mEngine->handler( entry->documentType() ); - - if ( !handler ) { - QString txt; - if ( entry->documentType().isEmpty() ) { - txt = i18n("Error: No document type specified."); - } else { - txt = i18n("Error: No search handler for document type '%1'.", - entry->documentType() ); - } - showSearchError( handler, entry, txt ); - return; - } - - connectHandler( handler ); - - handler->search( entry, mEngine->words(), mEngine->maxResults(), - mEngine->operation() ); - -// kDebug() << "SearchTraverser::startProcess() done: " << entry->name(); -} - -void SearchTraverser::connectHandler( SearchHandler *handler ) -{ - QMap::Iterator it; - it = mConnectCount.find( handler ); - int count = 0; - if ( it != mConnectCount.end() ) count = *it; - if ( count == 0 ) { - connect( handler, SIGNAL( searchError( SearchHandler *, DocEntry *, const QString & ) ), - SLOT( showSearchError( SearchHandler *, DocEntry *, const QString & ) ) ); - connect( handler, SIGNAL( searchFinished( SearchHandler *, DocEntry *, const QString & ) ), - SLOT( showSearchResult( SearchHandler *, DocEntry *, const QString & ) ) ); - } - mConnectCount[ handler ] = ++count; -} - -void SearchTraverser::disconnectHandler( SearchHandler *handler ) -{ - QMap::Iterator it; - it = mConnectCount.find( handler ); - if ( it == mConnectCount.end() ) { - kError() << "SearchTraverser::disconnectHandler() handler not connected." - << endl; - } else { - int count = *it; - --count; - if ( count == 0 ) { - disconnect( handler, SIGNAL( searchError( SearchHandler *, DocEntry *, const QString & ) ), - this, SLOT( showSearchError( SearchHandler *, DocEntry *, const QString & ) ) ); - disconnect( handler, SIGNAL( searchFinished( SearchHandler *, DocEntry *, const QString & ) ), - this, SLOT( showSearchResult( SearchHandler *, DocEntry *, const QString & ) ) ); - } - mConnectCount[ handler ] = count; - } -} - -DocEntryTraverser *SearchTraverser::createChild( DocEntry *parentEntry ) -{ -// kDebug() << "SearchTraverser::createChild() level " << mLevel; - - if ( mLevel >= mMaxLevel ) { - ++mLevel; - return this; - } else { - DocEntryTraverser *t = new SearchTraverser( mEngine, mLevel + 1 ); - t->setParentEntry( parentEntry ); - return t; - } -} - -DocEntryTraverser *SearchTraverser::parentTraverser() -{ -// kDebug() << "SearchTraverser::parentTraverser(): level: " << mLevel; - - if ( mLevel > mMaxLevel ) { - return this; - } else { - return mParent; - } -} - -void SearchTraverser::deleteTraverser() -{ -// kDebug() << "SearchTraverser::deleteTraverser()"; - - if ( mLevel > mMaxLevel ) { - --mLevel; - } else { - delete this; - } -} - -void SearchTraverser::showSearchError( SearchHandler *handler, DocEntry *entry, const QString &error ) -{ -// kDebug() << "SearchTraverser::showSearchError(): " << entry->name() -// << endl; - - mResult += mEngine->formatter()->docTitle( entry->name() ); - mResult += mEngine->formatter()->paragraph( error ); - - mEngine->logError( entry, error ); - - disconnectHandler( handler ); - - mNotifyee->endProcess( entry, this ); -} - -void SearchTraverser::showSearchResult( SearchHandler *handler, DocEntry *entry, const QString &result ) -{ -// kDebug() << "SearchTraverser::showSearchResult(): " << entry->name() -// << endl; - - mResult += mEngine->formatter()->docTitle( entry->name() ); - mResult += mEngine->formatter()->processResult( result ); - - disconnectHandler( handler ); - - mNotifyee->endProcess( entry, this ); -} - -void SearchTraverser::finishTraversal() -{ -// kDebug() << "SearchTraverser::finishTraversal()"; - - mEngine->view()->writeSearchResult( mEngine->formatter()->footer() ); - mEngine->view()->endSearchResult(); - - mEngine->finishSearch(); -} - - -SearchEngine::SearchEngine( View *destination ) - : QObject(), - mProc( 0 ), mSearchRunning( false ), mView( destination ), - mRootTraverser( 0 ) -{ - mLang = KGlobal::locale()->language().left( 2 ); -} - -SearchEngine::~SearchEngine() -{ - delete mRootTraverser; -} - -bool SearchEngine::initSearchHandlers() -{ - const QStringList resources = KGlobal::dirs()->findAllResources( - "appdata", "searchhandlers/*.desktop" ); - QStringList::ConstIterator it; - for( it = resources.constBegin(); it != resources.constEnd(); ++it ) { - QString filename = *it; - kDebug() << "SearchEngine::initSearchHandlers(): " << filename; - SearchHandler *handler = SearchHandler::initFromFile( filename ); - if ( !handler ) { - QString txt = i18n("Unable to initialize SearchHandler from file '%1'.", - filename ); - kWarning() << txt ; -// KMessageBox::sorry( mView->widget(), txt ); - } else { - QStringList documentTypes = handler->documentTypes(); - QStringList::ConstIterator it; - for( it = documentTypes.constBegin(); it != documentTypes.constEnd(); ++it ) { - mHandlers.insert( *it, handler ); - } - } - } - - if ( mHandlers.isEmpty() ) { - QString txt = i18n("No valid search handler found."); - kWarning() << txt ; -// KMessageBox::sorry( mView->widget(), txt ); - return false; - } - - return true; -} - -void SearchEngine::searchExited(int exitCode, QProcess::ExitStatus exitStatus) -{ - Q_UNUSED(exitCode); - Q_UNUSED(exitStatus); - kDebug() << "Search terminated"; - mSearchRunning = false; -} - -bool SearchEngine::search( const QString & words, const QString & method, int matches, - const QString & scope ) -{ - if ( mSearchRunning ) return false; - - // These should be removed - mWords = words; - mMethod = method; - mMatches = matches; - mScope = scope; - - // Saner variables to store search parameters: - mWordList = words.split(' '); - mMaxResults = matches; - if ( method == "or" ) mOperation = Or; - else mOperation = And; - - KConfigGroup cfg(KGlobal::config(), "Search"); - QString commonSearchProgram = cfg.readPathEntry( "CommonProgram", QString() ); - bool useCommon = cfg.readEntry( "UseCommonProgram", false); - - if ( commonSearchProgram.isEmpty() || !useCommon ) { - if ( !mView ) { - return false; - } - - QString txt = i18n("Search Results for '%1':", Qt::escape(words) ); - - mStderr = "" + txt + "\n"; - - mView->beginSearchResult(); - mView->writeSearchResult( formatter()->header( i18n("Search Results") ) ); - mView->writeSearchResult( formatter()->title( txt ) ); - - if ( mRootTraverser ) { - kDebug() << "SearchEngine::search(): mRootTraverser not null."; - return false; - } - mRootTraverser = new SearchTraverser( this, 0 ); - DocMetaInfo::self()->startTraverseEntries( mRootTraverser ); - - return true; - } else { - QString lang = KGlobal::locale()->language().left(2); - - if ( lang.toLower() == "c" || lang.toLower() == "posix" ) - lang = "en"; - - // if the string contains '&' replace with a '+' and set search method to and - if (mWords.indexOf("&") != -1) { - mWords.replace('&', ' '); - mMethod = "and"; - } - - // replace whitespace with a '+' - mWords = mWords.trimmed(); - mWords = mWords.simplified(); - mWords.replace(QRegExp("\\s"), "+"); - - commonSearchProgram = substituteSearchQuery( commonSearchProgram ); - - kDebug() << "Common Search: " << commonSearchProgram; - - mProc = new KProcess(); - *mProc << KShell::splitArgs(commonSearchProgram); - - connect( mProc, SIGNAL( finished(int, QProcess::ExitStatus) ), - this, SLOT( searchExited(int, QProcess::ExitStatus) ) ); - - mSearchRunning = true; - mSearchResult = ""; - mStderr = "" + commonSearchProgram + "\n\n"; - - mProc->start(); - if (!mProc->waitForStarted()) { - kError() << "could not start search program '" << commonSearchProgram - << "'" << endl; - delete mProc; - return false; - } - - while (mSearchRunning && mProc->state() == QProcess::Running) - kapp->processEvents(); - - // no need to use signals/slots - mStderr += mProc->readAllStandardError(); - mSearchResult += mProc->readAllStandardOutput(); - - if ( mProc->exitStatus() == KProcess::CrashExit || mProc->exitCode() != 0 ) { - kError() << "Unable to run search program '" << commonSearchProgram - << "'" << endl; - delete mProc; - - return false; - } - - delete mProc; - - // modify the search result - mSearchResult = mSearchResult.replace("http://localhost/", "file:/"); - mSearchResult = mSearchResult.mid( mSearchResult.indexOf( '<' ) ); - - mView->beginSearchResult(); - mView->writeSearchResult( mSearchResult ); - mView->endSearchResult(); - - emit searchFinished(); - } - - return true; -} - -QString SearchEngine::substituteSearchQuery( const QString &query ) -{ - QString result = query; - result.replace( QLatin1String("%k"), mWords ); - result.replace( QLatin1String("%n"), QString::number( mMatches ) ); - result.replace( QLatin1String("%m"), mMethod ); - result.replace( QLatin1String("%l"), mLang ); - result.replace( QLatin1String("%s"), mScope ); - - return result; -} - -QString SearchEngine::substituteSearchQuery( const QString &query, - const QString &identifier, const QStringList &words, int maxResults, - Operation operation, const QString &lang, const QString& binary ) -{ - QString result = query; - result.replace( QLatin1String("%i"), identifier ); - result.replace( QLatin1String("%w"), words.join( "+" ) ); - result.replace( QLatin1String("%m"), QString::number( maxResults ) ); - QString o = QLatin1String(operation == Or ? "or" : "and"); - result.replace( QLatin1String("%o"), o ); - result.replace( QLatin1String("%d"), Prefs::indexDirectory() ); - result.replace( QLatin1String("%l"), lang ); - result.replace( QLatin1String("%b"), binary ); - - return result; -} - -Formatter *SearchEngine::formatter() const -{ - return mView->formatter(); -} - -View *SearchEngine::view() const -{ - return mView; -} - -void SearchEngine::finishSearch() -{ - delete mRootTraverser; - mRootTraverser = 0; - - emit searchFinished(); -} - -QString SearchEngine::errorLog() const -{ - return mStderr; -} - -void SearchEngine::logError( DocEntry *entry, const QString &msg ) -{ - mStderr += entry->identifier() + QLatin1String(": ") + msg; -} - -bool SearchEngine::isRunning() const -{ - return mSearchRunning; -} - -SearchHandler *SearchEngine::handler( const QString &documentType ) const -{ - return mHandlers.value( documentType, 0 ); -} - -QStringList SearchEngine::words() const -{ - return mWordList; -} - -int SearchEngine::maxResults() const -{ - return mMaxResults; -} - -SearchEngine::Operation SearchEngine::operation() const -{ - return mOperation; -} - -bool SearchEngine::canSearch( DocEntry *entry ) -{ - return entry->docExists() && !entry->documentType().isEmpty() && - handler( entry->documentType() ); -} - -bool SearchEngine::needsIndex( DocEntry *entry ) -{ - if ( !canSearch( entry ) ) return false; - - SearchHandler *h = handler( entry->documentType() ); - if ( !h || h->indexCommand( entry->identifier() ).isEmpty() ) return false; - - return true; -} - -} - -#include "searchengine.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/searchengine.h b/khelpcenter/searchengine.h deleted file mode 100644 index c1b265fa..00000000 --- a/khelpcenter/searchengine.h +++ /dev/null @@ -1,143 +0,0 @@ - -#ifndef KHC_SEARCHENGINE_H -#define KHC_SEARCHENGINE_H - -#include - -#include -#include - -#include "docentrytraverser.h" - -namespace KHC { - -class Formatter; -class SearchEngine; -class View; -class SearchHandler; - -class SearchTraverser : public QObject, public DocEntryTraverser -{ - Q_OBJECT - public: - SearchTraverser( SearchEngine *engine, int level ); - ~SearchTraverser(); - - void process( DocEntry * ); - - void startProcess( DocEntry * ); - - DocEntryTraverser *createChild( DocEntry * ); - - DocEntryTraverser *parentTraverser(); - - void deleteTraverser(); - - void finishTraversal(); - - protected: - void connectHandler( SearchHandler *handler ); - void disconnectHandler( SearchHandler *handler ); - - protected Q_SLOTS: - void showSearchResult( SearchHandler *, DocEntry *, const QString &result ); - void showSearchError( SearchHandler *, DocEntry *, const QString &error ); - - private: - const int mMaxLevel; - - SearchEngine *mEngine; - int mLevel; - - DocEntry *mEntry; - QString mJobData; - - QString mResult; - - QMap mConnectCount; -}; - - -class SearchEngine : public QObject -{ - Q_OBJECT - public: - enum Operation { And, Or }; - - SearchEngine( View * ); - ~SearchEngine(); - - bool initSearchHandlers(); - - bool search( const QString & words, const QString & method = "and", int matches = 5, - const QString & scope = "" ); - - Formatter *formatter() const; - View *view() const; - - QString substituteSearchQuery( const QString &query ); - - static QString substituteSearchQuery( const QString &query, - const QString &identifier, const QStringList &words, int maxResults, - Operation operation, const QString &lang, const QString& binary ); - - void finishSearch(); - - /** - Append error message to error log. - */ - void logError( DocEntry *entry, const QString &msg ); - - /** - Return error log. - */ - QString errorLog() const; - - bool isRunning() const; - - SearchHandler *handler( const QString &documentType ) const; - - QStringList words() const; - int maxResults() const; - Operation operation() const; - - bool canSearch( DocEntry * ); - bool needsIndex( DocEntry * ); - - Q_SIGNALS: - void searchFinished(); - - protected Q_SLOTS: - void searchExited(int, QProcess::ExitStatus); - - protected: - void processSearchQueue(); - - private: - KProcess *mProc; - bool mSearchRunning; - QString mSearchResult; - - QString mStderr; - - View *mView; - - QString mWords; - int mMatches; - QString mMethod; - QString mLang; - QString mScope; - - QStringList mWordList; - int mMaxResults; - Operation mOperation; - - DocEntryTraverser *mRootTraverser; - - QMap mHandlers; -}; - -} - -#endif //KHC_SEARCHENGINE_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/searchhandler.cpp b/khelpcenter/searchhandler.cpp deleted file mode 100644 index 59ae8b92..00000000 --- a/khelpcenter/searchhandler.cpp +++ /dev/null @@ -1,245 +0,0 @@ - -/* - This file is part of KHelpCenter. - - Copyright (c) 2005 Cornelius Schumacher - - 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 "searchhandler.h" - -#include "searchengine.h" -#include "prefs.h" -#include "docentry.h" - -#include -#include -#include -#include -#include -#include -#include - -#include - -using namespace KHC; - -SearchJob::SearchJob(DocEntry *entry) : mEntry( entry ), mProcess( 0 ), mKioJob( 0 ) -{ -} - -bool SearchJob::startLocal(const QString &cmdString) -{ - mProcess = new KProcess; - *mProcess << KShell::splitArgs(cmdString); - - connect( mProcess, SIGNAL( finished(int, QProcess::ExitStatus) ), - this, SLOT( searchExited(int, QProcess::ExitStatus) ) ); - - mProcess->setOutputChannelMode(KProcess::SeparateChannels); - mProcess->start(); - if (!mProcess->waitForStarted()) { - QString txt = i18n("Error executing search command '%1'.", cmdString ); - emit searchError( this, mEntry, txt ); - return false; - } - return true; -} - -bool SearchJob::startRemote(const QString &urlString) -{ - KIO::TransferJob *job = KIO::get( KUrl( urlString ) ); - connect( job, SIGNAL( result( KJob * ) ), - this, SLOT( slotJobResult( KJob * ) ) ); - connect( job, SIGNAL( data( KIO::Job *, const QByteArray & ) ), - this, SLOT( slotJobData( KIO::Job *, const QByteArray & ) ) ); - - mKioJob = job; - return true; -} - -SearchJob::~SearchJob() -{ - delete mProcess; - delete mKioJob; -} - -void SearchJob::searchExited( int exitCode, QProcess::ExitStatus exitStatus ) -{ - if ( exitStatus == QProcess::NormalExit && exitCode == 0 ) { - mResult = mProcess->readAllStandardOutput(); - emit searchFinished( this, mEntry, mResult ); - } else { - mError = mProcess->readAllStandardError(); - QString error = QLatin1String("") + mCmd + QLatin1String("\n") + mError; - emit searchError( this, mEntry, error ); - } -} - -void SearchJob::slotJobResult( KJob *job ) -{ - QString result; - //DocEntry *entry = 0; - - if ( job->error() ) { - emit searchError( this, mEntry, i18n("Error: %1", job->errorString() ) ); - } else { - emit searchFinished( this, mEntry, mResult ); - } -} - -void SearchJob::slotJobData( KIO::Job *job, const QByteArray &data ) -{ - Q_UNUSED(job); - mResult += data.data(); -} - - -SearchHandler::SearchHandler( const KConfigGroup &cg ) -{ - mLang = KGlobal::locale()->language().left( 2 ); - mDocumentTypes = cg.readEntry( "DocumentTypes" , QStringList() ); -} - -SearchHandler::~SearchHandler() -{ -} - -SearchHandler *SearchHandler::initFromFile( const QString &filename ) -{ - KDesktopFile file( filename ); - KConfigGroup dg = file.desktopGroup(); - - SearchHandler *handler = 0; - - const QString type = dg.readEntry( "Type" ); - if ( false ) { - } else { - handler = new ExternalProcessSearchHandler( dg ); - } - - return handler; -} - -QStringList SearchHandler::documentTypes() const -{ - return mDocumentTypes; -} - - -ExternalProcessSearchHandler::ExternalProcessSearchHandler( const KConfigGroup &cg ) - : SearchHandler( cg ) -{ - mSearchCommand = cg.readEntry( "SearchCommand" ); - mSearchUrl = cg.readEntry( "SearchUrl" ); - mIndexCommand = cg.readEntry( "IndexCommand" ); - mTryExec = cg.readEntry( "TryExec" ); - mSearchBinary = cg.readEntry( "SearchBinary" ); - const QStringList searchBinaryPaths = cg.readEntry( "SearchBinaryPaths", QStringList() ); - mSearchBinary = KStandardDirs::findExe(mSearchBinary, searchBinaryPaths.join(":")); -} - -QString ExternalProcessSearchHandler::indexCommand( const QString &identifier ) -{ - QString cmd = mIndexCommand; - cmd.replace( "%i", identifier ); - cmd.replace( "%d", Prefs::indexDirectory() ); - cmd.replace( "%l", mLang ); - return cmd; -} - -bool ExternalProcessSearchHandler::checkPaths(QString* error) const -{ - if ( !mSearchCommand.isEmpty() && !checkBinary( mSearchCommand ) ) { - *error = i18n("'%1' not found, check your installation", mSearchCommand); - return false; - } - - if ( !mIndexCommand.isEmpty() && !checkBinary( mIndexCommand ) ) { - *error = i18n("'%1' not found, check your installation", mIndexCommand); - return false; - } - - if ( !mTryExec.isEmpty() && !checkBinary( mTryExec ) ) { - *error = i18n("'%1' not found, install the package containing it", mTryExec); - return false; - } - - return true; -} - -bool ExternalProcessSearchHandler::checkBinary( const QString &cmd ) const -{ - QString binary; - - int pos = cmd.indexOf( ' ' ); - if ( pos < 0 ) binary = cmd; - else binary = cmd.left( pos ); - - return !KStandardDirs::findExe( binary ).isEmpty(); -} - -void ExternalProcessSearchHandler::search( DocEntry *entry, const QStringList &words, - int maxResults, - SearchEngine::Operation operation ) -{ - kDebug() << entry->identifier(); - - if ( !mSearchCommand.isEmpty() ) { - QString cmdString = SearchEngine::substituteSearchQuery( mSearchCommand, - entry->identifier(), words, maxResults, operation, mLang, mSearchBinary ); - - kDebug() << "CMD:" << cmdString; - - SearchJob *searchJob = new SearchJob(entry); - connect(searchJob, SIGNAL(searchFinished( SearchJob *, DocEntry *, const QString & )), - this, SLOT(slotSearchFinished( SearchJob *, DocEntry *, const QString & ))); - connect(searchJob, SIGNAL(searchError( SearchJob *, DocEntry *, const QString & )), - this, SLOT(slotSearchError( SearchJob *, DocEntry *, const QString & ))); - searchJob->startLocal(cmdString); - - } else if ( !mSearchUrl.isEmpty() ) { - QString urlString = SearchEngine::substituteSearchQuery( mSearchUrl, - entry->identifier(), words, maxResults, operation, mLang, mSearchBinary ); - - kDebug() << "URL:" << urlString; - - SearchJob *searchJob = new SearchJob(entry); - connect(searchJob, SIGNAL(searchFinished( SearchJob *, DocEntry *, const QString & )), - this, SLOT(slotSearchFinished( SearchJob *, DocEntry *, const QString & ))); - connect(searchJob, SIGNAL(searchError( SearchJob *, DocEntry *, const QString & )), - this, SLOT(slotSearchError( SearchJob *, DocEntry *, const QString & ))); - searchJob->startRemote(urlString); - - } else { - QString txt = i18n("No search command or URL specified."); - emit searchFinished( this, entry, txt ); - } -} - -void ExternalProcessSearchHandler::slotSearchFinished( SearchJob *job, DocEntry *entry, const QString &result ) -{ - emit searchFinished( this, entry, result); - job->deleteLater(); -} - -void ExternalProcessSearchHandler::slotSearchError( SearchJob *job, DocEntry *entry, const QString &error ) -{ - emit searchError(this, entry, error); - job->deleteLater(); -} - -#include "searchhandler.moc" diff --git a/khelpcenter/searchhandler.h b/khelpcenter/searchhandler.h deleted file mode 100644 index 351b7174..00000000 --- a/khelpcenter/searchhandler.h +++ /dev/null @@ -1,125 +0,0 @@ - -/* - This file is part of KHelpCenter. - - Copyright (c) 2005 Cornelius Schumacher - - 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 KHC_SEARCHHANDLER_H -#define KHC_SEARCHHANDLER_H - -#include "searchengine.h" - -#include - -#include - -class KConfigGroup; -namespace KIO { - class Job; -} - -namespace KHC { - - class SearchJob : public QObject { - Q_OBJECT - public: - SearchJob(DocEntry *entry); - ~SearchJob(); - - bool startLocal(const QString &cmdString); - bool startRemote(const QString &url); - - Q_SIGNALS: - void searchFinished( SearchJob *, DocEntry *, const QString & ); - void searchError( SearchJob *, DocEntry *, const QString & ); - - protected Q_SLOTS: - void searchExited( int exitCode, QProcess::ExitStatus ); - void slotJobResult( KJob *job ); - void slotJobData( KIO::Job *, const QByteArray &data ); - - protected: - DocEntry *mEntry; - KProcess *mProcess; - KIO::Job *mKioJob; - QString mCmd; - QString mResult; - QString mError; - }; - - class SearchHandler : public QObject - { - Q_OBJECT - public: - static SearchHandler *initFromFile( const QString &filename ); - - virtual ~SearchHandler(); - - virtual void search( DocEntry *, const QStringList &words, - int maxResults = 10, - SearchEngine::Operation operation = SearchEngine::And ) = 0; - - virtual QString indexCommand( const QString &identifier ) = 0; - - QStringList documentTypes() const; - - virtual bool checkPaths(QString* error) const = 0; - - Q_SIGNALS: - void searchFinished( SearchHandler *, DocEntry *, const QString & ); - void searchError( SearchHandler *, DocEntry *, const QString & ); - - protected: - SearchHandler( const KConfigGroup &cg ); - - QString mLang; - QStringList mDocumentTypes; - }; - - class ExternalProcessSearchHandler : public SearchHandler - { - Q_OBJECT - public: - ExternalProcessSearchHandler( const KConfigGroup &cg ); - - void search( DocEntry *, const QStringList &words, - int maxResults = 10, - SearchEngine::Operation operation = SearchEngine::And ); - - QString indexCommand( const QString &identifier ); - - bool checkPaths(QString* error) const; - - private: - bool checkBinary( const QString &cmd ) const; - - private slots: - void slotSearchFinished( SearchJob *, DocEntry *, const QString & ); - void slotSearchError( SearchJob *, DocEntry *, const QString & ); - - private: - QString mSearchCommand; - QString mSearchUrl; - QString mSearchBinary; - QString mIndexCommand; - QString mTryExec; - }; - -} - -#endif //KHC_SEARCHHANDLER_H diff --git a/khelpcenter/searchhandlers/CMakeLists.txt b/khelpcenter/searchhandlers/CMakeLists.txt deleted file mode 100644 index 7246e637..00000000 --- a/khelpcenter/searchhandlers/CMakeLists.txt +++ /dev/null @@ -1,20 +0,0 @@ -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/khc_docbookdig.pl.cmake ${CMAKE_CURRENT_BINARY_DIR}/khc_docbookdig.pl @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/khc_htdig.pl.cmake ${CMAKE_CURRENT_BINARY_DIR}/khc_htdig.pl @ONLY ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docbook.desktop.cmake -${CMAKE_CURRENT_BINARY_DIR}/docbook.desktop ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/man.desktop.cmake -${CMAKE_CURRENT_BINARY_DIR}/man.desktop ) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/htdig.desktop.cmake -${CMAKE_CURRENT_BINARY_DIR}/htdig.desktop ) - -macro_additional_clean_files( ${CMAKE_CURRENT_BINARY_DIR}/khc_htdig.pl {CMAKE_CURRENT_BINARY_DIR}/khc_docbookdig.pl @ONLY) - -########### install files ############### - -install( FILES htdig_long.html DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/searchhandlers/htdig ) -install( FILES ${CMAKE_CURRENT_BINARY_DIR}/htdig.desktop ${CMAKE_CURRENT_BINARY_DIR}/man.desktop ${CMAKE_CURRENT_BINARY_DIR}/docbook.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/searchhandlers ) - -install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/khc_htdig.pl khc_htsearch.pl khc_mansearch.pl ${CMAKE_CURRENT_BINARY_DIR}/khc_docbookdig.pl DESTINATION ${LIBEXEC_INSTALL_DIR}) diff --git a/khelpcenter/searchhandlers/README.searchhandlers b/khelpcenter/searchhandlers/README.searchhandlers deleted file mode 100644 index cbbfbbbd..00000000 --- a/khelpcenter/searchhandlers/README.searchhandlers +++ /dev/null @@ -1,61 +0,0 @@ -KHelpcenter Search Handlers -=========================== - -Searching documents in KHelpcenter is handled by document-type-specific search -handlers. Each searchable document provides provides a document type in its meta -data and if a corresponding handler is found, it can be searched. - -Search handlers are described by a desktop file which is put in the khelpcenter -app directory in a "searchhandlers" directory. The desktop file contains the -information about which document types the handler covers, how to do a search -query and how to create a search index. - -A search handler has to provide a command line tool based interface. There has -to be a command to do a query and, if previous creation of an index is required, -a command to create a search index. The search commands returns its results as -HTML on stdout. - - -Search Query ------------- - -KHelpcenter reads the command to execute for submitting a search query from the -search handler's desktop file ("SearchCommand"). The search command can contain -some symbols which are replaced by KHelpcenter with the data for the concrete -search request: - -%i Identifier of document (usually the name of the document's desktop file) -%w Words to be searched for -%o Operation for combining multiple search words. Allowed values: "and" and - "or". -%m Maximum number of results -%d Directory containing search indices - -Search Query Result -------------------- - -The result has to be returned as HTML page. The content of the tag will -be extracted and inserted in the search results page. If there is no body tag, -the complete result text will be inserted. - - -Building a Search Index ------------------------ - -KHelpcenter reads the command to build a search index from the search handler's -desktop file ("IndexCommand"). The indexing command can contain some symbols -which are replaced by KHelpcenter with the data for the concrete index creation -call: - -%i Identifier of document (usually the name of the document's desktop file) -%d Directory containing search indices -%p Path to document to be indexed - -Index Creation Result ---------------------- - -As result of the indexing command an index is created in the directory specified -by KHelpcenter. The format and structure of the index is handler-specific. When -index creation is finished the indexing command has to create a special file -with the name ".exists", where has to have the value -passed by the %i symbol. This file indicates the existance of the index. diff --git a/khelpcenter/searchhandlers/docbook.desktop.cmake b/khelpcenter/searchhandlers/docbook.desktop.cmake deleted file mode 100644 index a5e29cdc..00000000 --- a/khelpcenter/searchhandlers/docbook.desktop.cmake +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -DocumentTypes=application/docbook+xml - -SearchBinary=htsearch -SearchBinaryPaths=/srv/www/cgi-bin,/usr/lib/cgi-bin,/opt/www/htdig/bin -SearchCommand=${LIBEXEC_INSTALL_DIR}/khc_htsearch.pl --binary=%b --docbook --indexdir=%d --config=%i --words=%w --method=%o --maxnum=%m --lang=en -IndexCommand=${LIBEXEC_INSTALL_DIR}/khc_docbookdig.pl --indexdir=%d --docpath=%p --identifier=%i -TryExec=/usr/bin/htdig diff --git a/khelpcenter/searchhandlers/htdig.desktop.cmake b/khelpcenter/searchhandlers/htdig.desktop.cmake deleted file mode 100644 index f961306e..00000000 --- a/khelpcenter/searchhandlers/htdig.desktop.cmake +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -DocumentTypes=text/html - -SearchBinary=htsearch -SearchBinaryPaths=/srv/www/cgi-bin,/usr/lib/cgi-bin,/opt/www/htdig/bin -SearchCommand=${LIBEXEC_INSTALL_DIR}/khc_htsearch.pl --binary=%b --indexdir=%d --config=%i --words=%w --method=%o --maxnum=%m --lang=%l -IndexCommand=${LIBEXEC_INSTALL_DIR}/khc_htdig.pl --indexdir=%d --docpath=%p --identifier=%i --lang=%l -TryExec=/usr/bin/htdig diff --git a/khelpcenter/searchhandlers/htdig_long.html b/khelpcenter/searchhandlers/htdig_long.html deleted file mode 100644 index a2e6e218..00000000 --- a/khelpcenter/searchhandlers/htdig_long.html +++ /dev/null @@ -1,2 +0,0 @@ -$(STARSRIGHT) $&(TITLE) ($(MODIFIED))
-$(EXCERPT)
diff --git a/khelpcenter/searchhandlers/khc_docbookdig.pl.cmake b/khelpcenter/searchhandlers/khc_docbookdig.pl.cmake deleted file mode 100755 index 3b424c4d..00000000 --- a/khelpcenter/searchhandlers/khc_docbookdig.pl.cmake +++ /dev/null @@ -1,222 +0,0 @@ -#!/usr/bin/perl -# -# Wrapper script for creating search indices for htdig. -# -# This file is part of KHelpcenter. -# -# Copyright (C) 2002 SuSE Linux AG, Nuernberg -# -# Author: Cornelius Schumacher -# -# 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 - -use strict; - -use Getopt::Long; - -my $htdigdata = "/srv/www/htdig/common/"; -my $htdigbin = "/usr/bin"; -my $kdeprefix = "@CMAKE_INSTALL_PREFIX@"; -chomp $kdeprefix; - -my $dbg = 1; - -my ($indexdir, $docpath, $identifier, $lang, $help ); - -GetOptions ( - 'indexdir=s' => \$indexdir, - 'docpath=s' => \$docpath, - 'identifier=s' => \$identifier, - 'lang=s' => \$lang, - 'help' => \$help, -); - -if ( $help ) { - usage(); -} - -if ( !$indexdir || !$docpath || !$identifier ) { - print STDERR "Missing arguments.\n"; - usage(); -} - -&dbg( "INDEXDIR: $indexdir" ); - -if ( !$lang ) { $lang = "en"; } - -my $tmpdir = "$indexdir/$identifier.tmp"; -if ( ! -e $tmpdir ) { - mkdir $tmpdir; -} - -print "Creating index for '$identifier'\n"; - -my $htdigconf = $indexdir; -my $htdigdb = $indexdir; - -my $conffile = "$htdigconf/$identifier.conf"; - -my $commondir = "$htdigdata/$lang"; -if ( !$lang || !-e $commondir ) { - $commondir = "$htdigdata/en"; -} -if ( !-e $commondir ) { $commondir = $htdigdata; } - -my $locale; -if ( $lang eq "de" ) { $locale = "de_DE"; } -else { $locale = $lang; } - -my $startfile = "$tmpdir/index.html"; - -if ( !open( START, ">$startfile" ) ) { - print STDERR "Unable to open '$startfile' for writing.\n"; - exit 1; -} - -$ENV{ PATH } = '/bin:/usr/bin'; -$ENV{ CDPATH } = ''; -$ENV{ ENV } = ''; - -my $findpath = "@HTML_INSTALL_DIR@/$lang/"; -my $findcmd = "find $findpath -name index.docbook"; - -print STDERR "FINDCMD: $findcmd\n"; - -if ( !open FIND, "$findcmd|" ) { - print STDERR "Unable to find docs.\n"; - exit 1; -} -while ( ) { - chomp; - my $path = $_; - $path =~ /$findpath(.*)\/index.docbook$/; - my $app = $1; - print START "$path\n"; -} -close START; - -my $mimetypefile = "$tmpdir/htdig_mime"; -if ( !open( MIME, ">$mimetypefile" ) ) { - print STDERR "Unable to open '$mimetypefile' for writing.\n"; - exit 1; -} -print MIME << "EOT"; -text/html html -text/docbook docbook -EOT -close MIME; - -my $parserfile = "$tmpdir/docbookparser"; -if ( !open( PARSER, ">$parserfile" ) ) { - print STDERR "Unable to open '$parserfile' for writing.\n"; - exit 1; -} -print PARSER << "EOT"; -#! /bin/bash - -file=\$1 -shift -mime=\$1 -shift - -if test "\$#" -gt 0; then - orig=\${1/file:\\//} - shift -fi - -case "\$orig" in - help:/*) - orig=\${orig/help:\\//} - orig=\${orig/\/index.docbook/} - cd @HTML_INSTALL_DIR@/en/\$orig - file=index.docbook - ;; - *) - file=\$orig - cd `dirname \$orig` - ;; -esac - -echo "t apptitle" -#$kdeprefix/bin/meinproc --htdig "\$file" -$kdeprefix/bin/meinproc4 --htdig "\$file" -EOT -close PARSER; -chmod 0755, $parserfile; - -if ( !open( CONF, ">$conffile" ) ) { - print STDERR "Unable to open '$conffile' for writing.\n"; - exit 1; -} -print CONF << "EOT"; -# htdig configuration for doc '$identifier' -# -# This file has been automatically created by KHelpcenter -common_dir: $commondir -locale: $locale -database_dir: $htdigdb -database_base: \${database_dir}/$identifier -local_urls: help://=@HTML_INSTALL_DIR@/en/ file://=/ -local_urls_only: true -limit_urls_to: file:// help:/ -ignore_noindex: true -max_hop_count: 4 -robotstxt_name: kdedig -compression_level: 6 -template_map: Long long @DATA_INSTALL_DIR@/khelpcenter/searchhandlers/htdig/htdig_long.html -search_algorithm: exact:1 prefix:0.8 -maximum_pages: 1 -matches_per_page: 10 -start_url: file://$tmpdir/index.html -external_parsers: text/docbook $parserfile -valid_extensions: .docbook .html -mime_types: $mimetypefile -EOT -close CONF; - -my $ret = system( "$htdigbin/htdig", "-v", "-s", "-i", "-c", $conffile ); -if ( $ret != 0 ) { - print STDERR "htdig failed\n"; -} else { - $ret = system( "$htdigbin/htmerge", "-c", $conffile ); - if ( $ret != 0 ) { print STDERR "htmerge failed\n"; } -} - -if ( $ret == 0 ) { - my $existsfile = "$indexdir/$identifier.exists"; - - if ( !open( EXISTS, ">$existsfile" ) ) { - print STDERR "Unable to open '$existsfile' for writing.\n"; - exit 1; - } - print EXISTS "$identifier\n"; - close EXISTS; - - print "Finished successfully.\n"; -} - -exit $ret; - -sub dbg($) -{ - $dbg && print STDERR shift, "\n"; -} - -sub usage() -{ - print "Usage: khc_docbookdig.pl --indexdir --docpath "; - print "--identifier \n"; - exit 1; -} diff --git a/khelpcenter/searchhandlers/khc_htdig.pl.cmake b/khelpcenter/searchhandlers/khc_htdig.pl.cmake deleted file mode 100755 index 511adc83..00000000 --- a/khelpcenter/searchhandlers/khc_htdig.pl.cmake +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/perl -# -# Wrapper script for creating search indices for htdig. -# -# This file is part of the SuSE help system. -# -# Copyright (C) 2002 SuSE Linux AG, Nuernberg -# -# Author: Cornelius Schumacher -# -# 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 - -use strict; - -use Getopt::Long; - -my $htdigdata = "/srv/www/htdig/common/"; -my $htdigbin = "/usr/bin"; -my $kdeprefix = "@CMAKE_INSTALL_PREFIX@"; -chomp $kdeprefix; - -my $dbg = 1; - -my ($indexdir, $docpath, $identifier, $lang, $help ); - -GetOptions ( - 'indexdir=s' => \$indexdir, - 'docpath=s' => \$docpath, - 'identifier=s' => \$identifier, - 'lang=s' => \$lang, - 'help' => \$help, -); - -if ( $help ) { - usage(); -} - -if ( !$indexdir || !$docpath || !$identifier ) { - print STDERR "Missing arguments.\n"; - usage(); -} - -if ( !$lang ) { $lang = "en"; } - -&dbg( "INDEXDIR: $indexdir" ); - -print "Creating index for '$identifier'\n"; - -my $htdigconf = $indexdir; -my $htdigdb = $indexdir; - -my $conffile = "$htdigconf/$identifier.conf"; - -if ( !open( CONF, ">$conffile" ) ) { - print STDERR "Unable to open '$conffile' for writing.\n"; - exit 1; -} - -my $commondir = "$htdigdata/$lang"; -if ( !$lang || !-e $commondir ) { - $commondir = "$htdigdata/en"; -} -if ( !-e $commondir ) { $commondir = $htdigdata; } - -my $locale; -if ( $lang eq "de" ) { $locale = "de_DE"; } -else { $locale = $lang; } - -print CONF << "EOT"; -# htdig configuration for doc '$identifier' -# -# This file has been automatically created by KHelpcenter - -common_dir: $commondir -locale: $locale -database_dir: $htdigdb -local_urls: http://localhost= -local_urls_only: true -limit_urls_to: http://localhost -ignore_noindex: true -max_hop_count: 4 -robotstxt_name: kdedig -compression_level: 6 -template_map: Long long $kdeprefix/share/apps/khelpcenter/searchhandlers/htdig/htdig_long.html \\ - Short short $htdigdata/short.html -search_algorithm: exact:1 prefix:0.8 -maximum_pages: 1 -matches_per_page: 10 -database_base: \${database_dir}/$identifier -start_url: http://localhost/$docpath -# for pdf-files -max_doc_size: 5000000 -external_parsers: application/pdf /usr/share/doc/packages/htdig/contrib/parse_doc.pl application/postscript /usr/share/doc/packages/htdig/contrib/parse_doc.pl -#external_parsers: text/docbook /build/htdig/parser -EOT - -close CONF; - -$ENV{ PATH } = ''; -$ENV{ CDPATH } = ''; -$ENV{ ENV } = ''; - -my $ret = system( "$htdigbin/htdig", "-s", "-i", "-c", $conffile ); -if ( $ret != 0 ) { - print STDERR "htdig failed\n"; -} else { - $ret = system( "$htdigbin/htmerge", "-c", $conffile ); - if ( $ret != 0 ) { print STDERR "htmerge failed\n"; } -} - -if ( $ret == 0 ) { - my $existsfile = "$indexdir/$identifier.exists"; - - if ( !open( EXISTS, ">$existsfile" ) ) { - print STDERR "Unable to open '$existsfile' for writing.\n"; - exit 1; - } - print EXISTS "$identifier\n"; - close EXISTS; - - print "Finished successfully.\n"; -} - -exit $ret; - -sub dbg($) -{ - $dbg && print STDERR shift, "\n"; -} - -sub usage() -{ - print "Usage: khc_htdig.pl --indexdir --docpath "; - print "--identifier \n"; - exit 1; -} diff --git a/khelpcenter/searchhandlers/khc_htsearch.pl b/khelpcenter/searchhandlers/khc_htsearch.pl deleted file mode 100755 index 5dc3f5f7..00000000 --- a/khelpcenter/searchhandlers/khc_htsearch.pl +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/perl - -use strict; - -use Encode; -use Getopt::Long; - -use open IO => ':utf8'; -use open ':std'; - -my $htsearchpath="/srv/www/cgi-bin/htsearch"; -my $config; -my $format; -my $method; -my $words; -my $lang; -my $docbook; -my $indexdir; -my $maxnum; - -GetOptions ( - 'binary=s' => \$htsearchpath, - 'config=s' => \$config, - 'format=s' => \$format, - 'method=s' => \$method, - 'words=s' => \$words, - 'lang=s' => \$lang, - 'docbook' => \$docbook, - 'indexdir=s' => \$indexdir, - 'maxnum=s' => \$maxnum -); - -if ( !$indexdir ) { - print STDERR "No index dir given.\n"; - exit 1; -} - -if ( !$lang ) { $lang = "en"; } - -my $charset = langCharset( $lang ); - -$words = encode( $charset, $words ); - -if ( !open( HTSEARCH, "-|", "$htsearchpath", "-c", "$indexdir/$config.conf", - "format=$format&method=$method&words=$words&matchesperpage=$maxnum&exclude=[index.html]" ) ) -{ - print "Can't execute htsearch at '$htsearchpath'.\n"; - exit 1; -} - -my ($body,$liststart,$ref,$link,$error,$errorOut); - -while( ) { - if ( !$body ) { - print; - if ( /^/ ) { - print; - print "
    \n"; - $liststart = 1; - } - if ( /^(.*)<\/a>/ ) { - $ref = $1; - $link = $2; - - print STDERR "REF: $ref LINK: $link\n"; - - $ref =~ s/file:\/\/localhost//; - - $ref =~ s/http:\/\/localhost\//file:\//; - - if ( $docbook ) { - $ref =~ /help:\/\/(.*)\/index.docbook/; - my $app = $1; - $ref = "help:$app"; - - $link =~ s/apptitle/$app/; - } - - print "
  • $link
  • \n"; - } - if ( /^

    ht:\/\/Dig error/ ) { - $error = 1; - print "Htdig error:\n"; - } - if ( $error && /^
    / ) {
    -    $errorOut = 1;
    -  }
    -  if ( $errorOut ) {
    -    print;
    -    if ( /^<\/pre>/ ) { $errorOut = 0; }
    -  }
    -}
    -
    -close HTSEARCH;
    -
    -if ( $liststart ) { print "

\n"; } - -print "\n"; - -if ( $? != 0 ) { exit $?; } - -1; - -# Return charset used for given language -sub langCharset( $ ) -{ - my $lang = shift; - if ( $lang eq "cz" || $lang eq "hu" ) { - return "latin2"; - } elsif ( $lang eq "kr" ) { - return "utf8"; - } else { - return "latin1"; - } -} diff --git a/khelpcenter/searchhandlers/khc_mansearch.pl b/khelpcenter/searchhandlers/khc_mansearch.pl deleted file mode 100755 index a68fde75..00000000 --- a/khelpcenter/searchhandlers/khc_mansearch.pl +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/perl -# -# Script for searching man pages. The result is generated as HTML. -# -# This file is part of KHelpcenter. -# -# Copyright (C) 2002 SuSE Linux AG, Nuernberg -# -# Author: Cornelius Schumacher -# -# 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 - -use strict; - -use Getopt::Long; - -my ( $words, $maxcount, $lang, $help ); - -GetOptions ( - 'maxcount=s' => \$maxcount, - 'words=s' => \$words, - 'lang=s' => \$lang, - 'help' => \$help -); - -if ( $help ) { - print STDERR "Usage: khc_mansearch.pl --maxcount=n --words= " . - "--lang=\n"; - exit 1; -} - -if ( !$words ) { - print STDERR "No search words given.\n"; - exit; -} - -# Perform search -if ( !open( MAN, "-|", "apropos", $words ) ) { - print "Can't open apropos.\n"; - exit 1; -} -my @results; -while( ) { -# print "RAW:$_"; - chop; - /^([^\s]+)\s+\((.*)\)\s+-\s+(.*)$/; - my $page = $1; - my $section = $2; - my $description = $3; - - if ( $page ) { push @results, [ $page, $section, $description ]; } -} -close MAN; - -my $nummatches = @results; - -if ( $nummatches > 0 ) { - print "
    \n"; - - my $count = 0; - for my $result ( @results ) { - my ( $page, $section, $description ) = @$result; - my $url = "man:" . $page; - print "
  • "; - print "$page - $description
  • \n"; - if ( ++$count == $maxcount ) { last; } - } - - print "
\n"; -} - -1; diff --git a/khelpcenter/searchhandlers/man.desktop.cmake b/khelpcenter/searchhandlers/man.desktop.cmake deleted file mode 100644 index f31bf4ea..00000000 --- a/khelpcenter/searchhandlers/man.desktop.cmake +++ /dev/null @@ -1,4 +0,0 @@ -[Desktop Entry] -DocumentTypes=text/man - -SearchCommand=${LIBEXEC_INSTALL_DIR}/khc_mansearch.pl --words=%w --maxcount=%m diff --git a/khelpcenter/searchwidget.cpp b/khelpcenter/searchwidget.cpp deleted file mode 100644 index da6ee59b..00000000 --- a/khelpcenter/searchwidget.cpp +++ /dev/null @@ -1,407 +0,0 @@ - -/* - * searchwidget.cpp - part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@kde.org) - * (C) 2000 Matthias Hoelzer-Kluepfel (hoelzer@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 "searchwidget.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "scopeitem.h" -#include "docentrytraverser.h" -#include "kcmhelpcenter.h" -#include "prefs.h" -#include "searchengine.h" - -namespace KHC { - -SearchWidget::SearchWidget( SearchEngine *engine, QWidget *parent ) - : QWidget( parent ), mEngine( engine ), - mScopeCount( 0 ) -{ - QDBusConnection::sessionBus().registerObject("/SearchWidget", this, QDBusConnection::ExportScriptableSlots); - - QBoxLayout *topLayout = new QVBoxLayout( this ); - topLayout->setMargin( 2 ); - topLayout->setSpacing( 2 ); - - QBoxLayout *hLayout = new QHBoxLayout(); - topLayout->addLayout( hLayout ); - - mMethodCombo = new QComboBox( this ); - mMethodCombo->addItem( i18n("and") ); - mMethodCombo->addItem( i18n("or") ); - - QLabel *l = new QLabel( i18n("&Method:"), this ); - l->setBuddy( mMethodCombo ); - - hLayout->addWidget( l ); - hLayout->addWidget( mMethodCombo ); - - hLayout = new QHBoxLayout(); - topLayout->addLayout( hLayout ); - - mPagesCombo = new QComboBox( this ); - mPagesCombo->addItem( QLatin1String("5") ); - mPagesCombo->addItem( QLatin1String("10") ); - mPagesCombo->addItem( QLatin1String("25") ); - mPagesCombo->addItem( QLatin1String("50") ); - mPagesCombo->addItem( QLatin1String("1000") ); - - l = new QLabel( i18n("Max. &results:"), this ); - l->setBuddy( mPagesCombo ); - - hLayout->addWidget( l ); - hLayout->addWidget( mPagesCombo ); - - hLayout = new QHBoxLayout(); - topLayout->addLayout( hLayout ); - - mScopeCombo = new QComboBox( this ); - for (int i=0; i < ScopeNum; ++i ) { - mScopeCombo->addItem( scopeSelectionLabel( i ) ); - } - connect( mScopeCombo, SIGNAL( activated( int ) ), - SLOT( scopeSelectionChanged( int ) ) ); - - l = new QLabel( i18n("&Scope selection:"), this ); - l->setBuddy( mScopeCombo ); - - hLayout->addWidget( l ); - hLayout->addWidget( mScopeCombo ); - - mScopeListView = new QTreeWidget( this ); - mScopeListView->setColumnCount( 1 ); - mScopeListView->setHeaderLabels( QStringList() << i18n("Scope") ); - topLayout->addWidget( mScopeListView, 1 ); - - QPushButton *indexButton = new QPushButton( i18n("Build Search &Index..."), - this ); - connect( indexButton, SIGNAL( clicked() ), SIGNAL( showIndexDialog() ) ); - topLayout->addWidget( indexButton ); - -// FIXME: Use SearchHandler on double-clicked document -#if 0 - connect( mScopeListView, SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int) ), - SLOT(scopeDoubleClicked(QTreeWidgetItem*)) ); -#endif - connect( mScopeListView, SIGNAL(itemClicked(QTreeWidgetItem*,int)), - SLOT(scopeClicked(QTreeWidgetItem*)) ); -} - - -SearchWidget::~SearchWidget() -{ - writeConfig( KGlobal::config().data() ); -} - - -void SearchWidget::readConfig( KConfig *cfg ) -{ - KConfigGroup searchGroup(cfg, "Search"); - int scopeSelection = searchGroup.readEntry( "ScopeSelection", (int)ScopeDefault ); - mScopeCombo->setCurrentIndex( scopeSelection ); - if ( scopeSelection != ScopeDefault ) scopeSelectionChanged( scopeSelection ); - - mMethodCombo->setCurrentIndex( Prefs::method() ); - mPagesCombo->setCurrentIndex( Prefs::maxCount() ); - - if ( scopeSelection == ScopeCustom ) { - KConfigGroup searchScopeGroup(cfg, "Custom Search Scope" ); - QTreeWidgetItemIterator it( mScopeListView ); - while( *it ) { - if ( (*it)->type() == ScopeItem::rttiId() ) { - ScopeItem *item = static_cast(*it); - item->setOn( searchScopeGroup.readEntry( - item->entry()->identifier(), - item->isOn() ) ); - } - ++it; - } - } - - checkScope(); -} - -void SearchWidget::writeConfig( KConfig *cfg ) -{ - KConfigGroup cg (cfg, "Search"); - - cg.writeEntry( "ScopeSelection", mScopeCombo->currentIndex() ); - Prefs::setMethod( mMethodCombo->currentIndex() ); - Prefs::setMaxCount( mPagesCombo->currentIndex() ); - - if ( mScopeCombo->currentIndex() == ScopeCustom ) { - KConfigGroup cg2 (cfg, "Custom Search Scope"); - QTreeWidgetItemIterator it( mScopeListView ); - while( (*it) ) { - if ( (*it)->type() == ScopeItem::rttiId() ) { - ScopeItem *item = static_cast( (*it) ); - cg2.writeEntry( item->entry()->identifier(), item->isOn() ); - } - ++it; - } - } -} - -void SearchWidget::slotSwitchBoxes() -{ - QTreeWidgetItemIterator it( mScopeListView ); - while( (*it) ) { - if ( (*it)->type() == ScopeItem::rttiId() ) { - ScopeItem *item = static_cast( (*it) ); - item->setOn( !item->isOn() ); - } - ++it; - } - - checkScope(); -} - -void SearchWidget::scopeSelectionChanged( int id ) -{ - QTreeWidgetItemIterator it( mScopeListView ); - while( (*it) ) { - if ( (*it)->type() == ScopeItem::rttiId() ) { - ScopeItem *item = static_cast( (*it) ); - bool state = item->isOn(); - switch( id ) { - case ScopeDefault: - state = item->entry()->searchEnabledDefault(); - break; - case ScopeAll: - state = true; - break; - case ScopeNone: - state = false; - break; - default: - break; - } - if ( state != item->isOn() ) { - item->setOn( state ); - } - } - ++it; - } - - checkScope(); -} - -QString SearchWidget::method() -{ - QString m = "and"; - if ( mMethodCombo->currentIndex() == 1) - m = "or"; - - return m; -} - -int SearchWidget::pages() -{ - int p = mPagesCombo->currentText().toInt(); - - return p; -} - -QString SearchWidget::scope() -{ - QString scope; - - QTreeWidgetItemIterator it( mScopeListView ); - while( (*it) ) { - if ( (*it)->type() == ScopeItem::rttiId() ) { - ScopeItem *item = static_cast( (*it) ); - if ( item->isOn() ) { - if ( !scope.isEmpty() ) scope += '&'; - scope += QLatin1String("scope=") + item->entry()->identifier(); - } - } - ++it; - } - - return scope; -} - -class ScopeTraverser : public DocEntryTraverser -{ - public: - ScopeTraverser( SearchWidget *widget, int level ) : - mWidget( widget ), mLevel( level ), mParentItem( 0 ) {} - - ~ScopeTraverser() - { - if( mParentItem && !mParentItem->childCount() ) delete mParentItem; - } - - void process( DocEntry *entry ) - { - if ( mWidget->engine()->canSearch( entry ) && - ( !mWidget->engine()->needsIndex( entry ) || - entry->indexExists( Prefs::indexDirectory() ) ) ) { - ScopeItem *item = 0; - if ( mParentItem ) { - item = new ScopeItem( mParentItem, entry ); - } else { - item = new ScopeItem( mWidget->listView(), entry ); - } - item->setOn( entry->searchEnabled() ); - } - } - - DocEntryTraverser *createChild( DocEntry *entry ) - { - if ( mLevel >= mNestingLevel ) { - ++mLevel; - return this; - } else { - ScopeTraverser *t = new ScopeTraverser( mWidget, mLevel + 1 ); - QTreeWidgetItem *item = 0; - if ( mParentItem ) { - item = new QTreeWidgetItem( mParentItem, QStringList() << entry->name() ); - } else { - item = new QTreeWidgetItem( mWidget->listView(), QStringList() << entry->name() ); - } - item->setExpanded( true ); - t->mParentItem = item; - return t; - } - } - - DocEntryTraverser *parentTraverser() - { - if ( mLevel > mNestingLevel ) return this; - else return mParent; - } - - void deleteTraverser() - { - if ( mLevel > mNestingLevel ) --mLevel; - else delete this; - } - - private: - SearchWidget *mWidget; - int mLevel; - QTreeWidgetItem *mParentItem; - - static int mNestingLevel; -}; - -int ScopeTraverser::mNestingLevel = 2; - -void SearchWidget::searchIndexUpdated() -{ - KGlobal::config()->reparseConfiguration(); - updateScopeList(); - update(); -} - -void SearchWidget::updateScopeList() -{ - mScopeListView->clear(); - - ScopeTraverser t( this, 0 ); - DocMetaInfo::self()->traverseEntries( &t ); - - checkScope(); -} - -void SearchWidget::scopeDoubleClicked( QTreeWidgetItem* item ) -{ - if ( !item || item->type() != ScopeItem::rttiId() ) return; - ScopeItem *scopeItem = static_cast( item ); - - QString searchUrl = scopeItem->entry()->search(); - - kDebug() << "DoubleClick: " << searchUrl; - - emit searchResult( searchUrl ); -} - -void SearchWidget::scopeClicked( QTreeWidgetItem* ) -{ - checkScope(); - - mScopeCombo->setCurrentIndex( ScopeCustom ); -} - -QString SearchWidget::scopeSelectionLabel( int id ) const -{ - switch( id ) { - case ScopeCustom: - return i18nc("Label for searching documentation using custom (user defined) scope", "Custom"); - case ScopeDefault: - return i18nc("Label for searching documentation using default search scope", "Default"); - case ScopeAll: - return i18nc("Label for searching documentation in all subsections", "All"); - case ScopeNone: - return i18nc("Label for scope that deselects all search subsections", "None"); - default: - return i18nc("Label for Unknown search scope, that should never appear", "unknown"); - } -} - -void SearchWidget::checkScope() -{ - mScopeCount = 0; - - QTreeWidgetItemIterator it( mScopeListView ); - while( (*it) ) { - if ( (*it)->type() == ScopeItem::rttiId() ) { - ScopeItem *item = static_cast( (*it) ); - if ( item->isOn() ) { - ++mScopeCount; - } - item->entry()->enableSearch( item->isOn() ); - } - ++it; - } - - emit scopeCountChanged( mScopeCount ); -} - -int SearchWidget::scopeCount() const -{ - return mScopeCount; -} - -} - -#include "searchwidget.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/searchwidget.h b/khelpcenter/searchwidget.h deleted file mode 100644 index fb676083..00000000 --- a/khelpcenter/searchwidget.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * searchwidget.h - part of the KDE Help Center - * - * Copyright (C) 1999 Matthias Elter (me@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 KHC_SEARCHWIDGET_H -#define KHC_SEARCHWIDGET_H - -#include -#include - -#include "docmetainfo.h" - -class QTreeWidgetItem; -class QTreeWidget; -class QTreeWidgetItem; -class QComboBox; - -class KConfig; - - -namespace KHC { - -class SearchEngine; - -class SearchWidget : public QWidget -{ - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.kde.khelpcenter.searchwidget") - -public Q_SLOTS: - Q_SCRIPTABLE Q_NOREPLY void searchIndexUpdated(); // called from kcmhelpcenter - - public: - explicit SearchWidget ( SearchEngine *, QWidget *parent = 0 ); - ~SearchWidget(); - - QString method(); - int pages(); - QString scope(); - - QTreeWidget *listView() { return mScopeListView; } - - enum { ScopeDefault, ScopeAll, ScopeNone, ScopeCustom, ScopeNum }; - - QString scopeSelectionLabel( int ) const; - - void readConfig( KConfig * ); - void writeConfig( KConfig * ); - - int scopeCount() const; - - SearchEngine *engine() const { return mEngine; } - - Q_SIGNALS: - void searchResult( const QString &url ); - void scopeCountChanged( int ); - void showIndexDialog(); - - public Q_SLOTS: - void slotSwitchBoxes(); - void scopeSelectionChanged( int ); - void updateScopeList(); - - protected: - void checkScope(); - - protected Q_SLOTS: - void scopeDoubleClicked( QTreeWidgetItem* ); - void scopeClicked( QTreeWidgetItem* ); - - private: - void loadLanguages(); - - SearchEngine *mEngine; - - QComboBox *mMethodCombo; - QComboBox *mPagesCombo; - QComboBox *mScopeCombo; - QTreeWidget *mScopeListView; - - int mScopeCount; -}; - -} - -#endif //KHC_SEARCHWIDGET_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/table-of-contents.xslt b/khelpcenter/table-of-contents.xslt deleted file mode 100644 index 47b7fbb7..00000000 --- a/khelpcenter/table-of-contents.xslt +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - -<xsl:value-of select="title"/> - - - - - - -
-<xsl:value-of select="title"/> - -
-
- -
diff --git a/khelpcenter/tests/CMakeLists.txt b/khelpcenter/tests/CMakeLists.txt deleted file mode 100644 index cd44627c..00000000 --- a/khelpcenter/tests/CMakeLists.txt +++ /dev/null @@ -1,49 +0,0 @@ -set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) - -include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ) - -########### next target ############### - -set(khelpcenter_KDEINIT_SRCS - navigator.cpp - navigatoritem.cpp - navigatorappitem.cpp - view.cpp - searchwidget.cpp - searchengine.cpp - docmetainfo.cpp - docentrytraverser.cpp - formatter.cpp - glossary.cpp - toc.cpp - mainwindow.cpp - docentry.cpp - htmlsearch.cpp - history.cpp - application.cpp - treebuilder.cpp - infotree.cpp - kcmhelpcenter.cpp - htmlsearchconfig.cpp - fontdialog.cpp - plugintraverser.cpp - scrollkeepertreebuilder.cpp - searchhandler.cpp ) - -########### next target ############### - -kde4_add_kcfg_files(khelpcenter_SRCS ../prefs.kcfgc ) - -set(testmetainfo_SRCS - testmetainfo.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../docmetainfo.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../docentry.cpp - ${khelpcenter_SRCS} - ${CMAKE_CURRENT_SOURCE_DIR}/../docentrytraverser.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../htmlsearch.cpp ) - - -kde4_add_executable(testmetainfo TEST ${testmetainfo_SRCS}) - -target_link_libraries(testmetainfo ${KDE4_KDEUI_LIBS} ) - diff --git a/khelpcenter/tests/testmetainfo.cpp b/khelpcenter/tests/testmetainfo.cpp deleted file mode 100644 index d535fd10..00000000 --- a/khelpcenter/tests/testmetainfo.cpp +++ /dev/null @@ -1,115 +0,0 @@ -#include - -#include -#include -#include -#include - -#include "docmetainfo.h" -#include "docentrytraverser.h" - -using namespace KHC; - -class MyTraverser : public DocEntryTraverser -{ - public: - MyTraverser( const QString &indent = "" ) : mIndent( indent ) {} - - void process( DocEntry *entry ) - { - kDebug() << mIndent << entry->name() << " - WEIGHT: " << entry->weight() - << endl; -#if 0 - if ( entry->parent() ) kDebug() << mIndent << " PARENT: " - << entry->parent()->name() << endl; - if ( entry->nextSibling() ) kDebug() << mIndent << " NEXT: " - << entry->nextSibling()->name() << endl; -#endif - } - - DocEntryTraverser *createChild( DocEntry * ) - { - return new MyTraverser( mIndent + " " ); - } - - private: - QString mIndent; -}; - -class LinearTraverser : public DocEntryTraverser -{ - public: - void process( DocEntry *entry ) - { - kDebug() << "PROCESS: " << entry->name(); - } - - DocEntryTraverser *createChild( DocEntry * ) - { - return this; - } - - DocEntryTraverser *parentTraverser() - { - return this; - } - - void deleteTraverser() {} -}; - -class AsyncTraverser : public DocEntryTraverser -{ - public: - AsyncTraverser( const QString &indent = "" ) : mIndent( indent ) - { -// kDebug() << "AsyncTraverser()"; - } - - ~AsyncTraverser() - { -// kDebug() << "~AsyncTraverser()"; - } - - void process( DocEntry *entry ) - { - kDebug() << mIndent << entry->name(); - } - - DocEntryTraverser *createChild( DocEntry * ) - { -// kDebug() << "AsyncTraverser::childTraverser()"; - return new AsyncTraverser( mIndent + " " ); - } - - private: - QString mIndent; -}; - -int main(int argc,char **argv) -{ - KAboutData aboutData("testmetainfo", 0,ki18n("TestDocMetaInfo"),"0.1"); - // KComponentData componentData(&aboutData); doesn't seem to be necessary - QCoreApplication app(argc,argv); - - kDebug() << "Scanning Meta Info"; - - DocMetaInfo::self()->scanMetaInfo( ); - - kDebug() << "My TRAVERSE start"; - MyTraverser t; - DocMetaInfo::self()->startTraverseEntries( &t ); - kDebug() << "My TRAVERSE end"; - - kDebug() << "Linear TRAVERSE start"; - LinearTraverser l; - DocMetaInfo::self()->startTraverseEntries( &l ); - kDebug() << "Linear TRAVERSE end"; - - kDebug() << "Async TRAVERSE start"; - AsyncTraverser a; - DocMetaInfo::self()->startTraverseEntries( &a ); - kDebug() << "Async TRAVERSE end"; - - return 0; -} -// vim:ts=2:sw=2:et diff --git a/khelpcenter/toc.cpp b/khelpcenter/toc.cpp deleted file mode 100644 index 315eb522..00000000 --- a/khelpcenter/toc.cpp +++ /dev/null @@ -1,313 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe (raabe@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 "toc.h" - -#include "docentry.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -using namespace KHC; - -class TOCItem : public NavigatorItem -{ - public: - TOCItem( TOC *parent, QTreeWidgetItem *parentItem, QTreeWidgetItem *after, const QString &text ); - - const TOC *toc() const { return m_toc; } - - private: - TOC *m_toc; -}; - -class TOCChapterItem : public TOCItem -{ - public: - TOCChapterItem( TOC *toc, NavigatorItem *parent, QTreeWidgetItem *after, const QString &title, - const QString &name ); - - virtual QString url(); - - private: - QString m_name; -}; - -class TOCSectionItem : public TOCItem -{ - public: - TOCSectionItem( TOC *toc, TOCChapterItem *parent, QTreeWidgetItem *after, const QString &title, - const QString &name ); - - virtual QString url(); - - private: - QString m_name; -}; - -bool TOC::m_alreadyWarned = false; - -TOC::TOC( NavigatorItem *parentItem ) -{ - m_parentItem = parentItem; -} - -void TOC::build( const QString &file ) -{ - QFileInfo fileInfo( file ); - QString fileName = fileInfo.absoluteFilePath(); - const QStringList resourceDirs = KGlobal::dirs()->resourceDirs( "html" ); - QStringList::ConstIterator it = resourceDirs.begin(); - QStringList::ConstIterator end = resourceDirs.end(); - for ( ; it != end; ++it ) { - if ( fileName.startsWith( *it ) ) { - fileName.remove( 0, ( *it ).length() ); - break; - } - } - - QString cacheFile = fileName.replace( '/', "__" ); -#ifdef Q_WS_WIN - cacheFile = cacheFile.replace( ':', "_" ); -#endif - m_cacheFile = KStandardDirs::locateLocal( "cache", "help/" + cacheFile ); - m_sourceFile = file; - - if ( cacheStatus() == NeedRebuild ) - buildCache(); - else - fillTree(); -} - -TOC::CacheStatus TOC::cacheStatus() const -{ - if ( !QFile::exists( m_cacheFile ) || - sourceFileCTime() != cachedCTime() ) - return NeedRebuild; - - return CacheOk; -} - -int TOC::sourceFileCTime() const -{ - struct stat stat_buf; - stat( QFile::encodeName( m_sourceFile ).data(), &stat_buf ); - - return stat_buf.st_ctime; -} - -int TOC::cachedCTime() const -{ - QFile f( m_cacheFile ); - if ( !f.open( QIODevice::ReadOnly ) ) - return 0; - - QDomDocument doc; - if ( !doc.setContent( &f ) ) - return 0; - - QDomComment timestamp = doc.documentElement().lastChild().toComment(); - - return timestamp.data().trimmed().toInt(); -} - -void TOC::buildCache() -{ - KXmlGuiWindow *mainWindow = dynamic_cast( kapp->activeWindow() ); - - KProcess *meinproc = new KProcess; - connect( meinproc, SIGNAL( finished( int, QProcess::ExitStatus) ), - this, SLOT( meinprocExited( int, QProcess::ExitStatus) ) ); - - *meinproc << KStandardDirs::locate("exe", "meinproc4"); - *meinproc << "--stylesheet" << KStandardDirs::locate( "data", "khelpcenter/table-of-contents.xslt" ); - *meinproc << "--output" << m_cacheFile; - *meinproc << m_sourceFile; - - meinproc->setOutputChannelMode(KProcess::OnlyStderrChannel); - meinproc->start(); - if (!meinproc->waitForStarted()) { - kError() << "could not start process" << meinproc->program(); - if (mainWindow && !m_alreadyWarned) { - ; // add warning message box with don't display again option - // http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/classKDialog.html - m_alreadyWarned = true; - } - delete meinproc; - } -} - -void TOC::meinprocExited( int exitCode, QProcess::ExitStatus exitStatus) -{ - KProcess *meinproc = static_cast(sender()); - KXmlGuiWindow *mainWindow = dynamic_cast( kapp->activeWindow() ); - - if ( exitStatus == QProcess::CrashExit || exitCode != 0 ) { - kError() << "running" << meinproc->program() << "failed with exitCode" << exitCode; - kError() << "stderr output:" << meinproc->readAllStandardError(); - if (mainWindow && !m_alreadyWarned) { - ; // add warning message box with don't display again option - // http://api.kde.org/4.0-api/kdelibs-apidocs/kdeui/html/classKDialog.html - m_alreadyWarned = true; - } - delete meinproc; - return; - } - - delete meinproc; - - // add a timestamp to the meinproc4 created xml file - QFile f( m_cacheFile ); - if ( !f.open( QIODevice::ReadWrite ) ) - return; - - QDomDocument doc; - if ( !doc.setContent( &f ) ) - return; - - QDomComment timestamp = doc.createComment( QString::number( sourceFileCTime() ) ); - doc.documentElement().appendChild( timestamp ); - - // write back updated xml content - f.seek( 0 ); - QTextStream stream( &f ); - stream.setCodec( "UTF-8" ); -#ifdef Q_WS_WIN - /* - the problem that on german systems umlauts are displayed as '?' for unknown (Qt'r related ?) reasons - is caused by wrong encoding type conversations and has been fixed in kdelibs/kdoctools - To have propper encoding tags in the xml file, QXmlDocument::save() is used. - */ - doc.save(stream, 1, QDomNode::EncodingFromTextStream); - -#else - stream << doc.toString(); -#endif - f.close(); - fillTree(); -} - -void TOC::fillTree() -{ - QFile f( m_cacheFile ); - if ( !f.open( QIODevice::ReadOnly ) ) - return; - - QDomDocument doc; - if ( !doc.setContent( &f ) ) - return; - - TOCChapterItem *chapItem = 0; - QDomNodeList chapters = doc.documentElement().elementsByTagName( "chapter" ); - for ( int chapterCount = 0; chapterCount < chapters.count(); chapterCount++ ) { - QDomElement chapElem = chapters.item( chapterCount ).toElement(); - QDomElement chapTitleElem = childElement( chapElem, QLatin1String( "title" ) ); - QString chapTitle = chapTitleElem.text().simplified(); - QDomElement chapRefElem = childElement( chapElem, QLatin1String( "anchor" ) ); - QString chapRef = chapRefElem.text().trimmed(); - - chapItem = new TOCChapterItem( this, m_parentItem, chapItem, chapTitle, chapRef ); - - TOCSectionItem *sectItem = 0; - QDomNodeList sections = chapElem.elementsByTagName( "section" ); - for ( int sectCount = 0; sectCount < sections.count(); sectCount++ ) { - QDomElement sectElem = sections.item( sectCount ).toElement(); - QDomElement sectTitleElem = childElement( sectElem, QLatin1String( "title" ) ); - QString sectTitle = sectTitleElem.text().simplified(); - QDomElement sectRefElem = childElement( sectElem, QLatin1String( "anchor" ) ); - QString sectRef = sectRefElem.text().trimmed(); - - sectItem = new TOCSectionItem( this, chapItem, sectItem, sectTitle, sectRef ); - } - } -} - -QDomElement TOC::childElement( const QDomElement &element, const QString &name ) -{ - QDomElement e; - for ( e = element.firstChild().toElement(); !e.isNull(); e = e.nextSibling().toElement() ) - if ( e.tagName() == name ) - break; - return e; -} - -void TOC::slotItemSelected( QTreeWidgetItem *item ) -{ - TOCItem *tocItem; - if ( ( tocItem = dynamic_cast( item ) ) ) - emit itemSelected( tocItem->entry()->url() ); - - item->setExpanded( !item->isExpanded() ); -} - -TOCItem::TOCItem( TOC *toc, QTreeWidgetItem *parentItem, QTreeWidgetItem *after, const QString &text ) - : NavigatorItem( new DocEntry( text ), parentItem, after ) -{ - setAutoDeleteDocEntry( true ); - m_toc = toc; -} - -TOCChapterItem::TOCChapterItem( TOC *toc, NavigatorItem *parent, QTreeWidgetItem *after, - const QString &title, const QString &name ) - : TOCItem( toc, parent, after, title ), - m_name( name ) -{ - setExpanded( false ); - entry()->setUrl(url()); -} - -QString TOCChapterItem::url() -{ - return QLatin1String("help:") + toc()->application() + QLatin1Char('/') + m_name - + QLatin1String(".html"); -} - -TOCSectionItem::TOCSectionItem( TOC *toc, TOCChapterItem *parent, QTreeWidgetItem *after, - const QString &title, const QString &name ) - : TOCItem( toc, parent, after, title ), - m_name( name ) -{ - setIcon( 0, SmallIcon( "text-plain" ) ); - entry()->setUrl(url()); -} - -QString TOCSectionItem::url() -{ - if ( static_cast( parent()->child(0) ) == this ) - return static_cast( parent() )->url() + '#' + m_name; - - return "help:" + toc()->application() + '/' + m_name + ".html"; -} - -#include "toc.moc" -// vim:ts=2:sw=2:et diff --git a/khelpcenter/toc.h b/khelpcenter/toc.h deleted file mode 100644 index ede0a75d..00000000 --- a/khelpcenter/toc.h +++ /dev/null @@ -1,78 +0,0 @@ - -/* - * toc.h - part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe (raabe@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 KHC_TOC_H -#define KHC_TOC_H - -#include "navigatoritem.h" - -#include - -#include -#include - -#include - -#include - -namespace KHC { - -class TOC : public QObject -{ - Q_OBJECT - public: - TOC( NavigatorItem *parentItem ); - - QString application() const { return m_application; } - void setApplication( const QString &application ) { m_application = application; } - - public Q_SLOTS: - void build( const QString &file ); - - Q_SIGNALS: - void itemSelected( const QString &url ); - - private Q_SLOTS: - void slotItemSelected( QTreeWidgetItem *item ); - void meinprocExited( int exitCode, QProcess::ExitStatus exitStatus); - - private: - enum CacheStatus { NeedRebuild, CacheOk }; - - CacheStatus cacheStatus() const; - int sourceFileCTime() const; - int cachedCTime() const; - QDomElement childElement( const QDomElement &e, const QString &name ); - void buildCache(); - void fillTree(); - - QString m_application; - QString m_cacheFile; - QString m_sourceFile; - - NavigatorItem *m_parentItem; - static bool m_alreadyWarned; -}; - -} - -#endif // KHC_TOC_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/treebuilder.cpp b/khelpcenter/treebuilder.cpp deleted file mode 100644 index 959d8e45..00000000 --- a/khelpcenter/treebuilder.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe - * - * 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 "treebuilder.h" - -using namespace KHC; - -TreeBuilder::TreeBuilder( QObject *parent ) - : QObject( parent ) -{ -} - -void TreeBuilder::selectURL( const QString & ) -{ -} - -#include "treebuilder.moc" - -// vim:ts=2:sw=2:et diff --git a/khelpcenter/treebuilder.h b/khelpcenter/treebuilder.h deleted file mode 100644 index 8ada49f9..00000000 --- a/khelpcenter/treebuilder.h +++ /dev/null @@ -1,51 +0,0 @@ - -/* - * This file is part of the KDE Help Center - * - * Copyright (C) 2002 Frerich Raabe - * - * 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 KHC_TREEBUILDER_H -#define KHC_TREEBUILDER_H - -#include "QtCore/QObject" - -#include - -namespace KHC -{ - -class NavigatorItem; -class TreeBuilder : public QObject -{ - Q_OBJECT - public: - TreeBuilder( QObject *parent ); - - virtual void build( NavigatorItem *item ) = 0; - - public Q_SLOTS: - virtual void selectURL( const QString &url ); - - Q_SIGNALS: - void urlSelected( const KUrl &url ); -}; - -} - -#endif // TREEBUILDER_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/version.h b/khelpcenter/version.h deleted file mode 100644 index 1535474f..00000000 --- a/khelpcenter/version.h +++ /dev/null @@ -1,8 +0,0 @@ - -#ifndef KHC_VERSION_H -#define KHC_VERSION_H - -#define HELPCENTER_VERSION KDE_VERSION_STRING - -#endif // KHC_VERSION_H -// vim:ts=2:sw=2:et diff --git a/khelpcenter/view.cpp b/khelpcenter/view.cpp deleted file mode 100644 index fc83e0f1..00000000 --- a/khelpcenter/view.cpp +++ /dev/null @@ -1,319 +0,0 @@ - -#include "view.h" - -#include "formatter.h" -#include "history.h" - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -using namespace KHC; - -View::View( QWidget *parentWidget, QObject *parent, KHTMLPart::GUIProfile prof, KActionCollection *col ) - : KHTMLPart( parentWidget, parent, prof ), mState( Docu ), mActionCollection(col) -{ - setJScriptEnabled(false); - setJavaEnabled(false); - setPluginsEnabled(false); - - mFormatter = new Formatter; - if ( !mFormatter->readTemplates() ) { - kDebug() << "Unable to read Formatter templates."; - } - - m_fontScaleStepping = 10; - - connect( this, SIGNAL( setWindowCaption( const QString & ) ), - this, SLOT( setTitle( const QString & ) ) ); - connect( this, SIGNAL( popupMenu( const QString &, const QPoint& ) ), - this, SLOT( showMenu( const QString &, const QPoint& ) ) ); - - QString css = langLookup("common/kde-default.css"); - if (!css.isEmpty()) - { - QFile css_file(css); - if (css_file.open(QIODevice::ReadOnly)) - { - QTextStream s(&css_file); - QString stylesheet = s.readAll(); - preloadStyleSheet("help:/common/kde-default.css", stylesheet); - } - } - - view()->installEventFilter( this ); -} - -View::~View() -{ - delete mFormatter; -} - -void View::copySelectedText() -{ - kapp->clipboard()->setText( selectedText() ); -} - -bool View::openUrl( const KUrl &url ) -{ - mState = Docu; - return KHTMLPart::openUrl( url ); -} - -void View::saveState( QDataStream &stream ) -{ - stream << mState; - if ( mState == Docu ) - KHTMLPart::saveState( stream ); -} - -void View::restoreState( QDataStream &stream ) -{ - stream >> mState; - if ( mState == Docu ) - KHTMLPart::restoreState( stream ); -} - -QString View::langLookup( const QString &fname ) -{ - QStringList search; - - // assemble the local search paths - const QStringList localDoc = KGlobal::dirs()->resourceDirs("html"); - - // look up the different languages - for (int id=localDoc.count()-1; id >= 0; --id) - { - QStringList langs = KGlobal::locale()->languageList(); - langs.replaceInStrings("en_US", "en"); - langs.append("en"); - QStringList::ConstIterator lang; - for (lang = langs.constBegin(); lang != langs.constEnd(); ++lang) - search.append(QString("%1%2/%3").arg(localDoc[id]).arg(*lang).arg(fname)); - } - - // try to locate the file - QStringList::Iterator it; - for (it = search.begin(); it != search.end(); ++it) - { - QFileInfo info(*it); - if (info.exists() && info.isFile() && info.isReadable()) - return *it; - - QString file = (*it).left((*it).lastIndexOf('/')) + "/index.docbook"; - info.setFile(file); - if (info.exists() && info.isFile() && info.isReadable()) - return *it; - } - - return QString(); -} - -void View::setTitle( const QString &title ) -{ - mTitle = title; -} - -void View::beginSearchResult() -{ - mState = Search; - - begin(); - mSearchResult = ""; -} - -void View::writeSearchResult( const QString &str ) -{ - write( str ); - mSearchResult += str; -} - -void View::endSearchResult() -{ - end(); - if ( !mSearchResult.isEmpty() ) emit searchResultCacheAvailable(); -} - -void View::beginInternal( const KUrl &url ) -{ - mInternalUrl = url; - begin(); -} - -KUrl View::internalUrl() const -{ - return mInternalUrl; -} - -void View::lastSearch() -{ - if ( mSearchResult.isEmpty() ) return; - - mState = Search; - - begin(); - write( mSearchResult ); - end(); -} - -void View::slotIncFontSizes() -{ - setFontScaleFactor( fontScaleFactor() + m_fontScaleStepping ); -} - -void View::slotDecFontSizes() -{ - setFontScaleFactor( fontScaleFactor() - m_fontScaleStepping ); -} - -void View::showMenu( const QString& url, const QPoint& pos) -{ - KMenu pop(view()); - - if (url.isEmpty()) - { - QAction *action; - action = mActionCollection->action("go_home"); - if (action) pop.addAction( action ); - - pop.addSeparator(); - - action = mActionCollection->action("prevPage"); - if (action) pop.addAction( action ); - action = mActionCollection->action("nextPage"); - if (action) pop.addAction( action); - - pop.addSeparator(); - - pop.addAction( History::self().m_backAction ); - pop.addAction( History::self().m_forwardAction ); - } - else - { - QAction *action = pop.addAction(i18n("Copy Link Address")); - connect( action, SIGNAL( triggered() ), this, SLOT( slotCopyLink() ) ); - - mCopyURL = completeURL(url).url(); - } - - pop.exec(pos); -} - -void View::slotCopyLink() -{ - QApplication::clipboard()->setText(mCopyURL); -} - -static DOM::HTMLLinkElement findLink(const DOM::NodeList& links, const char *rel) -{ - for (unsigned i = 0; i <= links.length(); i++) { - DOM::HTMLLinkElement link(links.item(i)); - if (link.isNull()) - continue; - - if (link.rel() == rel) - return link; - } - return DOM::HTMLLinkElement(); -} - -bool View::prevPage(bool checkOnly) -{ - const DOM::NodeList links = document().getElementsByTagName("link"); - - KUrl prevURL = urlFromLinkNode( findLink(links, "prev") ); - - if (!prevURL.isValid()) - return false; - - if (!checkOnly) - emit browserExtension()->openUrlRequest(prevURL); - return true; -} - -bool View::nextPage(bool checkOnly) -{ - const DOM::NodeList links = document().getElementsByTagName("link"); - - KUrl nextURL = urlFromLinkNode( findLink(links, "next") ); - - if (!nextURL.isValid()) - return false; - - if (!checkOnly) - emit browserExtension()->openUrlRequest(nextURL); - return true; -} - -bool View::eventFilter( QObject *o, QEvent *e ) -{ - if ( e->type() != QEvent::KeyPress || - htmlDocument().links().length() == 0 ) - return KHTMLPart::eventFilter( o, e ); - - QKeyEvent *ke = static_cast( e ); - if ( ke->modifiers() & Qt::ShiftModifier && ke->key() == Qt::Key_Space ) { - // If we're on the first page, it does not make sense to go back. - if ( baseURL().path().endsWith( QLatin1String("/index.html") ) ) - return KHTMLPart::eventFilter( o, e ); - - const QScrollBar * const scrollBar = view()->verticalScrollBar(); - if ( scrollBar->value() == scrollBar->minimum() ) { - if (prevPage()) - return true; - } - } else if ( ke->key() == Qt::Key_Space ) { - const QScrollBar * const scrollBar = view()->verticalScrollBar(); - if ( scrollBar->value() == scrollBar->maximum() ) { - if (nextPage()) - return true; - } - } - return KHTMLPart::eventFilter( o, e ); -} - -KUrl View::urlFromLinkNode( const DOM::HTMLLinkElement &link ) const -{ - if ( link.isNull() ) - return KUrl(); - - DOM::DOMString domHref = link.href(); - if (domHref.isNull()) - return KUrl(); - - return KUrl(baseURL(), domHref.string()); -} - -void View::slotReload( const KUrl &url ) -{ - const_cast( settings() )->init( KGlobal::config().data() ); - KParts::OpenUrlArguments args = arguments(); - args.setReload( true ); - setArguments( args ); - if ( url.isEmpty() ) - openUrl( baseURL() ); - else - openUrl( url ); -} - -#include "view.moc" -// vim:ts=2:sw=2:et diff --git a/khelpcenter/view.h b/khelpcenter/view.h deleted file mode 100644 index 0d86adb2..00000000 --- a/khelpcenter/view.h +++ /dev/null @@ -1,96 +0,0 @@ - -#ifndef KHC_VIEW_H -#define KHC_VIEW_H - -#include - -#include "glossary.h" -#include "navigator.h" - -#include - -class KActionCollection; - -namespace DOM { - class Node; - class HTMLLinkElement; -} - -namespace KHC { - -class Formatter; - -class View : public KHTMLPart -{ - Q_OBJECT - public: - View( QWidget *parentWidget, QObject *parent, KHTMLPart::GUIProfile prof, - KActionCollection *col ); - - ~View(); - - virtual bool openUrl( const KUrl &url ); - - virtual void saveState( QDataStream &stream ); - virtual void restoreState( QDataStream &stream ); - - enum State { Docu, About, Search }; - - int state() const { return mState; } - QString title() const { return mTitle; } - - static QString langLookup( const QString &fname ); - - void beginSearchResult(); - void writeSearchResult( const QString & ); - void endSearchResult(); - - void beginInternal( const KUrl & ); - KUrl internalUrl() const; - - int fontScaleStepping() const { return m_fontScaleStepping; } - - Formatter *formatter() const { return mFormatter; } - - void copySelectedText(); - - public Q_SLOTS: - void lastSearch(); - void slotIncFontSizes(); - void slotDecFontSizes(); - void slotReload( const KUrl &url = KUrl() ); - void slotCopyLink(); - bool nextPage(bool checkOnly = false); - bool prevPage(bool checkOnly = false); - - Q_SIGNALS: - void searchResultCacheAvailable(); - - protected: - bool eventFilter( QObject *o, QEvent *e ); - - private Q_SLOTS: - void setTitle( const QString &title ); - void showMenu( const QString& url, const QPoint& pos); - - private: - KUrl urlFromLinkNode( const DOM::HTMLLinkElement &link ) const; - - int mState; - QString mTitle; - - QString mSearchResult; - KUrl mInternalUrl; - - int m_fontScaleStepping; - - Formatter *mFormatter; - KActionCollection *mActionCollection; - QString mCopyURL; -}; - -} - -#endif //KHC_VIEW_H - -// vim:ts=2:sw=2:et diff --git a/kioslave/CMakeLists.txt b/kioslave/CMakeLists.txt index 28a15cc0..40648284 100644 --- a/kioslave/CMakeLists.txt +++ b/kioslave/CMakeLists.txt @@ -38,7 +38,6 @@ endif (LIBSSH_FOUND) add_subdirectory( floppy ) add_subdirectory( finger ) -add_subdirectory( man ) check_include_files(rpc/rpc.h HAVE_RPC_RPC_H) add_feature_info("NFS kioslave" HAVE_RPC_RPC_H "The RPC library is needed to build the NFS kioslave") if(HAVE_RPC_RPC_H) diff --git a/kioslave/man/CMakeLists.txt b/kioslave/man/CMakeLists.txt deleted file mode 100644 index aeebf04b..00000000 --- a/kioslave/man/CMakeLists.txt +++ /dev/null @@ -1,32 +0,0 @@ -add_subdirectory( tests ) - -########### next target ############### - -set(kio_man_PART_SRCS man2html.cpp kio_man.cpp request_hash.cpp ) - - -kde4_add_plugin(kio_man ${kio_man_PART_SRCS}) - - -target_link_libraries(kio_man ${KDE4_KIO_LIBS} ) - -install(TARGETS kio_man DESTINATION ${PLUGIN_INSTALL_DIR} ) - - -########### next target ############### - -set(kmanpart_PART_SRCS kmanpart.cpp ) - - -kde4_add_plugin(kmanpart WITH_PREFIX ${kmanpart_PART_SRCS}) - - -target_link_libraries(kmanpart ${KDE4_KHTML_LIBS} ) - -install(TARGETS kmanpart DESTINATION ${PLUGIN_INSTALL_DIR} ) - - -########### install files ############### - -install( FILES man.protocol kmanpart.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) - diff --git a/kioslave/man/LICENSE b/kioslave/man/LICENSE deleted file mode 100644 index d28a48f9..00000000 --- a/kioslave/man/LICENSE +++ /dev/null @@ -1,16 +0,0 @@ -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/kioslave/man/Messages.sh b/kioslave/man/Messages.sh deleted file mode 100644 index 71c402b0..00000000 --- a/kioslave/man/Messages.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -$XGETTEXT *.cpp *.h -o $podir/kio_man.pot diff --git a/kioslave/man/kio_man.cpp b/kioslave/man/kio_man.cpp deleted file mode 100644 index d3e9d03f..00000000 --- a/kioslave/man/kio_man.cpp +++ /dev/null @@ -1,1429 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (c) 2000 Matthias Hoelzer-Kluepfel - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "kio_man.h" - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "kio_man.moc" -#include "man2html.h" -#include -#include -#include - -using namespace KIO; - -MANProtocol *MANProtocol::_self = 0; - -#define SGML2ROFF_DIRS "/usr/lib/sgml" - -/* - * Drop trailing ".section[.gz]" from name - */ -static -void stripExtension( QString *name ) -{ - int pos = name->length(); - - if ( name->indexOf(".gz", -3) != -1 ) - pos -= 3; - else if ( name->indexOf(".z", -2, Qt::CaseInsensitive) != -1 ) - pos -= 2; - else if ( name->indexOf(".bz2", -4) != -1 ) - pos -= 4; - else if ( name->indexOf(".bz", -3) != -1 ) - pos -= 3; - else if ( name->indexOf(".lzma", -5) != -1 ) - pos -= 5; - else if ( name->indexOf(".xz", -3) != -1 ) - pos -= 3; - - if ( pos > 0 ) - pos = name->lastIndexOf('.', pos-1); - - if ( pos > 0 ) - name->truncate( pos ); -} - -static -bool parseUrl(const QString& _url, QString &title, QString §ion) -{ - section.clear(); - - QString url = _url; - url = url.trimmed(); - if (url.isEmpty() || url.at(0) == '/') { - if (url.isEmpty() || KStandardDirs::exists(url)) { - // man:/usr/share/man/man1/ls.1.gz is a valid file - title = url; - return true; - } else - { - // If the directory does not exist, then it is perhaps a normal man page - kDebug(7107) << url << " does not exist"; - } - } - - while (!url.isEmpty() && url.at(0) == '/') - url.remove(0,1); - - title = url; - - int pos = url.indexOf('('); - if (pos < 0) - return true; // man:ls -> title=ls - - title = title.left(pos); - - section = url.mid(pos+1); - - pos = section.indexOf(')'); - if (pos >= 0) { - if (pos < section.length() - 2 && title.isEmpty()) { - title = section.mid(pos + 2); - } - section = section.left(pos); - } - - // man:ls(2) -> title="ls", section="2" - - return true; -} - - -MANProtocol::MANProtocol(const QByteArray &pool_socket, const QByteArray &app_socket) - : QObject(), SlaveBase("man", pool_socket, app_socket) -{ - assert(!_self); - _self = this; - const QString common_dir = KGlobal::dirs()->findResourceDir( "html", "en/common/kde-default.css" ); - const QString strPath=QString( "file:%1/en/common" ).arg( common_dir ); - m_cssPath=strPath.toLocal8Bit(); // ### TODO encode for CSS - section_names << "0" << "0p" << "1" << "1p" << "2" << "3" << "3n" << "3p" << "4" << "5" << "6" << "7" - << "8" << "9" << "l" << "n"; - - QString cssPath(KStandardDirs::locate( "data", "kio_docfilter/kio_docfilter.css" )); - KUrl cssUrl(KUrl::fromPath(cssPath)); - m_manCSSFile = cssUrl.url().toUtf8(); -} - -MANProtocol *MANProtocol::self() { return _self; } - -MANProtocol::~MANProtocol() -{ - _self = 0; -} - -void MANProtocol::parseWhatIs( QMap &i, QTextStream &t, const QString &mark ) -{ - QRegExp re( mark ); - QString l; - while ( !t.atEnd() ) - { - l = t.readLine(); - int pos = re.indexIn( l ); - if (pos != -1) - { - QString names = l.left(pos); - QString descr = l.mid(pos + re.matchedLength()); - while ((pos = names.indexOf(",")) != -1) - { - i[names.left(pos++)] = descr; - while (names[pos] == ' ') - pos++; - names = names.mid(pos); - } - i[names] = descr; - } - } -} - -bool MANProtocol::addWhatIs(QMap &i, const QString &name, const QString &mark) -{ - QFile f(name); - if (!f.open(QIODevice::ReadOnly)) - return false; - QTextStream t(&f); - parseWhatIs( i, t, mark ); - return true; -} - -QMap MANProtocol::buildIndexMap(const QString §ion) -{ - QMap i; - QStringList man_dirs = manDirectories(); - // Supplementary places for whatis databases - man_dirs += m_mandbpath; - if (!man_dirs.contains("/var/cache/man")) - man_dirs << "/var/cache/man"; - if (!man_dirs.contains("/var/catman")) - man_dirs << "/var/catman"; - - QStringList names; - names << "whatis.db" << "whatis"; - QString mark = "\\s+\\(" + section + "[a-z]*\\)\\s+-\\s+"; - - for ( QStringList::ConstIterator it_dir = man_dirs.constBegin(); - it_dir != man_dirs.constEnd(); - ++it_dir ) - { - if ( QFile::exists( *it_dir ) ) { - QStringList::ConstIterator it_name; - for ( it_name = names.constBegin(); - it_name != names.constEnd(); - it_name++ ) - { - if (addWhatIs(i, (*it_dir) + '/' + (*it_name), mark)) - break; - } - if ( it_name == names.constEnd() ) { - KProcess proc; - proc << "whatis" << "-M" << (*it_dir) << "-w" << "*"; - proc.setOutputChannelMode( KProcess::OnlyStdoutChannel ); - proc.execute(); - QTextStream t( proc.readAllStandardOutput(), QIODevice::ReadOnly ); - parseWhatIs( i, t, mark ); - } - } - } - return i; -} - -QStringList MANProtocol::manDirectories() -{ - checkManPaths(); - // - // Build a list of man directories including translations - // - QStringList man_dirs; - - for ( QStringList::ConstIterator it_dir = m_manpath.constBegin(); - it_dir != m_manpath.constEnd(); - it_dir++ ) - { - // Translated pages in "/" if the directory - // exists - QStringList languages = KGlobal::locale()->languageList(); - - for (QStringList::ConstIterator it_lang = languages.constBegin(); - it_lang != languages.constEnd(); - it_lang++ ) - { - if ( !(*it_lang).isEmpty() && (*it_lang) != QString("C") ) { - QString dir = (*it_dir) + '/' + (*it_lang); - - struct stat sbuf; - - if ( ::stat( QFile::encodeName( dir ), &sbuf ) == 0 - && S_ISDIR( sbuf.st_mode ) ) - { - const QString p = QDir(dir).canonicalPath(); - if (!man_dirs.contains(p)) man_dirs += p; - } - } - } - - // Untranslated pages in "" - const QString p = QDir(*it_dir).canonicalPath(); - if (!man_dirs.contains(p)) man_dirs += p; - } - return man_dirs; -} - -QStringList MANProtocol::findPages(const QString &_section, - const QString &title, - bool full_path) -{ - QString section = _section; - - QStringList list; - - // kDebug() << "findPages '" << section << "' '" << title << "'\n"; - if ( (!title.isEmpty()) && (title.at(0) == '/') ) { - list.append(title); - return list; - } - - const QString star( "*" ); - - // - // Find man sections in this directory - // - QStringList sect_list; - if ( section.isEmpty() ) - section = star; - - if ( section != star ) - { - // - // Section given as argument - // - sect_list += section; - while ( (!section.isEmpty()) && (section.at(section.length() - 1).isLetter()) ) { - section.truncate(section.length() - 1); - sect_list += section; - } - } else { - sect_list += section; - } - - QStringList man_dirs = manDirectories(); - - // - // Find man pages in the sections listed above - // - for ( int i=0;id_name ); - QString sect; - - if ( file.startsWith( man ) ) - sect = file.mid(3); - else if (file.startsWith(sman)) - sect = file.mid(4); - - if (sect.toLower()==it_real) it_real = sect; - - // Only add sect if not already contained, avoid duplicates - if (!sect_list.contains(sect) && _section.isEmpty()) { - //kDebug() << "another section " << sect; - sect_list += sect; - } - } - - //kDebug(7107) <<" after while loop"; - ::closedir( dp ); -#if 0 - kDebug(7107)<<"================-"; - kDebug(7107)<<"star=="<d_name[0] != '.' ) { - - QString name = QFile::decodeName( ep->d_name ); - - // check title if we're looking for a specific page - if ( title_given ) { - if ( !name.startsWith( title ) ) { - continue; - } - else { - // beginning matches, do a more thorough check... - QString tmp_name = name; - stripExtension( &tmp_name ); - if ( tmp_name != title ) - continue; - } - } - - if ( full_path ) - name.prepend( dir ); - - list += name ; - } - } - ::closedir( dp ); -} - -void MANProtocol::output(const char *insert) -{ - if (insert) - { - m_outputBuffer.write(insert,strlen(insert)); - } - if (!insert || m_outputBuffer.pos() >= 2048) - { - m_outputBuffer.close(); - data(m_outputBuffer.buffer()); - m_outputBuffer.setData(QByteArray()); - m_outputBuffer.open(QIODevice::WriteOnly); - } -} - -#ifndef SIMPLE_MAN2HTML -// called by man2html -extern char *read_man_page(const char *filename) -{ - return MANProtocol::self()->readManPage(filename); -} - -// called by man2html -extern void output_real(const char *insert) -{ - MANProtocol::self()->output(insert); -} -#endif - -void MANProtocol::get(const KUrl& url ) -{ - kDebug(7107) << "GET " << url.url(); - - QString title, section; - - if (!parseUrl(url.path(), title, section)) - { - showMainIndex(); - return; - } - - // tell the mimetype - mimeType("text/html"); - - // see if an index was requested - if (url.query().isEmpty() && (title.isEmpty() || title == "/" || title == ".")) - { - if (section == "index" || section.isEmpty()) - showMainIndex(); - else - showIndex(section); - return; - } - - const QStringList foundPages=findPages(section, title); - bool pageFound=true; - - if (foundPages.isEmpty()) - { - outputError(i18n("No man page matching to %1 found.

" - "Check that you have not mistyped the name of the page that you want.
" - "Check that you have typed the name using the correct upper and lower case characters.
" - "If everything looks correct, then you may need to improve the search path " - "for man pages; either using the environment variable MANPATH or using a matching file " - "in the /etc directory.", Qt::escape(title))); - pageFound=false; - } - else if (foundPages.count()>1) - { - pageFound=false; - //check for the case that there is foo.1 and foo.1.gz found: - // ### TODO make it more generic (other extensions) - if ((foundPages.count()==2) && - ((QString(foundPages[0]+".gz") == foundPages[1]) || - (foundPages[0] == QString(foundPages[1]+".gz")))) - pageFound=true; - else - outputMatchingPages(foundPages); - } - //yes, we found exactly one man page - - if (pageFound) - { - setResourcePath(m_cssPath); - setCssFile(m_manCSSFile); - m_outputBuffer.open(QIODevice::WriteOnly); - const QByteArray filename=QFile::encodeName(foundPages[0]); - char *buf = readManPage(filename); - - if (!buf) - { - outputError(i18n("Open of %1 failed.", title)); - finished(); - return; - } - // will call output_real - scan_man_page(buf); - delete [] buf; - - output(0); // flush - - m_outputBuffer.close(); - data(m_outputBuffer.buffer()); - m_outputBuffer.setData(QByteArray()); - // tell we are done - data(QByteArray()); - } - finished(); -} - -//--------------------------------------------------------------------- - -char *MANProtocol::readManPage(const char *_filename) -{ - QByteArray filename = _filename; - QByteArray array; - - /* Determine type of man page file by checking its path. Determination by - * MIME type with KMimeType doesn't work reliablely. E.g., Solaris 7: - * /usr/man/sman7fs/pcfs.7fs -> text/x-csrc : WRONG - * If the path name constains the string sman, assume that it's SGML and - * convert it to roff format (used on Solaris). */ - //QString file_mimetype = KMimeType::findByPath(QString(filename), 0, false)->name(); - if (QString(filename).contains("sman", Qt::CaseInsensitive)) //file_mimetype == "text/html" || ) - { - KProcess proc; - // Determine path to sgml2roff, if not already done. - getProgramPath(); - proc << mySgml2RoffPath << filename; - proc.setOutputChannelMode( KProcess::OnlyStdoutChannel ); - proc.execute(); - array = proc.readAllStandardOutput(); - } - else - { - if (QDir::isRelativePath(filename)) - { - kDebug(7107) << "relative " << filename; - filename = QDir::cleanPath(lastdir + '/' + filename).toUtf8(); - kDebug(7107) << "resolved to " << filename; - } - - lastdir = filename.left(filename.lastIndexOf('/')); - - if ( !QFile::exists(QFile::decodeName(filename)) ) // if given file does not exist, find with suffix - { - kDebug(7107) << "not existing " << filename; - QDir mandir(lastdir); - mandir.setNameFilters(QStringList() << (filename.mid(filename.lastIndexOf('/') + 1) + ".*")); - filename = lastdir + '/' + QFile::encodeName(mandir.entryList().first()); - kDebug(7107) << "resolved to " << filename; - } - - QIODevice *fd = KFilterDev::deviceForFile(filename); - - if ( !fd || !fd->open(QIODevice::ReadOnly)) - { - delete fd; - return 0; - } - array = fd->readAll(); - kDebug(7107) << "read " << array.size(); - fd->close(); - delete fd; - } - - if (array.isEmpty()) - return 0; - - // as we do not know in which encoding the man source is, try to automatically - // detect it and always return it as UTF-8 - KEncodingProber encodingProber; - encodingProber.feed(array); - kDebug(7107) << "auto-detect encoding for" << filename << "guess=" << encodingProber.encoding() - << "confidence=" << encodingProber.confidence(); - QString out = QTextCodec::codecForName(encodingProber.encoding())->toUnicode(array); - array = out.toUtf8(); - - const int len = array.size(); - char *buf = new char[len + 4]; - memmove(buf + 1, array.data(), len); - buf[0] = buf[len+1] = '\n'; // Start and end with an end of line - buf[len+2] = buf[len+3] = '\0'; // Two NUL characters at end - - return buf; -} - -//--------------------------------------------------------------------- - -void MANProtocol::outputError(const QString& errmsg) -{ - QByteArray array; - QTextStream os(&array, QIODevice::WriteOnly); - os.setCodec( "UTF-8" ); - - os << "" << endl; - os << "" << endl; - os << "" << i18n("Man output") << "\n" << endl; - if ( !m_manCSSFile.isEmpty() ) - os << "" << endl; - os << "" << endl; - os << "" << i18n("

KDE Man Viewer Error

") << errmsg << "" << endl; - os << "" << endl; - - data(array); -} - -void MANProtocol::outputMatchingPages(const QStringList &matchingPages) -{ - QByteArray array; - QTextStream os(&array, QIODevice::WriteOnly); - os.setCodec( "UTF-8" ); - - os << "" << endl; - os << "\n"<" << i18n("Man output") <<"" << endl; - if ( !m_manCSSFile.isEmpty() ) - os << "" << endl; - os << "" <

" << i18n("There is more than one matching man page."); - os << "

\n
    \n"; - - int acckey=1; - for (QStringList::ConstIterator it = matchingPages.begin(); it != matchingPages.end(); ++it) - { - os<<"
  • "<< *it <<"
    \n
    \n"; - acckey++; - } - os << "
\n"; - os << "
\n"; - os << "

" << i18n("Note: if you read a man page in your language," - " be aware it can contain some mistakes or be obsolete." - " In case of doubt, you should have a look at the English version.") << "

"; - - os << "\n"<" << endl; - os << "" << endl; - os << "" << i18n("UNIX Manual Index") << "" << endl; - if (!m_manCSSFile.isEmpty()) - os << "" << endl; - os << "" << endl; - os << "

" << i18n("UNIX Manual Index") << "

" << endl; - - // ### TODO: why still the environment variable - const QString sectList = getenv("MANSECT"); - QStringList sections; - if (sectList.isEmpty()) - sections = buildSectionList(manDirectories()); - else - sections = sectList.split( ':'); - - os << "" << endl; - - QSet accessKeys; - char alternateAccessKey = 'a'; - QStringList::ConstIterator it; - for (it = sections.constBegin(); it != sections.constEnd(); ++it) - { - // create a unique access key - QChar accessKey = (*it).at((*it).length() - 1); // rightmost char - - while ( accessKeys.contains(accessKey) ) - accessKey = alternateAccessKey++; - - accessKeys.insert(accessKey); - - os << "" << endl; - } - - os << "
" << i18n("Section %1", *it) - << "  " << sectionName(*it) << "
" << endl; - - // print footer - os << "" << endl; - - data(array); - finished(); -} - -void MANProtocol::constructPath(QStringList& constr_path, QStringList constr_catmanpath) -{ - QMap manpath_map; - QMap mandb_map; - - // Add paths from /etc/man.conf - // - // Explicit manpaths may be given by lines starting with "MANPATH" or - // "MANDATORY_MANPATH" (depending on system ?). - // Mappings from $PATH to manpath are given by lines starting with - // "MANPATH_MAP" - - QRegExp manpath_regex( "^MANPATH\\s" ); - QRegExp mandatory_regex( "^MANDATORY_MANPATH\\s" ); - QRegExp manpath_map_regex( "^MANPATH_MAP\\s" ); - QRegExp mandb_map_regex( "^MANDB_MAP\\s" ); - //QRegExp section_regex( "^SECTION\\s" ); - QRegExp space_regex( "\\s+" ); // for parsing manpath map - - QFile mc("/etc/man.conf"); // Caldera - if (!mc.exists()) - mc.setFileName("/etc/manpath.config"); // SuSE, Debian - if (!mc.exists()) - mc.setFileName("/etc/man.config"); // Mandrake - - if (mc.open(QIODevice::ReadOnly)) - { - QTextStream is(&mc); - is.setCodec( QTextCodec::codecForLocale () ); - - while (!is.atEnd()) - { - const QString line = is.readLine(); - if ( manpath_regex.indexIn(line) == 0 ) - { - const QString path = line.mid(8).trimmed(); - constr_path += path; - } - else if ( mandatory_regex.indexIn(line) == 0 ) - { - const QString path = line.mid(18).trimmed(); - constr_path += path; - } - else if ( manpath_map_regex.indexIn(line) == 0 ) - { - // The entry is "MANPATH_MAP " - const QStringList mapping = - line.split( space_regex); - - if ( mapping.count() == 3 ) - { - const QString dir = QDir::cleanPath( mapping[1] ); - const QString mandir = QDir::cleanPath( mapping[2] ); - - manpath_map[ dir ] = mandir; - } - } - else if ( mandb_map_regex.indexIn(line) == 0 ) - { - // The entry is "MANDB_MAP " - const QStringList mapping = - line.split( space_regex); - - if ( mapping.count() == 3 ) - { - const QString mandir = QDir::cleanPath( mapping[1] ); - const QString catmandir = QDir::cleanPath( mapping[2] ); - - mandb_map[ mandir ] = catmandir; - } - } - /* sections are not used - else if ( section_regex.find(line, 0) == 0 ) - { - if ( !conf_section.isEmpty() ) - conf_section += ':'; - conf_section += line.mid(8).trimmed(); - } - */ - } - mc.close(); - } - - // Default paths - static const char * const manpaths[] = { - "/usr/X11/man", - "/usr/X11R6/man", - "/usr/man", - "/usr/local/man", - "/usr/exp/man", - "/usr/openwin/man", - "/usr/dt/man", - "/opt/freetool/man", - "/opt/local/man", - "/usr/tex/man", - "/usr/www/man", - "/usr/lang/man", - "/usr/gnu/man", - "/usr/share/man", - "/usr/motif/man", - "/usr/titools/man", - "/usr/sunpc/man", - "/usr/ncd/man", - "/usr/newsprint/man", - NULL }; - - - int i = 0; - while (manpaths[i]) { - if ( constr_path.indexOf( QString( manpaths[i] ) ) == -1 ) - constr_path += QString( manpaths[i] ); - i++; - } - - // Directories in $PATH - // - if a manpath mapping exists, use that mapping - // - if a directory "/man" or "/../man" exists, add it - // to the man path (the actual existence check is done further down) - - if ( ::getenv("PATH") ) { - const QStringList path = - QString::fromLocal8Bit( ::getenv("PATH") ).split( ':', QString::SkipEmptyParts ); - - for ( QStringList::const_iterator it = path.constBegin(); - it != path.constEnd(); - ++it ) - { - const QString dir = QDir::cleanPath( *it ); - QString mandir = manpath_map[ dir ]; - - if ( !mandir.isEmpty() ) { - // a path mapping exists - if ( constr_path.indexOf( mandir ) == -1 ) - constr_path += mandir; - } - else { - // no manpath mapping, use "/man" and "/../man" - - mandir = dir + QString( "/man" ); - if ( constr_path.indexOf( mandir ) == -1 ) - constr_path += mandir; - - int pos = dir.lastIndexOf( '/' ); - if ( pos > 0 ) { - mandir = dir.left( pos ) + QString("/man"); - if ( constr_path.indexOf( mandir ) == -1 ) - constr_path += mandir; - } - } - QString catmandir = mandb_map[ mandir ]; - if ( !mandir.isEmpty() ) - { - if ( constr_catmanpath.indexOf( catmandir ) == -1 ) - constr_catmanpath += catmandir; - } - else - { - // What is the default mapping? - catmandir = mandir; - catmandir.replace("/usr/share/","/var/cache/"); - if ( constr_catmanpath.indexOf( catmandir ) == -1 ) - constr_catmanpath += catmandir; - } - } - } -} - -void MANProtocol::checkManPaths() -{ - static bool inited = false; - - if (inited) - return; - - inited = true; - - const QString manpath_env = QString::fromLocal8Bit( ::getenv("MANPATH") ); - //QString mansect_env = QString::fromLocal8Bit( ::getenv("MANSECT") ); - - // Decide if $MANPATH is enough on its own or if it should be merged - // with the constructed path. - // A $MANPATH starting or ending with ":", or containing "::", - // should be merged with the constructed path. - - bool construct_path = false; - - if ( manpath_env.isEmpty() - || manpath_env[0] == ':' - || manpath_env[manpath_env.length()-1] == ':' - || manpath_env.contains( "::" ) ) - { - construct_path = true; // need to read config file - } - - // Constucted man path -- consists of paths from - // /etc/man.conf - // default dirs - // $PATH - QStringList constr_path; - QStringList constr_catmanpath; // catmanpath - - QString conf_section; - - if ( construct_path ) - { - constructPath(constr_path, constr_catmanpath); - } - - m_mandbpath=constr_catmanpath; - - // Merge $MANPATH with the constructed path to form the - // actual manpath. - // - // The merging syntax with ":" and "::" in $MANPATH will be - // satisfied if any empty string in path_list_env (there - // should be 1 or 0) is replaced by the constructed path. - - const QStringList path_list_env = manpath_env.split( ':', QString::KeepEmptyParts); - - for ( QStringList::const_iterator it = path_list_env.constBegin(); - it != path_list_env.constEnd(); - ++it ) - { - struct stat sbuf; - - QString dir = (*it); - - if ( !dir.isEmpty() ) { - // Add dir to the man path if it exists - if ( m_manpath.indexOf( dir ) == -1 ) { - if ( ::stat( QFile::encodeName( dir ), &sbuf ) == 0 - && S_ISDIR( sbuf.st_mode ) ) - { - m_manpath += dir; - } - } - } - else { - // Insert constructed path ($MANPATH was empty, or - // there was a ":" at an end or "::") - - for ( QStringList::const_iterator it2 = constr_path.constBegin(); - it2 != constr_path.constEnd(); - it2++ ) - { - dir = (*it2); - - if ( !dir.isEmpty() ) { - if ( m_manpath.indexOf( dir ) == -1 ) { - if ( ::stat( QFile::encodeName( dir ), &sbuf ) == 0 - && S_ISDIR( sbuf.st_mode ) ) - { - m_manpath += dir; - } - } - } - } - } - } - -/* sections are not used - // Sections - QStringList m_mansect = mansect_env.split( ':', QString::KeepEmptyParts); - - const char* const default_sect[] = - { "1", "2", "3", "4", "5", "6", "7", "8", "9", "n", 0L }; - - for ( int i = 0; default_sect[i] != 0L; i++ ) - if ( m_mansect.indexOf( QString( default_sect[i] ) ) == -1 ) - m_mansect += QString( default_sect[i] ); -*/ - -} - - -// Setup my own structure, with char pointers. -// from now on only pointers are copied, no strings -// -// containing the whole path string, -// the beginning of the man page name -// and the length of the name -struct man_index_t { - char *manpath; // the full path including man file - const char *manpage_begin; // pointer to the begin of the man file name in the path - int manpage_len; // len of the man file name -}; -typedef man_index_t *man_index_ptr; - -int compare_man_index(const void *s1, const void *s2) -{ - struct man_index_t *m1 = *(struct man_index_t **)s1; - struct man_index_t *m2 = *(struct man_index_t **)s2; - int i; - // Compare the names of the pages - // with the shorter length. - // Man page names are not '\0' terminated, so - // this is a bit tricky - if ( m1->manpage_len > m2->manpage_len) - { - i = qstrnicmp( m1->manpage_begin, - m2->manpage_begin, - m2->manpage_len); - if (!i) - return 1; - return i; - } - - if ( m1->manpage_len < m2->manpage_len) - { - i = qstrnicmp( m1->manpage_begin, - m2->manpage_begin, - m1->manpage_len); - if (!i) - return -1; - return i; - } - - return qstrnicmp( m1->manpage_begin, - m2->manpage_begin, - m1->manpage_len); -} - -void MANProtocol::showIndex(const QString& section) -{ - QByteArray array_h; - QTextStream os_h(&array_h, QIODevice::WriteOnly); - os_h.setCodec( "UTF-8" ); - - // print header - os_h << "" << endl; - os_h << "" << endl; - os_h << "" << i18n("UNIX Manual Index") << "" << endl; - if ( !m_manCSSFile.isEmpty() ) - os_h << "" << endl; - os_h << "" << endl << "" << endl; - - QByteArray array_d; - QTextStream os(&array_d, QIODevice::WriteOnly); - os.setCodec( "UTF-8" ); - os << "
" << endl; - os << "

" << i18n( "Index for Section %1: %2", section, sectionName(section)) << "

" << endl; - - // compose list of search paths ------------------------------------------------------------- - - checkManPaths(); - infoMessage(i18n("Generating Index")); - - // search for the man pages - QStringList pages = findPages( section, QString() ); - - if ( pages.count() == 0 ) // not a single page found - { - // print footer - os << "
" << endl; - - infoMessage(QString()); - data(array_h + array_d); - finished(); - return; - } - - QMap indexmap = buildIndexMap(section); - - // print out the list - os << "" << endl; - - int listlen = pages.count(); - man_index_ptr *indexlist = new man_index_ptr[listlen]; - listlen = 0; - - QStringList::const_iterator page; - for (page = pages.constBegin(); page != pages.constEnd(); ++page) - { - // I look for the beginning of the man page name - // i.e. "bla/pagename.3.gz" by looking for the last "/" - // Then look for the end of the name by searching backwards - // for the last ".", not counting zip extensions. - // If the len of the name is >0, - // store it in the list structure, to be sorted later - - char *manpage_end; - struct man_index_t *manindex = new man_index_t; - manindex->manpath = strdup((*page).toUtf8()); - - manindex->manpage_begin = strrchr(manindex->manpath, '/'); - if (manindex->manpage_begin) - { - manindex->manpage_begin++; - assert(manindex->manpage_begin >= manindex->manpath); - } - else - { - manindex->manpage_begin = manindex->manpath; - assert(manindex->manpage_begin >= manindex->manpath); - } - - // Skip extension ".section[.gz]" - - char *begin = (char*)(manindex->manpage_begin); - int len = strlen( begin ); - char *end = begin+(len-1); - - if ( len >= 3 && strcmp( end-2, ".gz" ) == 0 ) - end -= 3; - else if ( len >= 2 && strcmp( end-1, ".Z" ) == 0 ) - end -= 2; - else if ( len >= 2 && strcmp( end-1, ".z" ) == 0 ) - end -= 2; - else if ( len >= 4 && strcmp( end-3, ".bz2" ) == 0 ) - end -= 4; - else if ( len >= 5 && strcmp( end-4, ".lzma" ) == 0 ) - end -= 5; - else if ( len >= 3 && strcmp( end-2, ".xz" ) == 0 ) - end -= 3; - - while ( end >= begin && *end != '.' ) - end--; - - if ( end < begin ) - manpage_end = 0; - else - manpage_end = end; - - if (NULL == manpage_end) - { - // no '.' ending ??? - // set the pointer past the end of the filename - manindex->manpage_len = (*page).length(); - manindex->manpage_len -= (manindex->manpage_begin - manindex->manpath); - assert(manindex->manpage_len >= 0); - } - else - { - manindex->manpage_len = (manpage_end - manindex->manpage_begin); - assert(manindex->manpage_len >= 0); - } - - if (0 < manindex->manpage_len) - { - indexlist[listlen] = manindex; - listlen++; - } - else delete manindex; - } - - // - // Now do the sorting on the page names - // and the printout afterwards - // While printing avoid duplicate man page names - // - - struct man_index_t dummy_index = {0l,0l,0}; - struct man_index_t *last_index = &dummy_index; - - // sort and print - qsort(indexlist, listlen, sizeof(struct man_index_t *), compare_man_index); - - QChar firstchar, tmp; - QString indexLine="
\n"; - if (indexlist[0]->manpage_len>0) - { - firstchar=QChar((indexlist[0]->manpage_begin)[0]).toLower(); - - const QString appendixstr = QString( - " [%3]\n" - ).arg(firstchar).arg(firstchar).arg(firstchar); - indexLine.append(appendixstr); - } - os << "
" << endl; - - for (int i=0; imanpage_begin" has not, - // so do compare at most "manindex->manpage_len" of the strings. - if (last_index->manpage_len == manindex->manpage_len && - !qstrncmp(last_index->manpage_begin, - manindex->manpage_begin, - manindex->manpage_len) - ) - { - continue; - } - - tmp=QChar((manindex->manpage_begin)[0]).toLower(); - if (firstchar != tmp) - { - firstchar = tmp; - os << "" << endl; - - const QString appendixstr = QString( - " [%3]\n" - ).arg(firstchar).arg(firstchar).arg(firstchar); - indexLine.append(appendixstr); - } - os << "" << endl; - last_index = manindex; - } - indexLine.append(""); - - for (int i=0; imanpath); // allocated by strdup - delete indexlist[i]; - } - - delete [] indexlist; - - os << "
\n " << firstchar <<"\n
\n " << firstchar << "\n
manpath << "\">\n"; - - ((char *)manindex->manpage_begin)[manindex->manpage_len] = '\0'; - os << manindex->manpage_begin - << "  " - << (indexmap.contains(manindex->manpage_begin) ? indexmap[manindex->manpage_begin] : "" ) - << "
" << endl; - - os << indexLine << endl; - - // print footer - os << "" << endl; - - // set the links "toolbar" also at the top - os_h << indexLine << endl; - - infoMessage(QString()); - data(array_h + array_d); - finished(); -} - -void MANProtocol::listDir(const KUrl &url) -{ - kDebug( 7107 ) << url; - - QString title; - QString section; - - if ( !parseUrl(url.path(), title, section) ) { - error( KIO::ERR_MALFORMED_URL, url.url() ); - return; - } - - // stat() and listDir() declared that everything is an html file. - // However we can list man: and man:(1) as a directory (e.g. in dolphin). - // But we cannot list man:ls as a directory, this makes no sense (#154173) - - if (!title.isEmpty() && title != "/") { - error(KIO::ERR_IS_FILE, url.url()); - return; - } - - UDSEntryList uds_entry_list; - - if (section.isEmpty()) { - for (QStringList::ConstIterator it = section_names.constBegin(); it != section_names.constEnd(); ++it) { - UDSEntry uds_entry; - - QString name = "man:/(" + *it + ')'; - uds_entry.insert( KIO::UDSEntry::UDS_NAME, sectionName( *it ) ); - uds_entry.insert( KIO::UDSEntry::UDS_URL, name ); - uds_entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR ); - - uds_entry_list.append( uds_entry ); - } - } - - QStringList list = findPages( section, QString(), false ); - - QStringList::Iterator it = list.begin(); - QStringList::Iterator end = list.end(); - - for ( ; it != end; ++it ) { - stripExtension( &(*it) ); - - UDSEntry uds_entry; - uds_entry.insert( KIO::UDSEntry::UDS_NAME, *it ); - uds_entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFREG); - uds_entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1("text/html")); - uds_entry_list.append( uds_entry ); - } - - listEntries( uds_entry_list ); - finished(); -} - -void MANProtocol::getProgramPath() -{ - if (!mySgml2RoffPath.isEmpty()) - return; - - mySgml2RoffPath = KGlobal::dirs()->findExe("sgml2roff"); - if (!mySgml2RoffPath.isEmpty()) - return; - - /* sgml2roff isn't found in PATH. Check some possible locations where it may be found. */ - mySgml2RoffPath = KGlobal::dirs()->findExe("sgml2roff", QString(SGML2ROFF_DIRS)); - if (!mySgml2RoffPath.isEmpty()) - return; - - /* Cannot find sgml2roff program: */ - outputError(i18n("Could not find the sgml2roff program on your system. Please install it, if necessary, and extend the search path by adjusting the environment variable PATH before starting KDE.")); - finished(); - exit(); -} diff --git a/kioslave/man/kio_man.h b/kioslave/man/kio_man.h deleted file mode 100644 index d19e5d4c..00000000 --- a/kioslave/man/kio_man.h +++ /dev/null @@ -1,90 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (c) 2000 Matthias Hoelzer-Kluepfel - - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ -#ifndef __kio_man_h__ -#define __kio_man_h__ - - - -#include -#include - -#include -#include - -class MANProtocol : public QObject, public KIO::SlaveBase -{ - Q_OBJECT - -public: - - MANProtocol(const QByteArray &pool_socket, const QByteArray &app_socket); - virtual ~MANProtocol(); - - virtual void get(const KUrl& url); - virtual void stat(const KUrl& url); - - virtual void mimetype(const KUrl &url); - virtual void listDir(const KUrl &url); - - void outputError(const QString& errmsg); - void outputMatchingPages(const QStringList &matchingPages); - - void showMainIndex(); - void showIndex(const QString& section); - - // the following two functions are the interface to man2html - void output(const char *insert); - char *readManPage(const char *filename); - - static MANProtocol *self(); - -private: - void checkManPaths(); - QStringList manDirectories(); - QMap buildIndexMap(const QString& section); - bool addWhatIs(QMap& i, const QString& f, const QString& mark); - void parseWhatIs( QMap &i, QTextStream &t, const QString &mark ); - QStringList findPages(const QString& section, - const QString &title, - bool full_path = true); - - void addToBuffer(const char *buffer, int buflen); - QString pageName(const QString& page) const; - QStringList buildSectionList(const QStringList& dirs) const; - void constructPath(QStringList& constr_path, QStringList constr_catmanpath); -private: - static MANProtocol *_self; - QByteArray lastdir; - - void findManPagesInSection(const QString &dir, const QString &title, bool full_path, QStringList &list); - QStringList m_manpath; ///< Path of man directories - QStringList m_mandbpath; ///< Path of catman directories - QStringList section_names; - - QString mySgml2RoffPath; - void getProgramPath(); - - QByteArray m_cssPath; ///< Path to KDE resources, encoded for CSS - QBuffer m_outputBuffer; ///< Buffer for the output - QByteArray m_manCSSFile; ///< Path to kio_man.css -}; - - -#endif diff --git a/kioslave/man/kmanpart.cpp b/kioslave/man/kmanpart.cpp deleted file mode 100644 index b2fd052d..00000000 --- a/kioslave/man/kmanpart.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Alexander Neundorf - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "kmanpart.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -static KAboutData createAboutData() -{ - return KAboutData("kmanpart", "kio_man", ki18n("KMan"), KDE_VERSION_STRING); -} - -K_PLUGIN_FACTORY(KManPartFactory, registerPlugin();) -K_EXPORT_PLUGIN(KManPartFactory(createAboutData())) - - -KManPart::KManPart(QWidget * parentWidget, QObject* parent, const QVariantList&) -: KHTMLPart(parentWidget, parent) -,m_job(0) -{ - setComponentData(KManPartFactory::componentData()); - m_extension = new KParts::BrowserExtension(this); -} - -bool KManPart::openUrl( const KUrl &url ) -{ - // KHTML would detect text/plain, but we are going to write HTML to it. - KParts::OpenUrlArguments args(arguments()); - args.setMimeType("text/html"); - setArguments(args); - - return KParts::ReadOnlyPart::openUrl(url); -} - -bool KManPart::openFile() -{ - if (m_job!=0) - m_job->kill(); - - begin(); - - KUrl url; - url.setProtocol( "man" ); - url.setPath( localFilePath() ); - - m_job = KIO::get( url, KIO::NoReload, KIO::HideProgressInfo ); - connect( m_job, SIGNAL( data( KIO::Job *, const QByteArray &) ), SLOT( readData( KIO::Job *, const QByteArray &) ) ); - connect( m_job, SIGNAL( result(KJob*) ), SLOT( jobDone(KJob*) ) ); - return true; -} - -void KManPart::readData(KIO::Job * , const QByteArray & data) -{ - write(data,data.size()); -} - -void KManPart::jobDone( KJob *) -{ - m_job=0; - end(); -} - -#include "kmanpart.moc" - diff --git a/kioslave/man/kmanpart.desktop b/kioslave/man/kmanpart.desktop deleted file mode 100644 index 3e7a326f..00000000 --- a/kioslave/man/kmanpart.desktop +++ /dev/null @@ -1,187 +0,0 @@ -[Desktop Entry] -Type=Service -Comment=Embeddable Troff Viewer -Comment[af]=Inlegbare Troff Kyker -Comment[ar]=مُظهر برنامج Troff القابل للتمديد -Comment[ast]=Visor empotrable de Troff -Comment[be]=Убудаваны праглядальнік Troff -Comment[be@latin]=Unutrany prahladnik „Troff” -Comment[bg]=Визуализатор за вграждане на Troff -Comment[bn]=সন্নিবেশযোগ্য ট্রফ্ প্রদর্শক -Comment[bn_IN]=এমবেড করার যোগ্য Troff প্রদর্শন ব্যবস্থা -Comment[bs]=Ugnezdivi prikazivač Trofa -Comment[ca]=Visor Troff incrustable -Comment[ca@valencia]=Visor Troff incrustable -Comment[cs]=Komponenta pro zobrazování manuálových stránek -Comment[csb]=Przezérnik lopków troff -Comment[cy]=Gwelydd Troff Mewnadeiladwy -Comment[da]=Indlejrbar Troff-fremviser -Comment[de]=Eingebetteter Troff-Betrachter -Comment[el]=Ενσωματώσιμος προβολέας Troff -Comment[en_GB]=Embeddable Troff Viewer -Comment[eo]=Enkorpigebla Troff-rigardilo -Comment[es]=Visor empotrable de Troff -Comment[et]=Põimitav Troff komponent -Comment[eu]=Troff ikustaile kapsulagarria -Comment[fa]=مشاهده‌گر Troff نهفتنی -Comment[fi]=Upotettava Troff-näytin -Comment[fr]=Afficheur « Troff » incorporé -Comment[fy]=Ynsletten Troff-werjefteprogramma -Comment[ga]=Amharcán Inleabaithe troff -Comment[gl]=Visor de Troff incrustábel -Comment[gu]=જડિત ટ્રોફ દર્શક -Comment[he]=מציג Troff בר־שיבוץ -Comment[hi]=एम्बेडेबल ट्राफ प्रदर्शक -Comment[hne]=एम्बेडेबल ट्राफ प्रदर्सक -Comment[hr]=Ugradivi preglednik slika -Comment[hsb]=Integrujomny troff-přehladowar -Comment[hu]=Beágyazható Troff-komponens -Comment[ia]=Visor Incorporabile de Troff -Comment[id]=Penampil Troff Dapat Dibenamkan -Comment[is]=Ívefjanlegur Troff skoðari -Comment[it]=Visore integrabile di file Troff -Comment[ja]=埋め込み Troff ビューア -Comment[ka]=ჩაშენებული დამთვალიერებელი პროგრამა Troff -Comment[kk]=Құрамына енгізілетін Troff қарау құралы -Comment[km]=កម្មវិធី​មើល Troff ដែល​បាន​បង្កប់ -Comment[kn]=ಹುದುಗಿಸಲಾದ (ಎಂಬೆಡೆಡ್) ಟ್ರಾಫ್ ವೀಕ್ಷಕ -Comment[ko]=포함 가능한 Troff 뷰어 -Comment[ku]=Nîşandêra Embeddable Troff -Comment[lt]=Įdedamas Troff žiūriklis -Comment[lv]=Iegultais Troff skatītājs -Comment[mai]=एम्बेडेबल ट्राफ प्रदर्शक -Comment[mk]=Вгнездлив Troff прегледувач -Comment[ml]=എംബഡ് ചെയ്യാവുന്ന ട്രോഫ് ദര്‍ശിനി -Comment[mr]=अंतर्भूतीत ट्राफ प्रदर्शक -Comment[ms]=Pemapar Troff Boleh Benam -Comment[nb]=Innebygget Troff-viser -Comment[nds]=Kieker för Troff, de inbett warrn kann -Comment[ne]=सम्मिलित गर्न सकिने ट्रफ दर्शक -Comment[nl]=Ingebed Troff-weergaveprogramma -Comment[nn]=Innebyggbar Troff-visar -Comment[or]=ସନ୍ନିବେଶଯୋଗ୍ୟ Troff ପ୍ରଦର୍ଶକ -Comment[pa]=ਇੰਬੈੱਡ ਹੋਣ ਯੋਗ Troff ਦਰਸ਼ਕ -Comment[pl]=Przeglądarka plików Troff -Comment[pt]=Visualizador de Troff incorporado -Comment[pt_BR]=Visualizador Troff Integrado -Comment[ro]=Componentă de vizualizare Troff înglobată -Comment[ru]=Встраиваемая программа просмотра Troff -Comment[se]=Vuojohahtti Troff-cájeheaddji -Comment[si]=තිළැලි Troff දසුන -Comment[sk]=Vložiteľný prehliadač Troff -Comment[sl]=Vgradni pregledovalnik za Troff -Comment[sr]=Угнездиви приказивач Трофа -Comment[sr@ijekavian]=Угњездиви приказивач Трофа -Comment[sr@ijekavianlatin]=Ugnjezdivi prikazivač Troffa -Comment[sr@latin]=Ugnezdivi prikazivač Troffa -Comment[sv]=Inbäddningsbar Troff-visare -Comment[ta]=உட்பொதிந்த ட்ராஃப் காட்சி -Comment[te]=పొదగదగ్గ ట్రాఫ్ వీక్షిణి -Comment[tg]=Намоишгари дарунсохти Troff -Comment[th]=โปรแกรมดู Troff ที่สามารถฝังตัวได้ -Comment[tr]=Gömülebilir Troff Görüntüleyici -Comment[ug]=سىڭدۈرمە Troff كۆرگۈچ -Comment[uk]=Вмонтований переглядач Troff -Comment[uz]=Ichiga oʻrnatib boʻladigan Troff-faylini koʻruvchi -Comment[uz@cyrillic]=Ичига ўрнатиб бўладиган Troff-файлини кўрувчи -Comment[vi]=Trình xem Troff nhúng được -Comment[wa]=Ravalåve håyneu di fitchîs Troff -Comment[xh]=Umboniseli we Troff Elungiselekayo -Comment[x-test]=xxEmbeddable Troff Viewerxx -Comment[zh_CN]=嵌入的 Troff 查看器 -Comment[zh_TW]=可嵌入的 Troff 檢視元件 -MimeType=text/troff;application/x-troff-man; -Name=KManPart -Name[af]=KManPart -Name[ar]=KManPart -Name[ast]=KManPart -Name[be]=KManPart -Name[be@latin]=KManPart -Name[bg]=KManPart -Name[bn]=KManPart -Name[bn_IN]=KManPart -Name[br]=KManPart -Name[bs]=K‑uput‑deo -Name[ca]=KManPart -Name[ca@valencia]=KManPart -Name[cs]=KManPart -Name[csb]=KManPart -Name[cy]=KManPart -Name[da]=KManPart -Name[de]=KManPart -Name[el]=KManPart -Name[en_GB]=KManPart -Name[eo]=KManPart -Name[es]=KManPart -Name[et]=KManPart -Name[eu]=KManPart -Name[fa]=KManPart -Name[fi]=KManPart -Name[fr]=KManPart -Name[fy]=KManPart -Name[ga]=KManPart -Name[gl]=KManPart -Name[gu]=KManPart -Name[he]=KManPart -Name[hi]=के-मेन-पार्ट -Name[hne]=के-मेन-पार्ट -Name[hr]=KManPart -Name[hsb]=KManPart -Name[hu]=KManPart -Name[ia]=KManPart -Name[id]=KManPart -Name[is]=KManPart -Name[it]=KManPart -Name[ja]=KManPart -Name[ka]=KManPart -Name[kk]=KManPart -Name[km]=KManPart -Name[kn]=ಕೆಮಾನ್ ಪಾರ್ಟ್ -Name[ko]=KManPart -Name[ku]=KManPart -Name[lt]=KManPart -Name[lv]=KManPart -Name[mai]=के-मेन-पार्ट -Name[mk]=KManPart -Name[ml]=കെമാന്‍പാര്‍ട്ട് -Name[mr]=KManPart -Name[ms]=KManPart -Name[nb]=KManPart -Name[nds]=KManPart -Name[ne]=केडीई म्यान भाग -Name[nl]=KManPart -Name[nn]=KManPart -Name[oc]=KManPart -Name[or]=KManPart -Name[pa]=KManPart -Name[pl]=KManPart -Name[pt]=KManPart -Name[pt_BR]=Componente KMan -Name[ro]=Componentă KMan -Name[ru]=KManPart -Name[se]=KManPart -Name[si]=KManPart -Name[sk]=KManPart -Name[sl]=KManPart -Name[sr]=К‑упут‑део -Name[sr@ijekavian]=К‑упут‑дио -Name[sr@ijekavianlatin]=K‑uput‑dio -Name[sr@latin]=K‑uput‑deo -Name[sv]=Kman-del -Name[ta]=KManPart -Name[te]=కెమేన్ భాగం -Name[tg]=KManPart -Name[th]=KManPart -Name[tr]=KManPart -Name[ug]=KManPart -Name[uk]=KManPart -Name[uz]=KManPart -Name[uz@cyrillic]=KManPart -Name[vi]=KManPart -Name[wa]=KManPart -Name[xh]=KManPart -Name[x-test]=xxKManPartxx -Name[zh_CN]=KManPart -Name[zh_TW]=KManPart -X-KDE-ServiceTypes=KParts/ReadOnlyPart,Browser/View -X-KDE-Library=libkmanpart diff --git a/kioslave/man/kmanpart.h b/kioslave/man/kmanpart.h deleted file mode 100644 index 042e5c70..00000000 --- a/kioslave/man/kmanpart.h +++ /dev/null @@ -1,56 +0,0 @@ -/* This file is part of the KDE project - Copyright (C) 2002 Alexander Neundorf - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - - -#ifndef KMANPART_H -#define KMANPART_H - -class QByteArray; - -#include -#include -#include -#include -#include - -/** - * Man Page Viewer - * This is needed so that we can open local files using the man: protocol transparently. - * Testcase: click on a man page file (e.g. makekdewidgets.1) in konqueror. - */ -class KManPart : public KHTMLPart -{ - Q_OBJECT - public: - KManPart( QWidget * parent, QObject*, const QVariantList& ); - KParts::BrowserExtension * extension() {return m_extension;} - - public Q_SLOTS: - virtual bool openUrl( const KUrl &url ); - protected Q_SLOTS: - void readData(KIO::Job * , const QByteArray & data); - void jobDone( KJob *); - protected: - virtual bool openFile(); - KParts::BrowserExtension * m_extension; - KIO::TransferJob *m_job; -}; - -#endif - diff --git a/kioslave/man/man.protocol b/kioslave/man/man.protocol deleted file mode 100644 index cd03f9fa..00000000 --- a/kioslave/man/man.protocol +++ /dev/null @@ -1,13 +0,0 @@ -[Protocol] -exec=kio_man -protocol=man -input=none -output=filesystem -reading=true -listing=Name -defaultMimetype=text/html -determineMimetypeFromExtension=false -X-DocPath=kioslave/man/index.html -maxInstances=10 -Icon=help-contents -Class=:local diff --git a/kioslave/man/man2html.cpp b/kioslave/man/man2html.cpp deleted file mode 100644 index 9045ece8..00000000 --- a/kioslave/man/man2html.cpp +++ /dev/null @@ -1,6141 +0,0 @@ -/* - This file is part of the KDE libraries - - Copyright (C) 2000 Stephan Kulow - Copyright (C) 2005 Nicolas GOUTTE - Copyright (C) 2011 Martin Koller - - ... and others (see SVN history) -*/ - -// Start of verbatim comment - -/* -** This program was written by Richard Verhoeven (NL:5482ZX35) -** at the Eindhoven University of Technology. Email: rcb5@win.tue.nl -** -** Permission is granted to distribute, modify and use this program as long -** as this comment is not removed or changed. -*/ - -// End of verbatim comment - -/* - * man2html-linux-1.0/1.1 - * This version modified for Redhat/Caldera linux - March 1996. - * Michael Hamilton . - * - * man2html-linux-1.2 - * Added support for BSD mandoc pages - I didn't have any documentation - * on the mandoc macros, so I may have missed some. - * Michael Hamilton . - * - * vh-man2html-1.3 - * Renamed to avoid confusion (V for Verhoeven, H for Hamilton). - * - * vh-man2html-1.4 - * Now uses /etc/man.config - * Added support for compressed pages. - * Added "length-safe" string operations for client input parameters. - * More secure, -M secured, and client input string lengths checked. - * - */ - -/* -** If you want to use this program for your WWW server, adjust the line -** which defines the CGIBASE or compile it with the -DCGIBASE='"..."' option. -** -** You have to adjust the built-in manpath to your local system. Note that -** every directory should start and end with the '/' and that the first -** directory should be "/" to allow a full path as an argument. -** -** The program first check if PATH_INFO contains some information. -** If it does (t.i. man2html/some/thing is used), the program will look -** for a manpage called PATH_INFO in the manpath. -** -** Otherwise the manpath is searched for the specified command line argument, -** where the following options can be used: -** -** name name of manpage (csh, printf, xv, troff) -** section the section (1 2 3 4 5 6 7 8 9 n l 1v ...) -** -M path an extra directory to look for manpages (replaces "/") -** -** If man2html finds multiple manpages that satisfy the options, an index -** is displayed and the user can make a choice. If only one page is -** found, that page will be displayed. -** -** man2html will add links to the converted manpages. The function add_links -** is used for that. At the moment it will add links as follows, where -** indicates what should match to start with: -** ^^^ -** Recognition Item Link -** ---------------------------------------------------------- -** name(*) Manpage ../man?/name.* -** ^ -** name@hostname Email address mailto:name@hostname -** ^ -** method://string URL method://string -** ^^^ -** www.host.name WWW server http://www.host.name -** ^^^^ -** ftp.host.name FTP server ftp://ftp.host.name -** ^^^^ -** Include file file:/usr/include/file.h -** ^^^ -** -** Since man2html does not check if manpages, hosts or email addresses exist, -** some links might not work. For manpages, some extra checks are performed -** to make sure not every () pair creates a link. Also out of date pages -** might point to incorrect places. -** -** The program will not allow users to get system specific files, such as -** /etc/passwd. It will check that "man" is part of the specified file and -** that "/../" isn't. Even if someone manages to get such file, man2html will -** handle it like a manpage and will usually not produce any output (or crash). -** -** If you find any bugs when normal manpages are converted, please report -** them to me (rcb5@win.tue.nl) after you have checked that man(1) can handle -** the manpage correct. -** -** Known bugs and missing features: -** -** * Equations are not converted at all. -** * Tables are converted but some features are not possible in html. -** * The tabbing environment is converted by counting characters and adding -** spaces. This might go wrong (outside
)
-**  * Some manpages rely on the fact that troff/nroff is used to convert
-**    them and use features which are not descripted in the man manpages.
-**    (definitions, calculations, conditionals, requests). I can't guarantee
-**    that all these features work on all manpages. (I didn't have the
-**    time to look through all the available manpages.)
-*/
-
-#include "man2html.h"
-#include "request_hash.h"
-
-#include 
-
-#include 
-
-#include 
-#include 
-
-#include 
-
-#include 
-#include 
-#include 
-#include 
-#include 
-
-#ifdef SIMPLE_MAN2HTML
-# include 
-# include 
-# include 
-# include 
-# include 
-# define kDebug(x) QDebug(QtDebugMsg)
-# define kWarning(x) QDebug(QtWarningMsg) << "WARNING "
-# define BYTEARRAY(x) x.constData()
-#else
-# include 
-# include 
-# include 
-# include 
-# include 
-# include 
-# define BYTEARRAY(x) x
-#endif
-
-#define NULL_TERMINATED(n) ((n) + 1)
-
-#define HUGE_STR_MAX  10000
-#define LARGE_STR_MAX 2000
-#define MED_STR_MAX   500
-#define SMALL_STR_MAX 100
-#define TINY_STR_MAX  10
-
-#define DOCTYPE "\n"
-
-/* mdoc(7) Bl/El lists to HTML list types */
-#define BL_DESC_LIST   1
-#define BL_BULLET_LIST 2
-#define BL_ENUM_LIST   4
-
-/* mdoc(7) Bd/Ed example(?) blocks */
-#define BD_LITERAL  1
-#define BD_INDENT   2
-
-static int s_nroff = 1; // NROFF mode by default
-
-static QByteArray mandoc_name;  // Nm can store the first used name
-
-static int mandoc_name_count = 0; /* Don't break on the first Nm */
-
-static char *strlimitcpy(char *to, char *from, int n, int limit)
-{                               /* Assumes space for limit plus a null */
-  const int len = n > limit ? limit : n;
-  qstrncpy(to, from, len + 1);
-  to[len] = '\0';
-  return to;
-}
-
-/* below this you should not change anything unless you know a lot
-** about this program or about troff.
-*/
-
-
-/// Structure for character definitions
-struct CSTRDEF
-{
-  int nr, slen;
-  const char *st;
-};
-
-
-
-const char NEWLINE[2] = "\n";
-
-/**
- * Class for defining strings and macros
- */
-class StringDefinition
-{
-  public:
-    StringDefinition(void) : m_length(0) {}
-    StringDefinition(int len, const char* cstr) : m_length(len), m_output(cstr) {}
-  public:
-    int m_length; ///< Length of output text
-    QByteArray m_output; ///< Defined string
-};
-
-/**
- * Class for defining number registers
- * \note Not for internal read-only registers
- */
-class NumberDefinition
-{
-  public:
-    NumberDefinition(void) : m_value(0), m_increment(0) {}
-    NumberDefinition(int value) : m_value(value), m_increment(0) {}
-    NumberDefinition(int value, int incr) : m_value(value), m_increment(incr) {}
-  public:
-    int m_value; ///< value of number register
-    int m_increment; ///< Increment of number register
-    // ### TODO: display form (.af)
-};
-
-/**
- * Map of character definitions
- */
-static QMap s_characterDefinitionMap;
-
-/**
- * Map of string variable and macro definitions
- * \note String variables and macros are the same thing!
- */
-static QMap s_stringDefinitionMap;
-
-/**
- * Map of number registers
- * \note Intern number registers (starting with a dot are not handled here)
- */
-static QMap s_numberDefinitionMap;
-
-static void fill_old_character_definitions(void);
-
-/**
- * Initialize character variables
- */
-static void InitCharacterDefinitions(void)
-{
-  fill_old_character_definitions();
-  // ### HACK: as we are converting to HTML too early, define characters with HTML references
-  s_characterDefinitionMap.insert("<-", StringDefinition(1, "←"));     // <-
-  s_characterDefinitionMap.insert("->", StringDefinition(1, "→"));     // ->
-  s_characterDefinitionMap.insert("<>", StringDefinition(1, "↔"));     // <>
-  s_characterDefinitionMap.insert("<=", StringDefinition(1, "≤"));     // <=
-  s_characterDefinitionMap.insert(">=", StringDefinition(1, "≥"));     // >=
-  // End HACK
-}
-
-/**
- * Initialize string variables
- */
-static void InitStringDefinitions(void)
-{
-  // mdoc-only, see mdoc.samples(7)
-  s_stringDefinitionMap.insert("<=", StringDefinition(1, "≤"));
-  s_stringDefinitionMap.insert(">=", StringDefinition(1, "≥"));
-  s_stringDefinitionMap.insert("Rq", StringDefinition(1, "”"));
-  s_stringDefinitionMap.insert("Lq", StringDefinition(1, "“"));
-  s_stringDefinitionMap.insert("ua", StringDefinition(1, "&circ"));     // Note this is different from \(ua
-  s_stringDefinitionMap.insert("aa", StringDefinition(1, "´"));
-  s_stringDefinitionMap.insert("ga", StringDefinition(1, "`"));
-  s_stringDefinitionMap.insert("q", StringDefinition(1, """));
-  s_stringDefinitionMap.insert("Pi", StringDefinition(1, "π"));
-  s_stringDefinitionMap.insert("Ne", StringDefinition(1, "≠"));
-  s_stringDefinitionMap.insert("Le", StringDefinition(1, "≤"));
-  s_stringDefinitionMap.insert("Ge", StringDefinition(1, "≥"));
-  s_stringDefinitionMap.insert("Lt", StringDefinition(1, "<"));
-  s_stringDefinitionMap.insert("Gt", StringDefinition(1, ">"));
-  s_stringDefinitionMap.insert("Pm", StringDefinition(1, "±"));
-  s_stringDefinitionMap.insert("If", StringDefinition(1, "∞"));
-  s_stringDefinitionMap.insert("Na", StringDefinition(3, "NaN"));
-  s_stringDefinitionMap.insert("Ba", StringDefinition(1, "|"));
-  // end mdoc-only
-  // man(7)
-  s_stringDefinitionMap.insert("Tm", StringDefinition(1, "™"));     // \*(TM
-  s_stringDefinitionMap.insert("R", StringDefinition(1, "®"));     // \*R
-  s_stringDefinitionMap.insert("lq", StringDefinition(1, "“"));     // Left angled double quote
-  s_stringDefinitionMap.insert("rq", StringDefinition(1, "”"));     // Right angled double quote
-  // end man(7)
-  // Missing characters from man(7):
-  // \*S "Change to default font size"
-#ifndef SIMPLE_MAN2HTML
-  // Special KDE KIO man:
-  const QByteArray kdeversion(KDE_VERSION_STRING);
-  s_stringDefinitionMap.insert(".KDE_VERSION_STRING", StringDefinition(kdeversion.length(), kdeversion));
-#endif
-}
-
-/**
- * Initialize number registers
- * \note Internal read-only registers are not handled here
- */
-static void InitNumberDefinitions(void)
-{
-  // As the date number registers are more for end-users, better choose local time.
-  // Groff seems to support Gregorian dates only
-  QDate today(QDate::currentDate());
-  s_numberDefinitionMap.insert("year", today.year());   // Y2K-correct year
-  s_numberDefinitionMap.insert("yr", today.year() - 1900);   // Y2K-incorrect year
-  s_numberDefinitionMap.insert("mo", today.month());
-  s_numberDefinitionMap.insert("dy", today.day());
-  s_numberDefinitionMap.insert("dw", today.dayOfWeek());
-}
-
-
-#define V(A,B) ((A)*256+(B))
-
-//used in expand_char, e.g. for "\(bu"
-// see groff_char(7) for list
-static const CSTRDEF standardchar[] =
-{
-  { V('*', '*'), 1, "*" },
-  { V('*', 'A'), 1, "Α" },
-  { V('*', 'B'), 1, "Β" },
-  { V('*', 'C'), 1, "Ξ" },
-  { V('*', 'D'), 1, "Δ" },
-  { V('*', 'E'), 1, "Ε" },
-  { V('*', 'F'), 1, "Φ" },
-  { V('*', 'G'), 1, "Γ" },
-  { V('*', 'H'), 1, "Θ" },
-  { V('*', 'I'), 1, "Ι" },
-  { V('*', 'K'), 1, "Κ" },
-  { V('*', 'L'), 1, "Λ" },
-  { V('*', 'M'), 1, "&Mu:" },
-  { V('*', 'N'), 1, "Ν" },
-  { V('*', 'O'), 1, "Ο" },
-  { V('*', 'P'), 1, "Π" },
-  { V('*', 'Q'), 1, "Ψ" },
-  { V('*', 'R'), 1, "Ρ" },
-  { V('*', 'S'), 1, "Σ" },
-  { V('*', 'T'), 1, "Τ" },
-  { V('*', 'U'), 1, "Υ" },
-  { V('*', 'W'), 1, "Ω" },
-  { V('*', 'X'), 1, "Χ" },
-  { V('*', 'Y'), 1, "Η" },
-  { V('*', 'Z'), 1, "Ζ" },
-  { V('*', 'a'), 1, "α"},
-  { V('*', 'b'), 1, "β"},
-  { V('*', 'c'), 1, "ξ"},
-  { V('*', 'd'), 1, "δ"},
-  { V('*', 'e'), 1, "ε"},
-  { V('*', 'f'), 1, "φ"},
-  { V('*', 'g'), 1, "γ"},
-  { V('*', 'h'), 1, "θ"},
-  { V('*', 'i'), 1, "ι"},
-  { V('*', 'k'), 1, "κ"},
-  { V('*', 'l'), 1, "λ"},
-  { V('*', 'm'), 1, "μ" },
-  { V('*', 'n'), 1, "ν"},
-  { V('*', 'o'), 1, "ο"},
-  { V('*', 'p'), 1, "π"},
-  { V('*', 'q'), 1, "ψ"},
-  { V('*', 'r'), 1, "ρ"},
-  { V('*', 's'), 1, "σ"},
-  { V('*', 't'), 1, "τ"},
-  { V('*', 'u'), 1, "υ"},
-  { V('*', 'w'), 1, "ω"},
-  { V('*', 'x'), 1, "χ"},
-  { V('*', 'y'), 1, "η"},
-  { V('*', 'z'), 1, "ζ"},
-  { V('+', '-'), 1, "±" }, // not in groff_char(7)
-  { V('+', 'f'), 1, "φ"}, // phi1, we use the standard phi
-  { V('+', 'h'), 1, "θ"}, // theta1, we use the standard theta
-  { V('+', 'p'), 1, "ω"}, // omega1, we use the standard omega
-  { V('1', '2'), 1, "½" },
-  { V('1', '4'), 1, "¼" },
-  { V('3', '4'), 1, "¾" },
-  { V('F', 'i'), 1, "ffi" }, // ffi ligature
-  { V('F', 'l'), 1, "ffl" }, // ffl ligature
-  { V('a', 'p'), 1, "~" },
-  { V('b', 'r'), 1, "|" },
-  { V('b', 'u'), 1, "•" },
-  { V('b', 'v'), 1, "|" },
-  { V('c', 'i'), 1, "○" }, // circle ### TODO verify
-  { V('c', 'o'), 1, "©" },
-  { V('c', 't'), 1, "¢" },
-  { V('d', 'e'), 1, "°" },
-  { V('d', 'g'), 1, "†" },
-  { V('d', 'i'), 1, "÷" },
-  { V('e', 'm'), 1, "—" },
-  { V('e', 'n'), 1, "–"},
-  { V('e', 'q'), 1, "=" },
-  { V('e', 's'), 1, "∅" },
-  { V('f', 'f'), 1, "�xFB00;" }, // ff ligature
-  { V('f', 'i'), 1, "�xFB01;" }, // fi ligature
-  { V('f', 'l'), 1, "�xFB02;" }, // fl ligature
-  { V('f', 'm'), 1, "′" },
-  { V('g', 'a'), 1, "`" },
-  { V('h', 'y'), 1, "-" },
-  { V('l', 'c'), 2, "|¯" }, // ### TODO: not in groff_char(7)
-  { V('l', 'f'), 2, "|_" }, // ### TODO: not in groff_char(7)
-  { V('l', 'k'), 1, "{" }, // ### TODO: not in groff_char(7)
-  { V('m', 'i'), 1, "-" }, // ### TODO: not in groff_char(7)
-  { V('m', 'u'), 1, "×" },
-  { V('n', 'o'), 1, "¬" },
-  { V('o', 'r'), 1, "|" },
-  { V('p', 'l'), 1, "+" },
-  { V('r', 'c'), 2, "¯|" }, // ### TODO: not in groff_char(7)
-  { V('r', 'f'), 2, "_|" }, // ### TODO: not in groff_char(7)
-  { V('r', 'g'), 1, "®" },
-  { V('r', 'k'), 1, "}" }, // ### TODO: not in groff_char(7)
-  { V('r', 'n'), 1, "‾" },
-  { V('r', 'u'), 1, "_" },
-  { V('s', 'c'), 1, "§" },
-  { V('s', 'l'), 1, "/" },
-  { V('s', 'q'), 2, "□" }, // WHITE SQUARE
-  { V('t', 's'), 1, "ς" }, // FINAL SIGMA
-  { V('u', 'l'), 1, "_" },
-  { V('-', 'D'), 1, "Ð" },
-  { V('S', 'd'), 1, "ð" },
-  { V('T', 'P'), 1, "Þ" },
-  { V('T', 'p'), 1, "þ" },
-  { V('A', 'E'), 1, "Æ" },
-  { V('a', 'e'), 1, "æ" },
-  { V('O', 'E'), 1, "Œ" },
-  { V('o', 'e'), 1, "œ" },
-  { V('s', 's'), 1, "ß" },
-  { V('\'', 'A'), 1, "Á" },
-  { V('\'', 'E'), 1, "É" },
-  { V('\'', 'I'), 1, "Í" },
-  { V('\'', 'O'), 1, "Ó" },
-  { V('\'', 'U'), 1, "Ú" },
-  { V('\'', 'Y'), 1, "Ý" },
-  { V('\'', 'a'), 1, "á" },
-  { V('\'', 'e'), 1, "é" },
-  { V('\'', 'i'), 1, "í" },
-  { V('\'', 'o'), 1, "ó" },
-  { V('\'', 'u'), 1, "ú" },
-  { V('\'', 'y'), 1, "ý" },
-  { V(':', 'A'), 1, "Ä" },
-  { V(':', 'E'), 1, "Ë" },
-  { V(':', 'I'), 1, "Ï" },
-  { V(':', 'O'), 1, "Ö" },
-  { V(':', 'U'), 1, "Ü" },
-  { V(':', 'a'), 1, "ä" },
-  { V(':', 'e'), 1, "ë" },
-  { V(':', 'i'), 1, "ï" },
-  { V(':', 'o'), 1, "ö" },
-  { V(':', 'u'), 1, "ü" },
-  { V(':', 'y'), 1, "ÿ" },
-  { V('^', 'A'), 1, "Â" },
-  { V('^', 'E'), 1, "Ê" },
-  { V('^', 'I'), 1, "Î" },
-  { V('^', 'O'), 1, "Ô" },
-  { V('^', 'U'), 1, "Û" },
-  { V('^', 'a'), 1, "â" },
-  { V('^', 'e'), 1, "ê" },
-  { V('^', 'i'), 1, "î" },
-  { V('^', 'o'), 1, "ô" },
-  { V('^', 'u'), 1, "û" },
-  { V('`', 'A'), 1, "À" },
-  { V('`', 'E'), 1, "È" },
-  { V('`', 'I'), 1, "Ì" },
-  { V('`', 'O'), 1, "Ò" },
-  { V('`', 'U'), 1, "Ù" },
-  { V('`', 'a'), 1, "à" },
-  { V('`', 'e'), 1, "è" },
-  { V('`', 'i'), 1, "ì" },
-  { V('`', 'o'), 1, "ò" },
-  { V('`', 'u'), 1, "ù" },
-  { V('~', 'A'), 1, "Ã" },
-  { V('~', 'N'), 1, "Ñ" },
-  { V('~', 'O'), 1, "Õ" },
-  { V('~', 'a'), 1, "ã" },
-  { V('~', 'n'), 1, "&ntidle;" },
-  { V('~', 'o'), 1, "&otidle;" },
-  { V(',', 'C'), 1, "Ç" },
-  { V(',', 'c'), 1, "ç" },
-  { V('/', 'L'), 1, "Ł" },
-  { V('/', 'l'), 1, "ł" },
-  { V('/', 'O'), 1, "Ø" },
-  { V('/', 'o'), 1, "ø" },
-  { V('o', 'A'), 1, "Å" },
-  { V('o', 'a'), 1, "å" },
-  { V('a', '"'), 1, "\"" },
-  { V('a', '-'), 1, "¯" },
-  { V('a', '.'), 1, "." },
-  { V('a', '^'), 1, "ˆ" },
-  { V('a', 'a'), 1, "´" },
-  { V('a', 'b'), 1, "`" },
-  { V('a', 'c'), 1, "¸" },
-  { V('a', 'd'), 1, "¨" },
-  { V('a', 'h'), 1, "˂" }, // caron
-  { V('a', 'o'), 1, "˚" }, // ring
-  { V('a', '~'), 1, "˜" },
-  { V('h', 'o'), 1, "˛" }, // ogonek
-  { V('.', 'i'), 1, "ı" }, // dot less i
-  { V('C', 's'), 1, "¤" }, //krazy:exclude=spelling
-  { V('D', 'o'), 1, "$" },
-  { V('P', 'o'), 1, "£" },
-  { V('Y', 'e'), 1, "¥" },
-  { V('F', 'n'), 1, "ƒ" },
-  { V('F', 'o'), 1, "«" },
-  { V('F', 'c'), 1, "»" },
-  { V('f', 'o'), 1, "‹" }, // single left guillemet
-  { V('f', 'c'), 1, "›" }, // single right guillemet
-  { V('r', '!'), 1, "&iecl;" },
-  { V('r', '?'), 1, "¿" },
-  { V('O', 'f'), 1, "ª" },
-  { V('O', 'm'), 1, "º" },
-  { V('p', 'c'), 1, "·" },
-  { V('S', '1'), 1, "¹" },
-  { V('S', '2'), 1, "²" },
-  { V('S', '3'), 1, "³" },
-  { V('<', '-'), 1, "←" },
-  { V('-', '>'), 1, "→" },
-  { V('<', '>'), 1, "↔" },
-  { V('d', 'a'), 1, "↓" },
-  { V('u', 'a'), 1, "↑" },
-  { V('l', 'A'), 1, "⇐" },
-  { V('r', 'A'), 1, "⇒" },
-  { V('h', 'A'), 1, "⇔" },
-  { V('d', 'A'), 1, "⇓" },
-  { V('u', 'A'), 1, "⇑" },
-  { V('b', 'a'), 1, "|" },
-  { V('b', 'b'), 1, "¦" },
-  { V('t', 'm'), 1, "™" },
-  { V('d', 'd'), 1, "‡" },
-  { V('p', 's'), 1, "¶" },
-  { V('%', '0'), 1, "‰" },
-  { V('f', '/'), 1, "⁄" }, // Fraction slash
-  { V('s', 'd'), 1, "″" },
-  { V('h', 'a'), 1, "^" },
-  { V('t', 'i'), 1, "&tidle;" },
-  { V('l', 'B'), 1, "[" },
-  { V('r', 'B'), 1, "]" },
-  { V('l', 'C'), 1, "{" },
-  { V('r', 'C'), 1, "}" },
-  { V('l', 'a'), 1, "<" },
-  { V('r', 'a'), 1, ">" },
-  { V('l', 'h'), 1, "≤" },
-  { V('r', 'h'), 1, "≥" },
-  { V('B', 'q'), 1, "„" },
-  { V('b', 'q'), 1, "‚" },
-  { V('l', 'q'), 1, "“" },
-  { V('r', 'q'), 1, "”" },
-  { V('o', 'q'), 1, "‘" },
-  { V('c', 'q'), 1, "’" },
-  { V('a', 'q'), 1, "'" },
-  { V('d', 'q'), 1, "\"" },
-  { V('a', 't'), 1, "@" },
-  { V('s', 'h'), 1, "#" },
-  { V('r', 's'), 1, "\\" },
-  { V('t', 'f'), 1, "∴" },
-  { V('~', '~'), 1, "≅" },
-  { V('~', '='), 1, "≈" },
-  { V('!', '='), 1, "≠" },
-  { V('<', '='), 1, "≤" },
-  { V('=', '='), 1, "≡" },
-  { V('=', '~'), 1, "≅" }, // ### TODO: verify
-  { V('>', '='), 1, "≥" },
-  { V('A', 'N'), 1, "∧" },
-  { V('O', 'R'), 1, "∨" },
-  { V('t', 'e'), 1, "∃" },
-  { V('f', 'a'), 1, "∀" },
-  { V('A', 'h'), 1, "ℵ" },
-  { V('I', 'm'), 1, "ℑ" },
-  { V('R', 'e'), 1, "ℜ" },
-  { V('i', 'f'), 1, "∞" },
-  { V('m', 'd'), 1, "⋅" },
-  { V('m', 'o'), 1, "∆" }, // element ### TODO verify
-  { V('n', 'm'), 1, "∉" },
-  { V('p', 't'), 1, "∝" },
-  { V('p', 'p'), 1, "⊥" },
-  { V('s', 'b'), 1, "⊂" },
-  { V('s', 'p'), 1, "⊃" },
-  { V('i', 'b'), 1, "⊆" },
-  { V('i', 'p'), 1, "⊇" },
-  { V('i', 's'), 1, "∫" },
-  { V('s', 'r'), 1, "√" },
-  { V('p', 'd'), 1, "∂" },
-  { V('c', '*'), 1, "⊗" },
-  { V('c', '+'), 1, "⊕" },
-  { V('c', 'a'), 1, "∩" },
-  { V('c', 'u'), 1, "∪" },
-  { V('g', 'r'), 1, "V" }, // gradient ### TODO Where in Unicode?
-  { V('C', 'R'), 1, "↵" },
-  { V('s', 't'), 2, "-)" }, // "such that" ### TODO Where in Unicode?
-  { V('/', '_'), 1, "∠" },
-  { V('w', 'p'), 1, "℘" },
-  { V('l', 'z'), 1, "◊" },
-  { V('a', 'n'), 1, "-" }, // "horizontal arrow extension"  ### TODO Where in Unicode?
-};
-
-/* default: print code */
-
-
-/* static char eqndelimopen=0, eqndelimclose=0; */
-static char escapesym = '\\', nobreaksym = '\'', controlsym = '.', fieldsym = 0, padsym = 0;
-
-static char *buffer = NULL;
-static int buffpos = 0, buffmax = 0;
-static bool scaninbuff = false;
-static int itemdepth = 0;
-static int section = 0;
-static int dl_set[20] = { 0 };
-static QStack listItemStack;
-static bool still_dd = 0;
-static int tabstops[20] = { 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96 };
-static int maxtstop = 12;
-static int curpos = 0;
-static bool break_the_while_loop = false;
-
-static char *scan_troff(char *c, bool san, char **result);
-static char *scan_troff_mandoc(char *c, bool san, char **result);
-static int getNumberRegisterValue(const QByteArray &name, int sign = 0);
-
-static QList s_argumentList;
-
-static QByteArray cssPath, cssFile;
-
-static QByteArray s_dollarZero; // Value of $0
-
-void setResourcePath(const QByteArray& _cssPath)
-{
-  cssPath = _cssPath;
-}
-
-void setCssFile(const QByteArray& _cssFile)
-{
-  cssFile = _cssFile;
-}
-
-static void fill_old_character_definitions(void)
-{
-  for (size_t i = 0; i < sizeof(standardchar) / sizeof(CSTRDEF); i++)
-  {
-    const int nr = standardchar[i].nr;
-    const char temp[3] = { char(nr / 256), char(nr % 256), 0 };
-    QByteArray name(temp);
-    s_characterDefinitionMap.insert(name, StringDefinition(standardchar[i].slen, standardchar[i].st));
-  }
-}
-
-static char outbuffer[NULL_TERMINATED(HUGE_STR_MAX)];
-static int no_newline_output = 0;
-static int newline_for_fun = 0;
-static bool output_possible = false;
-
-static const char * const includedirs[] =
-{
-  "/usr/include",
-  "/usr/include/sys",
-  "/usr/local/include",
-  "/opt/local/include",
-  "/usr/ccs",
-  "/usr/X11R6/include",
-  "/usr/openwin/include",
-  "/usr/include/g++",
-  0
-};
-
-static bool ignore_links = false;
-
-static void add_links(char *c)
-{
-  /*
-  ** Add the links to the output.
-  ** At the moment the following are recognized:
-  **
-  ** name(*)                 -> ../man?/name.*
-  ** method://string         -> method://string
-  ** www.host.name           -> http://www.host.name
-  ** ftp.host.name           -> ftp://ftp.host.name
-  ** name@host               -> mailto:name@host
-  **                 -> file:/usr/include/name.h   (guess)
-  **
-  ** Other possible links to add in the future:
-  **
-  ** /dir/dir/file  -> file:/dir/dir/file
-  */
-
-  if (ignore_links)
-  {
-    output_real(c);
-    return;
-  }
-
-  int i, j, nr;
-  char *f, *g, *h;
-  const int numtests = 6; // Nmber of tests
-  char *idtest[numtests]; // url, mailto, www, ftp, manpage, C header file
-  bool ok;
-  /* search for (section) */
-  nr = 0;
-  idtest[0] = strstr(c + 1, "://");
-  idtest[1] = strchr(c + 1, '@');
-  idtest[2] = strstr(c, "www.");
-  idtest[3] = strstr(c, "ftp.");
-  idtest[4] = strchr(c + 1, '(');
-  idtest[5] = strstr(c + 1, ".h>");
-  for (i = 0; i < numtests; ++i) nr += (idtest[i] != NULL);
-  while (nr)
-  {
-    j = -1;
-    for (i = 0; i < numtests; i++)
-      if (idtest[i] && (j < 0 || idtest[i] < idtest[j])) j = i;
-    switch (j)
-    {
-      case 5:   /*  */
-      {
-        f = idtest[5];
-        h = f + 2;
-        g = f;
-        while (g > c && g[-1] != ';') g--;
-        bool wrote_include = false;
-
-        if (g != c)
-        {
-          QByteArray dir;
-          QByteArray file(g, h - g);
-          file = file.trimmed();
-          for (int index = 0; includedirs[index]; index++)
-          {
-            QByteArray str(includedirs[index]);
-            str.append('/');
-            str.append(file);
-            if (!access(str.data(), R_OK))
-            {
-              dir = includedirs[index];
-              break;
-            }
-          }
-          if (!dir.isEmpty())
-          {
-
-            char t;
-            t = *g;
-            *g = 0;
-            output_real(c);
-            *g = t;
-            *h = 0;
-
-            QByteArray str;
-            str.append("");
-            str.append(file.data());
-            str.append(">");
-
-            output_real(str.data());
-            c = f + 6;
-            wrote_include = true;
-          }
-
-        }
-
-        if (!wrote_include)
-        {
-          f[5] = 0;
-          output_real(c);
-          f[5] = ';';
-          c = f + 5;
-        }
-      }
-      break;
-      case 4: /* manpage */
-        f = idtest[j];
-        /* check section */
-        g = strchr(f, ')');
-        // The character before f must be alphanumeric, the end of a HTML tag or the end of a  
-        if (g != NULL && f > c && (g - f) < 12 && (isalnum(f[-1]) || f[-1] == '>' || (f[-1] == ';')) &&
-            (isdigit(f[1]) || (f[1] == 'n')) && f[1] != '0' && ((g - f) <= 2 || isalpha(f[2])))
-        {
-          ok = true;
-          h = f + 2;
-          while (h < g)
-          {
-            if (!isalnum(*h++))
-            {
-              ok = false;
-              break;
-            }
-          }
-        }
-        else
-          ok = false;
-
-        h = f - 1;
-        if (ok)
-        {
-          // Skip  
-          kDebug(7107) << "BEFORE SECTION:" <<  *h;
-          if ((h > c + 5) && (! memcmp(h - 5, " ", 6)))
-          {
-            h -= 6;
-            kDebug(7107) << "Skip  ";
-          }
-          else if ( (h > (c + 6)) && (!memcmp(h - 6, " ", 7)) ) //    narrow space
-          {
-            h -= 7;
-          }
-          else if (*h == ';')
-          {
-            // Not a non-breaking space, so probably not ok
-            ok = false;
-          }
-        }
-
-        if (ok)
-        {
-          /* this might be a link */
-          /* skip html makeup */
-          while (h > c && *h == '>')
-          {
-            while (h != c && *h != '<') h--;
-            if (h != c) h--;
-          }
-          if (isalnum(*h))
-          {
-            char t, sec, *e;
-            QByteArray fstr(f);
-            e = h + 1;
-            sec = f[1];
-            const int index = fstr.indexOf(')', 2);
-            QByteArray subsec;
-            if (index != -1)
-              subsec = fstr.mid(2, index - 2);
-            else // No closing ')' found, take first character as subsection.
-              subsec = fstr.mid(2, 1);
-            while (h > c && (isalnum(h[-1]) || h[-1] == '_'
-                             || h[-1] == ':' || h[-1] == '-' || h[-1] == '.'))
-              h--;
-            t = *h;
-            *h = '\0';
-            output_real(c);
-            *h = t;
-            t = *e;
-            *e = '\0';
-            QByteArray str("";
-            str += h;
-            str += "";
-            output_real(str.data());
-            *e = t;
-            c = e;
-          }
-        }
-        *f = '\0';
-        output_real(c);
-        *f = '(';
-        idtest[4] = f - 1;
-        c = f;
-        break; /* manpage */
-      case 3: /* ftp */
-      case 2: /* www */
-        g = f = idtest[j];
-        while (*g && (isalnum(*g) || *g == '_' || *g == '-' || *g == '+' ||
-                      *g == '.' || *g == '/')) g++;
-        if (g[-1] == '.') g--;
-        if (g - f > 4)
-        {
-          char t;
-          t = *f;
-          *f = '\0';
-          output_real(c);
-          *f = t;
-          t = *g;
-          *g = '\0';
-          QByteArray str;
-          str.append("");
-          str.append(f);
-          str.append("");
-          output_real(str.data());
-          *g = t;
-          c = g;
-        }
-        else
-        {
-          f[3] = '\0';
-          output_real(c);
-          c = f + 3;
-          f[3] = '.';
-        }
-        break;
-      case 1: /* mailto */
-        g = f = idtest[1];
-        while (g > c && (isalnum(g[-1]) || g[-1] == '_' || g[-1] == '-' ||
-                         g[-1] == '+' || g[-1] == '.' || g[-1] == '%')) g--;
-        if (g - 7 >= c && g[-1] == ':')
-        {
-          // We have perhaps an email address starting with mailto:
-          if (!qstrncmp("mailto:", g - 7, 7))
-            g -= 7;
-        }
-        h = f + 1;
-        while (*h && (isalnum(*h) || *h == '_' || *h == '-' || *h == '+' ||
-                      *h == '.')) h++;
-        if (*h == '.') h--;
-        if (h - f > 4 && f - g > 1)
-        {
-          char t;
-          t = *g;
-          *g = '\0';
-          output_real(c);
-          *g = t;
-          t = *h;
-          *h = '\0';
-          QByteArray str;
-          str.append("");
-          str.append(g);
-          str.append("");
-          output_real(str.data());
-          *h = t;
-          c = h;
-        }
-        else
-        {
-          *f = '\0';
-          output_real(c);
-          *f = '@';
-          idtest[1] = c;
-          c = f;
-        }
-        break;
-      case 0: /* url */
-        g = f = idtest[0]; // ://foo...
-
-        // backup before :// to get protocol
-        while (g > c && isalpha(g[-1]) && islower(g[-1])) g--;
-        h = f + 3; // start past ://
-        // determine length of path and part of query it looks like...
-        while (*h && !isspace(*h) && *h != '<' && *h != '>' && *h != '"' &&
-               *h != '&') h++;
-        // if protocol length 3-6 characters and path has any length at all...
-        // more tests added because this code breaks stylesheet links that use
-        // the correct file:/// stuff.
-        if (f - g > 2 && f - g < 7 && h - f > 3 && (strstr(c, "http://") != NULL || strstr(c, "ftp://") != NULL))
-        {
-          char t;
-          t = *g;
-          *g = '\0';
-          output_real(c);
-          *g = t;
-          t = *h;
-          *h = '\0';
-          QByteArray str;
-          str.append("");
-          str.append(g);
-          str.append("");
-          output_real(str.data());
-          *h = t;
-          c = h;
-        }
-        else
-        {
-          f[1] = '\0';
-          output_real(c);
-          f[1] = '/';
-          c = f + 1;
-        }
-        break;
-      default:
-        break;
-    }
-    nr = 0;
-    if (idtest[0] && idtest[0] <= c) idtest[0] = strstr(c + 1, "://");
-    if (idtest[1] && idtest[1] <= c) idtest[1] = strchr(c + 1, '@');
-    if (idtest[2] && idtest[2] < c) idtest[2] = strstr(c, "www.");
-    if (idtest[3] && idtest[3] < c) idtest[3] = strstr(c, "ftp.");
-    if (idtest[4] && idtest[4] <= c) idtest[4] = strchr(c + 1, '(');
-    if (idtest[5] && idtest[5] <= c) idtest[5] = strstr(c + 1, ".h>");
-    for (i = 0; i < numtests; i++) nr += (idtest[i] != NULL);
-  }
-  output_real(c);
-}
-
-static QByteArray current_font;
-static int current_size = 0;
-static int fillout = 1;
-
-static void out_html(const char *c)
-{
-  if (!c) return;
-
-  // Added, probably due to the const?
-  char *c2 = qstrdup(c);
-  char *c3 = c2;
-
-  static int obp = 0;
-
-  if (no_newline_output)
-  {
-    int i = 0;
-    no_newline_output = 1;
-    while (c2[i])
-    {
-      if (!no_newline_output) c2[i-1] = c2[i];
-      if (c2[i] == '\n') no_newline_output = 0;
-      i++;
-    }
-    if (!no_newline_output) c2[i-1] = 0;
-  }
-  if (scaninbuff)
-  {
-    while (*c2)
-    {
-      if (buffpos >= buffmax)
-      {
-        char *h = new char[buffmax*2];
-
-        memcpy(h, buffer, buffmax);
-        delete [] buffer;
-        buffer = h;
-        buffmax = buffmax * 2;
-      }
-      buffer[buffpos++] = *c2++;
-    }
-  }
-  else
-    if (output_possible)
-    {
-      while (*c2)
-      {
-        outbuffer[obp++] = *c2;
-        if (*c2 == '\n' || obp >= HUGE_STR_MAX)
-        {
-          outbuffer[obp] = '\0';
-          add_links(outbuffer);
-          obp = 0;
-        }
-        c2++;
-      }
-    }
-  delete [] c3;
-}
-
-//---------------------------------------------------------------------
-
-void checkListStack()  // see if we need to end a previously begun list item
-{
-  if ( !listItemStack.isEmpty() && (listItemStack.size() == itemdepth) )
-  {
-    out_html("");
-  }
-}
-
-//---------------------------------------------------------------------
-
-static QByteArray set_font(const QByteArray& name)
-{
-  // Every font but R (Regular) creates  elements
-  QByteArray markup;
-  if ( (current_font != "R") && (current_font != "P") && !current_font.isEmpty() )
-    markup += "";
-  const uint len = name.length();
-  bool fontok = true;
-  if (len == 1)
-  {
-    const char lead = name[0];
-    switch (lead)
-    {
-      case 'P': // ### TODO: this seems to mean "precedent font"
-      case 'R':
-        break; // regular, do nothing
-      case 'I':
-        markup += "";
-        break;
-      case 'B':
-        markup += "";
-        break;
-      case 'L':
-        markup += "";
-        break; // ### What's L?
-      default:
-        fontok = false;
-    }
-  }
-  else if (len == 2)
-  {
-    if (name == "BI")
-      markup += "";
-    // Courier
-    else if (name == "CR")
-      markup += "";
-    else if (name == "CW")   // CW is used by pod2man(1) (part of perldoc(1))
-      markup += "";
-    else if (name == "CI")
-      markup += "";
-    else if (name == "CB")
-      markup += "";
-    // Times
-    else if (name == "TR")
-      markup += "";
-    else if (name == "TI")
-      markup += "";
-    else if (name == "TB")
-      markup += "";
-    // Helvetica
-    else if (name == "HR")
-      markup += "";
-    else if (name == "HI")
-      markup += "";
-    else if (name == "HB")
-      markup += "";
-    else
-      fontok = false;
-  }
-  else if (len == 3)
-  {
-    if (name == "CBI")
-      markup += "";
-    else if (name == "TBI")
-      markup += "";
-    else if (name == "HBI")
-      markup += "";
-    else
-      fontok = false;
-  }
-  else
-    fontok = false;
-
-  if (fontok)
-    current_font = name;
-  else
-    current_font = "R"; // Still nothing, then it is 'R' (Regular) // krazy:exclude=doublequote_chars
-  return markup;
-}
-
-//---------------------------------------------------------------------
-
-static QByteArray change_to_size(int nr)
-{
-  switch (nr)
-  {
-    case '0':
-    case '1':
-    case '2':
-    case '3':
-    case '4':
-    case '5':
-    case '6':
-    case '7':
-    case '8':
-    case '9':
-      nr = nr - '0';
-      break;
-    case '\0':
-      break;
-    default:
-      nr = current_size + nr;
-      if (nr > 9) nr = 9;
-      if (nr < -9) nr = -9;
-      break;
-  }
-  if (nr == current_size)
-    return "";
-  const QByteArray font(current_font);
-  QByteArray markup;
-  markup = set_font("R");
-  if (current_size)
-    markup += "";
-  current_size = nr;
-  if (nr)
-  {
-    int percent = 100 + nr*1;
-    markup += "";
-  }
-  markup += set_font(font);
-  return markup;
-}
-
-//---------------------------------------------------------------------
-
-/* static int asint=0; */
-static int intresult = 0;
-
-static bool skip_escape = false;
-static bool single_escape = false;
-
-static char *scan_escape_direct(char *c, QByteArray& cstr);
-
-/**
- * scan a named character
- * param c position
- */
-static QByteArray scan_named_character(char*& c)
-{
-  QByteArray name;
-  if (*c == '(')
-  {
-    // \*(ab  Name of two characters
-    if (c[1] == escapesym)
-    {
-      QByteArray cstr;
-      c = scan_escape_direct(c + 2, cstr);
-      // ### HACK: as we convert characters too early to HTML, we need to support more than 2 characters here and assume that all characters passed by the variable are to be used.
-      name = cstr;
-    }
-    else
-    {
-      name += c[1];
-      name += c[2];
-      c += 3;
-    }
-  }
-  else if (*c == '[')
-  {
-    // \*[long_name]  Long name
-    // Named character groff(7)
-    // We must find the ] to get a name
-    c++;
-    while (*c && *c != ']' && *c != '\n')
-    {
-      if (*c == escapesym)
-      {
-        QByteArray cstr;
-        c = scan_escape_direct(c + 1, cstr);
-        const int result = cstr.indexOf(']');
-        if (result == -1)
-          name += cstr;
-        else
-        {
-          // Note: we drop the characters after the ]
-          name += cstr.left(result);
-        }
-      }
-      else
-      {
-        name += *c;
-        c++;
-      }
-    }
-    if (!*c || *c == '\n')
-    {
-      kDebug(7107) << "Found linefeed! Could not parse character name: " << BYTEARRAY(name);
-      return "";
-    }
-    c++;
-  }
-  else if (*c == 'C' || c[1] == '\'')
-  {
-    // \C'name'
-    c += 2;
-    while (*c && *c != '\'' && *c != '\n')
-    {
-      if (*c == escapesym)
-      {
-        QByteArray cstr;
-        c = scan_escape_direct(c + 1, cstr);
-        const int result = cstr.indexOf('\'');
-        if (result == -1)
-          name += cstr;
-        else
-        {
-          // Note: we drop the characters after the ]
-          name += cstr.left(result);
-        }
-      }
-      else
-      {
-        name += *c;
-        c++;
-      }
-    }
-    if (!*c || *c == '\n')
-    {
-      kDebug(7107) << "Found linefeed! Could not parse (\\C mode) character name: " << BYTEARRAY(name);
-      return "";
-    }
-    c++;
-  }
-  // Note: characters with a one character length name do not exist, as they would collide with other escapes
-
-  // Now we have the name, let us find it between the string names
-  QMap::const_iterator it = s_characterDefinitionMap.constFind(name);
-  if (it == s_characterDefinitionMap.constEnd())
-  {
-    kDebug(7107) << "EXCEPTION: cannot find character with name: " << BYTEARRAY(name);
-    // No output, as an undefined string is empty by default
-    return "";
-  }
-  else
-  {
-    kDebug(7107) << "Character with name: \"" << BYTEARRAY(name) << "\" => " << BYTEARRAY((*it).m_output);
-    return (*it).m_output;
-  }
-}
-
-//---------------------------------------------------------------------
-
-static QByteArray scan_named_string(char*& c)
-{
-  QByteArray name;
-  if (*c == '(')
-  {
-    // \*(ab  Name of two characters
-    if (c[1] == escapesym)
-    {
-      QByteArray cstr;
-      c = scan_escape_direct(c + 2, cstr);
-      kDebug(7107) << "\\(" << BYTEARRAY(cstr);
-      // ### HACK: as we convert characters too early to HTML, we need to support more than 2 characters here and assume that all characters passed by the variable are to be used.
-      name = cstr;
-    }
-    else
-    {
-      name += c[1];
-      name += c[2];
-      c += 3;
-    }
-  }
-  else if (*c == '[')
-  {
-    // \*[long_name]  Long name
-    // Named character groff(7)
-    // We must find the ] to get a name
-    c++;
-    while (*c && *c != ']' && *c != '\n')
-    {
-      if (*c == escapesym)
-      {
-        QByteArray cstr;
-        c = scan_escape_direct(c + 1, cstr);
-        const int result = cstr.indexOf(']');
-        if (result == -1)
-          name += cstr;
-        else
-        {
-          // Note: we drop the characters after the ]
-          name += cstr.left(result);
-        }
-      }
-      else
-      {
-        name += *c;
-        c++;
-      }
-    }
-    if (!*c || *c == '\n')
-    {
-      kDebug(7107) << "Found linefeed! Could not parse string name: " << BYTEARRAY(name);
-      return "";
-    }
-    c++;
-  }
-  else
-  {
-    // \*a Name of one character
-    name += *c;
-    c++;
-  }
-  // Now we have the name, let us find it between the string names
-  QMap::const_iterator it = s_stringDefinitionMap.constFind(name);
-  if (it == s_stringDefinitionMap.constEnd())
-  {
-    // try a number register:
-    return QByteArray::number(getNumberRegisterValue(name));
-
-    //kDebug(7107) << "EXCEPTION: cannot find string with name: " << BYTEARRAY(name);
-    // No output, as an undefined string is empty by default
-    //return "";
-  }
-  else
-  {
-    kDebug(7107) << "String with name: '" << BYTEARRAY(name) << "' => >>>" << BYTEARRAY((*it).m_output) << "<<<";
-    return (*it).m_output;
-  }
-}
-
-//---------------------------------------------------------------------
-
-static QByteArray scan_dollar_parameter(char*& c)
-{
-  int argno = 0; // No dollar argument number yet!
-  if (*c == '0')
-  {
-    //kDebug(7107) << "$0";
-    c++;
-    return s_dollarZero;
-  }
-  else if (*c >= '1' && *c <= '9')
-  {
-    //kDebug(7107) << "$ direct";
-    argno = (*c - '0');
-    c++;
-  }
-  else if (*c == '(')
-  {
-    //kDebug(7107) << "$(";
-    if (c[1] && c[2] && c[1] >= '0' && c[1] <= '9' && c[2] >= '0' && c[2] <= '9')
-    {
-      argno = (c[1] - '0') * 10 + (c[2] - '0');
-      c += 3;
-    }
-    else
-    {
-      if (!c[1])
-        c++;
-      else if (!c[2])
-        c += 2;
-      else
-        c += 3;
-      return "";
-    }
-  }
-  else if (*c == '[')
-  {
-    //kDebug(7107) << "$[";
-    argno = 0;
-    c++;
-    while (*c && *c >= '0' && *c <= '9' && *c != ']')
-    {
-      argno *= 10;
-      argno += (*c - '0');
-      c++;
-    }
-    if (*c != ']')
-    {
-      return "";
-    }
-    c++;
-  }
-  else if ((*c == '*') || (*c == '@'))
-  {
-    const bool quote = (*c == '@');
-    QList::const_iterator it = s_argumentList.constBegin();
-    QByteArray param;
-    bool space = false;
-    for (; it != s_argumentList.constEnd(); ++it)
-    {
-      if (space)
-        param += ' ';
-      if (quote)
-        param += '\"'; // Not as HTML, as it could be used by macros !
-      param += (*it);
-      if (quote)
-        param += '\"'; // Not as HTML, as it could be used by macros!
-      space = true;
-    }
-    c++;
-    return param;
-  }
-  else
-  {
-    kDebug(7107) << "EXCEPTION: unknown parameter $" << *c;
-    return "";
-  }
-  //kDebug(7107) << "ARG $" << argno;
-  if (!s_argumentList.isEmpty() && argno > 0)
-  {
-    //kDebug(7107) << "ARG $" << argno << " OK!";
-    argno--;
-    if (argno >= s_argumentList.size())
-    {
-      kDebug(7107) << "EXCEPTION: cannot find parameter $" << (argno + 1);
-      return "";
-    }
-
-    return s_argumentList[argno];
-  }
-  return "";
-}
-
-//---------------------------------------------------------------------
-/// return the value of read-only number registers
-
-static int read_only_number_register(const QByteArray& name)
-{
-  // Internal read-only variables
-  if (name == ".$")
-  {
-    kDebug(7107) << "\\n[.$] == " << s_argumentList.size();
-    return s_argumentList.size();
-  }
-  else if (name == ".g")
-    return 0; // We are not groff(1)
-  else if (name == ".s")
-    return current_size;
-#if 0
-  // ### TODO: map the fonts to a number
-  else if (name == ".f")
-    return current_font;
-#endif
-  else if (name == ".P")
-    return 0; // We are not printing
-  else if (name == ".A")
-    return s_nroff;
-#ifndef SIMPLE_MAN2HTML
-  // Special KDE KIO man:
-  else if (name == ".KDE_VERSION_MAJOR")
-    return KDE_VERSION_MAJOR;
-  else if (name == ".KDE_VERSION_MINOR")
-    return KDE_VERSION_MINOR;
-  else if (name == ".KDE_VERSION_RELEASE")
-    return KDE_VERSION_RELEASE;
-  else if (name == ".KDE_VERSION")
-    return KDE_VERSION;
-#endif
-  else if ( name == ".T" )
-    return 0;  // Set to 1 in nroff, if -T option used; always 0 in troff.
-
-  // ### TODO: groff defines many more read-only number registers
-  kDebug(7107) << "EXCEPTION: unknown read-only number register: " << BYTEARRAY(name);
-
-  return 0; // Undefined variable
-
-}
-
-//---------------------------------------------------------------------
-
-static int getNumberRegisterValue(const QByteArray &name, int sign)
-{
-  if (name[0] == '.')
-  {
-    return read_only_number_register(name);
-  }
-  else
-  {
-    QMap< QByteArray, NumberDefinition >::iterator it = s_numberDefinitionMap.find(name);
-    if (it == s_numberDefinitionMap.end())
-    {
-      return 0; // Undefined variable
-    }
-    else
-    {
-      (*it).m_value += sign * (*it).m_increment;
-      return (*it).m_value;
-    }
-  }
-}
-
-//---------------------------------------------------------------------
-/// get the value of a number register and auto-increment if asked
-
-static int scan_number_register(char*& c)
-{
-  int sign = 0; // Sign for auto-increment (if any)
-  switch (*c)
-  {
-    case '+':
-      sign = 1;
-      c++;
-      break;
-    case '-':
-      sign = -1;
-      c++;
-      break;
-    default:
-      break;
-  }
-  QByteArray name;
-  if (*c == '[')
-  {
-    c++;
-    if (*c == '+')
-    {
-      sign = 1;
-      c++;
-    }
-    else if (*c == '-')
-    {
-      sign = -1;
-      c++;
-    }
-    while (*c && *c != ']' && *c != '\n')
-    {
-      // ### TODO: a \*[string] could be inside and should be processed
-      name += *c;
-      c++;
-    }
-    if (!*c || *c == '\n')
-    {
-      kDebug(7107) << "Found linefeed! Could not parse number register name: " << BYTEARRAY(name);
-      return 0;
-    }
-    c++;
-  }
-  else if (*c == '(')
-  {
-    c++;
-    if (*c == '+')
-    {
-      sign = 1;
-      c++;
-    }
-    else if (*c == '-')
-    {
-      sign = -1;
-      c++;
-    }
-    name += c[0];
-    name += c[1];
-    c += 2;
-  }
-  else
-  {
-    name += *c;
-    c++;
-  }
-
-  return getNumberRegisterValue(name, sign);
-}
-
-//---------------------------------------------------------------------
-// scan a name from the following
-// x     ... return x    (one char)
-// (xx   ... return xx   (two chars)
-// [xxx] ... return xxx  (any chars)
-// after scanning, c points to the terminating char (0, \n or ])
-
-static QByteArray scan_name(char *&c)
-{
-  QByteArray name;
-  if ( *c == '(' )
-  {
-    int i = 0;
-    for (c++; *c && (*c != '\n') && (i < 2); c++, i++)
-      name += *c;
-  }
-  else if ( *c == '[' )
-  {
-    for (c++; *c && (*c != ']') && (*c != '\n'); c++)
-      name += *c;
-  }
-  else
-    name += *c;
-
-  return name;
-}
-
-//---------------------------------------------------------------------
-/// get and set font
-
-static QByteArray scan_named_font(char*& c)
-{
-  QByteArray name;
-  if (*c == '(')
-  {
-    // \f(ab  Name of two characters
-    if (c[1] == escapesym)
-    {
-      QByteArray cstr;
-      c = scan_escape_direct(c + 2, cstr);
-      kDebug(7107) << "\\(" << BYTEARRAY(cstr);
-      // ### HACK: as we convert characters too early to HTML, we need to support more than 2 characters here and assume that all characters passed by the variable are to be used.
-      name = cstr;
-    }
-    else
-    {
-      name += c[1];
-      name += c[2];
-      c += 3;
-    }
-  }
-  else if (*c == '[')
-  {
-    // \f[long_name]  Long name
-    // We must find the ] to get a name
-    c++;
-    while (*c && *c != ']' && *c != '\n')
-    {
-      if (*c == escapesym)
-      {
-        QByteArray cstr;
-        c = scan_escape_direct(c + 1, cstr);
-        const int result = cstr.indexOf(']');
-        if (result == -1)
-          name += cstr;
-        else
-        {
-          // Note: we drop the characters after the ]
-          name += cstr.left(result);
-        }
-      }
-      else
-      {
-        name += *c;
-        c++;
-      }
-    }
-    if (!*c || *c == '\n')
-    {
-      kDebug(7107) << "Found linefeed! Could not parse font name: " << BYTEARRAY(name);
-      return "";
-    }
-    c++;
-  }
-  else if ( *c )  // \f alone makes c point at 0-byte
-  {
-    // \fa Font name with one character or one digit
-    // ### HACK do *not* use:  name = *c;  or name would be empty
-    name += *c;
-    c++;
-  }
-  //kDebug(7107) << "FONT NAME: " << BYTEARRAY( name );
-  // Now we have the name, let us find the font
-  bool ok = false;
-  const unsigned int number = name.toUInt(&ok);
-  if (ok)
-  {
-    if (number < 5)
-    {
-      const char* const fonts[] = { "R", "I", "B", "BI", "CR" }; // Regular, Italic, Bold, Bold Italic, Courier regular
-      name = fonts[ number ];
-    }
-    else
-    {
-      kDebug(7107) << "EXCEPTION: font has too big number: " << BYTEARRAY(name) << " => " << number;
-      name = "R"; // Let assume Regular // krazy:exclude=doublequote_chars
-    }
-  }
-  else if (name.isEmpty())
-  {
-    kDebug(7107) << "EXCEPTION: font has no name => using R";
-    name = "R"; // Let assume Regular // krazy:exclude=doublequote_chars
-  }
-  if (!skip_escape)
-    return set_font(name);
-  else
-    return "";
-}
-
-//---------------------------------------------------------------------
-
-static QByteArray scan_number_code(char*& c)
-{
-  QByteArray number;
-  if (*c != '\'')
-    return "";
-  c++; // Go past the opening single quote
-  while (*c && (*c != '\n') && (*c != '\''))
-  {
-    number += *c;
-    c++;
-  }
-  bool ok = false;
-  unsigned int result = number.toUInt(&ok);
-  if ((result < ' ') || (result > 65535))
-    return "";
-  else if (result == '\t')
-  {
-    curpos += 8;
-    curpos &= 0xfff8;
-    return "\t";
-  }
-  number.setNum(result);
-  number.prepend("&#");
-  number.append(";");
-  curpos ++;
-  c++; // Go past the closing single quote
-  return number;
-}
-
-//---------------------------------------------------------------------
-// ### TODO known missing escapes from groff(7):
-// ### TODO \R
-
-static char *scan_escape_direct(char *c, QByteArray& cstr)
-{
-  bool exoutputp;
-  bool exskipescape;
-  int i, j;
-  bool cplusplus = true; // Should the c++ call be executed at the end of the function
-
-  cstr.clear();
-  intresult = 0;
-  switch (*c)
-  {
-    case 'e':
-      cstr += escapesym;
-      curpos++;
-      break;
-    case '0': // space of digit width
-      cstr = " ";  // Unicode FIGURE SPACE
-      curpos++;
-      break;
-    case '~': // non-breakable-space (resizeable!)
-    case ' ':
-      cstr = " ";
-      curpos++;
-      break;
-    case '|': // half-non-breakable-space
-    case '^': // quarter-non-breakable-space
-      cstr = " ";  // Unicode NARROW NO-BREAK SPACE
-      curpos++;
-      break;
-    case ':':
-      break;  // ignore optional line break
-    case ',':
-      break;  //  left italic correction, always a zero motion
-    case '/':
-      cstr = " ";  // Unicode THIN SPACE
-      curpos++;
-      break;  // italic correction, i.e. a small piece of horizontal motion
-    case '"': // comment. skip rest of line
-      for (c++; *c && (*c != '\n'); c++) ;
-      cplusplus = false;
-      break;
-      // ### TODO \# like \" but does not ignore the end of line (groff(7))
-    case '$':
-    {
-      c++;
-      cstr = scan_dollar_parameter(c);
-      cplusplus = false;
-      break;
-    }
-    case 'z':
-    {
-      c++;
-      if (*c == '\\')
-      {
-        c = scan_escape_direct(c + 1, cstr);
-        c--;
-      }
-      else
-        cstr = QByteArray(c, 1);
-      break;
-    }
-    case 'k':
-    {
-      // Store the current horizontal position in the _input_ line in
-      // number register with name POSITION
-      c++;
-      cstr = scan_name(c);
-      cstr.clear(); // TODO not implemented; discard it
-      break;
-    }
-    case '!':
-    case '%':
-    case 'a':
-    case 'd':
-    case 'r':
-    case 'u':
-    case '\n':
-    case '&': // Non-printing, zero width character
-    case ')': // Transparent non-printing zero width character
-      break;
-    case '(':
-    case '[':
-    case 'C':
-    {
-      // Do not go forward as scan_named_character needs the leading symbol
-      cstr = scan_named_character(c);
-      cplusplus = false;
-      break;
-    }
-    case '*':
-    {
-      c++;
-      cstr = scan_named_string(c);
-      cplusplus = false;
-      break;
-    }
-    case 'f':
-    {
-      c++;
-      cstr = scan_named_font(c);
-      cplusplus = false;
-      break;
-    }
-    case 'F':  // font family
-    {
-      c++;
-      cstr = scan_name(c);
-
-      if ( cstr == "C" )
-        cstr = set_font("CR");
-      else if ( cstr == "T" )
-        cstr = set_font("TR");
-      else if ( cstr == "H" )
-        cstr = set_font("HR");
-      else
-        cstr = set_font(cstr);
-
-      break;
-    }
-    case 'm': // color
-    {
-      c++;
-      cstr = scan_name(c);
-
-      if ( cstr.isEmpty() )
-        cstr = "";
-      else
-        cstr = "";
-
-      break;
-    }
-    case 's': // ### FIXME: many forms are missing
-      c++;
-      j = 0;
-      i = 0;
-      if (*c == '-')
-      {
-        j = -1;
-        c++;
-      }
-      else if (*c == '+')
-      {
-        j = 1;
-        c++;
-      }
-      if (*c == '0') c++;
-      else if (*c == '\\')
-      {
-        c++;
-        c = scan_escape_direct(c, cstr);
-        i = intresult;
-        if (!j) j = 1;
-      }
-      else
-        while (isdigit(*c) && (!i || (!j && i < 4))) i = i * 10 + (*c++) - '0';
-      if (!j)
-      {
-        j = 1;
-        if (i) i = i - 10;
-      }
-      if (!skip_escape) cstr = change_to_size(i * j);
-      c--;
-      break;
-    case 'n':
-    {
-      c++;
-      intresult = scan_number_register(c);
-      cplusplus = false;
-      break;
-    }
-    case 'w':
-      c++;
-      i = *c;
-      c++;
-      exoutputp = output_possible;
-      exskipescape = skip_escape;
-      output_possible = false;
-      skip_escape = true;
-      j = 0;
-      while (*c != i)
-      {
-        j++;
-        if (*c == escapesym)
-          c = scan_escape_direct(c + 1, cstr);
-        else
-          c++;
-      }
-      output_possible = exoutputp;
-      skip_escape = exskipescape;
-      intresult = j;
-      break;
-    case 'l':
-      cstr = "
"; - curpos = 0; - case 'b': - case 'v': - case 'x': - case 'o': - case 'L': - case 'h': - c++; - i = *c; - c++; - exoutputp = output_possible; - exskipescape = skip_escape; - output_possible = 0; - skip_escape = true; - while (*c != i) - if (*c == escapesym) c = scan_escape_direct(c + 1, cstr); - else c++; - output_possible = exoutputp; - skip_escape = exskipescape; - break; - case 'c': - no_newline_output = 1; - break; - case '{': - newline_for_fun++; - break; // Start conditional block - case '}': - if (newline_for_fun) newline_for_fun--; - break; // End conditional block - case 'p': - cstr = "
\n"; - curpos = 0; - break; - case 't': - cstr = "\t"; - curpos = (curpos + 8) & 0xfff8; - break; - case '<': - cstr = "<"; - curpos++; - break; - case '>': - cstr = ">"; - curpos++; - break; - case '\\': - { - if (single_escape) - c--; - else - cstr = "\\"; - break; - } - case 'N': - { - c++; - cstr = scan_number_code(c); - cplusplus = false; - break; - } - case '\'': - cstr = "´"; - curpos++; - break; // groff(7) ### TODO verify - case '`': - cstr = "`"; // krazy:exclude=doublequote_chars - curpos++; - break; // groff(7) - case '-': - cstr = "-"; // krazy:exclude=doublequote_chars - curpos++; - break; // groff(7) - case '.': - cstr = "."; // krazy:exclude=doublequote_chars - curpos++; - break; // groff(7) - default: - cstr = QByteArray(c, 1); - curpos++; - break; - } - if (cplusplus && *c) - c++; - return c; -} - -//--------------------------------------------------------------------- - -static char *scan_escape(char *c) -{ - QByteArray cstr; - char* result = scan_escape_direct(c, cstr); - if (!skip_escape) - out_html(cstr); - return result; -} - -//--------------------------------------------------------------------- - -class TABLEROW; - -class TABLEITEM -{ - public: - TABLEITEM(TABLEROW *row); - ~TABLEITEM() - { - delete [] contents; - } - void setContents(const char *_contents) - { - delete [] contents; - contents = qstrdup(_contents); - } - const char *getContents() const - { - return contents; - } - - void init() - { - delete [] contents; - contents = 0; - size = 0; - align = 0; - valign = 0; - colspan = 1; - rowspan = 1; - font = 0; - vleft = 0; - vright = 0; - space = 0; - width = 0; - } - - void copyLayout(const TABLEITEM *orig) - { - size = orig->size; - align = orig->align; - valign = orig->valign; - colspan = orig->colspan; - rowspan = orig->rowspan; - font = orig->font; - vleft = orig->vleft; - vright = orig->vright; - space = orig->space; - width = orig->width; - } - - public: - int size, align, valign, colspan, rowspan, font, vleft, vright, space, width; - - private: - char *contents; - TABLEROW *_parent; -}; - -class TABLEROW -{ - char *test; - public: - TABLEROW() - { - test = new char; - prev = 0; - next = 0; - } - ~TABLEROW() - { - qDeleteAll(items); - items.clear(); - delete test; - - } - int length() const - { - return items.count(); - } - bool has(int index) - { - return (index >= 0) && (index < (int)items.count()); - } - TABLEITEM &at(int index) - { - return *items.at(index); - } - - TABLEROW *copyLayout() const; - - void addItem(TABLEITEM *item) - { - items.append(item); - } - TABLEROW *prev, *next; - - private: - QList items; -}; - -TABLEITEM::TABLEITEM(TABLEROW *row) : contents(0), _parent(row) -{ - init(); - _parent->addItem(this); -} - -TABLEROW *TABLEROW::copyLayout() const -{ - TABLEROW *newrow = new TABLEROW(); - - QListIterator it(items); - while (it.hasNext()) - { - TABLEITEM *newitem = new TABLEITEM(newrow); - newitem->copyLayout(it.next()); - } - return newrow; -} - -static const char * const tableopt[] = { "center", "expand", "box", "allbox", - "doublebox", "tab", "linesize", - "delim", NULL - }; -static int tableoptl[] = { 6, 6, 3, 6, 9, 3, 8, 5, 0}; - - -static void clear_table(TABLEROW *table) -{ - TABLEROW *tr1, *tr2; - - tr1 = table; - while (tr1->prev) tr1 = tr1->prev; - while (tr1) - { - tr2 = tr1; - tr1 = tr1->next; - delete tr2; - } -} - -static char *scan_expression(char *c, int *result); - -static char *scan_format(char *c, TABLEROW **result, int *maxcol) -{ - TABLEROW *layout, *currow; - TABLEITEM *curfield; - int i, j; - if (*result) - { - clear_table(*result); - } - layout = currow = new TABLEROW(); - curfield = new TABLEITEM(currow); - while (*c && *c != '.') - { - switch (*c) - { - case 'C': - case 'c': - case 'N': - case 'n': - case 'R': - case 'r': - case 'A': - case 'a': - case 'L': - case 'l': - case 'S': - case 's': - case '^': - case '_': - if (curfield->align) - curfield = new TABLEITEM(currow); - curfield->align = toupper(*c); - c++; - break; - case 'i': - case 'I': - case 'B': - case 'b': - curfield->font = toupper(*c); - c++; - break; - case 'f': - case 'F': - c++; - curfield->font = toupper(*c); - c++; - if (!isspace(*c) && *c != '.') c++; - break; - case 't': - case 'T': - curfield->valign = 't'; - c++; - break; - case 'p': - case 'P': - c++; - i = j = 0; - if (*c == '+') - { - j = 1; - c++; - } - if (*c == '-') - { - j = -1; - c++; - } - while (isdigit(*c)) i = i * 10 + (*c++) - '0'; - if (j) curfield->size = i * j; - else curfield->size = j - 10; - break; - case 'v': - case 'V': - case 'w': - case 'W': - c = scan_expression(c + 2, &curfield->width); - break; - case '|': - if (curfield->align) curfield->vleft++; - else curfield->vright++; - c++; - break; - case 'e': - case 'E': - c++; - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - i = 0; - while (isdigit(*c)) i = i * 10 + (*c++) - '0'; - curfield->space = i; - break; - case ',': - case '\n': - currow->next = new TABLEROW(); - currow->next->prev = currow; - currow = currow->next; - currow->next = NULL; - curfield = new TABLEITEM(currow); - c++; - break; - default: - c++; - break; - } - } - if (*c == '.') while (*c++ != '\n'); - *maxcol = 0; - currow = layout; - while (currow) - { - i = currow->length(); - if (i > *maxcol) *maxcol = i; - currow = currow->next; - } - *result = layout; - return c; -} - -static TABLEROW *next_row(TABLEROW *tr) -{ - if (tr->next) - { - tr = tr->next; - if (!tr->next) - return next_row(tr); - return tr; - } - else - { - tr->next = tr->copyLayout(); - tr->next->prev = tr; - return tr->next; - } -} - -static char itemreset[20] = "\\fR\\s0"; - -#define FORWARDCUR do { curfield++; } while (currow->has(curfield) && currow->at(curfield).align=='S'); - -static char *scan_table(char *c) -{ - char *h; - char *g; - int center = 0, expand = 0, box = 0, border = 0, linesize = 1; - int i, j, maxcol = 0, finished = 0; - QByteArray oldfont; - int oldsize, oldfillout; - char itemsep = '\t'; - TABLEROW *layout = NULL, *currow; - int curfield = -1; - while (*c++ != '\n'); - h = c; - if (*h == '.') return c -1; - oldfont = current_font; - oldsize = current_size; - oldfillout = fillout; - out_html(set_font("R")); - out_html(change_to_size(0)); - if (!fillout) - { - fillout = 1; - out_html("
"); - } - while (*h && *h != '\n') h++; - if (h[-1] == ';') - { - /* scan table options */ - while (c < h) - { - while (isspace(*c)) c++; - for (i = 0; tableopt[i] && qstrncmp(tableopt[i], c, tableoptl[i]);i++); - c = c + tableoptl[i]; - switch (i) - { - case 0: - center = 1; - break; - case 1: - expand = 1; - break; - case 2: - box = 1; - break; - case 3: - border = 1; - break; - case 4: - box = 2; - break; - case 5: - while (*c++ != '('); - itemsep = *c++; - break; - case 6: - while (*c++ != '('); - linesize = 0; - while (isdigit(*c)) linesize = linesize * 10 + (*c++) - '0'; - break; - case 7: - while (*c != ')') c++; - default: - break; - } - c++; - } - c = h + 1; - } - /* scan layout */ - c = scan_format(c, &layout, &maxcol); -// currow=layout; - currow = next_row(layout); - curfield = 0; - i = 0; - while (!finished && *c) - { - /* search item */ - h = c; - if ((*c == '_' || *c == '=') && (c[1] == itemsep || c[1] == '\n')) - { - if (c[-1] == '\n' && c[1] == '\n') - { - if (currow->prev) - { - currow->prev->next = new TABLEROW(); - currow->prev->next->next = currow; - currow->prev->next->prev = currow->prev; - currow->prev = currow->prev->next; - } - else - { - currow->prev = layout = new TABLEROW(); - currow->prev->prev = NULL; - currow->prev->next = currow; - } - TABLEITEM *newitem = new TABLEITEM(currow->prev); - newitem->align = *c; - newitem->colspan = maxcol; - curfield = 0; - c = c + 2; - } - else - { - if (currow->has(curfield)) - { - currow->at(curfield).align = *c; - FORWARDCUR; - } - if (c[1] == '\n') - { - currow = next_row(currow); - curfield = 0; - } - c = c + 2; - } - } - else if (*c == 'T' && c[1] == '{') - { - h = c + 2; - c = strstr(h, "\nT}"); - c++; - *c = '\0'; - g = NULL; - scan_troff(h, 0, &g); - scan_troff(itemreset, 0, &g); - *c = 'T'; - c += 3; - if (currow->has(curfield)) - { - currow->at(curfield).setContents(g); - FORWARDCUR; - } - delete [] g; - - if (c[-1] == '\n') - { - currow = next_row(currow); - curfield = 0; - } - } - else if (*c == '.' && c[1] == 'T' && c[2] == '&' && c[-1] == '\n') - { - TABLEROW *hr; - while (*c++ != '\n'); - hr = currow; - currow = currow->prev; - hr->prev = NULL; - c = scan_format(c, &hr, &i); - hr->prev = currow; - currow->next = hr; - currow = hr; - next_row(currow); - curfield = 0; - } - else if (*c == '.' && c[1] == 'T' && c[2] == 'E' && c[-1] == '\n') - { - finished = 1; - while (*c++ != '\n'); - if (currow->prev) - currow->prev->next = NULL; - currow->prev = NULL; - clear_table(currow); - currow = 0; - } - else if (*c == '.' && c[-1] == '\n' && !isdigit(c[1])) - { - /* skip troff request inside table (usually only .sp ) */ - while (*c++ != '\n'); - } - else - { - h = c; - while (*c && (*c != itemsep || c[-1] == '\\') && - (*c != '\n' || c[-1] == '\\')) c++; - i = 0; - if (*c == itemsep) - { - i = 1; - *c = '\n'; - } - if (h[0] == '\\' && h[2] == '\n' && - (h[1] == '_' || h[1] == '^')) - { - if (currow->has(curfield)) - { - currow->at(curfield).align = h[1]; - FORWARDCUR; - } - h = h + 3; - } - else - { - g = NULL; - h = scan_troff(h, 1, &g); - scan_troff(itemreset, 0, &g); - if (currow->has(curfield)) - { - currow->at(curfield).setContents(g); - FORWARDCUR; - } - delete [] g; - } - if (i) *c = itemsep; - c = h; - if (c[-1] == '\n') - { - currow = next_row(currow); - curfield = 0; - } - } - } - /* calculate colspan and rowspan */ - currow = layout; - while (currow->next) currow = currow->next; - while (currow) - { - int ti = 0, ti1 = 0, ti2 = -1; - TABLEROW *prev = currow->prev; - if (!prev) - break; - - while (prev->has(ti1)) - { - if (currow->has(ti)) - switch (currow->at(ti).align) - { - case 'S': - if (currow->has(ti2)) - { - currow->at(ti2).colspan++; - if (currow->at(ti2).rowspan < prev->at(ti1).rowspan) - currow->at(ti2).rowspan = prev->at(ti1).rowspan; - } - break; - case '^': - if (prev->has(ti1)) prev->at(ti1).rowspan++; - default: - if (ti2 < 0) ti2 = ti; - else - { - do - { - ti2++; - } - while (currow->has(ti2) && currow->at(ti2).align == 'S'); - } - break; - } - ti++; - if (ti1 >= 0) ti1++; - } - currow = currow->prev; - } - /* produce html output */ - if (center) out_html("
"); - if (box == 2) out_html(""); - curfield = 0; - while (currow->has(curfield)) - { - if (currow->at(curfield).align != 'S' && currow->at(curfield).align != '^') - { - out_html(""); - } - curfield++; - } - out_html("\n"); - currow = currow->next; - } - - clear_table(layout); - - if (box && !border) out_html("
"); - out_html("
\n"); - currow = layout; - while (currow) - { - j = 0; - out_html("
at(curfield).align) - { - case 'N': - currow->at(curfield).space += 4; - case 'R': - out_html(" ALIGN=right"); - break; - case 'C': - out_html(" ALIGN=center"); - default: - break; - } - if (!currow->at(curfield).valign && currow->at(curfield).rowspan > 1) - out_html(" VALIGN=center"); - if (currow->at(curfield).colspan > 1) - { - out_html(" COLSPAN="); - out_html(QByteArray::number(currow->at(curfield).colspan)); - } - if (currow->at(curfield).rowspan > 1) - { - out_html(" ROWSPAN="); - out_html(QByteArray::number(currow->at(curfield).rowspan)); - } - j = j + currow->at(curfield).colspan; - out_html(">"); - if (currow->at(curfield).size) out_html(change_to_size(currow->at(curfield).size)); - if (currow->at(curfield).font) - out_html(set_font(QByteArray::number(currow->at(curfield).font))); - switch (currow->at(curfield).align) - { - case '=': - out_html("

"); - break; - case '_': - out_html("
"); - break; - default: - out_html(currow->at(curfield).getContents()); - break; - } - if (currow->at(curfield).space) - for (i = 0; i < currow->at(curfield).space;i++) out_html(" "); - if (currow->at(curfield).font) out_html(set_font("R")); - if (currow->at(curfield).size) out_html(change_to_size(0)); - if (j >= maxcol && currow->at(curfield).align > '@' && currow->at(curfield).align != '_') - out_html("
"); - out_html("
"); - out_html(""); - if (box == 2) out_html(""); - if (center) - out_html("
\n"); - else - out_html("\n"); - if (!oldfillout) out_html("
");
-  fillout = oldfillout;
-  out_html(change_to_size(oldsize));
-  out_html(set_font(oldfont));
-  return c;
-}
-
-//---------------------------------------------------------------------
-
-static char *scan_expression(char *c, int *result, const unsigned int numLoop)
-{
-  int value = 0, value2, sign = 1, opex = 0;
-  char oper = 'c';
-
-  if (*c == '!')
-  {
-    c = scan_expression(c + 1, &value);
-    value = (!value);
-  }
-  else if (*c == 'n')
-  {
-    c++;
-    value = s_nroff;
-  }
-  else if (*c == 't')
-  {
-    c++;
-    value = 1 - s_nroff;
-  }
-  else if (*c == '\'' || *c == '"' || *c < ' ' || (*c == '\\' && c[1] == '('))
-  {
-    /* ?string1?string2?
-    ** test if string1 equals string2.
-    */
-    char *st1 = NULL, *st2 = NULL, *h;
-    char *tcmp = NULL;
-    char sep;
-    sep = *c;
-    if (sep == '\\')
-    {
-      tcmp = c;
-      c = c + 3;
-    }
-    c++;
-    h = c;
-    while (*c != sep && (!tcmp || qstrncmp(c, tcmp, 4))) c++;
-    *c = '\n';
-    scan_troff(h, 1, &st1);
-    *c = sep;
-    if (tcmp) c = c + 3;
-    c++;
-    h = c;
-    while (*c != sep && (!tcmp || qstrncmp(c, tcmp, 4))) c++;
-    *c = '\n';
-    scan_troff(h, 1, &st2);
-    *c = sep;
-    if (!st1 && !st2) value = 1;
-    else if (!st1 || !st2) value = 0;
-    else value = (!qstrcmp(st1, st2));
-    delete [] st1;
-    delete [] st2;
-    if (tcmp) c = c + 3;
-    c++;
-  }
-  else
-  {
-    while (*c && (!isspace(*c) || (numLoop > 0)) && *c != ')' && opex >= 0)
-    {
-      opex = 0;
-      switch (*c)
-      {
-        case '(':
-          c = scan_expression(c + 1, &value2, numLoop + 1);
-          value2 = sign * value2;
-          opex = 1;
-          break;
-        case '.':
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-        case '8':
-        case '9':
-        {
-          int num = 0, denum = 1;
-          value2 = 0;
-          while (isdigit(*c)) value2 = value2 * 10 + ((*c++) - '0');
-          if (*c == '.' && isdigit(c[1]))
-          {
-            c++;
-            while (isdigit(*c))
-            {
-              num = num * 10 + ((*c++) - '0');
-              denum = denum * 10;
-            }
-          }
-          if (isalpha(*c))
-          {
-            /* scale indicator */
-            switch (*c)
-            {
-              case 'i': /* inch -> 10pt */
-                value2 = value2 * 10 + (num * 10 + denum / 2) / denum;
-                num = 0;
-                break;
-              default:
-                break;
-            }
-            c++;
-          }
-          value2 = value2 + (num + denum / 2) / denum;
-          value2 = sign * value2;
-          opex = 1;
-          if (*c == '.')
-            opex = -1;
-
-        }
-        break;
-        case '\\':
-          c = scan_escape(c + 1);
-          value2 = intresult * sign;
-          if (isalpha(*c)) c++; /* scale indicator */
-          opex = 1;
-          break;
-        case '-':
-          if (oper)
-          {
-            sign = -1;
-            c++;
-            break;
-          }
-        case '>':
-        case '<':
-        case '+':
-        case '/':
-        case '*':
-        case '%':
-        case '&':
-        case '=':
-        case ':':
-          if (c[1] == '=') oper = (*c++) + 16;
-          else oper = *c;
-          c++;
-          break;
-        default:
-          c++;
-          break;
-      }
-      if (opex > 0)
-      {
-        sign = 1;
-        switch (oper)
-        {
-          case 'c':
-            value = value2;
-            break;
-          case '-':
-            value = value - value2;
-            break;
-          case '+':
-            value = value + value2;
-            break;
-          case '*':
-            value = value * value2;
-            break;
-          case '/':
-            if (value2) value = value / value2;
-            break;
-          case '%':
-            if (value2) value = value % value2;
-            break;
-          case '<':
-            value = (value < value2);
-            break;
-          case '>':
-            value = (value > value2);
-            break;
-          case '>'+16:
-            value = (value >= value2);
-            break;
-          case '<'+16:
-            value = (value <= value2);
-            break;
-          case '=':
-          case '='+16:
-            value = (value == value2);
-            break;
-          case '&':
-            value = (value && value2);
-            break;
-          case ':':
-            value = (value || value2);
-            break;
-          default:
-          {
-            kDebug(7107) << "Unknown operator " << char(oper);
-          }
-        }
-        oper = 0;
-      }
-    }
-    if (*c == ')') c++;
-  }
-  *result = value;
-  return c;
-}
-
-static char *scan_expression(char *c, int *result)
-{
-  return scan_expression(c, result, 0);
-}
-
-static void trans_char(char *c, char s, char t)
-{
-  char *sl = c;
-  int slash = 0;
-  while (*sl != '\n' || slash)
-  {
-    if (!slash)
-    {
-      if (*sl == escapesym)
-        slash = 1;
-      else if (*sl == s)
-        *sl = t;
-    }
-    else slash = 0;
-    sl++;
-  }
-}
-
-//---------------------------------------------------------------------
-// parse 1 line (or a line which stretches multiple lines by \(enter) )
-// return all arguments starting at \p c in \p args
-// returns the pointer to the next char where scanning should continue
-// (which is the char after the ending \n)
-// argPointers .. a list of pointers to the startchars of each arg pointing into the string given with c
-
-void getArguments(/* const */ char *&c, QList &args, QList *argPointers = 0)
-{
-  args.clear();
-  if ( argPointers )
-    argPointers->clear();
-
-  QByteArray arg;
-  arg.reserve(30);  // reduce num of reallocs
-  bool inString = false;
-  bool inArgument = false;
-
-  for (; *c && (*c != '\n'); c++)
-  {
-    if ( *c == '"' )
-    {
-      if ( !inString )
-      {
-        inString = true;  // start of quoted argument
-      }
-      else
-      {
-        // according to http://heirloom.sourceforge.net/doctools/troff.pdf chapter 7.3
-        // two consecutive quotes inside a string is one quote char
-        if ( *(c+1) == '"' )
-        {
-          arg += '"';
-          c++;
-        }
-        else  // end of quoted argument
-        {
-          args.append(arg);
-          arg.clear();
-          inString = false;
-          inArgument = false;
-        }
-      }
-    }
-    else if ( *c == ' ' )
-    {
-      if ( inString )
-      {
-        arg += *c;
-        if ( !inArgument )  // argument not yet found (leading spaces)
-        {
-          inArgument = true;
-
-          if ( argPointers )
-            argPointers->append(c);
-        }
-      }
-      else if ( inArgument )
-      {
-        // end of previous argument
-        args.append(arg);
-        arg.clear();
-        inArgument = false;
-      }
-    }
-    else if ( (*c == escapesym) && (*(c+1) == ' ') )
-    {
-      // special handling \ shall be kept as is
-      arg += *c++;
-      arg += *c;
-
-      if ( !inArgument )  // argument not yet found (leading spaces)
-      {
-        inArgument = true;
-
-        if ( argPointers )
-          argPointers->append(c);
-      }
-    }
-    else if ( (*c == escapesym) && (*(c+1) == '\n') )
-    {
-      c++;
-    }
-    else if ( (*c == escapesym) && (*(c+1) == '"') )  // start of comment; skip rest of line
-    {
-      if ( inArgument )
-      {
-        // end of previous argument
-        args.append(arg);
-        arg.clear();
-        inArgument = false;
-      }
-
-      // skip rest of line
-      while ( *c && (*c != '\n') ) c++;
-      break;
-    }
-    else if ( *c != ' ' )
-    {
-      arg += *c;
-      if ( !inArgument )  // argument not yet found (leading spaces)
-      {
-        inArgument = true;
-
-        if ( argPointers )
-          argPointers->append(c);
-      }
-    }
-  }
-
-  if ( inArgument )
-  {
-    // end of previous argument
-    args.append(arg);
-  }
-
-  if ( *c ) c++;
-
-#if 0
-  for (int i = 0; i < args.count(); i++)
-  {
-    qWarning("ARG:%d >>>%s<<<", i, args[i].data());
-  }
-#endif
-}
-
-//---------------------------------------------------------------------
-
-static const char * const abbrev_list[] =
-{
-  "GSBG", "Getting Started ",
-  "SUBG", "Customizing SunOS",
-  "SHBG", "Basic Troubleshooting",
-  "SVBG", "SunView User's Guide",
-  "MMBG", "Mail and Messages",
-  "DMBG", "Doing More with SunOS",
-  "UNBG", "Using the Network",
-  "GDBG", "Games, Demos & Other Pursuits",
-  "CHANGE", "SunOS 4.1 Release Manual",
-  "INSTALL", "Installing SunOS 4.1",
-  "ADMIN", "System and Network Administration",
-  "SECUR", "Security Features Guide",
-  "PROM", "PROM User's Manual",
-  "DIAG", "Sun System Diagnostics",
-  "SUNDIAG", "Sundiag User's Guide",
-  "MANPAGES", "SunOS Reference Manual",
-  "REFMAN", "SunOS Reference Manual",
-  "SSI", "Sun System Introduction",
-  "SSO", "System Services Overview",
-  "TEXT", "Editing Text Files",
-  "DOCS", "Formatting Documents",
-  "TROFF", "Using nroff and troff",
-  "INDEX", "Global Index",
-  "CPG", "C Programmer's Guide",
-  "CREF", "C Reference Manual",
-  "ASSY", "Assembly Language Reference",
-  "PUL", "Programming Utilities and Libraries",
-  "DEBUG", "Debugging Tools",
-  "NETP", "Network Programming",
-  "DRIVER", "Writing Device Drivers",
-  "STREAMS", "STREAMS Programming",
-  "SBDK", "SBus Developer's Kit",
-  "WDDS", "Writing Device Drivers for the SBus",
-  "FPOINT", "Floating-Point Programmer's Guide",
-  "SVPG", "SunView 1 Programmer's Guide",
-  "SVSPG", "SunView 1 System Programmer's Guide",
-  "PIXRCT", "Pixrect Reference Manual",
-  "CGI", "SunCGI Reference Manual",
-  "CORE", "SunCore Reference Manual",
-  "4ASSY", "Sun-4 Assembly Language Reference",
-  "SARCH", "SPARC Architecture Manual",
-  "KR", "The C Programming Language",
-  NULL, NULL
-};
-
-static const char *lookup_abbrev(const char *c)
-{
-  int i = 0;
-
-  if (!c) return "";
-  while (abbrev_list[i] && qstrcmp(c, abbrev_list[i])) i = i + 2;
-  if (abbrev_list[i])
-    return abbrev_list[i+1];
-  else
-    return c;
-}
-
-//---------------------------------------------------------------------
-
-static const char * const section_list[] =
-{
-#ifdef Q_OS_SOLARIS
-  // for Solaris
-  "1", "User Commands",
-  "1B", "SunOS/BSD Compatibility Package Commands",
-  "1b", "SunOS/BSD Compatibility Package Commands",
-  "1C", "Communication Commands ",
-  "1c", "Communication Commands",
-  "1F", "FMLI Commands ",
-  "1f", "FMLI Commands",
-  "1G", "Graphics and CAD Commands ",
-  "1g", "Graphics and CAD Commands ",
-  "1M", "Maintenance Commands",
-  "1m", "Maintenance Commands",
-  "1S", "SunOS Specific Commands",
-  "1s", "SunOS Specific Commands",
-  "2", "System Calls",
-  "3", "C Library Functions",
-  "3B", "SunOS/BSD Compatibility Library Functions",
-  "3b", "SunOS/BSD Compatibility Library Functions",
-  "3C", "C Library Functions",
-  "3c", "C Library Functions",
-  "3E", "C Library Functions",
-  "3e", "C Library Functions",
-  "3F", "Fortran Library Routines",
-  "3f", "Fortran Library Routines",
-  "3G", "C Library Functions",
-  "3g", "C Library Functions",
-  "3I", "Wide Character Functions",
-  "3i", "Wide Character Functions",
-  "3K", "Kernel VM Library Functions",
-  "3k", "Kernel VM Library Functions",
-  "3L", "Lightweight Processes Library",
-  "3l", "Lightweight Processes Library",
-  "3M", "Mathematical Library",
-  "3m", "Mathematical Library",
-  "3N", "Network Functions",
-  "3n", "Network Functions",
-  "3R", "Realtime Library",
-  "3r", "Realtime Library",
-  "3S", "Standard I/O Functions",
-  "3s", "Standard I/O Functions",
-  "3T", "Threads Library",
-  "3t", "Threads Library",
-  "3W", "C Library Functions",
-  "3w", "C Library Functions",
-  "3X", "Miscellaneous Library Functions",
-  "3x", "Miscellaneous Library Functions",
-  "4", "File Formats",
-  "4B", "SunOS/BSD Compatibility Package File Formats",
-  "4b", "SunOS/BSD Compatibility Package File Formats",
-  "5", "Headers, Tables, and Macros",
-  "6", "Games and Demos",
-  "7", "Special Files",
-  "7B", "SunOS/BSD Compatibility Special Files",
-  "7b", "SunOS/BSD Compatibility Special Files",
-  "8", "Maintenance Procedures",
-  "8C", "Maintenance Procedures",
-  "8c", "Maintenance Procedures",
-  "8S", "Maintenance Procedures",
-  "8s", "Maintenance Procedures",
-  "9", "DDI and DKI",
-  "9E", "DDI and DKI Driver Entry Points",
-  "9e", "DDI and DKI Driver Entry Points",
-  "9F", "DDI and DKI Kernel Functions",
-  "9f", "DDI and DKI Kernel Functions",
-  "9S", "DDI and DKI Data Structures",
-  "9s", "DDI and DKI Data Structures",
-  "L", "Local Commands",
-#elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
-  "1", "General Commands",
-  "2", "System Calls",
-  "3", "Library Functions",
-  "4", "Kernel Interfaces",
-  "5", "File Formats",
-  "6", "Games",
-  "7", "Miscellaneous Information",
-  "8", "System Manager's Manuals",
-  "9", "Kernel Developer's Manuals",
-#else
-  // Other OS
-  "1", "User Commands ",
-  "1C", "User Commands",
-  "1G", "User Commands",
-  "1S", "User Commands",
-  "1V", "User Commands ",
-  "2", "System Calls",
-  "2V", "System Calls",
-  "3", "C Library Functions",
-  "3C", "Compatibility Functions",
-  "3F", "Fortran Library Routines",
-  "3K", "Kernel VM Library Functions",
-  "3L", "Lightweight Processes Library",
-  "3M", "Mathematical Library",
-  "3N", "Network Functions",
-  "3R", "RPC Services Library",
-  "3S", "Standard I/O Functions",
-  "3V", "C Library Functions",
-  "3X", "Miscellaneous Library Functions",
-  "4", "Devices and Network Interfaces",
-  "4F", "Protocol Families",
-  "4I", "Devices and Network Interfaces",
-  "4M", "Devices and Network Interfaces",
-  "4N", "Devices and Network Interfaces",
-  "4P", "Protocols",
-  "4S", "Devices and Network Interfaces",
-  "4V", "Devices and Network Interfaces",
-  "5", "File Formats",
-  "5V", "File Formats",
-  "6", "Games and Demos",
-  "7", "Environments, Tables, and Troff Macros",
-  "7V", "Environments, Tables, and Troff Macros",
-  "8", "Maintenance Commands",
-  "8C", "Maintenance Commands",
-  "8S", "Maintenance Commands",
-  "8V", "Maintenance Commands",
-  "L", "Local Commands",
-#endif
-  // The defaults
-  NULL, "Misc. Reference Manual Pages",
-  NULL, NULL
-};
-
-static const char *section_name(char *c)
-{
-  int i = 0;
-
-  if (!c) return "";
-  while (section_list[i] && qstrcmp(c, section_list[i])) i = i + 2;
-  if (section_list[i+1]) return section_list[i+1];
-  else return c;
-}
-
-static char *skip_till_newline(char *c)
-{
-  int lvl = 0;
-
-  while (*c && (*c != '\n' || lvl > 0))
-  {
-    if (*c == '\\')
-    {
-      c++;
-      if (*c == '}')
-        lvl--;
-      else if (*c == '{')
-        lvl++;
-      else if (*c == '\0')
-        break;
-    }
-    c++;
-  }
-  if (*c) c++;
-  if (lvl < 0 && newline_for_fun)
-  {
-    newline_for_fun = newline_for_fun + lvl;
-    if (newline_for_fun < 0) newline_for_fun = 0;
-  }
-  return c;
-}
-
-static bool s_whileloop = false;
-
-/// Processing the .while request
-static void request_while(char*& c, int j, bool mdoc)
-{
-  // ### TODO: .continue
-  kDebug(7107) << "Entering .while";
-  c += j;
-  char* newline = skip_till_newline(c);
-  const char oldchar = *newline;
-  *newline = 0;
-  // We store the full .while stuff into a QByteArray as if it would be a macro
-  const QByteArray macro = c ;
-  kDebug(7107) << "'Macro' of .while" << BYTEARRAY(macro);
-  // Prepare for continuing after .while loop end
-  *newline = oldchar;
-  c = newline;
-  // Process -while loop
-  const bool oldwhileloop = s_whileloop;
-  s_whileloop = true;
-  int result = true; // It must be an int due to the call to scan_expression
-  break_the_while_loop = false;
-  while (result && !break_the_while_loop)
-  {
-    // Unlike for a normal macro, we have the condition at start, so we do not need to prepend extra bytes
-    char* liveloop = qstrdup(macro.data());
-    kDebug(7107) << "Scanning .while condition";
-    kDebug(7101) << "Loop macro " << liveloop;
-    char* end_expression = scan_expression(liveloop, &result);
-    kDebug(7101) << "After " << end_expression;
-    if (result)
-    {
-      kDebug(7107) << "New .while iteration";
-      // The condition is true, so call the .while's content
-      char* help = end_expression + 1;
-      while (*help && (*help == ' '  || *help == '\t'))
-        ++help;
-      if (! *help)
-      {
-        // We have a problem, so stop .while
-        result = false;
-        break;
-      }
-      if (mdoc)
-        scan_troff_mandoc(help, false, 0);
-      else
-        scan_troff(help, false, 0);
-    }
-    delete[] liveloop;
-  }
-  break_the_while_loop = false;
-
-  //
-  s_whileloop = oldwhileloop;
-  kDebug(7107) << "Ending .while";
-}
-
-//---------------------------------------------------------------------
-// Processing mixed fonts requests like .BI
-
-static void request_mixed_fonts(char*& c, int j, const char* font1, const char* font2, const bool mode, const bool inFMode)
-{
-  c += j;
-  if (*c == '\n') c++;
-
-  QList args;
-  getArguments(c, args);
-
-  for (int i = 0; i < args.count(); i++)
-  {
-    if (mode || inFMode)
-    {
-      out_html(" ");
-      curpos++;
-    }
-    out_html(set_font((i&1) ? font2 : font1));
-    scan_troff(args[i].data(), 1, NULL);
-  }
-  out_html(set_font("R"));
-  if (mode)
-  {
-    out_html(" ]");
-    curpos++;
-  }
-  out_html(NEWLINE);
-  if (!fillout)
-    curpos = 0;
-  else
-    curpos++;
-}
-
-//---------------------------------------------------------------------
-
-// &%(#@ c programs !!!
-//static int ifelseval=0;
-// If/else can be nested!
-static QStack s_ifelseval;
-
-// Process a (mdoc) request involving quotes
-static char* process_quote(char* c, int j, const char* open, const char* close)
-{
-  trans_char(c, '"', '\a');
-  c += j;
-  if (*c == '\n') c++; // ### TODO: why? Quote requests cannot be empty!
-  out_html(open);
-  c = scan_troff_mandoc(c, 1, 0);
-  out_html(close);
-  out_html(NEWLINE);
-  if (fillout)
-    curpos++;
-  else
-    curpos = 0;
-  return c;
-}
-
-//---------------------------------------------------------------------
-/**
- * Is the char \p ch a puntuaction in sence of mdoc(7)
- */
-
-static bool is_mdoc_punctuation(const char ch)
-{
-  if ((ch >= '0' &&  ch <= '9') || (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'))
-    return false;
-  else if (ch == '.' || ch == ',' || ch == ';' || ch == ':' || ch == '(' || ch == ')'
-           || ch == '[' || ch == ']')
-    return true;
-  else
-    return false;
-}
-
-//---------------------------------------------------------------------
-/**
- * Can the char \p c be part of an identifier
- * \note For groff, an identifier can consist of nearly all ASCII printable non-white-space characters
- * See info:/groff/Identifiers
- */
-
-static bool is_identifier_char(const char c)
-{
-  if (c >= '!' && c <= '[')   // Include digits and upper case
-    return true;
-  else if (c >= ']' && c <= '~')   // Include lower case
-    return true;
-  else if (c == '\\')
-    return false; // ### TODO: it should be treated as escape instead!
-  return false;
-}
-
-//---------------------------------------------------------------------
-
-static QByteArray scan_identifier(char*& c)
-{
-  char* h = c; // help pointer
-  // ### TODO Groff seems to eat nearly everything as identifier name (info:/groff/Identifiers)
-  while (*h && *h != '\a' && *h != '\n' && is_identifier_char(*h))
-    ++h;
-  const char tempchar = *h;
-  *h = 0;
-  const QByteArray name = c;
-  *h = tempchar;
-  if (name.isEmpty())
-  {
-    kDebug(7107) << "EXCEPTION: identifier empty!";
-  }
-  c = h;
-  return name;
-}
-
-//---------------------------------------------------------------------
-
-static char *scan_request(char *c)
-{
-  // mdoc(7) stuff
-  static bool mandoc_synopsis = false; /* True if we are in the synopsis section */
-  static bool mandoc_command = false;  /* True if this is mdoc(7) page */
-  static int mandoc_bd_options; /* Only copes with non-nested Bd's */
-  static int function_argument = 0; // Number of function argument (.Fo, .Fa, .Fc)
-
-  int i = 0;
-  bool mode = false;
-  char *h = 0;
-  char *sl;
-  QList args;
-
-  while (*c == ' ' || *c == '\t') c++; // Spaces or tabs allowed between control character and request
-  if (c[0] == '\n') return c + 1;
-  if (c[0] == escapesym)
-  {
-    /* some pages use .\" .\$1 .\} */
-    /* .\$1 is too difficult/stuppid */
-    if (c[1] == '$')
-    {
-      kDebug(7107) << "Found .\\$";
-      c = skip_till_newline(c); // ### TODO
-    }
-    else
-    {
-      // the result of the escape expansion must be parsed again
-      c++;
-      QByteArray cstr;
-      c = scan_escape_direct(c, cstr);
-      for (; *c && (*c != '\n'); c++) cstr += *c;
-      if ( cstr.length() )
-        scan_request(cstr.data());
-    }
-  }
-  else
-  {
-    int nlen = 0;
-    QByteArray macroName;
-    while (c[nlen] && (c[nlen] != ' ') && (c[nlen] != '\t') && (c[nlen] != '\n') && (c[nlen] != escapesym))
-    {
-      macroName += c[nlen];
-      nlen++;
-    }
-    int j = nlen;
-    while (c[j] == ' ' || c[j] == '\t') j++;
-    /* search macro database of self-defined macros */
-    QMap::const_iterator it = s_stringDefinitionMap.constFind(macroName);
-
-    // ### HACK: e.g. nmap, smb.conf redefine SH, SS to increase the font, etc. for non-TTY output
-    // Ignore those to make the HTML result look better
-    if ( (macroName != "SH") && (macroName != "SS") &&
-         it != s_stringDefinitionMap.constEnd() )
-    {
-      kDebug(7107) << "CALLING MACRO: " << BYTEARRAY(macroName);
-      const QByteArray oldDollarZero = s_dollarZero; // Previous value of $0
-      s_dollarZero = macroName;
-
-      c += j;
-      getArguments(c, args);
-      for (i = 0; i < args.count(); i++)
-      {
-        char *h = 0;
-
-        if (mandoc_command)
-          scan_troff_mandoc(args[i].data(), 1, &h);
-        else
-          scan_troff(args[i].data(), 1, &h);
-
-        args[i] = h;
-        delete [] h;
-      }
-
-      if (!(*it).m_output.isEmpty())
-      {
-        //kDebug(7107) << "Macro content is: "<< BYTEARRAY( (*it).m_output );
-        const unsigned int length = (*it).m_output.length();
-        char* work = new char [length+2];
-        work[0] = '\n'; // The macro must start after an end of line to allow a request on first line
-        qstrncpy(work + 1, (*it).m_output.data(), length + 1);
-        const QList oldArgumentList(s_argumentList);
-        s_argumentList.clear();
-        for (i = 0; i < args.count(); i++)
-          s_argumentList.push_back(args[i]);
-
-        const int onff = newline_for_fun;
-        if (mandoc_command)
-          scan_troff_mandoc(work + 1, 0, NULL);
-        else
-          scan_troff(work + 1, 0, NULL);
-        delete[] work;
-        newline_for_fun = onff;
-        s_argumentList = oldArgumentList;
-      }
-      s_dollarZero = oldDollarZero;
-      kDebug(7107) << "ENDING MACRO: " << BYTEARRAY(macroName);
-    }
-    else
-    {
-      kDebug(7107) << "REQUEST: " << BYTEARRAY(macroName);
-      switch (RequestNum request = RequestHash::getRequest(macroName, macroName.length()))
-      {
-        case REQ_ab: // groff(7) "ABort"
-        {
-          h = c + j;
-          while (*h && *h != '\n') h++;
-          *h = '\0';
-          if (scaninbuff && buffpos)
-          {
-            buffer[buffpos] = '\0';
-            kDebug(7107) << "ABORT: " << buffer;
-          }
-          // ### TODO find a way to display it to the user
-          kDebug(7107) << "Aborting: .ab " << (c + j);
-          return 0;
-          break;
-        }
-        case REQ_An: // mdoc(7) "Author Name"
-        {
-          c += j;
-          c = scan_troff_mandoc(c, 1, 0);
-          break;
-        }
-        case REQ_di: // groff(7) "end current DIversion"
-        {
-          kDebug(7107) << "Start .di";
-          c += j;
-          if (*c == '\n')
-          {
-            ++c;
-            break;
-          }
-          const QByteArray name(scan_identifier(c));
-          while (*c && *c != '\n') c++;
-          c++;
-          h = c;
-          while (*c && qstrncmp(c, ".di", 3)) while (*c && *c++ != '\n');
-          *c = '\0';
-          char* result = 0;
-          scan_troff(h, 0, &result);
-          QMap::iterator it = s_stringDefinitionMap.find(name);
-          if (it == s_stringDefinitionMap.end())
-          {
-            StringDefinition def;
-            def.m_length = 0;
-            def.m_output = result;
-            s_stringDefinitionMap.insert(name, def);
-          }
-          else
-          {
-            (*it).m_length = 0;
-            (*it).m_output = result;
-          }
-          delete[] result;
-          if (*c) *c = '.';
-          c = skip_till_newline(c);
-          kDebug(7107) << "end .di";
-          break;
-        }
-        case REQ_ds: // groff(7) "Define String variable"
-          mode = true;
-        case REQ_as: // groff (7) "Append String variable"
-        {
-          kDebug(7107) << "start .ds/.as";
-          int oldcurpos = curpos;
-          c += j;
-          const QByteArray name(scan_identifier(c));
-          if (name.isEmpty())
-            break;
-          // an initial " is removed to allow leading space
-          while (*c && isspace(*c)) c++;
-          if (*c == '"') c++;
-
-          single_escape = true;
-          curpos = 0;
-          char* result = 0;
-          c = scan_troff(c, 1, &result);
-          QMap::iterator it = s_stringDefinitionMap.find(name);
-          if (it == s_stringDefinitionMap.end())
-          {
-            StringDefinition def;
-            def.m_length = curpos;
-            def.m_output = result;
-            s_stringDefinitionMap.insert(name, def);
-          }
-          else
-          {
-            if (mode)
-            {   // .ds Defining String
-              (*it).m_length = curpos;
-              (*it).m_output = result;
-            }
-            else
-            {   // .as Appending String
-              (*it).m_length += curpos;
-              (*it).m_output += result;
-            }
-          }
-          delete[] result;
-          single_escape = false;
-          curpos = oldcurpos;
-          kDebug(7107) << "end .ds/.as";
-          break;
-        }
-        case REQ_br: // groff(7) "line BReak"
-        {
-          if (still_dd)
-            out_html("
"); // ### VERIFY (does not look like generating good HTML) - else - out_html("
\n"); - curpos = 0; - c = c + j; - if (c[0] == escapesym) c = scan_escape(c + 1); - c = skip_till_newline(c); - break; - } - case REQ_c2: // groff(7) "reset non-break Control character" (2 means non-break) - { - c = c + j; - if (*c != '\n') - nobreaksym = *c; - else - nobreaksym = '\''; - c = skip_till_newline(c); - break; - } - case REQ_cc: // groff(7) "reset Control Character" - { - c = c + j; - if (*c != '\n') - controlsym = *c; - else - controlsym = '.'; - c = skip_till_newline(c); - break; - } - case REQ_ce: // groff (7) "CEnter" - { - c = c + j; - if (*c == '\n') - i = 1; - else - { - i = 0; - while ('0' <= *c && *c <= '9') - { - i = i * 10 + *c - '0'; - c++; - } - } - c = skip_till_newline(c); - /* center next i lines */ - if (i > 0) - { - out_html("
\n"); - while (i && *c) - { - char *line = NULL; - c = scan_troff(c, 1, &line); - if (line && qstrncmp(line, "
", 4)) - { - out_html(line); - out_html("
\n"); - delete [] line; // ### FIXME: memory leak! - i--; - } - } - out_html("
\n"); - curpos = 0; - } - break; - } - case REQ_ec: // groff(7) "reset Escape Character" - { - c = c + j; - if (*c != '\n') - escapesym = *c; - else - escapesym = '\\'; - break; - c = skip_till_newline(c); - } - case REQ_eo: // groff(7) "turn Escape character Off" - { - escapesym = '\0'; - c = skip_till_newline(c); - break; - } - case REQ_ex: // groff(7) "EXit" - { - return 0; - break; - } - case REQ_fc: // groff(7) "set Field and pad Character" - { - c = c + j; - if (*c == '\n') - fieldsym = padsym = '\0'; - else - { - fieldsym = c[0]; - padsym = c[1]; - } - c = skip_till_newline(c); - break; - } - case REQ_fi: // groff(7) "FIll" - { - if (!fillout) - { - out_html(set_font("R")); - out_html(change_to_size('0')); - out_html("
\n"); - } - curpos = 0; - fillout = 1; - c = skip_till_newline(c); - break; - } - case REQ_ft: // groff(7) "FonT" - { - c += j; - h = skip_till_newline(c); - const char oldChar = *h; - *h = 0; - const QByteArray name = c; - // ### TODO: name might contain a variable - if (name.isEmpty()) - out_html(set_font("P")); // Previous font - else - out_html(set_font(name)); - *h = oldChar; - c = h; - break; - } - case REQ_el: // groff(7) "ELse" - { - int ifelseval = s_ifelseval.pop(); - /* .el anything : else part of if else */ - if (ifelseval) - { - c = c + j; - c[-1] = '\n'; - c = scan_troff(c, 1, NULL); - } - else - c = skip_till_newline(c + j); - break; - } - case REQ_ie: // groff(7) "If with Else" - /* .ie c anything : then part of if else */ - // fallthrough - case REQ_if: // groff(7) "IF" - { - /* .if c anything - * .if !c anything - * .if N anything - * .if !N anything - * .if 'string1'string2' anything - * .if !'string1'string2' anything - */ - c = c + j; - c = scan_expression(c, &i); - if (request == REQ_ie) - { - int ifelseval = !i; - s_ifelseval.push(ifelseval); - } - if (i) - { - *c = '\n'; - c++; - c = scan_troff(c, 1, NULL); - } - else - c = skip_till_newline(c); - break; - } - case REQ_ig: // groff(7) "IGnore" - { - const char *endwith = "..\n"; - i = 3; - c = c + j; - if (*c != '\n' && *c != '\\') - { - /* Not newline or comment */ - endwith = c - 1; - i = 1; - c[-1] = '.'; - while (*c && *c != '\n') c++, i++; - } - c++; - while (*c && qstrncmp(c, endwith, i)) while (*c++ != '\n'); - while (*c && *c++ != '\n'); - break; - } - case REQ_nf: // groff(7) "No Filling" - { - if (fillout) - { - out_html(set_font("R")); - out_html(change_to_size('0')); - out_html("
\n");
-          }
-          curpos = 0;
-          fillout = 0;
-          c = skip_till_newline(c);
-          break;
-        }
-        case REQ_ps: // groff(7) "previous Point Size"
-        {
-          c += j;
-          getArguments(c, args);
-          if ( args.count() == 0 )
-            out_html(change_to_size('0'));
-          else
-          {
-            char *h = args[0].data();
-            j = 0;
-            i = 0;
-            if (*h == '-')
-            {
-              j = -1;
-              h++;
-            }
-            else if (*h == '+')
-              j = 1;
-            h++;
-            scan_expression(h, &i);
-            if (!j)
-            {
-              j = 1;
-              if (i > 5) i = i - 10;
-            }
-            out_html(change_to_size(i*j));
-          }
-          break;
-        }
-        case REQ_sp: // groff(7) "SKip one line"
-        {
-          c += j;
-          if (fillout)
-            out_html("

"); - else - out_html(NEWLINE); - curpos = 0; - c = skip_till_newline(c); - break; - } - case REQ_so: // groff(7) "Include SOurce file" - { - char *buf; - char *name = NULL; - curpos = 0; - c = c + j; - if (*c == '/') - h = c; - else - { - h = c - 3; - h[0] = '.'; - h[1] = '.'; - h[2] = '/'; - } - while (*c != '\n') c++; - *c = '\0'; - scan_troff(h, 1, &name); - if (name[3] == '/') - h = name + 3; - else - h = name; - /* this works alright, except for section 3 */ - buf = read_man_page(h); - if (!buf) - { - kDebug(7107) << "Unable to open or read file: .so " << (h); - out_html("
" - "man2html: unable to open or read file.\n"); - out_html(h); - out_html("
\n"); - } - else - scan_troff(buf + 1, 0, NULL); - delete [] buf; - delete [] name; - - *c++ = '\n'; - break; - } - case REQ_ta: // gorff(7) "set TAbulators" - { - c = c + j; - j = 0; - while (*c != '\n') - { - sl = scan_expression(c, &tabstops[j]); - if (j > 0 && (*c == '-' || *c == '+')) tabstops[j] += tabstops[j-1]; - c = sl; - while (*c == ' ' || *c == '\t') c++; - j++; - } - maxtstop = j; - curpos = 0; - break; - } - case REQ_ti: // groff(7) "Temporary Indent" - { - /*while (itemdepth || dl_set[itemdepth]) { - out_html("\n"); - if (dl_set[itemdepth]) dl_set[itemdepth]=0; - else itemdepth--; - }*/ - out_html("
\n"); - c = c + j; - c = scan_expression(c, &j); - for (i = 0; i < j; i++) out_html(" "); - curpos = j; - c = skip_till_newline(c); - break; - } - case REQ_tm: // groff(7) "TerMinal" ### TODO: what are useful uses for it - { - c += j; - getArguments(c, args); - if ( args.count() ) - kDebug(7107) << ".tm " << args[0]; - break; - } - case REQ_B: // man(7) "Bold" - mode = 1; - case REQ_I: // man(7) "Italic" - { - /* parse one line in a certain font */ - c += j; - getArguments(c, args); - - out_html(set_font(mode ? "B" : "I")); - - for (int i = 0; i < args.count(); i++) - { - scan_troff(args[i].data(), 1, 0); - out_html(" "); - } - - out_html(set_font("R")); - - if (fillout) - curpos++; - else - { - out_html(NEWLINE); - curpos = 0; - } - break; - } - case REQ_Fd: // mdoc(7) "Function Definition" - { - // Normal text must be printed in bold, punctuation in regular font - c += j; - if (*c == '\n') c++; - getArguments(c, args); - - for (i = 0; i < args.count(); i++) - { - // ### FIXME In theory, only a single punctuation character is recognized as punctuation - if ( is_mdoc_punctuation(args[i][0]) ) - out_html(set_font("R")); - else - out_html(set_font("B")); - scan_troff(args[i].data(), 1, NULL); - out_html(" "); - } - // In the mdoc synopsis, there are automatical line breaks (### TODO: before or after?) - if (mandoc_synopsis) - out_html("
"); - - out_html(set_font("R")); - out_html(NEWLINE); - if (!fillout) - curpos = 0; - else - curpos++; - break; - } - case REQ_Fn: // mdoc(7) for "Function calls" - { - // brackets and commas have to be inserted automatically - c += j; - if (*c == '\n') c++; - getArguments(c, args); - if ( args.count() ) - { - for (i = 0; i < args.count(); i++) - { - if (i) - out_html(set_font("I")); - else - out_html(set_font("B")); - scan_troff(args[i].data(), 1, NULL); - out_html(set_font("R")); - if (i == 0) - { - out_html(" ("); - } - else if (i < args.count() - 1) - out_html(", "); - } - out_html(")"); - } - out_html(set_font("R")); - if (mandoc_synopsis) - out_html("
"); - out_html(NEWLINE); - if (!fillout) - curpos = 0; - else - curpos++; - break; - } - case REQ_Fo: // mdoc(7) "Function definition Opening" - { - char* font[2] = {(char*)"B", (char*)"R" }; - c += j; - if (*c == '\n') c++; - char *eol = strchr(c, '\n'); - char *semicolon = strchr(c, ';'); - if ((semicolon != 0) && (semicolon < eol)) *semicolon = ' '; - - getArguments(c, args); - // Normally a .Fo has only one parameter - for (i = 0; i < args.count(); i++) - { - out_html(set_font(font[i&1])); - scan_troff(args[i].data(), 1, NULL); - if (i == 0) - { - out_html(" ("); - } - // ### TODO What should happen if there is more than one argument - // else if (i 0 - out_html(set_font("R")); - out_html(NEWLINE); - if (!fillout) - curpos = 0; - else - curpos++; - break; - } - case REQ_Fc:// mdoc(7) "Function definition Close" - { - // .Fc has no parameter - c += j; - c = skip_till_newline(c); - char* font[2] = {(char*)"B", (char*)"R" }; - out_html(set_font(font[i&1])); - out_html(")"); - out_html(set_font("R")); - if (mandoc_synopsis) - out_html("
"); - out_html(NEWLINE); - if (!fillout) - curpos = 0; - else - curpos++; - function_argument = 0; // Reset the count variable - break; - } - case REQ_Fa: // mdoc(7) "Function definition argument" - { - char* font[2] = {(char*)"B", (char*)"R" }; - c += j; - if (*c == '\n') c++; - getArguments(c, args); - out_html(set_font(font[i&1])); - // function_argument==0 means that we had no .Fo before, e.g. in mdoc.samples(7) - if (function_argument > 1) - { - out_html(", "); - curpos += 2; - function_argument++; - } - else if (function_argument == 1) - { - // We are only at the first parameter - function_argument++; - } - for (i = 0; i < args.count(); i++) - scan_troff(args[i].data(), 1, NULL); - - out_html(set_font("R")); - if (!fillout) - curpos = 0; - else - curpos++; - break; - } - - case REQ_OP: /* groff manpages use this construction */ - { - /* .OP a b : [ a b ] */ - out_html(set_font("R")); - out_html("["); - curpos++; - request_mixed_fonts(c, j, "B", "I", true, false); - break; - } - case REQ_Ft: //perhaps "Function return type" - { - request_mixed_fonts(c, j, "B", "I", false, true); - break; - } - case REQ_BR: - { - request_mixed_fonts(c, j, "B", "R", false, false); - break; - } - case REQ_BI: - { - request_mixed_fonts(c, j, "B", "I", false, false); - break; - } - case REQ_IB: - { - request_mixed_fonts(c, j, "I", "B", false, false); - break; - } - case REQ_IR: - { - request_mixed_fonts(c, j, "I", "R", false, false); - break; - } - case REQ_RB: - { - request_mixed_fonts(c, j, "R", "B", false, false); - break; - } - case REQ_RI: - { - request_mixed_fonts(c, j, "R", "I", false, false); - break; - } - case REQ_DT: // man(7) "Default Tabulators" - { - for (j = 0;j < 20; j++) tabstops[j] = (j + 1) * 8; - maxtstop = 20; - c = skip_till_newline(c); - break; - } - case REQ_IP: // man(7) "Ident Paragraph" - { - c += j; - getArguments(c, args); - - if (!dl_set[itemdepth]) - { - out_html("
\n"); - dl_set[itemdepth] = 1; - } - out_html("
"); - - if ( args.count() ) - scan_troff(args[0].data(), 1, NULL); - - out_html("
\n
"); - listItemStack.push("DD"); - curpos = 0; - break; - } - case REQ_TP: // man(7) "hanging Tag Paragraph" - { - if (!dl_set[itemdepth]) - { - out_html("
\n"); - dl_set[itemdepth] = 1; - } - out_html(set_font("R")); - out_html("
"); - c = skip_till_newline(c); - /* somewhere a definition ends with '.TP' */ - if (!*c) - still_dd = true; - else - { - // HACK for proc(5) - while (c[0] == '.' && c[1] == '\\' && c[2] == '\"') - { - // We have a comment, so skip the line - c = skip_till_newline(c); - } - c = scan_troff(c, 1, NULL); - out_html("
"); - listItemStack.push("DD"); - } - curpos = 0; - break; - } - case REQ_IX: // Indexing term (printed on standard error) - { - c = skip_till_newline(c); // ignore - break; - } - case REQ_P: // man(7) "Paragraph" - case REQ_LP:// man(7) "Paragraph" - case REQ_PP:// man(7) "Paragraph; reset Prevailing indent" - { - if (dl_set[itemdepth]) - { - out_html("
\n"); - dl_set[itemdepth] = 0; - } - else - if (fillout) out_html("
"); - - if (fillout) - out_html("
\n"); - else - { - out_html(NEWLINE); - } - curpos = 0; - c = skip_till_newline(c); - break; - } - case REQ_HP: // man(7) "Hanging indent Paragraph" - { - if (!dl_set[itemdepth]) - { - out_html("
"); - dl_set[itemdepth] = 1; - } - out_html("
\n"); - still_dd = true; - c = skip_till_newline(c); - curpos = 0; - break; - } - case REQ_PD: // man(7) "Paragraph Distance" - { - c = skip_till_newline(c); - break; - } - case REQ_Rs: // mdoc(7) "Relative margin Start" - case REQ_RS: // man(7) "Relative margin Start" - { - c += j; - getArguments(c, args); - j = 1; - if (args.count() > 0) scan_expression(args[0].data(), &j); - if (j >= 0) - { - itemdepth++; - dl_set[itemdepth] = 0; - out_html("
"); - listItemStack.push("DD"); - curpos = 0; - } - break; - } - case REQ_Re: // mdoc(7) "Relative margin End" - case REQ_RE: // man(7) "Relative margin End" - { - if (itemdepth > 0) - { - if (dl_set[itemdepth]) out_html("
"); - out_html("
\n"); - itemdepth--; - } - c = skip_till_newline(c); - curpos = 0; - break; - } - case REQ_SB: // man(7) "Small; Bold" - { - out_html(set_font("B")); - out_html(""); - c = scan_troff(c + j, 1, NULL); - out_html(""); - out_html(set_font("R")); - break; - } - case REQ_SM: // man(7) "SMall" - { - c = c + j; - if (*c == '\n') c++; - out_html(""); - c = scan_troff(c, 1, NULL); - out_html(""); - break; - } - case REQ_Ss: // mdoc(7) "Sub Section" - mandoc_command = 1; - case REQ_SS: // mdoc(7) "Sub Section" - mode = true; - case REQ_Sh: // mdoc(7) "Sub Header" - /* hack for fallthru from above */ - mandoc_command = !mode || mandoc_command; - case REQ_SH: // man(7) "Sub Header" - { - c = c + j; - if (*c == '\n') c++; - while (itemdepth || dl_set[itemdepth]) - { - out_html("
\n"); - if (dl_set[itemdepth]) - dl_set[itemdepth] = 0; - else if (itemdepth > 0) - itemdepth--; - } - out_html(set_font("R")); - out_html(change_to_size(0)); - if (!fillout) - { - fillout = 1; - out_html("
"); - } - trans_char(c, '"', '\a'); - if (section) - { - out_html("\n"); - section = 0; - } - if (mode) - out_html("\n

"); - else - out_html("\n

"); - mandoc_synopsis = qstrncmp(c, "SYNOPSIS", 8) == 0; - c = mandoc_command ? scan_troff_mandoc(c, 1, NULL) : scan_troff(c, 1, NULL); - if (mode) - out_html("

\n"); - else - out_html("\n"); - - out_html("
\n"); - section = 1; - curpos = 0; - break; - } - case REQ_Sx: // mdoc(7) - { - // reference to a section header - out_html(set_font("B")); - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - c = scan_troff(c, 1, NULL); - out_html(set_font("R")); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_TS: // Table Start tbl(1) - { - c = scan_table(c); - break; - } - case REQ_Dt: /* mdoc(7) */ - mandoc_command = true; - case REQ_TH: // man(7) "Title Header" - { - if (!output_possible) - { - c += j; - getArguments(c, args); - output_possible = true; - out_html(DOCTYPE"\n\n"); - out_html("\n"); - out_html(""); - if ( args.count() ) - { - // work around the problem that in a title no HTML tags are allowed - // but args[0] can have formatting escapes, e.g. to switch a font - // which results in a HTML tag added to the output - char *result = 0; - scan_troff(args[0].data(), 0, &result); - char *p = result; - QByteArray title; - while ( *p ) - { - if ( *p == '<' ) // tag begin -> skip whole tag - { - for (p++; *p && (*p != '>'); p++) ; - if ( *p ) p++; - } - if ( *p ) - title += *p++; - } - ignore_links = true; - title += '\n'; // needed so that out_html flushes buffer and ignore_links works - out_html(title); - ignore_links = false; - delete [] result; - } - out_html(" Manpage\n"); - - // KDE defaults. - out_html("\n"); - - // Output our custom stylesheet. - out_html("\n"); - - // Some elements need background images, but this - // could not be included in the stylesheet, - // include it now. - out_html("\n\n" - ); - - out_html("\n"); - - out_html("\n\n"); - out_html("\n\n"); - - out_html("
\n"); - out_html("
\n"); - out_html("\"top-kde\" "); - if ( args.count() ) - scan_troff(args[0].data(), 0, NULL); - out_html(" - KDE Man Page Viewer"); - out_html("
\n"); - - out_html("
\n"); - out_html("

"); - if ( args.count() ) - scan_troff(args[0].data(), 0, NULL); - out_html("

\n"); - if (args.count() > 1) - { - out_html("Section: "); - if ( !mandoc_command && (args.count() > 4) ) - scan_troff(args[4].data(), 0, NULL); - else - out_html(section_name(args[1].data())); - out_html(" ("); - scan_troff(args[1].data(), 0, NULL); - out_html(")\n"); - } - else - { - out_html("Section not specified"); - } - } - else - { - kWarning(7107) << ".TH found but output not possible" ; - c = skip_till_newline(c); - } - curpos = 0; - break; - } - case REQ_TX: // mdoc(7) - { - c += j; - getArguments(c, args); - out_html(set_font("I")); - const char *c2 = lookup_abbrev(args[0]); - curpos += qstrlen(c2); - out_html(c2); - out_html(set_font("R")); - if (args.count() > 1) - out_html(args[1]); - break; - } - case REQ_rm: // groff(7) "ReMove" - /* .rm xx : Remove request, macro or string */ - mode = true; - case REQ_rn: // groff(7) "ReName" - /* .rn xx yy : Rename request, macro or string xx to yy */ - { - kDebug(7107) << "start .rm/.rn"; - c += j; - const QByteArray name(scan_identifier(c)); - if (name.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty origin string to remove/rename"; - break; - } - QByteArray name2; - if (!mode) - { - while (*c && isspace(*c) && *c != '\n') ++c; - name2 = scan_identifier(c); - if (name2.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty destination string to rename"; - break; - } - } - c = skip_till_newline(c); - QMap::iterator it = s_stringDefinitionMap.find(name); - if (it == s_stringDefinitionMap.end()) - { - kDebug(7107) << "EXCEPTION: cannot find string to rename or remove: " << BYTEARRAY(name); - } - else - { - if (mode) - { - // .rm ReMove - s_stringDefinitionMap.remove(name); // ### QT4: removeAll - } - else - { - // .rn ReName - StringDefinition def = (*it); - s_stringDefinitionMap.remove(name); // ### QT4: removeAll - s_stringDefinitionMap.insert(name2, def); - } - } - kDebug(7107) << "end .rm/.rn"; - break; - } - case REQ_nx: - case REQ_in: // groff(7) "INdent" - { - /* .in +-N : Indent */ - c = skip_till_newline(c); - break; - } - case REQ_nr: // groff(7) "Number Register" - { - kDebug(7107) << "start .nr"; - c += j; - const QByteArray name(scan_identifier(c)); - if (name.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty name for register variable"; - break; - } - while (*c && (*c == ' ' || *c == '\t')) c++; - int sign = 0; - if (*c && (*c == '+' || *c == '-')) - { - if (*c == '+') - sign = 1; - else if (*c == '-') - sign = -1; - } - int value = 0; - int increment = 0; - c = scan_expression(c, &value); - if (*c && *c != '\n') - { - while (*c && (*c == ' ' || *c == '\t')) c++; - c = scan_expression(c, &increment); - } - c = skip_till_newline(c); - QMap ::iterator it = s_numberDefinitionMap.find(name); - if (it == s_numberDefinitionMap.end()) - { - if (sign < 1) - value = -value; - NumberDefinition def(value, increment); - s_numberDefinitionMap.insert(name, def); - } - else - { - if (sign > 0) - (*it).m_value += value; - else if (sign < 0) - (*it).m_value += - value; - else - (*it).m_value = value; - (*it).m_increment = increment; - } - kDebug(7107) << "end .nr"; - break; - } - case REQ_am: // groff(7) "Append Macro" - /* .am xx yy : append to a macro. */ - /* define or handle as .ig yy */ - mode = true; - // fallthrough - case REQ_de: // groff(7) "DEfine macro" - case REQ_de1: // groff(7) "DEfine macro" - { - /* .de xx yy : define or redefine macro xx; end at .yy (..) */ - /* define or handle as .ig yy */ - kDebug(7107) << "Start .am/.de"; - c += j; - getArguments(c, args); - if ( args.count() == 0 ) - break; - - const QByteArray name(args[0]); - - QByteArray endmacro; - if (args.count() == 1) - endmacro = ".."; - else - endmacro = "." + args[1]; // krazy:exclude=doublequote_chars - - sl = c; - while (*c && qstrncmp(c, endmacro, endmacro.length())) - c = skip_till_newline(c); - - QByteArray macro; - while (sl != c) - { - if (sl[0] == '\\' && sl[1] == '\\') - { - macro += '\\'; - sl++; - } - else - macro += *sl; - sl++; - } - - QMap::iterator it = s_stringDefinitionMap.find(name); - if (it == s_stringDefinitionMap.end()) - { - StringDefinition def; - def.m_length = 0; - def.m_output = macro; - s_stringDefinitionMap.insert(name, def); - } - else if (mode) - { - // .am Append Macro - (*it).m_length = 0; // It could be formerly a string - if (!(*it).m_output.endsWith('\n')) - (*it).m_output += '\n'; - (*it).m_output += macro; - } - else - { - // .de DEfine macro - (*it).m_length = 0; // It could be formerly a string - (*it).m_output = macro; - } - c = skip_till_newline(c); - kDebug(7107) << "End .am/.de"; - break; - } - case REQ_Bl: // mdoc(7) "Begin List" - { - char list_options[NULL_TERMINATED(MED_STR_MAX)]; - char *nl = strchr(c, '\n'); - c = c + j; - if (dl_set[itemdepth]) - { - /* These things can nest. */ - itemdepth++; - } - if (nl) - { - /* Parse list options */ - strlimitcpy(list_options, c, nl - c, MED_STR_MAX); - } - if (strstr(list_options, "-bullet")) - { - /* HTML Unnumbered List */ - dl_set[itemdepth] = BL_BULLET_LIST; - out_html("
    \n"); - } - else if (strstr(list_options, "-enum")) - { - /* HTML Ordered List */ - dl_set[itemdepth] = BL_ENUM_LIST; - out_html("
      \n"); - } - else - { - /* HTML Descriptive List */ - dl_set[itemdepth] = BL_DESC_LIST; - out_html("
      \n"); - } - curpos = 0; - c = skip_till_newline(c); - break; - } - case REQ_El: // mdoc(7) "End List" - { - checkListStack(); - c = c + j; - if (dl_set[itemdepth] & BL_DESC_LIST) - out_html("
      \n"); - else if (dl_set[itemdepth] & BL_BULLET_LIST) - out_html("
\n"); - else if (dl_set[itemdepth] & BL_ENUM_LIST) - out_html("\n"); - dl_set[itemdepth] = 0; - if (itemdepth > 0) itemdepth--; - if ( !fillout ) - out_html(NEWLINE); - - curpos = 0; - c = skip_till_newline(c); - break; - } - case REQ_It: // mdoc(7) "list ITem" - { - checkListStack(); - c = c + j; - //if (qstrncmp(c, "Xo", 2) == 0 && isspace(*(c + 2))) - //c = skip_till_newline(c); - if (dl_set[itemdepth] & BL_DESC_LIST) - { - out_html("
"); - out_html(set_font("B")); - if (*c == '\n') - { - /* Don't allow embedded comms after a newline */ - c++; - c = scan_troff(c, 1, NULL); - } - else - { - /* Do allow embedded comms on the same line. */ - c = scan_troff_mandoc(c, 1, NULL); - } - out_html(set_font("R")); - out_html("
"); - out_html(NEWLINE); - out_html("
"); - listItemStack.push("DD"); - } - else if (dl_set[itemdepth] & (BL_BULLET_LIST | BL_ENUM_LIST)) - { - out_html("
  • "); - listItemStack.push("LI"); - c = scan_troff_mandoc(c, 1, NULL); - out_html(NEWLINE); - } - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Bk: /* mdoc(7) */ - case REQ_Ek: /* mdoc(7) */ - case REQ_Dd: /* mdoc(7) */ - case REQ_Os: // mdoc(7) "Operating System" - case REQ_Sm: // mdoc(7) space mode - c = skip_till_newline(c); // TODO - break; - case REQ_Bt: // mdoc(7) "Beta Test" - { - //trans_char(c, '"', '\a'); - //c = c + j; - out_html(" is currently in beta test."); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_At: /* mdoc(7) */ - case REQ_Fx: /* mdoc(7) */ - case REQ_Nx: /* mdoc(7) */ - case REQ_Ox: /* mdoc(7) */ - case REQ_Bx: /* mdoc(7) */ - case REQ_Ux: /* mdoc(7) */ - case REQ_Dx: /* mdoc(7) */ - { - bool parsable = true; - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - if (request == REQ_At) - { - out_html("AT&T UNIX "); - parsable = false; - } - else if (request == REQ_Fx) - { - out_html("FreeBSD "); - parsable = false; - } - else if (request == REQ_Nx) - out_html("NetBSD "); - else if (request == REQ_Ox) - out_html("OpenBSD "); - else if (request == REQ_Bx) - out_html("BSD "); - else if (request == REQ_Ux) - out_html("UNIX "); - else if (request == REQ_Dx) - out_html("DragonFly "); - if (parsable) - c = scan_troff_mandoc(c, 1, 0); - else - c = scan_troff(c, 1, 0); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Dl: /* mdoc(7) */ - { - c = c + j; - out_html(NEWLINE); - out_html("
    "); - if (*c == '\n') c++; - c = scan_troff_mandoc(c, 1, NULL); - out_html("
    "); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Bd: /* mdoc(7) */ - { /* Seems like a kind of example/literal mode */ - char bd_options[NULL_TERMINATED(MED_STR_MAX)]; - char *nl = strchr(c, '\n'); - c = c + j; - if (nl) - strlimitcpy(bd_options, c, nl - c, MED_STR_MAX); - out_html(NEWLINE); - mandoc_bd_options = 0; /* Remember options for terminating Bl */ - if (strstr(bd_options, "-offset indent")) - { - mandoc_bd_options |= BD_INDENT; - out_html("
    \n"); - } - if (strstr(bd_options, "-literal") || strstr(bd_options, "-unfilled")) - { - if (fillout) - { - mandoc_bd_options |= BD_LITERAL; - out_html(set_font("R")); - out_html(change_to_size('0')); - out_html("
    \n");
    -            }
    -            curpos = 0;
    -            fillout = 0;
    -          }
    -          c = skip_till_newline(c);
    -          break;
    -        }
    -        case REQ_Ed:    /* mdoc(7) */
    -        {
    -          if (mandoc_bd_options & BD_LITERAL)
    -          {
    -            if (!fillout)
    -            {
    -              out_html(set_font("R"));
    -              out_html(change_to_size('0'));
    -              out_html("
    \n"); - } - } - if (mandoc_bd_options & BD_INDENT) - out_html("
    \n"); - curpos = 0; - fillout = 1; - c = skip_till_newline(c); - break; - } - case REQ_Be: /* mdoc(7) */ - { - c = c + j; - if (fillout) - out_html("

    "); - else - { - out_html(NEWLINE); - } - curpos = 0; - c = skip_till_newline(c); - break; - } - case REQ_Xr: /* mdoc(7) */ // ### FIXME: it should issue a directly - { - /* Translate xyz 1 to xyz(1) - * Allow for multiple spaces. Allow the section to be missing. - */ - char buff[NULL_TERMINATED(MED_STR_MAX)]; - char *bufptr; - trans_char(c, '"', '\a'); - bufptr = buff; - c = c + j; - if (*c == '\n') c++; /* Skip spaces */ - while (isspace(*c) && *c != '\n') c++; - while (isalnum(*c) || *c == '.' || *c == ':' || *c == '_' || *c == '-') - { - /* Copy the xyz part */ - *bufptr = *c; - bufptr++; - if (bufptr >= buff + MED_STR_MAX) break; - c++; - } - while (isspace(*c) && *c != '\n') c++; /* Skip spaces */ - if (isdigit(*c)) - { - /* Convert the number if there is one */ - *bufptr = '('; - bufptr++; - if (bufptr < buff + MED_STR_MAX) - { - while (isalnum(*c)) - { - *bufptr = *c; - bufptr++; - if (bufptr >= buff + MED_STR_MAX) break; - c++; - } - if (bufptr < buff + MED_STR_MAX) - { - *bufptr = ')'; - bufptr++; - } - } - } - while (*c != '\n') - { - /* Copy the remainder */ - if (!isspace(*c)) - { - *bufptr = *c; - bufptr++; - if (bufptr >= buff + MED_STR_MAX) break; - } - c++; - } - *bufptr = '\n'; - bufptr[1] = 0; - scan_troff_mandoc(buff, 1, NULL); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Fl: // mdoc(7) "FLags" - { - //trans_char(c, '"', '\a'); - c += j; - QList argPointers; - getArguments(c, args, &argPointers); - out_html(set_font("B")); - out_html("-"); - if ( args.count() == 0 ) - { - /*out_html("-");*/ // stdin or stdout - } - else - { - if ( argPointers.count() ) - scan_troff_mandoc(argPointers[0], 1, NULL); - /* - for (i = 0; i < args.count(); ++i) - { - if (ispunct(args[i][0]) && args[i][0] != '-') - { - scan_troff_mandoc(argPointers[i], 1, NULL); - } - else - { - if (i > 0) - out_html(" "); // Put a space between flags - out_html("-"); - scan_troff_mandoc(argPointers[i], 1, NULL); - } - } - */ - } - out_html(set_font("R")); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Pa: /* mdoc(7) */ - case REQ_Pf: /* mdoc(7) */ - { - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - c = scan_troff_mandoc(c, 1, NULL); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Pp: /* mdoc(7) */ - { - if (fillout) - out_html("

    \n"); - else - { - out_html(NEWLINE); - } - curpos = 0; - c = skip_till_newline(c); - break; - } - case REQ_Aq: // mdoc(7) "Angle bracket Quote" - c = process_quote(c, j, "<", ">"); - break; - case REQ_Bq: // mdoc(7) "Bracket Quote" - c = process_quote(c, j, "[", "]"); - break; - case REQ_Dq: // mdoc(7) "Double Quote" - c = process_quote(c, j, "“", "”"); - break; - case REQ_Pq: // mdoc(7) "Parenthese Quote" - c = process_quote(c, j, "(", ")"); - break; - case REQ_Qq: // mdoc(7) "straight double Quote" - c = process_quote(c, j, """, """); - break; - case REQ_Sq: // mdoc(7) "Single Quote" - c = process_quote(c, j, "‘", "’"); - break; - case REQ_Op: /* mdoc(7) */ - { - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - out_html(set_font("R")); - out_html("["); - c = scan_troff_mandoc(c, 1, NULL); - out_html(set_font("R")); - out_html("]"); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Oo: /* mdoc(7) */ - { - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - out_html(set_font("R")); - out_html("["); - c = scan_troff_mandoc(c, 1, NULL); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Oc: /* mdoc(7) */ - { - trans_char(c, '"', '\a'); - c = c + j; - c = scan_troff_mandoc(c, 1, NULL); - out_html(set_font("R")); - out_html("]"); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Ql: /* mdoc(7) */ - { - /* Single quote first word in the line */ - char *sp; - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - sp = c; - do - { - /* Find first whitespace after the - * first word that isn't a mandoc macro - */ - while (*sp && isspace(*sp)) sp++; - while (*sp && !isspace(*sp)) sp++; - } - while (*sp && isupper(*(sp - 2)) && islower(*(sp - 1))); - - /* Use a newline to mark the end of text to - * be quoted - */ - if (*sp) *sp = '\n'; - out_html("`"); /* Quote the text */ - c = scan_troff_mandoc(c, 1, NULL); - out_html("'"); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Ar: /* mdoc(7) */ - { - /* parse one line in italics */ - out_html(set_font("I")); - c += j; - QList argPointers; - getArguments(c, args, &argPointers); - if ( args.count() == 0 ) - { - // An empty Ar means "file ..." - out_html("file ..."); - } - else - { - if ( argPointers.count() ) - c = scan_troff_mandoc(argPointers[0], 1, NULL); - } - - out_html(set_font("R")); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Em: /* mdoc(7) */ - { - out_html(""); - trans_char(c, '"', '\a'); - c += j; - if (*c == '\n') c++; - c = scan_troff_mandoc(c, 1, NULL); - out_html(""); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Ad: /* mdoc(7) */ - case REQ_Va: /* mdoc(7) */ - case REQ_Xo: /* mdoc(7) */ - case REQ_Xc: /* mdoc(7) */ - { - /* parse one line in italics */ - out_html(set_font("I")); - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - c = scan_troff_mandoc(c, 1, NULL); - out_html(set_font("R")); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Nd: /* mdoc(7) */ - { - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - out_html(" - "); - c = scan_troff_mandoc(c, 1, NULL); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Nm: // mdoc(7) "Name Macro" - { - c += j; - QList argPointers; - getArguments(c, args, &argPointers); - - if ( mandoc_name.isEmpty() && args.count() ) - mandoc_name = args[0]; - - out_html(set_font("B")); - - // only show name if - // .Nm (first not-null-length defined name) - // .Nm name - // do not show - // .Nm "" - if ( args.count() == 0 ) - scan_troff(mandoc_name.data(), 0, 0); - else - { - if ( argPointers.count() ) - c = scan_troff_mandoc(argPointers[0], 1, 0); - } - - out_html(set_font("R")); - -#if 0 - if (mandoc_synopsis && mandoc_name_count) - { - /* Break lines only in the Synopsis. - * The Synopsis section seems to be treated - * as a special case - Bummer! - */ - out_html("
    "); - } - else if (!mandoc_name_count) - { - const char *nextbreak = strchr(c, '\n'); - const char *nextspace = strchr(c, ' '); - if (nextspace < nextbreak) - nextbreak = nextspace; - - if (nextbreak) - { - /* Remember the name for later. */ - strlimitcpy(mandoc_name, c, nextbreak - c, SMALL_STR_MAX); - } - } - mandoc_name_count++; - - out_html(set_font("B")); - // ### FIXME: fill_words must be used - while (*c == ' ' || *c == '\t') c++; - if ((tolower(*c) >= 'a' && tolower(*c) <= 'z') || (*c >= '0' && *c <= '9')) - { - // alphanumeric argument - c = scan_troff_mandoc(c, 1, NULL); - out_html(set_font("R")); - out_html(NEWLINE); - } - else - { - /* If Nm has no argument, use one from an earlier - * Nm command that did have one. Hope there aren't - * too many commands that do this. - */ - out_html(mandoc_name); - out_html(set_font("R")); - } -#endif - - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Cd: /* mdoc(7) */ - case REQ_Cm: /* mdoc(7) */ - case REQ_Ic: /* mdoc(7) */ - case REQ_Ms: /* mdoc(7) */ - case REQ_Or: /* mdoc(7) */ - case REQ_Sy: /* mdoc(7) */ - { - /* parse one line in bold */ - out_html(set_font("B")); - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - c = scan_troff_mandoc(c, 1, NULL); - out_html(set_font("R")); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_Ta: /* mdoc(7) */ - { - // ### FIXME: this is a simplification - // for a list item element in a ".Bl -tag -width indent" type list - // man:mdoc says: "indent == Six constant width spaces" - out_html("      "); - c = c + j; - if (*c == '\n') c++; - break; - } - // ### FIXME: punctuation is handled badly! - case REQ_Dv: /* mdoc(7) */ - case REQ_Ev: /* mdoc(7) */ - case REQ_Fr: /* mdoc(7) */ - case REQ_Li: /* mdoc(7) */ - case REQ_No: /* mdoc(7) */ - case REQ_Ns: /* mdoc(7) */ - case REQ_Tn: /* mdoc(7) */ - case REQ_nN: /* mdoc(7) */ - { - trans_char(c, '"', '\a'); - c = c + j; - if (*c == '\n') c++; - out_html(set_font("B")); - c = scan_troff_mandoc(c, 1, NULL); - out_html(set_font("R")); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_perc_A: /* mdoc(7) biblio stuff */ - case REQ_perc_D: - case REQ_perc_N: - case REQ_perc_O: - case REQ_perc_P: - case REQ_perc_Q: - case REQ_perc_V: - { - c = c + j; - if (*c == '\n') c++; - c = scan_troff(c, 1, NULL); /* Don't allow embedded mandoc coms */ - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_perc_B: - case REQ_perc_J: - case REQ_perc_R: - case REQ_perc_T: - { - c = c + j; - out_html(set_font("I")); - if (*c == '\n') c++; - c = scan_troff(c, 1, NULL); /* Don't allow embedded mandoc coms */ - out_html(set_font("R")); - if (fillout) - curpos++; - else - curpos = 0; - break; - } - case REQ_URL: // man(7) ".URL url link trailer" - { - c += j; - - getArguments(c, args); - ignore_links = true; - out_html("
    0 ) - scan_troff(args[0].data(), 0, 0); - - out_html("\">"); - if ( args.count() > 1 ) - scan_troff(args[1].data(), 0, 0); - - out_html("\n"); // trailing newline important to make ignore_links work - ignore_links = false; - - if ( args.count() > 2 ) - scan_troff(args[2].data(), 1, NULL); - - break; - } - case REQ_tr: // translate TODO - { - c = skip_till_newline(c); - break; - } - case REQ_nroff: // groff(7) "NROFF mode" - mode = true; - case REQ_troff: // groff(7) "TROFF mode" - { - s_nroff = mode; - c += j; - c = skip_till_newline(c); - break; - } - case REQ_als: // groff(7) "ALias String" - { - /* - * Note an alias is supposed to be something like a hard link - * However to make it simplier, we only copy the string. - */ - // Be careful: unlike .rn, the destination is first, origin is second - kDebug(7107) << "start .als"; - c += j; - const QByteArray name(scan_identifier(c)); - if (name.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty destination string to alias"; - break; - } - while (*c && isspace(*c) && *c != '\n') ++c; - const QByteArray name2(scan_identifier(c)); - if (name2.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty origin string to alias"; - break; - } - kDebug(7107) << "Alias " << BYTEARRAY(name2) << " to " << BYTEARRAY(name); - c = skip_till_newline(c); - if (name == name2) - { - kDebug(7107) << "EXCEPTION: same origin and destination string to alias: " << BYTEARRAY(name); - break; - } - // Second parameter is origin (unlike in .rn) - QMap::iterator it = s_stringDefinitionMap.find(name2); - if (it == s_stringDefinitionMap.end()) - { - kDebug(7107) << "EXCEPTION: cannot find string to make alias of " << BYTEARRAY(name2); - } - else - { - StringDefinition def = (*it); - s_stringDefinitionMap.insert(name, def); - } - kDebug(7107) << "end .als"; - break; - } - case REQ_rr: // groff(7) "Remove number Register" - { - kDebug(7107) << "start .rr"; - c += j; - const QByteArray name(scan_identifier(c)); - if (name.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty origin string to remove/rename: "; - break; - } - c = skip_till_newline(c); - QMap ::iterator it = s_numberDefinitionMap.find(name); - if (it == s_numberDefinitionMap.end()) - { - kDebug(7107) << "EXCEPTION: trying to remove inexistant number register: "; - } - else - { - s_numberDefinitionMap.remove(name); - } - kDebug(7107) << "end .rr"; - break; - } - case REQ_rnn: // groff(7) "ReName Number register" - { - kDebug(7107) << "start .rnn"; - c += j; - const QByteArray name(scan_identifier(c)); - if (name.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty origin to remove/rename number register"; - break; - } - while (*c && isspace(*c) && *c != '\n') ++c; - const QByteArray name2(scan_identifier(c)); - if (name2.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty destination to rename number register"; - break; - } - c = skip_till_newline(c); - QMap::iterator it = s_numberDefinitionMap.find(name); - if (it == s_numberDefinitionMap.end()) - { - kDebug(7107) << "EXCEPTION: cannot find number register to rename" << BYTEARRAY(name); - } - else - { - NumberDefinition def = (*it); - s_numberDefinitionMap.remove(name); // ### QT4: removeAll - s_numberDefinitionMap.insert(name2, def); - } - kDebug(7107) << "end .rnn"; - break; - } - case REQ_aln: // groff(7) "ALias Number Register" - { - /* - * Note an alias is supposed to be something like a hard link - * However to make it simplier, we only copy the string. - */ - // Be careful: unlike .rnn, the destination is first, origin is second - kDebug(7107) << "start .aln"; - c += j; - const QByteArray name(scan_identifier(c)); - if (name.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty destination number register to alias"; - break; - } - while (*c && isspace(*c) && *c != '\n') ++c; - const QByteArray name2(scan_identifier(c)); - if (name2.isEmpty()) - { - kDebug(7107) << "EXCEPTION: empty origin number register to alias"; - break; - } - kDebug(7107) << "Alias " << BYTEARRAY(name2) << " to " << BYTEARRAY(name); - c = skip_till_newline(c); - if (name == name2) - { - kDebug(7107) << "EXCEPTION: same origin and destination number register to alias: " << BYTEARRAY(name); - break; - } - // Second parameter is origin (unlike in .rnn) - QMap::iterator it = s_numberDefinitionMap.find(name2); - if (it == s_numberDefinitionMap.end()) - { - kDebug(7107) << "EXCEPTION: cannot find string to make alias: " << BYTEARRAY(name2); - } - else - { - NumberDefinition def = (*it); - s_numberDefinitionMap.insert(name, def); - } - kDebug(7107) << "end .aln"; - break; - } - case REQ_shift: // groff(7) "SHIFT parameter" - { - c += j; - h = c; - while (*h && *h != '\n' && isdigit(*h)) ++h; - const char tempchar = *h; - *h = 0; - const QByteArray number(c); - *h = tempchar; - c = skip_till_newline(h); - unsigned int result = 1; // Numbers of shifts to do - if (!number.isEmpty()) - { - bool ok = false; - result = number.toUInt(&ok); - if (!ok || result < 1) - result = 1; - } - for (unsigned int num = 0; num < result; ++num) - { - if (!s_argumentList.isEmpty()) - s_argumentList.pop_front(); - } - break; - } - case REQ_while: // groff(7) "WHILE loop" - { - request_while(c, j, mandoc_command); - break; - } - case REQ_break: // groff(7) Break out of a while loop. - { - c += j; - break_the_while_loop = true; - break; - } - case REQ_do: // groff(7) "DO command" - { - // ### HACK: we just replace do by a \n and a . - *c = '\n'; - c++; - *c = '.'; - // The . will be treated as next character - break; - } - case REQ_nop: // groff(7) nop - { - c += j; - break; - } - default: - { - if (mandoc_command && - ((isupper(*c) && islower(*(c + 1))) - || (islower(*c) && isupper(*(c + 1))))) - { - /* Let through any mdoc(7) commands that haven't - * been delt with. - * I don't want to miss anything out of the text. - */ - char buf[4] = { c[0], c[1], ' ', 0 }; - out_html(buf); /* Print the command (it might just be text). */ - c = c + j; - trans_char(c, '"', '\a'); - if (*c == '\n') c++; - out_html(set_font("R")); - c = scan_troff(c, 1, NULL); - out_html(NEWLINE); - if (fillout) - curpos++; - else - curpos = 0; - } - else - c = skip_till_newline(c); - break; - } - } - } - } - if (fillout) - { - out_html(NEWLINE); - curpos++; - } - return c; -} - -//--------------------------------------------------------------------- - -static int contained_tab = 0; -static bool mandoc_line = false; // Signals whether to look for embedded mandoc commands. - -static char *scan_troff(char *c, bool san, char **result) -{ /* san : stop at newline */ - char *h; - char intbuff[NULL_TERMINATED(MED_STR_MAX)]; - int ibp = 0; -#define FLUSHIBP if (ibp) { intbuff[ibp]=0; out_html(intbuff); ibp=0; } - char *exbuffer; - int exbuffpos, exbuffmax, exnewline_for_fun; - bool exscaninbuff; - int usenbsp = 0; - - exbuffer = buffer; - exbuffpos = buffpos; - exbuffmax = buffmax; - exnewline_for_fun = newline_for_fun; - exscaninbuff = scaninbuff; - newline_for_fun = 0; - if (result) - { - if (*result) - { - buffer = *result; - buffpos = qstrlen(buffer); - buffmax = buffpos; - } - else - { - buffer = new char[LARGE_STR_MAX + 1]; - buffpos = 0; - buffmax = LARGE_STR_MAX; - } - scaninbuff = true; - } - h = c; // ### FIXME below are too many tests that may go before the position of c - /* start scanning */ - - while (h && *h && (!san || newline_for_fun || (*h != '\n')) && !break_the_while_loop) - { - if (*h == escapesym) - { - h++; - FLUSHIBP; - // ###HACK: I think after escape expansion, the line should be reparsed - // (this seems to be what troff does), but it would double-escape - // HTML chars, e.g. the first escape produces ""); - curpos = 0; - still_dd = false; - } - switch (*h) - { - case '&': - intbuff[ibp++] = '&'; - intbuff[ibp++] = 'a'; - intbuff[ibp++] = 'm'; - intbuff[ibp++] = 'p'; - intbuff[ibp++] = ';'; - curpos++; - break; - case '<': - intbuff[ibp++] = '&'; - intbuff[ibp++] = 'l'; - intbuff[ibp++] = 't'; - intbuff[ibp++] = ';'; - curpos++; - break; - case '>': - intbuff[ibp++] = '&'; - intbuff[ibp++] = 'g'; - intbuff[ibp++] = 't'; - intbuff[ibp++] = ';'; - curpos++; - break; - case '"': - intbuff[ibp++] = '&'; - intbuff[ibp++] = 'q'; - intbuff[ibp++] = 'u'; - intbuff[ibp++] = 'o'; - intbuff[ibp++] = 't'; - intbuff[ibp++] = ';'; - curpos++; - break; - case '\n': - if (h != c && h[-1] == '\n' && fillout) - { - intbuff[ibp++] = '<'; - intbuff[ibp++] = 'P'; - intbuff[ibp++] = '>'; - } - if (contained_tab && fillout) - { - intbuff[ibp++] = '<'; - intbuff[ibp++] = 'B'; - intbuff[ibp++] = 'R'; - intbuff[ibp++] = '>'; - } - contained_tab = 0; - curpos = 0; - usenbsp = 0; - intbuff[ibp++] = '\n'; - FLUSHIBP; - break; - case '\t': - { - int curtab = 0; - contained_tab = 1; - FLUSHIBP; - /* like a typewriter, not like TeX */ - tabstops[19] = curpos + 1; - while (curtab < maxtstop && tabstops[curtab] <= curpos) - curtab++; - if (curtab < maxtstop) - { - if (!fillout) - { - while (curpos < tabstops[curtab]) - { - intbuff[ibp++] = ' '; - if (ibp > 480) - { - FLUSHIBP; - } - curpos++; - } - } - else - { - out_html(""); - while (curpos < tabstops[curtab]) - { - out_html(" "); - curpos++; - } - out_html(""); - } - } - } - break; - default: - if (*h == ' ' && (h[-1] == '\n' || usenbsp)) - { - FLUSHIBP; - if (!usenbsp && fillout) - { - out_html("
    "); - curpos = 0; - } - usenbsp = fillout; - if (usenbsp) out_html(" "); - else intbuff[ibp++] = ' '; - } - else if (*h > 31 && *h < 127) intbuff[ibp++] = *h; - else if (((unsigned char)(*h)) > 127) - { - intbuff[ibp++] = *h; - } - curpos++; - break; - } - if (ibp > (MED_STR_MAX - 20)) FLUSHIBP; - h++; - } - } - FLUSHIBP; - if (buffer) buffer[buffpos] = '\0'; - if (san && h && *h) h++; - newline_for_fun = exnewline_for_fun; - if (result) - { - *result = buffer; - buffer = exbuffer; - buffpos = exbuffpos; - buffmax = exbuffmax; - scaninbuff = exscaninbuff; - } - - return h; -} - -//--------------------------------------------------------------------- - -static char *scan_troff_mandoc(char *c, bool san, char **result) -{ - char *ret; - char *end = c; - bool oldval = mandoc_line; - mandoc_line = true; - while (*end && *end != '\n') - { - end++; - } - - if (end > c + 2 - && ispunct(*(end - 1)) - && isspace(*(end - 2)) && *(end - 2) != '\n') - { - /* Don't format lonely punctuation E.g. in "xyz ," format - * the xyz and then append the comma removing the space. - */ - *(end - 2) = '\n'; - ret = scan_troff(c, san, result); - *end = 0; - out_html(end - 1); // output the punct char - *end = '\n'; - ret = end; - } - else - { - ret = scan_troff(c, san, result); - } - mandoc_line = oldval; - return ret; -} - -//--------------------------------------------------------------------- -// Entry point - -void scan_man_page(const char *man_page) -{ - if (!man_page) - return; - - kDebug(7107) << "Start scanning man page"; - - // ### Do more init - // Unlike man2html, we actually call this several times, hence the need to - // properly cleanup all those static vars - s_ifelseval.clear(); - - s_characterDefinitionMap.clear(); - InitCharacterDefinitions(); - - s_stringDefinitionMap.clear(); - InitStringDefinitions(); - - s_numberDefinitionMap.clear(); - InitNumberDefinitions(); - - s_argumentList.clear(); - listItemStack.clear(); - - section = 0; - - s_dollarZero = ""; // No macro called yet! - mandoc_name = ""; - - output_possible = false; - int strLength = qstrlen(man_page); - char *buf = new char[strLength + 2]; - qstrcpy(buf + 1, man_page); - buf[0] = '\n'; - - kDebug(7107) << "Parse man page"; - - scan_troff(buf + 1, 0, NULL); - - kDebug(7107) << "Man page parsed!"; - - while (itemdepth || dl_set[itemdepth]) - { - checkListStack(); - out_html("\n"); - if (dl_set[itemdepth]) dl_set[itemdepth] = 0; - else if (itemdepth > 0) itemdepth--; - } - - out_html(set_font("R")); - out_html(change_to_size(0)); - if (!fillout) - { - fillout = 1; - out_html(""); - } - out_html(NEWLINE); - - if (section) - { - output_real("
  • \n"); - section = 0; - } - - if (output_possible) - { - // The output is buggy wrt to how divs are handled. Fixing it would - // require closing divs before other block-level elements are output, - // and I do not feel like going to find them all. - output_real("
    \n"); - - output_real("
    \n"); -#ifdef SIMPLE_MAN2HTML - output_real("Generated by kio_man"); -#else - output_real("Generated by kio_man, KDE version "); - output_real(Qt::escape(QLatin1String(KDE_VERSION_STRING)).toUtf8()); -#endif - output_real("
    \n\n"); - - output_real("\n\n"); - } - delete [] buf; - - // Release memory - s_characterDefinitionMap.clear(); - s_stringDefinitionMap.clear(); - s_numberDefinitionMap.clear(); - s_argumentList.clear(); - - // reinit static variables for reuse - delete [] buffer; - buffer = 0; - - escapesym = '\\'; - nobreaksym = '\''; - controlsym = '.'; - fieldsym = 0; - padsym = 0; - - buffpos = 0; - buffmax = 0; - scaninbuff = false; - itemdepth = 0; - for (int i = 0; i < 20; i++) - dl_set[i] = 0; - still_dd = false; - for (int i = 0; i < 12; i++) - tabstops[i] = (i + 1) * 8; - maxtstop = 12; - curpos = 0; - - mandoc_name_count = 0; -} - -//--------------------------------------------------------------------- - -#ifdef SIMPLE_MAN2HTML -void output_real(const char *insert) -{ - std::cout << insert; -} - -char *read_man_page(const char *filename) -{ - char *man_buf = NULL; - - FILE *man_stream = NULL; - struct stat stbuf; - size_t buf_size; - if (stat(filename, &stbuf) == -1) - { - std::cerr << "read_man_page: can not find " << filename << std::endl; - return NULL; - } - if (!S_ISREG(stbuf.st_mode)) - { - std::cerr << "read_man_page: no file " << filename << std::endl; - return NULL; - } - buf_size = stbuf.st_size; - man_buf = new char[buf_size + 5]; - man_stream = fopen(filename, "r"); - if (man_stream) - { - man_buf[0] = '\n'; - if (fread(man_buf + 1, 1, buf_size, man_stream) == buf_size) - { - man_buf[buf_size] = '\n'; - man_buf[buf_size + 1] = man_buf[buf_size + 2] = '\0'; - } - else - { - delete [] man_buf; - man_buf = NULL; - } - fclose(man_stream); - } - return man_buf; -} - -#ifndef KIO_MAN_TEST -int main(int argc, char **argv) -{ - cssPath = "."; // krazy:exclude=doublequote_chars - if (argc < 2) - { - std::cerr << "call: " << argv[0] << " \n"; - return 1; - } - if (chdir(argv[1])) - { - char *buf = read_man_page(argv[1]); - if (buf) - { - scan_man_page(buf); - delete [] buf; - } - } - else - { - DIR *dir = opendir("."); - struct dirent *ent; - while ((ent = readdir(dir)) != NULL) - { - std::cerr << "converting " << ent->d_name << std::endl; - char *buf = read_man_page(ent->d_name); - if (buf) - { - scan_man_page(buf); - delete [] buf; - } - } - closedir(dir); - } - return 0; -} -#endif - - -#endif - -// kate: indent-mode cstyle; space-indent on; indent-width 2; replace-tabs on; diff --git a/kioslave/man/man2html.h b/kioslave/man/man2html.h deleted file mode 100644 index bfa62680..00000000 --- a/kioslave/man/man2html.h +++ /dev/null @@ -1,47 +0,0 @@ -/** - * \file man2html.h - * - * Converts man pages to HTML. This kioslave is not part of kdelibs and is - * not public API. - * \internal - */ - -#ifndef MAN2HTML_H -#define MAN2HTML_H - -class QByteArray; - -/** call this with the buffer you have */ -void scan_man_page(const char *man_page); - -/** - * Set the paths to KDE resources - * - * \param cssPath Path to the KDE resources, encoded for CSS - * \since 3.5 - * - */ -extern void setResourcePath(const QByteArray& _cssPath); - -/* - * Sets the path to a CSS file that should be included with the generated - * HTML output. - * - * \param HTML-encoded path to the file to reference for stylesheets. - * \since 4.1 - */ -extern void setCssFile(const QByteArray& _cssFile); - -/** implement this somewhere. It will be called - with HTML contents -*/ -extern void output_real(const char *insert); - -/** - * called for requested man pages. filename can be a - * relative path! Return NULL on errors. The returned - * char array is freed by man2html - */ -extern char *read_man_page(const char *filename); - -#endif // MAN2HTML_H diff --git a/kioslave/man/request_gperf.c b/kioslave/man/request_gperf.c deleted file mode 100644 index 722abaa9..00000000 --- a/kioslave/man/request_gperf.c +++ /dev/null @@ -1,605 +0,0 @@ -/* C++ code produced by gperf version 3.0.4 */ -/* Command-line: gperf -L C++ -F ', REQ_UNKNOWN' -I --null-strings -compare-strncmp requests.gperf */ -/* Computed positions: -k'1,$' */ - -#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ - && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ - && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ - && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ - && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ - && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ - && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ - && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ - && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ - && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ - && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ - && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ - && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ - && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ - && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ - && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ - && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ - && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ - && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ - && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ - && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ - && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ - && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) -/* The character set is not based on ISO-646. */ -#error "gperf generated tables don't work with this execution character set. Please report a bug to ." -#endif - -#line 2 "requests.gperf" -struct Requests { const char *name; RequestNum number; }; -#include - -#define TOTAL_KEYWORDS 155 -#define MIN_WORD_LENGTH 1 -#define MAX_WORD_LENGTH 5 -#define MIN_HASH_VALUE 7 -#define MAX_HASH_VALUE 482 -/* maximum key range = 476, duplicates = 0 */ - -class Perfect_Hash -{ -private: - static inline unsigned int hash (const char *str, unsigned int len); -public: - static struct Requests *in_word_set (const char *str, unsigned int len); -}; - -inline unsigned int -Perfect_Hash::hash (register const char *str, register unsigned int len) -{ - static unsigned short asso_values[] = - { - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 125, 483, 483, 483, 483, 483, 483, 483, 483, 0, - 154, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 94, 225, 483, 135, 5, - 85, 205, 29, 0, 79, 235, 120, 64, 49, 24, - 160, 4, 145, 55, 64, 65, 50, 19, 13, 35, - 483, 225, 483, 483, 483, 483, 483, 69, 59, 255, - 25, 75, 70, 14, 9, 185, 483, 5, 130, 14, - 169, 235, 240, 45, 165, 10, 220, 150, 125, 245, - 40, 5, 0, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, 483 - }; - return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]+3]; -} - -struct Requests * -Perfect_Hash::in_word_set (register const char *str, register unsigned int len) -{ - static struct Requests wordlist[] = - { - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 39 "requests.gperf" - {"BI", REQ_BI}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 79 "requests.gperf" - {"Bk", REQ_Bk}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 123 "requests.gperf" - {"Ns", REQ_Ns}, -#line 75 "requests.gperf" - {"de1", REQ_de1}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 111 "requests.gperf" - {"Nm", REQ_Nm}, - {(char*)0, REQ_UNKNOWN}, -#line 23 "requests.gperf" - {"ps", REQ_ps}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 6 "requests.gperf" - {"ds", REQ_ds}, -#line 31 "requests.gperf" - {"Fd", REQ_Fd}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 110 "requests.gperf" - {"Nd", REQ_Nd}, -#line 91 "requests.gperf" - {"Bd", REQ_Bd}, - {(char*)0, REQ_UNKNOWN}, -#line 67 "requests.gperf" - {"TX", REQ_TX}, - {(char*)0, REQ_UNKNOWN}, -#line 80 "requests.gperf" - {"Ek", REQ_Ek}, -#line 7 "requests.gperf" - {"as", REQ_as}, -#line 144 "requests.gperf" - {"als", REQ_als}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 73 "requests.gperf" - {"am", REQ_am}, -#line 85 "requests.gperf" - {"Fx", REQ_Fx}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 108 "requests.gperf" - {"Em", REQ_Em}, -#line 86 "requests.gperf" - {"Nx", REQ_Nx}, -#line 88 "requests.gperf" - {"Bx", REQ_Bx}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 66 "requests.gperf" - {"TH", REQ_TH}, -#line 14 "requests.gperf" - {"ex", REQ_ex}, -#line 139 "requests.gperf" - {"Bq", REQ_Bq}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 89 "requests.gperf" - {"Ux", REQ_Ux}, -#line 92 "requests.gperf" - {"Ed", REQ_Ed}, -#line 117 "requests.gperf" - {"Sy", REQ_Sy}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 61 "requests.gperf" - {"Sh", REQ_Sh}, -#line 59 "requests.gperf" - {"Ss", REQ_Ss}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 156 "requests.gperf" - {"Sm", REQ_Sm}, -#line 43 "requests.gperf" - {"RI", REQ_RI}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 37 "requests.gperf" - {"Fa", REQ_Fa}, -#line 56 "requests.gperf" - {"RE", REQ_RE}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 64 "requests.gperf" - {"TS", REQ_TS}, -#line 53 "requests.gperf" - {"Rs", REQ_Rs}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 149 "requests.gperf" - {"while", REQ_while}, -#line 62 "requests.gperf" - {"SH", REQ_SH}, -#line 93 "requests.gperf" - {"Be", REQ_Be}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 153 "requests.gperf" - {"break", REQ_break}, -#line 4 "requests.gperf" - {"ab", REQ_ab}, -#line 70 "requests.gperf" - {"nx", REQ_nx}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 152 "requests.gperf" - {"Ta", REQ_Ta}, -#line 74 "requests.gperf" - {"de", REQ_de}, -#line 63 "requests.gperf" - {"Sx", REQ_Sx}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 125 "requests.gperf" - {"nN", REQ_nN}, -#line 105 "requests.gperf" - {"Sq", REQ_Sq}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 113 "requests.gperf" - {"Cm", REQ_Cm}, -#line 103 "requests.gperf" - {"Pq", REQ_Pq}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 109 "requests.gperf" - {"Va", REQ_Va}, -#line 60 "requests.gperf" - {"SS", REQ_SS}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 140 "requests.gperf" - {"Qq", REQ_Qq}, -#line 112 "requests.gperf" - {"Cd", REQ_Cd}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 58 "requests.gperf" - {"SM", REQ_SM}, -#line 22 "requests.gperf" - {"nf", REQ_nf}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 143 "requests.gperf" - {"nroff", REQ_nroff}, -#line 30 "requests.gperf" - {"I", REQ_I}, -#line 54 "requests.gperf" - {"RS", REQ_RS}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 96 "requests.gperf" - {"Pa", REQ_Pa}, -#line 97 "requests.gperf" - {"Pf", REQ_Pf}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 131 "requests.gperf" - {"%Q", REQ_perc_Q}, -#line 95 "requests.gperf" - {"Fl", REQ_Fl}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 47 "requests.gperf" - {"IX", REQ_IX}, -#line 155 "requests.gperf" - {"URL", REQ_URL}, -#line 76 "requests.gperf" - {"Bl", REQ_Bl}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 18 "requests.gperf" - {"el", REQ_el}, -#line 55 "requests.gperf" - {"Re", REQ_Re}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 21 "requests.gperf" - {"ig", REQ_ig}, -#line 11 "requests.gperf" - {"ce", REQ_ce}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 129 "requests.gperf" - {"%O", REQ_perc_O}, -#line 38 "requests.gperf" - {"BR", REQ_BR}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 119 "requests.gperf" - {"Ev", REQ_Ev}, -#line 82 "requests.gperf" - {"Os", REQ_Os}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 77 "requests.gperf" - {"El", REQ_El}, -#line 107 "requests.gperf" - {"Ad", REQ_Ad}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 68 "requests.gperf" - {"rm", REQ_rm}, -#line 120 "requests.gperf" - {"Fr", REQ_Fr}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 32 "requests.gperf" - {"Fn", REQ_Fn}, -#line 115 "requests.gperf" - {"Ms", REQ_Ms}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 128 "requests.gperf" - {"%N", REQ_perc_N}, -#line 132 "requests.gperf" - {"%V", REQ_perc_V}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 46 "requests.gperf" - {"TP", REQ_TP}, -#line 138 "requests.gperf" - {"Aq", REQ_Aq}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 49 "requests.gperf" - {"LP", REQ_LP}, -#line 87 "requests.gperf" - {"Ox", REQ_Ox}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 124 "requests.gperf" - {"Tn", REQ_Tn}, -#line 136 "requests.gperf" - {"%T", REQ_perc_T}, -#line 52 "requests.gperf" - {"PD", REQ_PD}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 104 "requests.gperf" - {"Ql", REQ_Ql}, -#line 147 "requests.gperf" - {"aln", REQ_aln}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 5 "requests.gperf" - {"di", REQ_di}, -#line 20 "requests.gperf" - {"if", REQ_if}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 134 "requests.gperf" - {"%J", REQ_perc_J}, -#line 19 "requests.gperf" - {"ie", REQ_ie}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 121 "requests.gperf" - {"Li", REQ_Li}, -#line 72 "requests.gperf" - {"nr", REQ_nr}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 48 "requests.gperf" - {"P", REQ_P}, -#line 50 "requests.gperf" - {"PP", REQ_PP}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 126 "requests.gperf" - {"%A", REQ_perc_A}, -#line 36 "requests.gperf" - {"Ft", REQ_Ft}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 9 "requests.gperf" - {"c2", REQ_c2}, -#line 83 "requests.gperf" - {"Bt", REQ_Bt}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 29 "requests.gperf" - {"B", REQ_B}, -#line 81 "requests.gperf" - {"Dd", REQ_Dd}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 33 "requests.gperf" - {"Fo", REQ_Fo}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 122 "requests.gperf" - {"No", REQ_No}, -#line 8 "requests.gperf" - {"br", REQ_br}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 13 "requests.gperf" - {"eo", REQ_eo}, -#line 151 "requests.gperf" - {"Dx", REQ_Dx}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 150 "requests.gperf" - {"do", REQ_do}, -#line 99 "requests.gperf" - {"Dq", REQ_Dq}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 34 "requests.gperf" - {"Fc", REQ_Fc}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 28 "requests.gperf" - {"tm", REQ_tm}, -#line 127 "requests.gperf" - {"%D", REQ_perc_D}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 12 "requests.gperf" - {"ec", REQ_ec}, -#line 41 "requests.gperf" - {"IR", REQ_IR}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 44 "requests.gperf" - {"DT", REQ_DT}, -#line 135 "requests.gperf" - {"%R", REQ_perc_R}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 57 "requests.gperf" - {"SB", REQ_SB}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 45 "requests.gperf" - {"IP", REQ_IP}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 130 "requests.gperf" - {"%P", REQ_perc_P}, -#line 154 "requests.gperf" - {"nop", REQ_nop}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 42 "requests.gperf" - {"RB", REQ_RB}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 98 "requests.gperf" - {"Pp", REQ_Pp}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 71 "requests.gperf" - {"in", REQ_in}, -#line 106 "requests.gperf" - {"Ar", REQ_Ar}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 137 "requests.gperf" - {"An", REQ_An}, -#line 35 "requests.gperf" - {"OP", REQ_OP}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 116 "requests.gperf" - {"Or", REQ_Or}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 26 "requests.gperf" - {"ta", REQ_ta}, -#line 145 "requests.gperf" - {"rr", REQ_rr}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 142 "requests.gperf" - {"troff", REQ_troff}, -#line 69 "requests.gperf" - {"rn", REQ_rn}, -#line 146 "requests.gperf" - {"rnn", REQ_rnn}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 10 "requests.gperf" - {"cc", REQ_cc}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 118 "requests.gperf" - {"Dv", REQ_Dv}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 90 "requests.gperf" - {"Dl", REQ_Dl}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 78 "requests.gperf" - {"It", REQ_It}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 40 "requests.gperf" - {"IB", REQ_IB}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 148 "requests.gperf" - {"shift", REQ_shift}, - {(char*)0, REQ_UNKNOWN}, -#line 133 "requests.gperf" - {"%B", REQ_perc_B}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 84 "requests.gperf" - {"At", REQ_At}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 25 "requests.gperf" - {"so", REQ_so}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 24 "requests.gperf" - {"sp", REQ_sp}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 16 "requests.gperf" - {"fi", REQ_fi}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 114 "requests.gperf" - {"Ic", REQ_Ic}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 101 "requests.gperf" - {"Oo", REQ_Oo}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 100 "requests.gperf" - {"Op", REQ_Op}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 94 "requests.gperf" - {"Xr", REQ_Xr}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 51 "requests.gperf" - {"HP", REQ_HP}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 102 "requests.gperf" - {"Oc", REQ_Oc}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 17 "requests.gperf" - {"ft", REQ_ft}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 141 "requests.gperf" - {"tr", REQ_tr}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 65 "requests.gperf" - {"Dt", REQ_Dt}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, -#line 27 "requests.gperf" - {"ti", REQ_ti}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 15 "requests.gperf" - {"fc", REQ_fc}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 157 "requests.gperf" - {"Xo", REQ_Xo}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, {(char*)0, REQ_UNKNOWN}, - {(char*)0, REQ_UNKNOWN}, -#line 158 "requests.gperf" - {"Xc", REQ_Xc} - }; - - if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) - { - register int key = hash (str, len); - - if (key <= MAX_HASH_VALUE && key >= 0) - { - register const char *s = wordlist[key].name; - - if (s && *str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') - return &wordlist[key]; - } - } - return 0; -} diff --git a/kioslave/man/request_hash.cpp b/kioslave/man/request_hash.cpp deleted file mode 100644 index 0e9c0ecb..00000000 --- a/kioslave/man/request_hash.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (C) 2011 Martin Koller - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "request_hash.h" -#include "request_gperf.c" - -//--------------------------------------------------------------------- - -RequestNum RequestHash::getRequest(const char *str, int len) -{ - const Requests *req = Perfect_Hash::in_word_set(str, len); - return req ? req->number : REQ_UNKNOWN; -} - -//--------------------------------------------------------------------- diff --git a/kioslave/man/request_hash.h b/kioslave/man/request_hash.h deleted file mode 100644 index e3b3f762..00000000 --- a/kioslave/man/request_hash.h +++ /dev/null @@ -1,198 +0,0 @@ -#ifndef RequestHash_H -#define RequestHash_H - -/* This file is part of the KDE libraries - Copyright (C) 2011 Martin Koller - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -// Some known missing requests from mdoc(7): -// - start or end of quotings - -// Some of the requests are from mdoc. -// On Linux see the man pages mdoc(7), mdoc.samples(7) and groff_mdoc(7) -// See also the online man pages of FreeBSD: mdoc(7) - -enum RequestNum -{ - REQ_UNKNOWN = -1, - REQ_ab, - REQ_di, - REQ_ds, - REQ_as, - REQ_br, - REQ_c2, - REQ_cc, - REQ_ce, - REQ_ec, - REQ_eo, - REQ_ex, - REQ_fc, - REQ_fi, - REQ_ft, // groff(7) "FonT" - REQ_el, - REQ_ie, - REQ_if, - REQ_ig, - REQ_nf, - REQ_ps, - REQ_sp, - REQ_so, - REQ_ta, - REQ_ti, - REQ_tm, - REQ_B, - REQ_I, - REQ_Fd, - REQ_Fn, - REQ_Fo, - REQ_Fc, - REQ_OP, - REQ_Ft, - REQ_Fa, - REQ_BR, - REQ_BI, - REQ_IB, - REQ_IR, - REQ_RB, - REQ_RI, - REQ_DT, - REQ_IP, // man(7) "Indent Paragraph" - REQ_TP, - REQ_IX, - REQ_P, - REQ_LP, - REQ_PP, - REQ_HP, - REQ_PD, - REQ_Rs, - REQ_RS, - REQ_Re, - REQ_RE, - REQ_SB, - REQ_SM, - REQ_Ss, - REQ_SS, - REQ_Sh, - REQ_SH, // man(7) "Sub Header" - REQ_Sx, - REQ_TS, - REQ_Dt, - REQ_TH, - REQ_TX, - REQ_rm, - REQ_rn, - REQ_nx, - REQ_in, - REQ_nr, // groff(7) "Number Register" - REQ_am, - REQ_de, - REQ_de1, // groff(7) Same as .de but with compatibility mode switched off during macro expansion. - REQ_Bl, // mdoc(7) "Begin List" - REQ_El, // mdoc(7) "End List" - REQ_It, // mdoc(7) "ITem" - REQ_Bk, - REQ_Ek, - REQ_Dd, - REQ_Os, // mdoc(7) - REQ_Bt, - REQ_At, // mdoc(7) "AT&t" (not parsable, not callable) - REQ_Fx, // mdoc(7) "Freebsd" (not parsable, not callable) - REQ_Nx, - REQ_Ox, - REQ_Bx, // mdoc(7) "Bsd" - REQ_Ux, // mdoc(7) "UniX" - REQ_Dl, - REQ_Bd, - REQ_Ed, - REQ_Be, - REQ_Xr, // mdoc(7) "eXternal Reference" - REQ_Fl, // mdoc(7) "FLag" - REQ_Pa, - REQ_Pf, - REQ_Pp, - REQ_Dq, // mdoc(7) "Double Quote" - REQ_Op, - REQ_Oo, - REQ_Oc, - REQ_Pq, // mdoc(7) "Parenthese Quote" - REQ_Ql, - REQ_Sq, // mdoc(7) "Single Quote" - REQ_Ar, - REQ_Ad, - REQ_Em, // mdoc(7) "EMphasis" - REQ_Va, - REQ_Nd, - REQ_Nm, - REQ_Cd, - REQ_Cm, - REQ_Ic, - REQ_Ms, - REQ_Or, - REQ_Sy, - REQ_Dv, - REQ_Ev, - REQ_Fr, - REQ_Li, - REQ_No, - REQ_Ns, - REQ_Tn, - REQ_nN, - REQ_perc_A, - REQ_perc_D, - REQ_perc_N, - REQ_perc_O, - REQ_perc_P, - REQ_perc_Q, - REQ_perc_V, - REQ_perc_B, - REQ_perc_J, - REQ_perc_R, - REQ_perc_T, - REQ_An, // mdoc(7) "Author Name" - REQ_Aq, // mdoc(7) "Angle bracket Quote" - REQ_Bq, // mdoc(7) "Bracket Quote" - REQ_Qq, // mdoc(7) "straight double Quote" - REQ_tr, // translate - REQ_troff, // groff(7) "TROFF mode" - REQ_nroff, // groff(7) "NROFF mode" - REQ_als, // groff(7) "ALias String" - REQ_rr, // groff(7) "Remove number Register" - REQ_rnn, // groff(7) "ReName Number register" - REQ_aln, // groff(7) "ALias Number register" - REQ_shift, // groff(7) "SHIFT parameter" - REQ_while, // groff(7) "WHILE loop" - REQ_do, // groff(7) "DO command" - REQ_Dx, // mdoc(7) "DragonFly" macro - REQ_Ta, // mdoc(7) "Ta" inside .It macro - REQ_break, // groff(7) "Break out of a while loop" - REQ_nop, // groff(7) .nop macro - REQ_URL, // man(7) .URL macro - REQ_Sm, // mdoc(7) space mode - REQ_Xo, // mdoc(7) extended argument list open - REQ_Xc // mdoc(7) extended argument list close -}; - -class RequestHash -{ - public: - // return the RequestNum for given first len bytes from str or REQ_UNKNOWN - // if an undefined key is searched - static RequestNum getRequest(const char *str, int len); -}; - -#endif diff --git a/kioslave/man/requests.gperf b/kioslave/man/requests.gperf deleted file mode 100644 index 07d2b6ff..00000000 --- a/kioslave/man/requests.gperf +++ /dev/null @@ -1,158 +0,0 @@ -%struct-type -struct Requests { const char *name; RequestNum number; }; -%% -"ab", REQ_ab -"di", REQ_di -"ds", REQ_ds -"as", REQ_as -"br", REQ_br -"c2", REQ_c2 -"cc", REQ_cc -"ce", REQ_ce -"ec", REQ_ec -"eo", REQ_eo -"ex", REQ_ex -"fc", REQ_fc -"fi", REQ_fi -"ft", REQ_ft -"el", REQ_el -"ie", REQ_ie -"if", REQ_if -"ig", REQ_ig -"nf", REQ_nf -"ps", REQ_ps -"sp", REQ_sp -"so", REQ_so -"ta", REQ_ta -"ti", REQ_ti -"tm", REQ_tm -"B", REQ_B -"I", REQ_I -"Fd", REQ_Fd -"Fn", REQ_Fn -"Fo", REQ_Fo -"Fc", REQ_Fc -"OP", REQ_OP -"Ft", REQ_Ft -"Fa", REQ_Fa -"BR", REQ_BR -"BI", REQ_BI -"IB", REQ_IB -"IR", REQ_IR -"RB", REQ_RB -"RI", REQ_RI -"DT", REQ_DT -"IP", REQ_IP -"TP", REQ_TP -"IX", REQ_IX -"P", REQ_P -"LP", REQ_LP -"PP", REQ_PP -"HP", REQ_HP -"PD", REQ_PD -"Rs", REQ_Rs -"RS", REQ_RS -"Re", REQ_Re -"RE", REQ_RE -"SB", REQ_SB -"SM", REQ_SM -"Ss", REQ_Ss -"SS", REQ_SS -"Sh", REQ_Sh -"SH", REQ_SH -"Sx", REQ_Sx -"TS", REQ_TS -"Dt", REQ_Dt -"TH", REQ_TH -"TX", REQ_TX -"rm", REQ_rm -"rn", REQ_rn -"nx", REQ_nx -"in", REQ_in -"nr", REQ_nr -"am", REQ_am -"de", REQ_de -"de1", REQ_de1 -"Bl", REQ_Bl -"El", REQ_El -"It", REQ_It -"Bk", REQ_Bk -"Ek", REQ_Ek -"Dd", REQ_Dd -"Os", REQ_Os -"Bt", REQ_Bt -"At", REQ_At -"Fx", REQ_Fx -"Nx", REQ_Nx -"Ox", REQ_Ox -"Bx", REQ_Bx -"Ux", REQ_Ux -"Dl", REQ_Dl -"Bd", REQ_Bd -"Ed", REQ_Ed -"Be", REQ_Be -"Xr", REQ_Xr -"Fl", REQ_Fl -"Pa", REQ_Pa -"Pf", REQ_Pf -"Pp", REQ_Pp -"Dq", REQ_Dq -"Op", REQ_Op -"Oo", REQ_Oo -"Oc", REQ_Oc -"Pq", REQ_Pq -"Ql", REQ_Ql -"Sq", REQ_Sq -"Ar", REQ_Ar -"Ad", REQ_Ad -"Em", REQ_Em -"Va", REQ_Va -"Nd", REQ_Nd -"Nm", REQ_Nm -"Cd", REQ_Cd -"Cm", REQ_Cm -"Ic", REQ_Ic -"Ms", REQ_Ms -"Or", REQ_Or -"Sy", REQ_Sy -"Dv", REQ_Dv -"Ev", REQ_Ev -"Fr", REQ_Fr -"Li", REQ_Li -"No", REQ_No -"Ns", REQ_Ns -"Tn", REQ_Tn -"nN", REQ_nN -"%A", REQ_perc_A -"%D", REQ_perc_D -"%N", REQ_perc_N -"%O", REQ_perc_O -"%P", REQ_perc_P -"%Q", REQ_perc_Q -"%V", REQ_perc_V -"%B", REQ_perc_B -"%J", REQ_perc_J -"%R", REQ_perc_R -"%T", REQ_perc_T -"An", REQ_An -"Aq", REQ_Aq -"Bq", REQ_Bq -"Qq", REQ_Qq -"tr", REQ_tr -"troff", REQ_troff -"nroff", REQ_nroff -"als", REQ_als -"rr", REQ_rr -"rnn", REQ_rnn -"aln", REQ_aln -"shift", REQ_shift -"while", REQ_while -"do", REQ_do -"Dx", REQ_Dx -"Ta", REQ_Ta -"break", REQ_break -"nop", REQ_nop -"URL", REQ_URL -"Sm", REQ_Sm -"Xo", REQ_Xo -"Xc", REQ_Xc diff --git a/kioslave/man/tests/CMakeLists.txt b/kioslave/man/tests/CMakeLists.txt deleted file mode 100644 index f2d307ea..00000000 --- a/kioslave/man/tests/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} ) - -include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ) - -########### next target ############### - -set(kio_man_test_SRCS - kio_man_test.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../man2html.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../request_hash.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../kio_man.cpp ) - - - -kde4_add_executable(kio_man_test TEST ${kio_man_test_SRCS}) -set_target_properties(kio_man_test PROPERTIES COMPILE_FLAGS "-DSIMPLE_MAN2HTML -DKIO_MAN_TEST") -target_link_libraries(kio_man_test ${KDE4_KIO_LIBS}) - - -########### next target ############### - -set(man2html_SRCS - ${CMAKE_CURRENT_SOURCE_DIR}/../request_hash.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/../man2html.cpp ) - - - -kde4_add_executable(man2html TEST ${man2html_SRCS}) -set_target_properties(man2html PROPERTIES COMPILE_FLAGS -DSIMPLE_MAN2HTML) -target_link_libraries(man2html ${KDE4_KDECORE_LIBS} ) - diff --git a/kioslave/man/tests/kio_man_test.cpp b/kioslave/man/tests/kio_man_test.cpp deleted file mode 100644 index 411ac654..00000000 --- a/kioslave/man/tests/kio_man_test.cpp +++ /dev/null @@ -1,38 +0,0 @@ - - -#include - -#include "kio_man.h" - - -#include -#include - - -class kio_man_test : public MANProtocol -{ - Q_OBJECT - -public: - kio_man_test(const QByteArray &pool_socket, const QByteArray &app_socket); - -protected: - virtual void data(int); - -}; - - - - - -int main(int argc, char **argv) -{ - QApplication a( argc, argv , "p2"); - - MANProtocol testproto("/tmp/kiotest.in", "/tmp/kiotest.out"); - testproto.showIndex("3"); - - return 0; -} - -