Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 36 additions & 1 deletion src/config/uicoloreditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <QApplication>
#include <QComboBox>
#include <QHBoxLayout>
#include <QLineEdit>
#include <QMap>
#include <QSpacerItem>
#include <QVBoxLayout>
Expand All @@ -24,6 +25,7 @@ UIcolorEditor::UIcolorEditor(QWidget* parent)
m_hLayout->addItem(new QSpacerItem(space, space, QSizePolicy::Expanding));
m_vLayout->setAlignment(Qt::AlignVCenter);

initHexColorInput();
initButtons();
initColorWheel();

Expand Down Expand Up @@ -68,6 +70,19 @@ void UIcolorEditor::updateLocalColor(const QColor c)
m_contrastColor = c;
}
m_lastButtonPressed->setColor(c);
m_hexColorEdit->setText(c.name());
}

void UIcolorEditor::changeInputColor(const QString& hexColor)
{
if (hexColor.contains(QRegularExpression("^#[0-9A-Fa-f]{6}$"))) {
QColor color(hexColor);
if (color.isValid()) {
m_colorWheel->setColor(color);
updateLocalColor(color);
updateUIcolor();
}
}
}

void UIcolorEditor::initColorWheel()
Expand Down Expand Up @@ -147,7 +162,25 @@ void UIcolorEditor::initButtons()
});
m_lastButtonPressed = m_buttonMainColor;
}

void UIcolorEditor::initHexColorInput()
{
m_hexColorEdit = new QLineEdit(this);
m_hexColorLabel = new QLabel(this);
m_hexColorLabel->setText(tr("Hex for Main Color"));
m_hexColorEdit->setSizePolicy(
QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
connect(m_hexColorEdit,
&QLineEdit::textChanged,
this,
&UIcolorEditor::changeInputColor);
QRegularExpression rgbRegex("^#[0-9A-Fa-f]{6}$");
QRegularExpressionValidator* validator =
new QRegularExpressionValidator(rgbRegex, m_hexColorEdit);
m_hexColorEdit->setValidator(validator);
m_hexColorEdit->setMaxLength(7);
m_vLayout->addWidget(m_hexColorLabel);
m_vLayout->addWidget(m_hexColorEdit);
}
// visual update for the selected button
void UIcolorEditor::changeLastButton(CaptureToolButton* b)
{
Expand All @@ -160,10 +193,12 @@ void UIcolorEditor::changeLastButton(CaptureToolButton* b)
m_colorWheel->setColor(m_uiColor);
m_labelContrast->setStyleSheet(offStyle);
m_labelMain->setStyleSheet(styleSheet());
m_hexColorLabel->setText(tr("Hex for Main Color"));
} else {
m_colorWheel->setColor(m_contrastColor);
m_labelContrast->setStyleSheet(styleSheet());
m_labelMain->setStyleSheet(offStyle);
m_hexColorLabel->setText(tr("Hex for Contrast Color"));
}
b->setIcon(b->icon());
}
Expand Down
6 changes: 6 additions & 0 deletions src/config/uicoloreditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ class QVBoxLayout;
class QHBoxLayout;
class CaptureToolButton;
class ClickableLabel;
class QLineEdit;
class QLabel;

class UIcolorEditor : public QWidget
{
Expand All @@ -26,6 +28,7 @@ private slots:
void updateUIcolor();
void updateLocalColor(const QColor);
void changeLastButton(CaptureToolButton*);
void changeInputColor(const QString&);

private:
QColor m_uiColor, m_contrastColor;
Expand All @@ -35,6 +38,8 @@ private slots:
ClickableLabel* m_labelContrast;
CaptureToolButton* m_lastButtonPressed;
color_widgets::ColorWheel* m_colorWheel;
QLineEdit* m_hexColorEdit;
QLabel* m_hexColorLabel;

static const CaptureTool::Type m_buttonIconType = CaptureTool::TYPE_CIRCLE;

Expand All @@ -43,4 +48,5 @@ private slots:

void initColorWheel();
void initButtons();
void initHexColorInput();
};
11 changes: 0 additions & 11 deletions src/utils/valuehandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -545,17 +545,6 @@ QVariant Region::process(const QVariant& val)

QString str = val.toString();

if (str == "all") {
return ScreenGrabber().desktopGeometry();
} else if (str.startsWith("screen")) {
bool ok;
int number = str.mid(6).toInt(&ok);
if (!ok || number < 0) {
return {};
}
return ScreenGrabber().screenGeometry(qApp->screens()[number]);
}

static const QRegularExpression regex(
"(-{,1}\\d+)" // number (any sign)
"[x,\\.\\s]" // separator ('x', ',', '.', or whitespace)
Expand Down
Loading