Project

General

Profile

0001-Add-functionality-to-auto-generate-sender-colors.patch

sandsmark, 04/03/2012 12:25 AM

View differences:

src/qtui/settingspages/chatviewsettingspage.cpp
41 41
    ui.autoMarkerLine->setToolTip(tr("You need at 0.6 quasselcore to use this feature"));
42 42
  }
43 43

  
44
  connect(ui.generateSenderColors, SIGNAL(clicked()), this, SLOT(generateColors()));
44 45
  initAutoWidgets();
45 46
}
46 47

  
......
49 50
  QtUi::style()->generateSettingsQss();
50 51
  QtUi::style()->reload();
51 52
}
53

  
54

  
55
void ChatViewSettingsPage::generateColors() {
56
    //based on http://doc.trolltech.com/qq/qq26-adaptivecoloring.html
57
    UiSettings settings("");
58
    QColor foreground = settings.value("/QtUiStyle/Colors/ChannelMsg").value<QColor>();
59
    QColor background = settings.value("/QtUiStyle/Colors/ChatViewBackground").value<QColor>();
60
    const int numColors = 0x0f;
61

  
62
    int backgroundHue = background.hue();
63
    if (backgroundHue == -1) backgroundHue = 90;
64

  
65
    const int foregroundHue = foreground.hue();
66
    const int MIN_DELTA = 35;
67
    for (int i=0; i<=numColors; i++) {
68
        int hue = backgroundHue;
69
        hue += (i * 360) / numColors;
70
        hue %= 360;
71
        int value = qMax(foreground.value(), background.value());
72
        int saturation = 240;
73

  
74
        if (qAbs(hue - foregroundHue) < MIN_DELTA ||
75
                qAbs(hue - backgroundHue) < MIN_DELTA) {
76
            value /= 2;
77
        }
78
        qWarning() << hue << saturation << value;
79
        QColor color = QColor::fromHsv(hue, saturation, value);
80
        ColorButton *button = findChild<ColorButton*>(QString("senderColor%1").arg(QString::number(i), 2, '0'));
81
        button->setColor(color);
82
    }
83
}
src/qtui/settingspages/chatviewsettingspage.h
37 37
public slots:
38 38
  void save();
39 39

  
40
private slots:
41
  void generateColors();
42

  
40 43
private:
41 44
  Ui::ChatViewSettingsPage ui;
42 45

  
src/qtui/settingspages/chatviewsettingspage.ui
6 6
   <rect>
7 7
    <x>0</x>
8 8
    <y>0</y>
9
    <width>486</width>
10
    <height>492</height>
9
    <width>484</width>
10
    <height>490</height>
11 11
   </rect>
12 12
  </property>
13 13
  <property name="windowTitle">
......
712 712
       </layout>
713 713
      </item>
714 714
      <item>
715
       <widget class="QPushButton" name="generateSenderColors">
716
        <property name="text">
717
         <string>Generate automatically from foreground and background...</string>
718
        </property>
719
       </widget>
720
      </item>
721
      <item>
715 722
       <layout class="QHBoxLayout" name="horizontalLayout_2">
716 723
        <item>
717 724
         <widget class="QLabel" name="label_9">
718
-