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

tdeprint

  • tdeprint
kmprinter.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 "kmprinter.h"
21#include "kprinter.h"
22#include "driver.h"
23
24#include <tdelocale.h>
25#include <tdefiledialog.h>
26
27KMPrinter::KMPrinter()
28: KMObject()
29{
30 m_type = KMPrinter::Printer;
31 m_dbentry = 0;
32 m_harddefault = m_softdefault = m_ownsoftdefault = false;
33 m_driver = 0;
34 m_isedited = false;
35 m_printercap = 0;
36}
37
38KMPrinter::KMPrinter(const KMPrinter& p)
39: KMObject()
40{
41 m_driver = 0; // don't copy driver structure
42 m_harddefault = m_softdefault = m_ownsoftdefault = false;
43 m_isedited = false;
44 copy(p);
45}
46
47KMPrinter::~KMPrinter()
48{
49 delete m_driver;
50}
51
52void KMPrinter::copy(const KMPrinter& p)
53{
54 m_name = p.m_name;
55 m_printername = p.m_printername;
56 m_instancename = p.m_instancename;
57 m_type = p.m_type;
58 m_state = p.m_state;
59 m_device = p.m_device;
60 m_members = p.m_members;
61 m_description = p.m_description;
62 m_location = p.m_location;
63 m_manufacturer = p.m_manufacturer;
64 m_model = p.m_model;
65 m_uri = p.m_uri;
66 m_driverinfo = p.m_driverinfo;
67 m_dbentry = p.m_dbentry;
68 m_pixmap = p.m_pixmap;
69 //m_harddefault = p.m_harddefault;
70 //m_softdefault = p.m_softdefault;
71 m_options = p.m_options;
72 m_printercap = p.m_printercap;
73 setDiscarded(false);
74}
75
76void KMPrinter::setDriver(DrMain *driver)
77{
78 delete m_driver;
79 m_driver = driver;
80}
81
82DrMain* KMPrinter::takeDriver()
83{
84 DrMain *dr = m_driver;
85 m_driver = 0;
86 return dr;
87}
88
89TQString KMPrinter::pixmap()
90{
91 if (!m_pixmap.isEmpty()) return m_pixmap;
92
93 TQString str("tdeprint_printer");
94 if (!isValid()) str.append("_defect");
95 else
96 {
97 //if (isHardDefault()) str.append("_default");
98 if (isClass(true)) str.append("_class");
99 else if (isRemote()) str.append("_remote");
100 switch (state())
101 {
102 case KMPrinter::Stopped:
103 str.append("_stopped");
104 break;
105 case KMPrinter::Processing:
106 str.append("_process");
107 break;
108 default:
109 break;
110 }
111 }
112 return str;
113}
114
115int KMPrinter::compare(KMPrinter *p1, KMPrinter *p2)
116{
117 if (p1 && p2)
118 {
119 bool s1(p1->isSpecial()), s2(p2->isSpecial());
120 if (s1 && s2) return TQString::compare(p1->name(),p2->name());
121 else if (s1) return 1;
122 else if (s2) return -1;
123 else
124 {
125 bool c1(p1->isClass(false)), c2(p2->isClass(false));
126 if (c1 == c2) return TQString::compare(p1->name(),p2->name());
127 else if (c1 && !c2) return -1;
128 else if (!c1 && c2) return 1;
129 }
130 }
131 return 0;
132}
133
134TQString KMPrinter::stateString() const
135{
136 TQString s;
137 switch (state())
138 {
139 case KMPrinter::Idle: s = i18n("Idle"); break;
140 case KMPrinter::Processing: s = i18n("Processing..."); break;
141 case KMPrinter::Stopped: s = i18n("Stopped"); break;
142 default: return i18n("Unknown State", "Unknown");
143 }
144 s += (" " + (m_state & Rejecting ? i18n("(rejecting jobs)") : i18n("(accepting jobs)")));
145 return s;
146}
147
148bool KMPrinter::autoConfigure(KPrinter *printer, TQWidget *parent)
149{
150 // standard settings
151 printer->setPrinterName(printerName());
152 printer->setSearchName(name());
153 // printer default settings (useful for instances)
154 printer->setOptions(defaultOptions());
155 // special printer case:
156 // - add command
157 // - ask for output file (if needed) using default extension.
158 if (isSpecial())
159 {
160 if (option("kde-special-file") == "1")
161 {
162 // build-up default filename/directory
163 TQString fName = printer->docFileName(), ext = option( "kde-special-extension" );
164 if ( fName.isEmpty() )
165 fName = ( printer->docName() + "." + ext );
166 else
167 {
168 int p = fName.findRev( '.' );
169 if ( p == -1 )
170 fName.append( "." ).append( ext );
171 else
172 {
173 fName.truncate( p+1 );
174 fName.append( ext );
175 }
176 }
177 fName.prepend( "/" ).prepend( printer->docDirectory() );
178
179 // build-up file dialog
180 KFileDialog *dialog = new KFileDialog (fName,
181 TQString::null,
182 parent,
183 "filedialog",
184 true);
185 dialog->setOperationMode (KFileDialog::Saving);
186
187 TQString mimetype = option("kde-special-mimetype");
188
189 if (!mimetype.isEmpty())
190 {
191 TQStringList filter;
192 filter << mimetype;
193 filter << "all/allfiles";
194 dialog->setMimeFilter (filter, mimetype);
195 }
196 else if (!ext.isEmpty())
197 dialog->setFilter ("*." + ext + "\n*|" + i18n ("All Files"));
198
199 if (dialog->exec ())
200 {
201 printer->setOutputToFile(true);
202 printer->setOutputFileName(dialog->selectedFile ());
203 }
204 else
205 {
206 // action canceled
207 return false;
208 }
209 }
210 printer->setOption( "kde-isspecial", "1" );
211 printer->setOption( "kde-special-command", option( "kde-special-command" ) );
212 }
213
214 return true;
215}
216
217TQString KMPrinter::deviceProtocol() const
218{
219 int p = m_device.find( ':' );
220 if ( p != -1 )
221 return m_device.left( p );
222 else
223 return TQString::null;
224}
KPrinter
This class is the main interface to access the TDE print framework.
Definition: kprinter.h:89
KPrinter::docName
TQString docName() const
See TQPrinter::docName().
Definition: kprinter.cpp:797
KPrinter::setPrinterName
void setPrinterName(const TQString &)
See TQPrinter::setPrinterName().
Definition: kprinter.cpp:873
KPrinter::docDirectory
TQString docDirectory() const
Get the default document directory, that is the directory used for any output file.
Definition: kprinter.cpp:1038
KPrinter::setOutputToFile
void setOutputToFile(bool)
See TQPrinter::setOutputToFile().
Definition: kprinter.cpp:928
KPrinter::setOutputFileName
void setOutputFileName(const TQString &)
See TQPrinter::setOutputFileName().
Definition: kprinter.cpp:922
KPrinter::setOption
void setOption(const TQString &key, const TQString &value)
Adds or modifies an option in the KPrinter object.
Definition: kprinter.cpp:794
KPrinter::docFileName
TQString docFileName() const
Get the default document filename, that is the default basename used for the output file.
Definition: kprinter.cpp:1032
KPrinter::setOptions
void setOptions(const TQMap< TQString, TQString > &opts)
Sets the option set in one operation.
Definition: kprinter.cpp:628
KPrinter::setSearchName
void setSearchName(const TQString &n)
Sets the search name of the KPrinter object.
Definition: kprinter.cpp:909

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.