summaryrefslogtreecommitdiff
path: root/src/colortable.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/colortable.h')
-rw-r--r--src/colortable.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/colortable.h b/src/colortable.h
new file mode 100644
index 00000000..039b6024
--- /dev/null
+++ b/src/colortable.h
@@ -0,0 +1,39 @@
+#ifndef COLORTABLE_H
+#define COLORTABLE_H
+
+#include <QTableWidget>
+
+class Settings;
+
+// a QTableWidget to view and modify color settings
+//
+class ColorTable : public QTableWidget
+{
+public:
+ ColorTable(QWidget* parent=nullptr);
+
+ // adds colors to the table from the settings
+ //
+ void load(Settings& s);
+
+ // resets the colors to their default values; commitColors() must be called
+ // to save them
+ //
+ void resetColors();
+
+ // commits any changes
+ //
+ void commitColors();
+
+private:
+ Settings* m_settings;
+
+ void addColor(
+ const QString& text, const QColor& defaultColor,
+ std::function<QColor ()> get,
+ std::function<void (const QColor&)> commit);
+
+ void onColorActivated();
+};
+
+#endif // COLORTABLE_H