Merge lp:~ahayzen/ubuntu-settings-components/printer-components-collate-reverse into lp:~phablet-team/ubuntu-settings-components/printer-components

Proposed by Andrew Hayzen
Status: Merged
Merged at revision: 217
Proposed branch: lp:~ahayzen/ubuntu-settings-components/printer-components-collate-reverse
Merge into: lp:~phablet-team/ubuntu-settings-components/printer-components
Diff against target: 213 lines (+66/-0)
4 files modified
plugins/Ubuntu/Settings/Printers/cups/cupsfacade.cpp (+12/-0)
plugins/Ubuntu/Settings/Printers/printer/printerjob.cpp (+30/-0)
plugins/Ubuntu/Settings/Printers/printer/printerjob.h (+10/-0)
tests/unittests/Printers/tst_printerjob.cpp (+14/-0)
To merge this branch: bzr merge lp:~ahayzen/ubuntu-settings-components/printer-components-collate-reverse
Reviewer Review Type Date Requested Status
Jonas G. Drange (community) Approve
Review via email: mp+315597@code.launchpad.net

Commit message

* Add Collate and Reverse options to PrinterJob

Description of the change

* Add Collate and Reverse options to PrinterJob

To post a comment you must log in.
Revision history for this message
Jonas G. Drange (jonas-drange) wrote :

