diff --git a/README.md b/README.md index 4c00737..85acd07 100644 --- a/README.md +++ b/README.md @@ -17,30 +17,37 @@ formats. Colorpick is managed using the [lightweight project management policy][1]. -[1]: http://agateau.com/2014/lightweight-project-management +Currently, working only under X11 based systems. ## Requirements - CMake -- Qt 5 -- KF5GuiAddons -- KF5WidgetsAddons +- Qt 5/6 +- [KGuiAddons][2] +- [KWidgetsAddons][3] ## Installation Create a build directory and change to it: - mkdir build - cd build +```bash +mkdir build +cd build +``` -Run CMake and build: +By default, Qt5 is used for build, otherwise change it by adding `-DPROJECT_QT_VERSION=6` +to the following CMake configure command: - cmake path/to/colorpick - make +```bash +cmake path/to/colorpick +make +``` Install (must be run as root if installing to /usr or /usr/local): - make install +```bash +make install +``` ## Author @@ -49,3 +56,8 @@ Aurélien Gâteau ## License BSD + + +[1]: http://agateau.com/2014/lightweight-project-management +[2]: https://invent.kde.org/frameworks/kguiaddons/ +[3]: https://invent.kde.org/frameworks/kwidgetsaddons/ diff --git a/src/coloreditor.cpp b/src/coloreditor.cpp index b58619c..6428c83 100644 --- a/src/coloreditor.cpp +++ b/src/coloreditor.cpp @@ -118,7 +118,7 @@ void ColorEditor::setColor(const QColor &color) if (mColor != color) { mColor = color; updateFromColor(); - colorChanged(mColor); + emit colorChanged(mColor); } } @@ -156,22 +156,23 @@ void ColorEditor::startPicking() void ColorEditor::fillCopyMenu() { +#if QT_VERSION < 0x060000 + typedef qreal float_qt; // double +#else + typedef float float_qt; +#endif mCopyMenu->clear(); int r, g, b; - qreal rf, gf, bf; + float_qt rf, gf, bf; mColor.getRgb(&r, &g, &b); mColor.getRgbF(&rf, &gf, &bf); - auto myfloat = [](qreal value) { - return QString::number(value, 'g', 3); - }; - - auto hex = [](int value) { - return QString::number(value, 16).rightJustified(2, '0'); - }; + auto constexpr ftoa = [](float value) { return QString::number(value, 'g', 3); }; + auto constexpr hex = [](int value) { return QString::number(value, 16).rightJustified(2, '0'); }; + auto constexpr itoa = [](int value) { return QString::number(value); }; auto addColorAction = [this](const QString &text, const QString &value) { - QString fullText = ColorEditor::tr("%1: %2").arg(text, value); + QString fullText = QString("%1: %2").arg(text, value); QAction *action = mCopyMenu->addAction(fullText); connect(action, &QAction::triggered, this, [value]() { QApplication::clipboard()->setText(value); @@ -181,7 +182,7 @@ void ColorEditor::fillCopyMenu() addColorAction(tr("Inkscape"), hex(r) + hex(g) + hex(b) + hex(255)); addColorAction(tr("Hexa with #"), "#" + hex(r) + hex(g) + hex(b)); addColorAction(tr("Quoted hexa with #"), "\"#" + hex(r) + hex(g) + hex(b) + "\""); - addColorAction(tr("Float values"), QString("%1, %2, %3").arg(myfloat(rf), myfloat(gf), myfloat(bf))); - addColorAction(tr("Int values"), QString("%1, %2, %3").arg(r).arg(g).arg(b)); - addColorAction(tr("CSS RGB Value"), QString("rgb(%1, %2, %3)").arg(r).arg(g).arg(b)); + addColorAction(tr("Float values"), QString("%1, %2, %3").arg(ftoa(rf), ftoa(gf), ftoa(bf))); + addColorAction(tr("Int values"), QString("%1, %2, %3").arg(itoa(r), itoa(g), itoa(b))); + addColorAction(tr("CSS RGB Value"), QString("rgb(%1, %2, %3)").arg(itoa(r), itoa(g), itoa(b))); } diff --git a/src/colorpicker.cpp b/src/colorpicker.cpp index bfc68f6..31d7dba 100644 --- a/src/colorpicker.cpp +++ b/src/colorpicker.cpp @@ -3,7 +3,9 @@ #include #include #include +#if QT_VERSION < 0x060000 #include +#endif #include #include #include @@ -94,20 +96,24 @@ void ColorPicker::keyPressEvent(QKeyEvent *event) void ColorPicker::paintEvent(QPaintEvent *event) { QPainter painter(this); + + // Draw content QPixmap pix = mPixmap.scaled(GRAB_SIZE * mScaleFactor * MAGNIFY, GRAB_SIZE * mScaleFactor * MAGNIFY); painter.drawPixmap(0, 0, pix); + // Draw outer border painter.setPen(Qt::darkGray); QRect rct = rect().adjusted(0, 0, -1, -1); painter.drawRect(rct); + // Draw inner border painter.setPen(Qt::white); rct = rct.adjusted(1, 1, -1, -1); painter.drawRect(rct); + // Draw centered cursor painter.setCompositionMode(QPainter::RasterOp_SourceXorDestination); - painter.setPen(Qt::white); painter.drawRect(GRAB_RADIUS * MAGNIFY - 1, GRAB_RADIUS * MAGNIFY - 1, MAGNIFY + 1, MAGNIFY + 1); } @@ -115,7 +121,7 @@ void ColorPicker::emitColorChanged() { QImage image = mPixmap.toImage(); QColor color = image.pixelColor(GRAB_RADIUS * mScaleFactor, GRAB_RADIUS * mScaleFactor); - colorChanged(color); + emit colorChanged(color); } void ColorPicker::updatePosition() @@ -141,9 +147,11 @@ void ColorPicker::updatePosition() } move(newPos); - +#if QT_VERSION < 0x060000 WId wid = QApplication::desktop()->winId(); - +#else + WId wid = 0; +#endif mPixmap = screen->grabWindow(wid, pos.x() - GRAB_SIZE / 2, pos.y() - GRAB_SIZE / 2, GRAB_SIZE, GRAB_SIZE); update(); } diff --git a/src/contrastpreview.cpp b/src/contrastpreview.cpp index d017e78..06b016b 100644 --- a/src/contrastpreview.cpp +++ b/src/contrastpreview.cpp @@ -40,7 +40,6 @@ void ContrastPreview::setForegroundColor(const QColor &color) } } - void ContrastPreview::updatePreview() { updateRatioLabel(); diff --git a/src/hsvcolorspace.cpp b/src/hsvcolorspace.cpp index d314667..6026e51 100644 --- a/src/hsvcolorspace.cpp +++ b/src/hsvcolorspace.cpp @@ -10,7 +10,6 @@ HsvColorSpace *HsvColorSpace::instance() HsvColorSpace::HsvColorSpace() { - } QString HsvColorSpace::name(int idx) const diff --git a/src/imagegradientselector.cpp b/src/imagegradientselector.cpp index cd7ab4f..aab663e 100644 --- a/src/imagegradientselector.cpp +++ b/src/imagegradientselector.cpp @@ -5,7 +5,6 @@ ImageGradientSelector::ImageGradientSelector(QWidget *parent) : KSelector(parent) { - } void ImageGradientSelector::setImage(const QImage &image) diff --git a/src/rgbcolorspace.cpp b/src/rgbcolorspace.cpp index 2f6a86c..9a28b2c 100644 --- a/src/rgbcolorspace.cpp +++ b/src/rgbcolorspace.cpp @@ -10,7 +10,6 @@ RgbColorSpace *RgbColorSpace::instance() RgbColorSpace::RgbColorSpace() { - } QString RgbColorSpace::name(int idx) const diff --git a/src/window.h b/src/window.h index bbf7668..e1941bc 100644 --- a/src/window.h +++ b/src/window.h @@ -9,7 +9,7 @@ class Window : public QMainWindow { Q_OBJECT public: - explicit Window(QWidget *parent = 0); + explicit Window(QWidget *parent = nullptr); private: ColorEditor *mBgEditor;