Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kColorPicker for openSUSE:Factory checked in at 2022-05-24 20:30:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kColorPicker (Old) and /work/SRC/openSUSE:Factory/.kColorPicker.new.2254 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kColorPicker" Tue May 24 20:30:48 2022 rev:6 rq:978651 version:0.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kColorPicker/kColorPicker.changes 2021-06-13 23:05:25.551590752 +0200 +++ /work/SRC/openSUSE:Factory/.kColorPicker.new.2254/kColorPicker.changes 2022-05-24 20:30:57.734897739 +0200 @@ -1,0 +2,6 @@ +Mon May 23 07:37:10 UTC 2022 - Martin Hauke <mar...@gmx.de> + +- Update to 0.2.0 + * Add option to show alpha channel and reset color selection + +------------------------------------------------------------------- Old: ---- kColorPicker-0.1.6.tar.gz New: ---- kColorPicker-0.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kColorPicker.spec ++++++ --- /var/tmp/diff_new_pack.Qp4TUa/_old 2022-05-24 20:30:58.322898263 +0200 +++ /var/tmp/diff_new_pack.Qp4TUa/_new 2022-05-24 20:30:58.338898277 +0200 @@ -1,7 +1,7 @@ # # spec file for package kColorPicker # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define sover 0 %define libname libkColorPicker%{sover} Name: kColorPicker -Version: 0.1.6 +Version: 0.2.0 Release: 0 Summary: Qt based Color Picker with popup menu License: GPL-2.0-or-later ++++++ kColorPicker-0.1.6.tar.gz -> kColorPicker-0.2.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/.github/FUNDING.yml new/kColorPicker-0.2.0/.github/FUNDING.yml --- old/kColorPicker-0.1.6/.github/FUNDING.yml 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/.github/FUNDING.yml 2022-04-07 22:37:30.000000000 +0200 @@ -1,4 +1,7 @@ # These are supported funding model platforms -github: [DamirPorobic] +github: DamirPorobic +liberapay: dporobic +patreon: dporobic +open_collective: ksnip custom: paypal.me/damirporobic diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/.github/workflows/build.yml new/kColorPicker-0.2.0/.github/workflows/build.yml --- old/kColorPicker-0.1.6/.github/workflows/build.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/kColorPicker-0.2.0/.github/workflows/build.yml 2022-04-07 22:37:30.000000000 +0200 @@ -0,0 +1,33 @@ +name: Build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: '5.15.2' + host: 'linux' + install-deps: 'true' + + - name: Install dependencies + run: sudo apt-get install xvfb + + - name: Build + run: | + mkdir build && cd build + cmake .. -DBUILD_TESTS=ON && make VERBOSE=1 + + - name: Test + working-directory: ${{github.workspace}}/build + run: xvfb-run make test CTEST_OUTPUT_ON_FAILURE=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/.travis.yml new/kColorPicker-0.2.0/.travis.yml --- old/kColorPicker-0.1.6/.travis.yml 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,28 +0,0 @@ -language: cpp -compiler: gcc -sudo: required -dist: trusty - -before_install: -- sudo add-apt-repository ppa:beineri/opt-qt594-trusty -y -- sudo apt-get update -qq - -install: -- sudo apt-get -y install qt59base -- source /opt/qt*/bin/qt*-env.sh - -jobs: - include: - - stage: build - script: - - mkdir build - - cd build - - cmake .. - - make VERBOSE=1 - - stage: test - script: - - mkdir build - - cd build - - cmake .. -DBUILD_TESTS=ON - - make - - xvfb-run make test CTEST_OUTPUT_ON_FAILURE=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/CMakeLists.txt new/kColorPicker-0.2.0/CMakeLists.txt --- old/kColorPicker-0.1.6/CMakeLists.txt 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/CMakeLists.txt 2022-04-07 22:37:30.000000000 +0200 @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.5) -project(kColorPicker LANGUAGES CXX VERSION 0.1.6) +project(kColorPicker LANGUAGES CXX VERSION 0.2.0) set(QT_MIN_VERSION "5.9.4") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/README.md new/kColorPicker-0.2.0/README.md --- old/kColorPicker-0.1.6/README.md 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/README.md 2022-04-07 22:37:30.000000000 +0200 @@ -1,12 +1,12 @@ -# kColorPicker [](https://travis-ci.org/ksnip/kColorPicker) +# kColorPicker [![Build Status][github-badge]][github-url] QToolButton with color popup menu with lets you select a color. The popup features a color dialog button which can be used to add custom colors to the popup menu. -Version 0.1.6 +Version 0.2.0  ### Building from source -1. Get latest release from GitHub by cloning the repo: +1. Get the latest release from GitHub by cloning the repo: `$ git clone https://github.com/ksnip/kColorPicker` 2. Change to repo directory: `$ cd kColorPicker` @@ -34,3 +34,7 @@ 2. Link the library with your application `target_link_libraries(myApp kColorPicker)` + + +[github-badge]: https://github.com/ksnip/kColorPicker/actions/workflows/build.yml/badge.svg +[github-url]: https://github.com/ksnip/kColorPicker/actions \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/example/main.cpp new/kColorPicker-0.2.0/example/main.cpp --- old/kColorPicker-0.1.6/example/main.cpp 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/example/main.cpp 2022-04-07 22:37:30.000000000 +0200 @@ -30,7 +30,7 @@ widget->setFixedWidth(200); widget->setFixedHeight(200); auto layout = new QVBoxLayout(); - auto colorPicker = new KColorPicker(); + auto colorPicker = new KColorPicker(true); colorPicker->setColor(QColor(Qt::red)); layout->addWidget(colorPicker); widget->setLayout(layout); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/include/kColorPicker/KColorPicker.h new/kColorPicker-0.2.0/include/kColorPicker/KColorPicker.h --- old/kColorPicker-0.1.6/include/kColorPicker/KColorPicker.h 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/include/kColorPicker/KColorPicker.h 2022-04-07 22:37:30.000000000 +0200 @@ -37,11 +37,12 @@ Q_DECLARE_PRIVATE(KColorPicker) public: - explicit KColorPicker(); + explicit KColorPicker(bool showAlphaChannel = false, QWidget *parent = nullptr); ~KColorPicker() override; void setFixedSize(const QSize &size); void setFixedSize(int width, int height); QColor color() const; + void resetColors(bool showAlphaChannel = false); public Q_SLOTS: void setColor(const QColor &color); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/IconCreator.cpp new/kColorPicker-0.2.0/src/IconCreator.cpp --- old/kColorPicker-0.1.6/src/IconCreator.cpp 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/IconCreator.cpp 2022-04-07 22:37:30.000000000 +0200 @@ -23,14 +23,41 @@ QIcon IconCreator::createIcon(const QColor &color, const QSize &size) { - QPixmap pixmap(size); - pixmap.fill(color); - QPainter painter(&pixmap); + auto background = getBackgroundBrush(size); + + QPixmap pixmap(size); + QPainter painter(&pixmap); + + // Paint background + painter.setPen(Qt::NoPen); + painter.setBrush(background); + painter.drawRect(0, 0, size.width(), size.height()); + + // Paint color + painter.setBrush(color); + painter.drawRect(0, 0, size.width(), size.height()); + + // Paint border auto penWidth = painter.pen().width(); painter.setPen(QColor(Qt::gray)); painter.drawRect(0, 0, size.width() - penWidth, size.height() - penWidth); - return QIcon(pixmap); + return { pixmap }; +} + +QImage IconCreator::getBackgroundBrush(const QSize &size) +{ + auto halfWidth = size.width() / 2; + auto halfHeight = size.height() / 2; + auto background = QImage(size, QImage::Format_ARGB32_Premultiplied); + background.fill(Qt::white); + QPainter painter(&background); + painter.setPen(Qt::NoPen); + painter.setBrush(Qt::gray); + painter.drawRect(0, 0, halfWidth, halfHeight); + painter.drawRect(halfWidth, halfHeight, size.width(), size.height()); + + return background; } } // namespace kColorPicker \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/IconCreator.h new/kColorPicker-0.2.0/src/IconCreator.h --- old/kColorPicker-0.1.6/src/IconCreator.h 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/IconCreator.h 2022-04-07 22:37:30.000000000 +0200 @@ -23,6 +23,7 @@ #include <QIcon> #include <QColor> #include <QPainter> +#include <QImage> namespace kColorPicker { @@ -32,6 +33,7 @@ explicit IconCreator() = delete; ~IconCreator() = delete; static QIcon createIcon(const QColor &color, const QSize &size); + static QImage getBackgroundBrush(const QSize &size); }; } // namespace kColorPicker diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/KColorPicker.cpp new/kColorPicker-0.2.0/src/KColorPicker.cpp --- old/kColorPicker-0.1.6/src/KColorPicker.cpp 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/KColorPicker.cpp 2022-04-07 22:37:30.000000000 +0200 @@ -35,16 +35,19 @@ Q_DECLARE_PUBLIC(KColorPicker) - explicit KColorPickerPrivate(KColorPicker *kColorPicker); + explicit KColorPickerPrivate(KColorPicker *kColorPicker, bool showAlphaChannel = false, QWidget *parent = nullptr); KColorPicker *const q_ptr; QSize mIconSize; - PopupMenu mPopupMenu; + PopupMenu *mPopupMenu; QColor mSelectedColor; }; -KColorPicker::KColorPicker() : d_ptr(new KColorPickerPrivate(this)) -{} +KColorPicker::KColorPicker(bool showAlphaChannel, QWidget *parent) : d_ptr(new KColorPickerPrivate(this, showAlphaChannel, parent)) +{ + // Default Colors + resetColors(showAlphaChannel); +} KColorPicker::~KColorPicker() {} @@ -54,7 +57,7 @@ Q_D(KColorPicker); d->mSelectedColor = color; setColorIcon(color); - d->mPopupMenu.selectColor(color); + d->mPopupMenu->selectColor(color); } void KColorPicker::colorSelected(const QColor &color) @@ -87,6 +90,28 @@ return d->mSelectedColor; } +void KColorPicker::resetColors(bool showAlphaChannel) +{ + Q_D(const KColorPicker); + d->mPopupMenu->removeColors(); + + d->mPopupMenu->addColor(QColor(Qt::red)); + d->mPopupMenu->addColor(QColor(Qt::green)); + d->mPopupMenu->addColor(QColor(Qt::blue)); + d->mPopupMenu->addColor(QColor(Qt::yellow)); + d->mPopupMenu->addColor(QColor(Qt::magenta)); + d->mPopupMenu->addColor(QColor(Qt::cyan)); + d->mPopupMenu->addColor(QColor(Qt::white)); + d->mPopupMenu->addColor(QColor(Qt::black)); + + if(showAlphaChannel) { + d->mPopupMenu->addColor(QColor(0, 255, 255, 100)); + d->mPopupMenu->addColor(QColor(255, 0, 255, 100)); + d->mPopupMenu->addColor(QColor(255, 255, 0, 100)); + d->mPopupMenu->addColor(QColor(255, 255, 255, 100)); + } +} + void KColorPicker::setIconSize(const QSize &size) { Q_D(KColorPicker); @@ -107,25 +132,16 @@ // KColorPickerPrivate // -KColorPickerPrivate::KColorPickerPrivate(KColorPicker *kColorPicker) : q_ptr(kColorPicker) +KColorPickerPrivate::KColorPickerPrivate(KColorPicker *kColorPicker, bool showAlphaChannel, QWidget *parent) : + q_ptr(kColorPicker), + mPopupMenu(new PopupMenu(showAlphaChannel, parent)) { initResource(); mIconSize = QSize(25, 25); kColorPicker->setPopupMode(QToolButton::InstantPopup); - kColorPicker->setMenu(&mPopupMenu); - kColorPicker->connect(&mPopupMenu, &PopupMenu::colorChanged, kColorPicker, &KColorPicker::colorSelected); - - // Default Colors - mPopupMenu.addColor(QColor(Qt::red)); - mPopupMenu.addColor(QColor(Qt::green)); - mPopupMenu.addColor(QColor(Qt::blue)); - mPopupMenu.addColor(QColor(Qt::yellow)); - mPopupMenu.addColor(QColor(Qt::magenta)); - mPopupMenu.addColor(QColor(Qt::cyan)); - mPopupMenu.addColor(QColor(Qt::white)); - mPopupMenu.addColor(QColor(Qt::black)); - + kColorPicker->setMenu(mPopupMenu); + kColorPicker->connect(mPopupMenu, &PopupMenu::colorChanged, kColorPicker, &KColorPicker::colorSelected); } } // namespace kColorPicker diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/PopupMenu.cpp new/kColorPicker-0.2.0/src/PopupMenu.cpp --- old/kColorPicker-0.1.6/src/PopupMenu.cpp 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/PopupMenu.cpp 2022-04-07 22:37:30.000000000 +0200 @@ -21,12 +21,12 @@ namespace kColorPicker { -PopupMenu::PopupMenu() : - mButtonGroup(new QButtonGroup()), - mLayout(new QGridLayout()), - mColorDialogButton(new ColorDialogButton(QIcon(QLatin1String(":/icons/ellipsis")))) +PopupMenu::PopupMenu(bool showAlphaChannel, QWidget *parent) : + QMenu(parent), + mButtonGroup(new QButtonGroup(this)), + mLayout(new QGridLayout(this)), + mColorDialogButton(new ColorDialogButton(QIcon(QLatin1String(":/icons/ellipsis")), showAlphaChannel)) { - mLayout->setSpacing(0); mLayout->setMargin(5); setLayout(mLayout); @@ -36,7 +36,7 @@ PopupMenu::~PopupMenu() { - delete mButtonGroup; + qDeleteAll(mColorButtons); delete mColorDialogButton; } @@ -47,6 +47,20 @@ } } +void PopupMenu::removeColors() +{ + for (auto button : mColorButtons) { + mButtonGroup->removeButton(button); + mLayout->removeWidget(button); + disconnect(button, &AbstractPopupMenuButton::colorSelected, this, &PopupMenu::colorSelected); + } + + qDeleteAll(mColorButtons); + mColorButtons.clear(); + + generateGrid(); +} + void PopupMenu::selectColor(const QColor &color) { addColor(color); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/PopupMenu.h new/kColorPicker-0.2.0/src/PopupMenu.h --- old/kColorPicker-0.1.6/src/PopupMenu.h 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/PopupMenu.h 2022-04-07 22:37:30.000000000 +0200 @@ -34,9 +34,10 @@ { Q_OBJECT public: - PopupMenu(); + PopupMenu(bool showAlphaChannel, QWidget *parent); ~PopupMenu() override; void addColor(const QColor &color); + void removeColors(); void selectColor(const QColor &color); QSize sizeHint() const; @@ -60,4 +61,5 @@ }; } // namespace kColorPicker + #endif //KCOLORPICKER_POPUPMENU_H diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/buttons/ColorButton.cpp new/kColorPicker-0.2.0/src/buttons/ColorButton.cpp --- old/kColorPicker-0.1.6/src/buttons/ColorButton.cpp 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/buttons/ColorButton.cpp 2022-04-07 22:37:30.000000000 +0200 @@ -24,7 +24,7 @@ ColorButton::ColorButton(const QIcon &icon, const QColor &color) : AbstractPopupMenuButton(icon) { setCheckable(true); - setToolTip(color.name()); + setToolTip(getColorName(color)); mColor = color; } @@ -38,4 +38,11 @@ emit colorSelected(mColor); } +QString ColorButton::getColorName(const QColor &color) +{ + auto format = color.alpha() < 255 ? QColor::HexArgb : QColor::HexRgb; + + return color.name(format); +} + } // namespace kColorPicker \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/buttons/ColorButton.h new/kColorPicker-0.2.0/src/buttons/ColorButton.h --- old/kColorPicker-0.1.6/src/buttons/ColorButton.h 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/buttons/ColorButton.h 2022-04-07 22:37:30.000000000 +0200 @@ -36,6 +36,8 @@ private: QColor mColor; + + static QString getColorName(const QColor &color); }; } // namespace kColorPicker diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/buttons/ColorDialogButton.cpp new/kColorPicker-0.2.0/src/buttons/ColorDialogButton.cpp --- old/kColorPicker-0.1.6/src/buttons/ColorDialogButton.cpp 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/buttons/ColorDialogButton.cpp 2022-04-07 22:37:30.000000000 +0200 @@ -21,15 +21,22 @@ namespace kColorPicker { -ColorDialogButton::ColorDialogButton(const QIcon &icon) : AbstractPopupMenuButton(icon) +ColorDialogButton::ColorDialogButton(const QIcon &icon, bool showAlphaChannel) : + AbstractPopupMenuButton(icon), + mShowAlphaChannel(showAlphaChannel) { setCheckable(false); } void ColorDialogButton::buttonClicked() { - auto color = QColorDialog::getColor(); + auto color = QColorDialog::getColor(Qt::white, this, QString(), getColorDialogOptions()); emit colorSelected(color); } +QFlags<QColorDialog::ColorDialogOption> ColorDialogButton::getColorDialogOptions() const +{ + return mShowAlphaChannel ? QColorDialog::ShowAlphaChannel : QFlags<QColorDialog::ColorDialogOption>(); +} + } // namespace kColorPicker \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kColorPicker-0.1.6/src/buttons/ColorDialogButton.h new/kColorPicker-0.2.0/src/buttons/ColorDialogButton.h --- old/kColorPicker-0.1.6/src/buttons/ColorDialogButton.h 2021-04-11 11:02:35.000000000 +0200 +++ new/kColorPicker-0.2.0/src/buttons/ColorDialogButton.h 2022-04-07 22:37:30.000000000 +0200 @@ -30,11 +30,14 @@ { Q_OBJECT public: - explicit ColorDialogButton(const QIcon &icon); + explicit ColorDialogButton(const QIcon &icon, bool showAlphaChannel); protected: void buttonClicked() override; +private: + bool mShowAlphaChannel; + QFlags<QColorDialog::ColorDialogOption> getColorDialogOptions() const; }; } // namespace kColorPicker