00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#include "plugincombobox.h"
00021
#include "kmfactory.h"
00022
#include "kmmanager.h"
00023
00024
#include <qcombobox.h>
00025
#include <qlabel.h>
00026
#include <qlayout.h>
00027
#include <klocale.h>
00028
#include <qwhatsthis.h>
00029
00030 PluginComboBox::PluginComboBox(
QWidget *parent,
const char *name)
00031 :
QWidget(parent, name)
00032 {
00033
QString whatsThisCurrentPrintsystem = i18n(
" <qt><b>Print Subsystem Selection</b>"
00034
" <p>This combo box shows (and lets you select)"
00035
" a print subsystem to be used by KDEPrint. (This print"
00036
" subsystem must, of course, be installed inside your"
00037
" Operating System.) KDEPrint usually auto-detects the"
00038
" correct print subsystem by itself upon first startup."
00039
" Most Linux distributions have \"CUPS\", the <em>Common"
00040
" UNIX Printing System</em>."
00041
" </qt>" );
00042
00043 m_combo =
new QComboBox(
this,
"PluginCombo");
00044
QWhatsThis::add(m_combo, whatsThisCurrentPrintsystem);
00045
QLabel *m_label =
new QLabel(i18n(
"Print s&ystem currently used:"),
this);
00046
QWhatsThis::add(m_label, whatsThisCurrentPrintsystem);
00047 m_label->
setAlignment(AlignVCenter|AlignRight);
00048 m_label->
setBuddy(m_combo);
00049 m_plugininfo =
new QLabel(
"Plugin information",
this);
00050
QGridLayout *l0 =
new QGridLayout(
this, 2, 2, 0, 5);
00051 l0->
setColStretch(0, 1);
00052 l0->
addWidget(m_label, 0, 0);
00053 l0->
addWidget(m_combo, 0, 1);
00054 l0->
addWidget(m_plugininfo, 1, 1);
00055
00056
QValueList<KMFactory::PluginInfo> list = KMFactory::self()->pluginList();
00057
QString currentPlugin = KMFactory::self()->printSystem();
00058
for (
QValueList<KMFactory::PluginInfo>::ConstIterator it=list.
begin(); it!=list.
end(); ++it)
00059 {
00060 m_combo->insertItem((*it).comment);
00061
if ((*it).name == currentPlugin)
00062 m_combo->setCurrentItem(m_combo->count()-1);
00063 m_pluginlist.append((*it).name);
00064 }
00065
00066 connect(m_combo, SIGNAL(activated(
int)), SLOT(slotActivated(
int)));
00067 configChanged();
00068 }
00069
00070
void PluginComboBox::slotActivated(
int index)
00071 {
00072
QString plugin = m_pluginlist[index];
00073
if (!plugin.
isEmpty())
00074 {
00075
00076 KMFactory::self()->reload(plugin,
true);
00077 }
00078 }
00079
00080
void PluginComboBox::reload()
00081 {
00082
QString syst = KMFactory::self()->printSystem();
00083
int index(-1);
00084
if ((index=m_pluginlist.findIndex(syst)) != -1)
00085 m_combo->setCurrentItem(index);
00086 configChanged();
00087 }
00088
00089
void PluginComboBox::configChanged()
00090 {
00091
QString whatsThisCurrentConnection = i18n(
" <qt><b>Current Connection</b>"
00092
" <p>This line shows which CUPS server your PC is"
00093
" currently connected to for printing and retrieving"
00094
" printer info. To switch to a different CUPS server,"
00095
" click \"System Options\", then select \"Cups server\""
00096
" and fill in the required info."
00097
" </qt>" );
00098
00099 m_plugininfo->setText(KMManager::self()->stateInformation());
00100
QWhatsThis::add(m_plugininfo, whatsThisCurrentConnection);
00101
00102 }
00103
00104
#include "plugincombobox.moc"