summaryrefslogtreecommitdiff
path: root/qt
diff options
context:
space:
mode:
authordaniel-Jones <daniel@danieljon.es>2017-06-04 16:26:56 +0930
committerdaniel-Jones <daniel@danieljon.es>2017-06-04 16:26:56 +0930
commitf66536d84b38aa0eb46e928fdaf13d7da790b2ee (patch)
treeba2624354136f3f0db3ec929d1eea15635527ba1 /qt
parent2ce2f6376152402c3fc0d750720770b963a7d3cf (diff)
downloadRGB-Controller-f66536d84b38aa0eb46e928fdaf13d7da790b2ee.tar.gz
RGB-Controller-f66536d84b38aa0eb46e928fdaf13d7da790b2ee.zip
added HTML/JS/PHP pages/scripts to allow RGB changes over a web page. Integrated a server into the application to allow incoming connections and receive commands
Diffstat (limited to 'qt')
-rw-r--r--qt/RGBController/.controllerwindow.cpp.swnbin0 -> 16384 bytes
-rw-r--r--qt/RGBController/Makefile45
-rwxr-xr-xqt/RGBController/RGBControllerbin136960 -> 143248 bytes
-rwxr-xr-xqt/RGBController/RGBController.pro6
-rwxr-xr-xqt/RGBController/controllerwindow.cpp39
-rwxr-xr-xqt/RGBController/controllerwindow.h15
-rw-r--r--qt/RGBController/controllerwindow.ui59
-rw-r--r--qt/RGBController/irc.cpp2
-rw-r--r--qt/RGBController/server.cpp54
-rw-r--r--qt/RGBController/server.h26
-rw-r--r--qt/build-RGBController-Desktop-Debug/Makefile60
-rwxr-xr-xqt/build-RGBController-Desktop-Debug/RGBControllerbin1614688 -> 1813016 bytes
-rw-r--r--qt/build-RGBController-Desktop-Debug/moc_controllerwindow.cpp250
-rw-r--r--qt/build-RGBController-Desktop-Debug/moc_irc.cpp148
-rw-r--r--qt/build-RGBController-Desktop-Debug/moc_server.cpp139
-rw-r--r--qt/build-RGBController-Desktop-Debug/ui_controllerwindow.h621
-rw-r--r--qt/ircbot/.qmake.stash12
-rw-r--r--qt/ircbot/Makefile825
-rw-r--r--qt/ircbot/main.cpp13
-rw-r--r--qt/ircbot/moc_predefs.h284
-rw-r--r--qt/ircbot/moc_qtbot.cpp156
-rwxr-xr-xqt/ircbot/qtbotbin0 -> 30944 bytes
-rw-r--r--qt/ircbot/qtbot.cpp82
-rw-r--r--qt/ircbot/qtbot.h37
-rw-r--r--qt/ircbot/qtbot.pro27
-rw-r--r--qt/ircbot/qtbot.pro.user336
26 files changed, 2876 insertions, 360 deletions
diff --git a/qt/RGBController/.controllerwindow.cpp.swn b/qt/RGBController/.controllerwindow.cpp.swn
new file mode 100644
index 0000000..bc195e4
--- /dev/null
+++ b/qt/RGBController/.controllerwindow.cpp.swn
Binary files differ
diff --git a/qt/RGBController/Makefile b/qt/RGBController/Makefile
index f615390..4f437ac 100644
--- a/qt/RGBController/Makefile
+++ b/qt/RGBController/Makefile
@@ -50,13 +50,17 @@ OBJECTS_DIR = ./
SOURCES = main.cpp \
controllerwindow.cpp \
- irc.cpp moc_controllerwindow.cpp \
- moc_irc.cpp
+ irc.cpp \
+ server.cpp moc_controllerwindow.cpp \
+ moc_irc.cpp \
+ moc_server.cpp
OBJECTS = main.o \
controllerwindow.o \
irc.o \
+ server.o \
moc_controllerwindow.o \
- moc_irc.o
+ moc_irc.o \
+ moc_server.o
DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/common/unix.conf \
/usr/lib/qt/mkspecs/common/linux.conf \
@@ -281,9 +285,11 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/features/yacc.prf \
/usr/lib/qt/mkspecs/features/lex.prf \
RGBController.pro controllerwindow.h \
- irc.h main.cpp \
+ irc.h \
+ server.h main.cpp \
controllerwindow.cpp \
- irc.cpp
+ irc.cpp \
+ server.cpp
QMAKE_TARGET = RGBController
DESTDIR =
TARGET = RGBController
@@ -769,8 +775,8 @@ distdir: FORCE
@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
$(COPY_FILE) --parents /usr/lib/qt/mkspecs/features/data/dummy.cpp $(DISTDIR)/
- $(COPY_FILE) --parents controllerwindow.h irc.h $(DISTDIR)/
- $(COPY_FILE) --parents main.cpp controllerwindow.cpp irc.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents controllerwindow.h irc.h server.h $(DISTDIR)/
+ $(COPY_FILE) --parents main.cpp controllerwindow.cpp irc.cpp server.cpp $(DISTDIR)/
$(COPY_FILE) --parents controllerwindow.ui $(DISTDIR)/
@@ -803,10 +809,12 @@ compiler_moc_predefs_clean:
moc_predefs.h: /usr/lib/qt/mkspecs/features/data/dummy.cpp
g++ -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp
-compiler_moc_header_make_all: moc_controllerwindow.cpp moc_irc.cpp
+compiler_moc_header_make_all: moc_controllerwindow.cpp moc_irc.cpp moc_server.cpp
compiler_moc_header_clean:
- -$(DEL_FILE) moc_controllerwindow.cpp moc_irc.cpp
+ -$(DEL_FILE) moc_controllerwindow.cpp moc_irc.cpp moc_server.cpp
moc_controllerwindow.cpp: ui_controllerwindow.h \
+ irc.h \
+ server.h \
controllerwindow.h \
moc_predefs.h \
/usr/bin/moc
@@ -817,6 +825,11 @@ moc_irc.cpp: irc.h \
/usr/bin/moc
/usr/bin/moc $(DEFINES) --include ./moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I'/home/daniel_j/documents/school/2016 research project/RGBController/qt/RGBController' -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtSerialPort -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I/usr/include/c++/6.3.1 -I/usr/include/c++/6.3.1/x86_64-pc-linux-gnu -I/usr/include/c++/6.3.1/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed -I/usr/include irc.h -o moc_irc.cpp
+moc_server.cpp: server.h \
+ moc_predefs.h \
+ /usr/bin/moc
+ /usr/bin/moc $(DEFINES) --include ./moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I'/home/daniel_j/documents/school/2016 research project/RGBController/qt/RGBController' -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtSerialPort -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I/usr/include/c++/6.3.1 -I/usr/include/c++/6.3.1/x86_64-pc-linux-gnu -I/usr/include/c++/6.3.1/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed -I/usr/include server.h -o moc_server.cpp
+
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all: ui_controllerwindow.h
@@ -837,22 +850,32 @@ compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_ui
####### Compile
main.o: main.cpp controllerwindow.h \
- ui_controllerwindow.h
+ ui_controllerwindow.h \
+ irc.h \
+ server.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
controllerwindow.o: controllerwindow.cpp controllerwindow.h \
- ui_controllerwindow.h
+ ui_controllerwindow.h \
+ irc.h \
+ server.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o controllerwindow.o controllerwindow.cpp
irc.o: irc.cpp irc.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o irc.o irc.cpp
+server.o: server.cpp server.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o server.o server.cpp
+
moc_controllerwindow.o: moc_controllerwindow.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_controllerwindow.o moc_controllerwindow.cpp
moc_irc.o: moc_irc.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_irc.o moc_irc.cpp
+moc_server.o: moc_server.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_server.o moc_server.cpp
+
####### Install
install: FORCE
diff --git a/qt/RGBController/RGBController b/qt/RGBController/RGBController
index 7b54e8c..a6cfd3f 100755
--- a/qt/RGBController/RGBController
+++ b/qt/RGBController/RGBController
Binary files differ
diff --git a/qt/RGBController/RGBController.pro b/qt/RGBController/RGBController.pro
index 07060da..a4ed2e3 100755
--- a/qt/RGBController/RGBController.pro
+++ b/qt/RGBController/RGBController.pro
@@ -14,10 +14,12 @@ TEMPLATE = app
SOURCES += main.cpp\
controllerwindow.cpp \
- irc.cpp
+ irc.cpp \
+ server.cpp
HEADERS += controllerwindow.h \
- irc.h
+ irc.h \
+ server.h
FORMS += controllerwindow.ui
diff --git a/qt/RGBController/controllerwindow.cpp b/qt/RGBController/controllerwindow.cpp
index 7c4f552..dd21ece 100755
--- a/qt/RGBController/controllerwindow.cpp
+++ b/qt/RGBController/controllerwindow.cpp
@@ -12,9 +12,12 @@ controllerWindow::controllerWindow(QWidget *parent) :
connect(ser, &QSerialPort::readyRead, this, &controllerWindow::read);
ptimer = new QTimer(this);
connect(ptimer, SIGNAL(timeout()), this, SLOT(ping()));
- connect (&ircbot, SIGNAL(sendcmd(QString)), this, SLOT(cmdrecv(QString)));
+ connect(&ircbot, SIGNAL(sendcmd(QString)), this, SLOT(cmdrecv(QString)));
+ connect(&srv, SIGNAL(sendcmd(QString)), this, SLOT(cmdrecv(QString)));
pingtries = 0;
irccon = false;
+ pingcount = 0;
+ server_started = false;
/* disable buttons and widgets that should not be enabled yet, set slider values to 0 */
ui->disconnect_button->setEnabled(false);
ui->connect_button->setEnabled(false);
@@ -413,6 +416,7 @@ void controllerWindow::on_off_button_clicked()
ui->r_slider->setValue(0);
ui->g_slider->setValue(0);
ui->b_slider->setValue(0);
+ send("off");
}
void controllerWindow::on_set_preset_button_clicked()
@@ -616,6 +620,8 @@ void controllerWindow::ping()
send("ping\n");
tping = false;
QTimer::singleShot(1000, this, SLOT(check_ping()));
+ pingcount++;
+ ui->ping_count_label->setText("Ping: " + QString::number(pingcount));
}
void controllerWindow::check_ping()
@@ -658,6 +664,37 @@ void controllerWindow::on_irc_connect_button_clicked()
}
}
+void controllerWindow::on_server_start_button_clicked()
+{
+ if (!server_started)
+ {
+ if (srv.server_start())
+ {
+ server_started = true;
+ ui->server_start_button->setText("Stop server");
+ info_log("Server started");
+ }
+ else
+ {
+ info_log("Server could not start");
+ }
+ }
+
+ else if (server_started)
+ {
+ if (srv.server_stop())
+ {
+ server_started = false;
+ ui->server_start_button->setText("Start server");
+ info_log("Server stopped");
+ }
+ else
+ {
+ info_log("Server not not be stopped");
+ }
+ }
+}
+
void controllerWindow::cmdrecv(QString cmd)
{
qDebug() << "got cmd" << cmd;
diff --git a/qt/RGBController/controllerwindow.h b/qt/RGBController/controllerwindow.h
index a9196d2..b36d70b 100755
--- a/qt/RGBController/controllerwindow.h
+++ b/qt/RGBController/controllerwindow.h
@@ -15,6 +15,7 @@
#include <QTimer>
#include "ui_controllerwindow.h"
#include "irc.h"
+#include "server.h"
namespace Ui {
class controllerWindow;
@@ -64,7 +65,7 @@ class controllerWindow : public QMainWindow
void cmdrecv(QString cmd);
private slots:
/* these slots are used to trigger button clicks and drop down items selections etc */
- void on_connect_button_clicked();
+ void on_connect_button_clicked();
void on_disconnect_button_clicked();
@@ -120,16 +121,22 @@ class controllerWindow : public QMainWindow
void on_bto_valueChanged(int arg1);
- void on_serial_send_button_clicked();
+ void on_serial_send_button_clicked();
void ping();
void check_ping();
- void on_irc_connect_button_clicked();
+ void on_irc_connect_button_clicked();
-private:
+ void on_server_start_button_clicked();
+
+
+ private:
Ui::controllerWindow *ui;
bool irccon;
irc ircbot;
+ server srv;
+ int pingcount;
+ bool server_started;
};
#endif // CONTROLLERWINDOW_H
diff --git a/qt/RGBController/controllerwindow.ui b/qt/RGBController/controllerwindow.ui
index 63a91b1..0a10269 100644
--- a/qt/RGBController/controllerwindow.ui
+++ b/qt/RGBController/controllerwindow.ui
@@ -9,8 +9,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>364</width>
- <height>238</height>
+ <width>433</width>
+ <height>254</height>
</rect>
</property>
<property name="windowTitle">
@@ -21,7 +21,7 @@
<item row="7" column="1">
<widget class="QTabWidget" name="display_tab">
<property name="currentIndex">
- <number>4</number>
+ <number>5</number>
</property>
<widget class="QWidget" name="status_tab">
<attribute name="title">
@@ -528,21 +528,21 @@
</property>
</widget>
</item>
- <item row="1" column="0">
+ <item row="2" column="0">
<widget class="QLabel" name="irc_server_label">
<property name="text">
<string>Server</string>
</property>
</widget>
</item>
- <item row="3" column="0">
+ <item row="5" column="0">
<widget class="QLineEdit" name="irc_server_input">
<property name="text">
<string>irc.danieljon.es</string>
</property>
</widget>
</item>
- <item row="3" column="1">
+ <item row="5" column="1">
<widget class="QSpinBox" name="irc_bot_spinbox">
<property name="maximumSize">
<size>
@@ -558,42 +558,42 @@
</property>
</widget>
</item>
- <item row="4" column="0">
+ <item row="6" column="0">
<widget class="QLabel" name="irc_channel_label">
<property name="text">
<string>Channel</string>
</property>
</widget>
</item>
- <item row="5" column="0">
+ <item row="7" column="0">
<widget class="QLineEdit" name="irc_channel_input">
<property name="text">
<string>#csgo</string>
</property>
</widget>
</item>
- <item row="6" column="0">
+ <item row="8" column="0">
<widget class="QLabel" name="irc_name_label">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
- <item row="7" column="0">
+ <item row="9" column="0">
<widget class="QLineEdit" name="irc_name_input">
<property name="text">
<string>LightBot</string>
</property>
</widget>
</item>
- <item row="1" column="1">
+ <item row="2" column="1">
<widget class="QLabel" name="irc_port_label">
<property name="text">
<string>Port</string>
</property>
</widget>
</item>
- <item row="8" column="0">
+ <item row="10" column="0">
<widget class="QPushButton" name="irc_connect_button">
<property name="text">
<string>Connect</string>
@@ -602,15 +602,40 @@
</item>
</layout>
</widget>
+ <widget class="QWidget" name="server_tab">
+ <attribute name="title">
+ <string>Server</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_6">
+ <item row="0" column="0">
+ <layout class="QFormLayout" name="server_tab_layout">
+ <item row="0" column="0">
+ <widget class="QPushButton" name="server_start_button">
+ <property name="text">
+ <string>Start server</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
<widget class="QWidget" name="log_tab">
<attribute name="title">
<string>Log</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
- <item row="2" column="0">
+ <item row="5" column="0">
<widget class="QLineEdit" name="serial_input"/>
</item>
- <item row="1" column="0">
+ <item row="5" column="1">
+ <widget class="QPushButton" name="serial_send_button">
+ <property name="text">
+ <string>Send</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
<widget class="QTextEdit" name="info_log_textarea"/>
</item>
<item row="0" column="0">
@@ -620,10 +645,10 @@
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QPushButton" name="serial_send_button">
+ <item row="0" column="1">
+ <widget class="QLabel" name="ping_count_label">
<property name="text">
- <string>Send</string>
+ <string>Ping</string>
</property>
</widget>
</item>
diff --git a/qt/RGBController/irc.cpp b/qt/RGBController/irc.cpp
index 50f7fac..9c3c14d 100644
--- a/qt/RGBController/irc.cpp
+++ b/qt/RGBController/irc.cpp
@@ -33,7 +33,7 @@ void irc::read()
buf = "JOIN " + channel + "\r\n";
socket->write(buf.toUtf8());
}
- if (line.contains("!")) /* mostl ikely a message to handle */
+ if (line.contains("!")) /* most likely a message to handle */
handle(line);
if(socket->canReadLine())
read();
diff --git a/qt/RGBController/server.cpp b/qt/RGBController/server.cpp
new file mode 100644
index 0000000..85e43ee
--- /dev/null
+++ b/qt/RGBController/server.cpp
@@ -0,0 +1,54 @@
+#include "server.h"
+
+server::server(QObject *parent) : QObject(parent)
+{
+ srv = new QTcpServer();
+ connect(srv, SIGNAL(newConnection()), this, SLOT(new_connection()));
+}
+
+bool server::server_start()
+{
+ if (srv->listen(QHostAddress::Any, 3001))
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+bool server::server_stop()
+{
+ srv->close();
+ if (srv->isListening())
+ return false;
+ return true;
+}
+
+void server::new_connection()
+{
+ QTcpSocket *socket;
+ socket = srv->nextPendingConnection();
+ socket->waitForReadyRead(3000);
+ handle(QString(socket->readAll()).remove(QRegExp("[\\n\\t\\r]")));
+ socket->close();
+ delete socket;
+}
+
+void server::handle(QString msg)
+{
+ if (msg.contains(";"))
+ {
+ QStringList tmp = msg.split(";");
+ for (int x = 0; x < tmp.size(); x++)
+ {
+ emit sendcmd(tmp.at(x));
+ }
+ }
+ else
+ {
+ emit sendcmd(msg);
+ }
+
+}
diff --git a/qt/RGBController/server.h b/qt/RGBController/server.h
new file mode 100644
index 0000000..8d46539
--- /dev/null
+++ b/qt/RGBController/server.h
@@ -0,0 +1,26 @@
+#ifndef SERVER_H
+#define SERVER_H
+
+#include <QTcpServer>
+#include <QTcpSocket>
+
+class server : public QObject
+{
+ Q_OBJECT
+ public:
+ explicit server(QObject *parent = 0);
+ bool server_start();
+ bool server_stop();
+ private:
+ QTcpServer *srv;
+ void handle(QString msg);
+ private slots:
+ void new_connection();
+signals:
+ void sendcmd(QString cmd);
+
+
+ public slots:
+};
+
+#endif // SERVER_H
diff --git a/qt/build-RGBController-Desktop-Debug/Makefile b/qt/build-RGBController-Desktop-Debug/Makefile
index 1314c66..524bb85 100644
--- a/qt/build-RGBController-Desktop-Debug/Makefile
+++ b/qt/build-RGBController-Desktop-Debug/Makefile
@@ -49,10 +49,18 @@ OBJECTS_DIR = ./
####### Files
SOURCES = ../RGBController/main.cpp \
- ../RGBController/controllerwindow.cpp moc_controllerwindow.cpp
+ ../RGBController/controllerwindow.cpp \
+ ../RGBController/irc.cpp \
+ ../RGBController/server.cpp moc_controllerwindow.cpp \
+ moc_irc.cpp \
+ moc_server.cpp
OBJECTS = main.o \
controllerwindow.o \
- moc_controllerwindow.o
+ irc.o \
+ server.o \
+ moc_controllerwindow.o \
+ moc_irc.o \
+ moc_server.o
DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/common/unix.conf \
/usr/lib/qt/mkspecs/common/linux.conf \
@@ -276,8 +284,12 @@ DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
/usr/lib/qt/mkspecs/features/exceptions.prf \
/usr/lib/qt/mkspecs/features/yacc.prf \
/usr/lib/qt/mkspecs/features/lex.prf \
- ../RGBController/RGBController.pro ../RGBController/controllerwindow.h ../RGBController/main.cpp \
- ../RGBController/controllerwindow.cpp
+ ../RGBController/RGBController.pro ../RGBController/controllerwindow.h \
+ ../RGBController/irc.h \
+ ../RGBController/server.h ../RGBController/main.cpp \
+ ../RGBController/controllerwindow.cpp \
+ ../RGBController/irc.cpp \
+ ../RGBController/server.cpp
QMAKE_TARGET = RGBController
DESTDIR =
TARGET = RGBController
@@ -763,8 +775,8 @@ distdir: FORCE
@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
$(COPY_FILE) --parents /usr/lib/qt/mkspecs/features/data/dummy.cpp $(DISTDIR)/
- $(COPY_FILE) --parents ../RGBController/controllerwindow.h $(DISTDIR)/
- $(COPY_FILE) --parents ../RGBController/main.cpp ../RGBController/controllerwindow.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents ../RGBController/controllerwindow.h ../RGBController/irc.h ../RGBController/server.h $(DISTDIR)/
+ $(COPY_FILE) --parents ../RGBController/main.cpp ../RGBController/controllerwindow.cpp ../RGBController/irc.cpp ../RGBController/server.cpp $(DISTDIR)/
$(COPY_FILE) --parents ../RGBController/controllerwindow.ui $(DISTDIR)/
@@ -797,15 +809,27 @@ compiler_moc_predefs_clean:
moc_predefs.h: /usr/lib/qt/mkspecs/features/data/dummy.cpp
g++ -pipe -g -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp
-compiler_moc_header_make_all: moc_controllerwindow.cpp
+compiler_moc_header_make_all: moc_controllerwindow.cpp moc_irc.cpp moc_server.cpp
compiler_moc_header_clean:
- -$(DEL_FILE) moc_controllerwindow.cpp
+ -$(DEL_FILE) moc_controllerwindow.cpp moc_irc.cpp moc_server.cpp
moc_controllerwindow.cpp: ../RGBController/ui_controllerwindow.h \
+ ../RGBController/irc.h \
+ ../RGBController/server.h \
../RGBController/controllerwindow.h \
moc_predefs.h \
/usr/bin/moc
/usr/bin/moc $(DEFINES) --include ./moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I'/home/daniel_j/documents/school/2016 research project/RGBController/qt/RGBController' -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtSerialPort -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I. -I/usr/include/c++/6.3.1 -I/usr/include/c++/6.3.1/x86_64-pc-linux-gnu -I/usr/include/c++/6.3.1/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed -I/usr/include ../RGBController/controllerwindow.h -o moc_controllerwindow.cpp
+moc_irc.cpp: ../RGBController/irc.h \
+ moc_predefs.h \
+ /usr/bin/moc
+ /usr/bin/moc $(DEFINES) --include ./moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I'/home/daniel_j/documents/school/2016 research project/RGBController/qt/RGBController' -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtSerialPort -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I. -I/usr/include/c++/6.3.1 -I/usr/include/c++/6.3.1/x86_64-pc-linux-gnu -I/usr/include/c++/6.3.1/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed -I/usr/include ../RGBController/irc.h -o moc_irc.cpp
+
+moc_server.cpp: ../RGBController/server.h \
+ moc_predefs.h \
+ /usr/bin/moc
+ /usr/bin/moc $(DEFINES) --include ./moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I'/home/daniel_j/documents/school/2016 research project/RGBController/qt/RGBController' -I/usr/include/qt -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtSerialPort -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I. -I/usr/include/c++/6.3.1 -I/usr/include/c++/6.3.1/x86_64-pc-linux-gnu -I/usr/include/c++/6.3.1/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed -I/usr/include ../RGBController/server.h -o moc_server.cpp
+
compiler_moc_source_make_all:
compiler_moc_source_clean:
compiler_uic_make_all: ui_controllerwindow.h
@@ -826,16 +850,32 @@ compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean compiler_ui
####### Compile
main.o: ../RGBController/main.cpp ../RGBController/controllerwindow.h \
- ../RGBController/ui_controllerwindow.h
+ ../RGBController/ui_controllerwindow.h \
+ ../RGBController/irc.h \
+ ../RGBController/server.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o ../RGBController/main.cpp
controllerwindow.o: ../RGBController/controllerwindow.cpp ../RGBController/controllerwindow.h \
- ../RGBController/ui_controllerwindow.h
+ ../RGBController/ui_controllerwindow.h \
+ ../RGBController/irc.h \
+ ../RGBController/server.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o controllerwindow.o ../RGBController/controllerwindow.cpp
+irc.o: ../RGBController/irc.cpp ../RGBController/irc.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o irc.o ../RGBController/irc.cpp
+
+server.o: ../RGBController/server.cpp ../RGBController/server.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o server.o ../RGBController/server.cpp
+
moc_controllerwindow.o: moc_controllerwindow.cpp
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_controllerwindow.o moc_controllerwindow.cpp
+moc_irc.o: moc_irc.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_irc.o moc_irc.cpp
+
+moc_server.o: moc_server.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_server.o moc_server.cpp
+
####### Install
install: FORCE
diff --git a/qt/build-RGBController-Desktop-Debug/RGBController b/qt/build-RGBController-Desktop-Debug/RGBController
index 8091a3a..dbe7020 100755
--- a/qt/build-RGBController-Desktop-Debug/RGBController
+++ b/qt/build-RGBController-Desktop-Debug/RGBController
Binary files differ
diff --git a/qt/build-RGBController-Desktop-Debug/moc_controllerwindow.cpp b/qt/build-RGBController-Desktop-Debug/moc_controllerwindow.cpp
index 9e86e81..e0fde24 100644
--- a/qt/build-RGBController-Desktop-Debug/moc_controllerwindow.cpp
+++ b/qt/build-RGBController-Desktop-Debug/moc_controllerwindow.cpp
@@ -21,8 +21,8 @@ QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_controllerWindow_t {
- QByteArrayData data[33];
- char stringdata0[777];
+ QByteArrayData data[40];
+ char stringdata0[896];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -32,42 +32,50 @@ struct qt_meta_stringdata_controllerWindow_t {
static const qt_meta_stringdata_controllerWindow_t qt_meta_stringdata_controllerWindow = {
{
QT_MOC_LITERAL(0, 0, 16), // "controllerWindow"
-QT_MOC_LITERAL(1, 17, 25), // "on_connect_button_clicked"
-QT_MOC_LITERAL(2, 43, 0), // ""
-QT_MOC_LITERAL(3, 44, 28), // "on_disconnect_button_clicked"
-QT_MOC_LITERAL(4, 73, 30), // "on_refresh_port_button_clicked"
-QT_MOC_LITERAL(5, 104, 31), // "on_reload_preset_button_clicked"
-QT_MOC_LITERAL(6, 136, 24), // "on_r_slider_valueChanged"
-QT_MOC_LITERAL(7, 161, 5), // "value"
-QT_MOC_LITERAL(8, 167, 24), // "on_g_slider_valueChanged"
-QT_MOC_LITERAL(9, 192, 24), // "on_b_slider_valueChanged"
-QT_MOC_LITERAL(10, 217, 21), // "on_red_button_clicked"
-QT_MOC_LITERAL(11, 239, 23), // "on_green_button_clicked"
-QT_MOC_LITERAL(12, 263, 22), // "on_blue_button_clicked"
-QT_MOC_LITERAL(13, 286, 21), // "on_off_button_clicked"
-QT_MOC_LITERAL(14, 308, 28), // "on_set_preset_button_clicked"
-QT_MOC_LITERAL(15, 337, 39), // "on_presets_dropdown_currentIn..."
-QT_MOC_LITERAL(16, 377, 5), // "index"
-QT_MOC_LITERAL(17, 383, 29), // "on_preset_save_button_clicked"
-QT_MOC_LITERAL(18, 413, 31), // "on_preset_delete_button_clicked"
-QT_MOC_LITERAL(19, 445, 26), // "on_red_fade_button_clicked"
-QT_MOC_LITERAL(20, 472, 28), // "on_green_fade_button_clicked"
-QT_MOC_LITERAL(21, 501, 27), // "on_blue_fade_button_clicked"
-QT_MOC_LITERAL(22, 529, 23), // "on_speed_button_clicked"
-QT_MOC_LITERAL(23, 553, 30), // "on_r_speed_slider_valueChanged"
-QT_MOC_LITERAL(24, 584, 30), // "on_g_speed_slider_valueChanged"
-QT_MOC_LITERAL(25, 615, 30), // "on_b_speed_slider_valueChanged"
-QT_MOC_LITERAL(26, 646, 21), // "on_rfrom_valueChanged"
-QT_MOC_LITERAL(27, 668, 4), // "arg1"
-QT_MOC_LITERAL(28, 673, 19), // "on_rto_valueChanged"
-QT_MOC_LITERAL(29, 693, 21), // "on_gfrom_valueChanged"
-QT_MOC_LITERAL(30, 715, 19), // "on_gto_valueChanged"
-QT_MOC_LITERAL(31, 735, 21), // "on_bfrom_valueChanged"
-QT_MOC_LITERAL(32, 757, 19) // "on_bto_valueChanged"
+QT_MOC_LITERAL(1, 17, 7), // "cmdrecv"
+QT_MOC_LITERAL(2, 25, 0), // ""
+QT_MOC_LITERAL(3, 26, 3), // "cmd"
+QT_MOC_LITERAL(4, 30, 25), // "on_connect_button_clicked"
+QT_MOC_LITERAL(5, 56, 28), // "on_disconnect_button_clicked"
+QT_MOC_LITERAL(6, 85, 30), // "on_refresh_port_button_clicked"
+QT_MOC_LITERAL(7, 116, 31), // "on_reload_preset_button_clicked"
+QT_MOC_LITERAL(8, 148, 24), // "on_r_slider_valueChanged"
+QT_MOC_LITERAL(9, 173, 5), // "value"
+QT_MOC_LITERAL(10, 179, 24), // "on_g_slider_valueChanged"
+QT_MOC_LITERAL(11, 204, 24), // "on_b_slider_valueChanged"
+QT_MOC_LITERAL(12, 229, 21), // "on_red_button_clicked"
+QT_MOC_LITERAL(13, 251, 23), // "on_green_button_clicked"
+QT_MOC_LITERAL(14, 275, 22), // "on_blue_button_clicked"
+QT_MOC_LITERAL(15, 298, 21), // "on_off_button_clicked"
+QT_MOC_LITERAL(16, 320, 28), // "on_set_preset_button_clicked"
+QT_MOC_LITERAL(17, 349, 39), // "on_presets_dropdown_currentIn..."
+QT_MOC_LITERAL(18, 389, 5), // "index"
+QT_MOC_LITERAL(19, 395, 29), // "on_preset_save_button_clicked"
+QT_MOC_LITERAL(20, 425, 31), // "on_preset_delete_button_clicked"
+QT_MOC_LITERAL(21, 457, 26), // "on_red_fade_button_clicked"
+QT_MOC_LITERAL(22, 484, 28), // "on_green_fade_button_clicked"
+QT_MOC_LITERAL(23, 513, 27), // "on_blue_fade_button_clicked"
+QT_MOC_LITERAL(24, 541, 23), // "on_speed_button_clicked"
+QT_MOC_LITERAL(25, 565, 30), // "on_r_speed_slider_valueChanged"
+QT_MOC_LITERAL(26, 596, 30), // "on_g_speed_slider_valueChanged"
+QT_MOC_LITERAL(27, 627, 30), // "on_b_speed_slider_valueChanged"
+QT_MOC_LITERAL(28, 658, 21), // "on_rfrom_valueChanged"
+QT_MOC_LITERAL(29, 680, 4), // "arg1"
+QT_MOC_LITERAL(30, 685, 19), // "on_rto_valueChanged"
+QT_MOC_LITERAL(31, 705, 21), // "on_gfrom_valueChanged"
+QT_MOC_LITERAL(32, 727, 19), // "on_gto_valueChanged"
+QT_MOC_LITERAL(33, 747, 21), // "on_bfrom_valueChanged"
+QT_MOC_LITERAL(34, 769, 19), // "on_bto_valueChanged"
+QT_MOC_LITERAL(35, 789, 29), // "on_serial_send_button_clicked"
+QT_MOC_LITERAL(36, 819, 4), // "ping"
+QT_MOC_LITERAL(37, 824, 10), // "check_ping"
+QT_MOC_LITERAL(38, 835, 29), // "on_irc_connect_button_clicked"
+QT_MOC_LITERAL(39, 865, 30) // "on_server_start_button_clicked"
},
- "controllerWindow\0on_connect_button_clicked\0"
- "\0on_disconnect_button_clicked\0"
+ "controllerWindow\0cmdrecv\0\0cmd\0"
+ "on_connect_button_clicked\0"
+ "on_disconnect_button_clicked\0"
"on_refresh_port_button_clicked\0"
"on_reload_preset_button_clicked\0"
"on_r_slider_valueChanged\0value\0"
@@ -89,7 +97,9 @@ QT_MOC_LITERAL(32, 757, 19) // "on_bto_valueChanged"
"on_rfrom_valueChanged\0arg1\0"
"on_rto_valueChanged\0on_gfrom_valueChanged\0"
"on_gto_valueChanged\0on_bfrom_valueChanged\0"
- "on_bto_valueChanged"
+ "on_bto_valueChanged\0on_serial_send_button_clicked\0"
+ "ping\0check_ping\0on_irc_connect_button_clicked\0"
+ "on_server_start_button_clicked"
};
#undef QT_MOC_LITERAL
@@ -99,7 +109,7 @@ static const uint qt_meta_data_controllerWindow[] = {
7, // revision
0, // classname
0, 0, // classinfo
- 28, 14, // methods
+ 34, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
@@ -107,64 +117,76 @@ static const uint qt_meta_data_controllerWindow[] = {
0, // signalCount
// slots: name, argc, parameters, tag, flags
- 1, 0, 154, 2, 0x08 /* Private */,
- 3, 0, 155, 2, 0x08 /* Private */,
- 4, 0, 156, 2, 0x08 /* Private */,
- 5, 0, 157, 2, 0x08 /* Private */,
- 6, 1, 158, 2, 0x08 /* Private */,
- 8, 1, 161, 2, 0x08 /* Private */,
- 9, 1, 164, 2, 0x08 /* Private */,
- 10, 0, 167, 2, 0x08 /* Private */,
- 11, 0, 168, 2, 0x08 /* Private */,
- 12, 0, 169, 2, 0x08 /* Private */,
- 13, 0, 170, 2, 0x08 /* Private */,
- 14, 0, 171, 2, 0x08 /* Private */,
- 15, 1, 172, 2, 0x08 /* Private */,
- 17, 0, 175, 2, 0x08 /* Private */,
- 18, 0, 176, 2, 0x08 /* Private */,
- 19, 0, 177, 2, 0x08 /* Private */,
- 20, 0, 178, 2, 0x08 /* Private */,
- 21, 0, 179, 2, 0x08 /* Private */,
- 22, 0, 180, 2, 0x08 /* Private */,
- 23, 1, 181, 2, 0x08 /* Private */,
- 24, 1, 184, 2, 0x08 /* Private */,
- 25, 1, 187, 2, 0x08 /* Private */,
- 26, 1, 190, 2, 0x08 /* Private */,
- 28, 1, 193, 2, 0x08 /* Private */,
- 29, 1, 196, 2, 0x08 /* Private */,
- 30, 1, 199, 2, 0x08 /* Private */,
- 31, 1, 202, 2, 0x08 /* Private */,
- 32, 1, 205, 2, 0x08 /* Private */,
+ 1, 1, 184, 2, 0x0a /* Public */,
+ 4, 0, 187, 2, 0x08 /* Private */,
+ 5, 0, 188, 2, 0x08 /* Private */,
+ 6, 0, 189, 2, 0x08 /* Private */,
+ 7, 0, 190, 2, 0x08 /* Private */,
+ 8, 1, 191, 2, 0x08 /* Private */,
+ 10, 1, 194, 2, 0x08 /* Private */,
+ 11, 1, 197, 2, 0x08 /* Private */,
+ 12, 0, 200, 2, 0x08 /* Private */,
+ 13, 0, 201, 2, 0x08 /* Private */,
+ 14, 0, 202, 2, 0x08 /* Private */,
+ 15, 0, 203, 2, 0x08 /* Private */,
+ 16, 0, 204, 2, 0x08 /* Private */,
+ 17, 1, 205, 2, 0x08 /* Private */,
+ 19, 0, 208, 2, 0x08 /* Private */,
+ 20, 0, 209, 2, 0x08 /* Private */,
+ 21, 0, 210, 2, 0x08 /* Private */,
+ 22, 0, 211, 2, 0x08 /* Private */,
+ 23, 0, 212, 2, 0x08 /* Private */,
+ 24, 0, 213, 2, 0x08 /* Private */,
+ 25, 1, 214, 2, 0x08 /* Private */,
+ 26, 1, 217, 2, 0x08 /* Private */,
+ 27, 1, 220, 2, 0x08 /* Private */,
+ 28, 1, 223, 2, 0x08 /* Private */,
+ 30, 1, 226, 2, 0x08 /* Private */,
+ 31, 1, 229, 2, 0x08 /* Private */,
+ 32, 1, 232, 2, 0x08 /* Private */,
+ 33, 1, 235, 2, 0x08 /* Private */,
+ 34, 1, 238, 2, 0x08 /* Private */,
+ 35, 0, 241, 2, 0x08 /* Private */,
+ 36, 0, 242, 2, 0x08 /* Private */,
+ 37, 0, 243, 2, 0x08 /* Private */,
+ 38, 0, 244, 2, 0x08 /* Private */,
+ 39, 0, 245, 2, 0x08 /* Private */,
// slots: parameters
+ QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
- QMetaType::Void, QMetaType::Int, 7,
- QMetaType::Void, QMetaType::Int, 7,
- QMetaType::Void, QMetaType::Int, 7,
+ QMetaType::Void, QMetaType::Int, 9,
+ QMetaType::Void, QMetaType::Int, 9,
+ QMetaType::Void, QMetaType::Int, 9,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
- QMetaType::Void, QMetaType::Int, 16,
+ QMetaType::Void, QMetaType::Int, 18,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
- QMetaType::Void, QMetaType::Int, 7,
- QMetaType::Void, QMetaType::Int, 7,
- QMetaType::Void, QMetaType::Int, 7,
- QMetaType::Void, QMetaType::Int, 27,
- QMetaType::Void, QMetaType::Int, 27,
- QMetaType::Void, QMetaType::Int, 27,
- QMetaType::Void, QMetaType::Int, 27,
- QMetaType::Void, QMetaType::Int, 27,
- QMetaType::Void, QMetaType::Int, 27,
+ QMetaType::Void, QMetaType::Int, 9,
+ QMetaType::Void, QMetaType::Int, 9,
+ QMetaType::Void, QMetaType::Int, 9,
+ QMetaType::Void, QMetaType::Int, 29,
+ QMetaType::Void, QMetaType::Int, 29,
+ QMetaType::Void, QMetaType::Int, 29,
+ QMetaType::Void, QMetaType::Int, 29,
+ QMetaType::Void, QMetaType::Int, 29,
+ QMetaType::Void, QMetaType::Int, 29,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void,
0 // eod
};
@@ -175,34 +197,40 @@ void controllerWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int
controllerWindow *_t = static_cast<controllerWindow *>(_o);
Q_UNUSED(_t)
switch (_id) {
- case 0: _t->on_connect_button_clicked(); break;
- case 1: _t->on_disconnect_button_clicked(); break;
- case 2: _t->on_refresh_port_button_clicked(); break;
- case 3: _t->on_reload_preset_button_clicked(); break;
- case 4: _t->on_r_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 5: _t->on_g_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 6: _t->on_b_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 7: _t->on_red_button_clicked(); break;
- case 8: _t->on_green_button_clicked(); break;
- case 9: _t->on_blue_button_clicked(); break;
- case 10: _t->on_off_button_clicked(); break;
- case 11: _t->on_set_preset_button_clicked(); break;
- case 12: _t->on_presets_dropdown_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 13: _t->on_preset_save_button_clicked(); break;
- case 14: _t->on_preset_delete_button_clicked(); break;
- case 15: _t->on_red_fade_button_clicked(); break;
- case 16: _t->on_green_fade_button_clicked(); break;
- case 17: _t->on_blue_fade_button_clicked(); break;
- case 18: _t->on_speed_button_clicked(); break;
- case 19: _t->on_r_speed_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 20: _t->on_g_speed_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 21: _t->on_b_speed_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 22: _t->on_rfrom_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 23: _t->on_rto_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 24: _t->on_gfrom_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 25: _t->on_gto_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 26: _t->on_bfrom_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
- case 27: _t->on_bto_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 0: _t->cmdrecv((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 1: _t->on_connect_button_clicked(); break;
+ case 2: _t->on_disconnect_button_clicked(); break;
+ case 3: _t->on_refresh_port_button_clicked(); break;
+ case 4: _t->on_reload_preset_button_clicked(); break;
+ case 5: _t->on_r_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: _t->on_g_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 7: _t->on_b_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 8: _t->on_red_button_clicked(); break;
+ case 9: _t->on_green_button_clicked(); break;
+ case 10: _t->on_blue_button_clicked(); break;
+ case 11: _t->on_off_button_clicked(); break;
+ case 12: _t->on_set_preset_button_clicked(); break;
+ case 13: _t->on_presets_dropdown_currentIndexChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 14: _t->on_preset_save_button_clicked(); break;
+ case 15: _t->on_preset_delete_button_clicked(); break;
+ case 16: _t->on_red_fade_button_clicked(); break;
+ case 17: _t->on_green_fade_button_clicked(); break;
+ case 18: _t->on_blue_fade_button_clicked(); break;
+ case 19: _t->on_speed_button_clicked(); break;
+ case 20: _t->on_r_speed_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 21: _t->on_g_speed_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: _t->on_b_speed_slider_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: _t->on_rfrom_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 24: _t->on_rto_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 25: _t->on_gfrom_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 26: _t->on_gto_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 27: _t->on_bfrom_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 28: _t->on_bto_valueChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 29: _t->on_serial_send_button_clicked(); break;
+ case 30: _t->ping(); break;
+ case 31: _t->check_ping(); break;
+ case 32: _t->on_irc_connect_button_clicked(); break;
+ case 33: _t->on_server_start_button_clicked(); break;
default: ;
}
}
@@ -233,13 +261,13 @@ int controllerWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
- if (_id < 28)
+ if (_id < 34)
qt_static_metacall(this, _c, _id, _a);
- _id -= 28;
+ _id -= 34;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
- if (_id < 28)
+ if (_id < 34)
*reinterpret_cast<int*>(_a[0]) = -1;
- _id -= 28;
+ _id -= 34;
}
return _id;
}
diff --git a/qt/build-RGBController-Desktop-Debug/moc_irc.cpp b/qt/build-RGBController-Desktop-Debug/moc_irc.cpp
new file mode 100644
index 0000000..4756835
--- /dev/null
+++ b/qt/build-RGBController-Desktop-Debug/moc_irc.cpp
@@ -0,0 +1,148 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'irc.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.8.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../RGBController/irc.h"
+#include <QtCore/qbytearray.h>
+#include <QtCore/qmetatype.h>
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'irc.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.8.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_irc_t {
+ QByteArrayData data[8];
+ char stringdata0[37];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_irc_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_irc_t qt_meta_stringdata_irc = {
+ {
+QT_MOC_LITERAL(0, 0, 3), // "irc"
+QT_MOC_LITERAL(1, 4, 7), // "sendcmd"
+QT_MOC_LITERAL(2, 12, 0), // ""
+QT_MOC_LITERAL(3, 13, 3), // "cmd"
+QT_MOC_LITERAL(4, 17, 4), // "read"
+QT_MOC_LITERAL(5, 22, 3), // "con"
+QT_MOC_LITERAL(6, 26, 6), // "handle"
+QT_MOC_LITERAL(7, 33, 3) // "str"
+
+ },
+ "irc\0sendcmd\0\0cmd\0read\0con\0handle\0str"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_irc[] = {
+
+ // content:
+ 7, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 4, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 1, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 1, 34, 2, 0x06 /* Public */,
+
+ // slots: name, argc, parameters, tag, flags
+ 4, 0, 37, 2, 0x08 /* Private */,
+ 5, 0, 38, 2, 0x08 /* Private */,
+ 6, 1, 39, 2, 0x08 /* Private */,
+
+ // signals: parameters
+ QMetaType::Void, QMetaType::QString, 3,
+
+ // slots: parameters
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::QString, 7,
+
+ 0 // eod
+};
+
+void irc::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ irc *_t = static_cast<irc *>(_o);
+ Q_UNUSED(_t)
+ switch (_id) {
+ case 0: _t->sendcmd((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 1: _t->read(); break;
+ case 2: _t->con(); break;
+ case 3: _t->handle((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast<int *>(_a[0]);
+ void **func = reinterpret_cast<void **>(_a[1]);
+ {
+ typedef void (irc::*_t)(QString );
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&irc::sendcmd)) {
+ *result = 0;
+ return;
+ }
+ }
+ }
+}
+
+const QMetaObject irc::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_irc.data,
+ qt_meta_data_irc, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
+};
+
+
+const QMetaObject *irc::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *irc::qt_metacast(const char *_clname)
+{
+ if (!_clname) return Q_NULLPTR;
+ if (!strcmp(_clname, qt_meta_stringdata_irc.stringdata0))
+ return static_cast<void*>(const_cast< irc*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int irc::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 4)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 4;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 4)
+ *reinterpret_cast<int*>(_a[0]) = -1;
+ _id -= 4;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void irc::sendcmd(QString _t1)
+{
+ void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/qt/build-RGBController-Desktop-Debug/moc_server.cpp b/qt/build-RGBController-Desktop-Debug/moc_server.cpp
new file mode 100644
index 0000000..9cc6f2b
--- /dev/null
+++ b/qt/build-RGBController-Desktop-Debug/moc_server.cpp
@@ -0,0 +1,139 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'server.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.8.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../RGBController/server.h"
+#include <QtCore/qbytearray.h>
+#include <QtCore/qmetatype.h>
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'server.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.8.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_server_t {
+ QByteArrayData data[5];
+ char stringdata0[35];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_server_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_server_t qt_meta_stringdata_server = {
+ {
+QT_MOC_LITERAL(0, 0, 6), // "server"
+QT_MOC_LITERAL(1, 7, 7), // "sendcmd"
+QT_MOC_LITERAL(2, 15, 0), // ""
+QT_MOC_LITERAL(3, 16, 3), // "cmd"
+QT_MOC_LITERAL(4, 20, 14) // "new_connection"
+
+ },
+ "server\0sendcmd\0\0cmd\0new_connection"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_server[] = {
+
+ // content:
+ 7, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 2, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 1, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 1, 24, 2, 0x06 /* Public */,
+
+ // slots: name, argc, parameters, tag, flags
+ 4, 0, 27, 2, 0x08 /* Private */,
+
+ // signals: parameters
+ QMetaType::Void, QMetaType::QString, 3,
+
+ // slots: parameters
+ QMetaType::Void,
+
+ 0 // eod
+};
+
+void server::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ server *_t = static_cast<server *>(_o);
+ Q_UNUSED(_t)
+ switch (_id) {
+ case 0: _t->sendcmd((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 1: _t->new_connection(); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast<int *>(_a[0]);
+ void **func = reinterpret_cast<void **>(_a[1]);
+ {
+ typedef void (server::*_t)(QString );
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&server::sendcmd)) {
+ *result = 0;
+ return;
+ }
+ }
+ }
+}
+
+const QMetaObject server::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_server.data,
+ qt_meta_data_server, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
+};
+
+
+const QMetaObject *server::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *server::qt_metacast(const char *_clname)
+{
+ if (!_clname) return Q_NULLPTR;
+ if (!strcmp(_clname, qt_meta_stringdata_server.stringdata0))
+ return static_cast<void*>(const_cast< server*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int server::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 2)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 2;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 2)
+ *reinterpret_cast<int*>(_a[0]) = -1;
+ _id -= 2;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void server::sendcmd(QString _t1)
+{
+ void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/qt/build-RGBController-Desktop-Debug/ui_controllerwindow.h b/qt/build-RGBController-Desktop-Debug/ui_controllerwindow.h
index 5c2c857..8b77987 100644
--- a/qt/build-RGBController-Desktop-Debug/ui_controllerwindow.h
+++ b/qt/build-RGBController-Desktop-Debug/ui_controllerwindow.h
@@ -14,6 +14,7 @@
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QComboBox>
+#include <QtWidgets/QFormLayout>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
@@ -22,6 +23,7 @@
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSlider>
#include <QtWidgets/QSpinBox>
+#include <QtWidgets/QTabWidget>
#include <QtWidgets/QTextEdit>
#include <QtWidgets/QWidget>
@@ -32,366 +34,579 @@ class Ui_controllerWindow
public:
QWidget *centralWidget;
QGridLayout *gridLayout_2;
- QPushButton *reload_preset_button;
- QPushButton *off_button;
- QPushButton *preset_delete_button;
- QLabel *presets_label;
- QPushButton *disconnect_button;
+ QTabWidget *display_tab;
+ QWidget *status_tab;
+ QFormLayout *formLayout;
+ QGridLayout *gridLayout_5;
+ QLabel *arduino_port_label;
+ QPushButton *refresh_port_button;
+ QLabel *status_label;
QLabel *arduino_status_label;
QComboBox *arduino_port_dropdown;
- QSlider *b_slider;
- QSlider *b_speed_slider;
- QTextEdit *info_log_textarea;
- QLineEdit *preset_name_textbox;
- QComboBox *presets_dropdown;
- QLabel *info_log_label;
- QPushButton *green_button;
- QPushButton *refresh_port_button;
- QSlider *g_speed_slider;
+ QPushButton *disconnect_button;
+ QPushButton *connect_button;
+ QWidget *color_tab;
+ QFormLayout *formLayout_2;
QLabel *rgb_label;
- QLabel *status_label;
- QPushButton *preset_save_button;
- QSlider *g_slider;
- QSlider *r_speed_slider;
- QLabel *g_speed_label;
+ QSlider *r_slider;
QPushButton *red_button;
+ QSlider *g_slider;
+ QPushButton *green_button;
+ QSlider *b_slider;
QPushButton *blue_button;
- QPushButton *connect_button;
- QLabel *r_speed_label;
- QSlider *r_slider;
- QPushButton *set_preset_button;
+ QPushButton *off_button;
+ QWidget *fade_tab;
+ QFormLayout *formLayout_3;
QGridLayout *gridLayout;
QPushButton *blue_fade_button;
- QSpinBox *bfrom;
- QSpinBox *rto;
QSpinBox *gfrom;
- QLabel *r_to_label;
- QSpinBox *rfrom;
QLabel *g_to_label;
+ QLabel *r_to_label;
QSpinBox *bto;
- QSpinBox *gto;
+ QSpinBox *rto;
+ QSpinBox *bfrom;
QPushButton *green_fade_button;
+ QSlider *b_speed_slider;
+ QSlider *g_speed_slider;
+ QSpinBox *gto;
+ QSpinBox *rfrom;
QPushButton *red_fade_button;
QLabel *_to_label;
QLabel *fade_label;
- QLabel *arduino_port_label;
+ QSlider *r_speed_slider;
+ QSlider *speed_slider;
+ QLabel *r_speed_label;
+ QLabel *g_speed_label;
QLabel *b_speed_label;
QPushButton *speed_button;
- QSlider *speed_slider;
+ QWidget *presets_tab;
+ QFormLayout *formLayout_4;
+ QLabel *presets_label;
+ QComboBox *presets_dropdown;
+ QPushButton *set_preset_button;
+ QPushButton *reload_preset_button;
+ QLineEdit *preset_name_textbox;
+ QPushButton *preset_save_button;
+ QPushButton *preset_delete_button;
+ QWidget *irc_tab;
+ QFormLayout *formLayout_5;
+ QLabel *irc_bot_label;
+ QLabel *irc_server_label;
+ QLineEdit *irc_server_input;
+ QSpinBox *irc_bot_spinbox;
+ QLabel *irc_channel_label;
+ QLineEdit *irc_channel_input;
+ QLabel *irc_name_label;
+ QLineEdit *irc_name_input;
+ QLabel *irc_port_label;
+ QPushButton *irc_connect_button;
+ QWidget *server_tab;
+ QGridLayout *gridLayout_6;
+ QFormLayout *server_tab_layout;
+ QPushButton *server_start_button;
+ QWidget *log_tab;
+ QGridLayout *gridLayout_3;
+ QLineEdit *serial_input;
+ QPushButton *serial_send_button;
+ QTextEdit *info_log_textarea;
+ QLabel *info_log_label;
+ QLabel *ping_count_label;
void setupUi(QMainWindow *controllerWindow)
{
if (controllerWindow->objectName().isEmpty())
controllerWindow->setObjectName(QStringLiteral("controllerWindow"));
controllerWindow->setWindowModality(Qt::WindowModal);
- controllerWindow->resize(232, 629);
+ controllerWindow->resize(433, 254);
centralWidget = new QWidget(controllerWindow);
centralWidget->setObjectName(QStringLiteral("centralWidget"));
gridLayout_2 = new QGridLayout(centralWidget);
gridLayout_2->setSpacing(6);
gridLayout_2->setContentsMargins(11, 11, 11, 11);
gridLayout_2->setObjectName(QStringLiteral("gridLayout_2"));
- reload_preset_button = new QPushButton(centralWidget);
- reload_preset_button->setObjectName(QStringLiteral("reload_preset_button"));
+ display_tab = new QTabWidget(centralWidget);
+ display_tab->setObjectName(QStringLiteral("display_tab"));
+ status_tab = new QWidget();
+ status_tab->setObjectName(QStringLiteral("status_tab"));
+ formLayout = new QFormLayout(status_tab);
+ formLayout->setSpacing(6);
+ formLayout->setContentsMargins(11, 11, 11, 11);
+ formLayout->setObjectName(QStringLiteral("formLayout"));
+ gridLayout_5 = new QGridLayout();
+ gridLayout_5->setSpacing(6);
+ gridLayout_5->setObjectName(QStringLiteral("gridLayout_5"));
+ arduino_port_label = new QLabel(status_tab);
+ arduino_port_label->setObjectName(QStringLiteral("arduino_port_label"));
+ arduino_port_label->setMinimumSize(QSize(120, 0));
- gridLayout_2->addWidget(reload_preset_button, 11, 0, 1, 1);
+ gridLayout_5->addWidget(arduino_port_label, 1, 0, 1, 1);
- off_button = new QPushButton(centralWidget);
- off_button->setObjectName(QStringLiteral("off_button"));
+ refresh_port_button = new QPushButton(status_tab);
+ refresh_port_button->setObjectName(QStringLiteral("refresh_port_button"));
- gridLayout_2->addWidget(off_button, 8, 1, 1, 1);
+ gridLayout_5->addWidget(refresh_port_button, 2, 1, 1, 1);
- preset_delete_button = new QPushButton(centralWidget);
- preset_delete_button->setObjectName(QStringLiteral("preset_delete_button"));
+ status_label = new QLabel(status_tab);
+ status_label->setObjectName(QStringLiteral("status_label"));
- gridLayout_2->addWidget(preset_delete_button, 13, 1, 1, 1);
+ gridLayout_5->addWidget(status_label, 0, 0, 1, 1);
- presets_label = new QLabel(centralWidget);
- presets_label->setObjectName(QStringLiteral("presets_label"));
+ arduino_status_label = new QLabel(status_tab);
+ arduino_status_label->setObjectName(QStringLiteral("arduino_status_label"));
+
+ gridLayout_5->addWidget(arduino_status_label, 0, 1, 1, 1);
- gridLayout_2->addWidget(presets_label, 9, 0, 1, 1);
+ arduino_port_dropdown = new QComboBox(status_tab);
+ arduino_port_dropdown->setObjectName(QStringLiteral("arduino_port_dropdown"));
+
+ gridLayout_5->addWidget(arduino_port_dropdown, 1, 1, 1, 1);
- disconnect_button = new QPushButton(centralWidget);
+ disconnect_button = new QPushButton(status_tab);
disconnect_button->setObjectName(QStringLiteral("disconnect_button"));
- gridLayout_2->addWidget(disconnect_button, 3, 1, 1, 1);
+ gridLayout_5->addWidget(disconnect_button, 3, 1, 1, 1);
- arduino_status_label = new QLabel(centralWidget);
- arduino_status_label->setObjectName(QStringLiteral("arduino_status_label"));
+ connect_button = new QPushButton(status_tab);
+ connect_button->setObjectName(QStringLiteral("connect_button"));
- gridLayout_2->addWidget(arduino_status_label, 0, 1, 1, 1);
+ gridLayout_5->addWidget(connect_button, 3, 0, 1, 1);
- arduino_port_dropdown = new QComboBox(centralWidget);
- arduino_port_dropdown->setObjectName(QStringLiteral("arduino_port_dropdown"));
- gridLayout_2->addWidget(arduino_port_dropdown, 1, 1, 1, 1);
+ formLayout->setLayout(0, QFormLayout::LabelRole, gridLayout_5);
+
+ display_tab->addTab(status_tab, QString());
+ color_tab = new QWidget();
+ color_tab->setObjectName(QStringLiteral("color_tab"));
+ formLayout_2 = new QFormLayout(color_tab);
+ formLayout_2->setSpacing(6);
+ formLayout_2->setContentsMargins(11, 11, 11, 11);
+ formLayout_2->setObjectName(QStringLiteral("formLayout_2"));
+ rgb_label = new QLabel(color_tab);
+ rgb_label->setObjectName(QStringLiteral("rgb_label"));
+
+ formLayout_2->setWidget(0, QFormLayout::LabelRole, rgb_label);
+
+ r_slider = new QSlider(color_tab);
+ r_slider->setObjectName(QStringLiteral("r_slider"));
+ r_slider->setMinimumSize(QSize(120, 0));
+ r_slider->setMaximumSize(QSize(120, 16777215));
+ r_slider->setMaximum(255);
+ r_slider->setOrientation(Qt::Horizontal);
+
+ formLayout_2->setWidget(1, QFormLayout::LabelRole, r_slider);
+
+ red_button = new QPushButton(color_tab);
+ red_button->setObjectName(QStringLiteral("red_button"));
+ red_button->setMaximumSize(QSize(90, 16777215));
+
+ formLayout_2->setWidget(1, QFormLayout::FieldRole, red_button);
- b_slider = new QSlider(centralWidget);
+ g_slider = new QSlider(color_tab);
+ g_slider->setObjectName(QStringLiteral("g_slider"));
+ g_slider->setMinimumSize(QSize(120, 0));
+ g_slider->setMaximumSize(QSize(120, 16777215));
+ g_slider->setMaximum(255);
+ g_slider->setOrientation(Qt::Horizontal);
+
+ formLayout_2->setWidget(2, QFormLayout::LabelRole, g_slider);
+
+ green_button = new QPushButton(color_tab);
+ green_button->setObjectName(QStringLiteral("green_button"));
+ green_button->setMaximumSize(QSize(90, 16777215));
+
+ formLayout_2->setWidget(2, QFormLayout::FieldRole, green_button);
+
+ b_slider = new QSlider(color_tab);
b_slider->setObjectName(QStringLiteral("b_slider"));
b_slider->setMinimumSize(QSize(120, 0));
b_slider->setMaximumSize(QSize(120, 16777215));
b_slider->setMaximum(255);
b_slider->setOrientation(Qt::Horizontal);
- gridLayout_2->addWidget(b_slider, 7, 0, 1, 1);
+ formLayout_2->setWidget(3, QFormLayout::LabelRole, b_slider);
- b_speed_slider = new QSlider(centralWidget);
- b_speed_slider->setObjectName(QStringLiteral("b_speed_slider"));
- b_speed_slider->setMinimum(1);
- b_speed_slider->setMaximum(500);
- b_speed_slider->setOrientation(Qt::Horizontal);
+ blue_button = new QPushButton(color_tab);
+ blue_button->setObjectName(QStringLiteral("blue_button"));
+ blue_button->setMaximumSize(QSize(90, 16777215));
- gridLayout_2->addWidget(b_speed_slider, 17, 0, 1, 1);
+ formLayout_2->setWidget(3, QFormLayout::FieldRole, blue_button);
- info_log_textarea = new QTextEdit(centralWidget);
- info_log_textarea->setObjectName(QStringLiteral("info_log_textarea"));
+ off_button = new QPushButton(color_tab);
+ off_button->setObjectName(QStringLiteral("off_button"));
+ off_button->setMaximumSize(QSize(90, 16777215));
+
+ formLayout_2->setWidget(4, QFormLayout::FieldRole, off_button);
+
+ display_tab->addTab(color_tab, QString());
+ rgb_label->raise();
+ r_slider->raise();
+ g_slider->raise();
+ b_slider->raise();
+ red_button->raise();
+ green_button->raise();
+ blue_button->raise();
+ off_button->raise();
+ fade_tab = new QWidget();
+ fade_tab->setObjectName(QStringLiteral("fade_tab"));
+ formLayout_3 = new QFormLayout(fade_tab);
+ formLayout_3->setSpacing(6);
+ formLayout_3->setContentsMargins(11, 11, 11, 11);
+ formLayout_3->setObjectName(QStringLiteral("formLayout_3"));
+ gridLayout = new QGridLayout();
+ gridLayout->setSpacing(6);
+ gridLayout->setObjectName(QStringLiteral("gridLayout"));
+ blue_fade_button = new QPushButton(fade_tab);
+ blue_fade_button->setObjectName(QStringLiteral("blue_fade_button"));
- gridLayout_2->addWidget(info_log_textarea, 20, 0, 1, 2);
+ gridLayout->addWidget(blue_fade_button, 4, 3, 1, 1);
- preset_name_textbox = new QLineEdit(centralWidget);
- preset_name_textbox->setObjectName(QStringLiteral("preset_name_textbox"));
+ gfrom = new QSpinBox(fade_tab);
+ gfrom->setObjectName(QStringLiteral("gfrom"));
+ gfrom->setMaximumSize(QSize(50, 16777215));
+ gfrom->setMaximum(255);
- gridLayout_2->addWidget(preset_name_textbox, 12, 0, 1, 1);
+ gridLayout->addWidget(gfrom, 3, 0, 1, 1);
- presets_dropdown = new QComboBox(centralWidget);
- presets_dropdown->setObjectName(QStringLiteral("presets_dropdown"));
- presets_dropdown->setMinimumSize(QSize(120, 0));
+ g_to_label = new QLabel(fade_tab);
+ g_to_label->setObjectName(QStringLiteral("g_to_label"));
- gridLayout_2->addWidget(presets_dropdown, 10, 0, 1, 1);
+ gridLayout->addWidget(g_to_label, 3, 1, 1, 1);
- info_log_label = new QLabel(centralWidget);
- info_log_label->setObjectName(QStringLiteral("info_log_label"));
+ r_to_label = new QLabel(fade_tab);
+ r_to_label->setObjectName(QStringLiteral("r_to_label"));
- gridLayout_2->addWidget(info_log_label, 19, 0, 1, 1);
+ gridLayout->addWidget(r_to_label, 1, 1, 1, 1);
- green_button = new QPushButton(centralWidget);
- green_button->setObjectName(QStringLiteral("green_button"));
+ bto = new QSpinBox(fade_tab);
+ bto->setObjectName(QStringLiteral("bto"));
+ bto->setMaximumSize(QSize(50, 16777215));
+ bto->setMaximum(255);
- gridLayout_2->addWidget(green_button, 6, 1, 1, 1);
+ gridLayout->addWidget(bto, 4, 2, 1, 1);
- refresh_port_button = new QPushButton(centralWidget);
- refresh_port_button->setObjectName(QStringLiteral("refresh_port_button"));
+ rto = new QSpinBox(fade_tab);
+ rto->setObjectName(QStringLiteral("rto"));
+ rto->setMaximumSize(QSize(50, 16777215));
+ rto->setMaximum(255);
+
+ gridLayout->addWidget(rto, 1, 2, 1, 1);
+
+ bfrom = new QSpinBox(fade_tab);
+ bfrom->setObjectName(QStringLiteral("bfrom"));
+ bfrom->setMaximumSize(QSize(50, 16777215));
+ bfrom->setMaximum(255);
+
+ gridLayout->addWidget(bfrom, 4, 0, 1, 1);
+
+ green_fade_button = new QPushButton(fade_tab);
+ green_fade_button->setObjectName(QStringLiteral("green_fade_button"));
+
+ gridLayout->addWidget(green_fade_button, 3, 3, 1, 1);
+
+ b_speed_slider = new QSlider(fade_tab);
+ b_speed_slider->setObjectName(QStringLiteral("b_speed_slider"));
+ b_speed_slider->setMinimum(1);
+ b_speed_slider->setMaximum(500);
+ b_speed_slider->setOrientation(Qt::Horizontal);
- gridLayout_2->addWidget(refresh_port_button, 2, 1, 1, 1);
+ gridLayout->addWidget(b_speed_slider, 7, 0, 1, 1);
- g_speed_slider = new QSlider(centralWidget);
+ g_speed_slider = new QSlider(fade_tab);
g_speed_slider->setObjectName(QStringLiteral("g_speed_slider"));
g_speed_slider->setMinimum(1);
g_speed_slider->setMaximum(500);
g_speed_slider->setOrientation(Qt::Horizontal);
- gridLayout_2->addWidget(g_speed_slider, 16, 0, 1, 1);
+ gridLayout->addWidget(g_speed_slider, 6, 0, 1, 1);
- rgb_label = new QLabel(centralWidget);
- rgb_label->setObjectName(QStringLiteral("rgb_label"));
+ gto = new QSpinBox(fade_tab);
+ gto->setObjectName(QStringLiteral("gto"));
+ gto->setMaximumSize(QSize(50, 16777215));
+ gto->setMaximum(255);
- gridLayout_2->addWidget(rgb_label, 4, 0, 1, 1);
+ gridLayout->addWidget(gto, 3, 2, 1, 1);
- status_label = new QLabel(centralWidget);
- status_label->setObjectName(QStringLiteral("status_label"));
+ rfrom = new QSpinBox(fade_tab);
+ rfrom->setObjectName(QStringLiteral("rfrom"));
+ rfrom->setMaximumSize(QSize(50, 16777215));
+ rfrom->setMaximum(255);
- gridLayout_2->addWidget(status_label, 0, 0, 1, 1);
+ gridLayout->addWidget(rfrom, 1, 0, 1, 1);
- preset_save_button = new QPushButton(centralWidget);
- preset_save_button->setObjectName(QStringLiteral("preset_save_button"));
+ red_fade_button = new QPushButton(fade_tab);
+ red_fade_button->setObjectName(QStringLiteral("red_fade_button"));
- gridLayout_2->addWidget(preset_save_button, 12, 1, 1, 1);
+ gridLayout->addWidget(red_fade_button, 1, 3, 1, 1);
- g_slider = new QSlider(centralWidget);
- g_slider->setObjectName(QStringLiteral("g_slider"));
- g_slider->setMinimumSize(QSize(120, 0));
- g_slider->setMaximumSize(QSize(120, 16777215));
- g_slider->setMaximum(255);
- g_slider->setOrientation(Qt::Horizontal);
+ _to_label = new QLabel(fade_tab);
+ _to_label->setObjectName(QStringLiteral("_to_label"));
- gridLayout_2->addWidget(g_slider, 6, 0, 1, 1);
+ gridLayout->addWidget(_to_label, 4, 1, 1, 1);
- r_speed_slider = new QSlider(centralWidget);
+ fade_label = new QLabel(fade_tab);
+ fade_label->setObjectName(QStringLiteral("fade_label"));
+
+ gridLayout->addWidget(fade_label, 0, 0, 1, 1);
+
+ r_speed_slider = new QSlider(fade_tab);
r_speed_slider->setObjectName(QStringLiteral("r_speed_slider"));
r_speed_slider->setMinimum(1);
- r_speed_slider->setMaximum(500);
+ r_speed_slider->setMaximum(100);
r_speed_slider->setOrientation(Qt::Horizontal);
- gridLayout_2->addWidget(r_speed_slider, 15, 0, 1, 1);
+ gridLayout->addWidget(r_speed_slider, 5, 0, 1, 1);
+
+ speed_slider = new QSlider(fade_tab);
+ speed_slider->setObjectName(QStringLiteral("speed_slider"));
+ speed_slider->setMinimum(10);
+ speed_slider->setMaximum(500);
+ speed_slider->setOrientation(Qt::Horizontal);
+
+ gridLayout->addWidget(speed_slider, 8, 0, 1, 1);
+
+ r_speed_label = new QLabel(fade_tab);
+ r_speed_label->setObjectName(QStringLiteral("r_speed_label"));
+
+ gridLayout->addWidget(r_speed_label, 5, 2, 1, 1);
- g_speed_label = new QLabel(centralWidget);
+ g_speed_label = new QLabel(fade_tab);
g_speed_label->setObjectName(QStringLiteral("g_speed_label"));
- gridLayout_2->addWidget(g_speed_label, 16, 1, 1, 1);
+ gridLayout->addWidget(g_speed_label, 6, 2, 1, 1);
- red_button = new QPushButton(centralWidget);
- red_button->setObjectName(QStringLiteral("red_button"));
+ b_speed_label = new QLabel(fade_tab);
+ b_speed_label->setObjectName(QStringLiteral("b_speed_label"));
- gridLayout_2->addWidget(red_button, 5, 1, 1, 1);
+ gridLayout->addWidget(b_speed_label, 7, 2, 1, 1);
- blue_button = new QPushButton(centralWidget);
- blue_button->setObjectName(QStringLiteral("blue_button"));
+ speed_button = new QPushButton(fade_tab);
+ speed_button->setObjectName(QStringLiteral("speed_button"));
- gridLayout_2->addWidget(blue_button, 7, 1, 1, 1);
+ gridLayout->addWidget(speed_button, 8, 2, 1, 1);
- connect_button = new QPushButton(centralWidget);
- connect_button->setObjectName(QStringLiteral("connect_button"));
- gridLayout_2->addWidget(connect_button, 3, 0, 1, 1);
+ formLayout_3->setLayout(0, QFormLayout::LabelRole, gridLayout);
- r_speed_label = new QLabel(centralWidget);
- r_speed_label->setObjectName(QStringLiteral("r_speed_label"));
+ display_tab->addTab(fade_tab, QString());
+ presets_tab = new QWidget();
+ presets_tab->setObjectName(QStringLiteral("presets_tab"));
+ formLayout_4 = new QFormLayout(presets_tab);
+ formLayout_4->setSpacing(6);
+ formLayout_4->setContentsMargins(11, 11, 11, 11);
+ formLayout_4->setObjectName(QStringLiteral("formLayout_4"));
+ presets_label = new QLabel(presets_tab);
+ presets_label->setObjectName(QStringLiteral("presets_label"));
- gridLayout_2->addWidget(r_speed_label, 15, 1, 1, 1);
+ formLayout_4->setWidget(0, QFormLayout::LabelRole, presets_label);
- r_slider = new QSlider(centralWidget);
- r_slider->setObjectName(QStringLiteral("r_slider"));
- r_slider->setMinimumSize(QSize(120, 0));
- r_slider->setMaximumSize(QSize(120, 16777215));
- r_slider->setMaximum(255);
- r_slider->setOrientation(Qt::Horizontal);
+ presets_dropdown = new QComboBox(presets_tab);
+ presets_dropdown->setObjectName(QStringLiteral("presets_dropdown"));
+ presets_dropdown->setMinimumSize(QSize(120, 0));
- gridLayout_2->addWidget(r_slider, 5, 0, 1, 1);
+ formLayout_4->setWidget(1, QFormLayout::LabelRole, presets_dropdown);
- set_preset_button = new QPushButton(centralWidget);
+ set_preset_button = new QPushButton(presets_tab);
set_preset_button->setObjectName(QStringLiteral("set_preset_button"));
+ set_preset_button->setMaximumSize(QSize(90, 16777215));
- gridLayout_2->addWidget(set_preset_button, 10, 1, 1, 1);
+ formLayout_4->setWidget(1, QFormLayout::FieldRole, set_preset_button);
- gridLayout = new QGridLayout();
- gridLayout->setSpacing(6);
- gridLayout->setObjectName(QStringLiteral("gridLayout"));
- blue_fade_button = new QPushButton(centralWidget);
- blue_fade_button->setObjectName(QStringLiteral("blue_fade_button"));
+ reload_preset_button = new QPushButton(presets_tab);
+ reload_preset_button->setObjectName(QStringLiteral("reload_preset_button"));
- gridLayout->addWidget(blue_fade_button, 4, 3, 1, 1);
+ formLayout_4->setWidget(2, QFormLayout::LabelRole, reload_preset_button);
- bfrom = new QSpinBox(centralWidget);
- bfrom->setObjectName(QStringLiteral("bfrom"));
- bfrom->setMaximum(255);
+ preset_name_textbox = new QLineEdit(presets_tab);
+ preset_name_textbox->setObjectName(QStringLiteral("preset_name_textbox"));
- gridLayout->addWidget(bfrom, 4, 0, 1, 1);
+ formLayout_4->setWidget(3, QFormLayout::LabelRole, preset_name_textbox);
- rto = new QSpinBox(centralWidget);
- rto->setObjectName(QStringLiteral("rto"));
- rto->setMaximum(255);
+ preset_save_button = new QPushButton(presets_tab);
+ preset_save_button->setObjectName(QStringLiteral("preset_save_button"));
+ preset_save_button->setMaximumSize(QSize(90, 16777215));
- gridLayout->addWidget(rto, 1, 2, 1, 1);
+ formLayout_4->setWidget(3, QFormLayout::FieldRole, preset_save_button);
- gfrom = new QSpinBox(centralWidget);
- gfrom->setObjectName(QStringLiteral("gfrom"));
- gfrom->setMaximum(255);
+ preset_delete_button = new QPushButton(presets_tab);
+ preset_delete_button->setObjectName(QStringLiteral("preset_delete_button"));
+ preset_delete_button->setMaximumSize(QSize(90, 16777215));
- gridLayout->addWidget(gfrom, 3, 0, 1, 1);
+ formLayout_4->setWidget(4, QFormLayout::FieldRole, preset_delete_button);
- r_to_label = new QLabel(centralWidget);
- r_to_label->setObjectName(QStringLiteral("r_to_label"));
+ display_tab->addTab(presets_tab, QString());
+ irc_tab = new QWidget();
+ irc_tab->setObjectName(QStringLiteral("irc_tab"));
+ formLayout_5 = new QFormLayout(irc_tab);
+ formLayout_5->setSpacing(6);
+ formLayout_5->setContentsMargins(11, 11, 11, 11);
+ formLayout_5->setObjectName(QStringLiteral("formLayout_5"));
+ irc_bot_label = new QLabel(irc_tab);
+ irc_bot_label->setObjectName(QStringLiteral("irc_bot_label"));
- gridLayout->addWidget(r_to_label, 1, 1, 1, 1);
+ formLayout_5->setWidget(0, QFormLayout::LabelRole, irc_bot_label);
- rfrom = new QSpinBox(centralWidget);
- rfrom->setObjectName(QStringLiteral("rfrom"));
- rfrom->setMaximum(255);
+ irc_server_label = new QLabel(irc_tab);
+ irc_server_label->setObjectName(QStringLiteral("irc_server_label"));
- gridLayout->addWidget(rfrom, 1, 0, 1, 1);
+ formLayout_5->setWidget(2, QFormLayout::LabelRole, irc_server_label);
- g_to_label = new QLabel(centralWidget);
- g_to_label->setObjectName(QStringLiteral("g_to_label"));
+ irc_server_input = new QLineEdit(irc_tab);
+ irc_server_input->setObjectName(QStringLiteral("irc_server_input"));
- gridLayout->addWidget(g_to_label, 3, 1, 1, 1);
+ formLayout_5->setWidget(5, QFormLayout::LabelRole, irc_server_input);
- bto = new QSpinBox(centralWidget);
- bto->setObjectName(QStringLiteral("bto"));
- bto->setMaximum(255);
+ irc_bot_spinbox = new QSpinBox(irc_tab);
+ irc_bot_spinbox->setObjectName(QStringLiteral("irc_bot_spinbox"));
+ irc_bot_spinbox->setMaximumSize(QSize(50, 16777215));
+ irc_bot_spinbox->setMaximum(99999);
+ irc_bot_spinbox->setValue(6667);
- gridLayout->addWidget(bto, 4, 2, 1, 1);
+ formLayout_5->setWidget(5, QFormLayout::FieldRole, irc_bot_spinbox);
- gto = new QSpinBox(centralWidget);
- gto->setObjectName(QStringLiteral("gto"));
- gto->setMaximum(255);
+ irc_channel_label = new QLabel(irc_tab);
+ irc_channel_label->setObjectName(QStringLiteral("irc_channel_label"));
- gridLayout->addWidget(gto, 3, 2, 1, 1);
+ formLayout_5->setWidget(6, QFormLayout::LabelRole, irc_channel_label);
- green_fade_button = new QPushButton(centralWidget);
- green_fade_button->setObjectName(QStringLiteral("green_fade_button"));
+ irc_channel_input = new QLineEdit(irc_tab);
+ irc_channel_input->setObjectName(QStringLiteral("irc_channel_input"));
- gridLayout->addWidget(green_fade_button, 3, 3, 1, 1);
+ formLayout_5->setWidget(7, QFormLayout::LabelRole, irc_channel_input);
- red_fade_button = new QPushButton(centralWidget);
- red_fade_button->setObjectName(QStringLiteral("red_fade_button"));
+ irc_name_label = new QLabel(irc_tab);
+ irc_name_label->setObjectName(QStringLiteral("irc_name_label"));
- gridLayout->addWidget(red_fade_button, 1, 3, 1, 1);
+ formLayout_5->setWidget(8, QFormLayout::LabelRole, irc_name_label);
- _to_label = new QLabel(centralWidget);
- _to_label->setObjectName(QStringLiteral("_to_label"));
+ irc_name_input = new QLineEdit(irc_tab);
+ irc_name_input->setObjectName(QStringLiteral("irc_name_input"));
- gridLayout->addWidget(_to_label, 4, 1, 1, 1);
+ formLayout_5->setWidget(9, QFormLayout::LabelRole, irc_name_input);
- fade_label = new QLabel(centralWidget);
- fade_label->setObjectName(QStringLiteral("fade_label"));
+ irc_port_label = new QLabel(irc_tab);
+ irc_port_label->setObjectName(QStringLiteral("irc_port_label"));
- gridLayout->addWidget(fade_label, 0, 0, 1, 1);
+ formLayout_5->setWidget(2, QFormLayout::FieldRole, irc_port_label);
+ irc_connect_button = new QPushButton(irc_tab);
+ irc_connect_button->setObjectName(QStringLiteral("irc_connect_button"));
- gridLayout_2->addLayout(gridLayout, 14, 0, 1, 2);
+ formLayout_5->setWidget(10, QFormLayout::LabelRole, irc_connect_button);
- arduino_port_label = new QLabel(centralWidget);
- arduino_port_label->setObjectName(QStringLiteral("arduino_port_label"));
- arduino_port_label->setMinimumSize(QSize(120, 0));
+ display_tab->addTab(irc_tab, QString());
+ server_tab = new QWidget();
+ server_tab->setObjectName(QStringLiteral("server_tab"));
+ gridLayout_6 = new QGridLayout(server_tab);
+ gridLayout_6->setSpacing(6);
+ gridLayout_6->setContentsMargins(11, 11, 11, 11);
+ gridLayout_6->setObjectName(QStringLiteral("gridLayout_6"));
+ server_tab_layout = new QFormLayout();
+ server_tab_layout->setSpacing(6);
+ server_tab_layout->setObjectName(QStringLiteral("server_tab_layout"));
+ server_start_button = new QPushButton(server_tab);
+ server_start_button->setObjectName(QStringLiteral("server_start_button"));
- gridLayout_2->addWidget(arduino_port_label, 1, 0, 1, 1);
+ server_tab_layout->setWidget(0, QFormLayout::LabelRole, server_start_button);
- b_speed_label = new QLabel(centralWidget);
- b_speed_label->setObjectName(QStringLiteral("b_speed_label"));
- gridLayout_2->addWidget(b_speed_label, 17, 1, 1, 1);
+ gridLayout_6->addLayout(server_tab_layout, 0, 0, 1, 1);
- speed_button = new QPushButton(centralWidget);
- speed_button->setObjectName(QStringLiteral("speed_button"));
+ display_tab->addTab(server_tab, QString());
+ log_tab = new QWidget();
+ log_tab->setObjectName(QStringLiteral("log_tab"));
+ gridLayout_3 = new QGridLayout(log_tab);
+ gridLayout_3->setSpacing(6);
+ gridLayout_3->setContentsMargins(11, 11, 11, 11);
+ gridLayout_3->setObjectName(QStringLiteral("gridLayout_3"));
+ serial_input = new QLineEdit(log_tab);
+ serial_input->setObjectName(QStringLiteral("serial_input"));
- gridLayout_2->addWidget(speed_button, 18, 1, 1, 1);
+ gridLayout_3->addWidget(serial_input, 5, 0, 1, 1);
- speed_slider = new QSlider(centralWidget);
- speed_slider->setObjectName(QStringLiteral("speed_slider"));
- speed_slider->setMinimum(10);
- speed_slider->setMaximum(500);
- speed_slider->setOrientation(Qt::Horizontal);
+ serial_send_button = new QPushButton(log_tab);
+ serial_send_button->setObjectName(QStringLiteral("serial_send_button"));
+
+ gridLayout_3->addWidget(serial_send_button, 5, 1, 1, 1);
+
+ info_log_textarea = new QTextEdit(log_tab);
+ info_log_textarea->setObjectName(QStringLiteral("info_log_textarea"));
+
+ gridLayout_3->addWidget(info_log_textarea, 4, 0, 1, 2);
+
+ info_log_label = new QLabel(log_tab);
+ info_log_label->setObjectName(QStringLiteral("info_log_label"));
+
+ gridLayout_3->addWidget(info_log_label, 0, 0, 1, 1);
+
+ ping_count_label = new QLabel(log_tab);
+ ping_count_label->setObjectName(QStringLiteral("ping_count_label"));
+
+ gridLayout_3->addWidget(ping_count_label, 0, 1, 1, 1);
- gridLayout_2->addWidget(speed_slider, 18, 0, 1, 1);
+ display_tab->addTab(log_tab, QString());
+
+ gridLayout_2->addWidget(display_tab, 7, 1, 1, 1);
controllerWindow->setCentralWidget(centralWidget);
retranslateUi(controllerWindow);
+ display_tab->setCurrentIndex(5);
+
+
QMetaObject::connectSlotsByName(controllerWindow);
} // setupUi
void retranslateUi(QMainWindow *controllerWindow)
{
controllerWindow->setWindowTitle(QApplication::translate("controllerWindow", "RGB Controller", Q_NULLPTR));
- reload_preset_button->setText(QApplication::translate("controllerWindow", "Reload", Q_NULLPTR));
- off_button->setText(QApplication::translate("controllerWindow", "Off", Q_NULLPTR));
- preset_delete_button->setText(QApplication::translate("controllerWindow", "Delete", Q_NULLPTR));
- presets_label->setText(QApplication::translate("controllerWindow", "Presets", Q_NULLPTR));
- disconnect_button->setText(QApplication::translate("controllerWindow", "Disconnect", Q_NULLPTR));
- arduino_status_label->setText(QApplication::translate("controllerWindow", "<font color = red>Disconnected</font>", Q_NULLPTR));
- info_log_label->setText(QApplication::translate("controllerWindow", "Information log", Q_NULLPTR));
- green_button->setText(QApplication::translate("controllerWindow", "Green", Q_NULLPTR));
+ arduino_port_label->setText(QApplication::translate("controllerWindow", "Arduino port", Q_NULLPTR));
refresh_port_button->setText(QApplication::translate("controllerWindow", "Refresh", Q_NULLPTR));
- rgb_label->setText(QApplication::translate("controllerWindow", "RGB colors", Q_NULLPTR));
status_label->setText(QApplication::translate("controllerWindow", "Status", Q_NULLPTR));
- preset_save_button->setText(QApplication::translate("controllerWindow", "Save", Q_NULLPTR));
- g_speed_label->setText(QApplication::translate("controllerWindow", "Green speed", Q_NULLPTR));
+ arduino_status_label->setText(QApplication::translate("controllerWindow", "<font color = red>Disconnected</font>", Q_NULLPTR));
+ disconnect_button->setText(QApplication::translate("controllerWindow", "Disconnect", Q_NULLPTR));
+ connect_button->setText(QApplication::translate("controllerWindow", "Connect", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(status_tab), QApplication::translate("controllerWindow", "Status", Q_NULLPTR));
+ rgb_label->setText(QApplication::translate("controllerWindow", "RGB colors", Q_NULLPTR));
red_button->setText(QApplication::translate("controllerWindow", "Red", Q_NULLPTR));
+ green_button->setText(QApplication::translate("controllerWindow", "Green", Q_NULLPTR));
blue_button->setText(QApplication::translate("controllerWindow", "Blue", Q_NULLPTR));
- connect_button->setText(QApplication::translate("controllerWindow", "Connect", Q_NULLPTR));
- r_speed_label->setText(QApplication::translate("controllerWindow", "Red speed", Q_NULLPTR));
- set_preset_button->setText(QApplication::translate("controllerWindow", "Set", Q_NULLPTR));
+ off_button->setText(QApplication::translate("controllerWindow", "Off", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(color_tab), QApplication::translate("controllerWindow", "Color", Q_NULLPTR));
blue_fade_button->setText(QApplication::translate("controllerWindow", "Blue toggle", Q_NULLPTR));
- r_to_label->setText(QApplication::translate("controllerWindow", "to", Q_NULLPTR));
g_to_label->setText(QApplication::translate("controllerWindow", "to", Q_NULLPTR));
+ r_to_label->setText(QApplication::translate("controllerWindow", "to", Q_NULLPTR));
green_fade_button->setText(QApplication::translate("controllerWindow", "Green toggle", Q_NULLPTR));
red_fade_button->setText(QApplication::translate("controllerWindow", "Red toggle", Q_NULLPTR));
_to_label->setText(QApplication::translate("controllerWindow", "to", Q_NULLPTR));
fade_label->setText(QApplication::translate("controllerWindow", "Fade", Q_NULLPTR));
- arduino_port_label->setText(QApplication::translate("controllerWindow", "Arduino port", Q_NULLPTR));
+ r_speed_label->setText(QApplication::translate("controllerWindow", "Red speed", Q_NULLPTR));
+ g_speed_label->setText(QApplication::translate("controllerWindow", "Green speed", Q_NULLPTR));
b_speed_label->setText(QApplication::translate("controllerWindow", "Blue speed", Q_NULLPTR));
speed_button->setText(QApplication::translate("controllerWindow", "Speed", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(fade_tab), QApplication::translate("controllerWindow", "Fade", Q_NULLPTR));
+ presets_label->setText(QApplication::translate("controllerWindow", "Presets", Q_NULLPTR));
+ set_preset_button->setText(QApplication::translate("controllerWindow", "Set", Q_NULLPTR));
+ reload_preset_button->setText(QApplication::translate("controllerWindow", "Reload", Q_NULLPTR));
+ preset_save_button->setText(QApplication::translate("controllerWindow", "Save", Q_NULLPTR));
+ preset_delete_button->setText(QApplication::translate("controllerWindow", "Delete", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(presets_tab), QApplication::translate("controllerWindow", "Presets", Q_NULLPTR));
+ irc_bot_label->setText(QApplication::translate("controllerWindow", "IRC bot", Q_NULLPTR));
+ irc_server_label->setText(QApplication::translate("controllerWindow", "Server", Q_NULLPTR));
+ irc_server_input->setText(QApplication::translate("controllerWindow", "irc.danieljon.es", Q_NULLPTR));
+ irc_channel_label->setText(QApplication::translate("controllerWindow", "Channel", Q_NULLPTR));
+ irc_channel_input->setText(QApplication::translate("controllerWindow", "#csgo", Q_NULLPTR));
+ irc_name_label->setText(QApplication::translate("controllerWindow", "Name", Q_NULLPTR));
+ irc_name_input->setText(QApplication::translate("controllerWindow", "LightBot", Q_NULLPTR));
+ irc_port_label->setText(QApplication::translate("controllerWindow", "Port", Q_NULLPTR));
+ irc_connect_button->setText(QApplication::translate("controllerWindow", "Connect", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(irc_tab), QApplication::translate("controllerWindow", "IRC", Q_NULLPTR));
+ server_start_button->setText(QApplication::translate("controllerWindow", "Start server", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(server_tab), QApplication::translate("controllerWindow", "Server", Q_NULLPTR));
+ serial_send_button->setText(QApplication::translate("controllerWindow", "Send", Q_NULLPTR));
+ info_log_label->setText(QApplication::translate("controllerWindow", "Information log", Q_NULLPTR));
+ ping_count_label->setText(QApplication::translate("controllerWindow", "Ping", Q_NULLPTR));
+ display_tab->setTabText(display_tab->indexOf(log_tab), QApplication::translate("controllerWindow", "Log", Q_NULLPTR));
} // retranslateUi
};
diff --git a/qt/ircbot/.qmake.stash b/qt/ircbot/.qmake.stash
new file mode 100644
index 0000000..39abb16
--- /dev/null
+++ b/qt/ircbot/.qmake.stash
@@ -0,0 +1,12 @@
+QMAKE_DEFAULT_INCDIRS = \
+ /usr/include/c++/6.3.1 \
+ /usr/include/c++/6.3.1/x86_64-pc-linux-gnu \
+ /usr/include/c++/6.3.1/backward \
+ /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include \
+ /usr/local/include \
+ /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed \
+ /usr/include
+QMAKE_DEFAULT_LIBDIRS = \
+ /usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1 \
+ /usr/lib \
+ /lib
diff --git a/qt/ircbot/Makefile b/qt/ircbot/Makefile
new file mode 100644
index 0000000..42c2015
--- /dev/null
+++ b/qt/ircbot/Makefile
@@ -0,0 +1,825 @@
+#############################################################################
+# Makefile for building: qtbot
+# Generated by qmake (3.1) (Qt 5.8.0)
+# Project: qtbot.pro
+# Template: app
+# Command: /usr/bin/qmake -o Makefile qtbot.pro
+#############################################################################
+
+MAKEFILE = Makefile
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB -DQT_CORE_LIB
+CFLAGS = -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -W -D_REENTRANT -fPIC $(DEFINES)
+CXXFLAGS = -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
+INCPATH = -I. -isystem /usr/include/qt -isystem /usr/include/qt/QtNetwork -isystem /usr/include/qt/QtSerialPort -isystem /usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++
+QMAKE = /usr/bin/qmake
+DEL_FILE = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+COPY = cp -f
+COPY_FILE = cp -f
+COPY_DIR = cp -f -R
+INSTALL_FILE = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR = cp -f -R
+DEL_FILE = rm -f
+SYMLINK = ln -f -s
+DEL_DIR = rmdir
+MOVE = mv -f
+TAR = tar -cf
+COMPRESS = gzip -9f
+DISTNAME = qtbot1.0.0
+DISTDIR = /home/daniel_j/documents/school/2016\ research\ project/RGBController/qt/ircbot/.tmp/qtbot1.0.0
+LINK = g++
+LFLAGS = -Wl,-O1 -Wl,-O1,--sort-common,--as-needed,-z,relro
+LIBS = $(SUBLIBS) -lQt5Network -lQt5SerialPort -lQt5Core -lpthread
+AR = ar cqs
+RANLIB =
+SED = sed
+STRIP = strip
+
+####### Output directory
+
+OBJECTS_DIR = ./
+
+####### Files
+
+SOURCES = main.cpp \
+ qtbot.cpp moc_qtbot.cpp
+OBJECTS = main.o \
+ qtbot.o \
+ moc_qtbot.o
+DIST = /usr/lib/qt/mkspecs/features/spec_pre.prf \
+ /usr/lib/qt/mkspecs/common/unix.conf \
+ /usr/lib/qt/mkspecs/common/linux.conf \
+ /usr/lib/qt/mkspecs/common/sanitize.conf \
+ /usr/lib/qt/mkspecs/common/gcc-base.conf \
+ /usr/lib/qt/mkspecs/common/gcc-base-unix.conf \
+ /usr/lib/qt/mkspecs/common/g++-base.conf \
+ /usr/lib/qt/mkspecs/common/g++-unix.conf \
+ /usr/lib/qt/mkspecs/qconfig.pri \
+ /usr/lib/qt/mkspecs/modules/qt_Attica.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KArchive.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KAuth.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KBookmarks.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCodecs.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCompletion.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KConfigCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KConfigGui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KConfigWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCoreAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCrash.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KDBusAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KDEWebKit.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KEmoticons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KGlobalAccel.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KGuiAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KI18n.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIconThemes.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOFileWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOGui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KItemModels.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KItemViews.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KJobWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNewStuff.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNewStuffCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNotifications.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNotifyConfig.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNTLM.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KParts.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KPlotting.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KPty.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KService.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KTextWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KUnitConversion.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KWallet.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dcore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dcore_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dextras.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dextras_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dinput.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dinput_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dlogic.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dlogic_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquick.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquick_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickextras.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickextras_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickinput.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickinput_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickrender.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickrender_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3drender.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3drender_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_charts.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_charts_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_core.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_datavisualization.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_datavisualization_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_dbus.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_dbus_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_designer.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_designer_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_designercomponents_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_egl_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_enginio.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_enginio_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_fb_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gamepad.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gamepad_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_glx_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_help.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_input_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_location.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_network.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_networkauth.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_networkauth_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_packetprotocol_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qml.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qml_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmldebug_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickcontrols2.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_script.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_script_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scripttools.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scripttools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scxml.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scxml_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sensors.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sensors_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialbus.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialbus_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialport.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialport_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_service_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sql.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_svg.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_svg_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_texttospeech.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_texttospeech_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_theme_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandclient.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandclient_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandcompositor.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandcompositor_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webengine.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webengine_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginecore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginecore_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_websockets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_websockets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webview.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webview_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_x11extras.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_x11extras_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xml.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_phonon4qt5.pri \
+ /usr/lib/qt/mkspecs/modules/qt_QGpgme.pri \
+ /usr/lib/qt/mkspecs/modules/qt_Solid.pri \
+ /usr/lib/qt/mkspecs/modules/qt_SonnetCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_SonnetUi.pri \
+ /usr/lib/qt/mkspecs/features/qt_functions.prf \
+ /usr/lib/qt/mkspecs/features/qt_config.prf \
+ /usr/lib/qt/mkspecs/linux-g++/qmake.conf \
+ /usr/lib/qt/mkspecs/features/spec_post.prf \
+ .qmake.stash \
+ /usr/lib/qt/mkspecs/features/exclusive_builds.prf \
+ /usr/lib/qt/mkspecs/features/toolchain.prf \
+ /usr/lib/qt/mkspecs/features/default_pre.prf \
+ /usr/lib/qt/mkspecs/features/resolve_config.prf \
+ /usr/lib/qt/mkspecs/features/default_post.prf \
+ /usr/lib/qt/mkspecs/features/warn_on.prf \
+ /usr/lib/qt/mkspecs/features/qt.prf \
+ /usr/lib/qt/mkspecs/features/resources.prf \
+ /usr/lib/qt/mkspecs/features/moc.prf \
+ /usr/lib/qt/mkspecs/features/unix/thread.prf \
+ /usr/lib/qt/mkspecs/features/qmake_use.prf \
+ /usr/lib/qt/mkspecs/features/file_copies.prf \
+ /usr/lib/qt/mkspecs/features/testcase_targets.prf \
+ /usr/lib/qt/mkspecs/features/exceptions.prf \
+ /usr/lib/qt/mkspecs/features/yacc.prf \
+ /usr/lib/qt/mkspecs/features/lex.prf \
+ qtbot.pro qtbot.h main.cpp \
+ qtbot.cpp
+QMAKE_TARGET = qtbot
+DESTDIR =
+TARGET = qtbot
+
+
+first: all
+####### Build rules
+
+$(TARGET): $(OBJECTS)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: qtbot.pro /usr/lib/qt/mkspecs/linux-g++/qmake.conf /usr/lib/qt/mkspecs/features/spec_pre.prf \
+ /usr/lib/qt/mkspecs/common/unix.conf \
+ /usr/lib/qt/mkspecs/common/linux.conf \
+ /usr/lib/qt/mkspecs/common/sanitize.conf \
+ /usr/lib/qt/mkspecs/common/gcc-base.conf \
+ /usr/lib/qt/mkspecs/common/gcc-base-unix.conf \
+ /usr/lib/qt/mkspecs/common/g++-base.conf \
+ /usr/lib/qt/mkspecs/common/g++-unix.conf \
+ /usr/lib/qt/mkspecs/qconfig.pri \
+ /usr/lib/qt/mkspecs/modules/qt_Attica.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KArchive.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KAuth.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KBookmarks.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCodecs.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCompletion.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KConfigCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KConfigGui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KConfigWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCoreAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KCrash.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KDBusAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KDEWebKit.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KEmoticons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KGlobalAccel.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KGuiAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KI18n.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIconThemes.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOFileWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOGui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KIOWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KItemModels.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KItemViews.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KJobWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNewStuff.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNewStuffCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNotifications.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNotifyConfig.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KNTLM.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KParts.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KPlotting.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KPty.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KService.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KTextWidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KUnitConversion.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KWallet.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri \
+ /usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dcore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dcore_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dextras.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dextras_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dinput.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dinput_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dlogic.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dlogic_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquick.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquick_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickextras.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickextras_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickinput.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickinput_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickrender.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3dquickrender_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3drender.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_3drender_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_charts.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_charts_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_concurrent_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_core.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_core_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_datavisualization.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_datavisualization_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_dbus.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_dbus_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_designer.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_designer_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_designercomponents_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_egl_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_enginio.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_enginio_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_fb_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gamepad.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gamepad_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_glx_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gui.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_gui_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_help.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_input_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_location.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_network.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_networkauth.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_networkauth_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_openglextensions_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_packetprotocol_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_printsupport.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_printsupport_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qml.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qml_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmldebug_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quick.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickcontrols2.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_script.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_script_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scripttools.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scripttools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scxml.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_scxml_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sensors.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sensors_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialbus.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialbus_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialport.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_serialport_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_service_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sql.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_sql_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_svg.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_svg_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_testlib.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_testlib_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_texttospeech.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_texttospeech_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_theme_support_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandclient.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandclient_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandcompositor.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_waylandcompositor_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webengine.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webengine_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginecore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginecore_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_websockets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_websockets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webview.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_webview_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_widgets.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_widgets_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_x11extras.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_x11extras_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xml.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xml_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns.pri \
+ /usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+ /usr/lib/qt/mkspecs/modules/qt_phonon4qt5.pri \
+ /usr/lib/qt/mkspecs/modules/qt_QGpgme.pri \
+ /usr/lib/qt/mkspecs/modules/qt_Solid.pri \
+ /usr/lib/qt/mkspecs/modules/qt_SonnetCore.pri \
+ /usr/lib/qt/mkspecs/modules/qt_SonnetUi.pri \
+ /usr/lib/qt/mkspecs/features/qt_functions.prf \
+ /usr/lib/qt/mkspecs/features/qt_config.prf \
+ /usr/lib/qt/mkspecs/linux-g++/qmake.conf \
+ /usr/lib/qt/mkspecs/features/spec_post.prf \
+ .qmake.stash \
+ /usr/lib/qt/mkspecs/features/exclusive_builds.prf \
+ /usr/lib/qt/mkspecs/features/toolchain.prf \
+ /usr/lib/qt/mkspecs/features/default_pre.prf \
+ /usr/lib/qt/mkspecs/features/resolve_config.prf \
+ /usr/lib/qt/mkspecs/features/default_post.prf \
+ /usr/lib/qt/mkspecs/features/warn_on.prf \
+ /usr/lib/qt/mkspecs/features/qt.prf \
+ /usr/lib/qt/mkspecs/features/resources.prf \
+ /usr/lib/qt/mkspecs/features/moc.prf \
+ /usr/lib/qt/mkspecs/features/unix/thread.prf \
+ /usr/lib/qt/mkspecs/features/qmake_use.prf \
+ /usr/lib/qt/mkspecs/features/file_copies.prf \
+ /usr/lib/qt/mkspecs/features/testcase_targets.prf \
+ /usr/lib/qt/mkspecs/features/exceptions.prf \
+ /usr/lib/qt/mkspecs/features/yacc.prf \
+ /usr/lib/qt/mkspecs/features/lex.prf \
+ qtbot.pro \
+ /usr/lib/libQt5Network.prl \
+ /usr/lib/libQt5SerialPort.prl \
+ /usr/lib/libQt5Core.prl
+ $(QMAKE) -o Makefile qtbot.pro
+/usr/lib/qt/mkspecs/features/spec_pre.prf:
+/usr/lib/qt/mkspecs/common/unix.conf:
+/usr/lib/qt/mkspecs/common/linux.conf:
+/usr/lib/qt/mkspecs/common/sanitize.conf:
+/usr/lib/qt/mkspecs/common/gcc-base.conf:
+/usr/lib/qt/mkspecs/common/gcc-base-unix.conf:
+/usr/lib/qt/mkspecs/common/g++-base.conf:
+/usr/lib/qt/mkspecs/common/g++-unix.conf:
+/usr/lib/qt/mkspecs/qconfig.pri:
+/usr/lib/qt/mkspecs/modules/qt_Attica.pri:
+/usr/lib/qt/mkspecs/modules/qt_KArchive.pri:
+/usr/lib/qt/mkspecs/modules/qt_KAuth.pri:
+/usr/lib/qt/mkspecs/modules/qt_KBookmarks.pri:
+/usr/lib/qt/mkspecs/modules/qt_KCodecs.pri:
+/usr/lib/qt/mkspecs/modules/qt_KCompletion.pri:
+/usr/lib/qt/mkspecs/modules/qt_KConfigCore.pri:
+/usr/lib/qt/mkspecs/modules/qt_KConfigGui.pri:
+/usr/lib/qt/mkspecs/modules/qt_KConfigWidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_KCoreAddons.pri:
+/usr/lib/qt/mkspecs/modules/qt_KCrash.pri:
+/usr/lib/qt/mkspecs/modules/qt_KDBusAddons.pri:
+/usr/lib/qt/mkspecs/modules/qt_KDEWebKit.pri:
+/usr/lib/qt/mkspecs/modules/qt_KEmoticons.pri:
+/usr/lib/qt/mkspecs/modules/qt_KGlobalAccel.pri:
+/usr/lib/qt/mkspecs/modules/qt_KGuiAddons.pri:
+/usr/lib/qt/mkspecs/modules/qt_KI18n.pri:
+/usr/lib/qt/mkspecs/modules/qt_KIconThemes.pri:
+/usr/lib/qt/mkspecs/modules/qt_KIOCore.pri:
+/usr/lib/qt/mkspecs/modules/qt_KIOFileWidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_KIOGui.pri:
+/usr/lib/qt/mkspecs/modules/qt_KIOWidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_KItemModels.pri:
+/usr/lib/qt/mkspecs/modules/qt_KItemViews.pri:
+/usr/lib/qt/mkspecs/modules/qt_KJobWidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_KNewStuff.pri:
+/usr/lib/qt/mkspecs/modules/qt_KNewStuffCore.pri:
+/usr/lib/qt/mkspecs/modules/qt_KNotifications.pri:
+/usr/lib/qt/mkspecs/modules/qt_KNotifyConfig.pri:
+/usr/lib/qt/mkspecs/modules/qt_KNTLM.pri:
+/usr/lib/qt/mkspecs/modules/qt_KParts.pri:
+/usr/lib/qt/mkspecs/modules/qt_KPlotting.pri:
+/usr/lib/qt/mkspecs/modules/qt_KPty.pri:
+/usr/lib/qt/mkspecs/modules/qt_KService.pri:
+/usr/lib/qt/mkspecs/modules/qt_KTextWidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_KUnitConversion.pri:
+/usr/lib/qt/mkspecs/modules/qt_KWallet.pri:
+/usr/lib/qt/mkspecs/modules/qt_KWidgetsAddons.pri:
+/usr/lib/qt/mkspecs/modules/qt_KWindowSystem.pri:
+/usr/lib/qt/mkspecs/modules/qt_KXmlGui.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dcore.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dcore_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dextras.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dextras_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dinput.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dinput_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dlogic.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dlogic_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquick.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquick_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquickextras.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquickextras_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquickinput.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquickinput_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquickrender.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3dquickrender_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3drender.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_3drender_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_accessibility_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_bluetooth_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_charts.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_charts_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_clucene_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_concurrent.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_concurrent_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_core.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_core_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_datavisualization.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_datavisualization_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_dbus.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_dbus_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_designer.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_designer_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_designercomponents_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_egl_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_enginio.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_enginio_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_fb_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_gamepad.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_gamepad_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_glx_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_gui.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_gui_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_help.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_help_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_input_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_location.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_multimedia.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_multimedia_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_network.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_network_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_networkauth.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_networkauth_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_nfc.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_nfc_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_opengl.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_opengl_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_openglextensions_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_packetprotocol_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_printsupport.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_printsupport_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qml.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qml_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qmldebug_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qmldevtools_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qmltest.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qmltest_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quick.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quick_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quickcontrols2.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quickparticles_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_quickwidgets_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_script.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_script_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_scripttools.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_scripttools_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_scxml.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_scxml_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_sensors.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_sensors_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_serialbus.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_serialbus_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_serialport.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_serialport_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_service_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_sql.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_sql_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_svg.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_svg_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_testlib.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_testlib_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_texttospeech.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_texttospeech_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_theme_support_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_uiplugin.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_uitools.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_uitools_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_waylandclient_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_waylandcompositor.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_waylandcompositor_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webchannel.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webchannel_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webengine.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webengine_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webenginecore_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webenginecoreheaders_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webenginewidgets_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webkit_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_websockets.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_websockets_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webview.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_webview_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_widgets.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_widgets_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_x11extras.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_x11extras_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_xml.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_xml_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns.pri:
+/usr/lib/qt/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
+/usr/lib/qt/mkspecs/modules/qt_phonon4qt5.pri:
+/usr/lib/qt/mkspecs/modules/qt_QGpgme.pri:
+/usr/lib/qt/mkspecs/modules/qt_Solid.pri:
+/usr/lib/qt/mkspecs/modules/qt_SonnetCore.pri:
+/usr/lib/qt/mkspecs/modules/qt_SonnetUi.pri:
+/usr/lib/qt/mkspecs/features/qt_functions.prf:
+/usr/lib/qt/mkspecs/features/qt_config.prf:
+/usr/lib/qt/mkspecs/linux-g++/qmake.conf:
+/usr/lib/qt/mkspecs/features/spec_post.prf:
+.qmake.stash:
+/usr/lib/qt/mkspecs/features/exclusive_builds.prf:
+/usr/lib/qt/mkspecs/features/toolchain.prf:
+/usr/lib/qt/mkspecs/features/default_pre.prf:
+/usr/lib/qt/mkspecs/features/resolve_config.prf:
+/usr/lib/qt/mkspecs/features/default_post.prf:
+/usr/lib/qt/mkspecs/features/warn_on.prf:
+/usr/lib/qt/mkspecs/features/qt.prf:
+/usr/lib/qt/mkspecs/features/resources.prf:
+/usr/lib/qt/mkspecs/features/moc.prf:
+/usr/lib/qt/mkspecs/features/unix/thread.prf:
+/usr/lib/qt/mkspecs/features/qmake_use.prf:
+/usr/lib/qt/mkspecs/features/file_copies.prf:
+/usr/lib/qt/mkspecs/features/testcase_targets.prf:
+/usr/lib/qt/mkspecs/features/exceptions.prf:
+/usr/lib/qt/mkspecs/features/yacc.prf:
+/usr/lib/qt/mkspecs/features/lex.prf:
+qtbot.pro:
+/usr/lib/libQt5Network.prl:
+/usr/lib/libQt5SerialPort.prl:
+/usr/lib/libQt5Core.prl:
+qmake: FORCE
+ @$(QMAKE) -o Makefile qtbot.pro
+
+qmake_all: FORCE
+
+
+all: Makefile $(TARGET)
+
+dist: distdir FORCE
+ (cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
+
+distdir: FORCE
+ @test -d $(DISTDIR) || mkdir -p $(DISTDIR)
+ $(COPY_FILE) --parents $(DIST) $(DISTDIR)/
+ $(COPY_FILE) --parents /usr/lib/qt/mkspecs/features/data/dummy.cpp $(DISTDIR)/
+ $(COPY_FILE) --parents qtbot.h $(DISTDIR)/
+ $(COPY_FILE) --parents main.cpp qtbot.cpp $(DISTDIR)/
+
+
+clean: compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) .qmake.stash
+ -$(DEL_FILE) Makefile
+
+
+####### Sub-libraries
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+check: first
+
+benchmark: first
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_moc_predefs_make_all: moc_predefs.h
+compiler_moc_predefs_clean:
+ -$(DEL_FILE) moc_predefs.h
+moc_predefs.h: /usr/lib/qt/mkspecs/features/data/dummy.cpp
+ g++ -pipe -O2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h /usr/lib/qt/mkspecs/features/data/dummy.cpp
+
+compiler_moc_header_make_all: moc_qtbot.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_qtbot.cpp
+moc_qtbot.cpp: qtbot.h \
+ moc_predefs.h \
+ /usr/bin/moc
+ /usr/bin/moc $(DEFINES) --include ./moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I'/home/daniel_j/documents/school/2016 research project/RGBController/qt/ircbot' -I/usr/include/qt -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtSerialPort -I/usr/include/qt/QtCore -I/usr/include/c++/6.3.1 -I/usr/include/c++/6.3.1/x86_64-pc-linux-gnu -I/usr/include/c++/6.3.1/backward -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include -I/usr/local/include -I/usr/lib/gcc/x86_64-pc-linux-gnu/6.3.1/include-fixed -I/usr/include qtbot.h -o moc_qtbot.cpp
+
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_predefs_clean compiler_moc_header_clean
+
+####### Compile
+
+main.o: main.cpp qtbot.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp
+
+qtbot.o: qtbot.cpp qtbot.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qtbot.o qtbot.cpp
+
+moc_qtbot.o: moc_qtbot.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_qtbot.o moc_qtbot.cpp
+
+####### Install
+
+install: FORCE
+
+uninstall: FORCE
+
+FORCE:
+
diff --git a/qt/ircbot/main.cpp b/qt/ircbot/main.cpp
new file mode 100644
index 0000000..7022866
--- /dev/null
+++ b/qt/ircbot/main.cpp
@@ -0,0 +1,13 @@
+#include <QCoreApplication>
+#include <QObject>
+#include <QTimer>
+#include <qtbot.h>
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication a(argc, argv);
+ QtBot qtbot;
+ QObject::connect(&qtbot, SIGNAL(done()), &a, SLOT(quit()), Qt::QueuedConnection);
+ QTimer::singleShot(0, &qtbot, SLOT(setup()));
+ return a.exec();
+}
diff --git a/qt/ircbot/moc_predefs.h b/qt/ircbot/moc_predefs.h
new file mode 100644
index 0000000..6a9590c
--- /dev/null
+++ b/qt/ircbot/moc_predefs.h
@@ -0,0 +1,284 @@
+#define __SSP_STRONG__ 3
+#define __DBL_MIN_EXP__ (-1021)
+#define __cpp_attributes 200809
+#define __UINT_LEAST16_MAX__ 0xffff
+#define __ATOMIC_ACQUIRE 2
+#define __FLT_MIN__ 1.17549435082228750797e-38F
+#define __GCC_IEC_559_COMPLEX 2
+#define __UINT_LEAST8_TYPE__ unsigned char
+#define __SIZEOF_FLOAT80__ 16
+#define __INTMAX_C(c) c ## L
+#define __CHAR_BIT__ 8
+#define __UINT8_MAX__ 0xff
+#define __WINT_MAX__ 0xffffffffU
+#define __cpp_static_assert 200410
+#define __ORDER_LITTLE_ENDIAN__ 1234
+#define __SIZE_MAX__ 0xffffffffffffffffUL
+#define __WCHAR_MAX__ 0x7fffffff
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
+#define __DBL_DENORM_MIN__ double(4.94065645841246544177e-324L)
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
+#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
+#define __GCC_IEC_559 2
+#define __FLT_EVAL_METHOD__ 0
+#define __unix__ 1
+#define __cpp_binary_literals 201304
+#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
+#define __x86_64 1
+#define __cpp_variadic_templates 200704
+#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
+#define __SIG_ATOMIC_TYPE__ int
+#define __DBL_MIN_10_EXP__ (-307)
+#define __FINITE_MATH_ONLY__ 0
+#define __GNUC_PATCHLEVEL__ 1
+#define __UINT_FAST8_MAX__ 0xff
+#define __has_include(STR) __has_include__(STR)
+#define __DEC64_MAX_EXP__ 385
+#define __INT8_C(c) c
+#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
+#define __SHRT_MAX__ 0x7fff
+#define __LDBL_MAX__ 1.18973149535723176502e+4932L
+#define __UINT_LEAST8_MAX__ 0xff
+#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
+#define __UINTMAX_TYPE__ long unsigned int
+#define __linux 1
+#define __DEC32_EPSILON__ 1E-6DF
+#define __OPTIMIZE__ 1
+#define __unix 1
+#define __UINT32_MAX__ 0xffffffffU
+#define __GXX_EXPERIMENTAL_CXX0X__ 1
+#define __LDBL_MAX_EXP__ 16384
+#define __WINT_MIN__ 0U
+#define __linux__ 1
+#define __SCHAR_MAX__ 0x7f
+#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
+#define __INT64_C(c) c ## L
+#define __DBL_DIG__ 15
+#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
+#define __SIZEOF_INT__ 4
+#define __SIZEOF_POINTER__ 8
+#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
+#define __USER_LABEL_PREFIX__
+#define __STDC_HOSTED__ 1
+#define __LDBL_HAS_INFINITY__ 1
+#define __FLT_EPSILON__ 1.19209289550781250000e-7F
+#define __GXX_WEAK__ 1
+#define __LDBL_MIN__ 3.36210314311209350626e-4932L
+#define __DEC32_MAX__ 9.999999E96DF
+#define __INT32_MAX__ 0x7fffffff
+#define __SIZEOF_LONG__ 8
+#define __STDC_IEC_559__ 1
+#define __STDC_ISO_10646__ 201505L
+#define __UINT16_C(c) c
+#define __DECIMAL_DIG__ 21
+#define __gnu_linux__ 1
+#define __has_include_next(STR) __has_include_next__(STR)
+#define __LDBL_HAS_QUIET_NAN__ 1
+#define __GNUC__ 6
+#define __GXX_RTTI 1
+#define __MMX__ 1
+#define __cpp_delegating_constructors 200604
+#define __FLT_HAS_DENORM__ 1
+#define __SIZEOF_LONG_DOUBLE__ 16
+#define __BIGGEST_ALIGNMENT__ 16
+#define __STDC_UTF_16__ 1
+#define __DBL_MAX__ double(1.79769313486231570815e+308L)
+#define __cpp_raw_strings 200710
+#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
+#define __DBL_HAS_INFINITY__ 1
+#define __INT64_MAX__ 0x7fffffffffffffffL
+#define __DEC32_MIN_EXP__ (-94)
+#define __INT_FAST16_TYPE__ long int
+#define __LDBL_HAS_DENORM__ 1
+#define __cplusplus 201103L
+#define __cpp_ref_qualifiers 200710
+#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
+#define __INT_LEAST32_MAX__ 0x7fffffff
+#define __DEC32_MIN__ 1E-95DF
+#define __DEPRECATED 1
+#define __cpp_rvalue_references 200610
+#define __DBL_MAX_EXP__ 1024
+#define __DEC128_EPSILON__ 1E-33DL
+#define __SSE2_MATH__ 1
+#define __ATOMIC_HLE_RELEASE 131072
+#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
+#define __amd64 1
+#define __STDC_NO_THREADS__ 1
+#define __ATOMIC_HLE_ACQUIRE 65536
+#define __GNUG__ 6
+#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
+#define __SIZEOF_SIZE_T__ 8
+#define __cpp_rvalue_reference 200610
+#define __cpp_nsdmi 200809
+#define __SIZEOF_WINT_T__ 4
+#define __cpp_initializer_lists 200806
+#define __cpp_hex_float 201603
+#define __GCC_HAVE_DWARF2_CFI_ASM 1
+#define __GXX_ABI_VERSION 1010
+#define __FLT_MIN_EXP__ (-125)
+#define __cpp_lambdas 200907
+#define __INT_FAST64_TYPE__ long int
+#define __DBL_MIN__ double(2.22507385850720138309e-308L)
+#define __LP64__ 1
+#define __DECIMAL_BID_FORMAT__ 1
+#define __DEC128_MIN__ 1E-6143DL
+#define __REGISTER_PREFIX__
+#define __UINT16_MAX__ 0xffff
+#define __DBL_HAS_DENORM__ 1
+#define __UINT8_TYPE__ unsigned char
+#define __FLT_MANT_DIG__ 24
+#define __VERSION__ "6.3.1 20170306"
+#define __UINT64_C(c) c ## UL
+#define __cpp_unicode_characters 200704
+#define _STDC_PREDEF_H 1
+#define __GCC_ATOMIC_INT_LOCK_FREE 2
+#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __STDC_IEC_559_COMPLEX__ 1
+#define __INT32_C(c) c
+#define __DEC64_EPSILON__ 1E-15DD
+#define __ORDER_PDP_ENDIAN__ 3412
+#define __DEC128_MIN_EXP__ (-6142)
+#define __INT_FAST32_TYPE__ long int
+#define __UINT_LEAST16_TYPE__ short unsigned int
+#define unix 1
+#define __INT16_MAX__ 0x7fff
+#define __cpp_rtti 199711
+#define __SIZE_TYPE__ long unsigned int
+#define __UINT64_MAX__ 0xffffffffffffffffUL
+#define __INT8_TYPE__ signed char
+#define __ELF__ 1
+#define __GCC_ASM_FLAG_OUTPUTS__ 1
+#define __FLT_RADIX__ 2
+#define __INT_LEAST16_TYPE__ short int
+#define __LDBL_EPSILON__ 1.08420217248550443401e-19L
+#define __UINTMAX_C(c) c ## UL
+#define __GLIBCXX_BITSIZE_INT_N_0 128
+#define __k8 1
+#define __SIG_ATOMIC_MAX__ 0x7fffffff
+#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
+#define __SIZEOF_PTRDIFF_T__ 8
+#define __x86_64__ 1
+#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
+#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
+#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
+#define __UINT_LEAST64_TYPE__ long unsigned int
+#define __FLT_HAS_QUIET_NAN__ 1
+#define __FLT_MAX_10_EXP__ 38
+#define __LONG_MAX__ 0x7fffffffffffffffL
+#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
+#define __FLT_HAS_INFINITY__ 1
+#define __cpp_unicode_literals 200710
+#define __UINT_FAST16_TYPE__ long unsigned int
+#define __DEC64_MAX__ 9.999999999999999E384DD
+#define __CHAR16_TYPE__ short unsigned int
+#define __PRAGMA_REDEFINE_EXTNAME 1
+#define __SEG_FS 1
+#define __INT_LEAST16_MAX__ 0x7fff
+#define __DEC64_MANT_DIG__ 16
+#define __UINT_LEAST32_MAX__ 0xffffffffU
+#define __SEG_GS 1
+#define __GCC_ATOMIC_LONG_LOCK_FREE 2
+#define __INT_LEAST64_TYPE__ long int
+#define __INT16_TYPE__ short int
+#define __INT_LEAST8_TYPE__ signed char
+#define __DEC32_MAX_EXP__ 97
+#define __INT_FAST8_MAX__ 0x7f
+#define __INTPTR_MAX__ 0x7fffffffffffffffL
+#define linux 1
+#define __cpp_range_based_for 200907
+#define __SSE2__ 1
+#define __EXCEPTIONS 1
+#define __LDBL_MANT_DIG__ 64
+#define __DBL_HAS_QUIET_NAN__ 1
+#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
+#define __code_model_small__ 1
+#define __k8__ 1
+#define __INTPTR_TYPE__ long int
+#define __UINT16_TYPE__ short unsigned int
+#define __WCHAR_TYPE__ int
+#define __SIZEOF_FLOAT__ 4
+#define __UINTPTR_MAX__ 0xffffffffffffffffUL
+#define __DEC64_MIN_EXP__ (-382)
+#define __cpp_decltype 200707
+#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
+#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
+#define __FLT_DIG__ 6
+#define __UINT_FAST64_TYPE__ long unsigned int
+#define __INT_MAX__ 0x7fffffff
+#define __amd64__ 1
+#define __INT64_TYPE__ long int
+#define __FLT_MAX_EXP__ 128
+#define __ORDER_BIG_ENDIAN__ 4321
+#define __DBL_MANT_DIG__ 53
+#define __cpp_inheriting_constructors 200802
+#define __SIZEOF_FLOAT128__ 16
+#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
+#define __DEC64_MIN__ 1E-383DD
+#define __WINT_TYPE__ unsigned int
+#define __UINT_LEAST32_TYPE__ unsigned int
+#define __SIZEOF_SHORT__ 2
+#define __SSE__ 1
+#define __LDBL_MIN_EXP__ (-16381)
+#define __INT_LEAST8_MAX__ 0x7f
+#define __SIZEOF_INT128__ 16
+#define __LDBL_MAX_10_EXP__ 4932
+#define __ATOMIC_RELAXED 0
+#define __DBL_EPSILON__ double(2.22044604925031308085e-16L)
+#define _LP64 1
+#define __UINT8_C(c) c
+#define __INT_LEAST32_TYPE__ int
+#define __SIZEOF_WCHAR_T__ 4
+#define __UINT64_TYPE__ long unsigned int
+#define __INT_FAST8_TYPE__ signed char
+#define __GNUC_STDC_INLINE__ 1
+#define __DBL_DECIMAL_DIG__ 17
+#define __STDC_UTF_32__ 1
+#define __FXSR__ 1
+#define __DEC_EVAL_METHOD__ 2
+#define __cpp_runtime_arrays 198712
+#define __UINT32_C(c) c ## U
+#define __INTMAX_MAX__ 0x7fffffffffffffffL
+#define __cpp_alias_templates 200704
+#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+#define __FLT_DENORM_MIN__ 1.40129846432481707092e-45F
+#define __INT8_MAX__ 0x7f
+#define __UINT_FAST32_TYPE__ long unsigned int
+#define __CHAR32_TYPE__ unsigned int
+#define __FLT_MAX__ 3.40282346638528859812e+38F
+#define __cpp_constexpr 200704
+#define __INT32_TYPE__ int
+#define __SIZEOF_DOUBLE__ 8
+#define __cpp_exceptions 199711
+#define __INTMAX_TYPE__ long int
+#define __DEC128_MAX_EXP__ 6145
+#define __ATOMIC_CONSUME 1
+#define __GNUC_MINOR__ 3
+#define __GLIBCXX_TYPE_INT_N_0 __int128
+#define __UINTMAX_MAX__ 0xffffffffffffffffUL
+#define __DEC32_MANT_DIG__ 7
+#define __DBL_MAX_10_EXP__ 308
+#define __LDBL_DENORM_MIN__ 3.64519953188247460253e-4951L
+#define __INT16_C(c) c
+#define __STDC__ 1
+#define __PTRDIFF_TYPE__ long int
+#define __ATOMIC_SEQ_CST 5
+#define __UINT32_TYPE__ unsigned int
+#define __UINTPTR_TYPE__ long unsigned int
+#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
+#define __DEC128_MANT_DIG__ 34
+#define __LDBL_MIN_10_EXP__ (-4931)
+#define __SSE_MATH__ 1
+#define __SIZEOF_LONG_LONG__ 8
+#define __cpp_user_defined_literals 200809
+#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
+#define __LDBL_DIG__ 18
+#define __FLT_DECIMAL_DIG__ 9
+#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
+#define __FLT_MIN_10_EXP__ (-37)
+#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
+#define __UINT_FAST8_TYPE__ unsigned char
+#define _GNU_SOURCE 1
+#define __ATOMIC_ACQ_REL 4
+#define __ATOMIC_RELEASE 3
diff --git a/qt/ircbot/moc_qtbot.cpp b/qt/ircbot/moc_qtbot.cpp
new file mode 100644
index 0000000..4eff919
--- /dev/null
+++ b/qt/ircbot/moc_qtbot.cpp
@@ -0,0 +1,156 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'qtbot.h'
+**
+** Created by: The Qt Meta Object Compiler version 67 (Qt 5.8.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "qtbot.h"
+#include <QtCore/qbytearray.h>
+#include <QtCore/qmetatype.h>
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'qtbot.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 67
+#error "This file was generated using the moc from 5.8.0. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+QT_WARNING_PUSH
+QT_WARNING_DISABLE_DEPRECATED
+struct qt_meta_stringdata_QtBot_t {
+ QByteArrayData data[10];
+ char stringdata0[52];
+};
+#define QT_MOC_LITERAL(idx, ofs, len) \
+ Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
+ qptrdiff(offsetof(qt_meta_stringdata_QtBot_t, stringdata0) + ofs \
+ - idx * sizeof(QByteArrayData)) \
+ )
+static const qt_meta_stringdata_QtBot_t qt_meta_stringdata_QtBot = {
+ {
+QT_MOC_LITERAL(0, 0, 5), // "QtBot"
+QT_MOC_LITERAL(1, 6, 4), // "done"
+QT_MOC_LITERAL(2, 11, 0), // ""
+QT_MOC_LITERAL(3, 12, 4), // "read"
+QT_MOC_LITERAL(4, 17, 8), // "bconnect"
+QT_MOC_LITERAL(5, 26, 5), // "parse"
+QT_MOC_LITERAL(6, 32, 4), // "line"
+QT_MOC_LITERAL(7, 37, 4), // "send"
+QT_MOC_LITERAL(8, 42, 3), // "com"
+QT_MOC_LITERAL(9, 46, 5) // "setup"
+
+ },
+ "QtBot\0done\0\0read\0bconnect\0parse\0line\0"
+ "send\0com\0setup"
+};
+#undef QT_MOC_LITERAL
+
+static const uint qt_meta_data_QtBot[] = {
+
+ // content:
+ 7, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 6, 14, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+ 0, // flags
+ 1, // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+ 1, 0, 44, 2, 0x06 /* Public */,
+
+ // slots: name, argc, parameters, tag, flags
+ 3, 0, 45, 2, 0x08 /* Private */,
+ 4, 0, 46, 2, 0x08 /* Private */,
+ 5, 1, 47, 2, 0x08 /* Private */,
+ 7, 1, 50, 2, 0x08 /* Private */,
+ 9, 0, 53, 2, 0x0a /* Public */,
+
+ // signals: parameters
+ QMetaType::Void,
+
+ // slots: parameters
+ QMetaType::Void,
+ QMetaType::Void,
+ QMetaType::Void, QMetaType::QString, 6,
+ QMetaType::Void, QMetaType::QString, 8,
+ QMetaType::Void,
+
+ 0 // eod
+};
+
+void QtBot::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
+{
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ QtBot *_t = static_cast<QtBot *>(_o);
+ Q_UNUSED(_t)
+ switch (_id) {
+ case 0: _t->done(); break;
+ case 1: _t->read(); break;
+ case 2: _t->bconnect(); break;
+ case 3: _t->parse((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 4: _t->send((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 5: _t->setup(); break;
+ default: ;
+ }
+ } else if (_c == QMetaObject::IndexOfMethod) {
+ int *result = reinterpret_cast<int *>(_a[0]);
+ void **func = reinterpret_cast<void **>(_a[1]);
+ {
+ typedef void (QtBot::*_t)();
+ if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&QtBot::done)) {
+ *result = 0;
+ return;
+ }
+ }
+ }
+}
+
+const QMetaObject QtBot::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_QtBot.data,
+ qt_meta_data_QtBot, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
+};
+
+
+const QMetaObject *QtBot::metaObject() const
+{
+ return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
+}
+
+void *QtBot::qt_metacast(const char *_clname)
+{
+ if (!_clname) return Q_NULLPTR;
+ if (!strcmp(_clname, qt_meta_stringdata_QtBot.stringdata0))
+ return static_cast<void*>(const_cast< QtBot*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int QtBot::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ if (_id < 6)
+ qt_static_metacall(this, _c, _id, _a);
+ _id -= 6;
+ } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+ if (_id < 6)
+ *reinterpret_cast<int*>(_a[0]) = -1;
+ _id -= 6;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void QtBot::done()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, Q_NULLPTR);
+}
+QT_WARNING_POP
+QT_END_MOC_NAMESPACE
diff --git a/qt/ircbot/qtbot b/qt/ircbot/qtbot
new file mode 100755
index 0000000..72dc64d
--- /dev/null
+++ b/qt/ircbot/qtbot
Binary files differ
diff --git a/qt/ircbot/qtbot.cpp b/qt/ircbot/qtbot.cpp
new file mode 100644
index 0000000..2cb67dd
--- /dev/null
+++ b/qt/ircbot/qtbot.cpp
@@ -0,0 +1,82 @@
+#include "qtbot.h"
+
+QtBot::QtBot(QObject *parent) : QObject(parent)
+{
+
+}
+
+void QtBot::setup()
+{
+ qDebug() << "setup()";
+ /* setup socket, connect signal/slot */
+ socket = new QTcpSocket(this);
+ connect(socket, SIGNAL(readyRead()), this, SLOT(read()));
+ /* connect */
+ bconnect();
+ /* serial connect */
+ ser = new QSerialPort(this);
+ ser->setPortName("ttyACM0");
+ ser->setBaudRate(QSerialPort::Baud9600);
+ ser->setDataBits(QSerialPort::Data8);
+ ser->setParity(QSerialPort::NoParity);
+ ser->setStopBits(QSerialPort::OneStop);
+ ser->setFlowControl(QSerialPort::NoFlowControl);
+ ser->open(QIODevice::ReadWrite);
+ ser->waitForBytesWritten(9000);
+ if (ser->isWritable())
+ {
+ qDebug() << "Writable serial";
+ }
+}
+
+void QtBot::send(QString com)
+{
+ data = "";
+ qDebug() << "sending" << com;
+ data.append(com + "\n");
+ if (ser->isOpen())
+ ser->write(data);
+}
+
+void QtBot::read()
+{
+ QString line = socket->readLine();
+ if (line.contains("PING :"))
+ {
+ QString sline = "PONG :" + line.split(":")[1];
+ socket->write(sline.toLatin1());
+ }
+ if (line.contains("qtbot MODE qtbot :+"))
+ {
+ socket->write("JOIN #bukkake \r\n");
+ socket->write("JOIN #fun \r\n");
+ }
+ if (line.contains("!"))
+ parse(line);
+ if(socket->canReadLine())
+ read();
+}
+
+void QtBot::bconnect()
+{
+ socket->connectToHost(server, port);
+ socket->write("NICK qtbot \r\n");
+ socket->write("USER qtbot 8 * :qtbot \r\n");
+}
+
+void QtBot::parse(QString line)
+{
+ QString l = line.split(":")[2].remove(QRegExp("[\\n\\t\\r]"));
+ qDebug() << "parsing: " << l;
+ if (l.split(" ")[0] == ".command")
+ {
+ if (l.split(" ")[1].size() > 2)
+ {
+ QString sendl = "PRIVMSG #tests :red set. \r\n";
+ QString command = l.split(" ")[1];
+ qDebug() << "command is " << command;
+ send(command);
+ //socket->write(send.toLocal8Bit());
+ }
+ }
+}
diff --git a/qt/ircbot/qtbot.h b/qt/ircbot/qtbot.h
new file mode 100644
index 0000000..5878def
--- /dev/null
+++ b/qt/ircbot/qtbot.h
@@ -0,0 +1,37 @@
+#ifndef QTBOT_H
+#define QTBOT_H
+
+#include <QObject>
+#include <QDebug>
+#include <QtNetwork/QTcpSocket>
+#include <QSerialPort>
+#include <QSerialPortInfo>
+
+class QtBot : public QObject
+{
+ Q_OBJECT
+ public:
+ explicit QtBot(QObject *parent = 0);
+ QString server = "irc.danieljon.es";
+ int port = 6667;
+ QString name = "RGBBot";
+ QSerialPort *ser;
+ QByteArray data;
+ QByteArray serdata;
+
+ private:
+ QTcpSocket *socket;
+ private slots:
+ void read();
+ void bconnect();
+ void parse(QString line);
+ void send(QString com);
+
+signals:
+ void done();
+
+ public slots:
+ void setup();
+};
+
+#endif // QTBOT_H
diff --git a/qt/ircbot/qtbot.pro b/qt/ircbot/qtbot.pro
new file mode 100644
index 0000000..1f87c7f
--- /dev/null
+++ b/qt/ircbot/qtbot.pro
@@ -0,0 +1,27 @@
+QT += core network serialport
+QT -= gui
+
+CONFIG += c++11
+
+TARGET = qtbot
+CONFIG += console
+CONFIG -= app_bundle
+
+TEMPLATE = app
+
+SOURCES += main.cpp \
+ qtbot.cpp
+
+# The following define makes your compiler emit warnings if you use
+# any feature of Qt which as been marked deprecated (the exact warnings
+# depend on your compiler). Please consult the documentation of the
+# deprecated API in order to know how to port your code away from it.
+DEFINES += QT_DEPRECATED_WARNINGS
+
+# You can also make your code fail to compile if you use deprecated APIs.
+# In order to do so, uncomment the following line.
+# You can also select to disable deprecated APIs only up to a certain version of Qt.
+#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
+
+HEADERS += \
+ qtbot.h \
diff --git a/qt/ircbot/qtbot.pro.user b/qt/ircbot/qtbot.pro.user
new file mode 100644
index 0000000..c51a605
--- /dev/null
+++ b/qt/ircbot/qtbot.pro.user
@@ -0,0 +1,336 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorProject>
+<!-- Written by QtCreator 4.2.1, 2017-03-11T20:53:50. -->
+<qtcreator>
+ <data>
+ <variable>EnvironmentId</variable>
+ <value type="QByteArray">{c148e485-3cf0-4847-b5fd-56246b2688e8}</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <value type="int">0</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <valuemap type="QVariantMap">
+ <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+ <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+ <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+ <value type="QString" key="language">Cpp</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
+ </valuemap>
+ </valuemap>
+ <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
+ <value type="QString" key="language">QmlJS</value>
+ <valuemap type="QVariantMap" key="value">
+ <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
+ </valuemap>
+ </valuemap>
+ <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
+ <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
+ <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
+ <value type="int" key="EditorConfiguration.IndentSize">4</value>
+ <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
+ <value type="int" key="EditorConfiguration.MarginColumn">80</value>
+ <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
+ <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+ <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+ <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
+ <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
+ <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+ <value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
+ <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+ <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+ <value type="int" key="EditorConfiguration.TabSize">8</value>
+ <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+ <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
+ <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+ <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+ <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
+ <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.PluginSettings</variable>
+ <valuemap type="QVariantMap"/>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Target.0</variable>
+ <valuemap type="QVariantMap">
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a6071b8b-a567-46c9-babb-33312c5773b5}</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+ <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel_j/programming/c++/build-qtbot-Desktop-Debug</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel_j/programming/c++/build-qtbot-Desktop-Release</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
+ <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel_j/programming/c++/build-qtbot-Desktop-Profile</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value>
+ <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value>
+ <value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+ </valuemap>
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+ <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+ <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
+ <value type="QString">-w</value>
+ <value type="QString">-r</value>
+ </valuelist>
+ <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+ <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+ <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+ <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+ <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+ <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
+ <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+ <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+ <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+ <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+ <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+ <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+ <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+ <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+ <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+ <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+ <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+ <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+ <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+ <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+ <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+ <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+ <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+ <value type="int">0</value>
+ <value type="int">1</value>
+ <value type="int">2</value>
+ <value type="int">3</value>
+ <value type="int">4</value>
+ <value type="int">5</value>
+ <value type="int">6</value>
+ <value type="int">7</value>
+ <value type="int">8</value>
+ <value type="int">9</value>
+ <value type="int">10</value>
+ <value type="int">11</value>
+ <value type="int">12</value>
+ <value type="int">13</value>
+ <value type="int">14</value>
+ </valuelist>
+ <value type="int" key="PE.EnvironmentAspect.Base">2</value>
+ <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qtbot</value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+ <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/daniel_j/programming/c++/qtbot/qtbot.pro</value>
+ <value type="bool" key="QmakeProjectManager.QmakeRunConfiguration.UseLibrarySearchPath">true</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">qtbot.pro</value>
+ <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
+ <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory.default">/home/daniel_j/programming/c++/build-qtbot-Desktop-Debug</value>
+ <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+ <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+ <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+ <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+ <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+ </valuemap>
+ <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.TargetCount</variable>
+ <value type="int">1</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+ <value type="int">18</value>
+ </data>
+ <data>
+ <variable>Version</variable>
+ <value type="int">18</value>
+ </data>
+</qtcreator>