mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
move kinfocenter from apps to workspace
svn path=/trunk/KDE/kdebase/apps/; revision=1091589
This commit is contained in:
parent
418bae0553
commit
1dbf2e3dda
|
@ -34,7 +34,6 @@ if ( Q_WS_MAC )
|
|||
endif ( Q_WS_MAC )
|
||||
|
||||
if ( Q_WS_X11 )
|
||||
add_subdirectory( kinfocenter )
|
||||
add_subdirectory( nsplugins )
|
||||
add_subdirectory( konsole )
|
||||
add_subdirectory( kdepasswd )
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
add_subdirectory(kinfocenter)
|
||||
add_subdirectory(dolphin)
|
||||
add_subdirectory(kappfinder)
|
||||
add_subdirectory(kfind)
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
add_subdirectory(devices)
|
||||
add_subdirectory(dma)
|
||||
add_subdirectory(interrupts)
|
||||
add_subdirectory(ioports)
|
||||
add_subdirectory(memory)
|
||||
add_subdirectory(nics)
|
||||
add_subdirectory(opengl)
|
||||
add_subdirectory(partitions)
|
||||
add_subdirectory(pci)
|
||||
add_subdirectory(processor)
|
||||
add_subdirectory(protocols)
|
||||
add_subdirectory(samba)
|
||||
add_subdirectory(scsi)
|
||||
add_subdirectory(sound)
|
||||
add_subdirectory(usb)
|
||||
add_subdirectory(xserver)
|
||||
add_subdirectory(view1394)
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en)
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/devices)
|
|
@ -1,60 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Device Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>device</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Device Information</title>
|
||||
|
||||
<para>
|
||||
This page displays information about the available devices.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
The exact information displayed is system-dependent. On some systems,
|
||||
device information cannot be displayed yet.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/devices</filename> and <filename
|
||||
class="devicefile">/proc/misc</filename>, which are only available if
|
||||
the <filename class="directory">/proc</filename> pseudo-filesystem is
|
||||
compiled into the kernel. Devices are listed by group (Character, Block,
|
||||
or Miscellaneous). The device major number is listed, followed by an
|
||||
identifying label.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The user cannot modify any settings on this page.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/dma)
|
|
@ -1,64 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title><acronym>DMA</acronym> Channel Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>DMA</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title><acronym>DMA</acronym> Channel Information</title>
|
||||
|
||||
<para> This page displays information about the <acronym>DMA</acronym>
|
||||
(Direct Memory Access) Channels. A <acronym>DMA</acronym> channel is a
|
||||
direct connection that allows devices to transfer data to and from
|
||||
memory without going through the processor. Typically, i386-architecture
|
||||
systems (<acronym>PC</acronym>'s) have eight <acronym>DMA</acronym>
|
||||
channels (0-7). </para>
|
||||
|
||||
<note> <para> The exact information displayed is system-dependent. On
|
||||
some systems, <acronym>DMA</acronym> Channel information cannot be
|
||||
displayed yet. </para> </note>
|
||||
|
||||
<para> On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/dma</filename>, which is only available if the
|
||||
<filename class="directory">/proc</filename> pseudo-filesystem is
|
||||
compiled into the kernel. </para>
|
||||
|
||||
<para> A list of all currently-registered (<acronym>ISA</acronym> bus)
|
||||
<acronym>DMA</acronym> channels that are in use is shown. The first
|
||||
column shows the <acronym>DMA</acronym> channel, and the second column
|
||||
shows the device which uses that channel. </para>
|
||||
|
||||
<para>
|
||||
Unused <acronym>DMA</acronym> channels are not listed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The user cannot modify any settings on this page.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</article>
|
|
@ -1,267 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY kappname "&kinfocenter;">
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<book lang="&language;">
|
||||
<bookinfo>
|
||||
<title>The &infocenter;</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Michael</firstname>
|
||||
<surname>McBride</surname>
|
||||
<affiliation><address>&Mike.McBride.mail;</address></affiliation>
|
||||
</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
|
||||
<date>2010-01-08</date>
|
||||
<releaseinfo>&kde; 4.4</releaseinfo>
|
||||
|
||||
<abstract>
|
||||
<para>This documentation describes &kde;'s information center.</para>
|
||||
</abstract>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>kinfocenter</keyword>
|
||||
<keyword>system</keyword>
|
||||
<keyword>information</keyword>
|
||||
<keyword>module</keyword>
|
||||
</keywordset>
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<chapter id="introduction">
|
||||
<title>The &infocenter;</title>
|
||||
|
||||
<para>
|
||||
The &infocenter; (from now on referred to simply as <quote>the
|
||||
information center</quote>) provides you with a centralized and convenient
|
||||
overview of your system and desktop environment.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This next section details the use of the information center itself. For
|
||||
information on individual modules, please see <link linkend="module">Info
|
||||
Center Modules</link>
|
||||
</para>
|
||||
|
||||
<sect1 id="information-center-starting">
|
||||
<title>Starting the &infocenter;</title>
|
||||
|
||||
<para>
|
||||
The &infocenter; can be started 3 ways:
|
||||
</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
By selecting <menuchoice><guimenu>Applications
|
||||
</guimenu><guisubmenu>System</guisubmenu><guimenuitem>Info
|
||||
Center</guimenuitem></menuchoice> from the application launcher in the panel.
|
||||
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
By pressing <keycombo
|
||||
action="simul">&Alt;<keycap>F2</keycap></keycombo>.
|
||||
This will bring up &krunner;. Type
|
||||
<userinput><command>kinfocenter</command></userinput>, and press &Enter;.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>
|
||||
You can type <command>kinfocenter &</command> at any command prompt.
|
||||
</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>
|
||||
All three of these methods are equivalent, and produce the same result.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="information-center-screen">
|
||||
<title>The &infocenter; Screen</title>
|
||||
|
||||
<para>
|
||||
When you start the information center, you are presented with a window,
|
||||
which can be divided into 3 functional parts.
|
||||
</para>
|
||||
<screenshot>
|
||||
<screeninfo>The &infocenter; Screen.</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="kinfocenter.png" format="PNG"/></imageobject>
|
||||
<textobject><phrase>The &infocenter; Screen</phrase></textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
|
||||
<para>
|
||||
Across the top is a menubar. The menubar will provide you with quick
|
||||
access to most of &infocenter;'s features like quitting, configuring shortcuts
|
||||
and getting help.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
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. You can learn how to navigate through the modules
|
||||
in the section called <link linkend="module-intro">Navigating
|
||||
Modules</link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The main panel shows you the system information about the selected module.
|
||||
</para>
|
||||
|
||||
<!--
|
||||
<para>
|
||||
In this example, we are running &kde; 2.99, we started &infocenter;
|
||||
as user <systemitem class="username">adridg</systemitem>, the computer is
|
||||
named <systemitem class="systemname">aramis</systemitem>, it is a
|
||||
FreeBSD system, Version 4.4-RELEASE, on a Pentium.
|
||||
</para> -->
|
||||
|
||||
</sect1>
|
||||
|
||||
</chapter>
|
||||
|
||||
<!--*****************************************************************-->
|
||||
|
||||
<chapter id="module">
|
||||
<title>The &infocenter; Modules</title>
|
||||
|
||||
<sect1 id="module-intro">
|
||||
<title>Navigating Modules</title>
|
||||
|
||||
<para>
|
||||
This is a list of the <emphasis>standard</emphasis> configuration
|
||||
modules (sorted by category) provided by the <application
|
||||
role="package">&kde; base</application> package. Please note that there
|
||||
may be many more modules on your system if you have installed additional
|
||||
software.
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/devices/index.html">Devices</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/dma/index.html">DMA-Channels</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/view1394/index.html">IEEE 1394 Devices</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/interrupts/index.html">Interrupts</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/ioports/index.html">IO-Ports</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/memory/index.html">Memory</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/nics/index.html">Network Interfaces</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/opengl/index.html">OpenGL</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/partitions/index.html">Partitions</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/pci/index.html">PCI</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/processor/index.html">Processor</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/protocols/index.html">Protocols</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/samba/index.html">Samba Status Information</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/scsi/index.html">SCSI</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/sound/index.html">Sound</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/usb/index.html">USB Devices</ulink></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><ulink url="help:/kinfocenter/xserver/index.html">&X-Server;</ulink></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
||||
|
||||
<!--****************************************-->
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="credits">
|
||||
<title>Credits and License</title>
|
||||
|
||||
<para>&infocenter;</para>
|
||||
<para>Program copyright 1997-2001 The &infocenter; Developers</para>
|
||||
<para>Contributors:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>Matthias Hoelzer-Kluepfel
|
||||
&Matthias.Hoelzer-Kluepfel.mail;</para></listitem>
|
||||
<listitem><para>&Matthias.Elter; &Matthias.Elter.mail;</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Documentation <trademark class="copyright">copyright 2000 Michael
|
||||
McBride</trademark> &Mike.McBride.mail;</para>
|
||||
|
||||
<para>Contributors:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>&Paul.Campbell; &Paul.Campbell.mail;</para></listitem>
|
||||
<listitem><para>&Helge.Deller; &Helge.Deller.mail;</para></listitem>
|
||||
<listitem><para>&Mark.Donohoe;</para></listitem>
|
||||
<listitem><para>&Patrick.Dowler;</para></listitem>
|
||||
<listitem><para>&Duncan.Haldane; <email>duncan@kde.org</email></para></listitem>
|
||||
<listitem><para>&Steffen.Hansen; <email>stefh@mip.ou.dk</email>.</para></listitem>
|
||||
<listitem><para>Matthias Hoelzer-Kluepfel &Matthias.Hoelzer-Kluepfel.mail;</para></listitem>
|
||||
<listitem><para>Martin Jones &Martin.R.Jones.mail;</para></listitem>
|
||||
<listitem><para>&Jost.Schenck; &Jost.Schenck.mail;</para></listitem>
|
||||
<listitem><para>&Jonathan.Singer; &Jonathan.Singer.mail;</para></listitem>
|
||||
<listitem><para>&Thomas.Tanghus; &Thomas.Tanghus.mail;</para></listitem>
|
||||
<listitem><para>&Krishna.Tateneni; &Krishna.Tateneni.mail;</para></listitem>
|
||||
<listitem><para>Ellis Whitehead <email>ewhitehe@uni-freiburg.de</email></para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
|
||||
|
||||
&underFDL;
|
||||
&underGPL;
|
||||
</chapter>
|
||||
|
||||
</book>
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
End:
|
||||
-->
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/interrupts)
|
|
@ -1,70 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Interrupt Request (<abbrev>IRQ</abbrev>) Lines</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>IRQ</keyword>
|
||||
<keyword>interrupts</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Interrupt Request (<abbrev>IRQ</abbrev>) Lines in Use</title>
|
||||
|
||||
<para>This page displays information about the Interrupt Request
|
||||
Lines in use, and the devices that use them.</para>
|
||||
|
||||
<para>An <acronym>IRQ</acronym> is a hardware line used in a
|
||||
<acronym>PC</acronym> by (<acronym>ISA</acronym> 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 <acronym>IRQ</acronym>'s (0-15)
|
||||
available in the i386 (<acronym>PC</acronym>) architecture for sharing among
|
||||
the various <acronym>ISA</acronym> devices.</para>
|
||||
|
||||
<para>Many hardware problems are the result of <acronym>IRQ</acronym>
|
||||
conflicts, when two devices try to use the same <acronym>IRQ</acronym>, or
|
||||
software is misconfigured to use a different <acronym>IRQ</acronym> from the
|
||||
one a device is actually configured for.</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On some
|
||||
systems, <acronym>IRQ</acronym> information cannot be displayed
|
||||
yet.</para></note>
|
||||
|
||||
<para>On &Linux;, this information is read from
|
||||
<filename class="directory">/proc/interrupts</filename>, which is only
|
||||
available if the <filename class="directory">/proc</filename>
|
||||
pseudo-filesystem is compiled into the kernel.</para>
|
||||
|
||||
<para>The first column, is the <acronym>IRQ</acronym> 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.</para>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/ioports)
|
|
@ -1,64 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>I/O Port</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>ioports</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Input/Output Port Information</title>
|
||||
|
||||
<para>This page displays information about the I/O ports.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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. </para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On some
|
||||
systems, I/O port information can not yet be displayed.</para></note>
|
||||
|
||||
<para>On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/ioports</filename> which is only available if
|
||||
the <filename class="devicefile">/proc</filename> pseudo-filesystem is
|
||||
compiled into the kernel. A list of all currently-registered I/O port
|
||||
regions that are in use is shown.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
</article>
|
Binary file not shown.
Before Width: | Height: | Size: 192 KiB |
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/memory)
|
|
@ -1,108 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Memory Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Mike.McBride;</author>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-13</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>memory</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Memory Information</title>
|
||||
|
||||
<para>This module displays the current memory usage. It is updated
|
||||
constantly, and can be very useful for pinpointing bottlenecks when certain
|
||||
applications are executed.</para>
|
||||
|
||||
<sect2 id="memory-intro">
|
||||
<title>Memory Types</title>
|
||||
|
||||
<para>The first thing you must understand, is there are two types of
|
||||
<quote>memory</quote>, available to the operating system and the programs
|
||||
that run within it.</para>
|
||||
|
||||
<para>The first type, is called physical memory. This is the memory located
|
||||
within the memory chips, within your computer. This is the
|
||||
<acronym>RAM</acronym> (for Random Access Memory) you bought when you
|
||||
purchased your computer.</para>
|
||||
|
||||
<para>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 <quote>swap space</quote>.
|
||||
The operating system can use this virtual memory (or swap space), if it
|
||||
runs out of physical memory. The reason this is called
|
||||
<quote>swap</quote> 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 <quote>swapped</quote> 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.</para>
|
||||
|
||||
<para>The total memory, is the combined total of physical memory and
|
||||
virtual memory.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="memory-use">
|
||||
<title>Memory Information Module</title>
|
||||
|
||||
<para>This window is divided into a top and bottom section</para>
|
||||
|
||||
<para>The top section shows you the total physical memory, total free
|
||||
physical memory, shared memory, and buffered memory.</para>
|
||||
|
||||
<para>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)</para>
|
||||
|
||||
<para>The bottom section shows you three graphs: </para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><guilabel>Total Memory</guilabel> (this is the combination of physical and virtual memory).</para></listitem>
|
||||
<listitem><para><guilabel>Physical Memory</guilabel></para></listitem>
|
||||
<listitem><para>Virtual memory, or <guilabel>Swap Space</guilabel>.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>The green areas are free, and the red areas are used.</para>
|
||||
|
||||
<tip><para>The exact values of each type of memory are not critical, and
|
||||
they change regularly. When you evaluate this page, look at
|
||||
trends.</para>
|
||||
|
||||
<para>Does your computer have plenty of free space (green areas)? If
|
||||
not, you can increase the swap size or increase the physical
|
||||
memory.</para>
|
||||
|
||||
<para>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.</para></tip>
|
||||
|
||||
</sect2>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/nics)
|
|
@ -1,45 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Network Interfaces</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Lauri.Watts;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-11</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>Network</keyword>
|
||||
<keyword>Interfaces</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
|
||||
<title>Network Interfaces</title>
|
||||
|
||||
<para>
|
||||
This page displays information about the network interfaces
|
||||
installed in your computer.
|
||||
</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On
|
||||
some systems, this information can not yet be displayed.</para></note>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,2 +0,0 @@
|
|||
########### install files ###############
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/opengl)
|
|
@ -1,47 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title><acronym>OpenGL</acronym></title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author><personname><firstname>Ilya</firstname><surname>Korniyko</surname></personname><email>k_ilya@ukr.net</email></author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
</authorgroup>
|
||||
|
||||
<date></date>
|
||||
<releaseinfo></releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>OpenGL</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="opengl">
|
||||
|
||||
<title>OpenGL</title>
|
||||
|
||||
<para>This page displays information about installed <acronym>OpenGL</acronym> implementation.
|
||||
OpenGL (for "Open Graphics Library") is a cross-platform,
|
||||
hardware independent interface for 3D graphics. </para>
|
||||
|
||||
<para><acronym>GLX</acronym> is the binding for OpenGL to X Window system.</para>
|
||||
|
||||
<para> <acronym>DRI</acronym> (Direct Rendering Infrastucture) provides hardware acceleration for OpenGL.
|
||||
You must have a videocard with 3D accelerator and properly installed driver for this.</para>
|
||||
<para> </para>
|
||||
|
||||
<para>Read more at the official OpenGL site <ulink url="http://www.opengl.org">http://www.opengl.org</ulink> </para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/partitions)
|
|
@ -1,56 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Partition Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>drive partition</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>Partition Information</title>
|
||||
|
||||
<para>This page displays information about partitions on your hard
|
||||
drives.</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On
|
||||
some systems, partition information cannot be displayed
|
||||
yet.</para></note>
|
||||
|
||||
<para>On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/partitions</filename>, which is only available
|
||||
if the <filename class="directory">/proc</filename> pseudo-filesystem is
|
||||
compiled into the (2.1.x or later) kernel.</para>
|
||||
|
||||
<para>The first two columns are the major and minor numbers
|
||||
respectively. The third column is the number of blocks (usually 1
|
||||
block = 1024 bytes). The fourth column is a label for the
|
||||
device.</para>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/pci)
|
|
@ -1,57 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title><acronym>PCI</acronym>-bus and Installed <acronym>PCI</acronym> Cards</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>PCI</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="pci">
|
||||
|
||||
<title><acronym>PCI</acronym>-bus and Installed <acronym>PCI</acronym>
|
||||
Cards</title>
|
||||
|
||||
<para>This page displays information about the
|
||||
<acronym>PCI</acronym>-bus and installed <acronym>PCI</acronym> cards,
|
||||
and other devices that use the Peripheral Component Interconnect
|
||||
(<acronym>PCI</acronym>) bus.</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On some
|
||||
systems, <acronym>PCI</acronym>-information can not yet be
|
||||
displayed.</para> </note>
|
||||
|
||||
<para>On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/pci</filename> which is only available if the
|
||||
<filename class="directory">/proc</filename> pseudo-filesystem is
|
||||
compiled into the kernel. A listing of all <acronym>PCI</acronym>
|
||||
devices found during kernel initialization, and their configuration, is
|
||||
shown.</para>
|
||||
|
||||
<para>Each entry begins with a bus, device and function number.</para>
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/processor)
|
|
@ -1,56 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Processor Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>CPU</keyword>
|
||||
<keyword>processor</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="processor">
|
||||
<title>Processor Information</title>
|
||||
|
||||
<para>This page displays information about the system
|
||||
Central Processing Unit (<acronym>CPU</acronym>).</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On
|
||||
some systems, processor information cannot be displayed
|
||||
yet.</para></note>
|
||||
|
||||
<para>On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/cpuinfo</filename>, which is only available if
|
||||
the <filename class="directory">/proc</filename> pseudo-filesystem is
|
||||
compiled into the kernel.</para>
|
||||
|
||||
<para>The exact contents of the window will depend on the
|
||||
<acronym>CPU</acronym>(s) in your machine, but the window is organized
|
||||
into two columns. The first column is the parameter, and the second
|
||||
column is the value of that parameter.</para>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/protocols)
|
|
@ -1,39 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Protocols</title>
|
||||
|
||||
<articleinfo>
|
||||
<authorgroup>
|
||||
<author>&Lauri.Watts;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Protocols</keyword>
|
||||
<keyword>IOSlaves</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="protocols">
|
||||
<title>Protocols</title>
|
||||
|
||||
<para>On the top of the window you will see a drop down box where you can select IOSlaves that
|
||||
are installed on your system. IOSlaves are how &kde; applications
|
||||
<quote>talk</quote> to other computers, other applications, or act on
|
||||
files.</para>
|
||||
|
||||
<para>Selecting an IOSlave name from drop down box will display some help information
|
||||
about that IOSlave, such as how to use it, and what it does.</para>
|
||||
|
||||
<para>The protocols module is purely informational, you cannot change
|
||||
any settings here.</para>
|
||||
|
||||
</sect1>
|
||||
</article>
|
|
@ -1,4 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/samba)
|
|
@ -1,207 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Samba Status Information</title>
|
||||
<articleinfo>
|
||||
<authorgroup>
|
||||
<author>&Alexander.Neundorf;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>Samba</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="sambastatus">
|
||||
|
||||
|
||||
<title>Samba Status Information</title>
|
||||
|
||||
<para>The Samba and <acronym>NFS</acronym> Status Monitor is a front end
|
||||
to the programs <command>smbstatus</command> and
|
||||
<command>showmount</command>. Smbstatus reports on current Samba
|
||||
connections, and is part of the suite of Samba tools, which implements
|
||||
the <acronym>SMB</acronym> (Session Message Block) protocol, also called
|
||||
the NetBIOS or LanManager protocol.</para>
|
||||
|
||||
<para>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;.</para>
|
||||
|
||||
<para><command>showmount</command> is part of the <acronym>NFS</acronym>
|
||||
software package. <acronym>NFS</acronym> stands for Network File System
|
||||
and is the traditional &UNIX; way to share folders over the
|
||||
network. In this case the output of <command>showmount</command>
|
||||
<option>-a localhost</option> is parsed. On some systems showmount is in
|
||||
<filename class="directory">/usr/sbin</filename>, check if you have
|
||||
showmount in your <envar>PATH</envar>.</para>
|
||||
|
||||
<sect2 id="smb-exports">
|
||||
<title>Exports</title>
|
||||
|
||||
<para>On this page you can see a big list which shows the currently
|
||||
active connections to Samba shares and <acronym>NFS</acronym> exports of
|
||||
your machine. The first column shows you whether the resource is a Samba
|
||||
(<acronym>SMB</acronym>) share or a <acronym>NFS</acronym> 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.</para>
|
||||
|
||||
<para>The fourth column contains the User <abbrev>ID</abbrev> of the
|
||||
user, who accesses this share. Note that this does not have to be equal
|
||||
to the &UNIX; user <abbrev>ID</abbrev> of this user. The same applies
|
||||
for the next column, which displays the group <abbrev>ID</abbrev> of the
|
||||
user.</para>
|
||||
|
||||
<para>Each connection to one of your shares is handled by a single
|
||||
process (<command>smbd</command>), the next column shows the process
|
||||
<abbrev>ID</abbrev> (<acronym>pid</acronym>) of this
|
||||
<command>smbd</command>. 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.</para>
|
||||
|
||||
<para>The last column shows how many files this user has currently open.
|
||||
Here you see only, how many files he has <emphasis>open</emphasis> just
|
||||
now, you don't see how many he copied or formerly opened &etc;</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="smb-imports">
|
||||
<title>Imports</title>
|
||||
|
||||
<para> Here you see which Samba- and <acronym>NFS</acronym>-shares from
|
||||
other hosts are mounted on your local system. The first column shows
|
||||
whether it is a Samba- or <acronym>NFS</acronym>-share, the second column
|
||||
displays the name of the share, and the third shows where it is
|
||||
mounted.</para>
|
||||
|
||||
<para>The mounted <acronym>NFS</acronym>-shares you should see on
|
||||
&Linux; (this has been tested), and it should also work on &Solaris;
|
||||
(this has not been tested).</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
<sect2 id="smb-log">
|
||||
<title>Log</title>
|
||||
|
||||
<para>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 <guibutton>Update</guibutton> 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
|
||||
<guibutton>Update</guibutton> again.</para>
|
||||
|
||||
<para>Samba logs its actions according to the log level (see
|
||||
<filename>smb.conf</filename>). 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.</para>
|
||||
|
||||
<para>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 <command>cron</command> 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.</para>
|
||||
|
||||
<para>With the four checkboxes below the big list you can decide, which
|
||||
events are displayed in the list. You have to press
|
||||
<guibutton>Update</guibutton> to see the results. If the log level of
|
||||
your samba is too low, you won't see everything.</para>
|
||||
|
||||
<para>By clicking on the header of one column you can sort the list by
|
||||
this column.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="smb-statistics">
|
||||
<title>Statistics</title>
|
||||
|
||||
<para>On this page you can filter the contents of the third page for
|
||||
certain contents.</para>
|
||||
|
||||
<para>Let's say the <guilabel>Event</guilabel> field (not the one in the
|
||||
list) is set to <userinput>Connection</userinput>,
|
||||
<guilabel>Service/File</guilabel> is set to <userinput>*</userinput>,
|
||||
<guilabel>Host/User</guilabel> is set to <userinput>*</userinput>,
|
||||
<guilabel>Show expanded service info</guilabel> is disabled and
|
||||
<guilabel>Show expanded host info</guilabel> is disabled.</para>
|
||||
|
||||
<para>If you press <guibutton>Update</guibutton> now, you will see how
|
||||
often a connection was opened to share <literal>*</literal> (&ie; to any
|
||||
share) from host <literal>*</literal> (&ie; from any host). Now enable
|
||||
<guilabel>Show expanded host info</guilabel> and press
|
||||
<guibutton>Update</guibutton> again. Now you will see for every host
|
||||
which matches the wildcard <literal>*</literal>, how many connections
|
||||
were opened by him.</para>
|
||||
|
||||
<para>Now press <guibutton>clear</guibutton>.</para>
|
||||
|
||||
<para>Now set the <guilabel>Event</guilabel> field to File Access and
|
||||
enable <guilabel>Show expanded service info</guilabel> and press
|
||||
<guibutton>Update</guibutton> again.</para>
|
||||
|
||||
<para>Now you will see how often every single file was accessed. If you
|
||||
enable <guilabel>Show expanded host info</guilabel> too, you will see
|
||||
how often every single user opened each file.</para>
|
||||
|
||||
<para>In the input lines <guilabel>Service/File</guilabel> and
|
||||
<guilabel>Host/User</guilabel> you can use the wildcards
|
||||
<literal>*</literal> and <literal>?</literal> in the same way you use
|
||||
them at the command line. Regular expressions are not
|
||||
recognized.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
</sect2>
|
||||
|
||||
|
||||
<sect2 id="smb-stat-author">
|
||||
<title>Section Author</title>
|
||||
|
||||
<para>Module copyright 2000: Michael Glauche and &Alexander.Neundorf; &Alexander.Neundorf.mail;</para>
|
||||
|
||||
<para>Originally written by: Michael Glauche</para>
|
||||
|
||||
<para>Currently maintained by: &Alexander.Neundorf; &Alexander.Neundorf.mail;</para>
|
||||
|
||||
<itemizedlist>
|
||||
<title>Contributors</title>
|
||||
<listitem><para>Conversion to kcontrol applet:</para>
|
||||
<para>&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail;</para></listitem>
|
||||
<listitem><para>Use of <classname>K3Process</classname> instead of popen, and more error checking:</para>
|
||||
<para>&David.Faure; &David.Faure.mail;</para></listitem>
|
||||
<listitem><para>Conversion to kcmodule, added tab pages 2,3,4, bug
|
||||
fixed:</para>
|
||||
<para>&Alexander.Neundorf; &Alexander.Neundorf.mail;</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Documentation copyright 2000 &Alexander.Neundorf; &Alexander.Neundorf.mail;</para>
|
||||
|
||||
<para>Documentation translated to docbook by &Mike.McBride; &Mike.McBride.mail;</para>
|
||||
|
||||
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/scsi)
|
|
@ -1,56 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title><acronym>SCSI</acronym> Interface Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>SCSI</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="scsi">
|
||||
|
||||
<title><acronym>SCSI</acronym> Interface Information</title>
|
||||
|
||||
<para>This page displays information about Small Computer Systems
|
||||
Interface (<acronym>SCSI</acronym>) Interfaces and the attached
|
||||
<acronym>SCSI</acronym> devices.</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On
|
||||
some systems <acronym>SCSI</acronym> information cannot be displayed
|
||||
yet.</para></note>
|
||||
|
||||
<para>On &Linux;, this information is read from <filename
|
||||
class="devicefile">/proc/scsi/scsi</filename>, which is only available
|
||||
if the <filename class="directory">/proc</filename> pseudo-filesystem is
|
||||
compiled into the kernel. A listing of all <acronym>SCSI</acronym>
|
||||
devices known to the kernel is shown.</para>
|
||||
|
||||
<para>The devices are sorted numerically by their host, channel, and
|
||||
<acronym>ID</acronym> numbers.</para>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/sound)
|
|
@ -1,51 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>Soundcard Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Matthias.Hoelzer-Kluepfel;</author>
|
||||
<author>&Helge.Deller;</author>
|
||||
<author>&Duncan.Haldane;</author>
|
||||
<author>&Mike.McBride;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>soundcard</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="soundinfo">
|
||||
|
||||
<title>Soundcard Information</title>
|
||||
|
||||
<para>This page displays information about any soundcards installed in the
|
||||
system.</para>
|
||||
|
||||
<note><para>The exact information displayed is system-dependent. On some
|
||||
systems, soundcard information cannot be displayed yet.</para></note>
|
||||
|
||||
<para>On &Linux;, this information is read either from <filename
|
||||
class="devicefile">/dev/sndstat</filename>, if present, or from
|
||||
<filename class="devicefile">/proc/sound</filename>, which is only
|
||||
available if the <filename class="directory">/proc</filename>
|
||||
pseudo-filesystem is compiled into the (2.1.x or later) kernel.</para>
|
||||
|
||||
<para>The user cannot modify any settings on this page.</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/usb)
|
|
@ -1,43 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title><acronym>USB</acronym></title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname></firstname>
|
||||
<surname></surname>
|
||||
</author>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>USB</keyword>
|
||||
<keyword>System Information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="usb">
|
||||
|
||||
<title><acronym>USB</acronym></title>
|
||||
|
||||
<para>This module allows you to see the devices attached to your
|
||||
<acronym>USB</acronym> bus(es).</para>
|
||||
|
||||
<para>This module is for information only, you cannot edit any
|
||||
information you see here.</para>
|
||||
</sect1>
|
||||
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/view1394)
|
|
@ -1,54 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;">
|
||||
<title>IEEE 1394 Devices</title>
|
||||
|
||||
<articleinfo>
|
||||
<authorgroup>
|
||||
<author>&Alexander.Neundorf;&Alexander.Neundorf.mail;</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<date>2009-11-05</date>
|
||||
<releaseinfo>&kde; 4.4</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>devices</keyword>
|
||||
<keyword>ieee1394</keyword>
|
||||
<keyword>firewire</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1 id="view1394">
|
||||
<title>IEEE 1394 Devices</title>
|
||||
|
||||
<para>The IEEE 1394 interface, also known as <trademark>FireWire</trademark>,
|
||||
is a serial bus interface standard for high-speed
|
||||
communications and isochronous real-time data transfer.</para>
|
||||
|
||||
<para>The list in this module displays all devices attached to IEEE 1394 bus and
|
||||
allows you to reset the bus by clicking the <guibutton>Generate 1394 Bus Reset</guibutton>
|
||||
button.</para>
|
||||
|
||||
<para>The meaning of the columns in this list:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para><guilabel>Name</guilabel>: port or node name, the number can change with each bus reset</para></listitem>
|
||||
<listitem><para><guilabel>GUID</guilabel>: the 64 bit GUID of the node</para></listitem>
|
||||
<listitem><para><guilabel>Local</guilabel>: checked if the node is an IEEE 1394 port of your computer</para></listitem>
|
||||
<listitem><para><guilabel>IRM</guilabel>: checked if the node is isochronous resource manager capable</para></listitem>
|
||||
<listitem><para><guilabel>CRM</guilabel>: checked if the node is cycle master capable</para></listitem>
|
||||
<listitem><para><guilabel>ISO</guilabel>: checked if the node supports isochronous transfers</para></listitem>
|
||||
<listitem><para><guilabel>BM</guilabel>: checked if the node is bus manager capable</para></listitem>
|
||||
<listitem><para><guilabel>PM</guilabel>: checked if the node is power management capable</para></listitem>
|
||||
<listitem><para><guilabel>Acc</guilabel>: the cycle clock accuracy of the node, valid from 0 to 100</para></listitem>
|
||||
<listitem><para><guilabel>Speed</guilabel>: the speed of the node</para></listitem>
|
||||
<listitem><para><guilabel>Vendor</guilabel>: the vendor of the device</para></listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
</article>
|
|
@ -1,3 +0,0 @@
|
|||
########### install files ###############
|
||||
#
|
||||
kde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kinfocenter/xserver)
|
|
@ -1,56 +0,0 @@
|
|||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE article PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN"
|
||||
"dtd/kdex.dtd" [
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
||||
]>
|
||||
|
||||
<article lang="&language;" id="xserver">
|
||||
<title>X Server Information</title>
|
||||
<articleinfo>
|
||||
|
||||
<authorgroup>
|
||||
<author>&Mike.McBride;</author>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
</authorgroup>
|
||||
|
||||
<date>2002-02-12</date>
|
||||
<releaseinfo>3.00.00</releaseinfo>
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>KControl</keyword>
|
||||
<keyword>X server</keyword>
|
||||
<keyword>system information</keyword>
|
||||
</keywordset>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<title>X Server Information</title>
|
||||
|
||||
<para>This screen is useful for getting specific information about your
|
||||
X server and the current session of X.</para>
|
||||
|
||||
<para>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 <quote>submenu</quote> related to the
|
||||
label. Clicking on a minus sign in front of a label hides the
|
||||
submenu.</para>
|
||||
|
||||
<para>The right hand side of the window contains the individual
|
||||
values for each of the parameters on the left.</para>
|
||||
|
||||
<para>The information presented will vary depending on your
|
||||
setup.</para>
|
||||
|
||||
<note><para>Some setups may not be able to determine some or all of the
|
||||
parameters.</para></note>
|
||||
|
||||
<para>You can not change any values from this menu. It is for
|
||||
information only.</para>
|
||||
|
||||
</sect1>
|
||||
</article>
|
|
@ -1,72 +0,0 @@
|
|||
|
||||
add_definitions( -DKDE_DEFAULT_DEBUG_AREA=1208 )
|
||||
|
||||
add_subdirectory( about )
|
||||
|
||||
add_subdirectory( solidproc )
|
||||
|
||||
add_subdirectory( usbview )
|
||||
add_subdirectory( memory )
|
||||
|
||||
add_subdirectory( partition )
|
||||
|
||||
add_subdirectory( ioslaveinfo )
|
||||
|
||||
if(NOT WIN32)
|
||||
add_subdirectory( nics )
|
||||
add_subdirectory( info )
|
||||
add_subdirectory( samba )
|
||||
|
||||
macro_optional_find_package(OpenGL)
|
||||
macro_log_feature(OPENGL_FOUND "OpenGL" "API for developing portable, interactive 2D and 3D graphics applications" "http://mesa3d.sourceforge.net" FALSE "" "View OpenGL details in kinfocenter.")
|
||||
|
||||
if(OPENGL_FOUND AND OPENGL_GLU_FOUND)
|
||||
add_subdirectory( opengl )
|
||||
else(OPENGL_FOUND AND OPENGL_GLU_FOUND)
|
||||
MESSAGE(STATUS "OpenGL information module has been disabled.")
|
||||
endif(OPENGL_FOUND AND OPENGL_GLU_FOUND)
|
||||
|
||||
|
||||
macro_optional_find_package(PCIUTILS)
|
||||
macro_log_feature(PCIUTILS_FOUND "PCIUTILS" "PciUtils is a library for direct access to PCI slots" "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml" FALSE "" "View PCI details in kinfocenter.")
|
||||
|
||||
if(NOT APPLE)
|
||||
add_subdirectory( pci )
|
||||
endif(NOT APPLE)
|
||||
endif(NOT WIN32)
|
||||
|
||||
macro_optional_find_package(RAW1394)
|
||||
macro_log_feature(RAW1394_FOUND "RAW1394" "library for direct access to IEEE 1394 bus" "http://www.linux1394.org/" FALSE "" "View FireWire devices in kinfocenter.")
|
||||
|
||||
if(RAW1394_FOUND)
|
||||
add_subdirectory( view1394 )
|
||||
endif(RAW1394_FOUND)
|
||||
|
||||
set(kinfocenter_SRCS
|
||||
main.cpp
|
||||
toplevel.cpp
|
||||
indexwidget.cpp
|
||||
dockcontainer.cpp
|
||||
aboutwidget.cpp
|
||||
moduletreeview.cpp
|
||||
global.cpp
|
||||
modules.cpp
|
||||
proxywidget.cpp
|
||||
)
|
||||
|
||||
kde4_add_kdeinit_executable( kinfocenter ${kinfocenter_SRCS})
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
find_library(KVM_LIBRARY kvm)
|
||||
target_link_libraries(kinfocenter ${KVM_LIBRARY})
|
||||
endif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||
|
||||
target_link_libraries(kdeinit_kinfocenter ${KDE4_KIO_LIBS} ${KDE4_KHTML_LIBS} ${KDE4_KUTILS_LIBS} )
|
||||
|
||||
install(TARGETS kdeinit_kinfocenter ${INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
install(TARGETS kinfocenter ${INSTALL_TARGETS_DEFAULT_ARGS})
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES kinfocenter.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
|
||||
install( FILES kinfocenterui.rc DESTINATION ${DATA_INSTALL_DIR}/kinfocenter )
|
|
@ -1,2 +0,0 @@
|
|||
#! /usr/bin/env bash
|
||||
$XGETTEXT base/*.cpp base/*.h *.cpp -o $podir/kinfocenter.pot
|
|
@ -1,2 +0,0 @@
|
|||
install( FILES main.html kinfocenter.css DESTINATION ${DATA_INSTALL_DIR}/kinfocenter/about )
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
#title {
|
||||
right: 80px;
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
#tagline {
|
||||
right: 80px;
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#barCenter {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
#tableTitle {
|
||||
font-weight: bold;
|
||||
padding-bottom: 1ex;
|
||||
}
|
||||
|
||||
.kc_table {
|
||||
font-size: x-small;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.kc_leftcol {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.kc_rightcol {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.kc_use_text {
|
||||
margin-bottom: 0;
|
||||
font-size: xx-small;
|
||||
}
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<style type="text/css">
|
||||
/*<![CDATA[*/
|
||||
@import "%1"; /* kde_infopage.css */
|
||||
%2 /* maybe @import "kde_infopage_rtl.css"; */
|
||||
@import "kinfocenter.css";
|
||||
/*body {font-size: px;}*/
|
||||
/*]]>*/
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="header">
|
||||
<div id="headerL"/>
|
||||
<div id="headerR"/>
|
||||
|
||||
<div id="title">
|
||||
%3 <!-- Title -->
|
||||
</div>
|
||||
|
||||
<div id="tagline">
|
||||
%4 <!-- Catchphrase -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- the bar -->
|
||||
<div id="bar">
|
||||
<div id="barT"><div id="barTL"/><div id="barTR"/><div id="barTC"/></div>
|
||||
<div id="barL">
|
||||
<div id="barR">
|
||||
<div id="barCenter" class="bar_text">
|
||||
%5<!-- Summary -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="barB"><div id="barBL"/><div id="barBR"/><div id="barBC"/></div>
|
||||
</div>
|
||||
|
||||
<!-- the main text box -->
|
||||
<div id="box">
|
||||
<div id="boxT"><div id="boxTL"/><div id="boxTR"/><div id="boxTC"/></div>
|
||||
<div id="boxL">
|
||||
<div id="boxR">
|
||||
<div id="boxCenter">
|
||||
<!--Content-->
|
||||
%6
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="boxB"><div id="boxBL"/><div id="boxBR"/><div id="boxBC"/></div>
|
||||
</div>
|
||||
|
||||
<div id="footer"><div id="footerL"/><div id="footerR"/></div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,141 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000,2001 Matthias Elter <elter@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 "aboutwidget.h"
|
||||
#include "global.h"
|
||||
#include "modules.h"
|
||||
#include "moduletreeview.h"
|
||||
|
||||
#include <kstandarddirs.h>
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
#include <kcursor.h>
|
||||
#include <kglobalsettings.h>
|
||||
#include <khtml_part.h>
|
||||
#include <kapplication.h>
|
||||
#include <kvbox.h>
|
||||
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
|
||||
#include "aboutwidget.moc"
|
||||
|
||||
static const char kcc_infotext[]= I18N_NOOP("KDE Info Center");
|
||||
|
||||
static const char title_infotext[]= I18N_NOOP("Get system and desktop environment information");
|
||||
|
||||
static const char intro_infotext[]= I18N_NOOP("Welcome to the \"KDE Info Center\", "
|
||||
"a central place to find information about your "
|
||||
"computer system.");
|
||||
|
||||
static const char use_text[]= I18N_NOOP("Click on the \"Help\" tab on the left to view help "
|
||||
"for the active "
|
||||
"control module. Use the \"Search\" tab if you are unsure "
|
||||
"where to look for "
|
||||
"a particular configuration option.");
|
||||
|
||||
static const char version_text[]= I18N_NOOP("KDE version:");
|
||||
static const char user_text[]= I18N_NOOP("User:");
|
||||
static const char host_text[]= I18N_NOOP("Hostname:");
|
||||
static const char system_text[]= I18N_NOOP("System:");
|
||||
static const char release_text[]= I18N_NOOP("Release:");
|
||||
static const char machine_text[]= I18N_NOOP("Machine:");
|
||||
|
||||
AboutWidget::AboutWidget(QWidget *parent, ConfigModuleList* configModules, const QString &caption) :
|
||||
KHBox(parent), _configModules(configModules), _caption(caption) {
|
||||
|
||||
setMinimumSize(400, 400);
|
||||
|
||||
// set qwhatsthis help
|
||||
this->setWhatsThis(i18n(intro_infotext));
|
||||
_viewer = new KHTMLPart( this );
|
||||
_viewer->widget()->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
|
||||
connect(_viewer->browserExtension(),
|
||||
SIGNAL(openUrlRequest(const KUrl&, const KParts::OpenUrlArguments&, const KParts::BrowserArguments&)), this, SLOT(slotModuleLinkClicked(const KUrl&)));
|
||||
updatePixmap();
|
||||
}
|
||||
|
||||
void AboutWidget::updatePixmap() {
|
||||
QString file = KStandardDirs::locate("data", "kinfocenter/about/main.html");
|
||||
QFile f(file);
|
||||
f.open(QIODevice::ReadOnly);
|
||||
QTextStream t( &f);
|
||||
QString res = t.readAll();
|
||||
|
||||
res = res.arg(KStandardDirs::locate("data", "kdeui/about/kde_infopage.css") );
|
||||
if ( kapp->layoutDirection() == Qt::RightToLeft)
|
||||
res = res.arg( "@import \"%1\";" ).arg(KStandardDirs::locate("data", "kdeui/about/kde_infopage_rtl.css") );
|
||||
else
|
||||
res = res.arg("");
|
||||
|
||||
QString title, intro, caption;
|
||||
res = res.arg(i18n(kcc_infotext));
|
||||
res = res.arg(i18n(title_infotext));
|
||||
res = res.arg(i18n(intro_infotext));
|
||||
|
||||
QString content;
|
||||
|
||||
if (_configModules == NULL) {
|
||||
content += "<table class=\"kc_table\">\n";
|
||||
#define KC_HTMLROW( a, b ) "<tr><td class=\"kc_leftcol\">" + i18n( a ) + "</td><td class=\"kc_rightcol\">" + b + "</tr>\n"
|
||||
content += KC_HTMLROW( version_text, KCGlobal::kdeVersion() );
|
||||
content += KC_HTMLROW( user_text, KCGlobal::userName() );
|
||||
content += KC_HTMLROW( host_text, KCGlobal::hostName() );
|
||||
content += KC_HTMLROW( system_text, KCGlobal::systemName() );
|
||||
content += KC_HTMLROW( release_text, KCGlobal::systemRelease() );
|
||||
content += KC_HTMLROW( machine_text, KCGlobal::systemMachine() );
|
||||
#undef KC_HTMLROW
|
||||
content += "</table>\n";
|
||||
content += "<p class=\"kc_use_text\">" + i18n(use_text) + "</p>\n";
|
||||
} else {
|
||||
content += "<div id=\"tableTitle\">" + _caption + "</div>";
|
||||
|
||||
content += "<table class=\"kc_table\">\n";
|
||||
// traverse the list
|
||||
|
||||
foreach(ConfigModule* configModule, *_configModules) {
|
||||
QString szName;
|
||||
QString szComment;
|
||||
|
||||
content += "<tr><td class=\"kc_leftcol\">";
|
||||
szName = configModule->moduleName();
|
||||
szComment = configModule->comment();
|
||||
content += "<a href=\"%1\">" + szName + "</a></td><td class=\"kc_rightcol\">" + szComment;
|
||||
KUrl moduleURL(QString("kcm://%1").arg(QString().sprintf("%p", (void*)configModule)) );
|
||||
QString linkURL(moduleURL.url() );
|
||||
content = content.arg(linkURL);
|
||||
_moduleMap.insert(linkURL, configModule);
|
||||
|
||||
content += "</td></tr>\n";
|
||||
|
||||
}
|
||||
content += "</table>";
|
||||
}
|
||||
|
||||
_viewer->begin(KUrl(file));
|
||||
_viewer->write(res.arg(content) );
|
||||
_viewer->end();
|
||||
}
|
||||
|
||||
void AboutWidget::slotModuleLinkClicked(const KUrl& url) {
|
||||
ConfigModule* module = _moduleMap[url.url()];
|
||||
if (module) {
|
||||
emit moduleSelected(module);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000,2001 Matthias Elter <elter@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 __aboutwidget_h__
|
||||
#define __aboutwidget_h__
|
||||
|
||||
#include <QWidget>
|
||||
#include <QListWidgetItem>
|
||||
#include <QMap>
|
||||
#include <QPixmap>
|
||||
#include <kvbox.h>
|
||||
|
||||
class QPixmap;
|
||||
class ConfigModule;
|
||||
class KHTMLPart;
|
||||
class KUrl;
|
||||
class ConfigModuleList;
|
||||
|
||||
class AboutWidget : public KHBox
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AboutWidget(QWidget *parent, ConfigModuleList* modules = NULL, const QString &caption=QString());
|
||||
|
||||
signals:
|
||||
void moduleSelected(ConfigModule *);
|
||||
|
||||
private Q_SLOTS:
|
||||
void slotModuleLinkClicked( const KUrl& );
|
||||
|
||||
private:
|
||||
/**
|
||||
* Update the pixmap to be shown. Called from resizeEvent and from
|
||||
* setCategory.
|
||||
*/
|
||||
void updatePixmap();
|
||||
|
||||
ConfigModuleList * _configModules;
|
||||
QString _caption;
|
||||
KHTMLPart *_viewer;
|
||||
QMap<QString,ConfigModule*> _moduleMap;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,13 +0,0 @@
|
|||
# TODO: HAVE_COREAUDIO (for OSX)
|
||||
# TODO: HAVE_LIBDEVINFO_H (for Solaris 7 and later)
|
||||
# to be set if both -ldevinfo and libdevinfo.h exist
|
||||
|
||||
check_include_files(devinfo.h HAVE_DEVINFO_H) # info_fbsd.cpp
|
||||
check_include_files(fstab.h HAVE_FSTAB_H) # info_linux.cpp
|
||||
check_include_files(linux/raw.h HAVE_LINUX_RAW_H) # info_linux.cpp
|
||||
check_include_files(mntent.h HAVE_MNTENT_H) # info_linux.cpp
|
||||
check_include_files(sys/ioctl.h HAVE_SYS_IOCTL_H) # info_linux.cpp
|
||||
check_include_files(sys/raw.h HAVE_SYS_RAW_H) # info_linux.cpp
|
||||
check_include_files(Alib.h HAVE_ALIB_H) # info_hpux.cpp
|
||||
|
||||
configure_file (../base/config-infocenter.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-infocenter.h )
|
|
@ -1,30 +0,0 @@
|
|||
/* Define if you have the CoreAudio API */
|
||||
#undef HAVE_COREAUDIO
|
||||
|
||||
/* Defines if you have libdevinfo of Solaris 7 or later */
|
||||
#undef HAVE_LIBDEVINFO_H
|
||||
|
||||
/* Define to 1 if you have the <devinfo.h> header file. */
|
||||
#cmakedefine HAVE_DEVINFO_H 1
|
||||
|
||||
/* Define to 1 if you have the <fstab.h> header file. */
|
||||
#cmakedefine HAVE_FSTAB_H 1
|
||||
|
||||
/* Define to 1 if you have the <linux/raw.h> header file. */
|
||||
#cmakedefine HAVE_LINUX_RAW_H 1
|
||||
|
||||
/* Define to 1 if you have the <mntent.h> header file. */
|
||||
#cmakedefine HAVE_MNTENT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
||||
#cmakedefine HAVE_SYS_IOCTL_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/raw.h> header file. */
|
||||
#cmakedefine HAVE_SYS_RAW_H 1
|
||||
|
||||
/* Define to 1 if you have the <Alib.h> header file. */
|
||||
#cmakedefine HAVE_ALIB_H 1
|
||||
|
||||
/* Define to 1 if you have statvfs */
|
||||
#cmakedefine HAVE_STATVFS 1
|
||||
|
|
@ -1,347 +0,0 @@
|
|||
/*
|
||||
* info_aix.cpp
|
||||
*
|
||||
* Reza Arbab <arbab@austin.ibm.com>
|
||||
*
|
||||
* GetInfo_Partitions() and its helpers (get_fs_usage, fs_adjust_blocks)
|
||||
* taken from info_hpux.cpp.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <cf.h>
|
||||
#define class _class
|
||||
#include <odmi.h>
|
||||
#include <sys/cfgodm.h>
|
||||
#include <sys/cfgdb.h>
|
||||
#undef class
|
||||
#include <nl_types.h>
|
||||
#include <string.h>
|
||||
#include <kdebug.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <sys/statfs.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <fstab.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
char * device_description(struct CuDv *cudv) {
|
||||
char *desc= NULL;
|
||||
struct PdDv *pddv = cudv->PdDvLn; /* link to Predefined Devices database */
|
||||
nl_catd cat;
|
||||
|
||||
cat = catopen("/usr/lib/methods/devices.cat", NL_CAT_LOCALE);
|
||||
if ((int)cat == -1)
|
||||
return NULL;
|
||||
|
||||
desc = strdup(catgets(cat, pddv->setno, pddv->msgno, "N/A") );
|
||||
catclose(cat);
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
bool list_devices(QListView *lBox, char *criteria) {
|
||||
struct CuDv *cudv; /* Customized Devices */
|
||||
struct listinfo info;
|
||||
int i;
|
||||
char *cudv_desc;
|
||||
QString cudv_status;
|
||||
QListViewItem *lastitem= NULL;
|
||||
|
||||
lBox->addColumn(i18n("Name"));
|
||||
lBox->addColumn(i18n("Status"));
|
||||
lBox->addColumn(i18n("Location"));
|
||||
lBox->addColumn(i18n("Description"));
|
||||
|
||||
if (odm_initialize() == -1) {
|
||||
kError(0) << "odm_initialize() failed: odmerrno = " << odmerrno << endl;
|
||||
return (false);
|
||||
}
|
||||
|
||||
cudv = (struct CuDv *) odm_get_list(CuDv_CLASS, criteria, &info, 100, 2);
|
||||
|
||||
if ((int)cudv == -1) {
|
||||
odm_terminate();
|
||||
kError(0) << "odm_get_list() failed: odmerrno = " << odmerrno << endl;
|
||||
return (false);
|
||||
} else if (!cudv) /* empty list */
|
||||
{
|
||||
odm_terminate();
|
||||
return (true);
|
||||
}
|
||||
|
||||
for (i=0; i<info.num; i++) {
|
||||
switch (cudv[i].status) {
|
||||
case DEFINED:
|
||||
cudv_status = QString("Defined");
|
||||
break;
|
||||
case AVAILABLE:
|
||||
cudv_status = QString("Available");
|
||||
break;
|
||||
case STOPPED:
|
||||
cudv_status = QString("Stopped");
|
||||
break;
|
||||
default:
|
||||
cudv_status = QString("Unknown");
|
||||
}
|
||||
cudv_desc = device_description(&cudv[i]);
|
||||
|
||||
lastitem = new QListViewItem(lBox, lastitem,
|
||||
QString(cudv[i].name),
|
||||
cudv_status,
|
||||
QString(cudv[i].location),
|
||||
QString(cudv_desc ? cudv_desc : "N/A") );
|
||||
|
||||
if (cudv_desc)
|
||||
free(cudv_desc);
|
||||
}
|
||||
|
||||
if (odm_free_list(cudv, &info) == -1) {
|
||||
odm_terminate();
|
||||
kError(0) << "odm_free_list() failed: odmerrno = " << odmerrno << endl;
|
||||
return (false);
|
||||
}
|
||||
|
||||
odm_terminate();
|
||||
return true;
|
||||
}
|
||||
|
||||
enum CHIP
|
||||
{
|
||||
P2SC, Power, Power2, Power3, Power3_II, PowerPC,
|
||||
PowerPC_604e, PowerPersonal, RD64_II, RS_III, RS64, RS64_II,
|
||||
RS64_III, RS64_IV, RSC, ThinkPad, unknown,
|
||||
NUM_CHIPS
|
||||
};
|
||||
static const char chip_name[NUM_CHIPS][16] = { "P2SC", "Power", "Power2", "Power3", "Power3-II", "PowerPC", "PowerPC 604e", "PowerPersonal", "RD64-II", "RS-III", "RS64", "RS64-II", "RS64-III", "RS64-IV", "RSC", "ThinkPad", "unknown" };
|
||||
|
||||
struct model {
|
||||
char model_ID[21];
|
||||
char machine_type[21];
|
||||
char processor_speed[21];
|
||||
unsigned short architecture; /* enum CHIP */
|
||||
};
|
||||
|
||||
const
|
||||
struct model _models[] = { { "02", "7015-930", "25", Power }, { "10", "7013-530", "25", Power }, { "10", "7016-730", "25", Power }, { "11", "7013-540", "30", Power }, { "14", "7013-540", "30", Power }, { "18", "7013-53H", "33", Power }, { "1C", "7013-550", "41.6", Power }, { "20", "7015-930", "25",
|
||||
Power }, { "2E", "7015-950", "41", Power }, { "30", "7013-520", "20", Power }, { "31", "7012-320", "20", Power }, { "34", "7013-52H", "25", Power }, { "35", "7012-32H", "25", Power }, { "37", "7012-340", "33", Power }, { "38", "7012-350", "41", Power }, { "41", "7011-20", "33", PowerPC }, {
|
||||
"45", "7011-220", "33", PowerPC }, { "42", "7006-41T/41W", "80", PowerPC }, { "43", "7008-M20", "33", Power }, { "43", "7008-M2A", "33", Power }, { "46", "7011-250", "66", PowerPC }, { "47", "7011-230", "45", RSC }, { "48", "7009-C10", "80", PowerPC },
|
||||
/* 4C models use a different table -- see below */
|
||||
{ "4C", "70XX", "(unknown)", unknown }, { "57", "7012-390", "67", Power2 }, { "57", "7030-3BT", "67", Power2 }, { "57", "9076-SP2 Thin", "67", Power2 }, { "58", "7012-380", "59", Power2 }, { "58", "7030-3AT", "59", Power2 }, { "59", "7012-39H", "67", Power2 }, { "59", "9076-SP2 Thin w/L2", "67",
|
||||
Power2 }, { "5C", "7013-560", "50", Power }, { "63", "7015-970", "50", Power }, { "63", "7015-97B", "50", Power }, { "64", "7015-980", "62.5", Power }, { "64", "7015-98B", "62.5", Power }, { "66", "7013-580", "62.5", Power }, { "67", "7013-570", "50", Power }, { "67", "7015-R10", "50",
|
||||
Power }, { "70", "7013-590", "66", Power2 }, { "70", "9076-SP2 Wide", "66", Power2 }, { "71", "7013-58H", "55", Power2 }, { "72", "7013-59H", "66", Power2 }, { "72", "7015-R20", "66", Power2 }, { "72", "9076-SP2 Wide", "66", Power2 }, { "75", "7012-370", "62", Power }, { "75", "7012-375",
|
||||
"62", Power }, { "75", "9076-SP1 Thin", "62", Power }, { "76", "7012-360", "50", Power }, { "76", "7012-365", "50", Power }, { "77", "7012-350", "41", Power }, { "77", "7012-355", "41", Power }, { "77", "7013-55L", "41.6", Power }, { "79", "7013-591", "77", Power2 }, { "79",
|
||||
"9076-SP2 Wide", "77", Power2 }, { "80", "7015-990", "71.5", Power2 }, { "81", "7015-R24", "71.5", P2SC }, { "89", "7013-595", "135", P2SC }, { "89", "9076-SP2 Wide", "135", P2SC }, { "90", "7009-C20", "120", PowerPC }, { "91", "7006-42W/42T", "120", PowerPC }, { "94", "7012-397", "160",
|
||||
P2SC }, { "94", "9076-SP2 Thin", "160", P2SC }, { "A0", "7013-J30", "75", PowerPC }, { "A1", "7013-J40", "112", PowerPC }, { "A3", "7015-R30", "(unknown)", PowerPC }, { "A4", "7015-R40", "(unknown)", PowerPC }, { "A4", "7015-R50", "(unknown)", PowerPC }, { "A4", "9076-SP2 High",
|
||||
"(unknown)", PowerPC }, { "A6", "7012-G30", "(unknown)", PowerPC }, { "A7", "7012-G40", "(unknown)", PowerPC }, { "C0", "7024-E20", "(unknown)", PowerPC }, { "C0", "7024-E30", "(unknown)", PowerPC }, { "C4", "7025-F30", "(unknown)", PowerPC }, { "F0", "7007-N40", "50", ThinkPad }, { "", "",
|
||||
"0", 0 } };
|
||||
|
||||
const
|
||||
struct model _4C_models[] = { { "IBM,7017-S70", "7017-S70", "125", RS64 }, { "IBM,7017-S7A", "7017-S7A", "262", RD64_II }, { "IBM,7017-S80", "7017-S80", "450", RS_III }, { "IBM,7017-S85", "pSeries 680", "600", RS64_IV }, { "IBM,7025-F40", "7025-F40", "166/233", PowerPC_604e }, { "IBM,7025-F50",
|
||||
"7025-F50", "(unknown)", PowerPC_604e }, { "IBM,7025-F80", "7025-F80", "(unknown)", RS64_III }, { "IBM,7026-H10", "7025-H10", "166/233", PowerPC_604e }, { "IBM,7026-H50", "7025-H50", "(unknown)", PowerPC_604e }, { "IBM,7026-H80", "7025-H80", "(unknown)", RS64_III }, { "IBM,7026-M80",
|
||||
"7026-M80", "500", RS64_III }, { "IBM,7025-F40", "7025-F40", "166/233", PowerPC }, { "IBM,7025-F50", "7025-F50", "(unknown)", PowerPC }, { "IBM,7025-F80", "7025-F80", "450", PowerPC }, { "IBM,7026-B80", "pSeries 640", "375", Power3_II }, { "IBM,7026-H10", "7026-H10", "166/233", PowerPC }, {
|
||||
"IBM,7026-H50", "7026-H50", "(unknown)", PowerPC }, { "IBM,7026-H70", "7026-H70", "340", RS64_II }, { "IBM,7026-H80", "7026-H80", "450", PowerPC }, { "IBM,7026-M80", "7026-M80", "500", PowerPC }, { "IBM,7042-140", "7043-140", "166/200/233/332", PowerPC }, { "IBM,7042-150", "7043-150",
|
||||
"375", PowerPC }, { "IBM,7042-240", "7043-240", "166/233", PowerPC }, { "IBM,7043-140", "7043-140", "166/200/233/332", PowerPC }, { "IBM,7043-150", "7043-150", "375", PowerPC }, { "IBM,7043-240", "7043-240", "166/233", PowerPC }, { "IBM,7043-260", "7043-260", "200", Power3 }, { "IBM,7248",
|
||||
"7248-100", "100", PowerPersonal }, { "IBM,7248", "7248-120", "120", PowerPersonal }, { "IBM,7248", "7248-132", "132", PowerPersonal }, { "IBM,9076-270", "9076-SP Silver Node", "(unknown)", PowerPC }, { "", "", "", 0 },
|
||||
};
|
||||
|
||||
/* all GetInfo_ functions should return true, when the Information
|
||||
was filled into the lBox-Widget.
|
||||
returning false indicates, that information was not available.
|
||||
*/
|
||||
|
||||
bool GetInfo_XServer_and_Video(QListView *lBox) {
|
||||
return GetInfo_XServer_Generic(lBox);
|
||||
}
|
||||
|
||||
/*
|
||||
* Written using information from:
|
||||
*
|
||||
* http://service.software.ibm.com/cgi-bin/support/rs6000.support/techbrowse/tbgaus?gaus_mode=8&documents=B93576892313352&database=task
|
||||
*
|
||||
* Not fully implemented. In particular there are ways to resolve the
|
||||
* "(unknown)" clock speeds of many of these models. See page for details.
|
||||
*
|
||||
*/
|
||||
bool GetInfo_CPU(QListView *lBox) {
|
||||
struct utsname info;
|
||||
struct model *table = _models; /* table of model information */
|
||||
char model_ID[21] = ""; /* information for table lookup */
|
||||
char cpu_ID[7] = ""; /* unique CPU ID */
|
||||
int i;
|
||||
QListViewItem *lastitem= NULL;
|
||||
|
||||
lBox->addColumn(i18n("Information"));
|
||||
lBox->addColumn(i18n("Value"));
|
||||
|
||||
if (uname(&info) == -1) {
|
||||
kError(0) << "uname() failed: errno = " << errno << endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
strncat(model_ID, info.machine+8, 2); /* we want the ninth and tenth digits */
|
||||
strncat(cpu_ID, info.machine+2, 6);
|
||||
|
||||
if (strcmp(model_ID, "4C") == 0) /* need to use a different model_ID and model table */
|
||||
{
|
||||
if (odm_initialize() == -1)
|
||||
kError(0) << "odm_initialize() failed: odmerrno = " << odmerrno << endl;
|
||||
else {
|
||||
struct CuAt cuat; /* Customized Device attribute */
|
||||
|
||||
/* equivalent to uname -M */
|
||||
if (odm_get_first(CuAt_CLASS, (char *)"name='sys0' and attribute='modelname'", &cuat) ) {
|
||||
strcpy(model_ID, cuat.value);
|
||||
table = _4C_models;
|
||||
}
|
||||
|
||||
odm_terminate();
|
||||
}
|
||||
}
|
||||
|
||||
lastitem = new QListViewItem(lBox, lastitem, QString("CPU ID"), QString(cpu_ID));
|
||||
lastitem = new QListViewItem(lBox, lastitem, QString("Node"), QString(info.nodename));
|
||||
lastitem = new QListViewItem(lBox, lastitem, QString("OS"), QString(info.sysname) +
|
||||
QString(" ") + QString(info.version) + QString(".") + QString(info.release));
|
||||
|
||||
for (i=0; *(table[i].model_ID); i++)
|
||||
if (strcmp(model_ID, table[i].model_ID) == 0) {
|
||||
lastitem = new QListViewItem(lBox, lastitem, QString("Machine Type"), QString(table[i].machine_type));
|
||||
lastitem = new QListViewItem(lBox, lastitem, QString("Architecture"), QString(chip_name[table[i].architecture]));
|
||||
lastitem = new QListViewItem(lBox, lastitem, QString("Speed"), QString(table[i].processor_speed) + QString(" Mhz"));
|
||||
break;
|
||||
}
|
||||
|
||||
return (true);
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
return list_devices(tree, (char *)"PdDvLn like '*/pci/*'");
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QListView *lBox) {
|
||||
return list_devices(lBox, (char *)"PdDvLn like '*'");
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QListView *lBox) {
|
||||
return list_devices(lBox, (char *)"PdDvLn like '*/scsi/*'");
|
||||
}
|
||||
|
||||
/* Parts taken from fsusage.c from the Midnight Commander (mc)
|
||||
|
||||
Copyright (C) 1991, 1992 Free Software Foundation, In
|
||||
|
||||
Return the number of TOSIZE-byte blocks used by
|
||||
BLOCKS FROMSIZE-byte blocks, rounding away from zero.
|
||||
TOSIZE must be positive. Return -1 if FROMSIZE is not positive. */
|
||||
|
||||
static long fs_adjust_blocks(long blocks, int fromsize, int tosize) {
|
||||
if (tosize <= 0)
|
||||
abort();
|
||||
if (fromsize <= 0)
|
||||
return -1;
|
||||
|
||||
if (fromsize == tosize) /* E.g., from 512 to 512. */
|
||||
return blocks;
|
||||
else if (fromsize > tosize) /* E.g., from 2048 to 512. */
|
||||
return blocks * (fromsize / tosize);
|
||||
else
|
||||
/* E.g., from 256 to 512. */
|
||||
return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize);
|
||||
}
|
||||
|
||||
/* Fill in the fields of FSP with information about space usage for
|
||||
the filesystem on which PATH resides.
|
||||
Return 0 if successful, -1 if not. */
|
||||
|
||||
#define CONVERT_BLOCKS(b) fs_adjust_blocks ((b), fsd.f_bsize, 512)
|
||||
|
||||
static int get_fs_usage(char *path, long *l_total, long *l_avail) {
|
||||
struct statfs fsd; /* 4.3BSD, SunOS 4, HP-UX, AIX. */
|
||||
unsigned long fsu_blocks, fsu_bfree, fsu_bavail;
|
||||
|
||||
*l_total = *l_avail = 0;
|
||||
if (statfs(path, &fsd) < 0)
|
||||
return -1;
|
||||
|
||||
fsu_blocks = CONVERT_BLOCKS (fsd.f_blocks);
|
||||
fsu_bfree = CONVERT_BLOCKS (fsd.f_bfree);
|
||||
fsu_bavail = CONVERT_BLOCKS (fsd.f_bavail);
|
||||
|
||||
*l_avail = getuid() ? fsu_bavail/2 : fsu_bfree/2;
|
||||
*l_total = fsu_blocks/2;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Some Ideas taken from garbazo from his source in info_fbsd.cpp
|
||||
|
||||
bool GetInfo_Partitions(QListView *lbox) {
|
||||
#define NUMCOLS 5
|
||||
QString Title[NUMCOLS];
|
||||
int n;
|
||||
|
||||
struct fstab *fstab_ent;
|
||||
struct statvfs svfs;
|
||||
long total, avail;
|
||||
QString str;
|
||||
QString MB(i18nc("Mebibyte", "MiB "));
|
||||
|
||||
if (setfsent() != 1) // Try to open fstab
|
||||
return false;
|
||||
|
||||
Title[0] = i18n("Device");
|
||||
Title[1] = i18n("Mount Point");
|
||||
Title[2] = i18n("FS Type");
|
||||
Title[3] = i18n("Total Size");
|
||||
Title[4] = i18n("Free Size");
|
||||
|
||||
for (n=0; n<NUMCOLS; ++n) {
|
||||
lbox->addColumn(Title[n]);
|
||||
}
|
||||
|
||||
while ((fstab_ent=getfsent())!=NULL) {
|
||||
/* fstab_ent->fs_type holds only "rw","xx","ro"... */
|
||||
memset(&svfs, 0, sizeof(svfs));
|
||||
statvfs(fstab_ent->fs_file, &svfs);
|
||||
get_fs_usage(fstab_ent->fs_file, &total, &avail);
|
||||
|
||||
if (!strcmp(fstab_ent->fs_type, FSTAB_XX)) // valid drive ?
|
||||
svfs.f_basetype[0] = 0;
|
||||
|
||||
if (svfs.f_basetype[0]) {
|
||||
new QListViewItem(lbox, QString(fstab_ent->fs_spec),
|
||||
QString(fstab_ent->fs_file) + QString(" "),
|
||||
(svfs.f_basetype[0] ? QString(svfs.f_basetype) : i18n("n/a")),
|
||||
Value((total+512)/1024,6) + MB,
|
||||
Value((avail+512)/1024,6) + MB);
|
||||
} else {
|
||||
new QListViewItem(lbox, QString(fstab_ent->fs_spec),
|
||||
QString(fstab_ent->fs_file) + QString(" "),
|
||||
(svfs.f_basetype[0] ? QString(svfs.f_basetype) : i18n("n/a")));
|
||||
}
|
||||
|
||||
}
|
||||
endfsent();
|
||||
|
||||
return true;
|
||||
}
|
|
@ -1,456 +0,0 @@
|
|||
/*
|
||||
* info_fbsd.cpp is part of the KDE program kcminfo. This displays
|
||||
* various information about the system (hopefully a FreeBSD system)
|
||||
* it's running on.
|
||||
*
|
||||
* All of the devinfo bits were blatantly stolen from the devinfo utility
|
||||
* provided with FreeBSD 5.0 (and later). No gross hacks were harmed
|
||||
* during the creation of info_fbsd.cpp. Thanks Mike.
|
||||
*/
|
||||
|
||||
/*
|
||||
* all following functions should return true, when the Information
|
||||
* was filled into the QTreeWidget. Returning false indicates that
|
||||
* information was not available.
|
||||
*/
|
||||
|
||||
#include "config-infocenter.h" // HAVE_DEVINFO_H
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
#ifdef HAVE_DEVINFO_H
|
||||
extern "C" {
|
||||
#include <devinfo.h>
|
||||
}
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
#include <fstab.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <QMap>
|
||||
#include <QFile>
|
||||
|
||||
#include <QTextStream>
|
||||
|
||||
class Device {
|
||||
public:
|
||||
Device(QString n=QString(), QString d=QString()) {
|
||||
name=n;
|
||||
description=d;
|
||||
}
|
||||
QString name, description;
|
||||
};
|
||||
|
||||
void ProcessChildren(QString name);
|
||||
QString GetController(const QString &line);
|
||||
Device *GetDevice(const QString &line);
|
||||
|
||||
#ifdef HAVE_DEVINFO_H
|
||||
extern "C" {
|
||||
int print_irq(struct devinfo_rman *rman, void *arg);
|
||||
int print_dma(struct devinfo_rman *rman, void *arg);
|
||||
int print_ioports(struct devinfo_rman *rman, void *arg);
|
||||
int print_resource(struct devinfo_res *res, void *arg);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree) {
|
||||
// Modified 13 July 2000 for SMP by Brad Hughes - bhughes@trolltech.com
|
||||
|
||||
int ncpu;
|
||||
size_t len;
|
||||
|
||||
len = sizeof(ncpu);
|
||||
sysctlbyname("hw.ncpu", &ncpu, &len, NULL, 0);
|
||||
|
||||
QString cpustring;
|
||||
for (int i = ncpu; i > 0; i--) {
|
||||
/* Stuff for sysctl */
|
||||
char *buf;
|
||||
int i_buf;
|
||||
|
||||
// get the processor model
|
||||
sysctlbyname("hw.model", NULL, &len, NULL, 0);
|
||||
buf = new char[len];
|
||||
sysctlbyname("hw.model", buf, &len, NULL, 0);
|
||||
|
||||
// get the TSC speed if we can
|
||||
len = sizeof(i_buf);
|
||||
if (sysctlbyname("machdep.tsc_freq", &i_buf, &len, NULL, 0) != -1) {
|
||||
cpustring = i18n("CPU %1: %2, %3 MHz", i, buf, i_buf/1000000);
|
||||
} else {
|
||||
cpustring = i18n("CPU %1: %2, unknown speed", i, buf);
|
||||
}
|
||||
|
||||
/* Put everything in the listbox */
|
||||
QStringList list;
|
||||
list << cpustring;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
|
||||
/* Clean up after ourselves, this time I mean it ;-) */
|
||||
delete[] buf;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget* tree) {
|
||||
#ifdef HAVE_DEVINFO_H
|
||||
/* systat lists the interrupts assigned to devices as well as how many were
|
||||
generated. Parsing its output however is about as fun as a sandpaper
|
||||
enema. The best idea would probably be to rip out the guts of systat.
|
||||
Too bad it's not very well commented */
|
||||
/* Oh neat, current now has a neat little utility called devinfo */
|
||||
if (devinfo_init())
|
||||
return false;
|
||||
devinfo_foreach_rman(print_irq, tree);
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget* tree) {
|
||||
#ifdef HAVE_DEVINFO_H
|
||||
/* Oh neat, current now has a neat little utility called devinfo */
|
||||
if (devinfo_init())
|
||||
return false;
|
||||
devinfo_foreach_rman(print_dma, tree);
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget* tree) {
|
||||
#ifdef HAVE_DEVINFO_H
|
||||
/* Oh neat, current now has a neat little utility called devinfo */
|
||||
if (devinfo_init())
|
||||
return false;
|
||||
devinfo_foreach_rman(print_ioports, tree);
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget* tree) {
|
||||
QFile *sndstat = new QFile("/dev/sndstat");
|
||||
QTextStream *t;
|
||||
QString s;
|
||||
|
||||
if (!sndstat->exists() || !sndstat->open(QIODevice::ReadOnly)) {
|
||||
|
||||
s = i18n("Your sound system could not be queried. /dev/sndstat does not exist or is not readable.");
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
} else {
|
||||
t = new QTextStream(sndstat);
|
||||
while (!(s=t->readLine()).isNull()) {
|
||||
QStringList list;
|
||||
list << s;
|
||||
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
delete t;
|
||||
sndstat->close();
|
||||
}
|
||||
|
||||
delete sndstat;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget* tree) {
|
||||
FILE *pipe;
|
||||
QFile *camcontrol = new QFile("/sbin/camcontrol");
|
||||
QTextStream *t;
|
||||
QString s;
|
||||
|
||||
if (!camcontrol->exists()) {
|
||||
s = i18n("SCSI subsystem could not be queried: /sbin/camcontrol could not be found");
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
} else if ((pipe = popen("/sbin/camcontrol devlist 2>&1", "r")) == NULL) {
|
||||
s = i18n("SCSI subsystem could not be queried: /sbin/camcontrol could not be executed");
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
} else {
|
||||
|
||||
/* This prints out a list of all the scsi devies, perhaps eventually we could
|
||||
parse it as opposed to schlepping it into a listbox */
|
||||
|
||||
t = new QTextStream(pipe, QIODevice::ReadOnly);
|
||||
|
||||
while (true) {
|
||||
s = t->readLine();
|
||||
if (s.isEmpty() )
|
||||
break;
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
delete t;
|
||||
pclose(pipe);
|
||||
}
|
||||
|
||||
delete camcontrol;
|
||||
|
||||
if (!tree->topLevelItemCount())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
FILE *pipe;
|
||||
QFile *pcicontrol;
|
||||
QString s, cmd;
|
||||
QTreeWidgetItem *olditem= NULL;
|
||||
|
||||
pcicontrol = new QFile("/usr/sbin/pciconf");
|
||||
|
||||
if (!pcicontrol->exists()) {
|
||||
delete pcicontrol;
|
||||
pcicontrol = new QFile("/usr/X11R6/bin/scanpci");
|
||||
if (!pcicontrol->exists()) {
|
||||
delete pcicontrol;
|
||||
pcicontrol = new QFile("/usr/X11R6/bin/pcitweak");
|
||||
if (!pcicontrol->exists()) {
|
||||
QStringList list;
|
||||
list << i18n("Could not find any programs with which to query your system's PCI information");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
delete pcicontrol;
|
||||
return true;
|
||||
} else {
|
||||
cmd = "/usr/X11R6/bin/pcitweak -l 2>&1";
|
||||
}
|
||||
} else {
|
||||
cmd = "/usr/X11R6/bin/scanpci";
|
||||
}
|
||||
} else {
|
||||
cmd = "/usr/sbin/pciconf -l -v 2>&1";
|
||||
}
|
||||
delete pcicontrol;
|
||||
|
||||
if ((pipe = popen(cmd.toLatin1(), "r")) == NULL) {
|
||||
QStringList list;
|
||||
list << i18n("PCI subsystem could not be queried: %1 could not be executed", cmd);
|
||||
olditem = new QTreeWidgetItem(olditem, list);
|
||||
} else {
|
||||
|
||||
/* This prints out a list of all the pci devies, perhaps eventually we could
|
||||
parse it as opposed to schlepping it into a listbox */
|
||||
|
||||
pclose(pipe);
|
||||
GetInfo_ReadfromPipe(tree, cmd.toLatin1(), true);
|
||||
}
|
||||
|
||||
if (!tree->topLevelItemCount()) {
|
||||
QString str = i18n("The PCI subsystem could not be queried, this may need root privileges.");
|
||||
olditem = new QTreeWidgetItem(tree, olditem);
|
||||
olditem->setText(0, str);
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget* tree) {
|
||||
struct fstab *fstab_ent;
|
||||
|
||||
if (setfsent() != 1) /* Try to open fstab */{
|
||||
int s_err= errno;
|
||||
QString s;
|
||||
s = i18n("Could not check file system info: ");
|
||||
s += strerror(s_err);
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
} else {
|
||||
QStringList headers;
|
||||
headers << i18n("Device") << i18n("Mount Point") << i18n("FS Type") << i18n("Mount Options");
|
||||
|
||||
while ((fstab_ent=getfsent())!=NULL) {
|
||||
QStringList list;
|
||||
list << fstab_ent->fs_spec << fstab_ent->fs_file << fstab_ent->fs_vfstype << fstab_ent->fs_mntops;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
tree->sortItems(0, Qt::AscendingOrder);
|
||||
|
||||
endfsent(); /* Close fstab */
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QTreeWidget* tree) {
|
||||
QFile *f = new QFile("/var/run/dmesg.boot");
|
||||
if (f->open(QIODevice::ReadOnly)) {
|
||||
QTextStream qts(f);
|
||||
QMap<QString, QTreeWidgetItem*> lv_items;
|
||||
Device *dev;
|
||||
QString line, controller;
|
||||
tree->setRootIsDecorated(true);
|
||||
QStringList headers;
|
||||
headers << i18n("Device") << i18n("Description");
|
||||
tree->setHeaderLabels(headers);
|
||||
while ( !(line=qts.readLine()).isNull() ) {
|
||||
controller = GetController(line);
|
||||
if (controller.isNull())
|
||||
continue;
|
||||
dev=GetDevice(line);
|
||||
if (!dev)
|
||||
continue;
|
||||
// Ewww assuing motherboard is the only toplevel controller is rather gross
|
||||
if (controller == "motherboard") {
|
||||
if (lv_items.contains(QString(dev->name))==false) {
|
||||
QStringList list;
|
||||
list << dev->name << dev->description;
|
||||
|
||||
lv_items.insert(QString(dev->name), new QTreeWidgetItem(tree, list));
|
||||
}
|
||||
} else {
|
||||
QTreeWidgetItem* parent=lv_items[controller];
|
||||
if (parent && lv_items.contains(dev->name)==false) {
|
||||
QStringList list;
|
||||
list << dev->name << dev->description;
|
||||
lv_items.insert(QString(dev->name), new QTreeWidgetItem(parent, list));
|
||||
}
|
||||
}
|
||||
}
|
||||
delete f;
|
||||
return true;
|
||||
}
|
||||
delete f;
|
||||
return false;
|
||||
}
|
||||
|
||||
QString GetController(const QString &line) {
|
||||
if ( ( (line.startsWith("ad")) || (line.startsWith("afd")) || (line.startsWith("acd")) ) && (line.indexOf(":") < 6)) {
|
||||
QString controller = line;
|
||||
controller.remove(0, controller.indexOf(" at ")+4);
|
||||
if (controller.indexOf("-slave") != -1) {
|
||||
controller.remove(controller.indexOf("-slave"), controller.length());
|
||||
} else if (controller.indexOf("-master") != -1) {
|
||||
controller.remove(controller.indexOf("-master"), controller.length());
|
||||
} else
|
||||
controller=QString();
|
||||
if (!controller.isNull())
|
||||
return controller;
|
||||
}
|
||||
if (line.indexOf(" on ") != -1) {
|
||||
QString controller;
|
||||
controller = line;
|
||||
controller.remove(0, controller.indexOf(" on ")+4);
|
||||
if (controller.indexOf(" ") != -1)
|
||||
controller.remove(controller.indexOf(" "), controller.length());
|
||||
return controller;
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
Device *GetDevice(const QString &line) {
|
||||
Device *dev;
|
||||
int colon = line.indexOf(":");
|
||||
if (colon == -1)
|
||||
return 0;
|
||||
dev = new Device;
|
||||
dev->name = line.mid(0, colon);
|
||||
dev->description = line.mid(line.indexOf("<")+1, line.length());
|
||||
dev->description.remove(dev->description.indexOf(">"), dev->description.length());
|
||||
return dev;
|
||||
}
|
||||
|
||||
#ifdef HAVE_DEVINFO_H
|
||||
|
||||
int print_irq(struct devinfo_rman *rman, void *arg) {
|
||||
QTreeWidget* tree = (QTreeWidget *)arg;
|
||||
if (strcmp(rman->dm_desc, "Interrupt request lines")==0) {
|
||||
|
||||
QStringList list;
|
||||
list << rman->dm_desc;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
devinfo_foreach_rman_resource(rman, print_resource, arg);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int print_dma(struct devinfo_rman *rman, void *arg)
|
||||
{
|
||||
QTreeWidget* tree = (QTreeWidget *)arg;
|
||||
if (strcmp(rman->dm_desc, "DMA request lines")==0) {
|
||||
QStringList list;
|
||||
list << rman->dm_desc;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
devinfo_foreach_rman_resource(rman, print_resource, arg);
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
int print_ioports(struct devinfo_rman *rman, void *arg)
|
||||
{
|
||||
QTreeWidget* tree = (QTreeWidget*) arg;
|
||||
|
||||
if (strcmp(rman->dm_desc, "I/O ports")==0) {
|
||||
QStringList list;
|
||||
list << rman->dm_desc;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
|
||||
devinfo_foreach_rman_resource(rman, print_resource, arg);
|
||||
}
|
||||
else if (strcmp(rman->dm_desc, "I/O memory addresses")==0) {
|
||||
QStringList list;
|
||||
list << rman->dm_desc;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
|
||||
devinfo_foreach_rman_resource(rman, print_resource, arg);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int print_resource(struct devinfo_res *res, void *arg)
|
||||
{
|
||||
struct devinfo_dev *dev;
|
||||
struct devinfo_rman *rman;
|
||||
int hexmode;
|
||||
|
||||
QTreeWidget* tree = (QTreeWidget*) arg;
|
||||
|
||||
QString s, tmp;
|
||||
|
||||
rman = devinfo_handle_to_rman(res->dr_rman);
|
||||
hexmode = (rman->dm_size > 100) || (rman->dm_size == 0);
|
||||
tmp.sprintf(hexmode ? "0x%lx" : "%lu", res->dr_start);
|
||||
s += tmp;
|
||||
if (res->dr_size > 1) {
|
||||
tmp.sprintf(hexmode ? "-0x%lx" : "-%lu",
|
||||
res->dr_start + res->dr_size - 1);
|
||||
s += tmp;
|
||||
}
|
||||
|
||||
dev = devinfo_handle_to_device(res->dr_device);
|
||||
if ((dev != NULL) && (dev->dd_name[0] != 0)) {
|
||||
tmp.sprintf(" (%s)", dev->dd_name);
|
||||
} else {
|
||||
tmp.sprintf(" ----");
|
||||
}
|
||||
s += tmp;
|
||||
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,55 +0,0 @@
|
|||
/*
|
||||
|
||||
1998 by Helge Deller (deller@gmx.de)
|
||||
free source under GPL
|
||||
|
||||
!!!!! this file will be included by info.cpp !!!!!
|
||||
*/
|
||||
|
||||
// Default for unsupportet systems
|
||||
|
||||
|
||||
/* all following functions should return true, when the Information
|
||||
was filled into the lBox-Widget.
|
||||
returning false indicates, that information was not available.
|
||||
*/
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
}
|
|
@ -1,556 +0,0 @@
|
|||
/*
|
||||
!!!!! this file will be included by info.cpp !!!!!
|
||||
|
||||
Mostly written 1998-1999 by Helge Deller (deller@gmx.de),
|
||||
with some pieces of code from Aubert Pierre.
|
||||
|
||||
Last modified: done:
|
||||
1999-06-21 added more models to the lookup-table (deller)
|
||||
1999-06-18 added support for 64-Bit HP-UX in CPU-detection(deller)
|
||||
1999-05-04 added audio(alib)-support (deller)
|
||||
1999-04-27 [tested with HP-UX 10.20 (HP9000/715/64-EISA)]
|
||||
added support for nearly all categories
|
||||
(means: not finished!)
|
||||
1998-11-01 first, nearly empty version (deller)
|
||||
with a little source for CPU from Aubert Pierre
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/pstat.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <sys/vfs.h>
|
||||
#include <fstab.h>
|
||||
#include <stdlib.h>
|
||||
#include <QFile>
|
||||
#include <QFontMetrics>
|
||||
#include <QTextStream>
|
||||
|
||||
# define INFO_CPU_MODEL "/bin/model" // as pipe !!
|
||||
# define INFO_PCI "" // Please, who know it ????
|
||||
# define INFO_PCI_EISA "/etc/eisa/system.sci" // File !
|
||||
# define INFO_IOPORTS_1 "/etc/dmesg" // as pipe !
|
||||
# define INFO_IOPORTS_2 "/usr/sbin/dmesg" // as pipe !
|
||||
# define INFO_DEVICES "/etc/ioscan" // as pipe !!
|
||||
# define INFO_PARTITIONS_1 FSTAB // = "/etc/fstab" (in fstab.h)
|
||||
# define INFO_PARTITIONS_2 "/etc/checklist"
|
||||
|
||||
/* The following table is from an HP-UX 10.20 System
|
||||
build out of the files
|
||||
"/usr/lib/sched.models"
|
||||
or
|
||||
"/opt/langtools/lib/sched.models"
|
||||
If you have more entries, then please add them or send them to me!
|
||||
*/
|
||||
|
||||
// entries for PA_REVISION[]
|
||||
enum V_ENTRIES
|
||||
{ V_1x0,
|
||||
V_1x1, V_1x1a, V_1x1b, V_1x1c, V_1x1d, V_1x1e,
|
||||
V_2x0,
|
||||
V_LAST};
|
||||
|
||||
static const char PA_REVISION[V_LAST][7] = { "1.0", "1.1", "1.1a", "1.1b", "1.1c", "1.1d", "1.1e", "2.0" };
|
||||
|
||||
// entries for PA_NAME[]
|
||||
enum PA_ENTRIES
|
||||
{ PA7000,
|
||||
PA7100, PA7100LC, PA7200, PA7300,
|
||||
PA8000, PA8200, PA8500,
|
||||
PARISC_PA_LAST};
|
||||
|
||||
static const char PA_NAME[PARISC_PA_LAST][11] = { "PA7000", "PA7100", "PA7100LC", "PA7200", "PA7300", "PA8000", "PA8200", "PA8500" };
|
||||
|
||||
struct _type_LOOKUPTABLE {
|
||||
char Name[8];
|
||||
unsigned short parisc_rev; // = enum V_ENTRIES
|
||||
unsigned short parisc_name; // = enum PA_ENTRIES
|
||||
};
|
||||
|
||||
static const struct _type_LOOKUPTABLE PA_LOOKUPTABLE[] = {
|
||||
/* VERSION A.00.07
|
||||
(there seems to exist several different files with same version-number !)*/
|
||||
{ "600", V_1x0, PA7000 }, { "635", V_1x0, PA7000 }, { "645", V_1x0, PA7000 }, { "700", V_1x1, PA7000 }, { "705", V_1x1a, PA7000 }, { "710", V_1x1a, PA7000 }, { "712", V_1x1c, PA7100LC }, { "715", V_1x1c, PA7100LC }, { "720", V_1x1a, PA7000 }, { "722", V_1x1c, PA7100LC },
|
||||
{ "725", V_1x1c, PA7100LC }, { "728", V_1x1d, PA7200 }, { "730", V_1x1a, PA7000 }, { "735", V_1x1b, PA7100 },
|
||||
{ "742", V_1x1b, PA7100 },
|
||||
{ "743", V_1x1b, PA7100 }, // or a 1.1c,PA7100LC !!
|
||||
{ "744", V_1x1e, PA7300 }, { "745", V_1x1b, PA7100 }, { "747", V_1x1b, PA7100 }, { "750", V_1x1a, PA7000 }, { "755", V_1x1b, PA7100 }, { "770", V_1x1d, PA7200 }, { "777", V_1x1d, PA7200 }, { "778", V_1x1e, PA7300 }, { "779", V_1x1e, PA7300 }, { "780", V_2x0, PA8000 },
|
||||
{ "781", V_2x0, PA8000 }, { "782", V_2x0, PA8200 }, { "783", V_2x0, PA8500 }, { "785", V_2x0, PA8500 },
|
||||
{ "800", V_1x0, PA7000 }, // and one with: 2.0 / PA8000
|
||||
{ "801", V_1x1c, PA7100LC }, { "802", V_2x0, PA8000 }, { "803", V_1x1e, PA7300 }, { "804", V_2x0, PA8000 }, { "806", V_1x1c, PA7100LC }, { "807", V_1x1a, PA7000 }, { "808", V_1x0, PA7000 }, { "809", V_1x1d, PA7200 }, { "810", V_2x0, PA8000 }, { "811", V_1x1c, PA7100LC }, { "813", V_1x1e,
|
||||
PA7300 }, { "815", V_1x0, PA7000 }, { "816", V_1x1c, PA7100LC }, { "817", V_1x1a, PA7000 }, { "819", V_1x1d, PA7200 }, { "820", V_2x0, PA8000 }, { "821", V_1x1d, PA7200 }, { "822", V_1x0, PA7000 }, { "825", V_1x0, PA7000 }, { "826", V_1x1c, PA7100LC }, { "827", V_1x1a, PA7000 }, {
|
||||
"829", V_1x1d, PA7200 }, { "831", V_1x1d, PA7200 }, { "832", V_1x0, PA7000 }, { "834", V_1x0, PA7000 }, { "835", V_1x0, PA7000 }, { "837", V_1x1a, PA7000 }, { "839", V_1x1d, PA7200 }, { "840", V_1x0, PA7000 }, { "841", V_1x1d, PA7200 }, { "842", V_1x0, PA7000 }, { "845", V_1x0,
|
||||
PA7000 }, { "847", V_1x1a, PA7000 }, { "849", V_1x1d, PA7200 }, { "850", V_1x0, PA7000 }, { "851", V_1x1d, PA7200 }, { "852", V_1x0, PA7000 }, { "855", V_1x0, PA7000 }, { "856", V_1x1c, PA7100LC }, { "857", V_1x1a, PA7000 }, { "859", V_1x1d, PA7200 }, { "860", V_1x0, PA7000 }, {
|
||||
"861", V_2x0, PA8000 }, { "865", V_1x0, PA7000 }, { "869", V_1x1d, PA7200 }, { "870", V_1x0, PA7000 }, { "871", V_2x0, PA8000 }, { "877", V_1x1a, PA7000 }, { "879", V_2x0, PA8000 }, { "887", V_1x1b, PA7100 }, { "889", V_2x0, PA8000 }, { "890", V_1x0, PA7000 }, { "891", V_1x1b,
|
||||
PA7100 }, { "892", V_1x1b, PA7100 }, { "893", V_2x0, PA8000 }, { "895", V_2x0, PA8000 }, { "896", V_2x0, PA8000 }, { "897", V_1x1b, PA7100 }, { "898", V_2x0, PA8200 }, { "899", V_2x0, PA8200 }, { "900", V_1x0, PA7000 }, { "B115", V_1x1e, PA7300 }, { "B120", V_1x1e, PA7300 }, {
|
||||
"B132L", V_1x1e, PA7300 }, { "B160L", V_1x1e, PA7300 }, { "B180L", V_1x1e, PA7300 }, { "C100", V_1x1d, PA7200 }, { "C110", V_1x1d, PA7200 }, { "C115", V_1x1e, PA7300 }, { "C120", V_1x1e, PA7300 }, { "C130", V_2x0, PA8000 }, { "C140", V_2x0, PA8000 }, { "C160L", V_1x1e, PA7300 }, {
|
||||
"C160", V_2x0, PA8000 }, { "C180L", V_1x1e, PA7300 }, { "C180-XP", V_2x0, PA8000 }, { "C180", V_2x0, PA8000 }, { "C200+", V_2x0, PA8200 }, { "C230+", V_2x0, PA8200 }, { "C240+", V_2x0, PA8200 }, { "CB260", V_2x0, PA8200 },
|
||||
{ "D200", V_1x1d, PA7200 }, // or: 1.1c, PA7100LC
|
||||
{ "D210", V_1x1d, PA7200 }, // or: 1.1c, PA7100LC
|
||||
{ "D220", V_1x1e, PA7300 }, { "D230", V_1x1e, PA7300 }, { "D250", V_1x1d, PA7200 }, { "D260", V_1x1d, PA7200 }, { "D270", V_2x0, PA8000 }, { "D280", V_2x0, PA8000 }, { "D310", V_1x1c, PA7100LC }, { "D320", V_1x1e, PA7300 }, { "D330", V_1x1e, PA7300 }, { "D350", V_1x1d, PA7200 }, { "D360",
|
||||
V_1x1d, PA7200 }, { "D370", V_2x0, PA8000 }, { "D380", V_2x0, PA8000 }, { "D400", V_1x1d, PA7200 }, { "D410", V_1x1d, PA7200 }, { "D650", V_2x0, PA8000 }, { "DX0", V_1x1c, PA7100LC }, { "DX5", V_1x1c, PA7100LC }, { "DXO", V_1x1c, PA7100LC }, { "E25", V_1x1c, PA7100LC }, { "E35",
|
||||
V_1x1c, PA7100LC }, { "E45", V_1x1c, PA7100LC }, { "E55", V_1x1c, PA7100LC }, { "F10", V_1x1a, PA7000 }, { "F20", V_1x1a, PA7000 }, { "F30", V_1x1a, PA7000 }, { "G30", V_1x1a, PA7000 }, { "G40", V_1x1a, PA7000 }, { "G50", V_1x1b, PA7100 }, { "G60", V_1x1b, PA7100 }, { "G70", V_1x1b,
|
||||
PA7100 }, { "H20", V_1x1a, PA7000 }, { "H30", V_1x1a, PA7000 }, { "H40", V_1x1a, PA7000 }, { "H50", V_1x1b, PA7100 }, { "H60", V_1x1b, PA7100 }, { "H70", V_1x1b, PA7100 }, { "I30", V_1x1a, PA7000 }, { "I40", V_1x1a, PA7000 }, { "I50", V_1x1b, PA7100 }, { "I60", V_1x1b, PA7100 }, {
|
||||
"I70", V_1x1b, PA7100 }, { "J200", V_1x1d, PA7200 }, { "J210XC", V_1x1d, PA7200 }, { "J210", V_1x1d, PA7200 }, { "J220", V_2x0, PA8000 }, { "J2240", V_2x0, PA8200 }, { "J280", V_2x0, PA8000 }, { "J282", V_2x0, PA8000 }, { "J400", V_2x0, PA8000 }, { "J410", V_2x0, PA8000 }, { "K100",
|
||||
V_1x1d, PA7200 }, { "K200", V_1x1d, PA7200 }, { "K210", V_1x1d, PA7200 }, { "K230", V_1x1d, PA7200 }, { "K250", V_2x0, PA8000 }, { "K260", V_2x0, PA8000 }, { "K370", V_2x0, PA8200 }, { "K380", V_2x0, PA8200 }, { "K400", V_1x1d, PA7200 }, { "K410", V_1x1d, PA7200 }, { "K420", V_1x1d,
|
||||
PA7200 }, { "K430", V_1x1d, PA7200 }, { "K450", V_2x0, PA8000 }, { "K460", V_2x0, PA8000 }, { "K470", V_2x0, PA8200 }, { "K570", V_2x0, PA8200 }, { "K580", V_2x0, PA8200 }, { "S700i", V_1x1e, PA7300 }, { "S715", V_1x1e, PA7300 }, { "S744", V_1x1e, PA7300 },
|
||||
{ "S760", V_1x1e, PA7300 }, { "T500", V_1x1c, PA7100LC }, // or: 1.1b, PA7100
|
||||
{ "T520", V_1x1b, PA7100 }, { "T540", V_2x0, PA8000 }, { "T600", V_2x0, PA8000 }, { "V2000", V_2x0, PA8000 }, { "V2200", V_2x0, PA8200 }, { "V2250", V_2x0, PA8200 }, { "V2500", V_2x0, PA8500 },
|
||||
|
||||
{ "", 0, 0 } /* Last Entry has to be empty. */
|
||||
};
|
||||
|
||||
/* Helper-Functions */
|
||||
|
||||
// Value() is defined in info.cpp !!!
|
||||
|
||||
static bool Find_in_LOOKUPTABLE(QListView *lBox, char *machine) {
|
||||
char *Machine;
|
||||
int len;
|
||||
const struct _type_LOOKUPTABLE *Entry = PA_LOOKUPTABLE;
|
||||
QString str;
|
||||
QListViewItem* olditem = 0;
|
||||
|
||||
Machine = machine; // machine is like: "9000/715/D"
|
||||
while ((*Machine) && (*Machine!='/'))
|
||||
++Machine;
|
||||
|
||||
if (*Machine)
|
||||
++Machine;
|
||||
else
|
||||
Machine=machine;
|
||||
|
||||
len = strlen(Machine);
|
||||
|
||||
while (Entry->Name[0]) {
|
||||
if (strncmp(Entry->Name, Machine, len)==0) {
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("PA-RISC Processor"),
|
||||
QString(PA_NAME[Entry->parisc_name]));
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("PA-RISC Revision"),
|
||||
QString("PA-RISC ") + QString(PA_REVISION[Entry->parisc_rev]));
|
||||
return true;
|
||||
} else
|
||||
++Entry; // next Entry !
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* all following functions should return true, when the Information
|
||||
was filled into the lBox-Widget.
|
||||
returning false indicates, that information was not available.
|
||||
*/
|
||||
|
||||
bool GetInfo_CPU(QListView *lBox) {
|
||||
FILE *pipe;
|
||||
QFile *model;
|
||||
|
||||
struct pst_dynamic psd;
|
||||
struct pst_static pst;
|
||||
struct pst_processor pro;
|
||||
struct utsname info;
|
||||
QString str, str2;
|
||||
QListViewItem* olditem = 0;
|
||||
int maxwidth, i;
|
||||
|
||||
if ((pstat_getstatic(&pst, sizeof(pst), (size_t)1, 0) == -1) || (pstat_getdynamic(&psd, sizeof(psd), (size_t)1, 0)== -1)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
maxwidth = 0;
|
||||
lBox->addColumn(i18n("Information") );
|
||||
lBox->addColumn(i18n("Value") );
|
||||
|
||||
uname(&info);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Machine"), info.machine);
|
||||
|
||||
model = new QFile(INFO_CPU_MODEL);
|
||||
if (model->exists()) {
|
||||
if ((pipe = popen(INFO_CPU_MODEL, "r"))) {
|
||||
QTextStream *t = new QTextStream(pipe, QIODevice::ReadOnly);
|
||||
str = t->readLine();
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Model"), str);
|
||||
delete t;
|
||||
pclose( pipe );
|
||||
}
|
||||
}
|
||||
delete model;
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Machine Identification Number"),
|
||||
strlen(info.__idnumber) ? QString(info.__idnumber) : i18n("(none)") );
|
||||
|
||||
if (psd.psd_proc_cnt<=0)
|
||||
psd.psd_proc_cnt=1; // Minimum one CPU !
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Number of Active Processors"),
|
||||
Value(psd.psd_proc_cnt));
|
||||
|
||||
pstat_getprocessor( &pro, sizeof(pro), 1, 0);
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("CPU Clock"),
|
||||
Value(pro.psp_iticksperclktick/10000) + ' ' + i18n("MHz"));
|
||||
|
||||
switch (sysconf(_SC_CPU_VERSION)) {
|
||||
case CPU_HP_MC68020:
|
||||
str2 = "Motorola 68020";
|
||||
break;
|
||||
case CPU_HP_MC68030:
|
||||
str2 = "Motorola 68030";
|
||||
break;
|
||||
case CPU_HP_MC68040:
|
||||
str2 = "Motorola 68040";
|
||||
break;
|
||||
case CPU_PA_RISC1_0:
|
||||
str2 = "PA-RISC 1.0";
|
||||
break;
|
||||
case CPU_PA_RISC1_1:
|
||||
str2 = "PA-RISC 1.1";
|
||||
break;
|
||||
case CPU_PA_RISC1_2:
|
||||
str2 = "PA-RISC 1.2";
|
||||
break;
|
||||
case CPU_PA_RISC2_0:
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
switch (sysconf(_SC_KERNEL_BITS)) {
|
||||
case 64: str2 = "PA-RISC 2.0w (64 bit)"; break;
|
||||
case 32: str2 = "PA-RISC 2.0n (32 bit)"; break;
|
||||
default: str2 = "PA-RISC 2.0"; break;
|
||||
}; break;
|
||||
#else /* !defined(_SC_KERNEL_BITS) */
|
||||
str2 = "PA-RISC 2.0";
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
str2 = i18n("(unknown)");
|
||||
break;
|
||||
}
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("CPU Architecture"), str2);
|
||||
|
||||
Find_in_LOOKUPTABLE(lBox, info.machine);// try to get extended Information.
|
||||
|
||||
for (i=PS_PA83_FPU; i<=PS_PA89_FPU; ++i) {
|
||||
if ((1<<(i-1)) & pro.psp_coprocessor.psc_present) {
|
||||
str = QString( (i==PS_PA83_FPU) ? "PS_PA83_FPU" : "PS_PA89_FPU") + QString(" (") + QString(((1<<(i-1))&pro.psp_coprocessor.psc_enabled) ? i18n("enabled") : i18n("disabled") ) + QString(")");
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Numerical Coprocessor (FPU)"), str);
|
||||
}
|
||||
}// for(coprocessor..)
|
||||
|
||||
str = Value(((pst.physical_memory*pst.page_size)/1024/1024)) + i18nc("Mebibyte", "MiB");
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Total Physical Memory"), str);
|
||||
|
||||
str = Value(pst.page_size) + i18n(" Bytes");
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Size of One Page"), str);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_ReadfromFile(QListView *lBox, const char *Name) {
|
||||
char buf[2048];
|
||||
|
||||
QFile *file = new QFile(Name);
|
||||
QListViewItem* olditem = 0;
|
||||
|
||||
if (!file->open(QIODevice::ReadOnly)) {
|
||||
delete file;
|
||||
return false;
|
||||
}
|
||||
|
||||
while (file->readLine(buf, sizeof(buf)-1) >= 0) {
|
||||
if (strlen(buf))
|
||||
olditem = new QListViewItem(lBox, olditem, QString::fromLocal8Bit(buf));
|
||||
}
|
||||
|
||||
file->close();
|
||||
delete file;
|
||||
return (lBox->childCount());
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
return (GetInfo_ReadfromFile(tree, INFO_PCI) + GetInfo_ReadfromFile(tree, INFO_PCI_EISA) );
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QListView *lBox) {
|
||||
if (GetInfo_ReadfromPipe(lBox, INFO_IOPORTS_1, false))
|
||||
return true;
|
||||
else
|
||||
return GetInfo_ReadfromPipe(lBox, INFO_IOPORTS_2, false);
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QListView *lBox) {
|
||||
return GetInfo_ReadfromPipe(lBox, INFO_DEVICES, false);
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QListView *lBox) {
|
||||
return GetInfo_Devices(lBox);
|
||||
}
|
||||
/* Parts taken from fsusage.c from the Midnight Commander (mc)
|
||||
|
||||
Copyright (C) 1991, 1992 Free Software Foundation, In
|
||||
|
||||
Return the number of TOSIZE-byte blocks used by
|
||||
BLOCKS FROMSIZE-byte blocks, rounding away from zero.
|
||||
TOSIZE must be positive. Return -1 if FROMSIZE is not positive. */
|
||||
|
||||
static long fs_adjust_blocks(long blocks, int fromsize, int tosize) {
|
||||
if (tosize <= 0)
|
||||
abort();
|
||||
if (fromsize <= 0)
|
||||
return -1;
|
||||
|
||||
if (fromsize == tosize) /* E.g., from 512 to 512. */
|
||||
return blocks;
|
||||
else if (fromsize > tosize) /* E.g., from 2048 to 512. */
|
||||
return blocks * (fromsize / tosize);
|
||||
else
|
||||
/* E.g., from 256 to 512. */
|
||||
return (blocks + (blocks < 0 ? -1 : 1)) / (tosize / fromsize);
|
||||
}
|
||||
|
||||
/* Fill in the fields of FSP with information about space usage for
|
||||
the filesystem on which PATH resides.
|
||||
Return 0 if successful, -1 if not. */
|
||||
|
||||
#define CONVERT_BLOCKS(b) fs_adjust_blocks ((b), fsd.f_bsize, 512)
|
||||
|
||||
static int get_fs_usage(char *path, long *l_total, long *l_avail) {
|
||||
struct statfs fsd; /* 4.3BSD, SunOS 4, HP-UX, AIX. */
|
||||
unsigned long fsu_blocks, fsu_bfree, fsu_bavail;
|
||||
|
||||
*l_total = *l_avail = 0;
|
||||
if (statfs(path, &fsd) < 0)
|
||||
return -1;
|
||||
|
||||
fsu_blocks = CONVERT_BLOCKS (fsd.f_blocks);
|
||||
fsu_bfree = CONVERT_BLOCKS (fsd.f_bfree);
|
||||
fsu_bavail = CONVERT_BLOCKS (fsd.f_bavail);
|
||||
|
||||
*l_avail = getuid() ? fsu_bavail/2 : fsu_bfree/2;
|
||||
*l_total = fsu_blocks/2;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Some Ideas taken from garbazo from his source in info_fbsd.cpp
|
||||
|
||||
bool GetInfo_Partitions(QListView *lbox) {
|
||||
#define NUMCOLS 5
|
||||
QString Title[NUMCOLS];
|
||||
int n;
|
||||
|
||||
struct fstab *fstab_ent;
|
||||
struct statvfs svfs;
|
||||
long total, avail;
|
||||
QString str;
|
||||
QString MB(i18n("MB")+ " "); // International Text for MB=Mega-Byte
|
||||
|
||||
if (setfsent() != 1) // Try to open fstab
|
||||
return false;
|
||||
|
||||
Title[0] = i18n("Device");
|
||||
Title[1] = i18n("Mount Point");
|
||||
Title[2] = i18n("FS Type");
|
||||
Title[3] = i18n("Total Size");
|
||||
Title[4] = i18n("Free Size");
|
||||
|
||||
for (n=0; n<NUMCOLS; ++n) {
|
||||
lbox->addColumn(Title[n]);
|
||||
}
|
||||
|
||||
while ((fstab_ent=getfsent())!=NULL) {
|
||||
/* fstab_ent->fs_type holds only "rw","xx","ro"... */
|
||||
memset(&svfs, 0, sizeof(svfs));
|
||||
statvfs(fstab_ent->fs_file, &svfs);
|
||||
get_fs_usage(fstab_ent->fs_file, &total, &avail);
|
||||
|
||||
if (!strcmp(fstab_ent->fs_type, FSTAB_XX)) // valid drive ?
|
||||
svfs.f_basetype[0] = 0;
|
||||
|
||||
if (svfs.f_basetype[0]) {
|
||||
new QListViewItem(lbox, QString(fstab_ent->fs_spec),
|
||||
QString(fstab_ent->fs_file) + QString(" "),
|
||||
(svfs.f_basetype[0] ? QString(svfs.f_basetype) : i18n("n/a")),
|
||||
Value((total+512)/1024,6) + MB,
|
||||
Value((avail+512)/1024,6) + MB);
|
||||
} else {
|
||||
new QListViewItem(lbox, QString(fstab_ent->fs_spec),
|
||||
QString(fstab_ent->fs_file) + QString(" "),
|
||||
(svfs.f_basetype[0] ? QString(svfs.f_basetype) : i18n("n/a")));
|
||||
}
|
||||
|
||||
}
|
||||
endfsent();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QListView *lBox) {
|
||||
lBox = lBox;
|
||||
return GetInfo_XServer_Generic(lBox);
|
||||
}
|
||||
|
||||
#ifndef HAVE_ALIB_H
|
||||
|
||||
bool GetInfo_Sound(QListView * /*lBox*/) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#else // defined(HAVE_ALIB_H)
|
||||
#include "Alib.h"
|
||||
|
||||
static const char formatNames[6][15] = {
|
||||
"ADFUnknown", "ADFMuLaw", "ADFALaw",
|
||||
"ADFLin16", "ADFLin8", "ADFLin8Offset"};
|
||||
|
||||
/* handle typo in 1st release of Alib.h */
|
||||
#ifndef ARightOutputChMask
|
||||
#define ARightOutputChMask ARighOutputChMask
|
||||
#endif
|
||||
|
||||
bool GetInfo_Sound( QListView *lBox )
|
||||
{
|
||||
Audio *audio;
|
||||
long status;
|
||||
char server[80];
|
||||
int i;
|
||||
|
||||
QString str,str2;
|
||||
QListViewItem* olditem = 0;
|
||||
|
||||
// server = Hostname....
|
||||
server[0] = 0;
|
||||
audio = AOpenAudio( server, &status );
|
||||
if( status ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
lBox->addColumn(i18n("Information") );
|
||||
lBox->addColumn(i18n("Value") );
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Audio Name"), QString(audio->audio_name));
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Vendor"), QString(audio->vendor));
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Alib Version"),
|
||||
Value(audio->alib_major_version) + QString(".") +
|
||||
Value(audio->alib_minor_version));
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Protocol Revision"),
|
||||
Value(audio->proto_major_version) + QString(".") +
|
||||
Value(audio->proto_minor_version));
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Vendor Number"),
|
||||
Value(audio->vnumber));
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Release"),
|
||||
Value(audio->release));
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Byte Order"),
|
||||
QString((audio->byte_order==ALSBFirst)? i18n("ALSBFirst (LSB)"):
|
||||
((audio->byte_order==AMSBFirst)? i18n("AMSBFirst (MSB)"):
|
||||
i18n("Invalid Byteorder.")) ));
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Bit Order"),
|
||||
QString((audio->sound_bit_order==ALeastSignificant)?
|
||||
i18n("ALeastSignificant (LSB)") :
|
||||
((audio->sound_bit_order==AMostSignificant) ?
|
||||
i18n("AMostSignificant (MSB)"):i18n("Invalid Bitorder.")) ));
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Data Formats"));
|
||||
for ( i = 0; i < audio->n_data_format; i++ ) {
|
||||
if (audio->data_format_list[i] <= ADFLin8Offset)
|
||||
new QListViewItem(olditem, QString(formatNames[audio->data_format_list[i]]));
|
||||
}
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Sampling Rates"));
|
||||
for ( i = 0; i < audio->n_sampling_rate; i++ ) {
|
||||
new QListViewItem(olditem, Value(audio->sampling_rate_list[i]));
|
||||
}
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Input Sources"));
|
||||
if ( audio->input_sources & AMonoMicrophoneMask )
|
||||
new QListViewItem(olditem, i18n("Mono-Microphone"));
|
||||
if ( audio->input_sources & AMonoAuxiliaryMask )
|
||||
new QListViewItem(olditem, i18n("Mono-Auxiliary"));
|
||||
if ( audio->input_sources & ALeftMicrophoneMask )
|
||||
new QListViewItem(olditem, i18n("Left-Microphone"));
|
||||
if ( audio->input_sources & ARightMicrophoneMask )
|
||||
new QListViewItem(olditem, i18n("Right-Microphone"));
|
||||
if ( audio->input_sources & ALeftAuxiliaryMask )
|
||||
new QListViewItem(olditem, i18n("Left-Auxiliary"));
|
||||
if ( audio->input_sources & ARightAuxiliaryMask )
|
||||
new QListViewItem(olditem, i18n("Right-Auxiliary"));
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem,i18n("Input Channels"));
|
||||
if ( audio->input_channels & AMonoInputChMask )
|
||||
new QListViewItem(olditem, i18n("Mono-Channel"));
|
||||
if ( audio->input_channels & ALeftInputChMask )
|
||||
new QListViewItem(olditem, i18n("Left-Channel"));
|
||||
if ( audio->input_channels & ARightInputChMask )
|
||||
new QListViewItem(olditem, i18n("Right-Channel"));
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Output Destinations"));
|
||||
if ( audio->output_destinations & AMonoIntSpeakerMask )
|
||||
new QListViewItem(olditem, i18n("Mono-InternalSpeaker"));
|
||||
if ( audio->output_destinations & AMonoJackMask )
|
||||
new QListViewItem(olditem, i18n("Mono-Jack"));
|
||||
if ( audio->output_destinations & ALeftIntSpeakerMask )
|
||||
new QListViewItem(olditem, i18n("Left-InternalSpeaker"));
|
||||
if ( audio->output_destinations & ARightIntSpeakerMask )
|
||||
new QListViewItem(olditem, i18n("Right-InternalSpeaker"));
|
||||
if ( audio->output_destinations & ALeftJackMask )
|
||||
new QListViewItem(olditem, i18n("Left-Jack"));
|
||||
if ( audio->output_destinations & ARightJackMask )
|
||||
new QListViewItem(olditem, i18n("Right-Jack"));
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Output Channels"));
|
||||
if ( audio->output_channels & AMonoOutputChMask )
|
||||
new QListViewItem(olditem, i18n("Mono-Channel"));
|
||||
if ( audio->output_channels & ALeftOutputChMask )
|
||||
new QListViewItem(olditem, i18n("Left-Channel"));
|
||||
if ( audio->output_channels & ARightOutputChMask )
|
||||
new QListViewItem(olditem, i18n("Right-Channel"));
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Gain"));
|
||||
new QListViewItem(olditem, i18n("Input Gain Limits"),
|
||||
Value(audio->max_input_gain));
|
||||
new QListViewItem(olditem,i18n("Output Gain Limits"),
|
||||
Value(audio->min_output_gain) + QString(" ")
|
||||
+ Value(audio->max_output_gain));
|
||||
new QListViewItem(olditem, i18n("Monitor Gain Limits"),
|
||||
Value(audio->min_monitor_gain) + QString(" ")
|
||||
+ Value(audio->max_monitor_gain));
|
||||
new QListViewItem(olditem, i18n("Gain Restricted"),
|
||||
Value(audio->gm_gain_restricted));
|
||||
olditem->setExpanded(true);
|
||||
|
||||
olditem = new QListViewItem(lBox, olditem,i18n("Lock"),
|
||||
Value(audio->lock));
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Queue Length"),
|
||||
Value(audio->qlen));
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Block Size"),
|
||||
Value(audio->block_size));
|
||||
olditem = new QListViewItem(lBox, olditem, i18n("Stream Port (decimal)"),
|
||||
Value(audio->stream_port));
|
||||
|
||||
ACloseAudio( audio, &status );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // defined(HAVE_ALIB_H)
|
|
@ -1,533 +0,0 @@
|
|||
/*
|
||||
|
||||
Linux-specific Information about the Hardware.
|
||||
|
||||
(C) Copyright 1998-2001 by Helge Deller <deller@gmx.de>
|
||||
|
||||
To do (maybe?):
|
||||
- include Information about XFree86 and/or Accelerated X
|
||||
(needs to change configure-script, to see, if Header-files are available !)
|
||||
- maybe also include information about the video-framebuffer devices
|
||||
- rewrite detection-routines (maybe not to use the /proc-fs)
|
||||
- more & better sound-information
|
||||
|
||||
/dev/sndstat support added: 1998-12-08 Duncan Haldane (f.d.m.haldane@cwix.com)
|
||||
|
||||
*/
|
||||
|
||||
#include <unistd.h>
|
||||
#include <syscall.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <ctype.h>
|
||||
#include "config-infocenter.h"
|
||||
|
||||
#ifdef HAVE_FSTAB_H /* some Linux-versions don't have fstab.h */
|
||||
# include <fstab.h>
|
||||
# include <sys/statfs.h>
|
||||
# define INFO_PARTITIONS_FULL_INFO /* show complete info */
|
||||
#elif defined HAVE_MNTENT_H /* but maybe they have mntent.h ? */
|
||||
# include <mntent.h>
|
||||
# include <sys/vfs.h>
|
||||
# define INFO_PARTITIONS_FULL_INFO /* show complete info */
|
||||
#else
|
||||
# undef INFO_PARTITIONS_FULL_INFO /* no partitions-info */
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_PCIUTILS
|
||||
#include "kpci.h"
|
||||
#endif //HAVE_PCIUTILS
|
||||
#include <QRegExp>
|
||||
#include <QFile>
|
||||
#include <QHeaderView>
|
||||
|
||||
#include <klocale.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kglobalsettings.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#define INFO_CPU "/proc/cpuinfo"
|
||||
|
||||
#define INFO_IRQ "/proc/interrupts"
|
||||
#define INFO_DMA "/proc/dma"
|
||||
|
||||
#define INFO_PCI "/proc/pci"
|
||||
|
||||
#define INFO_IOPORTS "/proc/ioports"
|
||||
|
||||
#define INFO_DEV_SNDSTAT "/dev/sndstat"
|
||||
#define INFO_SOUND "/proc/sound"
|
||||
#define INFO_ASOUND "/proc/asound/oss/sndstat"
|
||||
#define INFO_ASOUND09 "/proc/asound/sndstat"
|
||||
|
||||
#define INFO_DEVICES "/proc/devices"
|
||||
#define INFO_MISC "/proc/misc"
|
||||
|
||||
#define INFO_SCSI "/proc/scsi/scsi"
|
||||
|
||||
#define INFO_PARTITIONS "/proc/partitions"
|
||||
#define INFO_MOUNTED_PARTITIONS "/etc/mtab" /* on Linux... */
|
||||
|
||||
#define MAXCOLUMNWIDTH 600
|
||||
|
||||
bool GetInfo_ReadfromFile(QTreeWidget* tree, const char *FileName, const QChar& splitChar) {
|
||||
bool added = false;
|
||||
QFile file(FileName);
|
||||
|
||||
if (!file.exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!file.open(QIODevice::ReadOnly)) {
|
||||
return false;
|
||||
}
|
||||
QTextStream stream(&file);
|
||||
|
||||
QString line = stream.readLine();
|
||||
|
||||
while (!line.isNull()) {
|
||||
QString s1, s2;
|
||||
if (!line.isEmpty()) {
|
||||
if (!splitChar.isNull()) {
|
||||
int pos = line.indexOf(splitChar);
|
||||
s1 = line.left(pos-1).trimmed();
|
||||
s2 = line.mid(pos+1).trimmed();
|
||||
} else
|
||||
s1 = line;
|
||||
}
|
||||
QStringList list;
|
||||
list << s1 << s2;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
added = true;
|
||||
line = stream.readLine();
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
return added;
|
||||
}
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree) {
|
||||
QStringList headers;
|
||||
headers << i18n("Information") << i18n("Value");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
return GetInfo_ReadfromFile(tree, INFO_CPU, ':');
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget* tree) {
|
||||
tree->setFont(KGlobalSettings::fixedFont());
|
||||
tree->setHeaderHidden(true);
|
||||
|
||||
return GetInfo_ReadfromFile(tree, INFO_IRQ, 0);
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget* tree) {
|
||||
QFile file(INFO_DMA);
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("DMA-Channel") << i18n("Used By");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
if (file.exists() && file.open(QIODevice::ReadOnly)) {
|
||||
QTextStream stream(&file);
|
||||
QString line;
|
||||
|
||||
line = stream.readLine();
|
||||
while (!line.isNull()) {
|
||||
if (!line.isEmpty()) {
|
||||
QRegExp rx("^\\s*(\\S+)\\s*:\\s*(\\S+)");
|
||||
if (-1 != rx.indexIn(line)) {
|
||||
QStringList list;
|
||||
list << rx.cap(1) << rx.cap(2);
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
}
|
||||
line = stream.readLine();
|
||||
}
|
||||
file.close();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
int num;
|
||||
|
||||
#ifdef HAVE_PCIUTILS
|
||||
if ( (num = GetInfo_PCIUtils(tree))) {
|
||||
return num;
|
||||
}
|
||||
|
||||
#endif //HAVE_PCIUTILS
|
||||
tree->setHeaderHidden(true);
|
||||
tree->setSortingEnabled(false);
|
||||
|
||||
/* try to get the output of the lspci package first */
|
||||
if ((num = GetInfo_ReadfromPipe(tree, "lspci -v", true)) || (num = GetInfo_ReadfromPipe(tree, "/sbin/lspci -v", true)) || (num = GetInfo_ReadfromPipe(tree, "/usr/sbin/lspci -v", true)) || (num = GetInfo_ReadfromPipe(tree, "/usr/local/sbin/lspci -v", true)) || (num = GetInfo_ReadfromPipe(tree,
|
||||
"/usr/bin/lspci -v", true)))
|
||||
return num;
|
||||
|
||||
/* if lspci failed, read the contents of /proc/pci */
|
||||
return GetInfo_ReadfromFile(tree, INFO_PCI, 0);
|
||||
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget* tree) {
|
||||
QStringList headers;
|
||||
headers << i18n("I/O-Range") << i18n("Used By");
|
||||
tree->setHeaderLabels(headers);
|
||||
return GetInfo_ReadfromFile(tree, INFO_IOPORTS, ':');
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget* tree) {
|
||||
tree->setSortingEnabled(false);
|
||||
|
||||
if (GetInfo_ReadfromFile(tree, INFO_DEV_SNDSTAT, 0))
|
||||
return true;
|
||||
else if (GetInfo_ReadfromFile(tree, INFO_SOUND, 0))
|
||||
return true;
|
||||
else if (GetInfo_ReadfromFile(tree, INFO_ASOUND, 0))
|
||||
return true;
|
||||
else
|
||||
return GetInfo_ReadfromFile(tree, INFO_ASOUND09, 0);
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QTreeWidget* tree) {
|
||||
kDebug() << "Linux Info Devices" << endl;
|
||||
QFile file;
|
||||
QTreeWidgetItem *misc=NULL;
|
||||
|
||||
tree->setRootIsDecorated(true);
|
||||
QStringList headers;
|
||||
headers << i18n("Devices") << i18n("Major Number") << i18n("Minor Number");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
file.setFileName(INFO_DEVICES);
|
||||
if (file.exists() && file.open(QIODevice::ReadOnly)) {
|
||||
QTextStream stream(&file);
|
||||
QTreeWidgetItem *parent=0L, *child=0L;
|
||||
|
||||
QString line = stream.readLine();
|
||||
|
||||
while (!line.isNull()) {
|
||||
if (!line.isEmpty()) {
|
||||
if (-1 != line.indexOf("character device", 0, Qt::CaseInsensitive)) {
|
||||
QStringList list;
|
||||
list << i18n("Character Devices");
|
||||
parent = new QTreeWidgetItem(tree, list);
|
||||
parent->setIcon(0, SmallIcon("chardevice"));
|
||||
parent->setExpanded(true);
|
||||
|
||||
} else if (-1 != line.indexOf("block device", 0, Qt::CaseInsensitive)) {
|
||||
QStringList list;
|
||||
list << i18n("Block Devices");
|
||||
parent = new QTreeWidgetItem(tree, list);
|
||||
parent->setIcon(0, SmallIcon("blockdevice"));
|
||||
parent->setExpanded(true);
|
||||
|
||||
} else {
|
||||
QRegExp rx("^\\s*(\\S+)\\s+(\\S+)");
|
||||
if (-1 != rx.indexIn(line)) {
|
||||
if (parent) {
|
||||
QStringList list;
|
||||
list << rx.cap(2) << rx.cap(1);
|
||||
child = new QTreeWidgetItem(parent, list);
|
||||
} else {
|
||||
QStringList list;
|
||||
list << rx.cap(2) << rx.cap(1);
|
||||
child = new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
if (rx.cap(2)=="misc") {
|
||||
misc=child;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
line = stream.readLine();
|
||||
}
|
||||
file.close();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
file.setFileName(INFO_MISC);
|
||||
if (misc && file.exists() && file.open(QIODevice::ReadOnly)) {
|
||||
QTextStream stream(&file);
|
||||
|
||||
misc->setText(0, i18n("Miscellaneous Devices"));
|
||||
misc->setIcon(0, SmallIcon("memory"));
|
||||
misc->setExpanded(true);
|
||||
|
||||
QString line = stream.readLine();
|
||||
|
||||
while (!line.isNull()) {
|
||||
if (!line.isEmpty()) {
|
||||
QRegExp rx("^\\s*(\\S+)\\s+(\\S+)");
|
||||
if (-1 != rx.indexIn(line)) {
|
||||
QStringList list;
|
||||
list << rx.cap(2) << "10" << rx.cap(1);
|
||||
new QTreeWidgetItem(misc, list);
|
||||
}
|
||||
}
|
||||
line = stream.readLine();
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget* tree) {
|
||||
return GetInfo_ReadfromFile(tree, INFO_SCSI, 0);
|
||||
}
|
||||
|
||||
static void cleanPassword(QString & str) {
|
||||
int index = 0;
|
||||
QString passwd("password=");
|
||||
|
||||
while (index >= 0) {
|
||||
index = str.indexOf(passwd, index, Qt::CaseInsensitive);
|
||||
if (index >= 0) {
|
||||
index += passwd.length();
|
||||
while (index < (int) str.length() && str[index] != ' ' && str[index] != ',')
|
||||
str[index++] = '*';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef INFO_PARTITIONS_FULL_INFO
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget* tree)
|
||||
{
|
||||
return GetInfo_ReadfromFile(tree, INFO_PARTITIONS, 0);
|
||||
}
|
||||
|
||||
#else /* INFO_PARTITIONS_FULL_INFO */
|
||||
|
||||
// Some Ideas taken from garbazo from his source in info_fbsd.cpp
|
||||
|
||||
|
||||
#if ( defined(HAVE_LINUX_RAW_H) || defined(HAVE_SYS_RAW_H) ) && defined(HAVE_SYS_IOCTL_H) && defined(__GNUC__) && !defined(__STRICT_ANSI__)
|
||||
#include <sys/ioctl.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#if defined(HAVE_SYS_RAW_H)
|
||||
#include <sys/raw.h>
|
||||
#elif defined(HAVE_LINUX_RAW_H)
|
||||
#include <linux/raw.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* get raw device bindings and information
|
||||
*/
|
||||
void Get_LinuxRawDevices(QTreeWidget* tree)
|
||||
{
|
||||
int f, i, err;
|
||||
int new_raw_devs = 1;
|
||||
struct raw_config_request rq;
|
||||
QString devname;
|
||||
QString MB(i18nc("Mebibyte", "MiB"));
|
||||
|
||||
/* try to open the raw device control file */
|
||||
f = open("/dev/rawctl", O_RDWR);
|
||||
if (f == -1) {
|
||||
f = open("/dev/raw", O_RDWR);
|
||||
new_raw_devs = 0;
|
||||
}
|
||||
if (f == -1)
|
||||
return;
|
||||
|
||||
for (i=1; i<256; i++) {
|
||||
rq.raw_minor = i;
|
||||
if (ioctl(f, RAW_GETBIND, &rq))
|
||||
continue;
|
||||
if (!rq.block_major) /* unbound ? */
|
||||
continue;
|
||||
unsigned int minor = rq.block_minor;
|
||||
char first_letter;
|
||||
switch ((int)rq.block_major) {
|
||||
|
||||
/* IDE drives */
|
||||
case 3: first_letter = 'a';
|
||||
set_ide_name:
|
||||
devname = QString("/dev/hd%1%2")
|
||||
.arg(QChar(first_letter + minor/64))
|
||||
.arg(minor&63);
|
||||
break;
|
||||
case 22:first_letter = 'c'; goto set_ide_name;
|
||||
case 33:first_letter = 'e'; goto set_ide_name;
|
||||
case 34:first_letter = 'g'; goto set_ide_name;
|
||||
case 56:first_letter = 'i'; goto set_ide_name;
|
||||
case 57:first_letter = 'k'; goto set_ide_name;
|
||||
case 88:first_letter = 'm'; goto set_ide_name;
|
||||
case 89:first_letter = 'o'; goto set_ide_name;
|
||||
case 90:first_letter = 'q'; goto set_ide_name;
|
||||
case 91:first_letter = 's'; goto set_ide_name;
|
||||
|
||||
/* SCSI drives */
|
||||
case 8: first_letter = 'a';
|
||||
set_scsi_name:
|
||||
devname = QString("/dev/sd%1%2")
|
||||
.arg(QChar(first_letter + minor/16))
|
||||
.arg(minor&15);
|
||||
break;
|
||||
case 65:first_letter = 'q'; goto set_scsi_name;
|
||||
|
||||
/* Compaq /dev/cciss devices */
|
||||
case 104: case 105: case 106:
|
||||
case 107: case 108: case 109:
|
||||
devname = QString("/dev/cciss/c%1d%2")
|
||||
.arg((int)rq.block_major-104)
|
||||
.arg(minor&15);
|
||||
break;
|
||||
|
||||
/* Compaq Intelligent Drive Array (ida) */
|
||||
case 72: case 73: case 74: case 75:
|
||||
case 76: case 77: case 78: case 79:
|
||||
devname = QString("/dev/ida/c%1d%2")
|
||||
.arg((int)rq.block_major-72)
|
||||
.arg(minor&15);
|
||||
break;
|
||||
|
||||
default: devname = QString("%1/%2")
|
||||
.arg((int)rq.block_major)
|
||||
.arg(minor);
|
||||
|
||||
}
|
||||
|
||||
/* TODO: get device size */
|
||||
QString size = "";
|
||||
|
||||
QStringList list;
|
||||
list << devname;
|
||||
if (new_raw_devs)
|
||||
list << QString("/dev/raw/raw%1").arg(i);
|
||||
else
|
||||
list << QString("/dev/raw%1").arg(i);
|
||||
|
||||
list << "raw" << size << " " << "";
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
close(f);
|
||||
}
|
||||
#else
|
||||
#define Get_LinuxRawDevices(x) /* nothing */
|
||||
#endif
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget* tree) {
|
||||
QStringList Mounted_Partitions;
|
||||
bool found_in_List;
|
||||
int n;
|
||||
|
||||
#ifdef HAVE_FSTAB_H
|
||||
struct fstab *fstab_ent;
|
||||
# define FS_NAME fstab_ent->fs_spec // device-name
|
||||
# define FS_FILE fstab_ent->fs_file // mount-point
|
||||
# define FS_TYPE fstab_ent->fs_vfstype // fs-type
|
||||
# define FS_MNTOPS fstab_ent->fs_mntops // mount-options
|
||||
#else
|
||||
struct mntent *mnt_ent;
|
||||
FILE *fp;
|
||||
# define FS_NAME mnt_ent->mnt_fsname // device-name
|
||||
# define FS_FILE mnt_ent->mnt_dir // mount-point
|
||||
# define FS_TYPE mnt_ent->mnt_type // fs-type
|
||||
# define FS_MNTOPS mnt_ent->mnt_opts // mount-options
|
||||
#endif
|
||||
|
||||
struct statfs sfs;
|
||||
quint64 total, avail;
|
||||
QString str, mountopts;
|
||||
QString MB(i18nc("Mebibyte", "MiB"));
|
||||
|
||||
#ifdef HAVE_FSTAB_H
|
||||
if (setfsent() == 0) /* Try to open fstab */
|
||||
return false;
|
||||
#else
|
||||
if (!(fp = setmntent("/etc/fstab", "r")))
|
||||
return false;
|
||||
#endif
|
||||
|
||||
/* read the list of already mounted file-systems.. */
|
||||
QFile *file = new QFile(INFO_MOUNTED_PARTITIONS);
|
||||
if (file->open(QIODevice::ReadOnly)) {
|
||||
char buf[1024];
|
||||
while (file->readLine(buf, sizeof(buf )) > 0) {
|
||||
str = QString::fromLocal8Bit(buf);
|
||||
if (str.length()) {
|
||||
int p = str.indexOf(' '); /* find first space. */
|
||||
if (p)
|
||||
str.remove(p, 1024); /* erase all chars including space. */
|
||||
Mounted_Partitions.append(str);
|
||||
}
|
||||
}
|
||||
file->close();
|
||||
}
|
||||
delete file;
|
||||
|
||||
/* create the header-tables */
|
||||
MB = QString(" ") + MB;
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("Device") << i18n("Mount Point") << i18n("FS Type") << i18n("Total Size") << i18n("Free Size") << i18n("Mount Options");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
for (n = 0; n < 6; ++n)
|
||||
|
||||
/* loop through all partitions... */
|
||||
#ifdef HAVE_FSTAB_H
|
||||
while ((fstab_ent = getfsent()) != NULL)
|
||||
#else
|
||||
while ((mnt_ent = getmntent(fp)) != NULL)
|
||||
#endif
|
||||
{
|
||||
total = avail = 0; /* initialize size.. */
|
||||
found_in_List = (Mounted_Partitions.contains(FS_NAME) > 0);
|
||||
if (found_in_List && statfs(FS_FILE, &sfs) == 0) {
|
||||
total = ((quint64) sfs.f_blocks) * sfs.f_bsize;
|
||||
avail = (getuid() ? sfs.f_bavail : sfs.f_bfree) * ((quint64) sfs.f_bsize);
|
||||
};
|
||||
/*
|
||||
if (stat(fstab_ent->fs_file,&st)!=0)
|
||||
total = 0;
|
||||
if (!S_ISDIR(st.st_mode))
|
||||
total = 0;
|
||||
*/
|
||||
mountopts = FS_MNTOPS;
|
||||
cleanPassword(mountopts);
|
||||
if (total) {
|
||||
QStringList list;
|
||||
list << QString(FS_NAME) + " " << QString(FS_FILE) + " " << QString(FS_TYPE) + " " << Value((int) (((total / 1024) + 512) / 1024), 6) + MB << Value((int) (((avail / 1024) + 512) / 1024), 6) + MB << mountopts;
|
||||
|
||||
new QTreeWidgetItem(tree, list);
|
||||
} else {
|
||||
QStringList list;
|
||||
list << QString(FS_NAME) + " " << QString(FS_FILE) + " " << QString(FS_TYPE) + " " << " " << " " << mountopts;
|
||||
|
||||
new QTreeWidgetItem(tree, list);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_FSTAB_H
|
||||
endfsent(); /* close fstab.. */
|
||||
#else
|
||||
endmntent(fp); /* close fstab.. */
|
||||
#endif
|
||||
|
||||
/* get raw device entires if available... */
|
||||
Get_LinuxRawDevices(tree);
|
||||
|
||||
tree->sortItems(1, Qt::AscendingOrder);
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif /* INFO_PARTITIONS_FULL_INFO */
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
}
|
|
@ -1,348 +0,0 @@
|
|||
/*
|
||||
* info_netbsd.cpp is part of the KDE program kcminfo. This displays
|
||||
* various information about the NetBSD system it's running on.
|
||||
*
|
||||
* Originally written by Jaromir Dolecek <dolecek@ics.muni.cz>. CPU info
|
||||
* code has been imported from implementation of processor.cpp for KDE 1.0
|
||||
* by David Brownlee <abs@NetBSD.org> as found in NetBSD packages collection.
|
||||
* Hubert Feyer <hubertf@NetBSD.org> enhanced the sound information printing
|
||||
* quite a lot, too.
|
||||
*
|
||||
* The code is placed into public domain. Do whatever you want with it.
|
||||
*/
|
||||
|
||||
/*
|
||||
* all following functions should return true, when the Information
|
||||
* was filled into the Tree Widget. Returning false indicates that
|
||||
* information was not available.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/mount.h>
|
||||
#include <stdio.h> /* for NULL */
|
||||
#include <stdlib.h> /* for malloc(3) */
|
||||
#include <fstab.h>
|
||||
|
||||
#include <QFile>
|
||||
#include <QFontMetrics>
|
||||
#include <QStringList>
|
||||
#include <QTextStream>
|
||||
#include <QTreeWidgetItemIterator>
|
||||
|
||||
#include <kdebug.h>
|
||||
#include <kio/global.h> /* for KIO::convertSize() */
|
||||
|
||||
typedef struct {
|
||||
int string;
|
||||
int name;
|
||||
const char *title;
|
||||
} hw_info_mib_list_t;
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree) {
|
||||
static hw_info_mib_list_t hw_info_mib_list[]= { { 1, HW_MODEL, "Model" }, { 1, HW_MACHINE, "Machine" }, { 1, HW_MACHINE_ARCH, "Architecture" }, { 0, HW_NCPU, "Number of CPUs" }, { 0, HW_PAGESIZE, "Pagesize" }, { 0, 0, 0 } };
|
||||
hw_info_mib_list_t *hw_info_mib;
|
||||
|
||||
int mib[2], num;
|
||||
char *buf;
|
||||
size_t len;
|
||||
QString value;
|
||||
|
||||
QStringList list;
|
||||
list << i18n("Information") << i18n("Value");
|
||||
tree->setHeaderLabels(list);
|
||||
|
||||
for (hw_info_mib = hw_info_mib_list; hw_info_mib->title; ++hw_info_mib) {
|
||||
mib[0] = CTL_HW;
|
||||
mib[1] = hw_info_mib->name;
|
||||
if (hw_info_mib->string) {
|
||||
sysctl(mib, 2, NULL, &len, NULL, 0);
|
||||
if ( (buf = (char*)malloc(len))) {
|
||||
sysctl(mib, 2, buf, &len, NULL, 0);
|
||||
value = QString::fromLocal8Bit(buf);
|
||||
free(buf);
|
||||
} else {
|
||||
value = QString("Unknown");
|
||||
}
|
||||
} else {
|
||||
len = sizeof(num);
|
||||
sysctl(mib, 2, &num, &len, NULL, 0);
|
||||
value = QString::number(num);
|
||||
}
|
||||
|
||||
QStringList list;
|
||||
list << hw_info_mib->title << value;
|
||||
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// this is used to find out which devices are currently
|
||||
// on system
|
||||
static bool GetDmesgInfo(QTreeWidget* tree, const char *filter, void func(QTreeWidget* tree, QString s)) {
|
||||
QFile *dmesg = new QFile("/var/run/dmesg.boot");
|
||||
bool usepipe = false;
|
||||
FILE *pipe= NULL;
|
||||
QTextStream *t;
|
||||
bool seencpu = false;
|
||||
QString s;
|
||||
bool found = false;
|
||||
|
||||
if (dmesg->exists() && dmesg->open(QIODevice::ReadOnly)) {
|
||||
t = new QTextStream(dmesg);
|
||||
} else {
|
||||
delete dmesg;
|
||||
pipe = popen("/sbin/dmesg", "r");
|
||||
if (!pipe)
|
||||
return false;
|
||||
usepipe = true;
|
||||
t = new QTextStream(pipe, QIODevice::ReadOnly);
|
||||
}
|
||||
|
||||
while (!(s = t->readLine().toLocal8Bit()).isNull()) {
|
||||
if (!seencpu) {
|
||||
if (s.contains("cpu"))
|
||||
seencpu = true;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
if (s.contains("boot device") || s.contains("WARNING: old BSD partition ID!"))
|
||||
break;
|
||||
|
||||
if (!filter || s.contains(QRegExp(filter))) {
|
||||
if (func)
|
||||
func(tree, s);
|
||||
else {
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
delete t;
|
||||
if (pipe)
|
||||
pclose(pipe);
|
||||
else {
|
||||
dmesg->close();
|
||||
delete dmesg;
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
void AddIRQLine(QTreeWidget* tree, QString s) {
|
||||
int irqnum;
|
||||
QString s2;
|
||||
char numstr[3];
|
||||
bool ok;
|
||||
|
||||
s2 = s.mid(s.indexOf(QRegExp("[ (]irq "))+5);
|
||||
irqnum = s2.remove(QRegExp("[^0-9].*")).toInt(&ok);
|
||||
if (ok)
|
||||
snprintf(numstr, 3, "%02d", irqnum);
|
||||
else {
|
||||
// this should never happen
|
||||
strcpy(numstr, "??");
|
||||
}
|
||||
|
||||
QStringList list;
|
||||
list << numstr << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget* tree) {
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("IRQ") << i18n("Device");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
tree->sortItems(0, Qt::AscendingOrder);
|
||||
|
||||
tree->setSortingEnabled(false);
|
||||
|
||||
(void) GetDmesgInfo(tree, "[ (]irq ", AddIRQLine);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "at pci", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No PCI devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "port 0x", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No I/O port devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget* tree) {
|
||||
tree->setSortingEnabled(false);
|
||||
|
||||
if (!GetDmesgInfo(tree, "audio", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No audio devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
// append information for each audio devices found
|
||||
|
||||
QTreeWidgetItemIterator it(tree, QTreeWidgetItemIterator::All);
|
||||
while ( *it != NULL) {
|
||||
QString s, s2;
|
||||
int pos;
|
||||
char *dev;
|
||||
|
||||
s = (*it)->text(0);
|
||||
// The autoconf message is in form 'audio0 at auvia0: ...'
|
||||
if (s.indexOf("audio") == 0 && (pos = s.indexOf(" at ")) > 0) {
|
||||
s2 = s.mid(pos+4); // skip " at "
|
||||
s2.remove(QRegExp("[:\n\t ].*"));
|
||||
dev = strdup(s2.toAscii().data());
|
||||
|
||||
GetDmesgInfo(tree, dev, NULL);
|
||||
|
||||
free(dev);
|
||||
}
|
||||
|
||||
++it;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QTreeWidget* tree) {
|
||||
(void) GetDmesgInfo(tree, NULL, NULL);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "scsibus", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No SCSI devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
// remove the 'waiting %d seconds for devices to settle' message
|
||||
QTreeWidgetItemIterator it(tree, QTreeWidgetItemIterator::All);
|
||||
while ( *it != NULL) {
|
||||
QString s = (*it)->text(0);
|
||||
|
||||
if (s.contains("seconds for devices to settle")) {
|
||||
delete tree->takeTopLevelItem( tree->indexOfTopLevelItem(*it) );
|
||||
break;
|
||||
}
|
||||
|
||||
++it;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget* tree) {
|
||||
int num; // number of mounts
|
||||
#ifdef HAVE_STATVFS
|
||||
struct statvfs *mnt; // mount data pointer
|
||||
#else
|
||||
struct statfs *mnt; // mount data pointer
|
||||
#endif
|
||||
|
||||
// get mount info
|
||||
if (!(num=getmntinfo(&mnt, MNT_WAIT))) {
|
||||
kError() << "getmntinfo failed" << endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
// table headers
|
||||
QStringList headers;
|
||||
headers << i18n("Device") << i18n("Mount Point") << i18n("FS Type") << i18n("Total Size") << i18n("Free Size") << i18n("Total Nodes") << i18n("Free Nodes") << i18n("Flags");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
// mnt points into a static array (no need to free it)
|
||||
for (; num--; ++mnt) {
|
||||
unsigned long long big[2];
|
||||
QString vv[5];
|
||||
|
||||
#ifdef HAVE_STATVFS
|
||||
big[0] = big[1] = mnt->f_frsize; // coerce the product
|
||||
#else
|
||||
big[0] = big[1] = mnt->f_bsize; // coerce the product
|
||||
#endif
|
||||
big[0] *= mnt->f_blocks;
|
||||
big[1] *= mnt->f_bavail; // FIXME: use f_bfree if root?
|
||||
|
||||
// convert to strings
|
||||
vv[0] = KIO::convertSize(big[0]);
|
||||
vv[1] = QString("%1 (%2%)")
|
||||
.arg(KIO::convertSize(big[1]))
|
||||
.arg(mnt->f_blocks ? mnt->f_bavail*100/mnt->f_blocks : 0);
|
||||
|
||||
vv[2] = QString("%L1").arg(mnt->f_files);
|
||||
vv[3] = QString("%L1 (%2%) ")
|
||||
.arg(mnt->f_ffree)
|
||||
.arg(mnt->f_files ? mnt->f_ffree*100/mnt->f_files : 0);
|
||||
|
||||
vv[4].clear();
|
||||
#ifdef HAVE_STATVFS
|
||||
#define MNTF(x) if (mnt->f_flag & ST_##x) vv[4] += QLatin1String(#x " ");
|
||||
#else
|
||||
#define MNTF(x) if (mnt->f_flags & MNT_##x) vv[4] += QLatin1String(#x " ");
|
||||
#endif
|
||||
MNTF(ASYNC)
|
||||
MNTF(DEFEXPORTED)
|
||||
MNTF(EXKERB)
|
||||
MNTF(EXNORESPORT)
|
||||
MNTF(EXPORTANON)
|
||||
MNTF(EXPORTED)
|
||||
MNTF(EXPUBLIC)
|
||||
MNTF(EXRDONLY)
|
||||
#ifndef HAVE_STATVFS
|
||||
MNTF(IGNORE)
|
||||
#endif
|
||||
MNTF(LOCAL)
|
||||
MNTF(NOATIME)
|
||||
MNTF(NOCOREDUMP)
|
||||
MNTF(NODEV)
|
||||
MNTF(NODEVMTIME)
|
||||
MNTF(NOEXEC)
|
||||
MNTF(NOSUID)
|
||||
MNTF(QUOTA)
|
||||
MNTF(RDONLY)
|
||||
MNTF(ROOTFS)
|
||||
MNTF(SOFTDEP)
|
||||
MNTF(SYMPERM)
|
||||
MNTF(SYNCHRONOUS)
|
||||
MNTF(UNION)
|
||||
#undef MNTF
|
||||
|
||||
// put it in the table
|
||||
|
||||
QStringList list;
|
||||
// FIXME: there're more data but we have limited args (this is wrong! just add!)
|
||||
// FIXME: names need pad space
|
||||
list << mnt->f_mntfromname << mnt->f_mntonname << mnt->f_fstypename << vv[0] << vv[1] << vv[2] << vv[3] << vv[4];
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
// job well done
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
}
|
|
@ -1,297 +0,0 @@
|
|||
/*
|
||||
* info_netbsd.cpp is part of the KDE program kcminfo. This displays
|
||||
* various information about the OpenBSD system it's running on.
|
||||
*
|
||||
* Originally written by Jaromir Dolecek <dolecek@ics.muni.cz>. CPU info
|
||||
* code has been imported from implementation of processor.cpp for KDE 1.0
|
||||
* by David Brownlee <abs@NetBSD.org> as found in NetBSD packages collection.
|
||||
* Hubert Feyer <hubertf@NetBSD.org> enhanced the sound information printing
|
||||
* quite a lot, too.
|
||||
*
|
||||
* The code is placed into public domain. Do whatever you want with it.
|
||||
*/
|
||||
|
||||
/*
|
||||
* all following functions should return true, when the Information
|
||||
* was filled into the QTreeWidget. Returning false indicates that
|
||||
* information was not available.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/param.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <stdio.h> /* for NULL */
|
||||
#include <stdlib.h> /* for malloc(3) */
|
||||
|
||||
#include <QFile>
|
||||
#include <QFontMetrics>
|
||||
#include <QTextStream>
|
||||
#include <QTreeWidgetItemIterator>
|
||||
|
||||
#include <kdebug.h>
|
||||
|
||||
typedef struct {
|
||||
int string;
|
||||
int name;
|
||||
const char *title;
|
||||
} hw_info_mib_list_t;
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree) {
|
||||
static const hw_info_mib_list_t hw_info_mib_list[]= { { 1, HW_MODEL, "Model" }, { 1, HW_MACHINE, "Machine" }, { 0, HW_NCPU, "Number of CPUs" }, { 0, HW_PAGESIZE, "Pagesize" }, { 0, 0, 0 } };
|
||||
hw_info_mib_list_t *hw_info_mib;
|
||||
|
||||
int mib[2], num;
|
||||
char *buf;
|
||||
size_t len;
|
||||
QString value;
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("Information") << i18n("Value");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
for (hw_info_mib = hw_info_mib_list; hw_info_mib->title; ++hw_info_mib) {
|
||||
mib[0] = CTL_HW;
|
||||
mib[1] = hw_info_mib->name;
|
||||
if (hw_info_mib->string) {
|
||||
sysctl(mib, 2, NULL, &len, NULL, 0);
|
||||
if ( (buf = (char*)malloc(len))) {
|
||||
sysctl(mib, 2, buf, &len, NULL, 0);
|
||||
value = QString::fromLocal8Bit(buf);
|
||||
free(buf);
|
||||
} else {
|
||||
value = QString("Unknown");
|
||||
}
|
||||
} else {
|
||||
len = sizeof(num);
|
||||
sysctl(mib, 2, &num, &len, NULL, 0);
|
||||
value.sprintf("%d", num);
|
||||
}
|
||||
|
||||
QStringList list;
|
||||
list << hw_info_mib->title << value;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// this is used to find out which devices are currently
|
||||
// on system
|
||||
static bool GetDmesgInfo(QTreeWidget* tree, const char *filter, void func(QTreeWidget *, QString s, void **, bool)) {
|
||||
QFile *dmesg = new QFile("/var/run/dmesg.boot");
|
||||
bool usepipe=false;
|
||||
FILE *pipe=NULL;
|
||||
QTextStream *t;
|
||||
bool seencpu=false;
|
||||
void *opaque=NULL;
|
||||
QString s;
|
||||
bool found=false;
|
||||
|
||||
if (dmesg->exists() && dmesg->open(QIODevice::ReadOnly)) {
|
||||
t = new QTextStream(dmesg);
|
||||
} else {
|
||||
delete dmesg;
|
||||
pipe = popen("/sbin/dmesg", "r");
|
||||
if (!pipe)
|
||||
return false;
|
||||
usepipe = true;
|
||||
t = new QTextStream(pipe, QIODevice::ReadOnly);
|
||||
}
|
||||
|
||||
while (!(s = t->readLine()).isNull()) {
|
||||
if (!seencpu) {
|
||||
if (s.contains("cpu"))
|
||||
seencpu = true;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
if (s.contains("boot device") || s.contains("WARNING: old BSD partition ID!"))
|
||||
break;
|
||||
|
||||
if (!filter || s.contains(filter)) {
|
||||
if (func) {
|
||||
func(tree, s, &opaque, false);
|
||||
} else {
|
||||
QStringList list;
|
||||
list << s;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
if (func) {
|
||||
func(tree, s, &opaque, true);
|
||||
}
|
||||
//tree->triggerUpdate();
|
||||
|
||||
delete t;
|
||||
if (pipe) {
|
||||
pclose(pipe);
|
||||
} else {
|
||||
dmesg->close();
|
||||
delete dmesg;
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
void AddIRQLine(QTreeWidget* tree, QString s, void **opaque, bool ending) {
|
||||
QStringList *strlist = (QStringList *) *opaque;
|
||||
QString str;
|
||||
int pos, irqnum=0;
|
||||
const char *p;
|
||||
p = s.toLatin1();
|
||||
|
||||
if (!strlist) {
|
||||
strlist = new QStringList();
|
||||
*opaque = (void *) strlist;
|
||||
}
|
||||
if (ending) {
|
||||
foreach(QString temp, *strlist) {
|
||||
QStringList tempList;
|
||||
tempList << temp;
|
||||
new QTreeWidgetItem(tree, tempList);
|
||||
}
|
||||
delete strlist;
|
||||
return;
|
||||
}
|
||||
|
||||
pos = s.find(" irq ");
|
||||
irqnum = (pos < 0) ? 0 : atoi(&p[pos+5]);
|
||||
if (irqnum) {
|
||||
s.sprintf("%02d%s", irqnum, p);
|
||||
} else {
|
||||
s.sprintf("??%s", p);
|
||||
}
|
||||
strlist->append(s);
|
||||
strlist->sort();
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget* tree) {
|
||||
QStringList headers;
|
||||
headers << i18n("IRQ") << i18n("Device");
|
||||
tree->setHeaderLabels(headers);
|
||||
(void) GetDmesgInfo(tree, " irq ", AddIRQLine);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "at pci", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No PCI devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "port 0x", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No I/O port devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "audio", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No audio devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
// append information on any audio devices found
|
||||
QTreeWidgetItemIterator it(tree, QTreeWidgetItemIterator::All);
|
||||
while ( *it != NULL ) {
|
||||
QTreeWidgetItem* lvitem = *it;
|
||||
|
||||
QString s;
|
||||
int pos, len;
|
||||
const char *start, *end;
|
||||
char *dev;
|
||||
|
||||
s = lvitem->text(0);
|
||||
if ((pos = s.find("at ")) >= 0) {
|
||||
pos += 3; // skip "at "
|
||||
start = end = s.toAscii();
|
||||
for (; *end && (*end!=':') && (*end!='\n'); end++)
|
||||
;
|
||||
len = end - start;
|
||||
dev = (char *) malloc(len + 1);
|
||||
strncpy(dev, start, len);
|
||||
dev[len] = '\0';
|
||||
|
||||
GetDmesgInfo(tree, dev, NULL);
|
||||
|
||||
free(dev);
|
||||
}
|
||||
|
||||
++it;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QTreeWidget* tree) {
|
||||
(void) GetDmesgInfo(tree, NULL, NULL);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget* tree) {
|
||||
if (!GetDmesgInfo(tree, "scsibus", NULL)) {
|
||||
QStringList list;
|
||||
list << i18n("No SCSI devices found.");
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget* tree) {
|
||||
QString s;
|
||||
char *line, *orig_line;
|
||||
const char *device, *mountpoint, *type, *flags;
|
||||
FILE *pipe = popen("/sbin/mount", "r");
|
||||
QTextStream *t;
|
||||
|
||||
if (!pipe) {
|
||||
kError(0) << i18n("Unable to run /sbin/mount.") << endl;
|
||||
return false;
|
||||
}
|
||||
t = new QTextStream(pipe, QIODevice::ReadOnly);
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("Device") << i18n("Mount Point") << i18n("FS Type") << i18n("Mount Options");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
while (!(s = t->readLine()).isNull()) {
|
||||
orig_line = line = strdup(s.toLatin1());
|
||||
|
||||
device = strsep(&line, " ");
|
||||
|
||||
(void) strsep(&line, " "); // consume word "on"
|
||||
mountpoint = strsep(&line, " ");
|
||||
|
||||
(void) strsep(&line, " "); // consume word "type"
|
||||
type = strsep(&line, " ");
|
||||
|
||||
flags = line;
|
||||
|
||||
QStringList mountList;
|
||||
mountList << device << mountpoint << type << flags;
|
||||
new QTreeWidgetItem(tree, mountList);
|
||||
|
||||
free(orig_line);
|
||||
}
|
||||
|
||||
delete t;
|
||||
pclose(pipe);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
}
|
|
@ -1,160 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2003 Benjamin Reed <ranger@befunk.com>
|
||||
*
|
||||
* info_osx.cpp is part of the KDE program kcminfo. Copied wholesale
|
||||
* from info_fbsd.cpp =)
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* all following functions should return true, when the Information
|
||||
* was filled into the lBox-Widget. Returning false indicates that
|
||||
* information was not available.
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
#include <fstab.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <QFile>
|
||||
#include <QFontMetrics>
|
||||
|
||||
#include <QTextStream>
|
||||
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <mach/mach.h>
|
||||
#include <mach-o/arch.h>
|
||||
|
||||
#ifdef HAVE_COREAUDIO
|
||||
#include <CoreAudio/CoreAudio.h>
|
||||
#endif
|
||||
|
||||
#include <machine/limits.h>
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree) {
|
||||
|
||||
QString cpustring;
|
||||
|
||||
kern_return_t ret;
|
||||
struct host_basic_info basic_info;
|
||||
unsigned int count=HOST_BASIC_INFO_COUNT;
|
||||
|
||||
ret=host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&basic_info, &count);
|
||||
if (ret != KERN_SUCCESS) {
|
||||
kDebug() << "unable to get host information from mach";
|
||||
} else {
|
||||
kDebug() << "got Host Info: (" << basic_info.avail_cpus << ") CPUs available";
|
||||
const NXArchInfo *archinfo;
|
||||
archinfo=NXGetArchInfoFromCpuType(basic_info.cpu_type, basic_info.cpu_subtype);
|
||||
|
||||
for (int i = 1; i <= basic_info.avail_cpus; i++) {
|
||||
QStringList list;
|
||||
list << QString(i) << archinfo->description;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget *tree) {
|
||||
#ifdef HAVE_COREAUDIO
|
||||
#define qMaxStringSize 1024
|
||||
OSStatus status;
|
||||
AudioDeviceID gOutputDeviceID;
|
||||
unsigned long propertySize;
|
||||
char deviceName[qMaxStringSize];
|
||||
char manufacturer[qMaxStringSize];
|
||||
propertySize = sizeof(gOutputDeviceID);
|
||||
status = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &propertySize, &gOutputDeviceID);
|
||||
if (status) {
|
||||
kDebug() << "get default output device failed, status = " << (int)status;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (gOutputDeviceID != kAudioDeviceUnknown) {
|
||||
|
||||
propertySize = qMaxStringSize;
|
||||
|
||||
/* Device Name */
|
||||
status = AudioDeviceGetProperty(gOutputDeviceID, 1, 0, kAudioDevicePropertyDeviceName, &propertySize, deviceName);
|
||||
if (status) {
|
||||
kDebug() << "get device name failed, status = " << (int)status;
|
||||
return false;
|
||||
}
|
||||
QStringList deviceList;
|
||||
deviceList << i18n("Device Name") << deviceName;
|
||||
new QTreeWidgetItem(tree, deviceList);
|
||||
|
||||
/* Manufacturer */
|
||||
status = AudioDeviceGetProperty(gOutputDeviceID, 1, 0, kAudioDevicePropertyDeviceManufacturer, &propertySize, manufacturer);
|
||||
if (status) {
|
||||
kDebug() << "get manufacturer failed, status = " << (int)status;
|
||||
return false;
|
||||
}
|
||||
QStringList manufacturerList;
|
||||
manufacturerList << i18n("Manufacturer") << manufacturer;
|
||||
new QTreeWidgetItem(tree, manufacturerList);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
#ifdef Q_WS_X11
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QTreeWidget* tree) {
|
||||
return false;
|
||||
}
|
|
@ -1,58 +0,0 @@
|
|||
/* info_sgi.cpp
|
||||
|
||||
!!!!! this file will be included by info.cpp !!!!!
|
||||
*/
|
||||
|
||||
/* all following functions should return true, when the Information
|
||||
was filled into the lBox-Widget.
|
||||
returning false indicates, that information was not available.
|
||||
*/
|
||||
|
||||
#include <sys/systeminfo.h>
|
||||
|
||||
bool GetInfo_CPU(QListView *lBox) {
|
||||
QString str;
|
||||
char buf[256];
|
||||
|
||||
sysinfo(SI_ARCHITECTURE, buf, sizeof(buf));
|
||||
str = QString::fromLocal8Bit(buf);
|
||||
new QListViewItem(lBox, str);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QListView *lBox) {
|
||||
return GetInfo_XServer_Generic(lBox);
|
||||
}
|
||||
|
|
@ -1,718 +0,0 @@
|
|||
/*
|
||||
* info_solaris.cpp
|
||||
*
|
||||
* Torsten Kasch <tk@Genetik.Uni-Bielefeld.DE>
|
||||
*/
|
||||
|
||||
#include "config-infocenter.h"
|
||||
|
||||
#include <QTreeWidgetItemIterator>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/mnttab.h>
|
||||
#include <kstat.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/statvfs.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef HAVE_LIBDEVINFO_H
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/mkdev.h>
|
||||
#include <sys/stat.h>
|
||||
#include <devid.h>
|
||||
#include <libdevinfo.h>
|
||||
#endif /* HAVE_LIBDEVINFO_H */
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree) {
|
||||
|
||||
kstat_ctl_t *kctl;
|
||||
kstat_t *ksp;
|
||||
kstat_named_t *kdata;
|
||||
char cputype[16], fputype[16];
|
||||
char *timetxt;
|
||||
char *ptr;
|
||||
uint32_t i, ncpus;
|
||||
unsigned long state_begin;
|
||||
QString state;
|
||||
QString mhz;
|
||||
QString inst;
|
||||
|
||||
/*
|
||||
* get a kstat handle first and update the user's kstat chain
|
||||
*/
|
||||
if ( (kctl = kstat_open()) == NULL) {
|
||||
return false;
|
||||
}
|
||||
while (kstat_chain_update(kctl) != 0)
|
||||
;
|
||||
|
||||
/*
|
||||
* get the # of CPUs
|
||||
*/
|
||||
if ( (ksp = kstat_lookup(kctl, "unix", 0, "system_misc")) == NULL) {
|
||||
return false;
|
||||
}
|
||||
if (kstat_read(kctl, ksp, NULL) == -1) {
|
||||
return false;
|
||||
}
|
||||
kdata = (kstat_named_t *) kstat_data_lookup(ksp, "ncpus");
|
||||
if (kdata != NULL) {
|
||||
ncpus = kdata->value.ui32;
|
||||
} else {
|
||||
ncpus = 0;
|
||||
}
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("Instance") << i18n("CPU Type") << i18n("FPU Type") << i18n("MHz") << i18n("State");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
/*
|
||||
* get the per-processor info
|
||||
*/
|
||||
for (i = 0; i < ncpus; i++) {
|
||||
|
||||
if ( (ksp = kstat_lookup(kctl, "cpu_info", i, NULL)) == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (kstat_read(kctl, ksp, NULL) == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
inst.setNum(i);
|
||||
kdata = (kstat_named_t *) kstat_data_lookup(ksp, "cpu_type");
|
||||
if (kdata != NULL) {
|
||||
strcpy(cputype, kdata->value.c);
|
||||
} else {
|
||||
sprintf(cputype, "???");
|
||||
}
|
||||
kdata = (kstat_named_t *) kstat_data_lookup(ksp, "fpu_type");
|
||||
if (kdata != NULL) {
|
||||
strcpy(fputype, kdata->value.c);
|
||||
} else {
|
||||
sprintf(fputype, "???");
|
||||
}
|
||||
kdata = (kstat_named_t *) kstat_data_lookup(ksp, "clock_MHz");
|
||||
if (kdata != NULL) {
|
||||
mhz.setNum(kdata->value.ul);
|
||||
} else {
|
||||
mhz.setNum( 0);
|
||||
}
|
||||
kdata = (kstat_named_t *) kstat_data_lookup(ksp, "state");
|
||||
if (kdata != NULL) {
|
||||
state = QString(kdata->value.c);
|
||||
} else {
|
||||
state = "???";
|
||||
}
|
||||
kdata = (kstat_named_t *) kstat_data_lookup(ksp, "state_begin");
|
||||
if (kdata != NULL) {
|
||||
state_begin = kdata->value.i32;
|
||||
if ( (timetxt = ctime( (time_t *) &state_begin )) != NULL) {
|
||||
ptr = strrchr(timetxt, '\n');
|
||||
*ptr = '\0';
|
||||
state += " since " + QString(timetxt);
|
||||
}
|
||||
}
|
||||
|
||||
QStringList list;
|
||||
list << inst << cputype << fputype << mhz << state;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
tree->sortItems(0, Qt::AscendingOrder);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QTreeWidget* tree) {
|
||||
|
||||
FILE *mnttab;
|
||||
struct mnttab mnt;
|
||||
struct statvfs statbuf;
|
||||
fsblkcnt_t tmp;
|
||||
QString total;
|
||||
QString avail;
|
||||
time_t mnttime;
|
||||
char *timetxt;
|
||||
char *ptr;
|
||||
|
||||
if ( (mnttab = fopen(MNTTAB, "r")) == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* set up column headers
|
||||
*/
|
||||
QStringList headers;
|
||||
headers << i18n("Device") << i18n("Mount Point") << i18n("FS Type") << i18n("Total Size") << i18n("Free Size") << i18n("Mount Time") << i18n("Mount Options");
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
// XXX: FIXME: how do I set column alignment correctly?
|
||||
//tree->setColumnAlignment( 3, 2 );
|
||||
// XXX: FIXME: how do I set column alignment correctly?
|
||||
//tree->setColumnAlignment( 4, 2 );
|
||||
|
||||
/*
|
||||
* get info about mounted file systems
|
||||
*/
|
||||
rewind(mnttab);
|
||||
while (getmntent(mnttab, &mnt) == 0) {
|
||||
/*
|
||||
* skip fstype "nfs" and "autofs" for two reasons:
|
||||
* o if the mountpoint is visible, the fs is not
|
||||
* necessarily available (autofs option "-nobrowse")
|
||||
* and we don't want to mount every remote fs just
|
||||
* to get its size, do we?
|
||||
* o the name "Partitions" for this statistics implies
|
||||
* "local file systems only"
|
||||
*/
|
||||
if ( (strcmp(mnt.mnt_fstype, "nfs") == 0) || (strcmp(mnt.mnt_fstype, "autofs") == 0))
|
||||
continue;
|
||||
if (statvfs(mnt.mnt_mountp, &statbuf) == 0) {
|
||||
if (statbuf.f_blocks > 0) {
|
||||
/*
|
||||
* produce output in KB, MB, or GB for
|
||||
* readability -- unfortunately, this
|
||||
* breaks sorting for these columns...
|
||||
*/
|
||||
tmp = statbuf.f_blocks * (statbuf.f_frsize / 1024);
|
||||
if (tmp > 9999) {
|
||||
tmp /= 1024;
|
||||
if (tmp > 9999) {
|
||||
tmp /= 1024;
|
||||
total.setNum(tmp);
|
||||
total += " G";
|
||||
} else {
|
||||
total.setNum(tmp);
|
||||
total += " M";
|
||||
}
|
||||
} else {
|
||||
total.setNum(tmp);
|
||||
total += " K";
|
||||
}
|
||||
// avail.setNum( statbuf.f_bavail );
|
||||
// avail += " K";
|
||||
tmp = statbuf.f_bavail * (statbuf.f_frsize / 1024);
|
||||
if (tmp > 9999) {
|
||||
tmp /= 1024;
|
||||
if (tmp > 9999) {
|
||||
tmp /= 1024;
|
||||
avail.setNum(tmp);
|
||||
avail += " G";
|
||||
} else {
|
||||
avail.setNum(tmp);
|
||||
avail += " M";
|
||||
}
|
||||
} else {
|
||||
avail.setNum(tmp);
|
||||
avail += " K";
|
||||
}
|
||||
} else {
|
||||
total = "-";
|
||||
avail = "-";
|
||||
}
|
||||
} else {
|
||||
total = "???";
|
||||
avail = "???";
|
||||
}
|
||||
/*
|
||||
* ctime() adds a '\n' which we have to remove
|
||||
* so that we get a one-line output for the QTreeWidgetItem
|
||||
*/
|
||||
mnttime = (time_t) atol(mnt.mnt_time);
|
||||
if ( (timetxt = ctime( &mnttime)) != NULL) {
|
||||
ptr = strrchr(timetxt, '\n');
|
||||
*ptr = '\0';
|
||||
}
|
||||
|
||||
QStringList list;
|
||||
list << mnt.mnt_special << mnt.mnt_mountp << mnt.mnt_fstype << total << avail << QString(timetxt) << mnt.mnt_mntopts;
|
||||
new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
fclose(mnttab);
|
||||
|
||||
tree->sortItems(0, Qt::AscendingOrder);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree) {
|
||||
return GetInfo_XServer_Generic(tree);
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBDEVINFO_H
|
||||
/*
|
||||
* get Solaris' device configuration data through libdevinfo(3)
|
||||
* and display it in a prtconf(1M) style tree
|
||||
*
|
||||
* NOTE: though the devinfo library seems to be present on earlier
|
||||
* Solaris releases, this interface is documented to be available
|
||||
* since Solaris 7 (libdevinfo.h is missing on pre-Solaris 7 systems)
|
||||
*
|
||||
* documentation for libdevinfo(3) including code samples on which
|
||||
* this implementation is based on is available at
|
||||
* http://soldc.sun.com/developer/support/driver/wps/libdevinfo/
|
||||
*/
|
||||
|
||||
/*
|
||||
* we start with various helper routines for GetInfo_Devices()
|
||||
*/
|
||||
|
||||
/*
|
||||
* mktree() -- break up the device path and place its components
|
||||
* into the tree widget
|
||||
*/
|
||||
QTreeWidgetItem* mktree( QTreeWidgetItem* top, const char* path ) {
|
||||
|
||||
QTreeWidgetItem* parent;
|
||||
QTreeWidgetItem* previous;
|
||||
QTreeWidgetItem* result;
|
||||
char* str = strdup( path );
|
||||
char* token;
|
||||
|
||||
/*
|
||||
* start at "/"
|
||||
*/
|
||||
parent = top;
|
||||
result = top->child(0);
|
||||
previous = top->child(0);
|
||||
|
||||
token = strtok( str, "/" );
|
||||
while( token != NULL ) {
|
||||
/*
|
||||
* find insert pos:
|
||||
* try to match the node at the current level
|
||||
*
|
||||
* NOTE: this implementation assumes that there are
|
||||
* no two nodes with identical names at the
|
||||
* same level of the device tree
|
||||
*/
|
||||
QTreeWidgetItemIterator it(top, QTreeWidgetItemIterator::All);
|
||||
while ( *it != NULL ) {
|
||||
if( strcmp( token, (*it)->text( 0 ).toLatin1()) == 0 )
|
||||
break;
|
||||
|
||||
previous = *it;
|
||||
|
||||
++it;
|
||||
result = *it;
|
||||
}
|
||||
if( result == NULL ) {
|
||||
QStringList list;
|
||||
list << token;
|
||||
|
||||
/*
|
||||
* we haven't found the node, create a new one
|
||||
*/
|
||||
result = new QTreeWidgetItem(parent, previous, list);
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* we've found the node
|
||||
*/
|
||||
parent = result;
|
||||
previous = NULL;
|
||||
if( result->child(0) == NULL ) {
|
||||
/*
|
||||
* create new node during next iteration
|
||||
*/
|
||||
result->setExpanded(false);
|
||||
} else {
|
||||
/*
|
||||
* follow the child path
|
||||
*/
|
||||
result = result->child(0);
|
||||
}
|
||||
}
|
||||
token = strtok( NULL, "/" );
|
||||
}
|
||||
|
||||
free( str );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* prop_type_str() -- return the property type as a string
|
||||
*/
|
||||
char *prop_type_str( di_prop_t prop ) {
|
||||
|
||||
switch( di_prop_type( prop )) {
|
||||
case DI_PROP_TYPE_UNDEF_IT:
|
||||
return( "undefined" );
|
||||
case DI_PROP_TYPE_BOOLEAN:
|
||||
return( "BOOL" );
|
||||
case DI_PROP_TYPE_INT:
|
||||
return( "INT" );
|
||||
case DI_PROP_TYPE_STRING:
|
||||
return( "STRING" );
|
||||
case DI_PROP_TYPE_BYTE:
|
||||
return( "BYTE" );
|
||||
default:
|
||||
return( "unknown" );
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* prop_type_guess() -- guess the property type
|
||||
*/
|
||||
int prop_type_guess( uchar_t *data, int len ) {
|
||||
|
||||
int slen;
|
||||
int guess;
|
||||
int i, c;
|
||||
|
||||
if( len < 0 )
|
||||
return( -1 );
|
||||
else if( len == 0 )
|
||||
return( DI_PROP_TYPE_BOOLEAN );
|
||||
|
||||
slen = 0;
|
||||
guess = DI_PROP_TYPE_STRING;
|
||||
|
||||
for( i = 0; i < len; i++ ) {
|
||||
c = (int) data[i];
|
||||
switch( c ) {
|
||||
case 0:
|
||||
if( i == (len - 1 ))
|
||||
break;
|
||||
if( slen == 0 )
|
||||
guess = DI_PROP_TYPE_BYTE;
|
||||
else
|
||||
guess = slen = 0;
|
||||
break;
|
||||
default:
|
||||
if( ! isprint( c ))
|
||||
guess = DI_PROP_TYPE_BYTE;
|
||||
else
|
||||
slen++;
|
||||
}
|
||||
if( guess != DI_PROP_TYPE_STRING )
|
||||
break;
|
||||
}
|
||||
|
||||
// if( (guess == DI_PROP_TYPE_BYTE) && (len % sizeof( int ) == 0 ))
|
||||
// guess = DI_PROP_TYPE_INT;
|
||||
|
||||
return( guess );
|
||||
}
|
||||
|
||||
/*
|
||||
* dump_minor_node() -- examine a device minor node
|
||||
* this routine gets passed to di_walk_node()
|
||||
*/
|
||||
int dump_minor_node( di_node_t node, di_minor_t minor, void *arg ) {
|
||||
|
||||
QString majmin;
|
||||
char *type;
|
||||
dev_t dev;
|
||||
|
||||
QStringList list;
|
||||
list << di_minor_name( minor );
|
||||
QTreeWidgetItem* item = new QTreeWidgetItem( (QTreeWidgetItem *) arg, list);
|
||||
item->setExpanded(false);
|
||||
|
||||
QString specResult;
|
||||
if (di_minor_spectype( minor ) == S_IFCHR)
|
||||
specResult = i18n( "character special" );
|
||||
else
|
||||
specResult = i18n( "block special" );
|
||||
|
||||
QStringList spec;
|
||||
spec << i18nc( "Can be either character special or block special", "Special type:" ) << specResult;
|
||||
|
||||
new QTreeWidgetItem(item, spec);
|
||||
|
||||
type = di_minor_nodetype( minor );
|
||||
|
||||
QString nodeResult;
|
||||
if (type == NULL)
|
||||
nodeResult = "NULL";
|
||||
else
|
||||
nodeResult = type;
|
||||
|
||||
QStringList node;
|
||||
node << i18n( "Nodetype:" ) << nodeResult;
|
||||
|
||||
new QTreeWidgetItem(item, node);
|
||||
|
||||
if( (dev = di_minor_devt( minor )) != DDI_DEV_T_NONE ) {
|
||||
majmin.sprintf( "%ld/%ld", major( dev ), minor( dev ));
|
||||
QStringList mn;
|
||||
mn << i18n( "Major/Minor:" ) << majmin;
|
||||
new QTreeWidgetItem(item, mn);
|
||||
}
|
||||
|
||||
if( di_minor_next( node, minor ) == DI_MINOR_NIL )
|
||||
return DI_WALK_TERMINATE;
|
||||
else
|
||||
return DI_WALK_CONTINUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* propvalue() -- return the property value
|
||||
*/
|
||||
QString propvalue( di_prop_t prop ) {
|
||||
|
||||
int type;
|
||||
int i, n;
|
||||
char *strp;
|
||||
int *intp;
|
||||
uchar_t *bytep;
|
||||
QString result;
|
||||
|
||||
/*
|
||||
* Since a lot of printable strings seem to be tagged as 'byte',
|
||||
* we're going to guess, if the property is not STRING or INT
|
||||
* The actual type is shown in the info tree, though.
|
||||
*/
|
||||
type = di_prop_type( prop );
|
||||
if( (type != DI_PROP_TYPE_STRING) && (type != DI_PROP_TYPE_INT) ) {
|
||||
n = di_prop_bytes( prop, &bytep );
|
||||
type = prop_type_guess( bytep, n );
|
||||
}
|
||||
|
||||
result = "";
|
||||
switch( type ) {
|
||||
case DI_PROP_TYPE_STRING:
|
||||
if( (n = di_prop_strings( prop, &strp )) < 0 ) {
|
||||
result = "(error)";
|
||||
} else {
|
||||
for( i = 0; i < n; i++ ) {
|
||||
result += "\"";
|
||||
result += strp;
|
||||
result += "\" ";
|
||||
strp += strlen( strp ) + 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DI_PROP_TYPE_INT:
|
||||
if( (n = di_prop_ints( prop, &intp )) < 0 ) {
|
||||
result = "(error)";
|
||||
} else {
|
||||
for( i = 0; i < n; i++ ) {
|
||||
QString tmp;
|
||||
tmp.setNum( intp[i] );
|
||||
result += tmp;
|
||||
result += ' ';
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DI_PROP_TYPE_BOOLEAN:
|
||||
/*
|
||||
* hmm, Sun's sample code handles the existence
|
||||
* of a boolean property as "true", whereas
|
||||
* prtconf(1M) obviously does not (Sol8, at least)
|
||||
* -- we're doing the same and handle "bool" as "byte"
|
||||
*/
|
||||
case DI_PROP_TYPE_BYTE:
|
||||
if( (n = di_prop_bytes( prop, &bytep )) < 0 ) {
|
||||
result = "(error)";
|
||||
} else {
|
||||
if( n == 0 ) {
|
||||
result = i18n( "(no value)" );
|
||||
break;
|
||||
}
|
||||
result = "0x";
|
||||
for( i = 0; i < n; i++ ) {
|
||||
QString tmp;
|
||||
unsigned byte = (unsigned) bytep[i];
|
||||
tmp.sprintf( "%2.2x", byte );
|
||||
result += tmp;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
result = "???";
|
||||
}
|
||||
|
||||
return( result );
|
||||
}
|
||||
|
||||
/*
|
||||
* dump_node() -- examine a device node and its children
|
||||
* this routine gets passed to di_walk_node()
|
||||
*/
|
||||
int dump_node( di_node_t node, void *arg ) {
|
||||
|
||||
QTreeWidgetItem *top = (QTreeWidgetItem *) arg;
|
||||
QTreeWidgetItem *parent;
|
||||
char *path;
|
||||
char *drivername;
|
||||
char *names;
|
||||
QString compatnames;
|
||||
int i, n;
|
||||
di_prop_t prop;
|
||||
|
||||
path = di_devfs_path( node );
|
||||
|
||||
/*
|
||||
* if this is the root node ("/"), initialize the tree
|
||||
*/
|
||||
if( strlen( path ) == 1 ) {
|
||||
top->setText( 0, QString( di_binding_name( node )));
|
||||
top->setIcon( 0, SmallIcon( "kcmdevices" ));
|
||||
top->setExpanded( true );
|
||||
}
|
||||
|
||||
/*
|
||||
* place the node in the tree
|
||||
*/
|
||||
parent = mktree( top, path );
|
||||
|
||||
/*
|
||||
* we have to handle the root node differently...
|
||||
*/
|
||||
if( strlen( path ) > 1 ) {
|
||||
parent->setExpanded(false);
|
||||
} else {
|
||||
parent = top;
|
||||
}
|
||||
|
||||
/*
|
||||
* node name and physical device path
|
||||
*/
|
||||
drivername = di_driver_name( node );
|
||||
|
||||
QStringList driverList;
|
||||
driverList << i18n( "Driver Name:" );
|
||||
if (drivername==NULL)
|
||||
driverList << i18n( "(driver not attached)" );
|
||||
else
|
||||
driverList << drivername;
|
||||
|
||||
new QTreeWidgetItem(parent, driverList);
|
||||
|
||||
QStringList bindingList;
|
||||
bindingList << i18n( "Binding Name:" ) << di_binding_name( node );
|
||||
new QTreeWidgetItem(parent, bindingList);
|
||||
|
||||
n = di_compatible_names( node, &names );
|
||||
if( n < 1 ) {
|
||||
compatnames = i18n( "(none)" );
|
||||
} else {
|
||||
for( i = 0; i < n; i++ ) {
|
||||
compatnames += names;
|
||||
compatnames += ' ';
|
||||
names += strlen( names ) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
QStringList compatibleList;
|
||||
compatibleList << i18n( "Compatible Names:" ) << compatnames;
|
||||
new QTreeWidgetItem(parent, compatibleList);
|
||||
|
||||
QStringList physicalList;
|
||||
physicalList << i18n( "Physical Path:" ) << QString( path );
|
||||
new QTreeWidgetItem(parent, physicalList);
|
||||
|
||||
/*
|
||||
* dump the node's property list (if any)
|
||||
*/
|
||||
if( (prop = di_prop_next( node, DI_PROP_NIL )) != DI_PROP_NIL ) {
|
||||
|
||||
QTreeWidgetItem *previous;
|
||||
QStringList propertiesList;
|
||||
propertiesList << i18n( "Properties" );
|
||||
previous = new QTreeWidgetItem(parent, propertiesList);
|
||||
previous->setExpanded( false );
|
||||
|
||||
do {
|
||||
/*
|
||||
* property type & value
|
||||
*/
|
||||
QStringList propList;
|
||||
propList << di_prop_name( prop );
|
||||
QTreeWidgetItem* tmp = new QTreeWidgetItem(previous, propList);
|
||||
tmp->setExpanded( false );
|
||||
|
||||
QStringList typeList;
|
||||
typeList << i18n( "Type:" ) << prop_type_str( prop );
|
||||
new QTreeWidgetItem( tmp, typeList);
|
||||
|
||||
QStringList valueList;
|
||||
valueList << i18n( "Value:" ) << propvalue( prop );
|
||||
new QTreeWidgetItem( tmp, valueList);
|
||||
|
||||
}while( (prop = di_prop_next( node, prop )) != DI_PROP_NIL );
|
||||
}
|
||||
|
||||
/*
|
||||
* if there are minor nodes, expand the tree appropriately
|
||||
*/
|
||||
if( di_minor_next( node, DI_MINOR_NIL ) != DI_MINOR_NIL ) {
|
||||
QStringList minorList;
|
||||
minorList << i18n( "Minor Nodes" );
|
||||
QTreeWidgetItem* previous = new QTreeWidgetItem(parent, minorList);
|
||||
previous->setExpanded(false);
|
||||
di_walk_minor( node, NULL, 0, previous, dump_minor_node );
|
||||
}
|
||||
|
||||
return DI_WALK_CONTINUE;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices( QTreeWidget* tree ) {
|
||||
|
||||
di_node_t root_node;
|
||||
|
||||
/*
|
||||
* create a snapshot of the device tree
|
||||
*/
|
||||
if( (root_node = di_init( "/", DINFOCPYALL )) == DI_NODE_NIL ) {
|
||||
return( false );
|
||||
}
|
||||
// XXX: might try to di_prom_init() here as well (if we're setgid sys)
|
||||
|
||||
/*
|
||||
* prepare the tree widget
|
||||
*/
|
||||
QStringList headers;
|
||||
headers << i18n( "Device Information" ) << i18n( "Value" );
|
||||
tree->setHeaderLabels(headers);
|
||||
|
||||
QTreeWidgetItem* top = new QTreeWidgetItem( tree );
|
||||
|
||||
/*
|
||||
* traverse the device tree
|
||||
*/
|
||||
di_walk_node( root_node, DI_WALK_CLDFIRST, top, dump_node );
|
||||
|
||||
di_fini( root_node );
|
||||
|
||||
tree->setSortingEnabled(false);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#else /* ! HAVE_LIBDEVINFO_H */
|
||||
bool GetInfo_Devices(QTreeWidget*) {
|
||||
return false;
|
||||
}
|
||||
#endif /* ! HAVE_LIBDEVINFO_H */
|
|
@ -1,112 +0,0 @@
|
|||
/*
|
||||
info_svr4.cpp
|
||||
|
||||
UNIX System V Release 4 specific Information about the Hardware.
|
||||
Appropriate for SCO OpenServer and UnixWare.
|
||||
Written 20-Feb-99 by Ronald Joe Record (rr@sco.com)
|
||||
Initially based on info_sgi.cpp
|
||||
*/
|
||||
|
||||
#define INFO_DEV_SNDSTAT "/dev/sndstat"
|
||||
|
||||
#include <sys/systeminfo.h>
|
||||
|
||||
/* all following functions should return true, when the Information
|
||||
was filled into the lBox-Widget.
|
||||
returning false indicates, that information was not available.
|
||||
*/
|
||||
|
||||
bool GetInfo_ReadfromFile(QListView *lBox, char *Name, char splitchar) {
|
||||
QString str;
|
||||
char buf[512];
|
||||
|
||||
QFile *file = new QFile(Name);
|
||||
QListViewItem* olditem = 0;
|
||||
|
||||
if (!file->open(QIODevice::ReadOnly)) {
|
||||
delete file;
|
||||
return false;
|
||||
}
|
||||
|
||||
while (file->readLine(buf, sizeof(buf)-1) > 0) {
|
||||
if (strlen(buf)) {
|
||||
char *p=buf;
|
||||
if (splitchar!=0) /* remove leading spaces between ':' and the following text */
|
||||
while (*p) {
|
||||
if (*p==splitchar) {
|
||||
*p++ = ' ';
|
||||
while (*p==' ')
|
||||
++p;
|
||||
*(--p) = splitchar;
|
||||
++p;
|
||||
} else
|
||||
++p;
|
||||
}
|
||||
|
||||
QString s1 = QString::fromLocal8Bit(buf);
|
||||
QString s2 = s1.mid(s1.find(splitchar)+1);
|
||||
|
||||
s1.truncate(s1.find(splitchar));
|
||||
if (!(s1.isEmpty() || s2.isEmpty()))
|
||||
olditem = new QListViewItem(lBox, olditem, s1, s2);
|
||||
}
|
||||
}
|
||||
file->close();
|
||||
|
||||
delete file;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_CPU(QListView *lBox) {
|
||||
char buf[256];
|
||||
|
||||
sysinfo(SI_ARCHITECTURE, buf, sizeof(buf));
|
||||
new QListViewItem(lBox, QString::fromLocal8Bit(buf));
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IRQ(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_DMA(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_PCI(QTreeWidget* tree) {
|
||||
char buf[256];
|
||||
|
||||
sysinfo(SI_BUSTYPES, buf, sizeof(buf));
|
||||
QStringList list;
|
||||
list << QString::fromLocal8Bit(buf);
|
||||
new QTreeWidgetItem(tree, list);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetInfo_IO_Ports(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Sound(QListView *lBox) {
|
||||
if (GetInfo_ReadfromFile(lBox, INFO_DEV_SNDSTAT, 0))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Devices(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_SCSI(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_Partitions(QListView *) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool GetInfo_XServer_and_Video(QListView *lBox) {
|
||||
return GetInfo_XServer_Generic(lBox);
|
||||
}
|
||||
|
|
@ -1,331 +0,0 @@
|
|||
#ifndef OS_BASE_H_
|
||||
#define OS_BASE_H_
|
||||
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
#include <QProcess>
|
||||
#include <QTextStream>
|
||||
#include <QTreeWidget>
|
||||
#include <QTreeWidgetItem>
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include <kglobal.h>
|
||||
#include <klocale.h>
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#include "config-infocenter.h"
|
||||
|
||||
static const QString Value(int val, int numbers=1) {
|
||||
return KGlobal::locale()->formatNumber(val, 0).rightJustified(numbers);
|
||||
}
|
||||
|
||||
static const QString HexStr(unsigned long val, int digits) {
|
||||
QString hexstr;
|
||||
int i;
|
||||
hexstr = QString::fromLatin1("0x%1").arg(val, digits, 16/*=HEX*/);
|
||||
for (i=hexstr.length()-1; i>0; --i)
|
||||
if (hexstr[i]==' ')
|
||||
hexstr[i] = '0';
|
||||
return hexstr;
|
||||
}
|
||||
|
||||
static const QString Order(int order) {
|
||||
if (order==LSBFirst)
|
||||
return i18n("LSBFirst");
|
||||
else if (order==MSBFirst)
|
||||
return i18n("MSBFirst");
|
||||
else
|
||||
return i18n("Unknown Order %1", order);
|
||||
}
|
||||
|
||||
static const QString BitString(unsigned long n) {
|
||||
return i18np("1 Bit", "%1 Bits", n); // singular & plural form of "%d Bit"
|
||||
}
|
||||
|
||||
static const QString ByteString(unsigned long n) {
|
||||
/* explanation in BR #52640 (http://bugs.kde.org/show_bug.cgi?id=52640) */
|
||||
if (n == 1)
|
||||
return i18nc("singular form: '1 Byte' (yes, it is '1', not '%1'!)", "1 Byte");
|
||||
|
||||
return i18nc("plural form: '%1 Bytes'", "%1 Bytes", KGlobal::locale()->formatNumber(n, 0));
|
||||
}
|
||||
|
||||
static const struct _event_table {
|
||||
const char *name;
|
||||
long value;
|
||||
} event_table[] = { { "KeyPressMask", KeyPressMask }, { "KeyReleaseMask", KeyReleaseMask }, { "ButtonPressMask", ButtonPressMask }, { "ButtonReleaseMask", ButtonReleaseMask }, { "EnterWindowMask", EnterWindowMask }, { "LeaveWindowMask", LeaveWindowMask }, { "PointerMotionMask", PointerMotionMask },
|
||||
{ "PointerMotionHintMask", PointerMotionHintMask }, { "Button1MotionMask", Button1MotionMask }, { "Button2MotionMask", Button2MotionMask }, { "Button3MotionMask", Button3MotionMask }, { "Button4MotionMask", Button4MotionMask }, { "Button5MotionMask", Button5MotionMask }, {
|
||||
"ButtonMotionMask", ButtonMotionMask }, { "KeymapStateMask", KeymapStateMask }, { "ExposureMask", ExposureMask }, { "VisibilityChangeMask", VisibilityChangeMask }, { "StructureNotifyMask", StructureNotifyMask }, { "ResizeRedirectMask", ResizeRedirectMask }, {
|
||||
"SubstructureNotifyMask", SubstructureNotifyMask }, { "SubstructureRedirectMask", SubstructureRedirectMask }, { "FocusChangeMask", FocusChangeMask }, { "PropertyChangeMask", PropertyChangeMask }, { "ColormapChangeMask", ColormapChangeMask }, { "OwnerGrabButtonMask",
|
||||
OwnerGrabButtonMask }, { 0L, 0 } };
|
||||
|
||||
/* easier to read with such a define ! */
|
||||
#define I18N_MAX(txt,in,fm,maxw) \
|
||||
{ int n = fm.width(txt=in); if (n>maxw) maxw=n; }
|
||||
|
||||
#define PIXEL_ADD 20 // add x Pixel to multicolumns..
|
||||
#define HEXDIGITS (sizeof(int)*8/4) /* 4 Bytes = 32 Bits = 8 Hex-Digits */
|
||||
|
||||
static QTreeWidgetItem* XServer_fill_screen_info(QTreeWidgetItem *lBox, QTreeWidgetItem *last, Display *dpy, int scr, int default_scr) {
|
||||
unsigned width, height;
|
||||
double xres, yres;
|
||||
int i, ndepths, *depths;
|
||||
Screen *s= ScreenOfDisplay(dpy,scr); /* opaque structure */
|
||||
QTreeWidgetItem *item;
|
||||
|
||||
/*
|
||||
* there are 2.54 centimeters to an inch; so there are 25.4 millimeters.
|
||||
*
|
||||
* dpi = N pixels / (M millimeters / (25.4 millimeters / 1 inch))
|
||||
* = N pixels / (M inch / 25.4)
|
||||
* = N * 25.4 pixels / M inch
|
||||
*/
|
||||
|
||||
xres = ((double)(DisplayWidth(dpy,scr) *25.4)/DisplayWidthMM(dpy,scr) );
|
||||
yres = ((double)(DisplayHeight(dpy,scr)*25.4)/DisplayHeightMM(dpy,scr));
|
||||
|
||||
QStringList screenList;
|
||||
screenList << ki18n("Screen # %1").subs((int)scr,-1).toString();
|
||||
if (scr==default_scr)
|
||||
screenList << i18n("(Default Screen)");
|
||||
else
|
||||
screenList << QString();
|
||||
|
||||
item = new QTreeWidgetItem(lBox, screenList);
|
||||
if (scr==default_scr)
|
||||
item->setExpanded(true);
|
||||
|
||||
QStringList dimensionList;
|
||||
dimensionList << i18n("Dimensions") << i18n("%1 x %2 Pixels (%3 x %4 mm)", (int)DisplayWidth(dpy,scr) , (int)DisplayHeight(dpy,scr) , (int)DisplayWidthMM(dpy,scr) , (int)DisplayHeightMM (dpy,scr) );
|
||||
last = new QTreeWidgetItem(item, dimensionList);
|
||||
|
||||
QStringList resolutionList;
|
||||
resolutionList << i18n("Resolution") << i18n("%1 x %2 dpi", (int)(xres+0.5) , (int)(yres+0.5) );
|
||||
|
||||
last = new QTreeWidgetItem(item, resolutionList);
|
||||
|
||||
ndepths = 0;
|
||||
depths = 0;
|
||||
depths = XListDepths(dpy, scr, &ndepths);
|
||||
if (depths) {
|
||||
QString txt;
|
||||
|
||||
for (i = 0; i < ndepths; i++) {
|
||||
txt = txt + Value(depths[i]);
|
||||
if (i < ndepths - 1)
|
||||
txt = txt + QLatin1String(", ");
|
||||
}
|
||||
|
||||
QStringList depthList;
|
||||
depthList << ki18n("Depths (%1)").subs(ndepths,-1).toString() << txt;
|
||||
last = new QTreeWidgetItem(item, depthList);
|
||||
XFree((char *) depths);
|
||||
}
|
||||
|
||||
QStringList rootList;
|
||||
rootList << i18n("Root Window ID") << HexStr((unsigned long)RootWindow(dpy,scr), HEXDIGITS);
|
||||
last = new QTreeWidgetItem(item, rootList);
|
||||
|
||||
QStringList depthRootList;
|
||||
depthRootList << i18n("Depth of Root Window") << i18np("%1 plane", "%1 planes", DisplayPlanes(dpy,scr));
|
||||
last = new QTreeWidgetItem(item, depthRootList);
|
||||
|
||||
QStringList colormapList;
|
||||
colormapList << i18n("Number of Colormaps") << i18n("minimum %1, maximum %2", (int)MinCmapsOfScreen(s), (int)MaxCmapsOfScreen(s));
|
||||
last = new QTreeWidgetItem(item, colormapList);
|
||||
|
||||
QStringList defaultColormap;
|
||||
defaultColormap << i18n("Default Colormap"), Value((int)DefaultColormap(dpy,scr));
|
||||
last = new QTreeWidgetItem(item, defaultColormap);
|
||||
|
||||
QStringList colormapCellList;
|
||||
colormapCellList << i18n("Default Number of Colormap Cells") << Value((int)DisplayCells(dpy, scr));
|
||||
last = new QTreeWidgetItem(item, colormapCellList);
|
||||
|
||||
QStringList preallocatedList;
|
||||
preallocatedList << i18n("Preallocated Pixels") << i18n("Black %1, White %2", KGlobal::locale()->formatNumber(BlackPixel(dpy,scr), 0), KGlobal::locale()->formatNumber(WhitePixel(dpy,scr), 0));
|
||||
last = new QTreeWidgetItem(item, preallocatedList);
|
||||
|
||||
QString YES(i18n("Yes"));
|
||||
QString NO(i18n("No"));
|
||||
|
||||
QStringList optionList;
|
||||
optionList << i18n("Options") << i18n("backing-store: %1, save-unders: %2", (DoesBackingStore(s) == NotUseful) ? NO : ((DoesBackingStore(s) == Always) ? YES : i18n("When mapped")),
|
||||
DoesSaveUnders(s) ? YES : NO);
|
||||
last = new QTreeWidgetItem(item, optionList);
|
||||
|
||||
XQueryBestSize(dpy, CursorShape, RootWindow(dpy,scr), 65535, 65535, &width, &height);
|
||||
QStringList largestList;
|
||||
largestList << i18n("Largest Cursor");
|
||||
if (width == 65535 && height == 65535)
|
||||
largestList << i18n("unlimited");
|
||||
else
|
||||
largestList << QString::fromLatin1("%1 x %2").arg(width).arg(height);
|
||||
last = new QTreeWidgetItem(item, largestList);
|
||||
|
||||
QStringList currentInput;
|
||||
currentInput << i18n("Current Input Event Mask") << HexStr((unsigned long)EventMaskOfScreen(s), HEXDIGITS);
|
||||
last = new QTreeWidgetItem(item, currentInput);
|
||||
const struct _event_table *etp;
|
||||
for (etp=event_table; etp->name; etp++) {
|
||||
if (EventMaskOfScreen(s) & etp->value) {
|
||||
QStringList eventList;
|
||||
eventList << i18n("Event = %1", HexStr(etp->value, HEXDIGITS)) << etp->name;
|
||||
new QTreeWidgetItem(last, eventList);
|
||||
}
|
||||
}
|
||||
|
||||
if (last->childCount()==0)
|
||||
return last;
|
||||
else
|
||||
return last->child(last->childCount()-1);
|
||||
}
|
||||
|
||||
static bool GetInfo_XServer_Generic(QTreeWidget *lBox) {
|
||||
/* Many parts of this source are taken from the X11-program "xdpyinfo" */
|
||||
|
||||
int i, n;
|
||||
long req_size;
|
||||
|
||||
Display *dpy;
|
||||
XPixmapFormatValues *pmf;
|
||||
|
||||
QString str, txt;
|
||||
QTreeWidgetItem *last, *item, *next;
|
||||
|
||||
dpy = XOpenDisplay(0);
|
||||
if (!dpy)
|
||||
return false;
|
||||
|
||||
QStringList headers;
|
||||
headers << i18n("Information") << i18n("Value");
|
||||
lBox->setHeaderLabels(headers);
|
||||
lBox->setSortingEnabled(false);
|
||||
|
||||
QStringList serverInfo;
|
||||
serverInfo << i18n("Server Information");
|
||||
next = new QTreeWidgetItem(lBox, serverInfo);
|
||||
next->setIcon(0, SmallIcon("xorg"));
|
||||
next->setExpanded(true);
|
||||
|
||||
QStringList displayNameList;
|
||||
displayNameList << i18n("Name of the Display") << DisplayString(dpy);
|
||||
last = new QTreeWidgetItem(next, displayNameList);
|
||||
|
||||
QStringList vendorList;
|
||||
vendorList << i18n("Vendor String") << QLatin1String(ServerVendor(dpy));
|
||||
last = new QTreeWidgetItem(next, vendorList);
|
||||
|
||||
QStringList vendorReleaseList;
|
||||
vendorReleaseList << i18n("Vendor Release Number") << Value((int)VendorRelease(dpy));
|
||||
last = new QTreeWidgetItem(next, vendorReleaseList);
|
||||
|
||||
QStringList versionList;
|
||||
versionList << i18n("Version Number") << QString::fromLatin1("%1.%2").arg((int)ProtocolVersion(dpy)).arg((int)ProtocolRevision(dpy));
|
||||
last = new QTreeWidgetItem(next, versionList);
|
||||
|
||||
QStringList screenList;
|
||||
screenList << i18n("Available Screens");
|
||||
last = item = new QTreeWidgetItem(next, screenList);
|
||||
last->setExpanded(true);
|
||||
for (i=0; i<ScreenCount(dpy); i++) {
|
||||
item = XServer_fill_screen_info(last, item, dpy, i, (int)DefaultScreen(dpy));
|
||||
if (i==0)
|
||||
item->setExpanded(true);
|
||||
}
|
||||
|
||||
QStringList extensionList;
|
||||
extensionList << i18n("Supported Extensions");
|
||||
last = new QTreeWidgetItem(next, extensionList );
|
||||
item = last;
|
||||
|
||||
int extCount;
|
||||
char **extensions = XListExtensions(dpy, &extCount);
|
||||
for (i = 0; i < extCount; i++) {
|
||||
QStringList extensionInfoList;
|
||||
extensionInfoList << QLatin1String(extensions[i]);
|
||||
item = new QTreeWidgetItem( last, extensionInfoList );
|
||||
}
|
||||
XFreeExtensionList(extensions);
|
||||
|
||||
pmf = XListPixmapFormats(dpy, &n);
|
||||
QStringList pixmapFormatList;
|
||||
pixmapFormatList << i18n("Supported Pixmap Formats");
|
||||
last = item = new QTreeWidgetItem(next, pixmapFormatList);
|
||||
|
||||
if (pmf) {
|
||||
|
||||
for (i=0; i<n; i++) {
|
||||
QStringList pixmapList;
|
||||
pixmapList << i18n("Pixmap Format #%1", i+1) << i18n("%1 BPP, Depth: %2, Scanline padding: %3", pmf[i].bits_per_pixel, BitString(pmf[i].depth), BitString(pmf[i].scanline_pad));
|
||||
|
||||
item = new QTreeWidgetItem(last, pixmapList);
|
||||
}
|
||||
XFree((char *)pmf);
|
||||
}
|
||||
|
||||
req_size = XExtendedMaxRequestSize(dpy);
|
||||
if (!req_size)
|
||||
req_size = XMaxRequestSize(dpy);
|
||||
|
||||
QStringList requestSizeList;
|
||||
requestSizeList << i18n("Maximum Request Size") << ByteString(req_size*4);
|
||||
last = new QTreeWidgetItem(next, requestSizeList);
|
||||
|
||||
QStringList motionList;
|
||||
motionList << i18n("Motion Buffer Size") << ByteString(XDisplayMotionBufferSize(dpy));
|
||||
last = new QTreeWidgetItem(next, motionList);
|
||||
|
||||
QStringList bitmapList;
|
||||
bitmapList << i18n("Bitmap");
|
||||
last = item = new QTreeWidgetItem(next, bitmapList);
|
||||
|
||||
QStringList unitList;
|
||||
unitList << i18n("Unit") << Value(BitmapUnit(dpy));
|
||||
item = new QTreeWidgetItem(last, unitList);
|
||||
|
||||
QStringList orderList;
|
||||
orderList << i18n("Order") << Order(BitmapBitOrder(dpy));
|
||||
item = new QTreeWidgetItem(last, orderList);
|
||||
|
||||
QStringList paddingList;
|
||||
paddingList << i18n("Padding") << Value(BitmapPad(dpy));
|
||||
item = new QTreeWidgetItem(last, paddingList);
|
||||
|
||||
QStringList imageByteList;
|
||||
imageByteList << i18n("Image Byte Order") << Order(ImageByteOrder(dpy));
|
||||
last = new QTreeWidgetItem(next, imageByteList);
|
||||
|
||||
XCloseDisplay(dpy);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Helper-function to read output from an external program */
|
||||
static int GetInfo_ReadfromPipe(QTreeWidget* tree, const char *FileName, bool WithEmptyLines = true) {
|
||||
QProcess proc;
|
||||
QTreeWidgetItem* olditem= NULL;
|
||||
QString s;
|
||||
|
||||
proc.start(FileName, QIODevice::ReadOnly);
|
||||
if (!proc.waitForFinished()) {
|
||||
// Process hanged or did not start
|
||||
return 0;
|
||||
}
|
||||
|
||||
QTextStream t(&proc);
|
||||
|
||||
while (!t.atEnd()) {
|
||||
s = t.readLine();
|
||||
if (!WithEmptyLines && s.length()==0)
|
||||
continue;
|
||||
QStringList list;
|
||||
list << s;
|
||||
olditem = new QTreeWidgetItem(tree, list);
|
||||
}
|
||||
|
||||
return tree->topLevelItemCount();
|
||||
}
|
||||
|
||||
#endif /*OS_BASE_H_*/
|
|
@ -1,28 +0,0 @@
|
|||
|
||||
#include "os_current.h"
|
||||
|
||||
#include "os_base.h"
|
||||
|
||||
#ifdef __linux__
|
||||
#include "info_linux.cpp"
|
||||
#elif defined(sgi) && sgi
|
||||
#include "info_sgi.cpp"
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include "info_fbsd.cpp"
|
||||
#elif defined(__hpux)
|
||||
#include "info_hpux.cpp"
|
||||
#elif defined(__NetBSD__)
|
||||
#include "info_netbsd.cpp"
|
||||
#elif defined(__OpenBSD__)
|
||||
#include "info_openbsd.cpp"
|
||||
#elif defined(__svr4__) && defined(sun)
|
||||
#include "info_solaris.cpp"
|
||||
#elif defined(__svr4__)
|
||||
#include "info_svr4.cpp"
|
||||
#elif defined(_AIX)
|
||||
#include "info_aix.cpp"
|
||||
#elif defined(__APPLE__)
|
||||
#include "info_osx.cpp"
|
||||
#else
|
||||
#include "info_generic.cpp" /* Default for unsupported systems.... */
|
||||
#endif
|
|
@ -1,184 +0,0 @@
|
|||
#ifndef OS_CURRENT_H_
|
||||
#define OS_CURRENT_H_
|
||||
|
||||
class QTreeWidget;
|
||||
class QString;
|
||||
|
||||
/* function call-back-prototypes... */
|
||||
|
||||
bool GetInfo_CPU(QTreeWidget* tree);
|
||||
bool GetInfo_IRQ(QTreeWidget* tree);
|
||||
bool GetInfo_DMA(QTreeWidget* tree);
|
||||
bool GetInfo_PCI(QTreeWidget* tree);
|
||||
bool GetInfo_IO_Ports(QTreeWidget* tree);
|
||||
bool GetInfo_Sound(QTreeWidget* tree);
|
||||
bool GetInfo_Devices(QTreeWidget* tree);
|
||||
bool GetInfo_SCSI(QTreeWidget* tree);
|
||||
bool GetInfo_Partitions(QTreeWidget* tree);
|
||||
bool GetInfo_XServer_and_Video(QTreeWidget* tree);
|
||||
|
||||
|
||||
#ifdef __linux__
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
/* i18n("Maybe the proc-filesystem is not enabled in Linux-Kernel.") */
|
||||
#define DEFAULT_ERRORSTRING QString()
|
||||
|
||||
|
||||
#elif defined(sgi) && sgi
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(__hpux)
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING QString()
|
||||
|
||||
#elif defined(__NetBSD__)
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(__OpenBSD__)
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(__svr4__) && defined(sun)
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(__svr4__)
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(_AIX)
|
||||
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_CPU_AVAILABLE
|
||||
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
//#define INFO_IRQ_AVAILABLE
|
||||
//#define INFO_DMA_AVAILABLE
|
||||
//#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#else
|
||||
|
||||
#define INFO_CPU_AVAILABLE
|
||||
#define INFO_IRQ_AVAILABLE
|
||||
#define INFO_DMA_AVAILABLE
|
||||
#define INFO_IOPORTS_AVAILABLE
|
||||
#define INFO_SOUND_AVAILABLE
|
||||
#define INFO_DEVICES_AVAILABLE
|
||||
#define INFO_SCSI_AVAILABLE
|
||||
#define INFO_PARTITIONS_AVAILABLE
|
||||
#define INFO_XSERVER_AVAILABLE
|
||||
|
||||
#define DEFAULT_ERRORSTRING i18n("This system may not be completely supported yet.")
|
||||
|
||||
#endif
|
||||
|
||||
#endif /*OS_CURRENT_H_*/
|
|
@ -1,188 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000 Matthias Elter <elter@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 "dockcontainer.h"
|
||||
|
||||
#include <kapplication.h>
|
||||
#include <kmessagebox.h>
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
#include <kdialog.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kvbox.h>
|
||||
|
||||
#include <QLabel>
|
||||
#include <QPixmap>
|
||||
#include <QFont>
|
||||
#include <QApplication>
|
||||
|
||||
#include "global.h"
|
||||
#include "modules.h"
|
||||
#include "proxywidget.h"
|
||||
#include "aboutwidget.h"
|
||||
|
||||
#include "dockcontainer.moc"
|
||||
|
||||
ModuleTitle::ModuleTitle(QWidget *parent) :
|
||||
KTitleWidget(parent) {
|
||||
|
||||
}
|
||||
|
||||
ModuleTitle::~ModuleTitle() {
|
||||
|
||||
}
|
||||
|
||||
void ModuleTitle::showTitleFor(ConfigModule* config) {
|
||||
kDebug() << "Show title for" << endl;
|
||||
if ( !config)
|
||||
return;
|
||||
|
||||
setWhatsThis(config->comment() );
|
||||
setCommentText(config->docPath(), config->comment(), config->module()->quickHelp());
|
||||
setPixmap(config->realIcon(KIconLoader::SizeLarge));
|
||||
setText(config->moduleName());
|
||||
|
||||
kDebug() << "Show title for done" << endl;
|
||||
}
|
||||
|
||||
void ModuleTitle::setCommentText(const QString& docPath, const QString& text, const QString& quickHelp) {
|
||||
if (text.isEmpty() && docPath.isEmpty())
|
||||
setCommentBaseText();
|
||||
else if (docPath.isEmpty())
|
||||
setComment(text);
|
||||
else {
|
||||
setComment(quickHelp + i18n("<p>Click here to consult the full <a href=\"%1\">Manual</a>.</p>", "help:/" + docPath));
|
||||
}
|
||||
}
|
||||
|
||||
void ModuleTitle::setCommentBaseText() {
|
||||
setComment(i18n("<h1>KDE Info Center</h1>"
|
||||
"There is no quick help available for the active info module."
|
||||
"<br /><br />"
|
||||
"Click <a href = \"kinfocenter/index.html\">here</a> to read the general Info Center manual.") );
|
||||
}
|
||||
|
||||
DockContainer::DockContainer(AboutWidget* aboutWidget, QWidget *parent) :
|
||||
QWidget(parent) {
|
||||
|
||||
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
||||
|
||||
_moduleTitle = new ModuleTitle(this);
|
||||
mainLayout->addWidget(_moduleTitle);
|
||||
|
||||
_moduleWidgets = new QStackedWidget(this);
|
||||
mainLayout->addWidget(_moduleWidgets);
|
||||
|
||||
_busyWidget = new QLabel(i18n("<big><b>Loading...</b></big>"), this);
|
||||
_busyWidget->setAlignment(Qt::AlignCenter);
|
||||
_busyWidget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
|
||||
|
||||
_moduleWidgets->addWidget(_busyWidget);
|
||||
|
||||
_generalWidget = aboutWidget;
|
||||
_moduleWidgets->addWidget(_generalWidget);
|
||||
|
||||
showAboutWidget();
|
||||
}
|
||||
|
||||
DockContainer::~DockContainer() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
ProxyWidget* DockContainer::initializeModule(ConfigModule * module) {
|
||||
showBusyWidget();
|
||||
|
||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||
|
||||
ProxyWidget* proxy = module->module();
|
||||
|
||||
if (proxy!=NULL) {
|
||||
//If this module was not in the stack, add it.
|
||||
if ( _moduleWidgets->indexOf(proxy) == -1) {
|
||||
_moduleWidgets->addWidget(proxy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
QApplication::restoreOverrideCursor();
|
||||
|
||||
return proxy;
|
||||
}
|
||||
|
||||
bool DockContainer::dockModule(ConfigModule *module) {
|
||||
|
||||
ProxyWidget* widget = initializeModule(module);
|
||||
|
||||
if (widget==NULL) {
|
||||
kDebug() << "Failed to display module" << module->moduleName() << endl;
|
||||
showAboutWidget();
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
if (widget == _moduleWidgets->currentWidget()) {
|
||||
kDebug() << "Module already displayed" << endl;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (widget->isChanged()) {
|
||||
|
||||
int res = KMessageBox::warningYesNoCancel(this, module ? i18n("There are unsaved changes in the active module.\n"
|
||||
"Do you want to apply the changes before running "
|
||||
"the new module or discard the changes?") : i18n("There are unsaved changes in the active module.\n"
|
||||
"Do you want to apply the changes before exiting "
|
||||
"the System Settings or discard the changes?"), i18n("Unsaved Changes"), KStandardGuiItem::apply(), KStandardGuiItem::discard());
|
||||
if (res == KMessageBox::Cancel)
|
||||
return false;
|
||||
}
|
||||
|
||||
kDebug() << "Docking module..." << endl;
|
||||
|
||||
showConfigWidget(module);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void DockContainer::showAboutWidget() {
|
||||
kDebug() << "Show About Widget" << endl;
|
||||
_moduleWidgets->setCurrentWidget(_generalWidget);
|
||||
|
||||
_moduleTitle->hide();
|
||||
|
||||
}
|
||||
|
||||
void DockContainer::showBusyWidget() {
|
||||
kDebug() << "Show Busy Widget" << endl;
|
||||
_moduleWidgets->setCurrentWidget(_busyWidget);
|
||||
|
||||
_moduleTitle->hide();
|
||||
|
||||
kapp->processEvents();
|
||||
|
||||
}
|
||||
|
||||
void DockContainer::showConfigWidget(ConfigModule* module) {
|
||||
kDebug() << "Show Config Widget" << endl;
|
||||
|
||||
_moduleTitle->showTitleFor(module);
|
||||
_moduleTitle->show();
|
||||
|
||||
_moduleWidgets->setCurrentWidget(module->module());
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000 Matthias Elter <elter@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 __dockcontainer_h__
|
||||
#define __dockcontainer_h__
|
||||
|
||||
#include <QStackedWidget>
|
||||
#include <QLabel>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
#include <kvbox.h>
|
||||
#include <ktitlewidget.h>
|
||||
|
||||
class AboutWidget;
|
||||
class ConfigModule;
|
||||
class ProxyWidget;
|
||||
|
||||
class ModuleTitle : public KTitleWidget {
|
||||
public:
|
||||
ModuleTitle(QWidget *parent);
|
||||
~ModuleTitle();
|
||||
|
||||
void showTitleFor(ConfigModule *module);
|
||||
|
||||
private:
|
||||
void setCommentText(const QString& docPath, const QString& text, const QString& quickHelp);
|
||||
void setCommentBaseText();
|
||||
|
||||
};
|
||||
|
||||
class DockContainer : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DockContainer(AboutWidget* aboutWidget, QWidget *parent=NULL);
|
||||
virtual ~DockContainer();
|
||||
|
||||
bool dockModule(ConfigModule *module);
|
||||
|
||||
public slots:
|
||||
void showAboutWidget();
|
||||
|
||||
signals:
|
||||
void newModule(const QString& name);
|
||||
|
||||
private:
|
||||
void showBusyWidget();
|
||||
void showConfigWidget(ConfigModule* module);
|
||||
|
||||
ProxyWidget* initializeModule(ConfigModule* module);
|
||||
|
||||
QLabel *_busyWidget;
|
||||
|
||||
ModuleTitle* _moduleTitle;
|
||||
QStackedWidget* _moduleWidgets;
|
||||
|
||||
AboutWidget* _generalWidget;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,90 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000 Matthias Elter <elter@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 "global.h"
|
||||
|
||||
#include <kservicegroup.h>
|
||||
#include <kdebug.h>
|
||||
#include <kapplication.h>
|
||||
#include <kuser.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QByteArray>
|
||||
#include <QWidget>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/utsname.h>
|
||||
|
||||
bool KCGlobal::_root = false;
|
||||
QStringList KCGlobal::_types;
|
||||
QString KCGlobal::_uname = "";
|
||||
QString KCGlobal::_hname = "";
|
||||
QString KCGlobal::_kdeversion = "";
|
||||
QString KCGlobal::_isystem = "";
|
||||
QString KCGlobal::_irelease = "";
|
||||
QString KCGlobal::_iversion = "";
|
||||
QString KCGlobal::_imachine = "";
|
||||
QString KCGlobal::_baseGroup = "";
|
||||
|
||||
void KCGlobal::init() {
|
||||
char buf[256];
|
||||
buf[0] = '\0';
|
||||
if (!gethostname(buf, sizeof(buf)))
|
||||
buf[sizeof(buf)-1] ='\0';
|
||||
QString hostname(buf);
|
||||
setHostName(hostname);
|
||||
|
||||
KUser user;
|
||||
setUserName(user.loginName());
|
||||
setRoot(user.isSuperUser());
|
||||
|
||||
setKDEVersion(KDE::versionString());
|
||||
|
||||
struct utsname info;
|
||||
uname(&info);
|
||||
|
||||
setSystemName(info.sysname);
|
||||
setSystemRelease(info.release);
|
||||
setSystemVersion(info.version);
|
||||
setSystemMachine(info.machine);
|
||||
}
|
||||
|
||||
void KCGlobal::setType(const QByteArray& s) {
|
||||
QString string = s.toLower();
|
||||
_types = string.split( ',');
|
||||
}
|
||||
|
||||
QString KCGlobal::baseGroup() {
|
||||
if (_baseGroup.isEmpty() ) {
|
||||
KServiceGroup::Ptr group = KServiceGroup::baseGroup("info");
|
||||
if (group) {
|
||||
_baseGroup = group->relPath();
|
||||
kDebug() << "Found basegroup = " << _baseGroup;
|
||||
return _baseGroup;
|
||||
}
|
||||
// Compatibility with old behaviour, in case of missing .directory files.
|
||||
if (_baseGroup.isEmpty()) {
|
||||
kWarning() << "No K menu group with X-KDE-BaseGroup=info found ! Defaulting to Settings/Information/";
|
||||
_baseGroup = QLatin1String("Settings/Information/");
|
||||
}
|
||||
}
|
||||
return _baseGroup;
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000 Matthias Elter <elter@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 _GLOBAL_H_
|
||||
#define _GLOBAL_H_
|
||||
|
||||
#define KINFOCENTER_ICON_NAME "hwinfo"
|
||||
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
class KCGlobal {
|
||||
public:
|
||||
|
||||
static void init();
|
||||
|
||||
static bool root() {
|
||||
return _root;
|
||||
}
|
||||
static QStringList types() {
|
||||
return _types;
|
||||
}
|
||||
static QString userName() {
|
||||
return _uname;
|
||||
}
|
||||
static QString hostName() {
|
||||
return _hname;
|
||||
}
|
||||
static QString kdeVersion() {
|
||||
return _kdeversion;
|
||||
}
|
||||
static QString systemName() {
|
||||
return _isystem;
|
||||
}
|
||||
static QString systemRelease() {
|
||||
return _irelease;
|
||||
}
|
||||
static QString systemVersion() {
|
||||
return _iversion;
|
||||
}
|
||||
static QString systemMachine() {
|
||||
return _imachine;
|
||||
}
|
||||
static QString baseGroup();
|
||||
|
||||
static void setRoot(bool r) {
|
||||
_root = r;
|
||||
}
|
||||
static void setType(const QByteArray& s);
|
||||
static void setUserName(const QString& n) {
|
||||
_uname = n;
|
||||
}
|
||||
static void setHostName(const QString& n) {
|
||||
_hname = n;
|
||||
}
|
||||
static void setKDEVersion(const QString& n) {
|
||||
_kdeversion = n;
|
||||
}
|
||||
static void setSystemName(const QString& n) {
|
||||
_isystem = n;
|
||||
}
|
||||
static void setSystemRelease(const QString& n) {
|
||||
_irelease = n;
|
||||
}
|
||||
static void setSystemVersion(const QString& n) {
|
||||
_iversion = n;
|
||||
}
|
||||
static void setSystemMachine(const QString& n) {
|
||||
_imachine = n;
|
||||
}
|
||||
|
||||
private:
|
||||
static bool _root;
|
||||
static QStringList _types;
|
||||
static QString _uname, _hname, _isystem, _irelease, _iversion, _imachine, _kdeversion;
|
||||
static QString _baseGroup;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,102 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000 Matthias Elter <elter@kde.org>
|
||||
Copyright (c) 2003 Frauke Oster <frauke.oster@t-online.de>
|
||||
|
||||
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 "indexwidget.h"
|
||||
|
||||
#include <QWidget>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
|
||||
#include "moduletreeview.h"
|
||||
|
||||
#include <kdebug.h>
|
||||
#include <klocale.h>
|
||||
|
||||
#include "indexwidget.moc"
|
||||
|
||||
IndexWidget::IndexWidget(ConfigModuleList *modules, QWidget *parent) :
|
||||
QWidget(parent) {
|
||||
|
||||
QVBoxLayout* mainLayout = new QVBoxLayout();
|
||||
setLayout(mainLayout);
|
||||
|
||||
_tree=new ModuleTreeView(modules, this);
|
||||
|
||||
QHBoxLayout* searchLayout = new QHBoxLayout();
|
||||
searchLayout->setMargin(0);
|
||||
|
||||
QLabel* searchLabel = new QLabel(i18n("Filter:"), this);
|
||||
_searchLine = new ModuleWidgetSearchLine(this, _tree);
|
||||
searchLabel->setBuddy(_searchLine);
|
||||
|
||||
searchLayout->addWidget(searchLabel);
|
||||
searchLayout->addWidget(_searchLine);
|
||||
|
||||
_tree->fill();
|
||||
connectTree();
|
||||
|
||||
mainLayout->addLayout(searchLayout);
|
||||
mainLayout->addWidget(_tree);
|
||||
|
||||
kDebug() << "Index Widget initialized" << endl;
|
||||
}
|
||||
|
||||
IndexWidget::~IndexWidget() {
|
||||
}
|
||||
|
||||
void IndexWidget::reload() {
|
||||
}
|
||||
|
||||
void IndexWidget::selectModule(ConfigModule *module) {
|
||||
kDebug() << "Selecting module..." << endl;
|
||||
|
||||
ModuleTreeItem* moduleTreeItem = _tree->findMatchingItem(module);
|
||||
|
||||
disconnectTree();
|
||||
|
||||
_tree->scrollToItem(moduleTreeItem);
|
||||
moduleTreeItem->setSelected(true);
|
||||
|
||||
connectTree();
|
||||
|
||||
emit moduleActivated(module);
|
||||
}
|
||||
|
||||
void IndexWidget::selectGeneral() {
|
||||
_tree->scrollToItem(_tree->generalItem());
|
||||
|
||||
disconnectTree();
|
||||
|
||||
_tree->generalItem()->setSelected(true);
|
||||
|
||||
connectTree();
|
||||
|
||||
emit generalActivated();
|
||||
}
|
||||
|
||||
void IndexWidget::connectTree() {
|
||||
connect(_tree, SIGNAL(moduleSelected(ConfigModule*)), this, SLOT(selectModule(ConfigModule*)));
|
||||
connect(_tree, SIGNAL(generalSelected()), this, SLOT(selectGeneral()));
|
||||
}
|
||||
|
||||
void IndexWidget::disconnectTree() {
|
||||
_tree->disconnect(SIGNAL(generalSelected()));
|
||||
_tree->disconnect(SIGNAL(moduleSelected(ConfigModule*)));
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 2000 Matthias Elter <elter@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 __indexwidget_h__
|
||||
#define __indexwidget_h__
|
||||
|
||||
#include "global.h"
|
||||
|
||||
#include <QWidget>
|
||||
|
||||
|
||||
class ConfigModuleList;
|
||||
class ConfigModule;
|
||||
class ModuleTreeView;
|
||||
class ModuleWidgetSearchLine;
|
||||
|
||||
class IndexWidget : public QWidget {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
IndexWidget(ConfigModuleList *list, QWidget *parent);
|
||||
virtual ~IndexWidget();
|
||||
|
||||
public slots:
|
||||
void reload();
|
||||
|
||||
void selectGeneral();
|
||||
void selectModule(ConfigModule *);
|
||||
|
||||
signals:
|
||||
void generalActivated();
|
||||
void moduleActivated(ConfigModule *module);
|
||||
|
||||
private:
|
||||
|
||||
void connectTree();
|
||||
void disconnectTree();
|
||||
|
||||
ModuleTreeView *_tree;
|
||||
|
||||
ModuleWidgetSearchLine* _searchLine;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,32 +0,0 @@
|
|||
Info Module:
|
||||
|
||||
Original (means: insufficient) implementation:
|
||||
|
||||
Matthias Hoelzer <hoelzer@physik.uni-wuerzburg.de>
|
||||
|
||||
|
||||
Various authors contributed the code for non-Linux systems, among them:
|
||||
|
||||
David Brownlee <abs@NetBSD.org> [NetBSD]
|
||||
Jaromir Dolecek <dolecek@ics.muni.cz> [NetBSD]
|
||||
Paul Kendall <paul@orion.co.nz> [IRIX]
|
||||
Vladimir Kushnir <kushn@olinet.isf.kiev.ua> [FreeBSD]
|
||||
Aubert Pierre <paubert@laninsa.insa-lyon.fr> [HP-UX]
|
||||
Alex Zepeda <zipzippy@sonic.net> [FreeBSD]
|
||||
Sebestyen Zoltan <szoli@digo.inf.elte.hu> [FreeBSD]
|
||||
|
||||
Conversion to kcontrol applet:
|
||||
|
||||
Matthias Hoelzer <hoelzer@physik.uni-wuerzburg.de>
|
||||
|
||||
|
||||
Added more information for Linux and HP-UX (empty functions for the other systems):
|
||||
|
||||
Helge Deller <deller@gmx.de>
|
||||
(Added: pci, dma, interrupts, sound, X-server, devices, ioports, partitions, SCSI)
|
||||
|
||||
Hey! FreeBSD's got Sound, XServer, devices, partitions and SCSI info for
|
||||
FreeBSD now too, compliments of your truly.
|
||||
Alex Zepeda <zipzippy@sonic.net>
|
||||
|
||||
Have YOU seen the glove of K?
|
|
@ -1,34 +0,0 @@
|
|||
|
||||
# OS Base includes
|
||||
include(../base/CMakeLists.txt)
|
||||
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../base
|
||||
)
|
||||
|
||||
########### next target ###############
|
||||
|
||||
set(kcm_info_PART_SRCS main.cpp info.cpp ../base/os_current.cpp )
|
||||
|
||||
kde4_add_plugin(kcm_info ${kcm_info_PART_SRCS})
|
||||
|
||||
target_link_libraries(kcm_info ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY} ${X11_X11_LIB})
|
||||
|
||||
|
||||
install(TARGETS kcm_info DESTINATION ${PLUGIN_INSTALL_DIR} )
|
||||
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install(
|
||||
FILES
|
||||
dma.desktop
|
||||
interrupts.desktop
|
||||
ioports.desktop
|
||||
sound.desktop
|
||||
devices.desktop
|
||||
scsi.desktop
|
||||
xserver.desktop
|
||||
DESTINATION ${SERVICES_INSTALL_DIR}
|
||||
)
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
#! /usr/bin/env bash
|
||||
$XGETTEXT *.cpp -o $podir/kcminfo.pot
|
|
@ -1,251 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 devices
|
||||
Icon=kcmdevices
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/devices/index.html
|
||||
Categories=Qt;KDE;X-KDE-information;
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=devices
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=Devices
|
||||
Name[af]=Toestelle
|
||||
Name[ar]=الأجهزة
|
||||
Name[as]=যন্ত্ৰ
|
||||
Name[be]=Прылады
|
||||
Name[be@latin]=Pryłady
|
||||
Name[bg]=Устройства
|
||||
Name[bn]=ডিভাইস
|
||||
Name[bn_IN]=ডিভাইস
|
||||
Name[br]=Trobarzhelloù
|
||||
Name[ca]=Dispositius
|
||||
Name[ca@valencia]=Dispositius
|
||||
Name[cs]=Zařízení
|
||||
Name[csb]=Ùrządzenia
|
||||
Name[cy]=Dyfeisiau
|
||||
Name[da]=Enheder
|
||||
Name[de]=Geräte
|
||||
Name[el]=Συσκευές
|
||||
Name[en_GB]=Devices
|
||||
Name[eo]=Aparatoj
|
||||
Name[es]=Dispositivos
|
||||
Name[et]=Seadmed
|
||||
Name[eu]=Gailuak
|
||||
Name[fa]=دستگاهها
|
||||
Name[fi]=Laitteet
|
||||
Name[fr]=Périphériques
|
||||
Name[fy]=Apparaten
|
||||
Name[ga]=Gléasanna
|
||||
Name[gl]=Dispositivos
|
||||
Name[gu]=ઉપકરણો
|
||||
Name[he]=התקנים
|
||||
Name[hi]=औज़ार
|
||||
Name[hne]=उपकरन
|
||||
Name[hr]=Uređaji
|
||||
Name[hsb]=Graty
|
||||
Name[hu]=Eszközök
|
||||
Name[id]=Divais
|
||||
Name[is]=Tæki
|
||||
Name[it]=Dispositivi
|
||||
Name[ja]=デバイス
|
||||
Name[ka]=მოწყობილობები
|
||||
Name[kk]=Құрылғылар
|
||||
Name[km]=ឧបករណ៍
|
||||
Name[kn]=ಸಾಧನಗಳು
|
||||
Name[ko]=장치
|
||||
Name[ku]=Cîhaz
|
||||
Name[lt]=Įrenginiai
|
||||
Name[lv]=Ierīces
|
||||
Name[mai]=डिवाइस
|
||||
Name[mk]=Уреди
|
||||
Name[ml]=ഉപകരണങ്ങള്
|
||||
Name[mr]=साधन
|
||||
Name[ms]=Peranti
|
||||
Name[nb]=Enheter
|
||||
Name[nds]=Reedschappen
|
||||
Name[ne]=यन्त्र
|
||||
Name[nl]=Apparaten
|
||||
Name[nn]=Einingar
|
||||
Name[oc]=Periferics
|
||||
Name[or]=ଉପକରଣଗୁଡ଼ିକ
|
||||
Name[pa]=ਜੰਤਰ
|
||||
Name[pl]=Urządzenia
|
||||
Name[pt]=Dispositivos
|
||||
Name[pt_BR]=Dispositivos
|
||||
Name[ro]=Dispozitive
|
||||
Name[ru]=Устройства
|
||||
Name[se]=Ovttadagat
|
||||
Name[si]=මෙවලම්
|
||||
Name[sk]=Zariadenia
|
||||
Name[sl]=Naprave
|
||||
Name[sr]=Уређаји
|
||||
Name[sr@ijekavian]=Уређаји
|
||||
Name[sr@ijekavianlatin]=Uređaji
|
||||
Name[sr@latin]=Uređaji
|
||||
Name[sv]=Enheter
|
||||
Name[ta]=சாதனங்கள்
|
||||
Name[te]=పరికరాలు
|
||||
Name[tg]=Дастгоҳҳо
|
||||
Name[th]=อุปกรณ์
|
||||
Name[tr]=Aygıtlar
|
||||
Name[uk]=Пристрої
|
||||
Name[uz]=Uskunalar
|
||||
Name[uz@cyrillic]=Ускуналар
|
||||
Name[vi]=Thiết bị
|
||||
Name[wa]=Éndjins
|
||||
Name[xh]=Amacebo
|
||||
Name[x-test]=xxDevicesxx
|
||||
Name[zh_CN]=设备
|
||||
Name[zh_TW]=設備
|
||||
|
||||
Comment=Attached devices information
|
||||
Comment[af]=Gekoppelde toestelle informasie
|
||||
Comment[ar]=معلومات الأجهزة الموصولة
|
||||
Comment[as]=সংযুক্ত যন্ত্ৰৰ তথ্য
|
||||
Comment[be]=Звесткі пра далучаныя прылады
|
||||
Comment[be@latin]=Źviestki pra padłučanyja pryłady
|
||||
Comment[bg]=Информация за системните устройства
|
||||
Comment[bn]=সংলগ্ন ডিভাইস সংক্রান্ত তথ্য
|
||||
Comment[bn_IN]=সংযুক্ত ডিভাইস সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn an trobarzhelloù luget
|
||||
Comment[ca]=Informació dels dispositius connectats
|
||||
Comment[ca@valencia]=Informació dels dispositius connectats
|
||||
Comment[cs]=Informace o připojených zařízeních
|
||||
Comment[csb]=Wëdowiédzô ò włączonëch ùrządzeniach
|
||||
Comment[cy]=Gwybodaeth am ddyfeisiau wedi'i gysylltu
|
||||
Comment[da]=Information om tilkoblede enheder
|
||||
Comment[de]=Informationen zu angeschlossenen Geräten
|
||||
Comment[el]=Πληροφορίες για τις συνδεδεμένες συσκευές
|
||||
Comment[en_GB]=Attached devices information
|
||||
Comment[eo]=Informo pri surmetitaj disponaĵoj
|
||||
Comment[es]=Información sobre los dispositivos conectados
|
||||
Comment[et]=Info ühendatud seadmete kohta
|
||||
Comment[eu]=Uztartuta dauden gailuei buruzko informazioa
|
||||
Comment[fa]=اطلاعات دستگاههای پیوستشده
|
||||
Comment[fi]=Tietoja liitetyistä laitteista
|
||||
Comment[fr]=Informations sur les périphériques branchés
|
||||
Comment[fy]=Ynformaasje oer oansletten apparaten
|
||||
Comment[ga]=Eolas faoi ghléas ceangailte
|
||||
Comment[gl]=Información dos dispositivos conectados
|
||||
Comment[gu]=જોડેલ ઉપકરણોની માહિતી
|
||||
Comment[he]=מידע על ההתקנים המחוברים
|
||||
Comment[hi]=उपकरण जानकारी संलग्न
|
||||
Comment[hne]=उपकरन जानकारी संलग्न
|
||||
Comment[hr]=Podaci o priključenim uređajima
|
||||
Comment[hsb]=Informacija wo přizamknjenych gratach
|
||||
Comment[hu]=A csatlakoztatott eszközök jellemzői
|
||||
Comment[id]=Informasi divais tertancap
|
||||
Comment[is]=Upptalning á tækjum tölvu
|
||||
Comment[it]=Informazioni sui dispositivi connessi
|
||||
Comment[ja]=接続されているデバイスの情報
|
||||
Comment[ka]=ცნობები მიერთებულ მოწყობილობებზე
|
||||
Comment[kk]=Қосылған құрылғылар туралы
|
||||
Comment[km]=ព័ត៌មានឧបករណ៍ដែលបានភ្ជាប់
|
||||
Comment[kn]=ಜೋಡಿಸಲಾದ ಸಾಧನಗಳ ಮಾಹಿತಿ
|
||||
Comment[ko]=장착된 장치 정보
|
||||
Comment[ku]=Agahiyên cîhazên pêvek
|
||||
Comment[lt]=Prijungtų įrenginių informacija
|
||||
Comment[lv]=Pievienoto ierīču informācija
|
||||
Comment[mai]=युक्ति सूचना संलग्न
|
||||
Comment[mk]=Информации за прикачени уреди
|
||||
Comment[ml]=ഘടിപ്പിച്ചിട്ടുള്ള ഉപകരണങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങള്
|
||||
Comment[mr]=जोडलेली उपकरण माहिती
|
||||
Comment[ms]=Maklumat Peranti Terlampir
|
||||
Comment[nb]=Informasjon om tilkoblede enheter
|
||||
Comment[nds]=Informatschoon över de tokoppelten Reedschappen
|
||||
Comment[ne]=सङ्लग्न गरिएका यन्त्र सूचना
|
||||
Comment[nl]=Informatie over aangesloten apparaten
|
||||
Comment[nn]=Informasjon om tilkopla einingar
|
||||
Comment[or]=ସଂଲଗ୍ନ ଉପକରଣଗୁଡ଼ିକର ସୂଚନା
|
||||
Comment[pa]=ਅਟੈਂਚ ਹੋਏ ਜੰਤਰਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o włączonych urządzeniach
|
||||
Comment[pt]=Informações sobre os dispositivos ligados
|
||||
Comment[pt_BR]=Informações sobre dispositivos conectados
|
||||
Comment[ro]=Informații despre dispozitivele instalate
|
||||
Comment[ru]=Сведения о подключенных устройствах
|
||||
Comment[se]=Dieđuid laktašuvvon ovttadagaid birra
|
||||
Comment[si]=ඇමිණූ මෙවලම් තොරතුරු
|
||||
Comment[sk]=Informácie o pripojených zariadeniach
|
||||
Comment[sl]=Podatki o priklopljenih napravah
|
||||
Comment[sr]=Подаци о прикљученим уређајима
|
||||
Comment[sr@ijekavian]=Подаци о прикљученим уређајима
|
||||
Comment[sr@ijekavianlatin]=Podaci o priključenim uređajima
|
||||
Comment[sr@latin]=Podaci o priključenim uređajima
|
||||
Comment[sv]=Information om anslutna enheter
|
||||
Comment[ta]=சேர்க்கப்பட்ட சாதனங்கள் தகவல்
|
||||
Comment[te]=చేర్చిన పరికరాల సమాచారం
|
||||
Comment[tg]=Иттилооти дастгоҳҳои бастанд
|
||||
Comment[th]=ข้อมูลอุปกรณ์ที่ต่ออยู่
|
||||
Comment[tr]=Bağlanmış aygıtlar hakkında bilgi
|
||||
Comment[uk]=Інформація щодо приєднаних пристроїв
|
||||
Comment[uz]=Ulangan uskunalar haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Уланган ускуналар ҳақида маълумот
|
||||
Comment[vi]=Thông tin về thiết bị kèm
|
||||
Comment[wa]=Infôrmåcion so les éndjins aloyîs
|
||||
Comment[xh]=Ulwazi lwamacebo afakelweyo
|
||||
Comment[x-test]=xxAttached devices informationxx
|
||||
Comment[zh_CN]=附加的设备信息
|
||||
Comment[zh_TW]=附加的設備資訊
|
||||
|
||||
X-KDE-Keywords=dev,Devices,System Information,Information
|
||||
X-KDE-Keywords[be]=прылады,прылада,сістэмная інфармацыя,інфармацыя,dev,Devices,System Information,Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, устройства, устройство, dev, Devices, System Information, Information
|
||||
X-KDE-Keywords[br]=trobarzhell,titouroù reizhiad,titouroù
|
||||
X-KDE-Keywords[ca]=dev,dispositius,Informació del sistema,Informació
|
||||
X-KDE-Keywords[cs]=dev,Zařízení,Systémové informace,Informace
|
||||
X-KDE-Keywords[csb]=dev,systemòwé ùrządzenia,wëdowiédzô ò systemie,wëdowiédzô,infòrmacëjô
|
||||
X-KDE-Keywords[cy]=dyf,Dyfeisiau,Gwybodaeth Cysawd,Gwybodaeth
|
||||
X-KDE-Keywords[da]=dev,Enheder,Systeminformation,Information
|
||||
X-KDE-Keywords[de]=Geräte,Devices,Systeminformation,Information
|
||||
X-KDE-Keywords[el]=dev,Συσκευές,Πληροφορίες συστήματος,Πληροφορίες
|
||||
X-KDE-Keywords[eo]=aparato,dev,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=Dispositivos,Información del sistema
|
||||
X-KDE-Keywords[et]=dev,Seadmed,Süsteemi informatsioon,Informatsioon
|
||||
X-KDE-Keywords[eu]=dev,Dispositiboak,Sistemaren informazioa,informazioa
|
||||
X-KDE-Keywords[fa]=dev،دستگاهها، اطلاعات سیستم، اطلاعات
|
||||
X-KDE-Keywords[fi]=dev,Laitteet,Järjestelmätiedot,Tiedot
|
||||
X-KDE-Keywords[fr]=dev,périphériques,information,informations système
|
||||
X-KDE-Keywords[fy]=dev,devices,systeemynformaasje,ynformaasje,apparaten,apparaatbehear
|
||||
X-KDE-Keywords[ga]=dev,Gléasanna,Eolas faoin Chóras,Eolas
|
||||
X-KDE-Keywords[gl]=dev,Dispositivo,Información do Sistema,Información
|
||||
X-KDE-Keywords[he]=התקנים,מידע מערכת,מידע,dev,Devices,System Information,Information
|
||||
X-KDE-Keywords[hr]=dev,Devices,System Information,Information,uređaji,uređaj,sustav,podaci o sustavu,podaci
|
||||
X-KDE-Keywords[hu]=dev,eszközök,rendszerinformáci,információ
|
||||
X-KDE-Keywords[is]=dev,tæki,jaðartæki,upplýsingar,kerfi
|
||||
X-KDE-Keywords[it]=dev,dispositivi,periferiche,informazioni sul sistema,informazioni
|
||||
X-KDE-Keywords[ja]=dev,デバイスシステム,システムの情報,情報
|
||||
X-KDE-Keywords[km]=dev ឧបករណ៍ ព័ត៌មានប្រព័ន្ធ ព័ត៌មាន
|
||||
X-KDE-Keywords[ko]=장치,시스템 정보,정보
|
||||
X-KDE-Keywords[lt]=dev,Įrenginiai,Sistemos Informacija,Informacija
|
||||
X-KDE-Keywords[lv]=iek,Iekārtas,Sistēmas Informācija,Informācija
|
||||
X-KDE-Keywords[mk]=dev,Devices,System Information,Information,Уреди,Информации за системот,Информација
|
||||
X-KDE-Keywords[nb]=dev,enheter,systeminformasjon,Informasjon
|
||||
X-KDE-Keywords[nds]=dev,Reedschappen,Systeeminformatschoon,Informatschoon
|
||||
X-KDE-Keywords[ne]=डेभ, यन्त्र, प्रणाली सूचना, सूचना
|
||||
X-KDE-Keywords[nl]=dev,devices,systeeminformatie,informatie,apparaten,apparaatbeheer
|
||||
X-KDE-Keywords[nn]=dev,eining,einingar,systeminformasjon,informasjon
|
||||
X-KDE-Keywords[pa]=dev,ਜੰਤਰ,ਸਿਸਟਮ ਜਾਣਕਾਰੀ
|
||||
X-KDE-Keywords[pl]=dev,Urządzenia systemowe,informacja o systemie,Informacja
|
||||
X-KDE-Keywords[pt]=dev,dispositivos,informações de sistema,informação
|
||||
X-KDE-Keywords[pt_BR]=dev,Dispositivos,Informações de sistema,Informações,Informação
|
||||
X-KDE-Keywords[ro]=dev,dispozitive,informaţii sistem,informaţii
|
||||
X-KDE-Keywords[se]=dev,ovttadat,ovttadagat,vuogádatdiehtu,diehtu
|
||||
X-KDE-Keywords[sl]=dev,naprave,informacije o sistemu,informacije
|
||||
X-KDE-Keywords[sr]=dev,Devices,System Information,Information,уређаји,системске информације,информације,подаци
|
||||
X-KDE-Keywords[sr@latin]=dev,Devices,System Information,Information,uređaji,sistemske informacije,informacije,podaci
|
||||
X-KDE-Keywords[sv]=enhet,Enheter,Systeminformation,Information
|
||||
X-KDE-Keywords[ta]=dev,சாதனங்கள், கணினித் தகவல், தகவல்
|
||||
X-KDE-Keywords[tg]=dev,Дастгоҳҳо,Иттилооти система,Иттилоот
|
||||
X-KDE-Keywords[th]=dev,อุปกรณ์,ข้อมูลระบบ,ข้อมูล
|
||||
X-KDE-Keywords[tr]=dev,Aygıtlar,Sistem Hakkında Bilgi, Bilgi
|
||||
X-KDE-Keywords[uk]=пристрої,інформація,dev,devices,system-information,information
|
||||
X-KDE-Keywords[uz]=dev,Ускуналар,Маълумот,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=dev,Thiết bị,Thông tin Hệ thống,Thông tin
|
||||
X-KDE-Keywords[x-test]=xxdev,Devices,System Information,Informationxx
|
||||
X-KDE-Keywords[xh]=dev,Amacebo,Ulwazi lwendlela,Ulwazi
|
||||
X-KDE-Keywords[zh_CN]=dev,Devices,System Information,Information,设备,系统信息,信息
|
||||
X-KDE-Keywords[zh_TW]=dev,Devices,System Information,Information,設備,系統資訊,資訊
|
||||
|
|
@ -1,252 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 dma
|
||||
Icon=kcmmemory
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/dma/index.html
|
||||
Categories=Qt;KDE;X-KDE-information;
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=dma
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=DMA-Channels
|
||||
Name[af]=Dma-kanale
|
||||
Name[ar]=DMA قنوات
|
||||
Name[as]=DMA-Channels
|
||||
Name[be]=Каналы DMA
|
||||
Name[be@latin]=Kanały DMA
|
||||
Name[bg]=Канали DMA
|
||||
Name[bn]=ডি.এম.এ-চ্যানেল
|
||||
Name[bn_IN]=DMA-চ্যানেল
|
||||
Name[br]=Kanolioù DMA
|
||||
Name[ca]=Canals DMA
|
||||
Name[ca@valencia]=Canals DMA
|
||||
Name[cs]=DMA kanály
|
||||
Name[csb]=Kanałë DMA
|
||||
Name[cy]=Sianeli DMA
|
||||
Name[da]=DMA-kanaler
|
||||
Name[de]=DMA-Kanäle
|
||||
Name[el]=Κανάλια DMA
|
||||
Name[en_GB]=DMA-Channels
|
||||
Name[eo]=DMA-kanaloj
|
||||
Name[es]=Canales DMA
|
||||
Name[et]=DMA kanalid
|
||||
Name[eu]=DMA-Kanalak
|
||||
Name[fa]=مجراهای دستیابی مستقیم به حافظه
|
||||
Name[fi]=DMA-kanavat
|
||||
Name[fr]=Canaux DMA
|
||||
Name[fy]=DMA-kanalen
|
||||
Name[ga]=Cainéil-DMA
|
||||
Name[gl]=Canles DMA
|
||||
Name[gu]=DMA-ચેનલો
|
||||
Name[he]=גישה ישירה לזיכרון
|
||||
Name[hi]=डीएमए-चैनल्स
|
||||
Name[hne]=डीएमए-चैनल्स
|
||||
Name[hr]=DMA kanali
|
||||
Name[hsb]=DMA-kanale
|
||||
Name[hu]=DMA-csatornák
|
||||
Name[id]=DMA-Channels
|
||||
Name[is]=DMA-brautir
|
||||
Name[it]=Canali DMA
|
||||
Name[ja]=DMA チャンネル
|
||||
Name[ka]=DMA არხები
|
||||
Name[kk]=DMA-арналар
|
||||
Name[km]=ឆានែល DMA
|
||||
Name[kn]=ಡಿಎಮ್ಎ-ಕಾಲುವೆಗಳು (ಚಾನಲ್)
|
||||
Name[ko]=DMA 채널
|
||||
Name[ku]=Kanalên DMA
|
||||
Name[lt]=DMA-Kanalai
|
||||
Name[lv]=DMA-kanāli
|
||||
Name[mai]=डीएमए-चैनल्स
|
||||
Name[mk]=DMA-канали
|
||||
Name[ml]=ഡിഎംഎ-ചാനലുകള്
|
||||
Name[mr]=DMA-मार्ग
|
||||
Name[ms]=Saluran DMA
|
||||
Name[nb]=DMA-kanaler
|
||||
Name[nds]=DMA-Kanaals
|
||||
Name[ne]=डीएमए-च्यानल
|
||||
Name[nl]=DMA-kanalen
|
||||
Name[nn]=DMA-kanalar
|
||||
Name[or]=DMA-ଚ୍ୟାନେଲଗୁଡ଼ିକ
|
||||
Name[pa]=DMA-ਚੈਨਲ
|
||||
Name[pl]=Kanały DMA
|
||||
Name[pt]=Canais de DMA
|
||||
Name[pt_BR]=Canais DMA
|
||||
Name[ro]=Canale DMA
|
||||
Name[ru]=Каналы DMA
|
||||
Name[se]=DMA-kanálat
|
||||
Name[si]=DMA-නාලිකා
|
||||
Name[sk]=DMA kanály
|
||||
Name[sl]=Kanali DMA
|
||||
Name[sr]=ДМА канали
|
||||
Name[sr@ijekavian]=ДМА канали
|
||||
Name[sr@ijekavianlatin]=DMA kanali
|
||||
Name[sr@latin]=DMA kanali
|
||||
Name[sv]=DMA-kanaler
|
||||
Name[ta]=DMA-வழிமுறைகள்
|
||||
Name[te]=డిఎంఏ-చానెళ్ళు
|
||||
Name[tg]=DMA-Channels
|
||||
Name[th]=ช่อง DMA
|
||||
Name[tr]=DMA Kanalları
|
||||
Name[uk]=Канали DMA
|
||||
Name[uz]=DMA kanallari
|
||||
Name[uz@cyrillic]=DMA каналлари
|
||||
Name[vi]=Kênh DMA
|
||||
Name[wa]=Canås DMA
|
||||
Name[xh]=DMA-Imijelo
|
||||
Name[x-test]=xxDMA-Channelsxx
|
||||
Name[zh_CN]=DMA 通道
|
||||
Name[zh_TW]=DMA 通道
|
||||
|
||||
Comment=DMA information
|
||||
Comment[af]=Dma informasie
|
||||
Comment[ar]=معلومات DMA
|
||||
Comment[as]=DMA তথ্য
|
||||
Comment[be]=Звесткі пра DMA
|
||||
Comment[be@latin]=Źviestki pra DMA
|
||||
Comment[bg]=Информация за каналите DMA
|
||||
Comment[bn]=ডি.এম.এ. সংক্রান্ত তথ্য
|
||||
Comment[bn_IN]=DMA সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn an DMA
|
||||
Comment[ca]=Informació de la DMA
|
||||
Comment[ca@valencia]=Informació de la DMA
|
||||
Comment[cs]=Informace o DMA
|
||||
Comment[csb]=Wëdowiédzô ò DMA
|
||||
Comment[cy]=Gwybodaeth DMA
|
||||
Comment[da]=DMA-information
|
||||
Comment[de]=Informationen zu DMA
|
||||
Comment[el]=Πληροφορίες για τα DMA
|
||||
Comment[en_GB]=DMA information
|
||||
Comment[eo]=DMA-informo
|
||||
Comment[es]=Información sobre DMA
|
||||
Comment[et]=DMA-kanalite info
|
||||
Comment[eu]=DMAri buruzko informazioa
|
||||
Comment[fa]=اطلاعات دسترسی مستقیم به حافظه
|
||||
Comment[fi]=DMA-tietoja
|
||||
Comment[fr]=Informations DMA
|
||||
Comment[fy]=DMA-ynformatie
|
||||
Comment[ga]=Eolas faoi DMA
|
||||
Comment[gl]=Información de DMA
|
||||
Comment[gu]=DMA માહિતી
|
||||
Comment[he]=מידע על ערוצי הגישה הישירה לזיכרון
|
||||
Comment[hi]=डीएमए जानकारी
|
||||
Comment[hne]=डीएमए जानकारी
|
||||
Comment[hr]=DMA podaci
|
||||
Comment[hsb]=DMA-nformacija
|
||||
Comment[hu]=DMA-információk
|
||||
Comment[id]=Informasi DMA
|
||||
Comment[is]=Upplýsingar um DMA-brautir
|
||||
Comment[it]=Informazioni sul DMA
|
||||
Comment[ja]=DMA の情報
|
||||
Comment[ka]=ინფორმაცია DMA–ს შესახებ
|
||||
Comment[kk]=DMA мәліметі
|
||||
Comment[km]=ព័ត៌មាន DMA
|
||||
Comment[kn]=ಡಿಎಮ್ಎ ಮಾಹಿತಿ
|
||||
Comment[ko]=DMA 정보
|
||||
Comment[ku]=Agahiyên DMA
|
||||
Comment[lt]=DMA informacija
|
||||
Comment[lv]=DMA informācija
|
||||
Comment[mai]=डीएमए सूचना
|
||||
Comment[mk]=Информации за DMA
|
||||
Comment[ml]=ഡിഎംഎ വിവരം
|
||||
Comment[mr]=DMA माहिती
|
||||
Comment[ms]=Maklumat DMA
|
||||
Comment[nb]=DMA-informasjon
|
||||
Comment[nds]=Informatschoon över DMA
|
||||
Comment[ne]=डीएमए सूचना
|
||||
Comment[nl]=DMA-informatie
|
||||
Comment[nn]=DMA-informasjon
|
||||
Comment[or]=DMA ସୂଚନା
|
||||
Comment[pa]=DMA ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o DMA
|
||||
Comment[pt]=Informação do DMA
|
||||
Comment[pt_BR]=Informações de DMA
|
||||
Comment[ro]=Informații despre canalele DMA
|
||||
Comment[ru]=Сведения о DMA
|
||||
Comment[se]=DMA-diehtu
|
||||
Comment[si]=DMA තොරතුරු
|
||||
Comment[sk]=Informácie o DMA
|
||||
Comment[sl]=Podatki o neposrednem dostopu do pomnilnika (DMA)
|
||||
Comment[sr]=Подаци о ДМА каналима
|
||||
Comment[sr@ijekavian]=Подаци о ДМА каналима
|
||||
Comment[sr@ijekavianlatin]=Podaci o DMA kanalima
|
||||
Comment[sr@latin]=Podaci o DMA kanalima
|
||||
Comment[sv]=DMA-information
|
||||
Comment[ta]=DMA தகவல்
|
||||
Comment[te]=డిఎంఏ సమాచారం
|
||||
Comment[tg]=Иттилооти DMA
|
||||
Comment[th]=ข้อมูล DMA
|
||||
Comment[tr]=DMA hakkında bilgi
|
||||
Comment[uk]=Інформація щодо DMA
|
||||
Comment[uz]=DMA haqida maʼlumot
|
||||
Comment[uz@cyrillic]=DMA ҳақида маълумот
|
||||
Comment[vi]=Thông tin DMA
|
||||
Comment[wa]=Infôrmåcion so les canås DMA
|
||||
Comment[xh]=DMA ulwazi
|
||||
Comment[x-test]=xxDMA informationxx
|
||||
Comment[zh_CN]=DMA 信息
|
||||
Comment[zh_TW]=DMA 資訊
|
||||
|
||||
X-KDE-Keywords=dma,DMA-Channels,System Information
|
||||
X-KDE-Keywords[af]=dma,DMA-Channels,System Informasie
|
||||
X-KDE-Keywords[be]=каналы DMA,сістэмная інфармацыя,dma,DMA-Channels,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, канали, канал, dma, DMA-Channels, System Information
|
||||
X-KDE-Keywords[br]=dma,kanolioù DMA,titoutoù reizhoad
|
||||
X-KDE-Keywords[ca]=dma,Canals DMA,informació del sistema
|
||||
X-KDE-Keywords[cs]=dma,DMA kanály,Informace o systému
|
||||
X-KDE-Keywords[csb]=dma,kanałë DMA,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=dma,Sianeli DMA,Gwybodaeth Cysawd
|
||||
X-KDE-Keywords[da]=dma,DMA-kanaler,Systeminformation
|
||||
X-KDE-Keywords[de]=DMA,DMA-Kanäle,Systeminformation,Information
|
||||
X-KDE-Keywords[el]=dma,Κανάλια DMA,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=DMA,kanaloj,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=DMA,Canales DMA,Información del sistema
|
||||
X-KDE-Keywords[et]=dma,DMA-kanalid,süsteemi informatsioon
|
||||
X-KDE-Keywords[eu]=dma,DMA-Kanalak,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=dma ،مجراهای دستیابی مستقیم به حافظه، اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=dma,DMA-kanavat,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=dma,canaux DMA,informations système
|
||||
X-KDE-Keywords[fy]=dma,DMA-channels,systeemynformaasje,DMA-kanalen
|
||||
X-KDE-Keywords[ga]=dma,Cainéil-DMA,Eolas faoin Chóras
|
||||
X-KDE-Keywords[gl]=dma,Canles de DMA,Canales DMA,Información do Sistema
|
||||
X-KDE-Keywords[he]=ערוצי גישה ישירה לזיכרון,מידע מערכת,DMA,DMA-Channels,System Information
|
||||
X-KDE-Keywords[hr]=dma,DMA-Channels,System Information,DMA kanali,podaci o sustavu
|
||||
X-KDE-Keywords[hu]=DMA,DMA-csatornák,DMA-csatorna,rendszerinformáció
|
||||
X-KDE-Keywords[is]=DMA-brautir,DMA-rásir
|
||||
X-KDE-Keywords[it]=DMA,canali DMA,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=dma,DMA-チャンネル,システムの情報
|
||||
X-KDE-Keywords[ka]=dma,DMA-არხები,ინფორმაცია სისტემის შესახებ
|
||||
X-KDE-Keywords[km]=dma ឆានែល DMA ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=dma,DMA-채널,채널,시스템 정보
|
||||
X-KDE-Keywords[lt]=dma,DMA-Kanalai,Sistemos Informacija
|
||||
X-KDE-Keywords[lv]=dma,DMA-Kanāli,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=dma,DMA-Channels,System Information,DMA канали,канали,Информации за системот
|
||||
X-KDE-Keywords[nb]=dma,DMA-kanaler,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=dms,DMA-Kanaals,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=dma, DMA-च्यानल, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=dma,DMA-channels,systeeminformatie,DMA-kanalen
|
||||
X-KDE-Keywords[nn]=dma,DMA-kanalar,systeminformasjon
|
||||
X-KDE-Keywords[pa]=dma,DMA-Channels,ਸਿਸਟਮ ਜਾਣਕਾਰੀ
|
||||
X-KDE-Keywords[pl]=dma,kanały DMA,informacja o systemie
|
||||
X-KDE-Keywords[pt]=dma,canais dma,informações de sistema
|
||||
X-KDE-Keywords[pt_BR]=DMA,canais DMA,canal DMA,informações de sistema
|
||||
X-KDE-Keywords[ro]=dma,canale DMA,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=dma,DMA-kanálat,vuogádatdiehtu
|
||||
X-KDE-Keywords[sl]=dma,kanali DMA,informacije o sistemu
|
||||
X-KDE-Keywords[sr]=dma,DMA-Channels,System Information,ДМА,канали,системске информације,системски подаци
|
||||
X-KDE-Keywords[sr@latin]=dma,DMA-Channels,System Information,DMA,kanali,sistemske informacije,sistemski podaci
|
||||
X-KDE-Keywords[sv]=dma,DMA-kanaler,Systeminformation
|
||||
X-KDE-Keywords[ta]=dma,DMA-வழிமுறைகள்,அமைப்பு தகவல்
|
||||
X-KDE-Keywords[tg]=dma,Каналҳои-DMA,Иттилооти система
|
||||
X-KDE-Keywords[th]=dma,ช่อง DMA,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=dma,DMA-Kanalları,Sistem Hakkında Bilgi
|
||||
X-KDE-Keywords[uk]=dma,канал ПДП, інформація,system-information,information
|
||||
X-KDE-Keywords[uz]=dma,DMA каналлари,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=dma,Kênh DMA,Thông tin Hệ thống
|
||||
X-KDE-Keywords[x-test]=xxdma,DMA-Channels,System Informationxx
|
||||
X-KDE-Keywords[xh]=dma,DMA-Imijelo,Ulwazi Lwendlela yokusebenza
|
||||
X-KDE-Keywords[zh_CN]=dma,DMA-Channels,System Information,DMA 通道,系统信息
|
||||
X-KDE-Keywords[zh_TW]=dma,DMA-Channels,System Information,DMA通道,系統資訊
|
||||
|
|
@ -1,104 +0,0 @@
|
|||
/*
|
||||
Main Widget for showing system-dependent information.
|
||||
(But all functions in THIS FILE should be system independent !)
|
||||
|
||||
(C) 1998-2003 by Helge Deller <deller@kde.org>
|
||||
|
||||
*/
|
||||
|
||||
#include "info.h"
|
||||
|
||||
#include <QLayout>
|
||||
#include <QProcess>
|
||||
#include <QLabel>
|
||||
#include <QHBoxLayout>
|
||||
#include <QTextStream>
|
||||
#include <QHeaderView>
|
||||
|
||||
#include <kglobalsettings.h>
|
||||
#include <kiconloader.h>
|
||||
#include <kdialog.h>
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
KInfoListWidget::KInfoListWidget(const KComponentData &inst, const QString &_title, QWidget *parent, bool _getlistbox(QTreeWidget *tree) ) :
|
||||
KCModule(inst, parent), title(_title) {
|
||||
KAboutData *about = new KAboutData("kcminfo", 0,
|
||||
ki18n("KDE Panel System Information Control Module"),
|
||||
0, KLocalizedString(), KAboutData::License_GPL,
|
||||
ki18n( "(c) 2008 Nicolas Ternisien\n"
|
||||
"(c) 1998 - 2002 Helge Deller"));
|
||||
|
||||
about->addAuthor(ki18n("Nicolas Ternisien"), KLocalizedString(), "nicolas.ternisien@gmail.com");
|
||||
about->addAuthor(ki18n("Helge Deller"), KLocalizedString(), "deller@kde.org");
|
||||
setAboutData(about);
|
||||
|
||||
kDebug() << "Constructing a KInfoListWidget..." << endl;
|
||||
|
||||
//setButtons(KCModule::Help);
|
||||
getlistbox = _getlistbox;
|
||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||
layout->setSpacing(KDialog::spacingHint());
|
||||
layout->setMargin(0);
|
||||
widgetStack = new QStackedWidget(this);
|
||||
layout->addWidget(widgetStack);
|
||||
|
||||
tree = new QTreeWidget(widgetStack);
|
||||
widgetStack->addWidget(tree);
|
||||
tree->setMinimumSize(200, 120);
|
||||
tree->setFont(KGlobalSettings::generalFont()); /* default font */
|
||||
tree->setSortingEnabled(true);
|
||||
tree->setRootIsDecorated(false);
|
||||
tree->header()->setSortIndicatorShown(true);
|
||||
tree->setWhatsThis(i18n("This list displays system information on the selected category.") );
|
||||
|
||||
noInfoText = new QLabel(widgetStack);
|
||||
widgetStack->addWidget(noInfoText);
|
||||
noInfoText->setAlignment(Qt::AlignCenter);
|
||||
noInfoText->setWordWrap( true);
|
||||
widgetStack->setCurrentWidget(noInfoText);
|
||||
|
||||
}
|
||||
|
||||
void KInfoListWidget::load() {
|
||||
kDebug() << "Loading KInfoListWidget..." << endl;
|
||||
|
||||
//TODO Remove tree content before clear it
|
||||
tree->clear();
|
||||
|
||||
errorString = i18nc("%1 is one of the modules of the kinfocenter, cpu info, os info, etc", "No information available about %1.", title) + QLatin1String("\n\n") + DEFAULT_ERRORSTRING;
|
||||
|
||||
/* No Sorting per default */
|
||||
tree->setSortingEnabled(false);
|
||||
|
||||
bool ok = false;
|
||||
/* retrieve the information */
|
||||
if (getlistbox) {
|
||||
ok = (*getlistbox)(tree);
|
||||
}
|
||||
|
||||
/* set default title */
|
||||
if (tree->headerItem()->columnCount()<=1) {
|
||||
QStringList headers;
|
||||
headers << title;
|
||||
tree->setHeaderLabels(headers);
|
||||
}
|
||||
|
||||
if (ok) {
|
||||
widgetStack->setCurrentWidget(tree);
|
||||
} else {
|
||||
noInfoText->setText(errorString);
|
||||
widgetStack->setCurrentWidget(noInfoText);
|
||||
}
|
||||
|
||||
tree->resizeColumnToContents(0);
|
||||
|
||||
emit changed(false);
|
||||
}
|
||||
|
||||
QString KInfoListWidget::quickHelp() const {
|
||||
return i18n("All the information modules return information about a certain"
|
||||
" aspect of your computer hardware or your operating system.");
|
||||
}
|
||||
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
#ifndef _INFO_H_
|
||||
#define _INFO_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include <QStackedWidget>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QTimer>
|
||||
#include <QTreeWidget>
|
||||
#include <QFile>
|
||||
#include <QEvent>
|
||||
|
||||
#include <kcmodule.h>
|
||||
#include <kaboutdata.h>
|
||||
|
||||
#include "os_current.h"
|
||||
|
||||
class KInfoListWidget : public KCModule
|
||||
{
|
||||
public:
|
||||
KInfoListWidget(const KComponentData &inst,const QString &_title, QWidget *parent, bool _getlistbox (QTreeWidget*) = NULL);
|
||||
|
||||
virtual void load();
|
||||
virtual QString quickHelp() const;
|
||||
|
||||
private:
|
||||
QTreeWidget* tree;
|
||||
bool (*getlistbox) (QTreeWidget*);
|
||||
QString title;
|
||||
|
||||
QLabel *noInfoText;
|
||||
QString errorString;
|
||||
QStackedWidget *widgetStack;
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,252 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 interrupts
|
||||
Icon=kcmmemory
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/interrupts/index.html
|
||||
Categories=Qt;KDE;X-KDE-information;
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=irq
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=Interrupts
|
||||
Name[af]=Interrupts
|
||||
Name[ar]=الانقطاعات
|
||||
Name[as]=Interrupts
|
||||
Name[be]=Перапыненні
|
||||
Name[be@latin]=Pierarvańni
|
||||
Name[bg]=Прекъсвания
|
||||
Name[bn]=ইনটরাপ্ট
|
||||
Name[bn_IN]=ইন্টারাপ্ট
|
||||
Name[br]=Spanoù
|
||||
Name[ca]=Interrupcions
|
||||
Name[ca@valencia]=Interrupcions
|
||||
Name[cs]=Přerušení
|
||||
Name[csb]=Przerwania
|
||||
Name[cy]=Ymyriadau
|
||||
Name[da]=Interrupts
|
||||
Name[de]=Interrupts
|
||||
Name[el]=Διακοπές
|
||||
Name[en_GB]=Interrupts
|
||||
Name[eo]=Interrompoj
|
||||
Name[es]=Interrupciones
|
||||
Name[et]=Katkestused
|
||||
Name[eu]=Etenaldiak
|
||||
Name[fa]=وقفهها
|
||||
Name[fi]=Keskeytykset
|
||||
Name[fr]=Interruptions
|
||||
Name[fy]=Underbrekkings
|
||||
Name[ga]=Idirbhristeacha
|
||||
Name[gl]=Interrupcións
|
||||
Name[gu]=ઇન્ટર્પસ
|
||||
Name[he]=פסיקה
|
||||
Name[hi]=इंटरप्ट्स
|
||||
Name[hne]=इंटरप्ट्स
|
||||
Name[hr]=Presretanja
|
||||
Name[hsb]=Interrupty
|
||||
Name[hu]=Megszakítások
|
||||
Name[id]=Interupsi
|
||||
Name[is]=Ígrip
|
||||
Name[it]=Interrupt
|
||||
Name[ja]=割り込み
|
||||
Name[ka]=წყვიტავს
|
||||
Name[kk]=Үзілімдер
|
||||
Name[km]=ផ្អាក
|
||||
Name[kn]=ಅಂತರಾಯಗಳು (ಇಂಟರಪ್ಟ್)
|
||||
Name[ko]=인터럽트
|
||||
Name[ku]=Qutkirin
|
||||
Name[lt]=Pertrauktys
|
||||
Name[lv]=Pārtraukumi
|
||||
Name[mai]=इंटरप्ट्स
|
||||
Name[mk]=Прекини
|
||||
Name[ml]=ഇന്ററപ്റ്റുകള്
|
||||
Name[mr]=इंटरप्ट्स
|
||||
Name[ms]=Sampukan
|
||||
Name[nb]=Avbruddslinjer
|
||||
Name[nds]=Interrupts
|
||||
Name[ne]=रोकावट
|
||||
Name[nl]=Interrupts
|
||||
Name[nn]=Avbrot
|
||||
Name[or]=ବ୍ୟାହାତ
|
||||
Name[pa]=ਇੰਟਰਰੱਪਟ
|
||||
Name[pl]=Przerwania
|
||||
Name[pt]=Interrupções
|
||||
Name[pt_BR]=Interrupções
|
||||
Name[ro]=Întreruperi
|
||||
Name[ru]=Прерывания
|
||||
Name[se]=Gaskkaldumit
|
||||
Name[si]=අතුරුබිඳුම්
|
||||
Name[sk]=Prerušenia
|
||||
Name[sl]=Prekinitve
|
||||
Name[sr]=Прекиди
|
||||
Name[sr@ijekavian]=Прекиди
|
||||
Name[sr@ijekavianlatin]=Prekidi
|
||||
Name[sr@latin]=Prekidi
|
||||
Name[sv]=Avbrott
|
||||
Name[ta]=குறுக்கீடுகள்
|
||||
Name[te]=ఇంటెరప్టులు
|
||||
Name[tg]=Interrupts
|
||||
Name[th]=อินเทอร์รัพต์
|
||||
Name[tr]=Kesmeler
|
||||
Name[uk]=Переривання
|
||||
Name[uz]=Toʻxtalishlar
|
||||
Name[uz@cyrillic]=Тўхталишлар
|
||||
Name[vi]=Gián đoạn
|
||||
Name[wa]=Boutoes
|
||||
Name[xh]=Iziphazamiso
|
||||
Name[x-test]=xxInterruptsxx
|
||||
Name[zh_CN]=中断
|
||||
Name[zh_TW]=中斷
|
||||
|
||||
Comment=Interrupt information
|
||||
Comment[af]=Interrupt informasie
|
||||
Comment[ar]=معلومات الانقطاع
|
||||
Comment[as]=Interrupt তথ্য
|
||||
Comment[be]=Звесткі пра перапыненні
|
||||
Comment[be@latin]=Źviestki ab pierarvańniach
|
||||
Comment[bg]=Информация за прекъсванията в системата
|
||||
Comment[bn]=ইনটরাপ্ট তথ্য
|
||||
Comment[bn_IN]=ইন্টারাপ্ট সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar spanoù
|
||||
Comment[ca]=Informació de les interrupcions
|
||||
Comment[ca@valencia]=Informació de les interrupcions
|
||||
Comment[cs]=Informace o přerušeních
|
||||
Comment[csb]=Wëdowiédzô ò przerwaniach
|
||||
Comment[cy]=Gwybodaeth Ymyriadau
|
||||
Comment[da]=Interrupt-information
|
||||
Comment[de]=Informationen zu Interrupts
|
||||
Comment[el]=Πληροφορίες για τις διακοπές
|
||||
Comment[en_GB]=Interrupt information
|
||||
Comment[eo]=Informo pri interrompoj
|
||||
Comment[es]=Información sobre las interrupciones
|
||||
Comment[et]=Katkestuste info
|
||||
Comment[eu]=Etenaldiei buruzko informazioa
|
||||
Comment[fa]=اطلاعات وقفه
|
||||
Comment[fi]=Keskeytystietoja
|
||||
Comment[fr]=Informations sur les interruptions
|
||||
Comment[fy]=Underbrekking ynformaasje
|
||||
Comment[ga]=Eolas faoi idirbhristeacha
|
||||
Comment[gl]=Información das interrupcións
|
||||
Comment[gu]=ઇન્ટર્પ માહિતી
|
||||
Comment[he]=מידע על בקשת הפסיקה
|
||||
Comment[hi]=इंटरप्ट जानकारी
|
||||
Comment[hne]=इंटरप्ट जानकारी
|
||||
Comment[hr]=Podaci o presretanjima
|
||||
Comment[hsb]=Informacija wo interruptach
|
||||
Comment[hu]=A megszakítások jellemzői
|
||||
Comment[id]=Informasi Interupsi
|
||||
Comment[is]=Upplýsingar um ígrip (IRQ)
|
||||
Comment[it]=Informazioni sugli interrupt
|
||||
Comment[ja]=割り込みの情報
|
||||
Comment[ka]=ინფორმაცია შეწყვეტყის შესახებ
|
||||
Comment[kk]=Үзілім мәліметі
|
||||
Comment[km]=ព័ត៌មានផ្អាក
|
||||
Comment[kn]=ಅಂತರಾಯಗಳ (ಇಂಟರಪ್ಟ್) ಮಾಹಿತಿ
|
||||
Comment[ko]=인터럽트 정보
|
||||
Comment[ku]=Agahiyên Qutkirinê
|
||||
Comment[lt]=Pertraukčių informacija
|
||||
Comment[lv]=Pārtraukumu informācija
|
||||
Comment[mai]=इंटरप्ट सूचना
|
||||
Comment[mk]=Информации за прекините
|
||||
Comment[ml]=ഇന്ററപ്റ്റുകളെക്കുറിച്ചുള്ള വിവരങ്ങള്
|
||||
Comment[mr]=इंटरप्ट माहिती
|
||||
Comment[ms]=Maklumat Sampukan
|
||||
Comment[nb]=Avbruddslinjeinformasjon
|
||||
Comment[nds]=Interruptinformatschoon
|
||||
Comment[ne]=रोकावट सूचना
|
||||
Comment[nl]=Interrupt-informatie
|
||||
Comment[nn]=Avbrotsinformasjon
|
||||
Comment[or]=ବ୍ୟାହାତ ସୂଚନା
|
||||
Comment[pa]=ਇੰਟਰਰੱਪਟ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o przerwaniach
|
||||
Comment[pt]=Informação das interrupções
|
||||
Comment[pt_BR]=Informações sobre as interrupções
|
||||
Comment[ro]=Informații despre întreruperi
|
||||
Comment[ru]=Сведения о прерываниях
|
||||
Comment[se]=Dieđut gaskkaldumiid birra
|
||||
Comment[si]=අතුරුබිඳුම් තොරතුරු
|
||||
Comment[sk]=Informácie o prerušeniach
|
||||
Comment[sl]=Podatki o prekinitvah
|
||||
Comment[sr]=Подаци о прекидима
|
||||
Comment[sr@ijekavian]=Подаци о прекидима
|
||||
Comment[sr@ijekavianlatin]=Podaci o prekidima
|
||||
Comment[sr@latin]=Podaci o prekidima
|
||||
Comment[sv]=Avbrottsinformation
|
||||
Comment[ta]=குறுக்கீட்டுத தகவல்
|
||||
Comment[te]=ఇంటెరప్ట్ సమాచారం
|
||||
Comment[tg]=Иттилооти оиди қатъкунии система
|
||||
Comment[th]=ข้อมูลอินเทอร์รัพต์
|
||||
Comment[tr]=Kesmeler hakkında bilgi
|
||||
Comment[uk]=Інформація щодо переривань
|
||||
Comment[uz]=Toʻxtalish haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Тўхталиш ҳақида маълумот
|
||||
Comment[vi]=Thông tin về các gián đoạn
|
||||
Comment[wa]=Infôrmåcions so les boutoes
|
||||
Comment[xh]=Phazamisa ulwazi
|
||||
Comment[x-test]=xxInterrupt informationxx
|
||||
Comment[zh_CN]=中断信息
|
||||
Comment[zh_TW]=中斷資訊
|
||||
|
||||
X-KDE-Keywords=Interrupts,IRQ,System Information
|
||||
X-KDE-Keywords[af]=Interrupts,IRQ,System Informasie
|
||||
X-KDE-Keywords[be]=Перапыненні,сістэмная інфармацыя,Interrupts,IRQ,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, прекъсване, прекъсвания, програмни, Interrupts, IRQ, System Information
|
||||
X-KDE-Keywords[br]=spanoù,IRQ,titouroù reizhiad
|
||||
X-KDE-Keywords[ca]=Interrupcions, IRQ, informació del sistema
|
||||
X-KDE-Keywords[cs]=Přerušení,IRQ,Informace o systému
|
||||
X-KDE-Keywords[csb]=Przerwania,IRQ,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=Ymyriadau,IRQ,Gwybodaeth Cysawd
|
||||
X-KDE-Keywords[da]=Interrupts,IRQ,Systeminformation
|
||||
X-KDE-Keywords[de]=Interrupts,IRQ,Systeminformation
|
||||
X-KDE-Keywords[el]=Διακοπές,IRQ,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=Interrompoj,IRQ,sistemo,informo,operaciumo
|
||||
X-KDE-Keywords[es]=Interrupciones,IRQ,Información del sistema
|
||||
X-KDE-Keywords[et]=Katkestused,IRQ,Süsteemi info
|
||||
X-KDE-Keywords[eu]=Etenaldiak,IRQ,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=وقفهها، IRQ، اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=Keskeytykset,IRQ,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=interruptions,IRQ,informations système,irq
|
||||
X-KDE-Keywords[fy]=Underbrekkings,IRQ,systeemynformaasje
|
||||
X-KDE-Keywords[ga]=Idirbhristeacha,IRQ,Eolas faoin Chórais
|
||||
X-KDE-Keywords[gl]=Interrupcións,IRQ,Información do Sistema
|
||||
X-KDE-Keywords[he]=בקשת פסיקה,מידע מערכת,IRQ,פסיקה,Interrupts,IRQ,System Information
|
||||
X-KDE-Keywords[hr]=Interrupts,IRQ,System Information,Presretanja,Podaci o sustavu
|
||||
X-KDE-Keywords[hu]=megszakítások,IRQ,rendszerinformáció
|
||||
X-KDE-Keywords[is]=rofbeiðni,ígrip,IRQ,Interrupt,kerfi,upplýsingar
|
||||
X-KDE-Keywords[it]=interrupt,IRQ,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=割り込み,IRQ,システムの情報
|
||||
X-KDE-Keywords[ka]=წყვიტავს,IRQ,ინფორმაცია სისტემის შესახებ
|
||||
X-KDE-Keywords[km]=ផ្អាក IRQ ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=인터럽트,IRQ,시스템 정보
|
||||
X-KDE-Keywords[lt]=Pertrauktys,IRQ,Sistemos Informacija
|
||||
X-KDE-Keywords[lv]=Pārtraukumi,IRQ,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=Interrupts,IRQ,System Information,Прекини,Информации за системот
|
||||
X-KDE-Keywords[nb]=Avbrudd,IRQ,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=Interrupts,IRQ,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=रोकावट, आईआरक्यू, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=interrupts,IRQ,systeeminformatie
|
||||
X-KDE-Keywords[nn]=avbrot,IRQ,systeminformasjon
|
||||
X-KDE-Keywords[pa]=Interrupts,IRQ,ਸਿਸਟਮ ਜਾਣਕਾਰੀ,ਰੁਕਾਵਟ
|
||||
X-KDE-Keywords[pl]=Przerwania,IRQ,informacja o systemie
|
||||
X-KDE-Keywords[pt]=interrupções,IRQ,informações sobre o sistema
|
||||
X-KDE-Keywords[pt_BR]=Interrupções,IRQ,Informações do sistema
|
||||
X-KDE-Keywords[ro]=întreruperi,IRQ,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=Gaskkaldumit,IRQ,vuogádatdieđut
|
||||
X-KDE-Keywords[sl]=prekinitve,IRQ,sistemski podatki
|
||||
X-KDE-Keywords[sr]=Interrupts,IRQ,System Information,прекиди,системске информације,системски подаци,ИРКу
|
||||
X-KDE-Keywords[sr@latin]=Interrupts,IRQ,System Information,prekidi,sistemske informacije,sistemski podaci,IRQ
|
||||
X-KDE-Keywords[sv]=Avbrott,IRQ,Systeminformation
|
||||
X-KDE-Keywords[ta]=குறுக்கீடுகள்,IRQ, கணினித் தகவல்
|
||||
X-KDE-Keywords[te]=ఇంటెరప్ట్, ఐ ఆర్ క్యు, వ్యవస్థ సమాచారం
|
||||
X-KDE-Keywords[th]=อินเตอร์รัพต์,IRQ,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=Kesmeler,IRQ,Sistem hakkında bilgi
|
||||
X-KDE-Keywords[uk]=перепини,interrupts,irq,system-information
|
||||
X-KDE-Keywords[uz]=Тўхталишлар,IRQ,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=Gián đoạn,IRQ,Thông tin Hệ thống
|
||||
X-KDE-Keywords[x-test]=xxInterrupts,IRQ,System Informationxx
|
||||
X-KDE-Keywords[xh]=Iziphazamiso,IRQ,Ulwazi lwendlela
|
||||
X-KDE-Keywords[zh_CN]=Interrupts,IRQ,System Information,中断,系统信息
|
||||
X-KDE-Keywords[zh_TW]=Interrupts,IRQ,System Information,中斷,系統資訊
|
||||
|
|
@ -1,250 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 ioports
|
||||
Icon=kcmmemory
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/ioports/index.html
|
||||
Categories=Qt;KDE;X-KDE-information;
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=ioports
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=IO-Ports
|
||||
Name[af]=Io-poorte
|
||||
Name[ar]=منافذ الإدخال والإخراج
|
||||
Name[as]=IO-Ports
|
||||
Name[be]=Парты ўводу/вываду
|
||||
Name[be@latin]=Porty dla pierasyłańnia źviestak
|
||||
Name[bg]=Вх./Изх.
|
||||
Name[bn]=IO-Ports
|
||||
Name[bn_IN]=IO-পোর্ট
|
||||
Name[br]=Porzhioù ED
|
||||
Name[ca]=Ports E/S
|
||||
Name[ca@valencia]=Ports E/S
|
||||
Name[cs]=Vstupně/výstupní-porty
|
||||
Name[csb]=Pòrtë wéńdzeniô/wińdzeniô
|
||||
Name[cy]=Pyrth-IO
|
||||
Name[da]=IO-porte
|
||||
Name[de]=Ein-/Ausgabe-Ports
|
||||
Name[el]=Θύρες Ι/Ο
|
||||
Name[en_GB]=IO-Ports
|
||||
Name[eo]=Eneligaj pordoj
|
||||
Name[es]=Puertos de E/S
|
||||
Name[et]=IO pordid
|
||||
Name[eu]=IO-atakak
|
||||
Name[fa]=درگاههای ورودی خروجی
|
||||
Name[fi]=IO-portit
|
||||
Name[fr]=Ports d'entrées / sorties
|
||||
Name[fy]=IO-Poarten
|
||||
Name[ga]=Poirt I/A
|
||||
Name[gl]=Portos de E/S
|
||||
Name[gu]=IO-પોર્ટસ
|
||||
Name[he]=קלט־פלט
|
||||
Name[hi]=आईओ-पोर्ट्
|
||||
Name[hne]=आईओ-पोर्ट्
|
||||
Name[hr]=IO portovi
|
||||
Name[hsb]=IO-Ports
|
||||
Name[hu]=IO-portok
|
||||
Name[id]=Pangkalan IO
|
||||
Name[is]=Inn-/úttaksport
|
||||
Name[it]=Porte di I/O
|
||||
Name[ja]=I/O ポート
|
||||
Name[ka]=IO–პორტები
|
||||
Name[kk]=Енгізу-шығару порттары
|
||||
Name[km]=ច្រក IO
|
||||
Name[kn]=ಐಓ-ಸಂಪರ್ಕಕಿಂಡಿಗಳು (ಪೋರ್ಟ್)
|
||||
Name[ko]=IO 포트
|
||||
Name[ku]=Portên-IO
|
||||
Name[lt]=IO-portai
|
||||
Name[lv]=IO-porti
|
||||
Name[mai]=आईओ-पोर्ट्
|
||||
Name[mk]=В/И-порти
|
||||
Name[ml]=ഐഒ-പോര്ട്ടുകള്
|
||||
Name[mr]=IO-पोर्ट्
|
||||
Name[ms]=Port IO
|
||||
Name[nb]=IO-porter
|
||||
Name[nds]=IO-Porten
|
||||
Name[ne]=आगत/निर्गत-पोर्ट
|
||||
Name[nl]=IO-Poorten
|
||||
Name[nn]=IU-portar
|
||||
Name[or]=IO-ସଂଯୋଗିକୀ
|
||||
Name[pa]=IO-ਪੋਰਟ
|
||||
Name[pl]=Porty wejścia/wyjścia
|
||||
Name[pt]=Portos de E/S
|
||||
Name[pt_BR]=Portas de E/S
|
||||
Name[ro]=Porturi I/E
|
||||
Name[ru]=Порты ввода/вывода
|
||||
Name[se]=SO-verráhat
|
||||
Name[si]=IO-පොර්ට්
|
||||
Name[sk]=V/V porty
|
||||
Name[sl]=V/I vrata
|
||||
Name[sr]=У/И портови
|
||||
Name[sr@ijekavian]=У/И портови
|
||||
Name[sr@ijekavianlatin]=U/I portovi
|
||||
Name[sr@latin]=U/I portovi
|
||||
Name[sv]=I/O-portar
|
||||
Name[ta]=IO-முனையங்கள்
|
||||
Name[te]=ఐఓ-పోర్టులు
|
||||
Name[tg]=IO-Ports
|
||||
Name[th]=พอร์ตข้อมูลเข้า/ออก
|
||||
Name[tr]=G/Ç Portları
|
||||
Name[uk]=Порти В/В
|
||||
Name[uz]=K/Ch portlar
|
||||
Name[uz@cyrillic]=К/Ч портлар
|
||||
Name[vi]=Cổng vào ra (VR)
|
||||
Name[wa]=Pôrts I/R
|
||||
Name[xh]=IO-Ufako
|
||||
Name[x-test]=xxIO-Portsxx
|
||||
Name[zh_CN]=IO 端口
|
||||
Name[zh_TW]=IO-Ports
|
||||
|
||||
Comment=IO-port information
|
||||
Comment[af]=Io-poort informasie
|
||||
Comment[ar]=معلومات منفذ الإدخال والإخراج
|
||||
Comment[as]=IO-port তথ্য
|
||||
Comment[be]=Звесткі пра парты уводу/вываду
|
||||
Comment[be@latin]=Źviestki pra porty pierasyłańnia
|
||||
Comment[bg]=Информация за входно-изходните портове
|
||||
Comment[bn]=আই-ও পোর্ট সংক্রান্ত তথ্য
|
||||
Comment[bn_IN]=IO-পোর্ট সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar porzhioù ED
|
||||
Comment[ca]=Informació dels ports E/S
|
||||
Comment[ca@valencia]=Informació dels ports E/S
|
||||
Comment[cs]=Informace o vstupně/výstupních-portech
|
||||
Comment[csb]=Wëdowiédzô ò pòrtach wéńdzeniô/wińdzeniô
|
||||
Comment[cy]=Gwybodaeth Porth-IO
|
||||
Comment[da]=IO-portinformation
|
||||
Comment[de]=Informationen zu benutzten Ein-/Ausgabe-Ports
|
||||
Comment[el]=Πληροφορίες για τις θύρες εισόδου-εξόδου
|
||||
Comment[en_GB]=IO-port information
|
||||
Comment[eo]=Informoj pri eneligaj pordoj
|
||||
Comment[es]=Información sobre los puertos de E/S
|
||||
Comment[et]=IO portide info
|
||||
Comment[eu]=IO-atakei buruzko informazioa
|
||||
Comment[fa]=اطلاعات درگاههای ورودی خروجی
|
||||
Comment[fi]=IO-porttitiedot
|
||||
Comment[fr]=Informations sur les ports d'entrées / sorties
|
||||
Comment[fy]=IO-poarteynformaasje
|
||||
Comment[ga]=Eolas faoi Phoirt I/A
|
||||
Comment[gl]=Información dos portos de E/S
|
||||
Comment[gu]=IO-પોર્ટ માહિતી
|
||||
Comment[he]=מידע על יציאות הקלט־פלט
|
||||
Comment[hi]=आईओ-पोर्ट् जानकारी
|
||||
Comment[hne]=आईओ-पोर्ट् जानकारी
|
||||
Comment[hr]=Podaci o IO portovima
|
||||
Comment[hsb]=Informacija wo IO-portach
|
||||
Comment[hu]=A ki- és bemeneti portok jellemzői
|
||||
Comment[id]=Informasi pangkalan IO
|
||||
Comment[is]=Upplýsingar um inn-/úttaksport
|
||||
Comment[it]=Informazioni sulle porte di I/O
|
||||
Comment[ja]=I/O ポートの情報
|
||||
Comment[ka]=ინფორმაცია IO–პორტების შესახებ
|
||||
Comment[kk]=Енгізу-шығару порттар мәліметі
|
||||
Comment[km]=ព័ត៌មានច្រក IO
|
||||
Comment[kn]=ಐಓ-ಸಂಪರ್ಕಕಿಂಡಿಗಳ (ಪೋರ್ಟ್) ಮಾಹಿತಿ
|
||||
Comment[ko]=IO-주소 정보
|
||||
Comment[ku]=Agahiyên Portên-IO
|
||||
Comment[lt]=IO-porto informacija
|
||||
Comment[lv]=IO-portu informācija
|
||||
Comment[mai]=आईओ-पोर्ट् सूचना
|
||||
Comment[mk]=Информации за влезно/излезните порти
|
||||
Comment[ml]=ഐഒ-പോര്ട്ടിന്റെ വിവരങ്ങള്
|
||||
Comment[mr]=IO-पोर्ट् माहिती
|
||||
Comment[ms]=Maklumat port IO
|
||||
Comment[nb]=IO-portinformasjon
|
||||
Comment[nds]=IO-Port-Informatschoon
|
||||
Comment[ne]=आगत/निर्गत-पोर्ट सूचना
|
||||
Comment[nl]=IO-poortinformatie
|
||||
Comment[nn]=IU-port-informasjon
|
||||
Comment[or]=IO-ସଂଯୋଗିକୀ ସୂଚନା
|
||||
Comment[pa]=IO-ਪੋਰਟ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o portach wejścia/wyjścia
|
||||
Comment[pt]=Informação sobre os portos de E/S
|
||||
Comment[pt_BR]=Informações sobre as portas de E/S
|
||||
Comment[ro]=Informații despre porturile I/E
|
||||
Comment[ru]=Сведения о портах ввода/вывода
|
||||
Comment[se]=SO-verráhatdieđut
|
||||
Comment[si]=IO-පොර්ට් තොරතුරු
|
||||
Comment[sk]=Informácie o V/V portoch
|
||||
Comment[sl]=Podatki o vhodno/izhodnih vratih
|
||||
Comment[sr]=Подаци о У/И портовима
|
||||
Comment[sr@ijekavian]=Подаци о У/И портовима
|
||||
Comment[sr@ijekavianlatin]=Podaci o U/I portovima
|
||||
Comment[sr@latin]=Podaci o U/I portovima
|
||||
Comment[sv]=Information om I/O-portar
|
||||
Comment[ta]=IO-முனைய தகவல்
|
||||
Comment[te]=ఐఓ-పోర్టుల సమాచారం
|
||||
Comment[tg]=Иттилооти IO-port
|
||||
Comment[th]=ข้อมูลพอร์ตข้อมูลเข้า/ออก
|
||||
Comment[tr]=Girdi Çıktı portları hakkında bilgi
|
||||
Comment[uk]=Інформація щодо портів вводу/виводу
|
||||
Comment[uz]=Kirish/chiqish portlar haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Кириш/чиқиш портлар ҳақида маълумот
|
||||
Comment[vi]=Thông tin về cổng VR
|
||||
Comment[wa]=Infôrmåcion so les pôrts d' Intrêye/Rexhowe
|
||||
Comment[xh]=IO-ulwazi lwezibuko
|
||||
Comment[x-test]=xxIO-port informationxx
|
||||
Comment[zh_CN]=IO 端口信息
|
||||
Comment[zh_TW]=IO-Port 資訊
|
||||
|
||||
X-KDE-Keywords=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information
|
||||
X-KDE-Keywords[af]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Informasie
|
||||
X-KDE-Keywords[be]=Увод'вывад,парты ўводу/вываду,парты,сістэмная інфармацыя,IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, вход, входно, изход, изходно, порт, портове, IO, I/O, IO-Ports, I/O-Ports, Ports, IO-Range, I/O-Range, System Information
|
||||
X-KDE-Keywords[br]=ED,E/D,porzhioù E/D,porzhioù,rummad ED,rummadE/D,titouroù ar reizhiad
|
||||
X-KDE-Keywords[ca]=ES,E/S,Ports d'ES,Ports d'E/S,Ports,Rang d'ES,Rang d'E/S,Informació del sistema
|
||||
X-KDE-Keywords[cs]=IO,I/O,IO-porty,I/O-porty,Porty,Rozsah IO,Rozsah I/O,Informace o systému
|
||||
X-KDE-Keywords[csb]=IO,I/O,pòrtë IO,pòrtë I/O,portë,òbjim IO,òbjim I/O,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=IO,I/O,Pyrth-IO,Pyrth-I/O,Pyrth,Amrediad-IO,Amrediad-I/O,Gwybodaeth Cysawd
|
||||
X-KDE-Keywords[da]=IO,I/O,IO-porte,I/O-Porte,Porte,IO-område,I/O-område,Systeminformation
|
||||
X-KDE-Keywords[de]=Ein/Ausgabe,IO,I/O,IO-ports,I/O-Ports,Ports,IO-Bereich,I/O-Bereich,Systeminformation
|
||||
X-KDE-Keywords[el]=ΕΕ,Ε/Ε,Θύρες ΕΕ,Θύρες Ε/Ε,Θύρες,Εύρος ΕΕ,Εύρος Ε/Ε,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=IO,I/O,en,el,eneligo,pordoj,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=ES,E/S,Puertos de ES,Puertos de E/S,Puertos,Intervalo de ES,Intervalo de E/S,Información del sistema
|
||||
X-KDE-Keywords[et]=IO,I/O,IO pordid,I/O pordid,pordid,IO piirkond,I/O piirkond,Süsteemi info
|
||||
X-KDE-Keywords[eu]=IO,I/O,IO-atakak,Atakak,IO-barrutia,I/O-barrutia,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=ورودی خروجی، ورودی/خروجی، درگاههای ورودی خروجی، درگاهها، گسترۀ ورودی خروجی، گسترۀ ورودی/خروجی، اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=IO,I/O,IO-Portit,I/O-Portit,Portit,I/O-alue,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=io,i/o,entrées-sorties,ports,ports d'entrée-sortie,informations système,plage d'entrées-sorties
|
||||
X-KDE-Keywords[fy]=IO,I/O,IO-Ports,I/O-Ports,ports,IO-Range,I/O-Range,systeemynformaasje,IO-poarten
|
||||
X-KDE-Keywords[ga]=IA,I/A,Poirt IA,Poirt I/A,Poirt,Raon IA,Raon I/A,Eolas faoin Chórais
|
||||
X-KDE-Keywords[gl]=IO,I/O,E/S,Portos IO,Portos E/S,Rango IO,Rango E/S,Información do Sistema
|
||||
X-KDE-Keywords[he]=קלט־פלט,יציאות קלט־פלט,יציאות,טווח קלט־פלט,מידע,מערכת,IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information
|
||||
X-KDE-Keywords[hr]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information,IO portovi,IO raspon,Podaci o sustavu
|
||||
X-KDE-Keywords[hu]=IO,I/O,IO-portok,I/O-portok,portok,IO-tartomány,I/O tartomány,rendszerinformáció
|
||||
X-KDE-Keywords[is]=Inntak,úttak,I/O,Port,upplýsingar,kerfi
|
||||
X-KDE-Keywords[it]=IO,I/O,porte di IO,porte di I/O,porte,intervallo di IO,intervallo di I/O,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=IO,I/O,IO-ポート,I/O-ポート,ポート,IO-レンジ,I/O-レンジ,システムの情報
|
||||
X-KDE-Keywords[km]=IO I/O ច្រក IO ច្រក I/O ច្រក ជួរ IO ជួរ I/O ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=IO,I/O,IO 포트,I/O 포트,IO 범위,I/O 범위,시스템 정보
|
||||
X-KDE-Keywords[lt]=IO,I/O,IO-Ports,IO-portai,I/O-Ports,I/O-prievadai,Ports,prievadai,IO-Range,IO zona,I/O-Range,I/O zona,System Information,sisteminė informacija
|
||||
X-KDE-Keywords[lv]=IO,I/O,IO-Porti,I/O-Porti,Porti,IO-Diapazons,I/O-Diapazons,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information,ВИ,В/И,ВИ-порти,В/И-порти,Порти,В/И-опсег,В/И-опсег,Информации за системот
|
||||
X-KDE-Keywords[nb]=IO,I/O,IO-porter,I/O-porter,port,IO-område,I/O-område,IU,I/U,IU-porter,I/U-porter,port,IU-område,I/U-område,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=IO,I/O,IO-Porten,I/O-Porten,Porten,IO-Range,I/O-Range,IO-Rebeet,I/O-Rebeet,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=आगत/निर्गत, आगत/निर्गत, आगत/निर्गत-पोर्ट, आगत/निर्गत-पोर्ट, पोर्ट, आगत/निर्गत-दायरा, आगत/निर्गत दायरा, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=IO,I/O,IO-Ports,I/O-Ports,ports,IO-Range,I/O-Range,systeeminformatie,IO-poorten
|
||||
X-KDE-Keywords[nn]=IU,I/U,IO,I/O,IU-portar,I/U-portar,portar,IU-område,I/U-område,systeminformasjon
|
||||
X-KDE-Keywords[pa]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,ਸਿਸਟਮ ਜਾਣਕਾਰੀ
|
||||
X-KDE-Keywords[pl]=IO,I/O,porty IO,porty I/O,porty,zakres IO,zakres I/O,informacja o systemie
|
||||
X-KDE-Keywords[pt]=ES,E/S,portos E/S,portos,gama de E/S,informações de sistema
|
||||
X-KDE-Keywords[pt_BR]=ES,E/S,Portas E/S,Portas de E/S,Portas,Faixa de E/S,Faixa de E/S,Informações de sistema
|
||||
X-KDE-Keywords[ro]=I/E,IE,IO,I/O,porturi IO,porturi,domeniu IO,domeniu I/O,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=SO,S/O,IO,I/O,SO-verráhat,S/O-verráhat,verráhat,SO-gaska,S/O-gaska, vuogádatdiehtu
|
||||
X-KDE-Keywords[sl]=VI,V/I,V/I-vrata,VI-vrata,vrata,VI-obseg,V/I-obseg,informacije o sistemu
|
||||
X-KDE-Keywords[sr]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information,У/И,У/И портови,У/Ипорт,системске информације,системски подаци,портови
|
||||
X-KDE-Keywords[sr@latin]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information,U/I,U/I portovi,U/Iport,sistemske informacije,sistemski podaci,portovi
|
||||
X-KDE-Keywords[sv]=IO,I/O,IO-portar,I/O-portar,Ports,IO-område,I/O-område,Systeminformation
|
||||
X-KDE-Keywords[ta]=IO,I/O,IO-முனையங்கள்,I/O-முனையங்கள்,முனையங்கள்,IO-நிலை,I/O-நிலை,அமைப்பு தகவல்
|
||||
X-KDE-Keywords[th]=นำเข้านำออก,นำเข้า/นำออก,พอร์ตนำเข้านำออก,พอร์ตนำเข้า/นำออก,พอร์ต, แนวการนำเข้านำออก,แนวการนำเข้า/นำออก,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=GÇ,G/Ç,GÇ Portları,G/Ç Portları, Portlar,GÇ-Aralığı,G/Ç-Aralığı,Sistem
|
||||
X-KDE-Keywords[uk]=порти вводу/виводу,ВВ,в/в,порти,io,i/o,io-ports,i/p-ports,ports,system information
|
||||
X-KDE-Keywords[uz]=К/Ч портлар,Портлар,К/Ч чегараси,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=VR,V/R,Cổng VR,Cổng V/R,Cổng,Phạm vị VR,Phạm vị V/R,Thông tin Hệ thống
|
||||
X-KDE-Keywords[x-test]=xxIO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Informationxx
|
||||
X-KDE-Keywords[xh]=IO,I/O,IO-Amazibuko,I/O-Amazibuko,Amazibuko,IO-Beka ngendlela,Ulwazi lwendlela
|
||||
X-KDE-Keywords[zh_CN]=IO,I/O,IO-Ports,I/O-Ports,Ports,IO-Range,I/O-Range,System Information,IO 端口,I/O 端口,端口,IO 范围,I/O 范围,系统信息
|
||||
X-KDE-Keywords[zh_TW]=IO,I/O,IO-Ports,Ports,IO-Range,I/O-Range,System Information,IO 範圍,I/O 範圍,系統資訊
|
||||
|
|
@ -1,118 +0,0 @@
|
|||
/*
|
||||
* main.cpp
|
||||
*
|
||||
* Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
|
||||
*
|
||||
* Requires the Qt widget libraries, available at no cost at
|
||||
* http://www.troll.no/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <kcomponentdata.h>
|
||||
#include <KPluginFactory>
|
||||
#include <KPluginLoader>
|
||||
|
||||
/* we have to include the info.cpp-file, to get the DEFINES about possible properties.
|
||||
example: we need the "define INFO_CPU_AVAILABLE" */
|
||||
#include "info.h"
|
||||
|
||||
#include "os_current.h"
|
||||
|
||||
class KInfoModulesFactory : public KPluginFactory
|
||||
{
|
||||
public:
|
||||
KInfoModulesFactory(const char *componentName);
|
||||
static KComponentData componentData();
|
||||
|
||||
private:
|
||||
static KPluginFactory *s_instance;
|
||||
};
|
||||
KPluginFactory *KInfoModulesFactory::s_instance = 0;
|
||||
|
||||
#define CREATE_FACTORY(type, name) \
|
||||
class K##type##InfoWidget : public KInfoListWidget \
|
||||
{ \
|
||||
public: \
|
||||
K##type##InfoWidget(QWidget *parent, const QVariantList &) \
|
||||
: KInfoListWidget(KInfoModulesFactory::componentData(), \
|
||||
name, parent, GetInfo_##type) \
|
||||
{ \
|
||||
} \
|
||||
}; \
|
||||
|
||||
#ifdef INFO_CPU_AVAILABLE
|
||||
CREATE_FACTORY(CPU, i18n("Processor(s)"))
|
||||
#endif
|
||||
#ifdef INFO_IRQ_AVAILABLE
|
||||
CREATE_FACTORY(IRQ, i18n("Interrupt"))
|
||||
#endif
|
||||
#ifdef INFO_IOPORTS_AVAILABLE
|
||||
CREATE_FACTORY(IO_Ports, i18n("I/O-Port"))
|
||||
#endif
|
||||
#ifdef INFO_SOUND_AVAILABLE
|
||||
CREATE_FACTORY(Sound, i18n("Soundcard"))
|
||||
#endif
|
||||
#ifdef INFO_SCSI_AVAILABLE
|
||||
CREATE_FACTORY(SCSI, i18n("SCSI"))
|
||||
#endif
|
||||
#ifdef INFO_DMA_AVAILABLE
|
||||
CREATE_FACTORY(DMA, i18n("DMA-Channel"))
|
||||
#endif
|
||||
#ifdef INFO_DEVICES_AVAILABLE
|
||||
CREATE_FACTORY(Devices, i18n("Devices"))
|
||||
#endif
|
||||
#ifdef INFO_XSERVER_AVAILABLE
|
||||
CREATE_FACTORY(XServer_and_Video, i18n("X-Server"))
|
||||
#endif
|
||||
|
||||
KInfoModulesFactory::KInfoModulesFactory(const char *componentName)
|
||||
: KPluginFactory(componentName)
|
||||
{
|
||||
s_instance = this;
|
||||
|
||||
#ifdef INFO_CPU_AVAILABLE
|
||||
registerPlugin<KCPUInfoWidget>("cpu");
|
||||
#endif
|
||||
#ifdef INFO_IRQ_AVAILABLE
|
||||
registerPlugin<KIRQInfoWidget>("irq");
|
||||
#endif
|
||||
#ifdef INFO_IOPORTS_AVAILABLE
|
||||
registerPlugin<KIO_PortsInfoWidget>("ioports");
|
||||
#endif
|
||||
#ifdef INFO_SOUND_AVAILABLE
|
||||
registerPlugin<KSoundInfoWidget>("sound");
|
||||
#endif
|
||||
#ifdef INFO_SCSI_AVAILABLE
|
||||
registerPlugin<KSCSIInfoWidget>("scsi");
|
||||
#endif
|
||||
#ifdef INFO_DMA_AVAILABLE
|
||||
registerPlugin<KDMAInfoWidget>("dma");
|
||||
#endif
|
||||
#ifdef INFO_DEVICES_AVAILABLE
|
||||
registerPlugin<KDevicesInfoWidget>("devices");
|
||||
#endif
|
||||
#ifdef INFO_XSERVER_AVAILABLE
|
||||
registerPlugin<KXServer_and_VideoInfoWidget>("xserver");
|
||||
#endif
|
||||
}
|
||||
|
||||
KComponentData KInfoModulesFactory::componentData()
|
||||
{
|
||||
Q_ASSERT(s_instance);
|
||||
return s_instance->componentData();
|
||||
}
|
||||
|
||||
K_EXPORT_PLUGIN(KInfoModulesFactory("kcminfo"))
|
|
@ -1,253 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 processor
|
||||
Icon=cpu
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/processor/index.html
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=cpu
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=Processor
|
||||
Name[af]=Verwerker
|
||||
Name[ar]=المعالج
|
||||
Name[as]=সংসাধক
|
||||
Name[be]=Працэсар
|
||||
Name[be@latin]=Pracesar
|
||||
Name[bg]=Процесор
|
||||
Name[bn]=প্রসেসর
|
||||
Name[bn_IN]=প্রসেসর
|
||||
Name[br]=Kewerier
|
||||
Name[ca]=Processador
|
||||
Name[ca@valencia]=Processador
|
||||
Name[cs]=Procesor
|
||||
Name[csb]=Procesora
|
||||
Name[cy]=Prosesydd
|
||||
Name[da]=Processor
|
||||
Name[de]=Prozessor
|
||||
Name[el]=Επεξεργαστής
|
||||
Name[en_GB]=Processor
|
||||
Name[eo]=Procesoro
|
||||
Name[es]=Procesador
|
||||
Name[et]=Protsessor
|
||||
Name[eu]=Prozesagailua
|
||||
Name[fa]=پردازنده
|
||||
Name[fi]=Prosessori
|
||||
Name[fr]=Processeur
|
||||
Name[fy]=Ferwurkingsienheid
|
||||
Name[ga]=Próiseálaí
|
||||
Name[gl]=Procesador
|
||||
Name[gu]=પ્રોસેસર
|
||||
Name[he]=מעבד
|
||||
Name[hi]=प्रोसेसर
|
||||
Name[hne]=प्रोसेसर
|
||||
Name[hr]=Procesor
|
||||
Name[hsb]=procesor
|
||||
Name[hu]=Processzor
|
||||
Name[id]=Prosesor
|
||||
Name[is]=Örgjörvi
|
||||
Name[it]=Processore
|
||||
Name[ja]=プロセッサ
|
||||
Name[ka]=პროცესორი
|
||||
Name[kk]=Процессор
|
||||
Name[km]=ប្រព័ន្ធដំណើរការ
|
||||
Name[kn]=ಸಂಸ್ಕಾರಕ
|
||||
Name[ko]=프로세서
|
||||
Name[ku]=Kiryarkar
|
||||
Name[lt]=Procesorius
|
||||
Name[lv]=Procesors
|
||||
Name[mai]=प्रोसेसर
|
||||
Name[mk]=Процесор
|
||||
Name[ml]=പ്രൊസസ്സര്
|
||||
Name[mr]=प्रोसेसर
|
||||
Name[ms]=Pemproses
|
||||
Name[nb]=Prosessor
|
||||
Name[nds]=Perzesser
|
||||
Name[ne]=प्रोसेसर
|
||||
Name[nl]=Processor
|
||||
Name[nn]=Prosessor
|
||||
Name[oc]=Processor
|
||||
Name[or]=ସଞ୍ଚାଳକ
|
||||
Name[pa]=ਪਰੋਸੈਸਰ
|
||||
Name[pl]=Procesor
|
||||
Name[pt]=Processador
|
||||
Name[pt_BR]=Processador
|
||||
Name[ro]=Procesor
|
||||
Name[ru]=Процессор
|
||||
Name[se]=Doaimmár
|
||||
Name[si]=සකසනය
|
||||
Name[sk]=Procesor
|
||||
Name[sl]=Procesor
|
||||
Name[sr]=Процесор
|
||||
Name[sr@ijekavian]=Процесор
|
||||
Name[sr@ijekavianlatin]=Procesor
|
||||
Name[sr@latin]=Procesor
|
||||
Name[sv]=Processor
|
||||
Name[ta]=ஆக்கி
|
||||
Name[te]=ప్రాసెసర్
|
||||
Name[tg]=Амалкард
|
||||
Name[th]=ตัวประมวลผล
|
||||
Name[tr]=İşlemci
|
||||
Name[uk]=Процесор
|
||||
Name[uz]=Protsessor
|
||||
Name[uz@cyrillic]=Процессор
|
||||
Name[vi]=Bộ xử lý
|
||||
Name[wa]=Processeu
|
||||
Name[xh]=Umqhubekekisi phambili
|
||||
Name[x-test]=xxProcessorxx
|
||||
Name[zh_CN]=处理器
|
||||
Name[zh_TW]=處理器
|
||||
|
||||
Comment=Processor information
|
||||
Comment[af]=Verwerker informasie
|
||||
Comment[ar]=معلومات المعالج
|
||||
Comment[as]=সংসাধকৰ তথ্য
|
||||
Comment[be]=Звесткі пра працэсар
|
||||
Comment[be@latin]=Źviestki ab pracesary
|
||||
Comment[bg]=Информация за процесора(ите) на системата
|
||||
Comment[bn]=প্রসেসর তথ্য
|
||||
Comment[bn_IN]=প্রসেসর সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar c'hewerier
|
||||
Comment[ca]=Informació del processador
|
||||
Comment[ca@valencia]=Informació del processador
|
||||
Comment[cs]=Informace o procesoru
|
||||
Comment[csb]=Wëdowiédzô ò procesorze
|
||||
Comment[cy]=Gwybodaeth prosesydd
|
||||
Comment[da]=Information om processoren
|
||||
Comment[de]=Informationen zum Prozessor
|
||||
Comment[el]=Πληροφορίες για τον επεξεργαστή
|
||||
Comment[en_GB]=Processor information
|
||||
Comment[eo]=Informoj pri procesoro
|
||||
Comment[es]=Información sobre el procesador
|
||||
Comment[et]=Protsessori info
|
||||
Comment[eu]=Prozesagailuari buruzko informazioa
|
||||
Comment[fa]=اطلاعات پردازنده
|
||||
Comment[fi]=Tietoja prosessorista
|
||||
Comment[fr]=Informations sur le processeur
|
||||
Comment[fy]=Ferwurkingsienheid ynformaasje
|
||||
Comment[ga]=Eolas faoin phróiseálaí
|
||||
Comment[gl]=Información do procesador
|
||||
Comment[gu]=પ્રોસેસર માહિતી
|
||||
Comment[he]=מידע על המעבד
|
||||
Comment[hi]=प्रोसेसर जानकारी
|
||||
Comment[hne]=प्रोसेसर जानकारी
|
||||
Comment[hr]=Podaci o procesoru
|
||||
Comment[hsb]=Informacija wo procesoru
|
||||
Comment[hu]=A processzor jellemzői
|
||||
Comment[id]=Informasi Prosesor
|
||||
Comment[is]=Upplýsingar um örgjörva
|
||||
Comment[it]=Informazioni sul processore
|
||||
Comment[ja]=プロセッサの情報
|
||||
Comment[ka]=ინფორმაცია პროცესორის შესახებ
|
||||
Comment[kk]=Процессор мәліметі
|
||||
Comment[km]=ព័ត៌មានប្រព័ន្ធដំណើរការ
|
||||
Comment[kn]=ಸಂಸ್ಕಾರಕದ ಮಾಹಿತಿ
|
||||
Comment[ko]=프로세서 정보
|
||||
Comment[ku]=Agahiyên Kiryarkarê
|
||||
Comment[lt]=Procesoriaus informacija
|
||||
Comment[lv]=Procesora informācija
|
||||
Comment[mai]=प्रोसेसर सूचना
|
||||
Comment[mk]=Информации за процесорот
|
||||
Comment[ml]=പ്രൊസസ്സറിന്റെ വിവരങ്ങള്
|
||||
Comment[mr]=प्रोसेसर माहिती
|
||||
Comment[ms]=Maklumat pemproses
|
||||
Comment[nb]=Prosessorinformasjon
|
||||
Comment[nds]=Informatschoon över den Perzesser
|
||||
Comment[ne]=प्रोसेसर सूचना
|
||||
Comment[nl]=Processorinformatie
|
||||
Comment[nn]=Prosessorinformasjon
|
||||
Comment[or]=ସଂଚାଳକ ସୂଚନା
|
||||
Comment[pa]=ਪਰੋਸੈਸਰ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o procesorze
|
||||
Comment[pt]=Informação sobre o processador
|
||||
Comment[pt_BR]=Informações sobre o processador
|
||||
Comment[ro]=Informații despre microprocesor
|
||||
Comment[ru]=Сведения о процессоре
|
||||
Comment[se]=Doaimmárdieđut
|
||||
Comment[si]=සකසනයේ තොරතුරු
|
||||
Comment[sk]=Informácie o procesore
|
||||
Comment[sl]=Podatki o procesorju
|
||||
Comment[sr]=Подаци о процесору
|
||||
Comment[sr@ijekavian]=Подаци о процесору
|
||||
Comment[sr@ijekavianlatin]=Podaci o procesoru
|
||||
Comment[sr@latin]=Podaci o procesoru
|
||||
Comment[sv]=Processorinformation
|
||||
Comment[ta]=ஆக்கி தகவல்
|
||||
Comment[te]=ప్రాసెసర్ సమాచారం
|
||||
Comment[tg]=Иттилоот оиди амалкард
|
||||
Comment[th]=ข้อมูลตัวประมวลผล
|
||||
Comment[tr]=İşlemci hakkında bilgi
|
||||
Comment[uk]=Інформація щодо процесора
|
||||
Comment[uz]=Protsessor haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Процессор ҳақида маълумот
|
||||
Comment[vi]=Thông tin về bộ vi xử lý
|
||||
Comment[wa]=Infôrmåcion sol processeu
|
||||
Comment[xh]=Inkcukacha yenkcukacha
|
||||
Comment[x-test]=xxProcessor informationxx
|
||||
Comment[zh_CN]=处理器信息
|
||||
Comment[zh_TW]=處理器資訊
|
||||
|
||||
X-KDE-Keywords=Processor,CPU,FPU,MHz,System Information
|
||||
X-KDE-Keywords[af]=Processor,CPU,FPU,MHz,System Informasie
|
||||
X-KDE-Keywords[be]=Працэсар,МГц,Сістэмная інфармацыя,Processor,CPU,FPU,MHz,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, процесор, Processor, CPU, FPU, MHz, System Information
|
||||
X-KDE-Keywords[br]=Kewerier,UTK,UNS,MHz,titouroù reizhiad
|
||||
X-KDE-Keywords[ca]=Processador,CPU,FPU,MHz,Informació del sistema
|
||||
X-KDE-Keywords[cs]=Procesor,CPU,FPU,MHz,Informace o systému
|
||||
X-KDE-Keywords[csb]=procesora,CPU,JAL,FPU,MHz,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=Prosesydd,CPU,FPU,MHz,Gwybodaeth Cysawd
|
||||
X-KDE-Keywords[da]=Processor,CPU,FPU,MHz,Systeminformation
|
||||
X-KDE-Keywords[de]=Prozessor,CPU,FPU,MHz,Systeminformation
|
||||
X-KDE-Keywords[el]=Επεξεργαστής,ΚΜΕ,FPU,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=procezilo,CPU,FPU,MHz,frekvenco,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=Procesador,CPU,FPU,MHz,Información del sistema
|
||||
X-KDE-Keywords[et]=Protsessor,CPU,FPU,MHz,Süsteemi info
|
||||
X-KDE-Keywords[eu]=Prozesagailua,CPU,FPU,MHz,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=پردازنده، واحد پردازش مرکزی، FPU، مگاهرتز، اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=Prosessori,CPU,FPU,MHz,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=processeur,CPU,FPU,MHz,informations système,cpu
|
||||
X-KDE-Keywords[fy]=Processor,Ferwurkingsienheid,CPU,FPU,MHz,Systeemynformaasje
|
||||
X-KDE-Keywords[ga]=Próiseálaí,CPU,LAP,FPU,MHz,Eolas faoin Chóras
|
||||
X-KDE-Keywords[gl]=Procesador,CPU,FPU,MHz,Información do Sistema
|
||||
X-KDE-Keywords[he]=FPU,מעבד,מעבד מתמטי,מגה־הרץ,מידע מערכת,System Information
|
||||
X-KDE-Keywords[hr]=Processor,CPU,FPU,MHz,System Information,procesor,Podaci o sustavu
|
||||
X-KDE-Keywords[hu]=processzor,CPU,FPU,MHz,rendszerinformáció
|
||||
X-KDE-Keywords[is]=örgjörvi,örgjörfi,Gjörvi,kerfi,upplýsingar,CPU,MHz,FPUz
|
||||
X-KDE-Keywords[it]=processore,CPU,FPU,MHz,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=プロセッサ,CPU,FPU,MHz,システムの情報
|
||||
X-KDE-Keywords[ka]=პროცესორი,CPU,FPU,MHz,ინფორმაცია სისტემის შესახებ
|
||||
X-KDE-Keywords[km]=ប្រព័ន្ធដំណើរការ ស៊ីភីយូ FPU MHz ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=Processor,프로세서,CPU,FPU,MHz,시스템 정보
|
||||
X-KDE-Keywords[lt]=Procesorius,CPU,FPU,MHz,Sistemos Informacija
|
||||
X-KDE-Keywords[lv]=Procesors,CPU,FPU,MHz,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=Processor,CPU,FPU,MHz,System Information,Процесор,Информации за системот
|
||||
X-KDE-Keywords[ms]=Pemproses,CPU,FPU,MHz,Maklumat Sistem
|
||||
X-KDE-Keywords[nb]=Prosessor,CPU,FPU,Sentralenhet,MHz,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=Perzesser,CPU,FPU,MHz,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=प्रोसेसर, सीपीयू, एफपीयू, एमएचजेट, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=processor,CPU,FPU,MHz,systeeminformatie
|
||||
X-KDE-Keywords[nn]=prosessor,CPU,FPU,MHz,systeminformasjon
|
||||
X-KDE-Keywords[pa]=ਪਰੋਸੈਸਰ,CPU,FPU,MHz,ਸਿਸਟਮ ਜਾਣਕਾਰੀ
|
||||
X-KDE-Keywords[pl]=procesor,CPU,JAL,FPU,MHz,informacja o systemie
|
||||
X-KDE-Keywords[pt]=processador,CPU,FPU,MHz,informações do sistema
|
||||
X-KDE-Keywords[pt_BR]=Processador,CPU,FPU,MHz,Informações de sistema
|
||||
X-KDE-Keywords[ro]=procesor,microprocesor,CPU,FPU,MHz,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=Doaimmár,CPU,FPU,MHz,vuogádatdieđut
|
||||
X-KDE-Keywords[sl]=procesor,CPE,CPU,FPU,MHz,informacije o sistemu
|
||||
X-KDE-Keywords[sr]=Processor,CPU,FPU,MHz,System Information,ЦПУ,ФПУ,процесор,системске информације,системски подаци
|
||||
X-KDE-Keywords[sr@latin]=Processor,CPU,FPU,MHz,System Information,CPU,FPU,procesor,sistemske informacije,sistemski podaci
|
||||
X-KDE-Keywords[sv]=Processor,CPU,FPU,MHz,Systeminformation
|
||||
X-KDE-Keywords[ta]=செயலி,CPU,FPU,MHz,அமைப்புத் தகவல்
|
||||
X-KDE-Keywords[th]=หน่วยประมวลผล,CPU,FPU,MHz,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=İşlemci,MİB,FPU,MHz,Sistem Hakkında Bilgi
|
||||
X-KDE-Keywords[uk]=процесор,CPU,FPU,МГц,системна інформація
|
||||
X-KDE-Keywords[uz]=Процессор,CPU,FPU,МГц,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=Bộ vi xử lý,CPU,FPU,Mhz,Thông tin Hệ thống
|
||||
X-KDE-Keywords[wa]=Processeu,CPU,FPU,MHz,Infôrmåcion sol sistinme
|
||||
X-KDE-Keywords[x-test]=xxProcessor,CPU,FPU,MHz,System Informationxx
|
||||
X-KDE-Keywords[xh]=Umqhubekekisi,CPU,FPU,MHz,Inkcukacha Yendlela yokusebenza
|
||||
X-KDE-Keywords[zh_CN]=Processor,CPU,FPU,MHz,System Information,处理器,系统信息
|
||||
X-KDE-Keywords[zh_TW]=Processor,CPU,FPU,MHz,System Information,處理器,中央處理器,浮點運算器,系統資訊
|
||||
Categories=Qt;KDE;X-KDE-information;
|
|
@ -1,251 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 scsi
|
||||
Icon=kcmscsi
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/scsi/index.html
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=scsi
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=SCSI
|
||||
Name[af]=Scsi
|
||||
Name[ar]=SCSI
|
||||
Name[as]=SCSI
|
||||
Name[be]=SCSI
|
||||
Name[be@latin]=SCSI
|
||||
Name[bg]=SCSI
|
||||
Name[bn]=স্কাসি
|
||||
Name[bn_IN]=SCSI
|
||||
Name[br]=SCSI
|
||||
Name[ca]=SCSI
|
||||
Name[ca@valencia]=SCSI
|
||||
Name[cs]=SCSI
|
||||
Name[csb]=SCSI
|
||||
Name[cy]=SCSI
|
||||
Name[da]=SCSI
|
||||
Name[de]=SCSI
|
||||
Name[el]=SCSI
|
||||
Name[en_GB]=SCSI
|
||||
Name[eo]=SCSI
|
||||
Name[es]=SCSI
|
||||
Name[et]=SCSI
|
||||
Name[eu]=SCSI
|
||||
Name[fa]=اسکازی
|
||||
Name[fi]=SCSI
|
||||
Name[fr]=SCSI
|
||||
Name[fy]=SCSI
|
||||
Name[ga]=SCSI
|
||||
Name[gl]=SCSI
|
||||
Name[gu]=SCSI
|
||||
Name[he]=התקני SCSI
|
||||
Name[hi]=एससीएसआई
|
||||
Name[hne]=एससीएसआई
|
||||
Name[hr]=SCSI
|
||||
Name[hsb]=SCSI
|
||||
Name[hu]=SCSI
|
||||
Name[id]=SCSI
|
||||
Name[is]=SCSI-tæki
|
||||
Name[it]=SCSI
|
||||
Name[ja]=SCSI
|
||||
Name[ka]=SCSI
|
||||
Name[kk]=SCSI
|
||||
Name[km]=SCSI
|
||||
Name[kn]=ಸ್ಕಿಸೀ (SCSI)
|
||||
Name[ko]=SCSI
|
||||
Name[ku]=SCSI
|
||||
Name[lt]=SCSI
|
||||
Name[lv]=SCSI
|
||||
Name[mai]=एससीएसआई
|
||||
Name[mk]=SCSI
|
||||
Name[ml]=സ്കസി
|
||||
Name[mr]=SCSI
|
||||
Name[ms]=SCSI
|
||||
Name[nb]=SCSI
|
||||
Name[nds]=SCSI
|
||||
Name[ne]=एससीएसआई
|
||||
Name[nl]=SCSI
|
||||
Name[nn]=SCSI
|
||||
Name[oc]=SCSI
|
||||
Name[or]=SCSI
|
||||
Name[pa]=SCSI
|
||||
Name[pl]=SCSI
|
||||
Name[pt]=SCSI
|
||||
Name[pt_BR]=SCSI
|
||||
Name[ro]=Magistrala SCSI
|
||||
Name[ru]=SCSI
|
||||
Name[se]=SCSI
|
||||
Name[si]=SCSI
|
||||
Name[sk]=SCSI
|
||||
Name[sl]=SCSI
|
||||
Name[sr]=Скази
|
||||
Name[sr@ijekavian]=Скази
|
||||
Name[sr@ijekavianlatin]=SCSI
|
||||
Name[sr@latin]=SCSI
|
||||
Name[sv]=SCSI
|
||||
Name[ta]=SCSI
|
||||
Name[te]=SCSI
|
||||
Name[tg]=SCSI
|
||||
Name[th]=อุปกรณ์ SCSI
|
||||
Name[tr]=SCSI
|
||||
Name[uk]=SCSI
|
||||
Name[uz]=SCSI
|
||||
Name[uz@cyrillic]=SCSI
|
||||
Name[vi]=SCSI
|
||||
Name[wa]=SCSI
|
||||
Name[xh]=SCSI
|
||||
Name[x-test]=xxSCSIxx
|
||||
Name[zh_CN]=SCSI
|
||||
Name[zh_TW]=SCSI
|
||||
|
||||
Comment=SCSI information
|
||||
Comment[af]=Scsi informasie
|
||||
Comment[ar]=معلومات SCSI
|
||||
Comment[as]=SCSI তথ্য
|
||||
Comment[be]=Звесткі пра SCSI
|
||||
Comment[be@latin]=Źviestki pra SCSI
|
||||
Comment[bg]=Информация за шината SCSI
|
||||
Comment[bn]=স্কাসি (SCSI) তথ্য
|
||||
Comment[bn_IN]=SCSI সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar SCSI
|
||||
Comment[ca]=Informació de SCSI
|
||||
Comment[ca@valencia]=Informació de SCSI
|
||||
Comment[cs]=Informace o SCSI
|
||||
Comment[csb]=Wëdowiédzô ò SCSI
|
||||
Comment[cy]=Gwybodaeth SCSI
|
||||
Comment[da]=SCSI-information
|
||||
Comment[de]=Informationen zu SCSI-Geräten
|
||||
Comment[el]=Πληροφορίες SCSI
|
||||
Comment[en_GB]=SCSI information
|
||||
Comment[eo]=Informoj pri SCSI
|
||||
Comment[es]=Información sobre los dispositivos SCSI
|
||||
Comment[et]=SCSI info
|
||||
Comment[eu]=SCSIri buruzko informazioa
|
||||
Comment[fa]=اطلاعات اسکازی
|
||||
Comment[fi]=SCSI-tietoja
|
||||
Comment[fr]=Informations SCSI
|
||||
Comment[fy]=SCSI-ynformaasje
|
||||
Comment[ga]=Eolas SCSI
|
||||
Comment[gl]=Información de SCSI
|
||||
Comment[gu]=SCSI માહિતી
|
||||
Comment[he]=מידע על SCSI
|
||||
Comment[hi]=एससीएसआई जानकारी
|
||||
Comment[hne]=एससीएसआई जानकारी
|
||||
Comment[hr]=Podaci o SCSI sabirnici
|
||||
Comment[hsb]=SCSI informacija
|
||||
Comment[hu]=SCSI-információk
|
||||
Comment[id]=Informasi SCSI
|
||||
Comment[is]=Upplýsingar um SCSI-tæki
|
||||
Comment[it]=Informazioni sul bus SCSI
|
||||
Comment[ja]=SCSI の情報
|
||||
Comment[ka]=ინფორმაცია SCSI–ს შესახებ
|
||||
Comment[kk]=SCSI құрылғылар мәліметі
|
||||
Comment[km]=ព័ត៌មាន SCSI
|
||||
Comment[kn]=ಸ್ಕಿಸೀ (SCSI) ಮಾಹಿತಿ
|
||||
Comment[ko]=SCSI 정보
|
||||
Comment[ku]=Agahiya SCSI
|
||||
Comment[lt]=SCSI informacija
|
||||
Comment[lv]=SCSI informācija
|
||||
Comment[mai]=एससीएसआई सूचना
|
||||
Comment[mk]=Информации за SCSI
|
||||
Comment[ml]=സ്കസിയുടെ വിവരങ്ങള്
|
||||
Comment[mr]=एससीएसआई माहिती
|
||||
Comment[ms]=Maklumat SCSI
|
||||
Comment[nb]=SCSI-informasjon
|
||||
Comment[nds]=Informatschoon över SCSI
|
||||
Comment[ne]=एससीएसआई सूचना
|
||||
Comment[nl]=SCSI-informatie
|
||||
Comment[nn]=SCSI-informasjon
|
||||
Comment[or]=SCSI ସୂଚନା
|
||||
Comment[pa]=SCSI ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o SCSI
|
||||
Comment[pt]=Informação sobre o SCSI
|
||||
Comment[pt_BR]=Informações sobre SCSI
|
||||
Comment[ro]=Informații despre magistrala SCSI
|
||||
Comment[ru]=Сведения о устройствах SCSI
|
||||
Comment[se]=SCSI-diehtu
|
||||
Comment[si]=SCSI තොරතුරු
|
||||
Comment[sk]=Informácie o SCSI
|
||||
Comment[sl]=Podatki o vodilu SCSI
|
||||
Comment[sr]=Подаци о скази уређајима
|
||||
Comment[sr@ijekavian]=Подаци о скази уређајима
|
||||
Comment[sr@ijekavianlatin]=Podaci o SCSI uređajima
|
||||
Comment[sr@latin]=Podaci o SCSI uređajima
|
||||
Comment[sv]=SCSI-information
|
||||
Comment[ta]=SCSI தகவல்
|
||||
Comment[te]=SCSI సమాచారం
|
||||
Comment[tg]=Иттилооти SCSI
|
||||
Comment[th]=ข้อมูลอุปกรณ์ SCSI
|
||||
Comment[tr]=SCSI hakkında bilgi
|
||||
Comment[uk]=Інформація щодо SCSI
|
||||
Comment[uz]=SCSI uskunalar haqida maʼlumot
|
||||
Comment[uz@cyrillic]=SCSI ускуналар ҳақида маълумот
|
||||
Comment[vi]=Thông tin về SCSI
|
||||
Comment[wa]=Infôrmåcion SCSI
|
||||
Comment[xh]=Inkcukacha ye SCSI
|
||||
Comment[x-test]=xxSCSI informationxx
|
||||
Comment[zh_CN]=SCSI 信息
|
||||
Comment[zh_TW]=SCSI 資訊
|
||||
|
||||
X-KDE-Keywords=SCSI,SCSI-Bus,System Information
|
||||
X-KDE-Keywords[af]=SCSI,SCSI-Bus,System Informasie
|
||||
X-KDE-Keywords[be]=Шына SCSI,Сістэмная інфармацыя,SCSI,SCSI-Bus,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, шина, SCSI, SCSI-Bus, System Information
|
||||
X-KDE-Keywords[br]=SCSI,bus SCSI,titouroù reizhiad
|
||||
X-KDE-Keywords[ca]=SCSI,Bus SCSI,Informació del sistema
|
||||
X-KDE-Keywords[cs]=SCSI,SCSI-sběrnice,Informace o systému
|
||||
X-KDE-Keywords[csb]=SCSI,magistrala SCSI,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=SCSI,Bws-SCSI,Gwybodaeth Cysawd
|
||||
X-KDE-Keywords[da]=SCSI,SCSI-bus,Systeminformation
|
||||
X-KDE-Keywords[de]=SCSI,SCSI-Bus,Systeminformation
|
||||
X-KDE-Keywords[el]=SCSI,Δίαυλος SCSI,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=SCSI,buso,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=SCSI,Bus SCSI,Información del sistema
|
||||
X-KDE-Keywords[et]=SCSI,SCSI siin,Süsteemi info
|
||||
X-KDE-Keywords[eu]=SCSI,SCSI busa,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=اسکازی، گذرگاه اسکازی، اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=SCSI,SCSI-Väylä,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=SCSI,bus SCSI,informations système,scsi
|
||||
X-KDE-Keywords[fy]=SCSI,SCSI-bus,systeemynformaasje
|
||||
X-KDE-Keywords[ga]=SCSI,Bus SCSI,Eolas faoin Chóras
|
||||
X-KDE-Keywords[gl]=SCSI,Bus SCSI,Información do Sistema
|
||||
X-KDE-Keywords[he]=מידע מערכת,אפיק SCSI,SCSI,SCSI-Bus,System Information
|
||||
X-KDE-Keywords[hr]=SCSI,SCSI-Bus,System Information,Podaci o sustavu,SCSI sabirnica
|
||||
X-KDE-Keywords[hu]=SCSI,SCSI-busz,rendszerinformáció
|
||||
X-KDE-Keywords[is]=SCSI-braut,kerfi,upplýsingar
|
||||
X-KDE-Keywords[it]=SCSI,bus SCSI,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=SCSI,SCSI-バス,システムの情報
|
||||
X-KDE-Keywords[km]=SCSI ខ្សែបញ្ជូន SCSI ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=SCSI,SCSI 버스,시스템 정보
|
||||
X-KDE-Keywords[lt]=SCSI,SCSI-Bus,Sistemos Informacija
|
||||
X-KDE-Keywords[lv]=SCSI,SCSI-Šina,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=SCSI,SCSI-Bus,System Information,SCSI магистрала, SCSI собирница,Информации за системот,
|
||||
X-KDE-Keywords[nb]=SCSI,SCSI-buss,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=SCSI,SCSI-Bus,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=एससीएसआई, एससीएसआई-बस, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=SCSI,SCSI-bus,systeeminformatie
|
||||
X-KDE-Keywords[nn]=SCSI,SCSI-buss,systeminformasjon
|
||||
X-KDE-Keywords[pa]=SCSI,SCSI-Bus,ਸਿਸਟਮ ਜਾਣਕਾਰੀ
|
||||
X-KDE-Keywords[pl]=SCSI,magistrala SCSI,informacja o systemie
|
||||
X-KDE-Keywords[pt]=SCSI,bus SCSI,informações do sistema
|
||||
X-KDE-Keywords[pt_BR]=SCSI,Barramento SCSI,Informações de sistema
|
||||
X-KDE-Keywords[ro]=SCSI,magistrala SCSI,bus SCSI,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=SCSI,SCSI-bussa,vuogádatdiehtu
|
||||
X-KDE-Keywords[sl]=SCSI,vodilo SCSI,informacije o sistemu
|
||||
X-KDE-Keywords[sr]=SCSI,SCSI-Bus,System Information,скази,скази магистрала,системске информације,системски подаци
|
||||
X-KDE-Keywords[sr@latin]=SCSI,SCSI-Bus,System Information,SCSI,SCSI magistrala,sistemske informacije,sistemski podaci
|
||||
X-KDE-Keywords[sv]=SCSI,SCSI-buss,Systeminformation
|
||||
X-KDE-Keywords[ta]=SCSI,SCSI-பஸ்,அமைப்பு தகவல்
|
||||
X-KDE-Keywords[th]=SCSI,บัส SCSI,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=SCSI,SCSI-Bus,Sistem Hakkında Bilgi
|
||||
X-KDE-Keywords[uk]=SCSI,шина SCSI,системна інформація
|
||||
X-KDE-Keywords[uz]=SCSI,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=SCSI,SCSI-Bus,Thông tin Hệ thống
|
||||
X-KDE-Keywords[wa]=SCSI,bus SCSI,Infôrmåcion sol sistinme
|
||||
X-KDE-Keywords[x-test]=xxSCSI,SCSI-Bus,System Informationxx
|
||||
X-KDE-Keywords[xh]=SCSI,SCSI-Ibhasi,Ulwazi lwendlela
|
||||
X-KDE-Keywords[zh_CN]=SCSI,SCSI-Bus,System Information,SCSI 总线,系统信息
|
||||
X-KDE-Keywords[zh_TW]=SCSI,SCSI-Bus,System Information,系統資訊
|
||||
Categories=Qt;KDE;X-KDE-information;
|
|
@ -1,250 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 sound
|
||||
Icon=preferences-desktop-sound
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/sound/index.html
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=sound
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=Sound
|
||||
Name[af]=Klank
|
||||
Name[ar]=الصوت
|
||||
Name[as]=ধ্বনি
|
||||
Name[be]=Гук
|
||||
Name[be@latin]=Huk
|
||||
Name[bg]=Аудио
|
||||
Name[bn]=সাউণ্ড
|
||||
Name[bn_IN]=আওয়াজ
|
||||
Name[br]=Son
|
||||
Name[ca]=So
|
||||
Name[ca@valencia]=So
|
||||
Name[cs]=Zvuk
|
||||
Name[csb]=Zwãk
|
||||
Name[cy]=Sain
|
||||
Name[da]=Lyd
|
||||
Name[de]=Sound
|
||||
Name[el]=Ήχος
|
||||
Name[en_GB]=Sound
|
||||
Name[eo]=Sono
|
||||
Name[es]=Sonido
|
||||
Name[et]=Heli
|
||||
Name[eu]=Soinua
|
||||
Name[fa]=صوت
|
||||
Name[fi]=Ääni
|
||||
Name[fr]=Son
|
||||
Name[fy]=Lûd
|
||||
Name[ga]=Fuaim
|
||||
Name[gl]=Son
|
||||
Name[gu]=ધ્વનિ
|
||||
Name[he]=צליל
|
||||
Name[hi]=ध्वनि
|
||||
Name[hne]=अवाज
|
||||
Name[hr]=Zvuk
|
||||
Name[hsb]=Zwuk
|
||||
Name[hu]=Hang
|
||||
Name[id]=Suara
|
||||
Name[is]=Hljóð
|
||||
Name[it]=Suono
|
||||
Name[ja]=サウンド
|
||||
Name[ka]=ხმა
|
||||
Name[kk]=Дыбыс
|
||||
Name[km]=សំឡេង
|
||||
Name[kn]=ಧ್ವನಿ
|
||||
Name[ko]=소리
|
||||
Name[ku]=Deng
|
||||
Name[lt]=Garsas
|
||||
Name[lv]=Skaņa
|
||||
Name[mai]=ध्वनि
|
||||
Name[mk]=Звук
|
||||
Name[ml]=ശബ്ദം
|
||||
Name[mr]=आवाज
|
||||
Name[ms]=Bunyi
|
||||
Name[nb]=Lyd
|
||||
Name[nds]=Kläng
|
||||
Name[ne]=ध्वनि
|
||||
Name[nl]=Geluid
|
||||
Name[nn]=Lyd
|
||||
Name[oc]=Son
|
||||
Name[or]=ଧ୍ୱନୀ
|
||||
Name[pa]=ਸਾਊਂਡ
|
||||
Name[pl]=Dźwięk
|
||||
Name[pt]=Som
|
||||
Name[pt_BR]=Som
|
||||
Name[ro]=Sunet
|
||||
Name[ru]=Звук
|
||||
Name[se]=Jietna
|
||||
Name[si]=ශබ්ද
|
||||
Name[sk]=Zvuk
|
||||
Name[sl]=Zvok
|
||||
Name[sr]=Звук
|
||||
Name[sr@ijekavian]=Звук
|
||||
Name[sr@ijekavianlatin]=Zvuk
|
||||
Name[sr@latin]=Zvuk
|
||||
Name[sv]=Ljud
|
||||
Name[ta]=ஒலி
|
||||
Name[te]=శబ్దం
|
||||
Name[tg]=Садо
|
||||
Name[th]=ระบบเสียง
|
||||
Name[tr]=Ses
|
||||
Name[uk]=Звук
|
||||
Name[uz]=Tovush
|
||||
Name[uz@cyrillic]=Товуш
|
||||
Name[vi]=Âm thanh
|
||||
Name[wa]=Son
|
||||
Name[xh]=Isandi
|
||||
Name[x-test]=xxSoundxx
|
||||
Name[zh_CN]=音效
|
||||
Name[zh_TW]=音效
|
||||
|
||||
Comment=Sound information
|
||||
Comment[af]=Klank informasie
|
||||
Comment[ar]=معلومات الصوت
|
||||
Comment[as]=ধ্বনিৰ তথ্য
|
||||
Comment[be]=Звесткі пра гук
|
||||
Comment[be@latin]=Źviestki pra huk
|
||||
Comment[bg]=Информация за аудио системата
|
||||
Comment[bn]=শব্দ সংক্রান্ত তথ্য
|
||||
Comment[bn_IN]=আওয়াজ সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar son
|
||||
Comment[ca]=Informació del so
|
||||
Comment[ca@valencia]=Informació del so
|
||||
Comment[cs]=Informace o zvuku
|
||||
Comment[csb]=Wëdowiédzô ò nastôwach zwãkù
|
||||
Comment[cy]=Gwybodaeth Sain
|
||||
Comment[da]=Information om lyd
|
||||
Comment[de]=Informationen zur Soundkarte
|
||||
Comment[el]=Πληροφορίες για τον Ήχο
|
||||
Comment[en_GB]=Sound information
|
||||
Comment[eo]=Informo pri sono
|
||||
Comment[es]=Información sobre el sonido
|
||||
Comment[et]=Heliseadmete info
|
||||
Comment[eu]=Soinuari buruzko informazioa
|
||||
Comment[fa]=اطلاعات صوتی
|
||||
Comment[fi]=Äänitiedot
|
||||
Comment[fr]=Informations sur le son
|
||||
Comment[fy]=Lûdssysteemynformaasje
|
||||
Comment[ga]=Eolas fuaime
|
||||
Comment[gl]=Información do son
|
||||
Comment[gu]=ધ્વનિ માહિતી
|
||||
Comment[he]=מידע על מערכת הצליל
|
||||
Comment[hi]=ध्वनि जानकारी
|
||||
Comment[hne]=अवाज जानकारी
|
||||
Comment[hr]=Podaci o zvuku
|
||||
Comment[hsb]=Informacija wo zwuku
|
||||
Comment[hu]=A hangkezelés jellemzői
|
||||
Comment[id]=Informasi Suara
|
||||
Comment[is]=Upplýsingar um hljóð
|
||||
Comment[it]=Informazioni sul suono
|
||||
Comment[ja]=サウンドの情報
|
||||
Comment[ka]=ინფორმაცია ხმის შესახებ
|
||||
Comment[kk]=Дыбыс мәліметі
|
||||
Comment[km]=ព័ត៌មានសំឡេង
|
||||
Comment[kn]=ಧ್ವನಿ ಮಾಹಿತಿ
|
||||
Comment[ko]=소리 정보
|
||||
Comment[ku]=Agahiya Dengî
|
||||
Comment[lt]=Garso informacija
|
||||
Comment[lv]=Skaņas informācija
|
||||
Comment[mai]=ध्वनि सूचना
|
||||
Comment[mk]=Информации за звукот
|
||||
Comment[ml]=ശബ്ദത്തിന്റെ വിവരങ്ങള്
|
||||
Comment[mr]=ध्वनि माहिती
|
||||
Comment[ms]=Maklumat bunyi
|
||||
Comment[nb]=Lydinformasjon
|
||||
Comment[nds]=Klang-Informatschoon
|
||||
Comment[ne]=ध्वनि सूचना
|
||||
Comment[nl]=Geluidssysteeminformatie
|
||||
Comment[nn]=Lydinformasjon
|
||||
Comment[or]=ଧ୍ୱନି ସୂଚନା
|
||||
Comment[pa]=ਸਾਊਂਡ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o ustawieniach dźwięku
|
||||
Comment[pt]=Informação sobre o som
|
||||
Comment[pt_BR]=Informações sobre o som
|
||||
Comment[ro]=Informații despre placa de sunet
|
||||
Comment[ru]=Сведения о звуковой системе
|
||||
Comment[se]=Jietnadiehtu
|
||||
Comment[si]=ශබ්ද තොරතුරු
|
||||
Comment[sk]=Informácie o zvuku
|
||||
Comment[sl]=Podatki o zvoku
|
||||
Comment[sr]=Подаци о звуку
|
||||
Comment[sr@ijekavian]=Подаци о звуку
|
||||
Comment[sr@ijekavianlatin]=Podaci o zvuku
|
||||
Comment[sr@latin]=Podaci o zvuku
|
||||
Comment[sv]=Ljudinformation
|
||||
Comment[ta]=ஒலித் தகவல்
|
||||
Comment[te]=శబ్ద సమాచారం
|
||||
Comment[tg]=Иттилооти садо
|
||||
Comment[th]=ข้อมูลระบบเสียง
|
||||
Comment[tr]=Ses hakkında bilgi
|
||||
Comment[uk]=Інформація щодо звукової карти
|
||||
Comment[uz]=Tovush haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Товуш ҳақида маълумот
|
||||
Comment[vi]=Thông tin về âm thanh
|
||||
Comment[wa]=Infôrmåcion sol son
|
||||
Comment[xh]=Inkcukacha yesandi
|
||||
Comment[x-test]=xxSound informationxx
|
||||
Comment[zh_CN]=音响效果信息
|
||||
Comment[zh_TW]=音效資訊
|
||||
|
||||
X-KDE-Keywords=Sound,Audio,Soundcard,MIDI,OSS,System Information
|
||||
X-KDE-Keywords[af]=Sound,Audio,Soundcard,Midi,OSS,System Informasie
|
||||
X-KDE-Keywords[be]=Гук,Аўдыё,Гукавая карта,Сістэмная інфармацыя,Сінтэзатар,Sound,Audio,Soundcard,MIDI,OSS,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, аудио, звук Sound, Audio, Soundcard, MIDI, OSS, System Information
|
||||
X-KDE-Keywords[br]=Son,klevet,kartenn son,MIDI,OSS,titouroù reizhiad
|
||||
X-KDE-Keywords[ca]=So,Àudio,tarja de so,MIDI,OSS,Informació del sistema
|
||||
X-KDE-Keywords[cs]=Zvuk,Audio,Zvuková karta,Midi,OSS,Informace o systému
|
||||
X-KDE-Keywords[csb]=zwãk,audio,zwãkòwô karta,Midi,OSS,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=Sain,Swn,Cerdyn Sain,Midi,OSS,Gwybodaeth Gysawd
|
||||
X-KDE-Keywords[da]=Lyd,Audio,Lydkort,MIDI,OSS,Systeminformation
|
||||
X-KDE-Keywords[de]=Klänge,Sound,Audio,Soundkarte,Systemklänge,Midi,OSS,Systeminformation
|
||||
X-KDE-Keywords[el]=Ήχος,Μουσική,Κάρτα ήχου,MIDI,OSS,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=Sonoro,Sono,Aŭdio,Sonorkarto,MIDI,OSS,sistemo,informo,operaciumo
|
||||
X-KDE-Keywords[es]=Sonido,Audio,Tarjeta de sonido,MIDI,OSS,Información del sistema
|
||||
X-KDE-Keywords[et]=Heli,Audio,Helikaart,MIDI,OSS,Süsteemi info
|
||||
X-KDE-Keywords[eu]=Soinua,Audioa,Soinu txartela,Midi,OSS,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=صوت، صوتی، کارت صوتی ،MIDI ،OSS ،اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=Ääni,Äänikortti,Midi,OSS,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=son,audio,carte son,midi,OSS,informations système
|
||||
X-KDE-Keywords[fy]=lûd,audio,soundcard,midi,OSS,systeemynformaasje,ALSA,lûdskaart
|
||||
X-KDE-Keywords[ga]=Fuaim,Cárta Fuaime,MIDI,OSS,Eolas faoin Chóras
|
||||
X-KDE-Keywords[gl]=Son,Audio,Tarxeta de son,Midi,OSS,Información do Sistema
|
||||
X-KDE-Keywords[he]=מידע מערכת,OSS,Midi,צליל,שמע,כרטיס קול,מידי,Sound, Audio,Soundcard,MIDI,OSS,System Information
|
||||
X-KDE-Keywords[hr]=Sound,Audio,Soundcard,Midi,OSS,System Information,Zvuk,Podaci o sustavu,Zvučna kartica
|
||||
X-KDE-Keywords[hu]=hang,audió,hangkártya,MIDI,OSS,rendszerinformáció
|
||||
X-KDE-Keywords[is]=Hljóð,Hljóðkort,kerfi,upplýsingar,OSS,MIDI
|
||||
X-KDE-Keywords[it]=suono,audio,scheda sonora,MIDI,OSS,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=サウンド,オーディオ,サウンドカード,MIDI,OSS,システムの情報
|
||||
X-KDE-Keywords[ka]=ხმა,აუდიო,აუდიოდაბა,MIDI,OSS,ინფორმაცია სისტემის შესახებ
|
||||
X-KDE-Keywords[km]=សំឡេង អូឌីយ៉ូ កាតសំឡេង មីឌី OSS ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=사운드,소리,오디오,사운드 카드,MIDI,OSS,시스템 정보
|
||||
X-KDE-Keywords[lt]=Garsas,Audio,Garso korta,Midi,OSS,Sistemos informacija
|
||||
X-KDE-Keywords[lv]=Skaņa,Audio,Skaņaskarte,MIDI,OSS,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=Sound,Audio,Soundcard,MIDI,OSS,System Information,Звук,Аудио,Звучна картичка,Информации за системот
|
||||
X-KDE-Keywords[nb]=Lyd,Lydkort,Midi,OSS,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=Klang,Audio,Soundkort,Midi,OSS,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=ध्वनि, अडियो, ध्वनि कार्ड, MIDI, OSS, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=geluid,audio,soundcard,midi,OSS,systeeminformatie,ALSA,geluidskaart
|
||||
X-KDE-Keywords[nn]=lyd,lydkort,MIDI,OSS,systeminformasjon
|
||||
X-KDE-Keywords[pa]=Sound,Audio,Soundcard,MIDI,OSS,ਸਿਸਟਮ ਜਾਣਕਾਰੀ,ਆਡੀਓ,ਸਾਊਂਡਕਾਰਡ
|
||||
X-KDE-Keywords[pl]=dźwięk,audio,karta dźwiekowa,Midi,OSS,informacja o systemie
|
||||
X-KDE-Keywords[pt]=som,áudio,placa de som,midi,oss,informações de sistema
|
||||
X-KDE-Keywords[pt_BR]=Som,Áudio,placa de som,MIDI,OSS,Informações de sistema
|
||||
X-KDE-Keywords[ro]=sunet,audio,placă de sunet,card de sunet,MIDI,OSS,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=jietna,jietnagoarta,midi,OSS,vuogádatdiehtu
|
||||
X-KDE-Keywords[sl]=zvok,glasba,zvočna kartica,avdio,midi,OSS,informacije o sistemu
|
||||
X-KDE-Keywords[sr]=Sound,Аудио,Soundcard,Midi,OSS,System Information,звук,аудио,звучна карта,звучна картица,МИДИ,ОСС,системске информације,системски подаци
|
||||
X-KDE-Keywords[sr@latin]=Sound,Audio,Soundcard,Midi,OSS,System Information,zvuk,audio,zvučna karta,zvučna kartica,MIDI,OSS,sistemske informacije,sistemski podaci
|
||||
X-KDE-Keywords[sv]=Ljud,Ljudkort,Midi,OSS,Systeminformation
|
||||
X-KDE-Keywords[ta]=ஒலி,ஒலி அமைப்பு,ஒலி அட்டை,மிடி,OSS,சாதன தகவல்
|
||||
X-KDE-Keywords[th]=เสียง,ระบบเสียง,แผงวงจรเสียง,มิดี้,OSS,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=Ses,Seskartı,Midi,OSS,Sistem Bilgisi,MIDI
|
||||
X-KDE-Keywords[uk]=звук,аудіо,sound,audio,звукова плата,midi,oss,системна інформація
|
||||
X-KDE-Keywords[uz]=MIDI,OSS,Товуш,Аудио,Товуш картаси,Тизм ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=Âm thanh,âm,Thẻ âm thanh,MIDI,OSS,Thông tin Hệ thống
|
||||
X-KDE-Keywords[x-test]=xxSound,Audio,Soundcard,MIDI,OSS,System Informationxx
|
||||
X-KDE-Keywords[zh_CN]=Sound,Audio,Soundcard,MIDI,OSS,System Information,音频,音响,声卡,系统信息
|
||||
X-KDE-Keywords[zh_TW]=Sound,Audio,Soundcard,Midi,OSS,系統資訊
|
||||
Categories=Qt;KDE;X-KDE-information;
|
|
@ -1,245 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 xserver
|
||||
Icon=xorg
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/xserver/index.html
|
||||
|
||||
|
||||
X-KDE-Library=kcm_info
|
||||
X-KDE-PluginKeyword=xserver
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=X-Server
|
||||
Name[af]=X-bediener
|
||||
Name[ar]=خادم X
|
||||
Name[as]=X-Server
|
||||
Name[be]=Сервер X
|
||||
Name[be@latin]=Server X
|
||||
Name[bg]=Сървър X
|
||||
Name[bn]=এক্স-সার্ভার
|
||||
Name[bn_IN]=X-Server
|
||||
Name[br]=Servijer X
|
||||
Name[ca]=Servidor X
|
||||
Name[ca@valencia]=Servidor X
|
||||
Name[cs]=X-Server
|
||||
Name[csb]=X-Serwer
|
||||
Name[cy]=Gweinydd-X
|
||||
Name[da]=X-server
|
||||
Name[de]=X-Server
|
||||
Name[el]=Εξυπηρετητής-X
|
||||
Name[en_GB]=X-Server
|
||||
Name[eo]=X-servilo
|
||||
Name[es]=Servidor X
|
||||
Name[et]=X'i server
|
||||
Name[eu]=X zerbitzaria
|
||||
Name[fa]=کارساز X
|
||||
Name[fi]=X-palvelin
|
||||
Name[fr]=Serveur X
|
||||
Name[fy]=X-Server
|
||||
Name[ga]=Freastalaí X
|
||||
Name[gl]=Servidor X
|
||||
Name[gu]=X-Server
|
||||
Name[he]=שרת X
|
||||
Name[hi]=X-सर्वर
|
||||
Name[hne]=X-सर्वर
|
||||
Name[hr]=X-poslužitelj
|
||||
Name[hsb]=X-Server
|
||||
Name[hu]=X-kiszolgáló
|
||||
Name[id]=X-Server
|
||||
Name[is]=X-þjónn
|
||||
Name[it]=Server X
|
||||
Name[ja]=X サーバ
|
||||
Name[ka]=X-სერვერი
|
||||
Name[kk]=X-сервер
|
||||
Name[km]=ម៉ាស៊ីនបម្រើ X
|
||||
Name[kn]=ಕ್ಸ-ಪರಿಚಾರಕ (ಸರ್ವರ್)
|
||||
Name[ko]=X 서버
|
||||
Name[ku]=Pêşkêşkara X
|
||||
Name[lt]=X-Serveris
|
||||
Name[lv]=X-Serveris
|
||||
Name[mai]=X-सर्वर
|
||||
Name[mk]=X-сервер
|
||||
Name[ml]=എക്സ്-സെര്വര്
|
||||
Name[mr]=X-सर्वर
|
||||
Name[ms]=Pelayan X
|
||||
Name[nb]=X-tjener
|
||||
Name[nds]=X-Server
|
||||
Name[ne]=एक्स-सर्भर
|
||||
Name[nl]=X-server
|
||||
Name[nn]=X-tenar
|
||||
Name[or]=X-ସର୍ଭର
|
||||
Name[pa]=X-ਸਰਵਰ
|
||||
Name[pl]=X-Serwer
|
||||
Name[pt]=Servidor X
|
||||
Name[pt_BR]=Servidor X
|
||||
Name[ro]=Server X
|
||||
Name[ru]=X-Server
|
||||
Name[se]=X-bálvá
|
||||
Name[si]=X-Server
|
||||
Name[sk]=X-Server
|
||||
Name[sl]=Strežnik X
|
||||
Name[sr]=Икс‑сервер
|
||||
Name[sr@ijekavian]=Икс‑сервер
|
||||
Name[sr@ijekavianlatin]=X-server
|
||||
Name[sr@latin]=X-server
|
||||
Name[sv]=X-server
|
||||
Name[ta]=X-வழங்கி
|
||||
Name[te]=ఎక్స్-సెర్వర్
|
||||
Name[tg]=Хидматгоҳи X
|
||||
Name[th]=เซิร์ฟเวอร์ X
|
||||
Name[tr]=X-Sunucusu
|
||||
Name[uk]=Сервер X
|
||||
Name[uz]=X-Server
|
||||
Name[uz@cyrillic]=X-Сервер
|
||||
Name[vi]=Trình phục vụ X
|
||||
Name[wa]=Sierveu X
|
||||
Name[xh]=Umncedisi we-X
|
||||
Name[x-test]=xxX-Serverxx
|
||||
Name[zh_CN]=X 服务器
|
||||
Name[zh_TW]=X 伺服器
|
||||
|
||||
Comment=X-Server information
|
||||
Comment[af]=X-bediener informasie
|
||||
Comment[ar]=معلومات عن خادم X
|
||||
Comment[as]=X-Server ৰ তথ্য
|
||||
Comment[be]=Звесткі пра сервер X
|
||||
Comment[be@latin]=Źviestki pra server X
|
||||
Comment[bg]=Информация за сървъра X
|
||||
Comment[bn]=এক্স-সার্ভার সংক্রান্ত তথ্য
|
||||
Comment[bn_IN]=X-সার্ভার সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar servijer X
|
||||
Comment[ca]=Informació del servidor X
|
||||
Comment[ca@valencia]=Informació del servidor X
|
||||
Comment[cs]=Informace o X-Serveru
|
||||
Comment[csb]=Wëdowiédzô ò X-serwerze
|
||||
Comment[cy]=Gwybodaeth Gweinydd-X
|
||||
Comment[da]=Information om X-serveren
|
||||
Comment[de]=Informationen zum X-Server
|
||||
Comment[el]=Πληροφορίες εξυπηρετητή X
|
||||
Comment[en_GB]=X-Server information
|
||||
Comment[eo]=Informo pri X-servilo
|
||||
Comment[es]=Información sobre el servidor X
|
||||
Comment[et]=X'i serveri info
|
||||
Comment[eu]=X zerbitzariari buruzko informazioa
|
||||
Comment[fa]=اطلاعات کارساز X
|
||||
Comment[fi]=X-palvelimen tiedot
|
||||
Comment[fr]=Informations sur le serveur X
|
||||
Comment[fy]=X-Server-ynformaasje
|
||||
Comment[ga]=Eolas faoin bhfreastalaí X
|
||||
Comment[gl]=Información do servidor X
|
||||
Comment[gu]=X-Server માહિતી
|
||||
Comment[he]=מידע על שרת ה־X
|
||||
Comment[hi]=एक्स-सर्वर जानकारी
|
||||
Comment[hne]=एक्स-सर्वर जानकारी
|
||||
Comment[hr]=Podaci o X-poslužitelju
|
||||
Comment[hsb]=Informacija wo X-Serweru
|
||||
Comment[hu]=Az X-kiszolgáló jellemzői
|
||||
Comment[id]=Informasi X-Server
|
||||
Comment[is]=Upplýsingar um X-þjón
|
||||
Comment[it]=Informazioni sul server X
|
||||
Comment[ja]=X サーバの情報
|
||||
Comment[ka]=ინფორმაცია X-სერვერის შესახებ
|
||||
Comment[kk]=X-сервер мәліметі
|
||||
Comment[km]=ព័ត៌មានម៉ាស៊ីនបម្រើ X
|
||||
Comment[kn]=ಕ್ಸ-ಪರಿಚಾರಕ (ಸರ್ವರ್) ಮಾಹಿತಿ
|
||||
Comment[ko]=X 서버 정보
|
||||
Comment[ku]=Agahiya Pêşkêşkara X
|
||||
Comment[lt]=X-Serverio informacija
|
||||
Comment[lv]=X-Servera informācija
|
||||
Comment[mai]=एक्स-सर्वर सूचना
|
||||
Comment[mk]=Информации за X-серверот
|
||||
Comment[ml]=എക്സ് സേവകനെക്കുറിച്ചുള്ള വിവരങ്ങള്
|
||||
Comment[mr]=एक्स-सर्वर माहिती
|
||||
Comment[ms]=Maklumat Pelayan X
|
||||
Comment[nb]=X-tjenerinformasjon
|
||||
Comment[nds]=Informatschoon över den X-Server
|
||||
Comment[ne]=एक्स-सर्भर सूचना
|
||||
Comment[nl]=X-Server-informatie
|
||||
Comment[nn]=X-tenarinformasjon
|
||||
Comment[or]=X-ସର୍ଭର ସୂଚନା
|
||||
Comment[pa]=X-ਸਰਵਰ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o X-serwerze
|
||||
Comment[pt]=Informações sobre o servidor X
|
||||
Comment[pt_BR]=Informações do servidor X
|
||||
Comment[ro]=Informații despre serverul X
|
||||
Comment[ru]=Сведения о сервере X
|
||||
Comment[se]=X-bálvádiehtu
|
||||
Comment[si]=X-සංග්රහක තොරතුරු
|
||||
Comment[sk]=Informácie o X serveri
|
||||
Comment[sl]=Podatki o strežniku X
|
||||
Comment[sr]=Подаци о Икс‑серверу
|
||||
Comment[sr@ijekavian]=Подаци о Икс‑серверу
|
||||
Comment[sr@ijekavianlatin]=Podaci o X-serveru
|
||||
Comment[sr@latin]=Podaci o X-serveru
|
||||
Comment[sv]=X-serverinformation
|
||||
Comment[ta]=X-வழங்கி விவரம்
|
||||
Comment[te]=ఎక్స్-సెర్వర్ సమాచారం
|
||||
Comment[tg]=Иттилооти хидматгоҳи X
|
||||
Comment[th]=ข้อมูลเซิร์ฟเวอร์ X
|
||||
Comment[tr]=X-Sunucusu hakkında bilgi
|
||||
Comment[uk]=Інформація щодо сервера X
|
||||
Comment[uz]=X-Server haqida maʼlumot
|
||||
Comment[uz@cyrillic]=X-Сервер ҳақида маълумот
|
||||
Comment[vi]=Thông tin về trình phục vụ X
|
||||
Comment[wa]=Infôrmåcion sol sierveu X
|
||||
Comment[xh]=Ulwazi lomncedisi we-X
|
||||
Comment[x-test]=xxX-Server informationxx
|
||||
Comment[zh_CN]=X 服务器信息
|
||||
Comment[zh_TW]=X 伺服器資訊
|
||||
|
||||
X-KDE-Keywords=X,X-Server,XServer,XFree86,Display,VideoCard,System Information
|
||||
X-KDE-Keywords[be]=Сервер X,Дысплей,Відэакарта,Сістэмная інфармацыя,X,X-Server,XServer,XFree86,Display,VideoCard,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=екран, видеокарта, системна информация, сървър, X, X-Server, XServer, XFree86, Display, VideoCard, System Information
|
||||
X-KDE-Keywords[br]=X,servijer X,XServer,XFree86,diskwel,kartenn video,titouroù reizhiad
|
||||
X-KDE-Keywords[ca]=X,Servidor X,XServer,XFree86,Monitor,Targeta de video,Informació del sistema
|
||||
X-KDE-Keywords[cs]=X,X-server,XServer,XFree86,Obrazovka,Informace o systému,Videokarta
|
||||
X-KDE-Keywords[csb]=X,X serwer,Xserwer,XFree86,graficznô karta,grafika,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[da]=X,X-server,Xserver,XFree86,Skærm,Videokort,Systeminformation
|
||||
X-KDE-Keywords[el]=X,Εξυπηρετητής-X,XServer,XFree86,Οθόνη,Κάρτα Γραφικών, Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=X,X-servilo,XFree86,ekrano,fenestroj,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=X,X-Server,XServer,XFree86,Monitor,Tarjeta, Gráfica,Sistema,Información
|
||||
X-KDE-Keywords[et]=X,X'i server,X Server,XFree86,Ekraan,Videokaart,Süsteemi info
|
||||
X-KDE-Keywords[eu]=X,X-Server,XServer,XFree86,Display,VideoCard,sistema informazioa
|
||||
X-KDE-Keywords[fa]=X، کارساز، X، XServer، XFree86، صفحه نمایش، کارت ویدیو، اطلاعات سیستم
|
||||
X-KDE-Keywords[fr]=X,serveur X,XFree86,XServer,moniteur,affichage,informations système,xfree,carte vidéo,carte graphique
|
||||
X-KDE-Keywords[fy]=X,X-Server,XServer,XFree86,display,systeemynformaasje,byldskerm,grafyske kaart
|
||||
X-KDE-Keywords[ga]=X,Freastalaí-X,XFree86,Scáileán,Físchárta,Eolas faoin Chóras
|
||||
X-KDE-Keywords[gl]=X,Servidor X,XServer,XFree86,Pantalla,Display,Información do Sistema
|
||||
X-KDE-Keywords[he]=תצוגה,מידע מערכת,XFree86,שרת X,X, כרטיס מסך,X-Server,XServer,XFree86,Display,VideoCard, System Information, Xorg
|
||||
X-KDE-Keywords[hr]=X,X-Server,XServer,XFree86,Display,VideoCard,System Information,X-poslužitelj,X poslužitelj,Zaslon,Video kartica,Grafička kartica,Podaci o sustavu
|
||||
X-KDE-Keywords[hu]=X,X-kiszolgáló,XServer,XFree86,képernyő,videokártya,rendszerinformáció
|
||||
X-KDE-Keywords[is]=X,X-Server,X-þjónn,XServer,Xþjónn,XFree86,Display,skjár, VideoCard,skjákort,System Information,kerfisupplýsingar
|
||||
X-KDE-Keywords[it]=X,Server X,XServer,XFree86,display,schermo,informazioni sul sistema,SchedaVideo
|
||||
X-KDE-Keywords[ja]=X,X-サーバ,Xサーバ,XFree86,ディスプレイ,システム情報
|
||||
X-KDE-Keywords[ka]=X,X-სერვერი,Xსერვერი,XFree86,დსიპლეი, ვიდეოდაფა,ინფორმაცია სისტების შესახებ
|
||||
X-KDE-Keywords[km]=X ម៉ាស៊ីនបម្រើ X ម៉ាស៊ីនបម្រើ X XFree86 ការបង្ហាញ កាតវីដេអូ ព័័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=X,X 서버,XFree86,디스플레이,비디오 카드,시스템 정보
|
||||
X-KDE-Keywords[lt]=X,X-Serveris,XServer,XFree86,Displėjus,Video plokštė,Sistemos informacija
|
||||
X-KDE-Keywords[lv]=X,X-Serveris,XServeris,XFree86,Ekrāns,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=X,X-Server,XServer,XFree86,Display,VideoCard,System Information,X сервер,Екран,Видеокартичка,Информации за системот
|
||||
X-KDE-Keywords[nb]=X,X-tjener,Xtjener,XFree86,skjerm,videokort,systeminformasjon
|
||||
X-KDE-Keywords[nds]=X,X-Server,XServer,XFree86,Display,Dorstellen,Videokort,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=X, X-सर्भर, Xसर्भर, Xस्वतन्त्र 86, प्रदर्शन गर्नुहोस्, भिडियो कार्ड, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=X,X-Server,XServer,XFree86,display,systeeminformatie,beeldscherm,videokaart
|
||||
X-KDE-Keywords[nn]=X,X-tenar,XServer,XFree86,skjerm,skjermkort,systeminformasjon
|
||||
X-KDE-Keywords[pa]=X,X-Server,XServer,XFree86,ਦਰਿਸ਼,ਵੀਡਿਓ ਕਾਰਡ,ਸਿਸਟਮ ਜਾਣਕਾਰੀ
|
||||
X-KDE-Keywords[pl]=X,X serwer,Xserwer,XFree86,karta graficzna,grafika,informacja o systemie
|
||||
X-KDE-Keywords[pt]=X,servidor X,XServer,XFree86,ecrã,placa de vídeo,informações de sistema
|
||||
X-KDE-Keywords[pt_BR]=X,Servidor X,XFree,XFree86,Display,Tela,Placa de Vídeo,Informações do sistema
|
||||
X-KDE-Keywords[ro]=X,server X,XServer,XFree86,ecran,afişare,placă video,informaţii despre sistem
|
||||
X-KDE-Keywords[sl]=X,strežnik X,X-strežnik,XServer,XFree86,zaslon,grafična kartica,Podatki o sistemu,sistemske informacije
|
||||
X-KDE-Keywords[sr]=X,X-Server,XServer,XFree86,XOrg,Display,VideoCard,System Information,Икс,Икс-сервер,Икс-фри86,Икс-орг,екран,видео картица,системске информације,системски подаци
|
||||
X-KDE-Keywords[sr@latin]=X,X-Server,XServer,XFree86,XOrg,Display,VideoCard,System Information,X,X-server,XFree86,XOrg,ekran,video kartica,sistemske informacije,sistemski podaci
|
||||
X-KDE-Keywords[sv]=X,X-server,Xserver,Xfree86,skärm,videokort,systeminformation
|
||||
X-KDE-Keywords[ta]=X,X-சேவகன்,Xசேவகன்,XFree86, காட்சி,படக்காட்சிஅட்டை,அமைப்பு தகவல்
|
||||
X-KDE-Keywords[th]=X,เซิร์ฟเวอร์ X,XServer,XFree86,จอแสดงผล,แผงวงจรวิดีโอ,ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=X,X-Server,XServer,X sunucu, X-sunucu,Xsunucu,XFree86,Görüntü,Video Kartı,Sistem Bilgisi
|
||||
X-KDE-Keywords[uk]=X,X-Server,XServer,XFree86,Display,системна інформація,монітор,X сервер,відео карта
|
||||
X-KDE-Keywords[uz]=X,X сервер,XFree86,xorg,X-Сервер,Дисплей,видео карта,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=X,Trình phục vụ X,XServer,XFree86,Màn hình,Thông tin Hệ thống
|
||||
X-KDE-Keywords[x-test]=xxX,X-Server,XServer,XFree86,Display,VideoCard,System Informationxx
|
||||
X-KDE-Keywords[zh_CN]=X,X-Server,XServer,XFree86,Display,VideoCard,System InformationX 服务器,显示器,显卡,系统信息
|
||||
X-KDE-Keywords[zh_TW]=X,X-Server,XServer,XFree86,Display,VideoCard,System Information,X 伺服器,X伺服器,顯示器,顯示卡,系統資訊
|
||||
|
||||
Categories=Qt;KDE;X-KDE-information;
|
|
@ -1,20 +0,0 @@
|
|||
|
||||
|
||||
|
||||
########### next target ###############
|
||||
|
||||
set(kcm_ioslaveinfo_PART_SRCS kcmioslaveinfo.cpp )
|
||||
|
||||
|
||||
kde4_add_plugin(kcm_ioslaveinfo ${kcm_ioslaveinfo_PART_SRCS})
|
||||
|
||||
|
||||
target_link_libraries(kcm_ioslaveinfo ${KDE4_KHTML_LIBS} ${QT_QTGUI_LIBRARY})
|
||||
|
||||
install(TARGETS kcm_ioslaveinfo DESTINATION ${PLUGIN_INSTALL_DIR} )
|
||||
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES ioslaveinfo.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
#! /usr/bin/env bash
|
||||
$XGETTEXT *.cpp -o $podir/kcmioslaveinfo.pot
|
|
@ -1,238 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Comment=Information about available protocols
|
||||
Comment[af]=Informasie oor beskikbare protokolle
|
||||
Comment[ar]=معلومات حول البروتوكولات المتوفرة
|
||||
Comment[as]=উপলব্ধ আচাৰ বিধিৰ বিষয়ে তথ্য
|
||||
Comment[be@latin]=Źviestki pra najaŭnyja pratakoły
|
||||
Comment[bg]=Информация за поддържаните протоколи
|
||||
Comment[bn]=বিভিন্ন প্রোটোকল সম্বন্ধে তথ্য
|
||||
Comment[bn_IN]=উপলব্ধ প্রোটোকল সংক্রান্ত তথ্য
|
||||
Comment[ca]=Informació sobre els protocols disponibles
|
||||
Comment[ca@valencia]=Informació sobre els protocols disponibles
|
||||
Comment[cs]=Informace o dostupných protokolech
|
||||
Comment[csb]=Wëdowiédzô ò przëstãpnëch protokòłach
|
||||
Comment[da]=Information om tilgængelige protokoller
|
||||
Comment[de]=Information zu den verfügbaren Ein-/Ausgabemodulen
|
||||
Comment[el]=Πληροφορίες για τα διαθέσιμα πρωτόκολλα
|
||||
Comment[en_GB]=Information about available protocols
|
||||
Comment[eo]=Informoj pri la uzeblaj protokoloj
|
||||
Comment[es]=Información sobre los protocolos disponibles
|
||||
Comment[et]=Olemasolevate protokollide info
|
||||
Comment[eu]=Protokolo eskuragarriei buruzko informazioa
|
||||
Comment[fi]=Tietoja saatavilla olevista yhteyskäytännöistä
|
||||
Comment[fr]=Informations sur les protocoles disponibles
|
||||
Comment[fy]=Ynformaasje oer de beskikbere protokollen
|
||||
Comment[ga]=Eolas faoi na prótacail atá ar fáil
|
||||
Comment[gl]=Información acerca dos protocolos dispoñíbeis
|
||||
Comment[gu]=પ્રાપ્ત પ્રોટોકોલ્સ વિશે માહિતી
|
||||
Comment[he]=מידע על הפרוטוקולים הזמינים
|
||||
Comment[hi]=उपलब्ध प्रोटोकॉलों के बारे में जानकारी
|
||||
Comment[hne]=मिलत प्रोटोकाल्स बर परिचय जानकारी
|
||||
Comment[hr]=Informacije o raspoloživim protokolima
|
||||
Comment[hsb]=Informacija wo přistupnych protokolach
|
||||
Comment[hu]=A rendelkezésre álló protokollok jellemzői
|
||||
Comment[id]=Informasi tentang protokol yang tersedia
|
||||
Comment[is]=Upplýsingar um nothæfar samskiptareglur
|
||||
Comment[it]=Informazioni sui protocolli disponibili
|
||||
Comment[ja]=利用可能なプロトコルの情報
|
||||
Comment[kk]=Қол жектізер протоколдары туралы мәлімет
|
||||
Comment[km]=ព័ត៌មានអំពីពិធីការដែលមាន
|
||||
Comment[kn]=ಲಭ್ಯವಿರುವ ಪ್ರಕ್ರಮಗಳ (ಪ್ರೋಟೋಕಾಲ್) ಬಗೆಗೆ ಮಾಹಿತಿ
|
||||
Comment[ko]=사용 가능한 프로토콜 정보
|
||||
Comment[ku]=Agahiyên der barê protokolên heyî de
|
||||
Comment[lt]=Informacija apie esamus protokolus
|
||||
Comment[lv]=Informācija par pieejamajiem protokoliem
|
||||
Comment[mai]=उपलब्ध प्रोटोकालक संबंधमे जानकारी
|
||||
Comment[mk]=Информации за достапните протоколи
|
||||
Comment[ml]=ലഭ്യമായ പ്രോട്ടോക്കോളുകളെ സംബന്ധിച്ച വിവരങ്ങള്
|
||||
Comment[mr]=उपलब्ध शिष्टाचार विषयी माहिती
|
||||
Comment[ms]=Maklumat tentang protokol yang boleh didapati
|
||||
Comment[nb]=Informasjon om tilgjengelige protokoller
|
||||
Comment[nds]=Informatschoon över verföögbor Protokollen
|
||||
Comment[nl]=Informatie over de beschikbare protocollen
|
||||
Comment[nn]=Informasjon om tilgjengelege protokollar
|
||||
Comment[or]=ଉପଲବ୍ଧ ପ୍ରୋଟୋକଲଗୁଡ଼ିକ ବିଷୟରେ ସୂଚନା
|
||||
Comment[pa]=ਉਪਲੱਬਧ ਪੋਟੋਕਾਲਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o dostępnych protokołach
|
||||
Comment[pt]=Informações sobre os protocolos disponíveis
|
||||
Comment[pt_BR]=Informações sobre os protocolos disponíveis
|
||||
Comment[ro]=Informații despre protocoalele disponibile
|
||||
Comment[ru]=Сведения о доступных протоколах
|
||||
Comment[se]=Dieđut olamuttus protokollaid birra
|
||||
Comment[si]=භාවිතයට ඇති ප්රොටොකෝල තොරතුරු
|
||||
Comment[sk]=Informácie o dostupných protokoloch
|
||||
Comment[sl]=Podatki o razpoložljivih protokolih
|
||||
Comment[sr]=Подаци о доступним протоколима
|
||||
Comment[sr@ijekavian]=Подаци о доступним протоколима
|
||||
Comment[sr@ijekavianlatin]=Podaci o dostupnim protokolima
|
||||
Comment[sr@latin]=Podaci o dostupnim protokolima
|
||||
Comment[sv]=Information om tillgängliga protokoll
|
||||
Comment[ta]=கிடைக்கக்கூடிய நெறிகள் பற்றிய தகவல்
|
||||
Comment[te]=అందుబాటులోని నిభందనల గురించి సమాచారం
|
||||
Comment[tg]=Иттилоот оиди протоколҳои дастрасшуда
|
||||
Comment[th]=ข้อมูลเกี่ยวกับโพรโทคอลที่มีอยู่
|
||||
Comment[tr]=Kullanılabilir protokoller hakkında bilgiler
|
||||
Comment[uk]=Інформація про доступні протоколи
|
||||
Comment[uz]=Mavjud protokollar haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Мавжуд протоколлар ҳақида маълумот
|
||||
Comment[wa]=Infôrmåcions so les protocoles di disponibes
|
||||
Comment[x-test]=xxInformation about available protocolsxx
|
||||
Comment[zh_CN]=可用协议的信息
|
||||
Comment[zh_TW]=可用協定的資訊
|
||||
X-DocPath=kinfocenter/protocols/index.html
|
||||
Exec=kcmshell4 ioslaveinfo
|
||||
Icon=help-about
|
||||
X-KDE-Keywords=Protocol,IO slaves,Slaves,Network,Information,Timeout
|
||||
X-KDE-Keywords[be]=Пратакол,Сетка,Звесткі,Тэрмін чакання,Protocol,IO slaves,Slaves,Network,Information,Timeout
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, протокол, протоколи, наличен, поддържан, Protocol, IO slaves, Slaves, Network, Information, Timeout
|
||||
X-KDE-Keywords[ca]=Protocol,esclaus IO,Esclaus,Xarxa,Informació,Temps d'expiració
|
||||
X-KDE-Keywords[cs]=Protokol,Vstupně/výstupní moduly,Síť,Informace,Časový limit
|
||||
X-KDE-Keywords[csb]=Protokół,procedurë wé/wi,wëkonëjący dzéjaniô wé/wi,Séc,wëdowiédzô,Limit czasu
|
||||
X-KDE-Keywords[cy]=Protocol,Gweision IO,Gweision,Rhwydwaith,Gwybodaeth,Goramser
|
||||
X-KDE-Keywords[da]=Protokol,IO-slaver,Slaver,Netværk,Information,Tid,Udløb,Timeout
|
||||
X-KDE-Keywords[de]=Protokolle,Information,Ein/Ausgabe,Ein-/Ausgabemodule,IO-Slaves,Netzwerk,Zeitlimit,Timeout
|
||||
X-KDE-Keywords[el]=Πρωτόκολλο,slaves ΕΕ,Slaves,Δίκτυο,Πληροφορίες,Χρονικό όριο
|
||||
X-KDE-Keywords[eo]=Protokolo,Enel-sklavoj,sklavoj,reto,informo,tempolimo
|
||||
X-KDE-Keywords[es]=Protocolo,Slaves de E/S,Slaves,Red,Información,Tiempo límite
|
||||
X-KDE-Keywords[et]=protokoll,IO-moodulid,moodulid,võrk,info,taimaut,aegumine
|
||||
X-KDE-Keywords[eu]=Protocol,IO morroiak,Morroiak,Sarea,Informazioa,Denbora-muga
|
||||
X-KDE-Keywords[fa]=قرارداد، IO slaves، Slaves، شبکه، اطلاعات، اتمام وقت
|
||||
X-KDE-Keywords[fi]=Protokolla,Yhteyskäytäntö,KIO,KIO-palvelu,Verkko,Aikavalvonta,aikakatkaisu
|
||||
X-KDE-Keywords[fr]=protocole,modules,entrées/sorties,réseau,informations,délai
|
||||
X-KDE-Keywords[fy]=protocol,IO slaves,slaves,network,ynformaasje,timeout,netwurk,tiidslimyt
|
||||
X-KDE-Keywords[gl]=Protocolo,escravos IO,Escravos,Rede,Información,Tempo de agarda,Timeout
|
||||
X-KDE-Keywords[he]=פרוטוקול,רשת,מידע,זמן מוקצב, Protocol,IO slaves,Slaves,Network,Information,Timeout
|
||||
X-KDE-Keywords[hr]=Protocol,IO slaves,Slaves,Network,Information,Timeout,Protokol,IO podčinjeni,Podčinjeni,Mreža,Podaci,Istek
|
||||
X-KDE-Keywords[hu]=protokoll,KDE protokollok,protokoll,hálózat,információ,időtúllépés
|
||||
X-KDE-Keywords[is]=Samskiptareglur,IO þrælar,þrælar,staðarnet,net,upplýsingar,útrunninn tími
|
||||
X-KDE-Keywords[it]=protocollo,IO slave,slave,rete,informazioni,tempo massimo
|
||||
X-KDE-Keywords[ja]=プロトコル,IO,スレイブ,スレーブ,ネットワーク,情報,タイムアウト
|
||||
X-KDE-Keywords[km]=ពិធីការ IO slaves Slaves បណ្ដាញ ព័ត៌មាន អស់ពេល
|
||||
X-KDE-Keywords[ko]=프로토콜, IO 슬레이브,네트워크,정보,시간 제한
|
||||
X-KDE-Keywords[lt]=Protocol,IO slaves,Slaves,Network,Information,Timeout,protokolas,tinklas,informacija,laiko pasibaigimas
|
||||
X-KDE-Keywords[lv]=Protokols,IO vergi,Vergi,Tīkls,Informācija,Noildze
|
||||
X-KDE-Keywords[mk]=Protocol,IO slaves,Slaves,Network,Information,Timeout,Протокол,Мрежа,Информации,Истек на време
|
||||
X-KDE-Keywords[nb]=Protokoll,IO-slaver,Slaver,Nettverk,Informasjon,Ventetid
|
||||
X-KDE-Keywords[nds]=Protokoll,In-/Utgaavdeensten,IO,Deensten,Nettwark,Informatschoon,Timeout,Tietgrenz
|
||||
X-KDE-Keywords[ne]=प्रोटोकल, आगत/निर्गत स्लाभ, स्लाभहरू, सञ्जाल, सूचना, समय समाप्त
|
||||
X-KDE-Keywords[nl]=protocol,IO slaves,slaves,network,informatie,timeout,netwerk,tijdslimiet
|
||||
X-KDE-Keywords[nn]=protokoll,IU-slavar,slavar,nettverk,informasjon,tidsgrense
|
||||
X-KDE-Keywords[pa]=Protocol,IO slaves,Slaves,Network,Information,Timeout,ਪਰੋਟੋਕਾਲ,ਨੈਟਵਰਕ
|
||||
X-KDE-Keywords[pl]=Protokół,procedury we/wy,wykonujący operacje we/wy,Sieć,Informacje,Limit czasu
|
||||
X-KDE-Keywords[pt]=Protocolo,IO slaves,Slaves,Rede,Informações,Timeout,Tempo-limite
|
||||
X-KDE-Keywords[pt_BR]=Protocolos,IO Slaves,Slaves,Rede,Informações,Timeout
|
||||
X-KDE-Keywords[ro]=samba,dispozitive I/O,sclavi,reţea,informaţii
|
||||
X-KDE-Keywords[se]=protokolla,SO-slávat,slávat,fierbmi,diehtu,dieđut,áigemearri
|
||||
X-KDE-Keywords[sl]=protokol,podrejeni V/I,podrejeni,omrežje,podatki,zakasnitev
|
||||
X-KDE-Keywords[sr]=Protocol,IO slaves,Slaves,Network,Information,Timeout,протокол,мрежа,информације,подаци,прековреме,У/И-захват
|
||||
X-KDE-Keywords[sr@latin]=Protocol,IO slaves,Slaves,Network,Information,Timeout,protokol,mreža,informacije,podaci,prekovreme,U/I-zahvat
|
||||
X-KDE-Keywords[sv]=Protokoll,I/O-slavar,Slavar,Nätverk,Information,Timeout,Tidsgräns
|
||||
X-KDE-Keywords[ta]=நெறிமுறை,IO சேவகன்,சேவகன்கள்,வலைப்பின்னல்,தகவல்,நேரம் முடிந்தது
|
||||
X-KDE-Keywords[th]=โปรโตคอล,IO slaves,Slaves,ระบบเครือข่าย,ข้อมูล,หมดเวลา
|
||||
X-KDE-Keywords[tr]=protokol,G/Ç aracısı,aracı,Ağ,Bilgi,zaman aşımı
|
||||
X-KDE-Keywords[uk]=протокол,підлеглі В/В,підлеглі,мережа,інформація,тайм-аут
|
||||
X-KDE-Keywords[uz]=Протокол,КЧ-слейвлар,Слейвлар,Тармоқ,Маълумот,Таймаут
|
||||
X-KDE-Keywords[vi]=Giao thức,Đày tớ Vào ra (VR),Đày tớ,mạng,Thông tin,Thời hạn
|
||||
X-KDE-Keywords[wa]=Protocole,vårlets d' I/R,vårlets,ioslave,rantoele,infôrmåcion,tårdjaedje
|
||||
X-KDE-Keywords[x-test]=xxProtocol,IO slaves,Slaves,Network,Information,Timeoutxx
|
||||
X-KDE-Keywords[xh]=Imithetho elandelwayo,IO izicaka,Izicaka,Umsebenzi womtya,Ulwazi, Ixesha lokuphuma
|
||||
X-KDE-Keywords[zh_CN]=Protocol,IO slaves,Slaves,Network,Information,Timeout,协议,网络,信息,超时
|
||||
X-KDE-Keywords[zh_TW]=Protocol,IO slaves,Slaves,Network,Information,Timeout,協定,網路,資訊,作業逾時
|
||||
Name=Protocols
|
||||
Name[af]=Protokolle
|
||||
Name[ar]=البروتوكولات
|
||||
Name[as]=আচাৰ বিধি
|
||||
Name[be]=Пратаколы
|
||||
Name[be@latin]=Pratakoły
|
||||
Name[bg]=Протоколи
|
||||
Name[bn]=প্রোটোকল
|
||||
Name[bn_IN]=প্রোটোকল
|
||||
Name[br]=Komenadoù
|
||||
Name[ca]=Protocols
|
||||
Name[ca@valencia]=Protocols
|
||||
Name[cs]=Protokoly
|
||||
Name[csb]=Protokòłë
|
||||
Name[cy]=Protocolau
|
||||
Name[da]=Protokoller
|
||||
Name[de]=Ein-/Ausgabemodule
|
||||
Name[el]=Πρωτόκολλα
|
||||
Name[en_GB]=Protocols
|
||||
Name[eo]=Protokoloj
|
||||
Name[es]=Protocolos
|
||||
Name[et]=IO-moodulid
|
||||
Name[eu]=Protokoloak
|
||||
Name[fa]=قراردادها
|
||||
Name[fi]=Yhteyskäytännöt
|
||||
Name[fr]=Protocoles
|
||||
Name[fy]=Protokollen
|
||||
Name[ga]=Prótacail
|
||||
Name[gl]=Protocolos
|
||||
Name[gu]=પ્રોટોકોલ્સ
|
||||
Name[he]=פרוטוקולים
|
||||
Name[hi]=प्रोटोकॉल्स
|
||||
Name[hne]=प्रोटोकाल्स
|
||||
Name[hr]=Protokoli
|
||||
Name[hsb]=Protokole
|
||||
Name[hu]=Protokollok
|
||||
Name[id]=Protokol
|
||||
Name[is]=Samskiptareglur
|
||||
Name[it]=Protocolli
|
||||
Name[ja]=プロトコル
|
||||
Name[ka]=პროტოკოლები
|
||||
Name[kk]=Протоколдар
|
||||
Name[km]=ពិធីការ
|
||||
Name[kn]=ಪ್ರಕ್ರಮಗಳು (ಪ್ರೋಟೋಕಾಲ್)
|
||||
Name[ko]=프로토콜
|
||||
Name[ku]=Protokol
|
||||
Name[lt]=Protokolai
|
||||
Name[lv]=Protokoli
|
||||
Name[mai]=प्रोटोकाल
|
||||
Name[mk]=Протоколи
|
||||
Name[ml]=പ്രോട്ടോക്കോളുകള്
|
||||
Name[mr]=शिष्टाचार
|
||||
Name[ms]=Protokol
|
||||
Name[nb]=Protokoller
|
||||
Name[nds]=Protokollen
|
||||
Name[ne]=प्रोटोकल
|
||||
Name[nl]=Protocollen
|
||||
Name[nn]=Protokollar
|
||||
Name[oc]=Protocòls
|
||||
Name[or]=ପ୍ରୋଟୋକଲଗୁଡ଼ିକ
|
||||
Name[pa]=ਪਰੋਟੋਕਾਲ
|
||||
Name[pl]=Protokoły
|
||||
Name[pt]=Protocolos
|
||||
Name[pt_BR]=Protocolos
|
||||
Name[ro]=Protocoale
|
||||
Name[ru]=Протоколы
|
||||
Name[se]=Protokollat
|
||||
Name[si]=ප්රොටොකෝල
|
||||
Name[sk]=Protokoly
|
||||
Name[sl]=Protokoli
|
||||
Name[sr]=Протоколи
|
||||
Name[sr@ijekavian]=Протоколи
|
||||
Name[sr@ijekavianlatin]=Protokoli
|
||||
Name[sr@latin]=Protokoli
|
||||
Name[sv]=Protokoll
|
||||
Name[ta]=நெறிகள்
|
||||
Name[te]=నిభందనలు
|
||||
Name[tg]=Протоколҳо
|
||||
Name[th]=โพรโทคอล
|
||||
Name[tr]=Protokoller
|
||||
Name[uk]=Протоколи
|
||||
Name[uz]=Protokollar
|
||||
Name[uz@cyrillic]=Протоколлар
|
||||
Name[vi]=Giao thức
|
||||
Name[wa]=Protocoles
|
||||
Name[xh]=Umthetho olandelwayo
|
||||
Name[x-test]=xxProtocolsxx
|
||||
Name[zh_CN]=协议
|
||||
Name[zh_TW]=協定
|
||||
Terminal=false
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-KDE-FactoryName=ioslaveinfo
|
||||
X-KDE-Library=kcm_ioslaveinfo
|
||||
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Categories=Qt;KDE;X-KDE-information;
|
|
@ -1,167 +0,0 @@
|
|||
/*
|
||||
* kcmioslaveinfo.cpp
|
||||
*
|
||||
* Copyright 2001 Alexander Neundorf <neundorf@kde.org>
|
||||
* Copyright 2001 George Staikos <staikos@kde.org>
|
||||
* Copyright 2008 Pino Toscano <pino@kde.org>
|
||||
*
|
||||
* Requires the Qt widget libraries, available at no cost at
|
||||
* http://www.troll.no/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include <QLabel>
|
||||
#include <QLayout>
|
||||
#include <QComboBox>
|
||||
|
||||
#include <kconfig.h>
|
||||
#include <kdebug.h>
|
||||
#include <kdialog.h>
|
||||
#include <kglobal.h>
|
||||
#include <kiconloader.h>
|
||||
#include <klocale.h>
|
||||
#include <kprotocolinfo.h>
|
||||
#include <kstandarddirs.h>
|
||||
#include <ktoolinvocation.h>
|
||||
#include <kpluginfactory.h>
|
||||
#include <kpluginloader.h>
|
||||
#include <khtml_part.h>
|
||||
#include <khtmlview.h>
|
||||
#include <dom/dom_node.h>
|
||||
#include <dom/html_element.h>
|
||||
|
||||
#include "kcmioslaveinfo.h"
|
||||
|
||||
K_PLUGIN_FACTORY(SlaveFactory, registerPlugin<KCMIOSlaveInfo>();)
|
||||
K_EXPORT_PLUGIN( SlaveFactory("kcmioslaveinfo"))
|
||||
|
||||
KCMIOSlaveInfo::KCMIOSlaveInfo(QWidget *parent, const QVariantList &) :
|
||||
KCModule(SlaveFactory::componentData(), parent) {
|
||||
QVBoxLayout *layout=new QVBoxLayout(this);
|
||||
layout->setMargin(0);
|
||||
|
||||
setQuickHelp(i18n("Overview of the installed ioslaves and supported protocols."));
|
||||
setButtons(KCModule::Help);
|
||||
|
||||
QHBoxLayout* selectionLayout = new QHBoxLayout();
|
||||
|
||||
ioSlaves = new QComboBox(this);
|
||||
QLabel* ioSlavesLabel = new QLabel(i18n("Select the protocol documentation to display:"));
|
||||
ioSlavesLabel->setBuddy(ioSlaves);
|
||||
|
||||
connect(ioSlaves, SIGNAL(currentIndexChanged(const QString&) ), SLOT( showInfo(const QString&) ));
|
||||
|
||||
selectionLayout->addWidget(ioSlavesLabel);
|
||||
selectionLayout->addWidget(ioSlaves);
|
||||
|
||||
layout->addLayout(selectionLayout);
|
||||
|
||||
|
||||
m_info = new KHTMLPart(this, this);
|
||||
m_info->setJScriptEnabled(false);
|
||||
m_info->setJavaEnabled(false);
|
||||
m_info->setMetaRefreshEnabled(false);
|
||||
m_info->setPluginsEnabled(false);
|
||||
|
||||
connect(m_info, SIGNAL(completed()), this, SLOT(loadingCompleted()));
|
||||
connect(m_info->browserExtension(), SIGNAL(openUrlRequestDelayed(const KUrl&, const KParts::OpenUrlArguments&, const KParts::BrowserArguments&)),
|
||||
this, SLOT(openUrl(const KUrl&, const KParts::OpenUrlArguments&, const KParts::BrowserArguments&)));
|
||||
|
||||
layout->addWidget(m_info->view());
|
||||
|
||||
QStringList protocols=KProtocolInfo::protocols();
|
||||
protocols.sort();
|
||||
foreach(const QString &proto, protocols) {
|
||||
//m_ioslavesLb->addItem(new QListWidgetItem ( SmallIcon( KProtocolInfo::icon( proto )), proto, m_ioslavesLb));
|
||||
ioSlaves->addItem(SmallIcon( KProtocolInfo::icon( proto )), proto);
|
||||
};
|
||||
//m_ioslavesLb->sort();
|
||||
//m_ioslavesLb->setSelected(0, true);
|
||||
|
||||
KAboutData *about = new KAboutData(I18N_NOOP("kcmioslaveinfo"), 0,
|
||||
ki18n("KDE Panel System Information Control Module"),
|
||||
0, KLocalizedString(), KAboutData::License_GPL,
|
||||
ki18n("(c) 2001 - 2002 Alexander Neundorf"));
|
||||
|
||||
about->addAuthor(ki18n("Alexander Neundorf"), KLocalizedString(), "neundorf@kde.org");
|
||||
about->addAuthor(ki18n("George Staikos"), KLocalizedString(), "staikos@kde.org");
|
||||
setAboutData(about);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Big Hack to only select content of the help documentation
|
||||
* The HTML content is cut by removing the all DIV blocks but the class="article" one
|
||||
*/
|
||||
void KCMIOSlaveInfo::selectHelpBody() {
|
||||
DOM::Document document = m_info->document();
|
||||
m_info->view()->setUpdatesEnabled(true);
|
||||
if (document.isNull()) {
|
||||
return;
|
||||
}
|
||||
const DOM::NodeList bodylist = document.getElementsByTagName("body");
|
||||
if (bodylist.length() != 1) {
|
||||
return;
|
||||
}
|
||||
DOM::Node body = bodylist.item(0);
|
||||
const DOM::NodeList bodyChildren = body.childNodes();
|
||||
for (unsigned long i = 0; i < bodyChildren.length(); ++i) {
|
||||
const DOM::Node child = bodyChildren.item(i);
|
||||
if ((child.nodeType() != DOM::Node::ELEMENT_NODE)
|
||||
|| (child.nodeName().lower() != DOM::DOMString("div"))) {
|
||||
continue;
|
||||
}
|
||||
const DOM::HTMLElement el = child;
|
||||
if (el.className() == DOM::DOMString("article")) {
|
||||
continue;
|
||||
}
|
||||
--i;
|
||||
body.removeChild(child);
|
||||
}
|
||||
}
|
||||
|
||||
void KCMIOSlaveInfo::showInfo(const QString& protocol) {
|
||||
//get X-DocPath entry "foo/index.html" from .protocol file
|
||||
QString docPath=KProtocolInfo::docPath (protocol);
|
||||
QString file = docPath;
|
||||
//check for "foo/index.docbook" to get rid of the error dialog from KShortUriFilter
|
||||
//the error message is displayed in the dialog window here
|
||||
file.replace ( QString(".html"), QString(".docbook") );
|
||||
file = KGlobal::locale()->langLookup(file);
|
||||
if (!file.isEmpty()) {
|
||||
m_info->view()->setUpdatesEnabled(false);
|
||||
m_info->openUrl(KUrl(QString( "help:/%1" ).arg(docPath)));
|
||||
return;
|
||||
}
|
||||
m_info->begin();
|
||||
m_info->write(i18n("<html><body><p style='text-align:center'>No documentation available for the '%1:/' protocol.</p></body></html>", protocol));
|
||||
m_info->end();
|
||||
}
|
||||
|
||||
void KCMIOSlaveInfo::loadingCompleted() {
|
||||
selectHelpBody();
|
||||
}
|
||||
|
||||
void KCMIOSlaveInfo::openUrl(const KUrl& url, const KParts::OpenUrlArguments&, const KParts::BrowserArguments&) {
|
||||
if (url.protocol() == QLatin1String("mailto")) {
|
||||
KToolInvocation::invokeMailer(url);
|
||||
} else {
|
||||
KToolInvocation::invokeBrowser(url.url());
|
||||
}
|
||||
}
|
||||
|
||||
#include "kcmioslaveinfo.moc"
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
/*
|
||||
* kcmioslaveinfo.h
|
||||
*
|
||||
* Copyright 2001 Alexander Neundorf <alexander.neundorf@rz.tu-ilmenau.de>
|
||||
* Copyright 2001 George Staikos <staikos@kde.org>
|
||||
*
|
||||
* Requires the Qt widget libraries, available at no cost at
|
||||
* http://www.troll.no/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
#ifndef kcmioslaveinfo_h_included
|
||||
#define kcmioslaveinfo_h_included
|
||||
|
||||
#include <kaboutdata.h>
|
||||
#include <kcmodule.h>
|
||||
|
||||
class KHTMLPart;
|
||||
|
||||
class KCMIOSlaveInfo : public KCModule {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit KCMIOSlaveInfo(QWidget *parent = 0L, const QVariantList &lits=QVariantList());
|
||||
|
||||
protected:
|
||||
|
||||
QComboBox* ioSlaves;
|
||||
|
||||
KHTMLPart *m_info;
|
||||
|
||||
protected slots:
|
||||
|
||||
void showInfo(const QString& protocol);
|
||||
void loadingCompleted();
|
||||
void openUrl(const KUrl& url, const KParts::OpenUrlArguments&, const KParts::BrowserArguments&);
|
||||
|
||||
private:
|
||||
void selectHelpBody();
|
||||
};
|
||||
#endif
|
|
@ -1,184 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kinfocenter -caption "%c" %i
|
||||
Icon=hwinfo
|
||||
Type=Application
|
||||
X-DocPath=kinfocenter/index.html
|
||||
X-KDE-StartupNotify=true
|
||||
OnlyShowIn=KDE;
|
||||
|
||||
Name=KInfoCenter
|
||||
Name[af]=Inligting Sentrum
|
||||
Name[ar]=مركز معلومات كدي
|
||||
Name[as]=KInfoCenter
|
||||
Name[be]=KInfoCenter
|
||||
Name[be@latin]=KInfoCenter
|
||||
Name[bg]=KInfoCenter
|
||||
Name[bn]=কে-ইনফো-সেন্টার
|
||||
Name[bn_IN]=KInfoCenter
|
||||
Name[br]=KInfoCenter
|
||||
Name[ca]=KInfoCenter
|
||||
Name[ca@valencia]=KInfoCenter
|
||||
Name[cs]=KInfoCenter
|
||||
Name[csb]=Centróm wëdowiédzë
|
||||
Name[da]=KInfoCenter
|
||||
Name[de]=Infozentrum
|
||||
Name[el]=Κέντρο πληροφοριών
|
||||
Name[en_GB]=KInfoCenter
|
||||
Name[eo]=KInfoCenter
|
||||
Name[es]=KInfoCenter
|
||||
Name[et]=KDE infokeskus
|
||||
Name[eu]=KInfoCenter
|
||||
Name[fi]=KInfoCenter
|
||||
Name[fr]=KInfoCenter
|
||||
Name[fy]=KInfoCenter
|
||||
Name[ga]=KInfoCenter
|
||||
Name[gl]=KInfoCenter
|
||||
Name[gu]=KInfoCenter
|
||||
Name[he]=KInfoCenter
|
||||
Name[hi]=के-इन्फ़ोसेंटर
|
||||
Name[hne]=के-इन्फोसेंटर
|
||||
Name[hr]=KInfoCenter
|
||||
Name[hsb]=KInfoCenter
|
||||
Name[hu]=KInfoCenter
|
||||
Name[id]=KInfoCenter
|
||||
Name[is]=KInfoCenter
|
||||
Name[it]=KInfoCenter
|
||||
Name[ja]=KDE システム情報センター
|
||||
Name[ka]=KInfoCenter
|
||||
Name[kk]=KInfoCenter
|
||||
Name[km]=KInfoCenter
|
||||
Name[kn]=ಕೆಇನ್ಫೋಸೆಂಟರ್
|
||||
Name[ko]=KInfoCenter
|
||||
Name[ku]=Navenda Agahiyên KDE'yê
|
||||
Name[lt]=KInfoCenter
|
||||
Name[lv]=KInfoCenter
|
||||
Name[mai]=के-इन्फोसेंटर
|
||||
Name[mk]=КИнфоцентар
|
||||
Name[ml]=കെഇന്ഫോസെന്റര്
|
||||
Name[mr]=केइन्फोसेंटर
|
||||
Name[ms]=KInfoCenter
|
||||
Name[nb]=KInfoCenter
|
||||
Name[nds]=KDE-Infozentrum
|
||||
Name[ne]=केडीई सूचना केन्द्र
|
||||
Name[nl]=KInfoCenter
|
||||
Name[nn]=KInfoCenter
|
||||
Name[oc]=KInfoCenter
|
||||
Name[or]=KInfoCenter
|
||||
Name[pa]=ਕੇ-ਜਾਣਕਾਰੀ ਸੈਂਟਰ
|
||||
Name[pl]=Centrum informacyjne
|
||||
Name[pt]=KInfoCenter
|
||||
Name[pt_BR]=KInfoCenter
|
||||
Name[ro]=Centrul de informații KDE
|
||||
Name[ru]=KInfoCenter
|
||||
Name[se]=KInfoCenter
|
||||
Name[si]=KInfoCenter
|
||||
Name[sk]=KInfoCenter
|
||||
Name[sl]=KInfoCenter
|
||||
Name[sr]=К‑инфоцентар
|
||||
Name[sr@ijekavian]=К‑инфоцентар
|
||||
Name[sr@ijekavianlatin]=K‑infocentar
|
||||
Name[sr@latin]=K‑infocentar
|
||||
Name[sv]=Informationscentralen
|
||||
Name[ta]=கேதகவல் மையம்
|
||||
Name[te]=కెఇన్ఫొసెంటర్
|
||||
Name[tg]=KInfoCenter
|
||||
Name[th]=ศูนย์ข้อมูล K
|
||||
Name[tr]=KDE Bilgi Merkezi
|
||||
Name[uk]=KInfoCenter
|
||||
Name[uz]=Maʼlumot markazi
|
||||
Name[uz@cyrillic]=Маълумот маркази
|
||||
Name[vi]=Trung tâm Thông tin KDE
|
||||
Name[wa]=Cinte d' infôrmåcions
|
||||
Name[x-test]=xxKInfoCenterxx
|
||||
Name[zh_CN]=KInfoCenter
|
||||
Name[zh_TW]=KInfoCenter
|
||||
GenericName=Info Center
|
||||
GenericName[af]=Inligting Sentrum
|
||||
GenericName[ar]=مركز المعلومات
|
||||
GenericName[as]=তথ্য কেন্দ্ৰ
|
||||
GenericName[be]=Цэнтр інфармацыі
|
||||
GenericName[be@latin]=Infarmacyjny centar
|
||||
GenericName[bg]=Информационен център
|
||||
GenericName[bn]=তথ্য কেন্দ্র
|
||||
GenericName[bn_IN]=তথ্য কেন্দ্র
|
||||
GenericName[br]=Kreizenn Titouroù
|
||||
GenericName[ca]=Centre d'informació
|
||||
GenericName[ca@valencia]=Centre d'informació
|
||||
GenericName[cs]=Informační centrum
|
||||
GenericName[csb]=Centróm wëdowiédzë
|
||||
GenericName[cy]=Canolfan Gwybodaeth
|
||||
GenericName[da]=Infocenter
|
||||
GenericName[de]=Infozentrum
|
||||
GenericName[el]=Κέντρο πληροφοριών
|
||||
GenericName[en_GB]=Info Centre
|
||||
GenericName[eo]=Informocentro
|
||||
GenericName[es]=Centro de información
|
||||
GenericName[et]=Infokeskus
|
||||
GenericName[eu]=Info gunea
|
||||
GenericName[fa]=مرکز اطلاعات
|
||||
GenericName[fi]=Infokeskus
|
||||
GenericName[fr]=Centre d'informations
|
||||
GenericName[fy]=Ynformaasjesintrum
|
||||
GenericName[ga]=Lárionad Eolais
|
||||
GenericName[gl]=Centro de información
|
||||
GenericName[gu]=માહિતી કેન્દ્ર
|
||||
GenericName[he]=מרכז המידע
|
||||
GenericName[hi]=जानकारी केंद्र
|
||||
GenericName[hne]=जानकारी केंद्र
|
||||
GenericName[hr]=Info središte
|
||||
GenericName[hsb]=Centralna informacija
|
||||
GenericName[hu]=Rendszerinformáció
|
||||
GenericName[id]=Pusat Info
|
||||
GenericName[is]=Upplýsingaborð
|
||||
GenericName[it]=Centro informazioni
|
||||
GenericName[ja]=システム情報センター
|
||||
GenericName[ka]=საინფორმაციო ცენტრი
|
||||
GenericName[kk]=Мәлімет орталығы
|
||||
GenericName[km]=មជ្ឈមណ្ឌលព័ត៌មាន
|
||||
GenericName[kn]=ಮಾಹಿತಿ ಕೇಂದ್ರ
|
||||
GenericName[ko]=정보 센터
|
||||
GenericName[ku]=Navenda Agahiyan
|
||||
GenericName[lt]=Info centras
|
||||
GenericName[lv]=Informācijas centrs
|
||||
GenericName[mai]=सूचना केंद्र
|
||||
GenericName[mk]=Информативен центар
|
||||
GenericName[ml]=വിവരകേന്ദ്രം
|
||||
GenericName[mr]=माहिती केंद्र
|
||||
GenericName[ms]=Pusat Maklumat
|
||||
GenericName[nb]=KDEs informasjonssenter
|
||||
GenericName[nds]=Infozentrum
|
||||
GenericName[ne]=सूचना केन्द्र
|
||||
GenericName[nl]=Informatiecentrum
|
||||
GenericName[nn]=KDEs informasjonssenter
|
||||
GenericName[or]=ସୂଚନା କେନ୍ଦ୍ର
|
||||
GenericName[pa]=ਜਾਣਕਾਰੀ ਸੈਂਟਰ
|
||||
GenericName[pl]=Centrum informacyjne
|
||||
GenericName[pt]=Centro de Informações
|
||||
GenericName[pt_BR]=Centro de Informações
|
||||
GenericName[ro]=Centru de informații
|
||||
GenericName[ru]=Информация о системе
|
||||
GenericName[se]=Diehtoguovddáš
|
||||
GenericName[si]=තොරතුරු මධ්යස්ථානය
|
||||
GenericName[sk]=Informačné centrum
|
||||
GenericName[sl]=Informacijsko središče
|
||||
GenericName[sr]=Информациони центар
|
||||
GenericName[sr@ijekavian]=Информациони центар
|
||||
GenericName[sr@ijekavianlatin]=Informacioni centar
|
||||
GenericName[sr@latin]=Informacioni centar
|
||||
GenericName[sv]=Informationscentralen
|
||||
GenericName[ta]=தகவல் மையம்
|
||||
GenericName[te]=సమాచార కేంద్రం
|
||||
GenericName[tg]=Маркази иттилооти система
|
||||
GenericName[th]=ศูนย์ข้อมูล
|
||||
GenericName[tr]=Bilgi Merkezi
|
||||
GenericName[uk]=Центр інформації
|
||||
GenericName[uz]=Maʼlumot markazi
|
||||
GenericName[uz@cyrillic]=Маълумот маркази
|
||||
GenericName[vi]=Trung tâm Thông tin
|
||||
GenericName[wa]=Cinte d' infôrmåcions di KDE
|
||||
GenericName[x-test]=xxInfo Centerxx
|
||||
GenericName[zh_CN]=信息中心
|
||||
GenericName[zh_TW]=資訊中心
|
||||
|
||||
X-DBUS-StartupType=Unique
|
||||
Categories=Qt;KDE;System;
|
|
@ -1,8 +0,0 @@
|
|||
<!DOCTYPE kpartgui>
|
||||
<kpartgui name="kinfocenter" version="2">
|
||||
<MenuBar>
|
||||
<Menu name="help">
|
||||
<Action name="help_about_module" append="about_merge"/>
|
||||
</Menu>
|
||||
</MenuBar>
|
||||
</kpartgui>
|
|
@ -1,118 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
|
||||
Copyright (c) 2000 Matthias Elter <elter@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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Howto debug:
|
||||
* start "kinfocenter --nofork" in a debugger.
|
||||
*
|
||||
* If you want to test with command line arguments you need
|
||||
* -after you have started kinfocenter in the debugger-
|
||||
* open another shell and run kinfocenter with the desired
|
||||
* command line arguments.
|
||||
*
|
||||
* The command line arguments will be passed to the version of
|
||||
* kinfocenter in the debugger via DCOP and will cause a call
|
||||
* to newInstance().
|
||||
*/
|
||||
|
||||
#include "main.h"
|
||||
#include "toplevel.h"
|
||||
#include "global.h"
|
||||
|
||||
#include <kcmdlineargs.h>
|
||||
#include <kaboutdata.h>
|
||||
#include <kglobalsettings.h>
|
||||
#include <kconfig.h>
|
||||
#include <kconfiggroup.h>
|
||||
#include <kdebug.h>
|
||||
#include <kglobal.h>
|
||||
#include <klocale.h>
|
||||
#include <kapplication.h>
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QDesktopWidget>
|
||||
|
||||
#include "main.moc"
|
||||
|
||||
KInfoCenterApp::KInfoCenterApp() :
|
||||
KUniqueApplication() {
|
||||
|
||||
toplevel = new TopLevel();
|
||||
|
||||
QRect desk = KGlobalSettings::desktopGeometry(toplevel);
|
||||
KConfigGroup config(KGlobal::config(), "General");
|
||||
// Initial size is:
|
||||
// never bigger than workspace as reported by desk
|
||||
// 940x700 on 96 dpi, 12 pt font
|
||||
// 800x600 on 72 dpi, 12 pt font
|
||||
// --> 368 + 6 x dpiX, 312 + 4 x dpiY
|
||||
// Adjusted for font size
|
||||
int fontSize = toplevel->fontInfo().pointSize();
|
||||
if (fontSize == 0)
|
||||
fontSize = (toplevel->fontInfo().pixelSize() * 72) / toplevel->logicalDpiX();
|
||||
int x = config.readEntry(QString::fromLatin1("InitialWidth %1").arg(desk.width()), qMin(desk.width(), 368 + (6*toplevel->logicalDpiX()*fontSize)/12) );
|
||||
int y = config.readEntry(QString::fromLatin1("InitialHeight %1").arg(desk.height()), qMin(desk.height(), 312 + (4*toplevel->logicalDpiX()*fontSize)/12) );
|
||||
|
||||
toplevel->resize(x, y);
|
||||
|
||||
toplevel->show();
|
||||
}
|
||||
|
||||
KInfoCenterApp::~KInfoCenterApp() {
|
||||
if (toplevel!=NULL) {
|
||||
KConfigGroup config(KGlobal::config(), "General");
|
||||
QDesktopWidget *desk = QApplication::desktop();
|
||||
config.writeEntry(QString::fromLatin1("InitialWidth %1").arg(desk->width()), toplevel->width());
|
||||
config.writeEntry(QString::fromLatin1("InitialHeight %1").arg(desk->height()), toplevel->height());
|
||||
config.sync();
|
||||
}
|
||||
}
|
||||
|
||||
extern "C"KDE_EXPORT int kdemain(int argc, char *argv[])
|
||||
{
|
||||
KLocale::setMainCatalog("kinfocenter");
|
||||
|
||||
KAboutData aboutKInfoCenter( "kinfocenter", 0, ki18n("KDE Info Center"),
|
||||
KDE_VERSION_STRING, ki18n("The KDE Info Center"), KAboutData::License_GPL,
|
||||
ki18n("(c) 1998-2004, The KDE Control Center Developers"));
|
||||
|
||||
QByteArray argv_0 = argv[0];
|
||||
KAboutData *aboutData = &aboutKInfoCenter;
|
||||
|
||||
aboutData->addAuthor(ki18n("Nicolas Ternisien"), ki18n("Current Maintainer"), "nicolas.ternisien@gmail.com");
|
||||
aboutData->addAuthor(ki18n("Helge Deller"), ki18n("Previous Maintainer"), "deller@kde.org");
|
||||
aboutData->addAuthor(ki18n("Matthias Hoelzer-Kluepfel"),KLocalizedString(), "hoelzer@kde.org");
|
||||
aboutData->addAuthor(ki18n("Matthias Elter"),KLocalizedString(), "elter@kde.org");
|
||||
aboutData->addAuthor(ki18n("Matthias Ettrich"),KLocalizedString(), "ettrich@kde.org");
|
||||
aboutData->addAuthor(ki18n("Waldo Bastian"),KLocalizedString(), "bastian@kde.org");
|
||||
|
||||
KCmdLineArgs::init( argc, argv, aboutData );
|
||||
KUniqueApplication::addCmdLineOptions();
|
||||
|
||||
KCGlobal::init();
|
||||
|
||||
if (!KInfoCenterApp::start()) {
|
||||
kDebug() << "kinfocenter is already running!\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
KInfoCenterApp app;
|
||||
|
||||
return app.exec();
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
/*
|
||||
Copyright (c) 1999 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
|
||||
Copyright (c) 2000 Matthias Elter <elter@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 __main_h__
|
||||
#define __main_h__
|
||||
|
||||
#include <kuniqueapplication.h>
|
||||
|
||||
class TopLevel;
|
||||
|
||||
class KInfoCenterApp : public KUniqueApplication {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
KInfoCenterApp();
|
||||
virtual ~KInfoCenterApp();
|
||||
|
||||
private:
|
||||
|
||||
TopLevel *toplevel;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
|
@ -1,14 +0,0 @@
|
|||
|
||||
########### next target ###############
|
||||
|
||||
set(KCM_MEMORY_PART_SRCS memory.cpp chartWidget.cpp totalMemoryChart.cpp physicalMemoryChart.cpp swapMemoryChart.cpp )
|
||||
|
||||
kde4_add_plugin(kcm_memory ${KCM_MEMORY_PART_SRCS})
|
||||
|
||||
target_link_libraries(kcm_memory ${KDE4_KDEUI_LIBS} ${QT_QTGUI_LIBRARY})
|
||||
|
||||
install(TARGETS kcm_memory DESTINATION ${PLUGIN_INSTALL_DIR})
|
||||
|
||||
########### install files ###############
|
||||
|
||||
install( FILES kcm_memory.desktop DESTINATION ${SERVICES_INSTALL_DIR})
|
|
@ -1,2 +0,0 @@
|
|||
#! /usr/bin/env bash
|
||||
$XGETTEXT *.cpp -o $podir/kcm_memory.pot
|
|
@ -1,48 +0,0 @@
|
|||
#ifndef SETTINGS_H_
|
||||
#define SETTINGS_H_
|
||||
|
||||
#include <QColor>
|
||||
|
||||
#define COLOR_USED_MEMORY QColor(0x83,0xDD, 0xF5)
|
||||
//start : 0x00, 0x71, 0xBC
|
||||
//end : 0x83,0xDD, 0xF5
|
||||
|
||||
//#define COLOR_USED_MEMORY QColor(236,91,47)
|
||||
|
||||
#define COLOR_USED_SWAP QColor(255,134,64)
|
||||
|
||||
//#define COLOR_FREE_MEMORY QColor(0x00, 0x71, 0xBC)
|
||||
#define COLOR_FREE_MEMORY QColor(216, 231, 227)
|
||||
|
||||
/* better to use quint64, because some 32bit-machines have more total
|
||||
memory (with swap) than just the 4GB which fits into a 32bit-long */
|
||||
typedef quint64 t_memsize;
|
||||
|
||||
|
||||
enum { /* entries for memoryInfos[] */
|
||||
TOTAL_MEM = 0, /* total physical memory (without swaps) */
|
||||
FREE_MEM, /* total free physical memory (without swaps) */
|
||||
#if !defined(__svr4__) || !defined(sun)
|
||||
#if !defined(__NetBSD__) && !defined(__OpenBSD__)
|
||||
SHARED_MEM, /* shared memory size */
|
||||
BUFFER_MEM, /* buffered memory size */
|
||||
#else
|
||||
ACTIVE_MEM,
|
||||
INACTIVE_MEM,
|
||||
#endif
|
||||
#endif
|
||||
CACHED_MEM, /* cache memory size (located in ram) */
|
||||
SWAP_MEM, /* total size of all swap-partitions */
|
||||
FREESWAP_MEM, /* free memory in swap-partitions */
|
||||
MEM_LAST_ENTRY
|
||||
};
|
||||
|
||||
|
||||
#define MEMORY(x) ((t_memsize) (x)) /* it's easier... */
|
||||
#define NO_MEMORY_INFO MEMORY(-1) /* DO NOT CHANGE */
|
||||
#define ZERO_IF_NO_INFO(value) ((value) != NO_MEMORY_INFO ? (value) : 0)
|
||||
|
||||
|
||||
#define SPACING 16
|
||||
|
||||
#endif /*SETTINGS_H_*/
|
|
@ -1,152 +0,0 @@
|
|||
/***************************************************************************
|
||||
* KT list view item task implementation. *
|
||||
* -------------------------------------------------------------------- *
|
||||
* Copyright (C) 1999, Gary Meyer <gary@meyer.net> *
|
||||
* -------------------------------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
***************************************************************************/
|
||||
|
||||
#include "chartWidget.h"
|
||||
|
||||
#include <QVBoxLayout>
|
||||
#include <QLinearGradient>
|
||||
#include <QLabel>
|
||||
#include <QPainter>
|
||||
#include <QPen>
|
||||
#include <QColor>
|
||||
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
#include <kglobal.h>
|
||||
|
||||
Chart::Chart(QWidget* parent) :
|
||||
QWidget(parent) {
|
||||
|
||||
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::MinimumExpanding);
|
||||
|
||||
memoryInfos = NULL;
|
||||
freeMemoryLabel = NULL;
|
||||
}
|
||||
|
||||
|
||||
void Chart::setMemoryInfos(t_memsize* memoryInfos) {
|
||||
this->memoryInfos = memoryInfos;
|
||||
}
|
||||
|
||||
void Chart::setFreeMemoryLabel(QLabel* freeMemoryLabel) {
|
||||
this->freeMemoryLabel = freeMemoryLabel;
|
||||
}
|
||||
|
||||
|
||||
/* Graphical Memory Display */
|
||||
bool Chart::drawChart(t_memsize total, const QList<t_memsize>& used, const QList<QColor>& colors, const QList<QString>& texts) {
|
||||
|
||||
QPainter paint(this);
|
||||
|
||||
QPen pen(QColor(0, 0, 0));
|
||||
paint.setPen(pen);
|
||||
|
||||
if (total == NO_MEMORY_INFO) {
|
||||
paint.fillRect(1, 1, width() - 2, height() - 2, QBrush(QColor(128, 128, 128)));
|
||||
paint.setPen(pen);
|
||||
paint.drawRect(rect());
|
||||
freeMemoryLabel->setText(i18n("Not available."));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
int startline = height()-2;
|
||||
|
||||
int percent, localheight;
|
||||
t_memsize last_used = 0;
|
||||
|
||||
for (int count = used.size()-1; count >=0; --count) {
|
||||
last_used = used.at(count);
|
||||
QColor color = colors.at(count);
|
||||
QString text = texts.at(count);
|
||||
|
||||
percent = (((qint64)last_used) * 100) / total;
|
||||
|
||||
if (count)
|
||||
localheight = ((height()-2) * percent) / 100;
|
||||
else
|
||||
localheight = startline;
|
||||
|
||||
//kDebug() << "Count : " << count << " Percent : " << percent << "%" << " Localheight:" << localheight << endl;
|
||||
|
||||
if (localheight>0) {
|
||||
QLinearGradient gradient(QPointF(1, startline), QPointF(width()-2, -localheight));
|
||||
|
||||
QColor endProgressColor(0xFF, 0xFF, 0xFF, 100);
|
||||
gradient.setColorAt(0, color);
|
||||
gradient.setColorAt(1, endProgressColor);
|
||||
paint.fillRect(1, startline, width()-2, -localheight, gradient);
|
||||
|
||||
//paint.fillRect(1, startline, width()-2, -localheight, color);
|
||||
|
||||
if (localheight >= SPACING) {
|
||||
paint.drawText(0, startline-localheight, width(), localheight, Qt::AlignCenter | Qt::TextWordWrap, QString("%1 %2%").arg(text).arg(percent));
|
||||
}
|
||||
}
|
||||
|
||||
startline -= localheight;
|
||||
|
||||
}
|
||||
|
||||
// draw surrounding box
|
||||
QRect r = rect();
|
||||
qDrawShadePanel(&paint, r.x(), r.y(), r.width(), r.height(), palette(), true, 1);
|
||||
|
||||
freeMemoryLabel->setText(i18n("%1 free", formattedUnit(last_used)));
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
QString Chart::formattedUnit(t_memsize value) {
|
||||
if (value > (1024 * 1024))
|
||||
if (value > (1024 * 1024 * 1024))
|
||||
return i18n("%1 GiB", KGlobal::locale()->formatNumber(value / (1024 * 1024 * 1024.0), 2));
|
||||
else
|
||||
return i18n("%1 MiB", KGlobal::locale()->formatNumber(value / (1024 * 1024.0), 2));
|
||||
else
|
||||
return i18n("%1 KiB", KGlobal::locale()->formatNumber(value / 1024.0, 2));
|
||||
}
|
||||
|
||||
ChartWidget::ChartWidget(const QString& title, const QString& hint, Chart* chartImplementation, QWidget* parent) :
|
||||
QWidget(parent) {
|
||||
|
||||
QVBoxLayout* mainLayout = new QVBoxLayout(this);
|
||||
|
||||
titleLabel = new QLabel("<strong>" + title + "</strong>", this);
|
||||
titleLabel->setAlignment(Qt::AlignHCenter);
|
||||
titleLabel->setToolTip(hint);
|
||||
mainLayout->addWidget(titleLabel);
|
||||
|
||||
chart = chartImplementation;
|
||||
chart->setToolTip(hint);
|
||||
mainLayout->addWidget(chart);
|
||||
|
||||
freeMemoryLabel = new QLabel("", this);
|
||||
freeMemoryLabel->setAlignment(Qt::AlignHCenter);
|
||||
freeMemoryLabel->setToolTip(hint);
|
||||
mainLayout->addWidget(freeMemoryLabel);
|
||||
|
||||
chart->setFreeMemoryLabel(freeMemoryLabel);
|
||||
}
|
||||
|
||||
void ChartWidget::setMemoryInfos(t_memsize* memoryInfos) {
|
||||
chart->setMemoryInfos(memoryInfos);
|
||||
}
|
||||
|
||||
void ChartWidget::refresh() {
|
||||
//The update() method will launch paintEvent() automatically
|
||||
chart->update();
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,65 +0,0 @@
|
|||
/***************************************************************************
|
||||
* -------------------------------------------------------------------- *
|
||||
* Copyright (C) 2008, Nicolas Ternisien <nicolas.ternisien@gmail.com> *
|
||||
* -------------------------------------------------------------------- *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef CHART_WIDGET_H
|
||||
#define CHART_WIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QFrame>
|
||||
#include <QString>
|
||||
#include <QColor>
|
||||
#include <QList>
|
||||
|
||||
class QLabel;
|
||||
class QWidget;
|
||||
|
||||
#include "base.h"
|
||||
|
||||
class Chart : public QWidget {
|
||||
public:
|
||||
Chart(QWidget* parent = NULL);
|
||||
|
||||
void setMemoryInfos(t_memsize* memoryInfos);
|
||||
void setFreeMemoryLabel(QLabel* freeMemoryLabel);
|
||||
|
||||
static QString formattedUnit(t_memsize value);
|
||||
|
||||
protected:
|
||||
|
||||
bool drawChart(t_memsize total, const QList<t_memsize>& used, const QList<QColor>& colors, const QList<QString>& texts);
|
||||
|
||||
t_memsize* memoryInfos;
|
||||
|
||||
QLabel* freeMemoryLabel;
|
||||
|
||||
};
|
||||
|
||||
class ChartWidget : public QWidget {
|
||||
public:
|
||||
|
||||
/**
|
||||
* Initialize the list view item and task.
|
||||
*/
|
||||
ChartWidget(const QString& title, const QString& hint, Chart* chartImplementation, QWidget* parent = NULL);
|
||||
|
||||
void setMemoryInfos(t_memsize* memoryInfos);
|
||||
void refresh();
|
||||
|
||||
private:
|
||||
|
||||
QLabel* titleLabel;
|
||||
|
||||
Chart* chart;
|
||||
|
||||
QLabel* freeMemoryLabel;
|
||||
|
||||
};
|
||||
|
||||
#endif // CHART_WIDGET_H
|
|
@ -1,250 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Exec=kcmshell4 kcm_memory
|
||||
Icon=memory
|
||||
Type=Service
|
||||
X-KDE-ServiceTypes=KCModule
|
||||
X-DocPath=kinfocenter/memory/index.html
|
||||
|
||||
|
||||
X-KDE-Library=kcm_memory
|
||||
X-KDE-ParentApp=kinfocenter
|
||||
|
||||
Name=Memory
|
||||
Name[af]=Geheue
|
||||
Name[ar]=الذاكرة
|
||||
Name[as]=স্মৃতিশক্তি
|
||||
Name[be]=Памяць
|
||||
Name[be@latin]=Pamiać
|
||||
Name[bg]=Памет
|
||||
Name[bn]=মেমরি
|
||||
Name[bn_IN]=মেমরি
|
||||
Name[br]=Memor
|
||||
Name[ca]=Memòria
|
||||
Name[ca@valencia]=Memòria
|
||||
Name[cs]=Paměť
|
||||
Name[csb]=Pamiãc
|
||||
Name[cy]=Cof
|
||||
Name[da]=Hukommelse
|
||||
Name[de]=Speicher
|
||||
Name[el]=Μνήμη
|
||||
Name[en_GB]=Memory
|
||||
Name[eo]=Memoro
|
||||
Name[es]=Memoria
|
||||
Name[et]=Mälu
|
||||
Name[eu]=Memoria
|
||||
Name[fa]=حافظه
|
||||
Name[fi]=Muisti
|
||||
Name[fr]=Mémoire
|
||||
Name[fy]=Unthâld
|
||||
Name[ga]=Cuimhne
|
||||
Name[gl]=Memoria
|
||||
Name[gu]=મેમરી
|
||||
Name[he]=זיכרון
|
||||
Name[hi]=मेमोरी
|
||||
Name[hne]=मेमोरी
|
||||
Name[hr]=Memorija
|
||||
Name[hsb]=Pomjatk
|
||||
Name[hu]=Memória
|
||||
Name[id]=Memori
|
||||
Name[is]=Minni
|
||||
Name[it]=Memoria
|
||||
Name[ja]=メモリ
|
||||
Name[ka]=მეხსიერება
|
||||
Name[kk]=Жады
|
||||
Name[km]=សតិ
|
||||
Name[kn]=ಸ್ಮೃತಿ
|
||||
Name[ko]=메모리
|
||||
Name[ku]=Bîr
|
||||
Name[lt]=Atmintis
|
||||
Name[lv]=Atmiņa
|
||||
Name[mai]=स्मृति
|
||||
Name[mk]=Меморија
|
||||
Name[ml]=മെമ്മറി
|
||||
Name[mr]=स्मृती
|
||||
Name[ms]=Ingatan
|
||||
Name[nb]=Minne
|
||||
Name[nds]=Spieker
|
||||
Name[ne]=स्मृति
|
||||
Name[nl]=Geheugen
|
||||
Name[nn]=Minne
|
||||
Name[oc]=Memòria
|
||||
Name[or]=ସ୍ମୃତିସ୍ଥାନ
|
||||
Name[pa]=ਮੈਮੋਰੀ
|
||||
Name[pl]=Pamięć
|
||||
Name[pt]=Memória
|
||||
Name[pt_BR]=Memória
|
||||
Name[ro]=Memorie
|
||||
Name[ru]=Память
|
||||
Name[se]=Muitu
|
||||
Name[si]=මතකය
|
||||
Name[sk]=Pamäť
|
||||
Name[sl]=Pomnilnik
|
||||
Name[sr]=Меморија
|
||||
Name[sr@ijekavian]=Меморија
|
||||
Name[sr@ijekavianlatin]=Memorija
|
||||
Name[sr@latin]=Memorija
|
||||
Name[sv]=Minne
|
||||
Name[ta]=நினைவு
|
||||
Name[te]=మెమొరి
|
||||
Name[tg]=Хотира
|
||||
Name[th]=หน่วยความจำ
|
||||
Name[tr]=Bellek
|
||||
Name[uk]=Пам'ять
|
||||
Name[uz]=Xotira
|
||||
Name[uz@cyrillic]=Хотира
|
||||
Name[vi]=Bộ nhớ
|
||||
Name[wa]=Memwere
|
||||
Name[xh]=Inkumbulo
|
||||
Name[x-test]=xxMemoryxx
|
||||
Name[zh_CN]=内存
|
||||
Name[zh_TW]=記憶體
|
||||
|
||||
Comment=Memory information
|
||||
Comment[af]=Geheue informasie
|
||||
Comment[ar]=معلومات الذاكرة
|
||||
Comment[as]=স্মৃতিশক্তিৰ তথ্য
|
||||
Comment[be]=Звесткі пра памяць
|
||||
Comment[be@latin]=Źviestki pra pamiać
|
||||
Comment[bg]=Информация за системната памет
|
||||
Comment[bn]=মেমরি সংক্রান্ত তথ্য
|
||||
Comment[bn_IN]=মেমরি সংক্রান্ত তথ্য
|
||||
Comment[br]=Titouroù diwar-benn ar memor
|
||||
Comment[ca]=Informació de la memòria
|
||||
Comment[ca@valencia]=Informació de la memòria
|
||||
Comment[cs]=Informace o paměti
|
||||
Comment[csb]=Wëdowiédzô ò pamiãcë
|
||||
Comment[cy]=Gwybodaeth Cof
|
||||
Comment[da]=Information om hukommelsen
|
||||
Comment[de]=Informationen zum Speicher
|
||||
Comment[el]=Πληροφορίες για τη Μνήμη
|
||||
Comment[en_GB]=Memory information
|
||||
Comment[eo]=Informoj pri memoro
|
||||
Comment[es]=Información sobre la memoria
|
||||
Comment[et]=Mäluga seotud info
|
||||
Comment[eu]=Memoriari buruzko informazioa
|
||||
Comment[fa]=اطلاعات حافظه
|
||||
Comment[fi]=Tietoja muistista
|
||||
Comment[fr]=Informations sur la mémoire
|
||||
Comment[fy]=Unthâld ynformaasje
|
||||
Comment[ga]=Faisnéis chuimhne
|
||||
Comment[gl]=Información da memoria
|
||||
Comment[gu]=મેમરી માહિતી
|
||||
Comment[he]=מידע על הזיכרון
|
||||
Comment[hi]=मेमोरी जानकारी
|
||||
Comment[hne]=मेमोरी जानकारी
|
||||
Comment[hr]=Podaci o memoriji
|
||||
Comment[hsb]=Informacija wo pomjatku
|
||||
Comment[hu]=A memória jellemzői
|
||||
Comment[id]=Informasi memori
|
||||
Comment[is]=Upplýsingar um vinnsluminni
|
||||
Comment[it]=Informazioni sulla memoria
|
||||
Comment[ja]=メモリの情報
|
||||
Comment[ka]=ინფორმაცია მეხსიერების შესახებ
|
||||
Comment[kk]=Жад мәліметі
|
||||
Comment[km]=ព័ត៌មានសតិ
|
||||
Comment[kn]=ಸ್ಮೃತಿ ಮಾಹಿತಿ
|
||||
Comment[ko]=메모리 정보
|
||||
Comment[ku]=Agahiya Bîrê
|
||||
Comment[lt]=Atminties informacija
|
||||
Comment[lv]=Atmiņas informācija
|
||||
Comment[mai]=मेमोरी सूचना
|
||||
Comment[mk]=Информации за меморијата
|
||||
Comment[ml]=മെമ്മറിയെക്കുറിച്ചുള്ള വിവരങ്ങള്
|
||||
Comment[mr]=स्मृती माहिती
|
||||
Comment[ms]=Maklumat ingatan
|
||||
Comment[nb]=Minneinformasjon
|
||||
Comment[nds]=Informatschoon över den Spieker
|
||||
Comment[ne]=स्मृति सूचना
|
||||
Comment[nl]=Geheugeninformatie
|
||||
Comment[nn]=Minneinformasjon
|
||||
Comment[or]=ସ୍ମୃତିସ୍ଥାନ ସୂଚନା
|
||||
Comment[pa]=ਮੈਮੋਰੀ ਜਾਣਕਾਰੀ
|
||||
Comment[pl]=Informacje o pamięci
|
||||
Comment[pt]=Informações sobre a memória
|
||||
Comment[pt_BR]=Informações sobre memória
|
||||
Comment[ro]=Informații despre memorie
|
||||
Comment[ru]=Сведения об использовании памяти
|
||||
Comment[se]=Muitodiehtu
|
||||
Comment[si]=මතක තොරතුරු
|
||||
Comment[sk]=Informácie o pamäti
|
||||
Comment[sl]=Podatki o pomnilniku
|
||||
Comment[sr]=Подаци о меморији
|
||||
Comment[sr@ijekavian]=Подаци о меморији
|
||||
Comment[sr@ijekavianlatin]=Podaci o memoriji
|
||||
Comment[sr@latin]=Podaci o memoriji
|
||||
Comment[sv]=Minnesinformation
|
||||
Comment[ta]=நினைவுத் தகவல்
|
||||
Comment[te]=మెమొరి సమాచారం
|
||||
Comment[tg]=Иттилооти хотира
|
||||
Comment[th]=ข้อมูลหน่วยความจำ
|
||||
Comment[tr]=Bellek hakkında bilgi
|
||||
Comment[uk]=Інформація щодо пам'яті
|
||||
Comment[uz]=Xotira haqida maʼlumot
|
||||
Comment[uz@cyrillic]=Хотира ҳақида маълумот
|
||||
Comment[vi]=Thông tin về bộ nhớ
|
||||
Comment[wa]=Infôrmåcion sol memwere
|
||||
Comment[xh]=Ulwazi lwenkumbulo
|
||||
Comment[x-test]=xxMemory informationxx
|
||||
Comment[zh_CN]=内存信息
|
||||
Comment[zh_TW]=記憶體資訊資訊
|
||||
|
||||
X-KDE-Keywords=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information
|
||||
X-KDE-Keywords[af]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Informasie
|
||||
X-KDE-Keywords[be]=Памяць,віртуальная памяць,фізічная памяць,падкачка,сістэмная інфармацыя,Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information
|
||||
X-KDE-Keywords[bg]=Keywords=информация, система, системна, памет, физическа, виртуална, кеш, реална, Memory, RAM, Virtual memory, Physical memory, Shared memory, Swap, System Information
|
||||
X-KDE-Keywords[br]=memor,RAM,memor c'halloudel,memor fizikel,memor rannet,disloañ,titouroù reizhiad
|
||||
X-KDE-Keywords[ca]=Memòria,RAM,Memòria virtual,memòria física,memòria compartida,intercanvi,Informació del sistema
|
||||
X-KDE-Keywords[cs]=Paměť,RAM,Virtuální paměť,Fyzická paměť,Sdílená paměť,Swap,Informace o systému
|
||||
X-KDE-Keywords[csb]=pamiãc,RAM,wirtualnô pamiãc,fizycznô pamiãc,zbiérnô pamiãc,lopk wëmianë,particëjô wëmianë,wëdowiédzô ò systemie
|
||||
X-KDE-Keywords[cy]=Cof,RAM,Cof rhith,Cof corfforol,Cof cyfrannol,Swap,Gwybodaeth Cysawd
|
||||
X-KDE-Keywords[da]=Hukommelse,Ram,Virtuel hukommelse,Fysisk hukommelse,Delt hukommelse,Swap,Systeminformation
|
||||
X-KDE-Keywords[de]=Speicher,RAM,Virtueller Speicher,Physischer Speicher,Shared Memory,Auslagerung,Swap,Systeminformation
|
||||
X-KDE-Keywords[el]=Μνήμη,RAM,Εικονική μνήμη,Φυσική μνήμη,Μοιρασμένη μνήμη,Αντιμετάθεση,Πληροφορίες συστήματος
|
||||
X-KDE-Keywords[eo]=memoro,RAM,virtuala,fizika,komunuza,sistemo,operaciumo,informo
|
||||
X-KDE-Keywords[es]=Memoria,RAM,Memoria virtual,Memoria física,Memoria compartida,Swap,Intercambio,Información del sistema
|
||||
X-KDE-Keywords[et]=Mälu,RAM,Virtuaalmälu,Füüsiline mälu,Jagatud mälu,Swap,Saaleala,Süsteemi info
|
||||
X-KDE-Keywords[eu]=Memoria,RAM,Memoria birtuala,Memoria fisikoa,Partekatutako memoria, Swap,Sistemaren informazioa
|
||||
X-KDE-Keywords[fa]=حافظه، حافظه با دستیابی تصادفی، حافظۀ مجازی، حافظۀ فیزیکی، حافظۀ مشترک، مبادله کردن، اطلاعات سیستم
|
||||
X-KDE-Keywords[fi]=Muisti,RAM,Virtuaalimuisti,Fyysinen muisti,Jaettu muisti,Järjestelmätiedot
|
||||
X-KDE-Keywords[fr]=mémoire,RAM,mémoire virtuelle,mémoire physique,mémoire partagée,swap,partition d'échange,informations système,ram
|
||||
X-KDE-Keywords[fy]=memory,RAM,virtual memory,physical memory,shared memory,swap,systeemynformaasje,ûnthâld,wikselûnthâld,,virtueel ûnthâld,fysiek ûnthâld,dield ûnthâld,
|
||||
X-KDE-Keywords[ga]=Cuimhne,RAM,Cuimhne fhíorúil,Cuimhne ábhartha,Comhchuimhne,Cuimhne bhabhtála,Eolas faoin Chóras
|
||||
X-KDE-Keywords[gl]=Memória,RAM,Memória virtual,Memória física,Memória compartida,Swap,Intercámbio,Información do Sistema
|
||||
X-KDE-Keywords[he]=זיכרון פנימי,זיכרון וירטואלי,זיכרון משותף,תחלופה,מידע, מערכת,RAM,זיכרון,Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information
|
||||
X-KDE-Keywords[hr]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,Memorija,Virtualana memorija,Fizička memorija,Dijeljena memorija,Podaci o sustavu
|
||||
X-KDE-Keywords[hu]=memória,RAM,virtuális memória,fizikai memória,megosztott memória,lapozómemória,lapozó,swap,rendszerinformáció
|
||||
X-KDE-Keywords[is]=Minni,vinnsluminni,sýndarminni,samnýtt minni,biðminni,diskminni,kerfi,upplýsingar
|
||||
X-KDE-Keywords[it]=memoria,RAM,memoria virtuale,memoria fisica,memoria condivisa,swap,informazioni sul sistema
|
||||
X-KDE-Keywords[ja]=メモリ,RAM,仮想メモリ,物理メモリ,共有メモリ, スワップ, システム情報
|
||||
X-KDE-Keywords[ka]=მეხსიერება,RAM,ვირტუალური მეხსეირება,ფიზიკური მეხსიერება,საერთო მეხსიერება,მიმოცვლის ფაილია,ინფორმაცია სისტემის შესახებ
|
||||
X-KDE-Keywords[km]=សតិ RAM សតិនិម្មិត សតិពិត សតិដែលបានចែករំលែក ស្វប ព័ត៌មានប្រព័ន្ធ
|
||||
X-KDE-Keywords[ko]=메모리,RAM,가상 메모리,물리 메모리,공유 메모리,스왑,시스템 정보
|
||||
X-KDE-Keywords[lt]=Memory,atmintis,RAM,atmintinė,Virtual memory,virtuali atmintis,Physical memory,fizinė atmintis,Shared memory,bendro naudojimo atmintis,Swap,System Information,sisteminė informacija
|
||||
X-KDE-Keywords[lv]=Atmiņa,RAM,Virtuālā atmiņa,Fiziskā atmiņa,Koplietošanas atmiņa,Svaps,Sistēmas Informācija
|
||||
X-KDE-Keywords[mk]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,Меморија,Виртуелна меморија,Физичка меморија,Заедничка меморија,Информации за системот
|
||||
X-KDE-Keywords[nb]=Minne,RAM,Kunstig minne,Fysisk minne,Delt minne,Vekselsminne,Systeminformasjon
|
||||
X-KDE-Keywords[nds]=Spieker,RAM,Virtuell Spieker,Physikaalsch Spieker,Deelt Spieker,Swap,Utlager-Spieker,utlagern,Systeeminformatschoon
|
||||
X-KDE-Keywords[ne]=स्मृति, र्याम, अवास्तविक स्मृति, भौतीक स्मृति, साझेदारी स्मृति, स्वाप, प्रणाली सूचना
|
||||
X-KDE-Keywords[nl]=memory,RAM,virtual memory,physical memory,shared memory,swap,systeeminformatie,geheugen,wisselgeheugen,virtueel geheugen,fysiek geheugen,gedeeld geheugen
|
||||
X-KDE-Keywords[nn]=minne,RAM,virtuelt minne,fysisk minne,delt minne,veksleminne,systeminformasjon
|
||||
X-KDE-Keywords[pa]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,ਮੈਮੋਰੀ,ਭੌਤਿਕ ਮੈਮੋਰੀ,ਸਾਂਝੀ ਮੈਮੋਰੀ,ਸਵੈਪ,ਸਿਸਟਮ ਜਾਣਕਾਰੀ,ਰੈਮ
|
||||
X-KDE-Keywords[pl]=pamięć,RAM,pamięć wirtualna,pamięć fizyczna,pamięć współdzielona,plik wymiany,partycja wymiany,informacja o systemie
|
||||
X-KDE-Keywords[pt]=memória,RAM,memória virtual,memória física,memória partilhada,swap,informações do sistema
|
||||
X-KDE-Keywords[pt_BR]=Memória,RAM,Memória virtual,Memória física,Memória compartilhada,Swap,Troca,Informações de sistema
|
||||
X-KDE-Keywords[ro]=memorie,RAM,memorie virtuală,memorie fizică,memorie partajată,swap,informaţii despre sistem
|
||||
X-KDE-Keywords[se]=muitu,RAM,virtuella muitu,fysálaš muitu,juohkojuvvon muitu,vuorromuitu, vuogádatdiehtu
|
||||
X-KDE-Keywords[sl]=pomnilnik,RAM,navidezni pomnilnik,fizični pomnilnik,deljeni pomnilnik,izmenjalni prostor,informacije o sistemu
|
||||
X-KDE-Keywords[sr]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,меморија,виртуелна меморија,физичка меморија,дељена меморија,размена,системске информације,системски подаци
|
||||
X-KDE-Keywords[sr@latin]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,memorija,virtuelna memorija,fizička memorija,deljena memorija,razmena,sistemske informacije,sistemski podaci
|
||||
X-KDE-Keywords[sv]=Minne,RAM,Virtuellt minne,Fysiskt minne,Delat minne,Swapp,Systeminformation
|
||||
X-KDE-Keywords[ta]=நினைவகம், RAM,மய் நிகர் நினைவகம், பருநிலை நினைவகம், பகிர்வு நினைவகம், மாறுகொள், அமைப்புத்தகவல்
|
||||
X-KDE-Keywords[th]=หน่วยความจำ,แรม,หน่วยความจำเสมือน,หน่วยความจำจริง,หน่วยความจำที่ใช้ร่วมกัน,สวอป, ข้อมูลระบบ
|
||||
X-KDE-Keywords[tr]=Bellek,RAM,Sanal bellek,Fiziksel bellek,Paylaşılan bellek,Takas,Sistem Hakkında Bilgi
|
||||
X-KDE-Keywords[uk]=пам'ять,RAM,віртуальна пам'ять,фізична пам'ять,спільна пам'ять,свопінг,swap,інформація,система
|
||||
X-KDE-Keywords[uz]=Хотира,RAM,Виртуал хотира,Physical memory,Бўлишилган хотира,Своп,Тизим ҳақида маълумот
|
||||
X-KDE-Keywords[vi]=Bộ nhớ,RAM,Bộ nhớ ảo,Bộ nhớ vật lý,Bộ nhớ dùng chung,Bộ nhỡ tráo đổi,Thông tin Hệ thống
|
||||
X-KDE-Keywords[x-test]=xxMemory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Informationxx
|
||||
X-KDE-Keywords[xh]=Inkumbulo,RAM,Inkumbulo yobume,Inkumbulo yomzimba,Inkumbulo yokwahlulelana,Ukutshintshiselana,Ulwazi lwendlela
|
||||
X-KDE-Keywords[zh_CN]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,内存,虚拟存储,物理存储,共享内存,交换,系统信息
|
||||
X-KDE-Keywords[zh_TW]=Memory,RAM,Virtual memory,Physical memory,Shared memory,Swap,System Information,記憶體,虛擬記憶體,實體記憶體,共享記憶體,系統資訊
|
||||
Categories=Qt;KDE;X-KDE-information;
|
|
@ -1,325 +0,0 @@
|
|||
/*
|
||||
* memory.cpp
|
||||
*
|
||||
* Copyright (C) 2008 Ivo Anjo <knuckles@gmail.com>
|
||||
*
|
||||
* 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 "memory.h"
|
||||
|
||||
#include <QStringList>
|
||||
|
||||
#include <QGroupBox>
|
||||
#include <QLayout>
|
||||
#include <QPainter>
|
||||
#include <QPixmap>
|
||||
#include <QLabel>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLinearGradient>
|
||||
#include <QTreeWidget>
|
||||
|
||||
#include <kaboutdata.h>
|
||||
#include <kdialog.h>
|
||||
#include <kdebug.h>
|
||||
|
||||
#include <sys/param.h> /* for BSD */
|
||||
|
||||
#include <klocale.h>
|
||||
#include <kglobal.h>
|
||||
|
||||
#include <KPluginFactory>
|
||||
#include <KPluginLoader>
|
||||
|
||||
#include "chartWidget.h"
|
||||
|
||||
#include "physicalMemoryChart.h"
|
||||
#include "totalMemoryChart.h"
|
||||
#include "swapMemoryChart.h"
|
||||
|
||||
/*
|
||||
all fetchValues()-functions should put either
|
||||
their results _OR_ the value NO_MEMORY_INFO into memoryInfos[]
|
||||
*/
|
||||
static t_memsize memoryInfos[MEM_LAST_ENTRY];
|
||||
|
||||
/******************/
|
||||
/* Implementation */
|
||||
/******************/
|
||||
|
||||
static QLabel *memorySizeLabels[MEM_LAST_ENTRY][2];
|
||||
|
||||
|
||||
K_PLUGIN_FACTORY(KCMMemoryFactory,
|
||||
registerPlugin<KCMMemory>();
|
||||
)
|
||||
K_EXPORT_PLUGIN(KCMMemoryFactory("kcm_memory"))
|
||||
|
||||
KCMMemory::KCMMemory(QWidget *parent, const QVariantList &) :
|
||||
KCModule(KCMMemoryFactory::componentData(), parent) {
|
||||
|
||||
KAboutData *about = new KAboutData(I18N_NOOP("kcm_memory"), 0,
|
||||
ki18n("KDE Panel Memory Information Control Module"),
|
||||
0, KLocalizedString(), KAboutData::License_GPL,
|
||||
ki18n("(c) 1998 - 2002 Helge Deller"));
|
||||
|
||||
about->addAuthor(ki18n("Helge Deller"), KLocalizedString(), "deller@gmx.de");
|
||||
setAboutData(about);
|
||||
|
||||
QString title, initial_str;
|
||||
|
||||
setButtons(Help);
|
||||
|
||||
QVBoxLayout *top = new QVBoxLayout(this);
|
||||
top->setMargin(0);
|
||||
top->setSpacing(1);
|
||||
|
||||
QGroupBox* informationGroup = initializeText();
|
||||
top->addWidget(informationGroup, 1);
|
||||
|
||||
// Now the Graphics
|
||||
QGroupBox* graphicsGroup = initializeCharts();
|
||||
top->addWidget(graphicsGroup, 2);
|
||||
|
||||
timer = new QTimer(this);
|
||||
timer->start(100);
|
||||
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(updateDatas()));
|
||||
|
||||
updateDatas();
|
||||
}
|
||||
|
||||
KCMMemory::~KCMMemory() {
|
||||
/* stop the timer */
|
||||
timer->stop();
|
||||
}
|
||||
|
||||
QString KCMMemory::quickHelp() const {
|
||||
return i18n("This display shows you the current memory usage of your system."
|
||||
" The values are updated on a regular basis and give you an"
|
||||
" overview of the physical and virtual memory being used.");
|
||||
}
|
||||
|
||||
QGroupBox* KCMMemory::initializeText() {
|
||||
QGroupBox* informationGroup = new QGroupBox(i18n("Memory"));
|
||||
|
||||
QHBoxLayout *hbox = new QHBoxLayout(informationGroup);
|
||||
|
||||
/* stretch the left side */
|
||||
hbox->addStretch();
|
||||
|
||||
QString title;
|
||||
|
||||
//TODO Use the more smart QGridLayout !!!
|
||||
|
||||
/* first create the Informationtext-Widget */
|
||||
QVBoxLayout *vbox = new QVBoxLayout();
|
||||
hbox->addLayout(vbox);
|
||||
vbox->setSpacing(0);
|
||||
for (int i = TOTAL_MEM; i < MEM_LAST_ENTRY; ++i) {
|
||||
switch (i) {
|
||||
case TOTAL_MEM:
|
||||
title = i18n("Total physical memory:");
|
||||
break;
|
||||
case FREE_MEM:
|
||||
title = i18n("Free physical memory:");
|
||||
break;
|
||||
#if !defined(__svr4__) || !defined(sun)
|
||||
#if !defined(__NetBSD__) && !defined(__OpenBSD__)
|
||||
case SHARED_MEM:
|
||||
title = i18n("Shared memory:");
|
||||
break;
|
||||
case BUFFER_MEM:
|
||||
title = i18n("Disk buffers:");
|
||||
break;
|
||||
#else
|
||||
case ACTIVE_MEM:
|
||||
title = i18n("Active memory:");
|
||||
break;
|
||||
case INACTIVE_MEM:
|
||||
title = i18n("Inactive memory:");
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
case CACHED_MEM:
|
||||
title = i18n("Disk cache:");
|
||||
break;
|
||||
case SWAP_MEM:
|
||||
vbox->addSpacing(SPACING);
|
||||
title = i18n("Total swap memory:");
|
||||
break;
|
||||
case FREESWAP_MEM:
|
||||
title = i18n("Free swap memory:");
|
||||
break;
|
||||
default:
|
||||
title = "";
|
||||
break;
|
||||
};
|
||||
QLabel* labelWidget = new QLabel(title, this);
|
||||
labelWidget->setAlignment(Qt::AlignLeft);
|
||||
vbox->addWidget(labelWidget);
|
||||
}
|
||||
|
||||
vbox->addStretch();
|
||||
|
||||
/* then the memory-content-widgets */
|
||||
for (int j = 0; j < 2; j++) {
|
||||
vbox = new QVBoxLayout();
|
||||
hbox->addLayout(vbox);
|
||||
vbox->setSpacing(0);
|
||||
for (int i = TOTAL_MEM; i < MEM_LAST_ENTRY; ++i) {
|
||||
if (i == SWAP_MEM)
|
||||
vbox->addSpacing(SPACING);
|
||||
QLabel* labelWidget = new QLabel(this);
|
||||
labelWidget->setAlignment(Qt::AlignRight);
|
||||
memorySizeLabels[i][j] = labelWidget;
|
||||
vbox->addWidget(labelWidget);
|
||||
}
|
||||
|
||||
vbox->addStretch();
|
||||
|
||||
}
|
||||
|
||||
/* stretch the right side */
|
||||
hbox->addStretch();
|
||||
|
||||
return informationGroup;
|
||||
|
||||
}
|
||||
|
||||
QGroupBox* KCMMemory::initializeCharts() {
|
||||
QGroupBox* chartsGroup = new QGroupBox(i18n("Charts"));
|
||||
|
||||
QHBoxLayout* chartsLayout = new QHBoxLayout(chartsGroup);
|
||||
chartsLayout->setSpacing(1);
|
||||
chartsLayout->setMargin(1);
|
||||
|
||||
//chartsLayout->addStretch(1);
|
||||
|
||||
|
||||
|
||||
totalMemory = new ChartWidget(i18n("Total Memory"),
|
||||
i18n("This graph gives you an overview of the "
|
||||
"<b>total sum of physical and virtual memory</b> "
|
||||
"in your system."),
|
||||
new TotalMemoryChart(this), this);
|
||||
|
||||
chartsLayout->addWidget(totalMemory);
|
||||
chartsLayout->addSpacing(SPACING);
|
||||
|
||||
|
||||
physicalMemory = new ChartWidget(i18n("Physical Memory"),
|
||||
i18n("This graph gives you an overview of "
|
||||
"the <b>usage of physical memory</b> in your system."
|
||||
"<p>Most operating systems (including Linux) "
|
||||
"will use as much of the available physical "
|
||||
"memory as possible as disk cache, "
|
||||
"to speed up the system performance.</p>"
|
||||
"<p>This means that if you have a small amount "
|
||||
"of <b>Free Physical Memory</b> and a large amount of "
|
||||
"<b>Disk Cache Memory</b>, your system is well "
|
||||
"configured.</p>"),
|
||||
new PhysicalMemoryChart(this), this);
|
||||
|
||||
chartsLayout->addWidget(physicalMemory);
|
||||
chartsLayout->addSpacing(SPACING);
|
||||
|
||||
swapMemory = new ChartWidget(i18n("Swap Space"),
|
||||
i18n("<p>The swap space is the <b>virtual memory</b> "
|
||||
"available to the system.</p> "
|
||||
"<p>It will be used on demand and is provided "
|
||||
"through one or more swap partitions and/or swap files.</p>"),
|
||||
new SwapMemoryChart(this), this);
|
||||
|
||||
|
||||
chartsLayout->addWidget(swapMemory);
|
||||
|
||||
//chartsLayout->addStretch(1);
|
||||
|
||||
return chartsGroup;
|
||||
}
|
||||
|
||||
void KCMMemory::updateDatas() {
|
||||
|
||||
/* get the Information from memory_linux, memory_fbsd */
|
||||
fetchValues();
|
||||
|
||||
updateMemoryText();
|
||||
updateMemoryGraphics();
|
||||
}
|
||||
|
||||
|
||||
void KCMMemory::updateMemoryText() {
|
||||
/* update the byte-strings */
|
||||
for (int i = TOTAL_MEM; i < MEM_LAST_ENTRY; i++) {
|
||||
QLabel* label = memorySizeLabels[i][0];
|
||||
if (memoryInfos[i] == NO_MEMORY_INFO)
|
||||
label->clear();
|
||||
else
|
||||
label->setText(i18np("1 byte =", "%1 bytes =", memoryInfos[i]));
|
||||
}
|
||||
|
||||
/* update the MB-strings */
|
||||
for (int i = TOTAL_MEM; i < MEM_LAST_ENTRY; i++) {
|
||||
QLabel* label = memorySizeLabels[i][1];
|
||||
label->setText((memoryInfos[i] != NO_MEMORY_INFO) ? Chart::formattedUnit(memoryInfos[i]) : i18n("Not available."));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void KCMMemory::updateMemoryGraphics() {
|
||||
totalMemory->setMemoryInfos(memoryInfos);
|
||||
totalMemory->refresh();
|
||||
|
||||
physicalMemory->setMemoryInfos(memoryInfos);
|
||||
physicalMemory->refresh();
|
||||
|
||||
swapMemory->setMemoryInfos(memoryInfos);
|
||||
swapMemory->refresh();
|
||||
|
||||
}
|
||||
|
||||
/* Include system-specific code */
|
||||
|
||||
#ifdef __linux__
|
||||
#include "memory_linux.cpp"
|
||||
#elif defined(__APPLE__)
|
||||
#include "memory_osx.cpp"
|
||||
#elif defined(sgi) && sgi
|
||||
#include "memory_sgi.cpp"
|
||||
#elif defined(__svr4__) && defined(sun)
|
||||
#include "memory_solaris.cpp"
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
#include "memory_fbsd.cpp"
|
||||
#elif defined(__hpux)
|
||||
#include "memory_hpux.cpp"
|
||||
#elif defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#include "memory_netbsd.cpp"
|
||||
#elif __osf__
|
||||
#include "memory_tru64.cpp"
|
||||
#else
|
||||
|
||||
/* Default for unsupported systems */
|
||||
void KCMMemory::fetchValues() {
|
||||
int i;
|
||||
for (i = TOTAL_MEM; i < MEM_LAST_ENTRY; ++i) {
|
||||
memoryInfos[i] = NO_MEMORY_INFO;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#include "memory.moc"
|
|
@ -1,69 +0,0 @@
|
|||
/*
|
||||
* memory.h
|
||||
*
|
||||
* Copyright (C) 2008 Nicolas Ternisien <nicolas.ternisien@gmail.com>
|
||||
*
|
||||
* 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 KCONTROL_MEMORY_H
|
||||
#define KCONTROL_MEMORY_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QTimer>
|
||||
|
||||
#include <kcmodule.h>
|
||||
#include <kaboutdata.h>
|
||||
|
||||
#include "base.h"
|
||||
|
||||
class QGroupBox;
|
||||
class QPushButton;
|
||||
class ChartWidget;
|
||||
|
||||
class KCMMemory : public KCModule {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit KCMMemory(QWidget *parent = NULL, const QVariantList &list = QVariantList());
|
||||
~KCMMemory();
|
||||
|
||||
QString quickHelp() const;
|
||||
|
||||
private slots:
|
||||
void updateMemoryText();
|
||||
void updateMemoryGraphics();
|
||||
|
||||
void updateDatas();
|
||||
private:
|
||||
|
||||
QGroupBox* initializeText();
|
||||
QGroupBox* initializeCharts();
|
||||
|
||||
QTimer *timer;
|
||||
|
||||
ChartWidget* totalMemory;
|
||||
ChartWidget* physicalMemory;
|
||||
ChartWidget* swapMemory;
|
||||
|
||||
|
||||
void fetchValues();
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
#include <sys/types.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/vmmeter.h>
|
||||
|
||||
#include <vm/vm_param.h>
|
||||
#include <kvm.h>
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <paths.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void KCMMemory::fetchValues()
|
||||
{
|
||||
/* Stuff for sysctl */
|
||||
size_t len;
|
||||
|
||||
unsigned long memory;
|
||||
len = sizeof(memory);
|
||||
sysctlbyname("hw.physmem", &memory, &len, NULL, 0);
|
||||
|
||||
// Numerical values
|
||||
|
||||
// total physical memory (without swap space)
|
||||
memoryInfos[TOTAL_MEM] = MEMORY(memory);
|
||||
|
||||
unsigned int cached;
|
||||
len = sizeof(cached);
|
||||
if (sysctlbyname("vm.stats.vm.v_cache_count", &cached, &len, NULL, 0) == -1 || !len)
|
||||
memoryInfos[CACHED_MEM] = NO_MEMORY_INFO;
|
||||
else
|
||||
memoryInfos[CACHED_MEM] = MEMORY(cached) * PAGE_SIZE;
|
||||
|
||||
unsigned int free;
|
||||
len = sizeof(free);
|
||||
if (sysctlbyname("vm.stats.vm.v_free_count", &free, &len, NULL, 0) == -1 || !len)
|
||||
memoryInfos[FREE_MEM] = NO_MEMORY_INFO;
|
||||
else
|
||||
memoryInfos[FREE_MEM] = MEMORY(free) * PAGE_SIZE;
|
||||
|
||||
// added by Brad Hughes bhughes@trolltech.com
|
||||
struct vmtotal vmem;
|
||||
|
||||
len = sizeof(vmem);
|
||||
if (sysctlbyname("vm.vmtotal", &vmem, &len, NULL, 0) == -1 || !len)
|
||||
memoryInfos[SHARED_MEM] = NO_MEMORY_INFO;
|
||||
else
|
||||
memoryInfos[SHARED_MEM] = MEMORY(vmem.t_armshr) * PAGE_SIZE;
|
||||
|
||||
long buffers;
|
||||
len = sizeof(buffers);
|
||||
if ((sysctlbyname("vfs.bufspace", &buffers, &len, NULL, 0) == -1) || !len)
|
||||
memoryInfos[BUFFER_MEM] = NO_MEMORY_INFO;
|
||||
else
|
||||
memoryInfos[BUFFER_MEM] = MEMORY(buffers);
|
||||
|
||||
struct kvm_swap swap[1];
|
||||
kvm_t *kvm_handle;
|
||||
kvm_handle = kvm_open(NULL, _PATH_DEVNULL, NULL, O_RDONLY, "kvm_open");
|
||||
|
||||
if (kvm_handle != NULL && kvm_getswapinfo(kvm_handle, swap, 1, 0) != -1) {
|
||||
memoryInfos[SWAP_MEM] = MEMORY(swap[0].ksw_total) * PAGE_SIZE;
|
||||
memoryInfos[FREESWAP_MEM] = MEMORY(swap[0].ksw_total - swap[0].ksw_used) * PAGE_SIZE;
|
||||
}
|
||||
|
||||
if (kvm_handle != NULL)
|
||||
kvm_close(kvm_handle);
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue