HAL
python_console_qss_adapter.cpp
Go to the documentation of this file.
2 #include <QStyle>
3 
4 namespace hal
5 {
6  PythonConsoleQssAdapter::PythonConsoleQssAdapter(QWidget *parent) : QWidget(parent)
7  {
8  style()->unpolish(this);
9  style()->polish(this);
10  mOldStdrd = standardColor().name();
11  mOldError = errorColor().name();
12  mOldPromt = promtColor().name();
13  hide();
14  }
15 
16  PythonConsoleQssAdapter *PythonConsoleQssAdapter::instance()
17  {
18  static PythonConsoleQssAdapter* instance = nullptr;
19  if(!instance)
20  instance = new PythonConsoleQssAdapter();
21 
22  return instance;
23  }
24 
25  QString PythonConsoleQssAdapter::updateStyle(const QString &oldText)
26  {
27  QString retval;
28  style()->unpolish(this);
29  style()->polish(this);
30  QHash<QString,QString> colorLookup;
31  colorLookup[mOldPromt] = promtColor().name();
32  colorLookup[mOldError] = errorColor().name();
33  colorLookup[mOldStdrd] = standardColor().name();
34  int pos0 = 0;
35  for (;;)
36  {
37  int pos1 = oldText.indexOf("color:#",pos0);
38  if (pos1 < 0) break;
39  retval += oldText.mid(pos0,pos1-pos0+6);
40  QString oldColor = oldText.mid(pos1+6,7);
41  retval += colorLookup.value(oldColor,standardColor().name());
42  pos0 = pos1 + 13;
43  }
44  retval += oldText.mid(pos0);
45  mOldStdrd = standardColor().name();
46  mOldError = errorColor().name();
47  mOldPromt = promtColor().name();
48  return retval;
49  }
50 
51  QColor PythonConsoleQssAdapter::standardColor() const
52  {
53  return mStandardColor;
54  }
55 
56  QColor PythonConsoleQssAdapter::errorColor() const
57  {
58  return mErrorColor;
59  }
60 
61  QColor PythonConsoleQssAdapter::promtColor() const
62  {
63  return mPromtColor;
64  }
65 
66  void PythonConsoleQssAdapter::setStandardColor(const QColor &color)
67  {
68  mStandardColor = color;
69  }
70 
71  void PythonConsoleQssAdapter::setErrorColor(const QColor &color)
72  {
73  mErrorColor = color;
74  }
75 
76  void PythonConsoleQssAdapter::setPromtColor(const QColor &color)
77  {
78  mPromtColor = color;
79  }
80 }
Connects the stylesheet properties to the console code.
std::string name
const T value(const Key &key) const const
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
QString mid(int position, int n) const const