LGTM!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/Ubuntu/Settings/Printers/cups/cupsfacade.cpp'
2--- plugins/Ubuntu/Settings/Printers/cups/cupsfacade.cpp 2017-01-22 14:21:11 +0000
3+++ plugins/Ubuntu/Settings/Printers/cups/cupsfacade.cpp 2017-01-25 16:52:02 +0000
4@@ -332,6 +332,12 @@
5 // Get the cups dest
6 cups_dest_t *dest = helper.getDest(getPrinterName(name), getPrinterInstance(name));
7
8+ if (options->collate()) {
9+ __CUPS_ADD_OPTION(dest, "Collate", "True");
10+ } else {
11+ __CUPS_ADD_OPTION(dest, "Collate", "False");
12+ }
13+
14 if (options->copies() > 1) {
15 __CUPS_ADD_OPTION(dest, "copies", QString::number(options->copies()).toLocal8Bit());
16 }
17@@ -352,6 +358,12 @@
18 __CUPS_ADD_OPTION(dest, quality.originalOption.toLocal8Bit(),
19 quality.name.toLocal8Bit());
20
21+ if (options->reverse()) {
22+ __CUPS_ADD_OPTION(dest, "OutputOrder", "Reverse");
23+ } else {
24+ __CUPS_ADD_OPTION(dest, "OutputOrder", "Normal");
25+ }
26+
27 return dest;
28 }
29
30
31=== modified file 'plugins/Ubuntu/Settings/Printers/printer/printerjob.cpp'
32--- plugins/Ubuntu/Settings/Printers/printer/printerjob.cpp 2017-01-23 14:06:49 +0000
33+++ plugins/Ubuntu/Settings/Printers/printer/printerjob.cpp 2017-01-25 16:52:02 +0000
34@@ -33,6 +33,7 @@
35 PrinterJob::PrinterJob(Printer *printer, PrinterBackend *backend,
36 QObject *parent)
37 : QObject(parent)
38+ , m_collate(true)
39 , m_color_model(0)
40 , m_copies(1)
41 , m_backend(backend)
42@@ -43,6 +44,7 @@
43 , m_print_range_mode(PrinterEnum::PrintRange::AllPages)
44 , m_quality(0)
45 , m_state(PrinterEnum::State::IdleState)
46+ , m_reverse(false)
47 , m_title(QStringLiteral(""))
48 {
49 loadDefaults();
50@@ -59,6 +61,11 @@
51
52 }
53
54+bool PrinterJob::collate() const
55+{
56+ return m_collate;
57+}
58+
59 int PrinterJob::colorModel() const
60 {
61 return m_color_model;
62@@ -159,11 +166,25 @@
63 return m_quality;
64 }
65
66+bool PrinterJob::reverse() const
67+{
68+ return m_reverse;
69+}
70+
71 PrinterEnum::State PrinterJob::state() const
72 {
73 return m_state;
74 }
75
76+void PrinterJob::setCollate(const bool collate)
77+{
78+ if (m_collate != collate) {
79+ m_collate = collate;
80+
81+ Q_EMIT collateChanged();
82+ }
83+}
84+
85 void PrinterJob::setColorModel(const int colorModel)
86 {
87 if (m_color_model != colorModel) {
88@@ -266,6 +287,15 @@
89 }
90 }
91
92+void PrinterJob::setReverse(const bool reverse)
93+{
94+ if (m_reverse != reverse) {
95+ m_reverse = reverse;
96+
97+ Q_EMIT reverseChanged();
98+ }
99+}
100+
101 void PrinterJob::setState(const PrinterEnum::State &state)
102 {
103 if (m_state != state) {
104
105=== modified file 'plugins/Ubuntu/Settings/Printers/printer/printerjob.h'
106--- plugins/Ubuntu/Settings/Printers/printer/printerjob.h 2017-01-22 16:40:42 +0000
107+++ plugins/Ubuntu/Settings/Printers/printer/printerjob.h 2017-01-25 16:52:02 +0000
108@@ -34,6 +34,7 @@
109 {
110 Q_OBJECT
111
112+ Q_PROPERTY(bool collate READ collate WRITE setCollate NOTIFY collateChanged)
113 Q_PROPERTY(int colorModel READ colorModel WRITE setColorModel NOTIFY colorModelChanged)
114 Q_PROPERTY(PrinterEnum::ColorModelType colorModelType READ colorModelType NOTIFY colorModelTypeChanged)
115 Q_PROPERTY(int copies READ copies WRITE setCopies NOTIFY copiesChanged)
116@@ -44,6 +45,7 @@
117 Q_PROPERTY(QString printRange READ printRange WRITE setPrintRange NOTIFY printRangeChanged)
118 Q_PROPERTY(PrinterEnum::PrintRange printRangeMode READ printRangeMode WRITE setPrintRangeMode NOTIFY printRangeModeChanged)
119 Q_PROPERTY(int quality READ quality WRITE setQuality NOTIFY qualityChanged)
120+ Q_PROPERTY(bool reverse READ reverse WRITE setReverse NOTIFY reverseChanged)
121 Q_PROPERTY(PrinterEnum::State state READ state NOTIFY stateChanged)
122 Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
123 public:
124@@ -53,6 +55,7 @@
125 QObject *parent=Q_NULLPTR);
126 ~PrinterJob();
127
128+ bool collate() const;
129 int colorModel() const;
130 PrinterEnum::ColorModelType colorModelType() const;
131 int copies() const;
132@@ -63,6 +66,7 @@
133 QString printRange() const;
134 PrinterEnum::PrintRange printRangeMode() const;
135 int quality() const;
136+ bool reverse() const;
137 PrinterEnum::State state() const;
138 QString title() const;
139 public Q_SLOTS:
140@@ -71,6 +75,7 @@
141 ColorModel getColorModel() const;
142 PrintQuality getPrintQuality() const;
143 Q_INVOKABLE void printFile(const QUrl &url);
144+ void setCollate(const bool collate);
145 void setColorModel(const int colorModel);
146 void setCopies(const int copies);
147 void setDuplexMode(const int duplexMode);
148@@ -80,11 +85,13 @@
149 void setPrintRange(const QString &printRange);
150 void setPrintRangeMode(const PrinterEnum::PrintRange printRangeMode);
151 void setQuality(const int quality);
152+ void setReverse(const bool reverse);
153 void setTitle(const QString &title);
154 private Q_SLOTS:
155 void loadDefaults();
156 void setState(const PrinterEnum::State &state);
157 Q_SIGNALS:
158+ void collateChanged();
159 void colorModelChanged();
160 void colorModelTypeChanged();
161 void copiesChanged();
162@@ -95,9 +102,11 @@
163 void printRangeChanged();
164 void printRangeModeChanged();
165 void qualityChanged();
166+ void reverseChanged();
167 void stateChanged();
168 void titleChanged();
169 private:
170+ bool m_collate;
171 int m_color_model;
172 int m_copies;
173 PrinterBackend *m_backend; // TODO: Maybe use the printer's backend?
174@@ -108,6 +117,7 @@
175 QString m_print_range;
176 PrinterEnum::PrintRange m_print_range_mode;
177 int m_quality;
178+ bool m_reverse;
179 PrinterEnum::State m_state;
180 QString m_title;
181 };
182
183=== modified file 'tests/unittests/Printers/tst_printerjob.cpp'
184--- tests/unittests/Printers/tst_printerjob.cpp 2017-01-22 16:40:42 +0000
185+++ tests/unittests/Printers/tst_printerjob.cpp 2017-01-25 16:52:02 +0000
186@@ -65,6 +65,13 @@
187 QSKIP("Not implemented yet!");
188 }
189
190+ void testCollate()
191+ {
192+ QCOMPARE(m_instance->collate(), true);
193+ m_instance->setCollate(false);
194+ QCOMPARE(m_instance->collate(), false);
195+ }
196+
197 void testColorModel()
198 {
199 QSKIP("Not implemented yet!");
200@@ -152,6 +159,13 @@
201 QSKIP("Not implemented yet!");
202 }
203
204+ void testReverse()
205+ {
206+ QCOMPARE(m_instance->reverse(), false);
207+ m_instance->setReverse(true);
208+ QCOMPARE(m_instance->reverse(), true);
209+ }
210+
211 void testState()
212 {
213 QSKIP("Not implemented yet!");

Subscribers

People subscribed via source and target branches