1 /*
2     SPDX-FileCopyrightText: 2010-2012 Daniel Nicoletti <dantti12@gmail.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef KCUPSPRINTER_H
8 #define KCUPSPRINTER_H
9 
10 #include <QString>
11 #include <QIcon>
12 
13 #include <KCupsConnection.h>
14 
15 class Q_DECL_EXPORT KCupsPrinter
16 {
17     Q_ENUMS(Attribute)
18 public:
19     typedef enum {
20         Idle = 3,
21         Printing,
22         Stopped
23     } Status;
24     KCupsPrinter();
25     explicit KCupsPrinter(const QString &printer, bool isClass = false);
26 
27     QString name() const;
28     bool isClass() const;
29     bool isDefault() const;
30     bool isShared() const;
31     bool isAcceptingJobs() const;
32     cups_ptype_e type() const;
33     QString location() const;
34     QString info() const;
35     QString makeAndModel() const;
36     QStringList commands() const;
37     QStringList memberNames() const;
38     QString deviceUri() const;
39     QStringList errorPolicy() const;
40     QStringList errorPolicySupported() const;
41     QStringList opPolicy() const;
42     QStringList opPolicySupported() const;
43     QStringList jobSheetsDefault() const;
44     QStringList jobSheetsSupported() const;
45     QStringList requestingUserNameAllowed() const;
46     QStringList requestingUserNameDenied() const;
47     QStringList authInfoRequired() const;
48     QString uriSupported() const;
49 
50     Status state() const;
51     QString stateMsg() const;
52     int markerChangeTime() const;
53     QVariant argument(const QString &name) const;
54 
55     /**
56       * Requires enum PrinterType to work properly
57       *
58       */
59     QIcon icon() const;
60     static QIcon icon(cups_ptype_e type);
61     QString iconName() const;
62     static QString iconName(cups_ptype_e type);
63 
64 protected:
65     KCupsPrinter(const QVariantHash &arguments);
66 
67 private:
68     friend class KCupsRequest;
69 
70     QString m_printer;
71     bool    m_isClass;
72     QVariantHash m_arguments;
73 };
74 
75 typedef QList<KCupsPrinter> KCupsPrinters;
76 Q_DECLARE_METATYPE(KCupsPrinters)
77 Q_DECLARE_METATYPE(KCupsPrinter)
78 
79 #endif // KCUPSPRINTER_H
80