[Merge] lp:~jonas-drange/ubuntu-settings-components/printerbackend into lp:~phablet-team/ubuntu-settings-components/printer-components

Andrew Hayzen andrew.hayzen at canonical.com
Mon Jan 23 12:26:22 UTC 2017


Review: Needs Fixing

3 minor inline comments from QtCreator

1x Q_ENUMS had a trailing semi-colon 
2x Q_SLOT instead of Q_SLOTS

Diff comments:

> 
> === added file 'plugins/Ubuntu/Settings/Printers/backend/backend.h'
> --- plugins/Ubuntu/Settings/Printers/backend/backend.h	1970-01-01 00:00:00 +0000
> +++ plugins/Ubuntu/Settings/Printers/backend/backend.h	2017-01-22 19:31:51 +0000
> @@ -0,0 +1,153 @@
> +/*
> + * Copyright (C) 2017 Canonical, Ltd.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU Lesser General Public License as published by
> + * the Free Software Foundation; version 3.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public License
> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef USC_PRINTERS_BACKEND_H
> +#define USC_PRINTERS_BACKEND_H
> +
> +#include "printer/printer.h"
> +#include "printer/printerjob.h"
> +
> +// TODO: remove cups specific things from this API
> +#include <cups/cups.h>
> +
> +#include <QObject>
> +#include <QPageSize>
> +#include <QList>
> +#include <QString>
> +#include <QStringList>
> +
> +class Printer;
> +class PrinterJob;
> +class PRINTERS_DECL_EXPORT PrinterBackend : public QObject
> +{
> +    Q_OBJECT
> +public:
> +    explicit PrinterBackend(QObject *parent = Q_NULLPTR);
> +    explicit PrinterBackend(const QString &printerName,
> +                            QObject *parent = Q_NULLPTR);
> +    virtual ~PrinterBackend();
> +
> +    enum class BackendType
> +    {
> +        DefaultType = 0,
> +        CupsType,
> +        PdfType,
> +    };
> +    Q_ENUM(BackendType);

QtCreator warns about having an extra ';'

> +
> +    virtual bool holdsDefinition() const;
> +
> +    virtual QString printerAdd(const QString &name,
> +                               const QUrl &uri,
> +                               const QUrl &ppdFile,
> +                               const QString &info,
> +                               const QString &location);
> +    virtual QString printerAddWithPpd(const QString &name,
> +                                      const QUrl &uri,
> +                                      const QString &ppdFileName,
> +                                      const QString &info,
> +                                      const QString &location);
> +    virtual QString printerDelete(const QString &name);
> +    virtual QString printerSetEnabled(const QString &name,
> +                                      const bool enabled);
> +    virtual QString printerSetAcceptJobs(
> +        const QString &name,
> +        const bool enabled,
> +        const QString &reason = QString::null);
> +    virtual QString printerSetInfo(const QString &name,
> +                                   const QString &info);
> +    virtual QString printerSetLocation(const QString &name,
> +                                       const QString &location);
> +    virtual QString printerSetShared(const QString &name,
> +                                     const bool shared);
> +    virtual QString printerSetJobSheets(const QString &name,
> +                                        const QString &start,
> +                                        const QString &end);
> +    virtual QString printerSetErrorPolicy(const QString &name,
> +                                          const PrinterEnum::ErrorPolicy &policy);
> +
> +    virtual QString printerSetOpPolicy(const QString &name,
> +                                       const PrinterEnum::OperationPolicy &policy);
> +    virtual QString printerSetUsersAllowed(const QString &name,
> +                                           const QStringList &users);
> +    virtual QString printerSetUsersDenied(const QString &name,
> +                                          const QStringList &users);
> +    virtual QString printerAddOptionDefault(const QString &name,
> +                                            const QString &option,
> +                                            const QStringList &values);
> +    virtual QString printerDeleteOptionDefault(const QString &name,
> +                                               const QString &value);
> +    virtual QString printerAddOption(const QString &name,
> +                                     const QString &option,
> +                                     const QStringList &values);
> +
> +    // TODO: const for both these getters (if possible)!
> +    virtual QVariant printerGetOption(const QString &name,
> +                                      const QString &option) const;
> +    virtual QMap<QString, QVariant> printerGetOptions(
> +        const QString &name, const QStringList &options
> +    );
> +    // FIXME: maybe have a PrinterDest iface that has a CupsDest impl?
> +    virtual cups_dest_t* makeDest(const QString &name,
> +                                  const PrinterJob *options);
> +
> +    virtual QList<ColorModel> printerGetSupportedColorModels(
> +        const QString &name) const;
> +    virtual ColorModel printerGetDefaultColorModel(const QString &name) const;
> +    virtual QList<PrintQuality> printerGetSupportedQualities(
> +        const QString &name) const;
> +    virtual PrintQuality printerGetDefaultQuality(const QString &name) const;
> +    virtual int printFileToDest(const QString &filepath,
> +                                const QString &title,
> +                                const cups_dest_t *dest);
> +
> +    virtual QString printerName() const;
> +    virtual QString description() const;
> +    virtual QString location() const;
> +    virtual QString makeAndModel() const;
> +
> +    virtual PrinterEnum::State state() const;
> +    virtual QList<QPageSize> supportedPageSizes() const;
> +    virtual QPageSize defaultPageSize() const;
> +    virtual bool supportsCustomPageSizes() const;
> +
> +    virtual QPageSize minimumPhysicalPageSize() const;
> +    virtual QPageSize maximumPhysicalPageSize() const;
> +    virtual QList<int> supportedResolutions() const;
> +    virtual PrinterEnum::DuplexMode defaultDuplexMode() const;
> +    virtual QList<PrinterEnum::DuplexMode> supportedDuplexModes() const;
> +
> +    virtual QList<Printer*> availablePrinters();
> +    virtual QStringList availablePrinterNames();
> +    virtual Printer* getPrinter(const QString &printerName);
> +    virtual QString defaultPrinterName();
> +
> +    virtual BackendType backendType() const;
> +
> +public Q_SLOT:

QtCreator warns this should be Q_SLOTS  (with a 'S')

> +    virtual void refresh();
> +
> +Q_SIGNALS:
> +    void printerAdded(const QString &name);
> +    void printerModified(const QString &name, const bool ppdChanged);
> +    void printerDeleted(const QString &name);
> +    void printerStateChanged(const QString &name);
> +
> +protected:
> +    const QString m_printerName;
> +};
> +
> +#endif // USC_PRINTERS_BACKEND_H
> 
> === added file 'plugins/Ubuntu/Settings/Printers/backend/backend_cups.h'
> --- plugins/Ubuntu/Settings/Printers/backend/backend_cups.h	1970-01-01 00:00:00 +0000
> +++ plugins/Ubuntu/Settings/Printers/backend/backend_cups.h	2017-01-22 19:31:51 +0000
> @@ -0,0 +1,130 @@
> +/*
> + * Copyright (C) 2017 Canonical, Ltd.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU Lesser General Public License as published by
> + * the Free Software Foundation; version 3.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + * GNU Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public License
> + * along with this program.  If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#ifndef USC_PRINTERS_CUPS_BACKEND_H
> +#define USC_PRINTERS_CUPS_BACKEND_H
> +
> +#include "backend/backend.h"
> +#include "cups/cupsfacade.h"
> +
> +#include <QPrinterInfo>
> +
> +class PRINTERS_DECL_EXPORT PrinterCupsBackend : public PrinterBackend
> +{
> +public:
> +    explicit PrinterCupsBackend(QObject *parent = Q_NULLPTR);
> +    explicit PrinterCupsBackend(CupsFacade *cups, QPrinterInfo info,
> +                                QObject *parent = Q_NULLPTR);
> +    virtual ~PrinterCupsBackend() override;
> +
> +    virtual bool holdsDefinition() const override;
> +
> +    virtual QString printerAdd(const QString &name,
> +                               const QUrl &uri,
> +                               const QUrl &ppdFile,
> +                               const QString &info,
> +                               const QString &location) override;
> +    virtual QString printerAddWithPpd(const QString &name,
> +                                      const QUrl &uri,
> +                                      const QString &ppdFileName,
> +                                      const QString &info,
> +                                      const QString &location) override;
> +    virtual QString printerDelete(const QString &name) override;
> +    virtual QString printerSetEnabled(const QString &name,
> +                                      const bool enabled) override;
> +    virtual QString printerSetAcceptJobs(
> +        const QString &name,
> +        const bool enabled,
> +        const QString &reason = QString::null) override;
> +    virtual QString printerSetInfo(const QString &name,
> +                                   const QString &info) override;
> +    virtual QString printerSetLocation(const QString &name,
> +                                       const QString &location) override;
> +    virtual QString printerSetShared(const QString &name,
> +                                     const bool shared) override;
> +    virtual QString printerSetJobSheets(const QString &name,
> +                                        const QString &start,
> +                                        const QString &end) override;
> +    virtual QString printerSetErrorPolicy(const QString &name,
> +                                          const PrinterEnum::ErrorPolicy &policy) override;
> +
> +    virtual QString printerSetOpPolicy(const QString &name,
> +                                       const PrinterEnum::OperationPolicy &policy) override;
> +    virtual QString printerSetUsersAllowed(const QString &name,
> +                                           const QStringList &users) override;
> +    virtual QString printerSetUsersDenied(const QString &name,
> +                                          const QStringList &users) override;
> +    virtual QString printerAddOptionDefault(const QString &name,
> +                                            const QString &option,
> +                                            const QStringList &values) override;
> +    virtual QString printerDeleteOptionDefault(const QString &name,
> +                                               const QString &value) override;
> +    virtual QString printerAddOption(const QString &name,
> +                                     const QString &option,
> +                                     const QStringList &values) override;
> +
> +    // TODO: const for both these getters (if possible)!
> +    virtual QVariant printerGetOption(const QString &name,
> +                                      const QString &option) const override;
> +    virtual QMap<QString, QVariant> printerGetOptions(
> +        const QString &name, const QStringList &options
> +    ) override;
> +    // FIXME: maybe have a PrinterDest iface that has a CupsDest impl?
> +    virtual cups_dest_t* makeDest(const QString &name,
> +                                  const PrinterJob *options) override;
> +
> +    virtual QList<ColorModel> printerGetSupportedColorModels(
> +        const QString &name) const override;
> +    virtual ColorModel printerGetDefaultColorModel(const QString &name) const;
> +    virtual QList<PrintQuality> printerGetSupportedQualities(
> +        const QString &name) const override;
> +    virtual PrintQuality printerGetDefaultQuality(const QString &name) const;
> +    virtual int printFileToDest(const QString &filepath,
> +                                const QString &title,
> +                                const cups_dest_t *dest) override;
> +
> +    virtual QString printerName() const override;
> +    virtual QString description() const override;
> +    virtual QString location() const override;
> +    virtual QString makeAndModel() const override;
> +
> +    virtual PrinterEnum::State state() const override;
> +    virtual QList<QPageSize> supportedPageSizes() const override;
> +    virtual QPageSize defaultPageSize() const override;
> +    virtual bool supportsCustomPageSizes() const override;
> +
> +    virtual QPageSize minimumPhysicalPageSize() const override;
> +    virtual QPageSize maximumPhysicalPageSize() const override;
> +    virtual QList<int> supportedResolutions() const override;
> +    virtual PrinterEnum::DuplexMode defaultDuplexMode() const override;
> +    virtual QList<PrinterEnum::DuplexMode> supportedDuplexModes() const override;
> +
> +    virtual QList<Printer*> availablePrinters() override;
> +    virtual QStringList availablePrinterNames() override;
> +    virtual Printer* getPrinter(const QString &printerName) override;
> +    virtual QString defaultPrinterName() override;
> +
> +    virtual PrinterBackend::BackendType backendType() const override;
> +
> +public Q_SLOT:

QtCreator warns this should be Q_SLOTS

> +    virtual void refresh() override;
> +
> +private:
> +    CupsFacade *m_cups;
> +    QPrinterInfo m_info;
> +};
> +
> +#endif // USC_PRINTERS_CUPS_BACKEND_H


-- 
https://code.launchpad.net/~jonas-drange/ubuntu-settings-components/printerbackend/+merge/315317
Your team Ubuntu Phablet Team is subscribed to branch lp:~phablet-team/ubuntu-settings-components/printer-components.



More information about the Ubuntu-reviews mailing list