20 #include "kprintaction.h"
23 #include <tdeprint/kmmanager.h>
24 #include <kiconloader.h>
25 #include <tdepopupmenu.h>
26 #include <tdelocale.h>
28 class KPrintAction::KPrintActionPrivate
38 TQStringList printers;
39 TQWidget *parentWidget;
42 KPrintAction::KPrintAction(
const TQString& text, PrinterType type, TQWidget *parentWidget, TQObject *parent,
const char *name)
43 : TDEActionMenu(text, parent, name)
45 d =
new KPrintActionPrivate();
46 initialize(type, parentWidget);
49 KPrintAction::KPrintAction(
const TQString& text,
const TQIconSet& icon, PrinterType type, TQWidget *parentWidget, TQObject *parent,
const char *name)
50 : TDEActionMenu(text, icon, parent, name)
52 d =
new KPrintActionPrivate();
53 initialize(type, parentWidget);
56 KPrintAction::KPrintAction(
const TQString& text,
const TQString& icon, PrinterType type, TQWidget *parentWidget, TQObject *parent,
const char *name)
57 : TDEActionMenu(text, icon, parent, name)
59 d =
new KPrintActionPrivate();
60 initialize(type, parentWidget);
63 KPrintAction::~KPrintAction()
68 void KPrintAction::initialize(PrinterType type, TQWidget *parentWidget)
70 connect(popupMenu(), TQ_SIGNAL(aboutToShow()), TQ_SLOT(slotAboutToShow()));
71 connect(popupMenu(), TQ_SIGNAL(activated(
int)), TQ_SLOT(slotActivated(
int)));
74 d->parentWidget = parentWidget;
77 void KPrintAction::slotAboutToShow()
81 TQPtrList<KMPrinter> *prts = KMManager::self()->printerList();
82 if (prts && !prts->isEmpty())
84 TQPtrListIterator<KMPrinter> it(*prts);
87 for (; it.current(); ++it)
89 if (d->type == All || (d->type == Specials && it.current()->isSpecial()) || (d->type == Regular && !it.current()->isSpecial()))
91 if (d->type == All && !first && it.current()->isSpecial())
93 if (popupMenu()->count() > 0)
94 popupMenu()->insertSeparator();
97 popupMenu()->insertItem(SmallIconSet(it.current()->pixmap()), it.current()->name(), ID++);
98 d->printers.append(it.current()->name());
104 void KPrintAction::slotActivated(
int ID)
107 KMPrinter *mprt = KMManager::self()->findPrinter(d->printers[ID]);
108 if (mprt && mprt->autoConfigure(&printer, d->parentWidget))
111 emit print(&printer);
115 KPrintAction* KPrintAction::exportAll(TQWidget *parentWidget, TQObject *parent,
const char *name)
117 return new KPrintAction(i18n(
"&Export..."), All, parentWidget, parent, (name ? name :
"export_all"));
120 KPrintAction* KPrintAction::exportRegular(TQWidget *parentWidget, TQObject *parent,
const char *name)
122 return new KPrintAction(i18n(
"&Export..."), Regular, parentWidget, parent, (name ? name :
"export_regular"));
125 KPrintAction* KPrintAction::exportSpecial(TQWidget *parentWidget, TQObject *parent,
const char *name)
127 return new KPrintAction(i18n(
"&Export..."), Specials, parentWidget, parent, (name ? name :
"export_special"));
130 #include "kprintaction.moc"