kdeprint Library API Documentation

kpgeneralpage.cpp

00001 /*
00002  *  This file is part of the KDE libraries
00003  *  Copyright (c) 2001 Michael Goffioul <kdeprint@swing.be>
00004  *
00005  *  This library is free software; you can redistribute it and/or
00006  *  modify it under the terms of the GNU Library General Public
00007  *  License version 2 as published by the Free Software Foundation.
00008  *
00009  *  This library is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  *  Library General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Library General Public License
00015  *  along with this library; see the file COPYING.LIB.  If not, write to
00016  *  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00017  *  Boston, MA 02111-1307, USA.
00018  **/
00019 
00020 #include "kpgeneralpage.h"
00021 #include "driver.h"
00022 #include "kmprinter.h"
00023 #include "kprinter.h"
00024 
00025 #include <qcombobox.h>
00026 #include <qlabel.h>
00027 #include <qbuttongroup.h>
00028 #include <qlayout.h>
00029 #include <qradiobutton.h>
00030 
00031 #include <kcursor.h>
00032 #include <klocale.h>
00033 #include <kiconloader.h>
00034 #include <kdialog.h>
00035 
00036 // Some ID's
00037 #define ORIENT_PORTRAIT_ID  0
00038 #define ORIENT_LANDSCAPE_ID 1
00039 #define ORIENT_REVLANDSCAPE_ID  2
00040 #define ORIENT_REVPORTRAIT_ID   3
00041 
00042 #define DUPLEX_NONE_ID  0
00043 #define DUPLEX_LONG_ID  1
00044 #define DUPLEX_SHORT_ID 2
00045 
00046 #define NUP_1_ID    0
00047 #define NUP_2_ID    1
00048 #define NUP_4_ID    2
00049 
00050 static void initCombo(QComboBox *cb, DrListOption *opt)
00051 {
00052     cb->clear();
00053     QPtrListIterator<DrBase>    it(*(opt->choices()));
00054     for (;it.current();++it)
00055     {
00056         cb->insertItem(it.current()->get("text"));
00057         if (it.current() == opt->currentChoice())
00058             cb->setCurrentItem(cb->count()-1);
00059     }
00060 }
00061 
00062 static void setComboItem(QComboBox *cb, const QString& txt)
00063 {
00064     for (int i=0;i<cb->count();i++)
00065         if (cb->text(i) == txt)
00066         {
00067             cb->setCurrentItem(i);
00068             return;
00069         }
00070 }
00071 
00072 static int findOption(const char *strs[], int n, const QString& txt)
00073 {
00074     for (int i=0;i<n;i+=2)
00075         if (txt == strs[i]) return (i/2);
00076     return (-1);
00077 }
00078 
00079 //*************************************************************************************************
00080 
00081 // default values in case of NULL driver
00082 static const char*  default_size[] = {
00083     "A4", I18N_NOOP("ISO A4"),
00084     "Letter", I18N_NOOP("US Letter"),
00085     "Legal", I18N_NOOP("US Legal"),
00086     "Ledger", I18N_NOOP("Ledger"),
00087     "Folio", I18N_NOOP("Folio"),
00088     "Comm10", I18N_NOOP("US #10 Envelope"),
00089     "DL", I18N_NOOP("ISO DL Envelope"),
00090     "Tabloid", I18N_NOOP("Tabloid"),
00091     "A3", I18N_NOOP( "ISO A3" ),
00092     "A2", I18N_NOOP( "ISO A2" ),
00093     "A1", I18N_NOOP( "ISO A1" ),
00094     "A0", I18N_NOOP( "ISO A0" )
00095 };
00096 #define SMALLSIZE_BEGIN   0
00097 #define MEDIUMSIZE_BEGIN 14
00098 #define HIGHSIZE_BEGIN   20
00099 #define DEFAULT_SIZE     24
00100 
00101 #define DEFAULT_SOURCE  8
00102 static const char*  default_source[] = {
00103     "Upper", I18N_NOOP("Upper Tray"),
00104     "Lower", I18N_NOOP("Lower Tray"),
00105     "MultiPurpose", I18N_NOOP("Multi-Purpose Tray"),
00106     "LargeCapacity", I18N_NOOP("Large Capacity Tray")
00107 };
00108 #define DEFAULT_TYPE    4
00109 static const char*  default_type[] = {
00110     "Normal", I18N_NOOP("Normal"),
00111     "Transparency", I18N_NOOP("Transparency")
00112 };
00113 
00114 //***************************************************************************************************
00115 
00116 KPGeneralPage::KPGeneralPage(KMPrinter *pr, DrMain *dr, QWidget *parent, const char *name)
00117 : KPrintDialogPage(pr,dr,parent,name)
00118 {
00119     setTitle(i18n("General"));
00120 
00121     // widget creation
00122     QLabel  *m_pagesizelabel = new QLabel(i18n("Page s&ize:"), this);
00123     m_pagesizelabel->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
00124     QLabel  *m_papertypelabel = new QLabel(i18n("Paper t&ype:"), this);
00125     m_papertypelabel->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
00126     QLabel  *m_inputslotlabel = new QLabel(i18n("Paper so&urce:"), this);
00127     m_inputslotlabel->setAlignment(Qt::AlignVCenter|Qt::AlignRight);
00128     m_pagesize = new QComboBox(this);
00129     m_papertype = new QComboBox(this);
00130     m_inputslot = new QComboBox(this);
00131     m_pagesizelabel->setBuddy(m_pagesize);
00132     m_papertypelabel->setBuddy(m_papertype);
00133     m_inputslotlabel->setBuddy(m_inputslot);
00134     m_orientbox = new QButtonGroup(0, Qt::Vertical, i18n("Orientation"), this);
00135     m_duplexbox = new QButtonGroup(0, Qt::Vertical, i18n("Duplex Printing"), this);
00136     m_nupbox = new QButtonGroup(0, Qt::Vertical, i18n("Pages per Sheet"), this);
00137     m_bannerbox = new QGroupBox(0, Qt::Vertical, i18n("Banners"), this);
00138     QRadioButton    *m_portrait = new QRadioButton(i18n("&Portrait"), m_orientbox);
00139     QRadioButton    *m_landscape = new QRadioButton(i18n("&Landscape"), m_orientbox);
00140     QRadioButton    *m_revland = new QRadioButton(i18n("&Reverse landscape"), m_orientbox);
00141     QRadioButton    *m_revport = new QRadioButton(i18n("R&everse portrait"), m_orientbox);
00142     m_portrait->setChecked(true);
00143     m_orientpix = new QLabel(m_orientbox);
00144     m_orientpix->setAlignment(Qt::AlignCenter);
00145     QRadioButton    *m_dupnone = new QRadioButton(i18n("duplex orientation", "&None"), m_duplexbox);
00146     QRadioButton    *m_duplong = new QRadioButton(i18n("duplex orientation", "Lon&g side"), m_duplexbox);
00147     QRadioButton    *m_dupshort = new QRadioButton(i18n("duplex orientation", "S&hort side"), m_duplexbox);
00148     m_dupnone->setChecked(true);
00149     m_duplexpix = new QLabel(m_duplexbox);
00150     m_duplexpix->setAlignment(Qt::AlignCenter);
00151     QRadioButton    *m_nup1 = new QRadioButton("&1", m_nupbox);
00152     QRadioButton    *m_nup2 = new QRadioButton("&2", m_nupbox);
00153     QRadioButton    *m_nup4 = new QRadioButton("&4", m_nupbox);
00154     m_nup1->setChecked(true);
00155     m_nuppix = new QLabel(m_nupbox);
00156     m_nuppix->setAlignment(Qt::AlignCenter);
00157     m_startbanner = new QComboBox(m_bannerbox);
00158     m_endbanner = new QComboBox(m_bannerbox);
00159     QLabel  *m_startbannerlabel = new QLabel(i18n("S&tart:"), m_bannerbox);
00160     QLabel  *m_endbannerlabel = new QLabel(i18n("En&d:"), m_bannerbox);
00161     m_startbannerlabel->setBuddy(m_startbanner);
00162     m_endbannerlabel->setBuddy(m_endbanner);
00163 
00164     // layout creation
00165     QVBoxLayout *lay0 = new QVBoxLayout(this, 0, KDialog::spacingHint());
00166     QGridLayout *lay1 = new QGridLayout(0, 3, 2, 0, KDialog::spacingHint());
00167     QGridLayout *lay2 = new QGridLayout(0, 2, 2, 0, KDialog::spacingHint());
00168     lay0->addStretch(1);
00169     lay0->addLayout(lay1);
00170     lay0->addStretch(1);
00171     lay0->addLayout(lay2);
00172     lay0->addStretch(2);
00173     lay1->addWidget(m_pagesizelabel, 0, 0);
00174     lay1->addWidget(m_papertypelabel, 1, 0);
00175     lay1->addWidget(m_inputslotlabel, 2, 0);
00176     lay1->addWidget(m_pagesize, 0, 1);
00177     lay1->addWidget(m_papertype, 1, 1);
00178     lay1->addWidget(m_inputslot, 2, 1);
00179     lay2->addWidget(m_orientbox, 0, 0);
00180     lay2->addWidget(m_bannerbox, 1, 0);
00181     lay2->addWidget(m_duplexbox, 0, 1);
00182     lay2->addWidget(m_nupbox, 1, 1);
00183     lay2->setColStretch(0, 1);
00184     lay2->setColStretch(1, 1);
00185     QGridLayout *lay3 = new QGridLayout(m_orientbox->layout(), 4, 2,
00186         KDialog::spacingHint());
00187     lay3->addWidget(m_portrait, 0, 0);
00188     lay3->addWidget(m_landscape, 1, 0);
00189     lay3->addWidget(m_revland, 2, 0);
00190     lay3->addWidget(m_revport, 3, 0);
00191     lay3->addMultiCellWidget(m_orientpix, 0, 3, 1, 1);
00192     QGridLayout *lay4 = new QGridLayout(m_duplexbox->layout(), 3, 2,
00193         KDialog::spacingHint());
00194     lay4->addWidget(m_dupnone, 0, 0);
00195     lay4->addWidget(m_duplong, 1, 0);
00196     lay4->addWidget(m_dupshort, 2, 0);
00197     lay4->addMultiCellWidget(m_duplexpix, 0, 2, 1, 1);
00198     lay4->setRowStretch( 0, 1 );
00199     QGridLayout *lay5 = new QGridLayout(m_nupbox->layout(), 3, 2,
00200         KDialog::spacingHint());
00201     lay5->addWidget(m_nup1, 0, 0);
00202     lay5->addWidget(m_nup2, 1, 0);
00203     lay5->addWidget(m_nup4, 2, 0);
00204     lay5->addMultiCellWidget(m_nuppix, 0, 2, 1, 1);
00205     QGridLayout *lay6 = new QGridLayout(m_bannerbox->layout(), 2, 2,
00206         KDialog::spacingHint());
00207     lay6->addWidget(m_startbannerlabel, 0, 0);
00208     lay6->addWidget(m_endbannerlabel, 1, 0);
00209     lay6->addWidget(m_startbanner, 0, 1);
00210     lay6->addWidget(m_endbanner, 1, 1);
00211     lay6->setColStretch(1, 1);
00212 
00213     // connections (+ misc)
00214     connect(m_orientbox,SIGNAL(clicked(int)),SLOT(slotOrientationChanged(int)));
00215     connect(m_nupbox,SIGNAL(clicked(int)),SLOT(slotNupChanged(int)));
00216     connect(m_duplexbox,SIGNAL(clicked(int)),SLOT(slotDuplexChanged(int)));
00217 
00218     // init
00219     initialize();
00220 }
00221 
00222 KPGeneralPage::~KPGeneralPage()
00223 {
00224 }
00225 
00226 void KPGeneralPage::initialize()
00227 {
00228     if (driver())
00229     {
00230         // Size, Type and Source
00231         DrListOption    *opt = (DrListOption*)driver()->findOption("PageSize");
00232         if (opt) initCombo(m_pagesize,opt);
00233         else m_pagesize->setEnabled(false);
00234         opt = (DrListOption*)driver()->findOption("MediaType");
00235         if (opt) initCombo(m_papertype,opt);
00236         else m_papertype->setEnabled(false);
00237         opt = (DrListOption*)driver()->findOption("InputSlot");
00238         if (opt) initCombo(m_inputslot,opt);
00239         else m_inputslot->setEnabled(false);
00240         // Duplex
00241         opt = (DrListOption*)driver()->findOption("Duplex");
00242         if (opt)
00243         {
00244             if ( opt->choices()->count() == 2 )
00245             {
00246                 // probably a On/Off option instead of the standard PS one
00247                 QButton *btn = m_duplexbox->find( DUPLEX_SHORT_ID );
00248                 m_duplexbox->remove( btn );
00249                 btn->hide();
00250                 //delete btn;
00251                 m_duplexbox->find( DUPLEX_NONE_ID )->setText( i18n( "Disabled" ) );
00252                 m_duplexbox->find( DUPLEX_LONG_ID )->setText( i18n( "Enabled" ) );
00253                 m_duplexpix->hide();
00254             }
00255             if (opt->currentChoice())
00256             {
00257                 int ID(DUPLEX_NONE_ID);
00258                 if (opt->currentChoice()->name() == "DuplexNoTumble" || opt->currentChoice()->name() == "On") ID = DUPLEX_LONG_ID;
00259                 else if (opt->currentChoice()->name() == "DuplexTumble") ID = DUPLEX_SHORT_ID;
00260                 m_duplexbox->setButton(ID);
00261                 slotDuplexChanged(ID);
00262             }
00263         }
00264         else m_duplexbox->setEnabled(false);
00265     }
00266     else
00267     {
00268         // PageSize
00269         for (int i=SMALLSIZE_BEGIN+1;i<MEDIUMSIZE_BEGIN;i+=2)
00270             m_pagesize->insertItem(i18n(default_size[i]));
00271         if ( printer()->printerCap() & KMPrinter::CapMedium )
00272             for ( int i=MEDIUMSIZE_BEGIN+1; i<HIGHSIZE_BEGIN; i+=2 )
00273                 m_pagesize->insertItem(i18n(default_size[i]));
00274         if ( printer()->printerCap() & KMPrinter::CapLarge )
00275             for ( int i=HIGHSIZE_BEGIN+1; i<DEFAULT_SIZE; i+=2 )
00276                 m_pagesize->insertItem(i18n(default_size[i]));
00277         // set default page size using locale settings
00278         QString psname = pageSizeToPageName((KPrinter::PageSize)(KGlobal::locale()->pageSize()));
00279         int index = findOption(default_size, DEFAULT_SIZE, psname);
00280         if (index >= 0)
00281             m_pagesize->setCurrentItem(index);
00282         // MediaType
00283         for (int i=1;i<DEFAULT_TYPE;i+=2)
00284             m_papertype->insertItem(i18n(default_type[i]));
00285         // PageSize
00286         for (int i=1;i<DEFAULT_SOURCE;i+=2)
00287             m_inputslot->insertItem(i18n(default_source[i]));
00288 
00289         // Enable duplex setting if supported
00290         m_duplexbox->setEnabled( printer()->printerCap() & KMPrinter::CapDuplex );
00291     }
00292 
00293     // Banners
00294     QStringList values = QStringList::split(',',printer()->option("kde-banners-supported"),false);
00295     if (values.count() > 0)
00296     {
00297         for (QStringList::ConstIterator it = values.begin(); it != values.end(); ++it)
00298         {
00299             m_startbanner->insertItem(*it);
00300             m_endbanner->insertItem(*it);
00301         }
00302         values = QStringList::split(',',printer()->option("kde-banners"),false);
00303         while (values.count() < 2) values.append("none");
00304         setComboItem(m_startbanner, values[0]);
00305         setComboItem(m_endbanner, values[1]);
00306     }
00307     else
00308         m_bannerbox->setEnabled(false);
00309 
00310     slotOrientationChanged(ORIENT_PORTRAIT_ID);
00311     slotNupChanged(NUP_1_ID);
00312 }
00313 
00314 void KPGeneralPage::setOptions(const QMap<QString,QString>& opts)
00315 {
00316     QString value;
00317 
00318     if (driver())
00319     {
00320         value = opts["PageSize"];
00321         if (m_pagesize->isEnabled() && !value.isEmpty())
00322         {
00323             DrBase  *ch = ((DrListOption*)driver()->findOption("PageSize"))->findChoice(value);
00324             if (ch) setComboItem(m_pagesize, ch->get("text"));
00325         }
00326         value = opts["MediaType"];
00327         if (m_papertype->isEnabled() && !value.isEmpty())
00328         {
00329             DrBase  *ch = ((DrListOption*)driver()->findOption("MediaType"))->findChoice(value);
00330             if (ch) setComboItem(m_papertype, ch->get("text"));
00331         }
00332         value = opts["InputSlot"];
00333         if (m_inputslot->isEnabled() && !value.isEmpty())
00334         {
00335             DrBase  *ch = ((DrListOption*)driver()->findOption("InputSlot"))->findChoice(value);
00336             if (ch) setComboItem(m_inputslot, ch->get("text"));
00337         }
00338 
00339         value = opts["Duplex"];
00340         if (m_duplexbox->isEnabled() && !value.isEmpty())
00341         {
00342             int ID(0);
00343             if (value == "DuplexNoTumble" || value == "On") ID = 1;
00344             else if (value == "DuplexTumble") ID = 2;
00345             m_duplexbox->setButton(ID);
00346             slotDuplexChanged(ID);
00347         }
00348     }
00349     else
00350     {
00351         // Try to find "media" option
00352         value = opts["media"];
00353         if (!value.isEmpty())
00354         {
00355             int index(-1);
00356             QStringList l = QStringList::split(',',value,false);
00357             if (l.count() > 0 && (index=findOption(default_size,DEFAULT_SIZE,l[0])) >= 0)
00358                 m_pagesize->setCurrentItem(index);
00359             if (l.count() > 1 && (index=findOption(default_type,DEFAULT_TYPE,l[1])) >= 0)
00360                 m_papertype->setCurrentItem(index);
00361             if (l.count() > 2 && (index=findOption(default_source,DEFAULT_SOURCE,l[2])) >= 0)
00362                 m_inputslot->setCurrentItem(index);
00363         }
00364 
00365         // Try to find "sides" option
00366         value = opts["sides"];
00367         int ID(0);
00368         if (value == "two-sided-long-edge") ID = 1;
00369         else if (value == "two-sided-short-edge") ID = 2;
00370         m_duplexbox->setButton(ID);
00371         slotDuplexChanged(ID);
00372     }
00373 
00374     // Banners
00375     value = opts["job-sheets"];
00376     if (!value.isEmpty())
00377     {
00378         QStringList l = QStringList::split(',',value,false);
00379         if (l.count() > 0) setComboItem(m_startbanner,l[0]);
00380         if (l.count() > 1) setComboItem(m_endbanner,l[1]);
00381     }
00382 
00383     // Orientation
00384     value = opts["orientation-requested"];
00385     if (!value.isEmpty())
00386     {
00387         bool    ok;
00388         int ID = value.toInt(&ok)-3;
00389         if (ok)
00390         {
00391             m_orientbox->setButton(ID);
00392             slotOrientationChanged(ID);
00393         }
00394     }
00395 
00396     // N-up
00397     value = opts["number-up"];
00398     if (!value.isEmpty())
00399     {
00400         bool    ok;
00401         int ID = QMIN(value.toInt(&ok)-1,2);
00402         if (ok)
00403         {
00404             m_nupbox->setButton(ID);
00405             slotNupChanged(ID);
00406         }
00407     }
00408 
00409     if ( m_orientbox->isEnabled() )
00410         m_orientbox->setDisabled( opts[ "kde-orientation-fixed" ] == "1" );
00411     if ( m_pagesize->isEnabled() )
00412         m_pagesize->setDisabled( opts[ "kde-pagesize-fixed" ] == "1" );
00413 }
00414 
00415 void KPGeneralPage::getOptions(QMap<QString,QString>& opts, bool incldef)
00416 {
00417     QString value;
00418 
00419     if (driver())
00420     {
00421         DrListOption    *opt;
00422         if ((opt=(DrListOption*)driver()->findOption("PageSize")) != NULL)
00423         {
00424             DrBase  *ch = opt->choices()->at(m_pagesize->currentItem());
00425             if (incldef || ch->name() != opt->get("default")) opts["PageSize"] = ch->name();
00426         }
00427         if ((opt=(DrListOption*)driver()->findOption("MediaType")) != NULL)
00428         {
00429             DrBase  *ch = opt->choices()->at(m_papertype->currentItem());
00430             if (incldef || ch->name() != opt->get("default")) opts["MediaType"] = ch->name();
00431         }
00432         if ((opt=(DrListOption*)driver()->findOption("InputSlot")) != NULL)
00433         {
00434             DrBase  *ch = opt->choices()->at(m_inputslot->currentItem());
00435             if (incldef || ch->name() != opt->get("default")) opts["InputSlot"] = ch->name();
00436         }
00437 
00438         if (m_duplexbox->isEnabled() && (opt=(DrListOption*)driver()->findOption("Duplex")) != NULL)
00439         {
00440             bool twoChoices = ( m_duplexbox->count() == 2 );
00441             switch (m_duplexbox->id(m_duplexbox->selected()))
00442             {
00443                 case DUPLEX_NONE_ID: value = ( twoChoices ? "Off" : "None" ); break;
00444                 case DUPLEX_LONG_ID: value = ( twoChoices ? "On" : "DuplexNoTumble" ); break;
00445                 case DUPLEX_SHORT_ID: value = "DuplexTumble"; break;
00446             }
00447             if (incldef || value != opt->get("default")) opts["Duplex"] = value;
00448         }
00449     }
00450     else
00451     {
00452         value = QString("%1,%2,%3").arg(default_size[m_pagesize->currentItem()*2]).arg(default_type[m_papertype->currentItem()*2]).arg(default_source[m_inputslot->currentItem()*2]);
00453         opts["media"] = value;
00454 
00455         if (m_duplexbox->isEnabled())
00456         {
00457             switch (m_duplexbox->id(m_duplexbox->selected()))
00458             {
00459                 case 0: value = "one-sided"; break;
00460                 case 1: value = "two-sided-long-edge"; break;
00461                 case 2: value = "two-sided-short-edge"; break;
00462             }
00463             opts["sides"] = value;
00464         }
00465     }
00466 
00467     value = QString::number(m_orientbox->id(m_orientbox->selected())+3);
00468     if (value != "3" || incldef) opts["orientation-requested"] = value;
00469 
00470     if (m_nupbox->isEnabled())
00471     {
00472         switch (m_nupbox->id(m_nupbox->selected()))
00473         {
00474             case 0: value = "1"; break;
00475             case 1: value = "2"; break;
00476             case 2: value = "4"; break;
00477         }
00478         if (value != "1" || incldef) opts["number-up"] = value;
00479     }
00480 
00481     if (m_bannerbox->isEnabled())
00482     {
00483         QStringList l = QStringList::split(',',printer()->option("kde-banners"),false);
00484         if (incldef || (l.count() == 2 && (l[0] != m_startbanner->currentText() || l[1] != m_endbanner->currentText()))
00485             || (l.count() == 0 && (m_startbanner->currentText() != "none" || m_endbanner->currentText() != "none")))
00486         {
00487             value = QString("%1,%2").arg(m_startbanner->currentText()).arg(m_endbanner->currentText());
00488             opts["job-sheets"] = value;
00489         }
00490     }
00491 }
00492 
00493 void KPGeneralPage::slotOrientationChanged(int ID)
00494 {
00495     QString iconstr;
00496     switch (ID)
00497     {
00498         case ORIENT_PORTRAIT_ID: iconstr = "kdeprint_portrait"; break;
00499         case ORIENT_LANDSCAPE_ID: iconstr = "kdeprint_landscape"; break;
00500         case ORIENT_REVPORTRAIT_ID: iconstr = "kdeprint_revportrait"; break;
00501         case ORIENT_REVLANDSCAPE_ID: iconstr = "kdeprint_revlandscape"; break;
00502         default: iconstr = "kdeprint_portrait"; break;
00503     }
00504     m_orientpix->setPixmap(UserIcon(iconstr));
00505 }
00506 
00507 void KPGeneralPage::slotNupChanged(int ID)
00508 {
00509     QString iconstr;
00510     switch (ID)
00511     {
00512         case NUP_1_ID: iconstr = "kdeprint_nup1"; break;
00513         case NUP_2_ID: iconstr = "kdeprint_nup2"; break;
00514         case NUP_4_ID: iconstr = "kdeprint_nup4"; break;
00515         default: iconstr = "kdeprint_nup1"; break;
00516     }
00517     m_nuppix->setPixmap(UserIcon(iconstr));
00518 }
00519 
00520 void KPGeneralPage::slotDuplexChanged(int ID)
00521 {
00522     if (m_duplexbox->isEnabled())
00523     {
00524         QString iconstr;
00525         switch (ID)
00526         {
00527             case DUPLEX_NONE_ID: iconstr = "kdeprint_duplex_none"; break;
00528             case DUPLEX_LONG_ID: iconstr = "kdeprint_duplex_long"; break;
00529             case DUPLEX_SHORT_ID: iconstr = "kdeprint_duplex_short"; break;
00530             default: iconstr = "kdeprint_duplex_none"; break;
00531         }
00532         m_duplexpix->setPixmap(UserIcon(iconstr));
00533     }
00534 }
00535 #include "kpgeneralpage.moc"
KDE Logo
This file is part of the documentation for kdeprint Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Jan 21 09:58:31 2005 by doxygen 1.3.6 written by Dimitri van Heesch, © 1997-2003