diff --git a/IconProvider.cpp b/IconProvider.cpp index d801077..21d18a6 100644 --- a/IconProvider.cpp +++ b/IconProvider.cpp @@ -1,29 +1,35 @@ #include "IconProvider.h" #include #include IconProvider::IconProvider() : QQuickImageProvider(QQuickImageProvider::Pixmap) { } QPixmap IconProvider::requestPixmap(const QString &id, QSize *actualSize, const QSize &requestedSize) { QSize size(requestedSize); if (size.height() <= 0) { size.setHeight(128); } if (size.width() <= 0) { size.setWidth(128); } QIcon icon(QIcon::fromTheme(id)); QPixmap pixmap(icon.pixmap(qMin(size.height(), size.width()))); if (actualSize) { *actualSize = pixmap.size(); } return pixmap; } + + +QQmlImageProviderBase::Flags IconProvider::flags() const +{ + return QQmlImageProviderBase::ForceAsynchronousImageLoading; +} diff --git a/IconProvider.h b/IconProvider.h index f6667c5..1ad56d6 100644 --- a/IconProvider.h +++ b/IconProvider.h @@ -1,14 +1,15 @@ #ifndef ICONPROVIDER_H #define ICONPROVIDER_H #include class IconProvider : public QQuickImageProvider { public: IconProvider(); - QPixmap requestPixmap(const QString &id, QSize *actualSize, const QSize &requestedSize); + QPixmap requestPixmap(const QString &id, QSize *actualSize, const QSize &requestedSize) override; + Flags flags() const override; }; #endif // ICONPROVIDER_H diff --git a/providers/Calculator.cpp b/providers/Calculator.cpp index 57ef9cc..f4d2ce8 100644 --- a/providers/Calculator.cpp +++ b/providers/Calculator.cpp @@ -1,98 +1,97 @@ /* * Copyright 2010-2012 Bart Kroon * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "Calculator.h" #include #include #include #include #include #include #include #include #include "calculator/evaluator.h" #include "calculator/numberformatter.h" #include "calculator/settings.h" #include Calculator::Calculator(QObject *parent) : Provider(parent) { Settings::instance()->resultPrecision = 5; } Calculator::~Calculator() {} QList Calculator::getResults(QString query) { query = query.trimmed(); QList list; Evaluator *ev = Evaluator::instance(); const QString origQuery = query; query = ev->autoFix(query); if (query.isEmpty()) { return list; } ev->setExpression(query); const Quantity quantity = ev->evalNoAssign(); ProviderResult *app = new ProviderResult; if (!ev->error().isEmpty()) { - qWarning() << ev->error(); return list; } if (ev->error().isEmpty()) { app->name = NumberFormatter::format(quantity); app->program = app->name; } else { app->name = query + ":\n" + ev->error(); } app->completion = app->name; app->icon = "accessories-calculator"; app->object = this; app->type = i18n("Calculation"); app->isCalculation = true; list.append(app); return list; } int Calculator::launch(const QString &exec) { QClipboard* clipboard = QApplication::clipboard(); clipboard->setText(exec); return 0; } // kate: indent-mode cstyle; space-indent on; indent-width 4;