Merge lp:~jonas-drange/ubuntu-ui-extras/add-loadprinter into lp:~phablet-team/ubuntu-ui-extras/printer-components

Proposed by Jonas G. Drange
Status: Merged
Approved by: Andrew Hayzen
Approved revision: 133
Merged at revision: 133
Proposed branch: lp:~jonas-drange/ubuntu-ui-extras/add-loadprinter
Merge into: lp:~phablet-team/ubuntu-ui-extras/printer-components
Diff against target: 86 lines (+39/-0)
4 files modified
modules/Ubuntu/Components/Extras/Printers/printers/printers.cpp (+13/-0)
modules/Ubuntu/Components/Extras/Printers/printers/printers.h (+3/-0)
tests/unittests/Printers/mockbackend.h (+8/-0)
tests/unittests/Printers/tst_printers.cpp (+15/-0)
To merge this branch: bzr merge lp:~jonas-drange/ubuntu-ui-extras/add-loadprinter
Reviewer Review Type Date Requested Status
Andrew Hayzen (community) Approve
Review via email: mp+318215@code.launchpad.net

Commit message

adds loadPrinter method on Printers

Description of the change

adds loadPrinter method on Printers

To post a comment you must log in.
Revision history for this message
Andrew Hayzen (ahayzen) wrote :

LGTM, helps QML deal with loading lazy loaded printers in a sane way :-)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'modules/Ubuntu/Components/Extras/Printers/printers/printers.cpp'
--- modules/Ubuntu/Components/Extras/Printers/printers/printers.cpp 2017-02-23 14:04:26 +0000
+++ modules/Ubuntu/Components/Extras/Printers/printers/printers.cpp 2017-02-24 12:22:17 +0000
@@ -228,3 +228,16 @@
228 }228 }
229 }229 }
230}230}
231
232void Printers::loadPrinter(const QString &name)
233{
234 auto printer = m_model.getPrinterByName(name);
235 if (!printer) {
236 qWarning() << Q_FUNC_INFO << "no known printer named" << name;
237 return;
238 }
239
240 if (printer->type() == PrinterEnum::PrinterType::ProxyType) {
241 m_backend->requestPrinter(name);
242 }
243}
231244
=== modified file 'modules/Ubuntu/Components/Extras/Printers/printers/printers.h'
--- modules/Ubuntu/Components/Extras/Printers/printers/printers.h 2017-02-23 14:04:26 +0000
+++ modules/Ubuntu/Components/Extras/Printers/printers/printers.h 2017-02-24 12:22:17 +0000
@@ -80,6 +80,9 @@
8080
81 bool removePrinter(const QString &name);81 bool removePrinter(const QString &name);
8282
83 // Instruct us to start (eagerly) loading a printer.
84 void loadPrinter(const QString &name);
85
83private Q_SLOTS:86private Q_SLOTS:
84 void jobAdded(QSharedPointer<PrinterJob> job);87 void jobAdded(QSharedPointer<PrinterJob> job);
85 void printerAdded(QSharedPointer<Printer> printer);88 void printerAdded(QSharedPointer<Printer> printer);
8689
=== modified file 'tests/unittests/Printers/mockbackend.h'
--- tests/unittests/Printers/mockbackend.h 2017-02-23 14:05:05 +0000
+++ tests/unittests/Printers/mockbackend.h 2017-02-24 12:22:17 +0000
@@ -281,6 +281,13 @@
281 return m_defaultPrinterName;281 return m_defaultPrinterName;
282 }282 }
283283
284
285 virtual void requestPrinter(const QString &printerName) override
286 {
287 m_requestedPrinters << printerName;
288 }
289
290
284 void mockPrinterAdded(291 void mockPrinterAdded(
285 const QString &text,292 const QString &text,
286 const QString &printerUri,293 const QString &printerUri,
@@ -374,6 +381,7 @@
374 QStringList m_availablePrinterNames;381 QStringList m_availablePrinterNames;
375 QList<QSharedPointer<Printer>> m_availablePrinters;382 QList<QSharedPointer<Printer>> m_availablePrinters;
376 QList<QSharedPointer<PrinterJob>> m_jobs;383 QList<QSharedPointer<PrinterJob>> m_jobs;
384 QStringList m_requestedPrinters;
377385
378Q_SIGNALS:386Q_SIGNALS:
379 void printToFile(const QString &filepath, const QString &title);387 void printToFile(const QString &filepath, const QString &title);
380388
=== modified file 'tests/unittests/Printers/tst_printers.cpp'
--- tests/unittests/Printers/tst_printers.cpp 2017-02-23 13:00:05 +0000
+++ tests/unittests/Printers/tst_printers.cpp 2017-02-24 12:22:17 +0000
@@ -227,6 +227,21 @@
227 auto printerJobs = p.allPrinters()->data(p.allPrinters()->index(0,0), PrinterModel::Roles::JobRole).value<QAbstractItemModel*>();227 auto printerJobs = p.allPrinters()->data(p.allPrinters()->index(0,0), PrinterModel::Roles::JobRole).value<QAbstractItemModel*>();
228 QCOMPARE(printerJobs->rowCount(), 1);228 QCOMPARE(printerJobs->rowCount(), 1);
229 }229 }
230 void testLoadPrinter()
231 {
232 MockPrinterBackend *backend = new MockPrinterBackend;
233 Printers p(backend);
234
235 // Harmless to request non-existent one.
236 p.loadPrinter("foo");
237
238 // Load a printer and request it.
239 MockPrinterBackend *printerBackend = new MockPrinterBackend("printer-a");
240 auto printer = QSharedPointer<Printer>(new Printer(printerBackend));
241 backend->mockPrinterLoaded(printer);
242 p.loadPrinter("printer-a");
243 QVERIFY(backend->m_requestedPrinters.contains("printer-a"));
244 }
230};245};
231246
232QTEST_GUILESS_MAIN(TestPrinters)247QTEST_GUILESS_MAIN(TestPrinters)

Subscribers

People subscribed via source and target branches