362 qDeleteAll(
m_d->widgetlist);
363 m_d->widgetlist.clear();
369 m_d->colorChannelCount =
m_d->selectorModel->colorChannelCount();
371 bool supportsGamutMask =
false;
375 if (
m_d->colorChannelCount == 1) {
389 m_d->widgetlist.append(bar);
391 else if (
m_d->colorChannelCount == 3) {
396 switch(
m_d->acs_config.subTypeParameter)
409 Q_ASSERT_X(
false,
"",
"Invalid acs_config.subTypeParameter");
412 switch(
m_d->acs_config.mainTypeParameter)
427 Q_ASSERT_X(
false,
"",
"Invalid acs_config.mainTypeParameter");
434 channel1, channel1, 20,
443 channel1, channel1, 20, orientation);
453 warnUI <<
"Invalid subType, cannot initialize KisVisualColorSelectorShape";
454 Q_ASSERT_X(
false,
"",
"Invalid subType, cannot initialize KisVisualColorSelectorShape");
458 m_d->widgetlist.append(bar);
479 supportsGamutMask = block->supportsGamutMask();
483 m_d->widgetlist.append(block);
485 else if (
m_d->colorChannelCount == 4) {
490 m_d->widgetlist.append(block);
491 m_d->widgetlist.append(block2);
494 m_d->initialized =
true;
499 shape->setAcceptTabletEvents(
m_d->acceptTabletEvents);
511 if (!
m_d->selectorModel || !
m_d->initialized) {
515 int sizeValue = qMin(width(), height());
517 const int margin = 4;
518 const qreal sliderRatio = 0.09;
519 int borderWidth = qMax(
int(sizeValue * sliderRatio),
m_d->minimumSliderWidth) + margin;
520 QRect newrect(0,0, this->geometry().width(), this->geometry().height());
522 if (
m_d->colorChannelCount == 1) {
524 m_d->widgetlist.at(0)->resize(sizeValue, sizeValue);
530 int sliderWidth = qMax(width()/10,
m_d->minimumSliderWidth);
531 sliderWidth = qMin(sliderWidth, height());
532 int y = (height() - sliderWidth)/2;
534 slider->setGeometry(0, y, width(), sliderWidth);
538 int sliderWidth = qMax(height()/10,
m_d->minimumSliderWidth);
539 sliderWidth = qMin(sliderWidth, width());
540 int x = (width() - sliderWidth)/2;
542 slider->setGeometry(x, 0, sliderWidth, height());
546 else if (
m_d->colorChannelCount == 3) {
552 m_d->widgetlist.at(0)->setGeometry((width() - sizeValue)/2, (height() - sizeValue)/2,
553 sizeValue, sizeValue);
559 newrect.setWidth(qMin(newrect.width(), qRound((newrect.height() - borderWidth) *
m_d->stretchLimit)));
560 newrect.setHeight(qMin(newrect.height(), qRound(sizeValue *
m_d->stretchLimit + borderWidth)));
562 m_d->widgetlist.at(0)->setGeometry(0, 0, newrect.width(), borderWidth);
565 newrect.setWidth(qMin(newrect.width(), qRound(sizeValue *
m_d->stretchLimit + borderWidth)));
566 newrect.setHeight(qMin(newrect.height(), qRound((newrect.width() - borderWidth) *
m_d->stretchLimit)));
568 m_d->widgetlist.at(0)->setGeometry(0, 0, borderWidth, newrect.height());
575 m_d->widgetlist.at(1)->setGeometry(
m_d->widgetlist.at(0)->getSpaceForTriangle(newrect));
577 m_d->widgetlist.at(1)->setGeometry(
m_d->widgetlist.at(0)->getSpaceForCircle(newrect));
581 m_d->widgetlist.at(1)->setGeometry(
m_d->widgetlist.at(0)->getSpaceForSquare(newrect));
584 m_d->widgetlist.at(1)->setGeometry(
m_d->widgetlist.at(0)->getSpaceForCircle(newrect));
587 QRect boundRect(
m_d->widgetlist.at(0)->geometry() |
m_d->widgetlist.at(1)->geometry());
588 int offset = (width() - boundRect.width()) / 2 - boundRect.left();
589 m_d->widgetlist.at(0)->move(
m_d->widgetlist.at(0)->pos() + QPoint(offset, 0));
590 m_d->widgetlist.at(1)->move(
m_d->widgetlist.at(1)->pos() + QPoint(offset, 0));
592 else if (
m_d->colorChannelCount == 4) {
593 int sizeBlock = qMin(width()/2 - 8, height());
594 m_d->widgetlist.at(0)->setGeometry(0, 0, sizeBlock, sizeBlock);
595 m_d->widgetlist.at(1)->setGeometry(sizeBlock + 8, 0, sizeBlock, sizeBlock);