• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeprint
 

tdeprint

  • tdeprint
  • management
kmwdrivertest.cpp
1/*
2 * This file is part of the KDE libraries
3 * Copyright (c) 2001 Michael Goffioul <tdeprint@swing.be>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License version 2 as published by the Free Software Foundation.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details.
13 *
14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18 **/
19
20#include "kmwdrivertest.h"
21#include "kmprinter.h"
22#include "kmwizard.h"
23#include "driver.h"
24#include "kmfactory.h"
25#include "kmmanager.h"
26#include "kmdriverdialog.h"
27
28#include <tqlabel.h>
29#include <kpushbutton.h>
30#include <tqlayout.h>
31#include <tdelocale.h>
32#include <tdeapplication.h>
33#include <tdemessagebox.h>
34#include <kguiitem.h>
35#include <tdeio/netaccess.h>
36
37KMWDriverTest::KMWDriverTest(TQWidget *parent, const char *name)
38: KMWizardPage(parent,name)
39{
40 m_ID = KMWizard::DriverTest;
41 m_title = i18n("Printer Test");
42 m_nextpage = KMWizard::Name;
43 m_needsinitonback = true;
44 m_driver = 0;
45 m_printer = 0;
46
47 m_manufacturer = new TQLabel(this);
48 m_model = new TQLabel(this);
49 m_driverinfo = new TQLabel(this);
50 m_driverinfo->setTextFormat(TQt::RichText);
51 TQLabel *l1 = new TQLabel(i18n("<b>Manufacturer:</b>"), this);
52 TQLabel *l2 = new TQLabel(i18n("<b>Model:</b>"), this);
53 TQLabel *l3 = new TQLabel(i18n("<b>Description:</b>"), this);
54
55 m_test = new KPushButton(KGuiItem(i18n("&Test"), "tdeprint_testprinter"), this);
56 m_settings = new KPushButton(KGuiItem(i18n("&Settings"), "configure"), this);
57
58 TQLabel *l0 = new TQLabel(this);
59 l0->setText(i18n("<p>Now you can test the printer before finishing installation. "
60 "Use the <b>Settings</b> button to configure the printer driver and "
61 "the <b>Test</b> button to test your configuration. Use the <b>Back</b> "
62 "button to change the driver (your current configuration will be discarded).</p>"));
63
64 TQVBoxLayout *lay1 = new TQVBoxLayout(this, 0, 15);
65 TQGridLayout *lay2 = new TQGridLayout(0, 3, 3, 0, 0);
66 TQHBoxLayout *lay3 = new TQHBoxLayout(0, 0, 10);
67 lay1->addWidget(l0,0);
68 lay1->addLayout(lay2,0);
69 lay1->addLayout(lay3,0);
70 lay1->addStretch(1);
71 lay2->setColStretch(2,1);
72 lay2->addColSpacing(1,10);
73 lay2->addWidget(l1,0,0);
74 lay2->addWidget(l2,1,0);
75 lay2->addWidget(l3,2,0,TQt::AlignLeft|TQt::AlignTop);
76 lay2->addWidget(m_manufacturer,0,2);
77 lay2->addWidget(m_model,1,2);
78 lay2->addWidget(m_driverinfo,2,2);
79 lay3->addWidget(m_test,0);
80 lay3->addWidget(m_settings,0);
81 lay3->addStretch(1);
82
83 connect(m_test,TQ_SIGNAL(clicked()),TQ_SLOT(slotTest()));
84 connect(m_settings,TQ_SIGNAL(clicked()),TQ_SLOT(slotSettings()));
85}
86
87KMWDriverTest::~KMWDriverTest()
88{
89 delete m_driver;
90}
91
92void KMWDriverTest::initPrinter(KMPrinter *p)
93{
94 m_manufacturer->setText(p->manufacturer());
95 m_model->setText(p->model());
96 m_driverinfo->setText(p->driverInfo());
97 m_printer = p;
98
99 delete m_driver;
100 m_driver = 0;
101
102 TQString drfile = p->option("kde-driver");
103 bool checkDriver(true);
104 if (!drfile.isEmpty() && drfile != "raw")
105 {
106 m_driver = KMFactory::self()->manager()->loadFileDriver(drfile);
107 /* remove the temp file if it has been downloaded */
108 TDEIO::NetAccess::removeTempFile( drfile );
109 }
110 else if (p->dbEntry() != NULL)
111 m_driver = KMFactory::self()->manager()->loadDbDriver(p->dbEntry());
112 else
113 checkDriver = false;
114
115 if (checkDriver && !m_driver)
116 {
117 KMessageBox::error(this, i18n("<qt>Unable to load the requested driver:<p>%1</p></qt>").arg(KMManager::self()->errorMsg()));
118 KMManager::self()->setErrorMsg(TQString::null);
119 }
120 m_settings->setEnabled((m_driver != 0));
121}
122
123void KMWDriverTest::updatePrinter(KMPrinter *p)
124{
125 // Give the DrMain structure to the driver and don't care about it anymore.
126 // It will be destroyed either when giving another structure, or when the
127 // printer object will be destroyed.
128 p->setDriver(m_driver);
129 m_driver = 0;
130}
131
132void KMWDriverTest::slotTest()
133{
134 if (!m_printer) return;
135
136 TQString name = "tmpprinter_"+TDEApplication::randomString(8);
137 // save printer name (can be non empty when modifying a printer)
138 TQString oldname = m_printer->name();
139
140 m_printer->setName(name);
141 m_printer->setPrinterName(name);
142 m_printer->setDriver(m_driver);
143 if (KMFactory::self()->manager()->createPrinter(m_printer))
144 {
145 if (KMFactory::self()->manager()->testPrinter(m_printer))
146 KMessageBox::information(this,"<qt>"+i18n("Test page successfully sent to printer. Wait until printing is complete, then click the OK button."));
147 else
148 KMessageBox::error(this,"<qt>"+i18n("Unable to test printer: ")+KMFactory::self()->manager()->errorMsg()+"</qt>");
149 if (!KMFactory::self()->manager()->removePrinter(m_printer))
150 KMessageBox::error(this,i18n("Unable to remove temporary printer."));
151 }
152 else
153 KMessageBox::error(this,i18n("Unable to create temporary printer."));
154
155 // restoring old name
156 m_printer->setName(oldname);
157 m_printer->setPrinterName(oldname);
158
159 m_driver = m_printer->takeDriver();
160}
161
162void KMWDriverTest::slotSettings()
163{
164 if (m_driver)
165 {
166 KMDriverDialog dlg(this);
167 dlg.setDriver(m_driver);
168 dlg.showButtonCancel(false); // only OK button
169 dlg.exec();
170 }
171}
172#include "kmwdrivertest.moc"

tdeprint

Skip menu "tdeprint"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

tdeprint

Skip menu "tdeprint"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeprint by doxygen 1.9.4
This website is maintained by Timothy Pearson.