Browse Source

work on the arg dialog as well as preparatory work for abstracting IG posts

logicp 5 years ago
parent
commit
4ba7cf7613
7 changed files with 420 additions and 144 deletions
  1. 95 10
      argdialog.cpp
  2. 35 0
      argdialog.h
  3. 170 45
      argdialog.ui
  4. 1 1
      client.cpp
  5. 23 49
      ky_gui.pro.user
  6. 8 14
      mainwindow.cpp
  7. 88 25
      ui_argdialog.h

+ 95 - 10
argdialog.cpp

@@ -1,27 +1,112 @@
 #include "argdialog.h"
 #include "ui_argdialog.h"
+#include <algorithm>
 #include <QDebug>
+#include <QStringList>
 #include <QIODevice>
 #include <vector>
+#include <QTableWidgetItem>
+#include <QDateTime>
+#include <QCalendarWidget>
+
 
 ArgDialog::ArgDialog(QWidget *parent) :
     QDialog(parent),
-    ui(new Ui::ArgDialog)
+    ui(new Ui::ArgDialog),
+    m_task(Task{}),
+    m_ig_post(IGPost{})
 {
     ui->setupUi(this);
     QObject::connect(ui->addFile, &QPushButton::clicked, this, [this]() {
-        auto file_name = QFileDialog::getOpenFileName(this,
-                                                tr("Open File"), "~", tr("Image Files (*.png *.jpg *.bmp)"));
-        qDebug() << "Selected file:" << file_name;
-        if (file_name.size() > 0) {
-            QFile file(file_name);
-            std::vector<char> byte_array{};
-            if (file.open(QIODevice::ReadOnly)) {
-                QByteArray bytes = file.readAll();
-                emit ArgDialog::uploadFile(bytes);
+        auto file_path = QFileDialog::getOpenFileName(this,
+                                                tr("Open File"), "~", tr("All Files (*.*)"));
+        qDebug() << "Selected file:" << file_path;
+        if (file_path.size() > 0) {
+            QFile file(file_path);
+//            std::vector<char> byte_array{};
+//            if (file.open(QIODevice::ReadOnly)) {
+//                QByteArray bytes = file.readAll();
+//                emit ArgDialog::uploadFile(bytes);
+//            }
+        }
+        auto slash_index = file_path.lastIndexOf("/") + 1;
+        QString file_name = file_path.right(file_path.size() - slash_index);
+
+        addItem(file_name, "file");
+
+        m_ig_post.video.name = file_name.toUtf8().constData();
+        m_ig_post.video.path = file_path.toUtf8().constData();
+    });
+
+    ui->argList->setHorizontalHeaderLabels(QStringList{"Value", "Type"});
+    ui->argList->setColumnWidth(0, 400);
+    ui->argList->setColumnWidth(1, 40);
+    ui->argList->verticalHeader()->setDefaultSectionSize(100);
+
+    QObject::connect(ui->addArgument, &QPushButton::clicked, this, [this]() {
+        QString text = ui->argInput->toPlainText();
+        QList<QListWidgetItem*> types = ui->argType->selectedItems();
+        auto type = types.size() > 0 ? types.at(0)->text() : "Unknown type";
+        if (text.size() > 0) {
+            addItem(text, type);
+            if (type == Args::HASHTAG_TYPE) {
+                addHashtag(text);
+            } else if (type == Args::DESCRIPTION_TYPE) {
+                m_ig_post.description = text.toUtf8().constData();
             }
+            ui->argInput->clear();
         }
     });
+
+    ui->argType->setItemSelected(ui->argType->item(0), true);
+    QDateTime date_time = QDateTime::currentDateTime();
+//    date_time.
+    ui->dateTime->setDateTime(QDateTime::currentDateTime());
+
+    QObject::connect(ui->dateTime, &QDateTimeEdit::dateTimeChanged, this, [this]() {
+        auto date_time = ui->dateTime->dateTime();
+        qDebug() << "Time changed to" << date_time;
+    });
+}
+
+void ArgDialog::addItem(QString value, QString type) {
+    QTableWidgetItem* item = new QTableWidgetItem(value);
+    QTableWidgetItem* item2 = new QTableWidgetItem(type);
+    auto row = ui->argList->rowCount();
+    ui->argList->insertRow(row);
+    ui->argList->setItem(row, 0, item);
+    ui->argList->setItem(row, 1, item2);
+}
+
+void ArgDialog::clearPost() {
+    m_ig_post.video = KFile{};
+    m_ig_post.datetime = "";
+    m_ig_post.hashtags = {};
+    m_ig_post.description = "";
+    m_ig_post.link_in_bio = "";
+    m_ig_post.requested_by = {};
+    m_ig_post.promote_share = "";
+    m_ig_post.requested_by_phrase = "";
+}
+
+void ArgDialog::clearTask() {
+    m_task.args = {};
+    m_task.mask = -1;
+    m_task.time = "";
+}
+
+void ArgDialog::addHashtag(QString tag) {
+    if (std::find(m_ig_post.hashtags.begin(), m_ig_post.hashtags.end(), tag.toUtf8().constData()) == m_ig_post.hashtags.end()) {
+        m_ig_post.hashtags.push_back(tag.toUtf8().constData());
+    } else {
+        const char* message = "Can't add the same hashtag twice";
+        qDebug() << message;
+        QMessageBox::warning(
+            this,
+            tr("Hashtags"),
+            tr(message)
+        );
+    }
 }
 
 ArgDialog::~ArgDialog()

+ 35 - 0
argdialog.h

@@ -5,6 +5,35 @@
 #include <QFileDialog>
 #include <QPushButton>
 #include <QFile>
+#include <string_view>
+#include <QMessageBox>
+
+namespace Args {
+    const QString DESCRIPTION_TYPE = "description";
+    const QString HASHTAG_TYPE = "hashtag";
+}
+
+typedef struct KFile {
+    std::string_view name;
+    std::string_view path;
+} KFile;
+
+typedef struct Task{
+    QString time;
+    int mask;
+    std::vector<std::string> args;
+} Task;
+
+typedef struct IGPost {
+    std::string description;
+    std::string datetime;
+    std::string promote_share;
+    std::string link_in_bio;
+    std::vector<std::string> hashtags;
+    std::vector<std::string> requested_by;
+    const char* requested_by_phrase = "The phrase was requested by ";
+    KFile video;
+} IGPost;
 
 namespace Ui {
 class ArgDialog;
@@ -22,7 +51,13 @@ signals:
     void uploadFile(QByteArray bytes);
 
 private:
+    void clearPost();
+    void clearTask();
+    void addHashtag(QString tag);
     Ui::ArgDialog *ui;
+    void addItem(QString value, QString type);
+    Task m_task;
+    IGPost m_ig_post;
 };
 
 #endif // ARGDIALOG_H

+ 170 - 45
argdialog.ui

@@ -6,22 +6,35 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>490</width>
-    <height>314</height>
+    <width>608</width>
+    <height>710</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Dialog</string>
   </property>
+  <property name="windowIcon">
+   <iconset>
+    <normaloff>favicon.ico</normaloff>favicon.ico</iconset>
+  </property>
+  <property name="styleSheet">
+   <string notr="true">background-color: rgb(33, 33, 33);</string>
+  </property>
   <widget class="QDialogButtonBox" name="argButtonBox">
    <property name="geometry">
     <rect>
-     <x>80</x>
-     <y>260</y>
-     <width>341</width>
+     <x>340</x>
+     <y>510</y>
+     <width>201</width>
      <height>32</height>
     </rect>
    </property>
+   <property name="layoutDirection">
+    <enum>Qt::LeftToRight</enum>
+   </property>
+   <property name="autoFillBackground">
+    <bool>false</bool>
+   </property>
    <property name="styleSheet">
     <string notr="true">background-color: rgb(203, 0, 239);
 color: rgb(16, 16, 16);</string>
@@ -30,30 +43,17 @@ color: rgb(16, 16, 16);</string>
     <enum>Qt::Horizontal</enum>
    </property>
    <property name="standardButtons">
-    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+    <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
    </property>
-  </widget>
-  <widget class="QListView" name="argList">
-   <property name="geometry">
-    <rect>
-     <x>60</x>
-     <y>140</y>
-     <width>361</width>
-     <height>91</height>
-    </rect>
-   </property>
-   <property name="styleSheet">
-    <string notr="true">background-color: rgb(255, 255, 255);
-color: rgb(5, 5, 5);
-font: 87 10pt &quot;Noto Sans&quot;;
-selection-background-color: rgb(255, 0, 174);</string>
+   <property name="centerButtons">
+    <bool>true</bool>
    </property>
   </widget>
   <widget class="QPushButton" name="addArgument">
    <property name="geometry">
     <rect>
-     <x>340</x>
-     <y>70</y>
+     <x>380</x>
+     <y>190</y>
      <width>80</width>
      <height>26</height>
     </rect>
@@ -66,26 +66,11 @@ color: rgb(16, 16, 16);</string>
     <string>Add</string>
    </property>
   </widget>
-  <widget class="QLineEdit" name="argInput">
-   <property name="geometry">
-    <rect>
-     <x>80</x>
-     <y>70</y>
-     <width>231</width>
-     <height>26</height>
-    </rect>
-   </property>
-   <property name="styleSheet">
-    <string notr="true">background-color: rgb(255, 255, 255);
-color: rgb(5, 5, 5);
-font: 87 10pt &quot;Noto Sans&quot;;</string>
-   </property>
-  </widget>
   <widget class="QLabel" name="argDialogTitle">
    <property name="geometry">
     <rect>
-     <x>130</x>
-     <y>0</y>
+     <x>210</x>
+     <y>10</y>
      <width>231</width>
      <height>51</height>
     </rect>
@@ -107,8 +92,8 @@ font: 87 10pt &quot;Noto Sans&quot;;</string>
   <widget class="QPushButton" name="addFile">
    <property name="geometry">
     <rect>
-     <x>340</x>
-     <y>100</y>
+     <x>190</x>
+     <y>220</y>
      <width>80</width>
      <height>26</height>
     </rect>
@@ -124,14 +109,154 @@ color: rgb(16, 16, 16);</string>
   <widget class="QLabel" name="label">
    <property name="geometry">
     <rect>
-     <x>70</x>
-     <y>120</y>
+     <x>60</x>
+     <y>290</y>
+     <width>91</width>
+     <height>18</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Items to send</string>
+   </property>
+  </widget>
+  <widget class="QTableWidget" name="argList">
+   <property name="geometry">
+    <rect>
+     <x>60</x>
+     <y>320</y>
+     <width>481</width>
+     <height>171</height>
+    </rect>
+   </property>
+   <property name="styleSheet">
+    <string notr="true">background-color: rgb(0, 255, 0);
+color: rgb(5, 5, 5);
+font: 87 12pt &quot;Noto Sans&quot;;
+selection-background-color: rgb(255, 0, 174);</string>
+   </property>
+   <property name="columnCount">
+    <number>2</number>
+   </property>
+   <attribute name="horizontalHeaderCascadingSectionResizes">
+    <bool>false</bool>
+   </attribute>
+   <attribute name="horizontalHeaderMinimumSectionSize">
+    <number>100</number>
+   </attribute>
+   <attribute name="horizontalHeaderDefaultSectionSize">
+    <number>200</number>
+   </attribute>
+   <attribute name="verticalHeaderMinimumSectionSize">
+    <number>100</number>
+   </attribute>
+   <attribute name="verticalHeaderDefaultSectionSize">
+    <number>100</number>
+   </attribute>
+   <column/>
+   <column/>
+  </widget>
+  <widget class="QListWidget" name="argType">
+   <property name="geometry">
+    <rect>
+     <x>190</x>
+     <y>80</y>
      <width>81</width>
+     <height>41</height>
+    </rect>
+   </property>
+   <property name="styleSheet">
+    <string notr="true">background-color: rgb(0, 255, 0);
+color: rgb(5, 5, 5);
+font: 87 10pt &quot;Noto Sans&quot;;
+selection-background-color: rgb(255, 0, 174);</string>
+   </property>
+   <item>
+    <property name="text">
+     <string>description</string>
+    </property>
+   </item>
+   <item>
+    <property name="text">
+     <string>hashtag</string>
+    </property>
+   </item>
+  </widget>
+  <widget class="QLabel" name="label_2">
+   <property name="geometry">
+    <rect>
+     <x>130</x>
+     <y>80</y>
+     <width>58</width>
      <height>18</height>
     </rect>
    </property>
    <property name="text">
-    <string>Output</string>
+    <string>Type</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_3">
+   <property name="geometry">
+    <rect>
+     <x>120</x>
+     <y>130</y>
+     <width>41</width>
+     <height>18</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Input</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_4">
+   <property name="geometry">
+    <rect>
+     <x>90</x>
+     <y>220</y>
+     <width>71</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Attachment</string>
+   </property>
+  </widget>
+  <widget class="QTextEdit" name="argInput">
+   <property name="geometry">
+    <rect>
+     <x>190</x>
+     <y>130</y>
+     <width>281</width>
+     <height>51</height>
+    </rect>
+   </property>
+   <property name="styleSheet">
+    <string notr="true">background-color: rgb(0, 255, 0);
+color: rgb(5, 5, 5);
+font: 87 12pt &quot;Noto Sans&quot;;
+selection-background-color: rgb(255, 0, 174);</string>
+   </property>
+  </widget>
+  <widget class="QLabel" name="label_5">
+   <property name="geometry">
+    <rect>
+     <x>130</x>
+     <y>260</y>
+     <width>31</width>
+     <height>20</height>
+    </rect>
+   </property>
+   <property name="text">
+    <string>Time</string>
+   </property>
+  </widget>
+  <widget class="QDateTimeEdit" name="dateTime">
+   <property name="geometry">
+    <rect>
+     <x>200</x>
+     <y>260</y>
+     <width>194</width>
+     <height>27</height>
+    </rect>
    </property>
   </widget>
  </widget>

+ 1 - 1
client.cpp

@@ -187,7 +187,7 @@ void Client::sendPackets(uint8_t* data, int size) {
     uint32_t total_size = static_cast<uint32_t>(size + HEADER_SIZE);
     uint32_t total_packets = static_cast<uint32_t>(ceil(
         static_cast<double>(
-            total_size / MAX_PACKET_SIZE) // total size / packet
+            static_cast<double>(total_size) / static_cast<double>(MAX_PACKET_SIZE)) // total size / packet
         )
     );
 

+ 23 - 49
ky_gui.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.9.2, 2019-12-27T15:00:41. -->
+<!-- Written by QtCreator 4.11.0, 2019-12-31T23:52:29. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
@@ -73,8 +73,6 @@
     <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>
@@ -84,8 +82,6 @@
      </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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@@ -95,14 +91,12 @@
      </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.DisplayName">Build</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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@@ -112,25 +106,21 @@
      </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.DisplayName">Clean</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">Debug</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">/data/c/build-ky_gui-Desktop_Qt_5_13_0_GCC_64bit-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>
@@ -140,8 +130,6 @@
      </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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@@ -151,14 +139,12 @@
      </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.DisplayName">Build</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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@@ -168,25 +154,21 @@
      </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.DisplayName">Clean</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">Release</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">/data/c/build-ky_gui-Desktop_Qt_5_13_0_GCC_64bit-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>
@@ -196,8 +178,6 @@
      </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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@@ -207,14 +187,12 @@
      </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.DisplayName">Build</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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@@ -224,25 +202,21 @@
      </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.DisplayName">Clean</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">Profile</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.3">
     <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/data/c/build-ky_gui-Desktop_Qt_5_13_0_GCC_64bit-KY 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>
@@ -252,8 +226,6 @@
      </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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
@@ -263,14 +235,12 @@
      </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.DisplayName">Build</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.BuildTargets"/>
       <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
@@ -280,29 +250,25 @@
      </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.DisplayName">Clean</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">KY Debug</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">KY Debug</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>
    <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">4</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.DisplayName">Deploy</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 Configuration</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>
@@ -314,6 +280,14 @@
     </valuelist>
     <valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/>
     <value type="int" key="Analyzer.Perf.Frequency">250</value>
+    <valuelist type="QVariantList" key="Analyzer.Perf.RecordArguments">
+     <value type="QString">-e</value>
+     <value type="QString">cpu-cycles</value>
+     <value type="QString">--call-graph</value>
+     <value type="QString">dwarf,4096</value>
+     <value type="QString">-F</value>
+     <value type="QString">250</value>
+    </valuelist>
     <value type="QString" key="Analyzer.Perf.SampleMode">-F</value>
     <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
     <value type="int" key="Analyzer.Perf.StackSize">4096</value>
@@ -359,11 +333,11 @@
     </valuelist>
     <value type="int" key="PE.EnvironmentAspect.Base">2</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">ky_gui</value>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/data/c/ky_gui/ky_gui.pro</value>
+    <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/data/c/ky_gui/ky_gui.pro</value>
     <value type="QString" key="RunConfiguration.Arguments">127.0.0.1 9009 test message</value>
-    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.Arguments.multi">false</value>
+    <value type="QString" key="RunConfiguration.OverrideDebuggerStartup"></value>
     <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
     <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
     <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
@@ -382,10 +356,10 @@
  </data>
  <data>
   <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
-  <value type="int">21</value>
+  <value type="int">22</value>
  </data>
  <data>
   <variable>Version</variable>
-  <value type="int">21</value>
+  <value type="int">22</value>
  </data>
 </qtcreator>

+ 8 - 14
mainwindow.cpp

@@ -59,11 +59,7 @@ void MainWindow::connectClient() {
         q_client->sendMessage(send_message_box->toPlainText());
         send_message_box->clear();
     });
-    // TODO: Handle enter key
-//    QObject::connect(send_message_box, &QTextEdit::keyReleaseEvent, this, [q_client, send_message_box]() {
-//        q_client->sendMessage(send_message_box->toPlainText());
-//        send_message_box->clear();
-//    });
+
     QListWidget* q_list_widget = ui->appList;
     QObject::connect(q_list_widget, &QListWidget::itemSelectionChanged, this, [q_client, q_list_widget]() {
         QList<QListWidgetItem*> items = q_list_widget->selectedItems();
@@ -88,20 +84,18 @@ void MainWindow::connectClient() {
     });
 
     QObject::connect(ui->addArgs, &QPushButton::clicked, this, [this]() {
-        auto items = ui->appList->selectedItems();
-        if (items.size() == 1) {
-            // open dialog to add arguments
-            arg_ui->show();
-        } else if (items.size() == 0) {
-            qDebug() << "You must select an App to add arguments to";
-        } else {
-            qDebug() << "Can only add arguments to one app. Please select just one app before adding arguments";
-        }
+        arg_ui->show();
     });
 
     QObject::connect(arg_ui, &ArgDialog::uploadFile, this, [q_client](QByteArray bytes) {
         q_client->sendFile(bytes);
     });
+
+    // TODO: Handle enter key
+    //    QObject::connect(send_message_box, &QTextEdit::keyReleaseEvent, this, [q_client, send_message_box]() {
+    //        q_client->sendMessage(send_message_box->toPlainText());
+    //        send_message_box->clear();
+    //    });
 }
 
 /**

+ 88 - 25
ui_argdialog.h

@@ -10,13 +10,17 @@
 #define UI_ARGDIALOG_H
 
 #include <QtCore/QVariant>
+#include <QtGui/QIcon>
 #include <QtWidgets/QApplication>
+#include <QtWidgets/QDateTimeEdit>
 #include <QtWidgets/QDialog>
 #include <QtWidgets/QDialogButtonBox>
+#include <QtWidgets/QHeaderView>
 #include <QtWidgets/QLabel>
-#include <QtWidgets/QLineEdit>
-#include <QtWidgets/QListView>
+#include <QtWidgets/QListWidget>
 #include <QtWidgets/QPushButton>
+#include <QtWidgets/QTableWidget>
+#include <QtWidgets/QTextEdit>
 
 QT_BEGIN_NAMESPACE
 
@@ -24,46 +28,46 @@ class Ui_ArgDialog
 {
 public:
     QDialogButtonBox *argButtonBox;
-    QListView *argList;
     QPushButton *addArgument;
-    QLineEdit *argInput;
     QLabel *argDialogTitle;
     QPushButton *addFile;
     QLabel *label;
+    QTableWidget *argList;
+    QListWidget *argType;
+    QLabel *label_2;
+    QLabel *label_3;
+    QLabel *label_4;
+    QTextEdit *argInput;
+    QLabel *label_5;
+    QDateTimeEdit *dateTime;
 
     void setupUi(QDialog *ArgDialog)
     {
         if (ArgDialog->objectName().isEmpty())
             ArgDialog->setObjectName(QString::fromUtf8("ArgDialog"));
-        ArgDialog->resize(490, 314);
+        ArgDialog->resize(608, 710);
+        QIcon icon;
+        icon.addFile(QString::fromUtf8("favicon.ico"), QSize(), QIcon::Normal, QIcon::Off);
+        ArgDialog->setWindowIcon(icon);
+        ArgDialog->setStyleSheet(QString::fromUtf8("background-color: rgb(33, 33, 33);"));
         argButtonBox = new QDialogButtonBox(ArgDialog);
         argButtonBox->setObjectName(QString::fromUtf8("argButtonBox"));
-        argButtonBox->setGeometry(QRect(80, 260, 341, 32));
+        argButtonBox->setGeometry(QRect(340, 510, 201, 32));
+        argButtonBox->setLayoutDirection(Qt::LeftToRight);
+        argButtonBox->setAutoFillBackground(false);
         argButtonBox->setStyleSheet(QString::fromUtf8("background-color: rgb(203, 0, 239);\n"
 "color: rgb(16, 16, 16);"));
         argButtonBox->setOrientation(Qt::Horizontal);
-        argButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
-        argList = new QListView(ArgDialog);
-        argList->setObjectName(QString::fromUtf8("argList"));
-        argList->setGeometry(QRect(60, 140, 361, 91));
-        argList->setStyleSheet(QString::fromUtf8("background-color: rgb(255, 255, 255);\n"
-"color: rgb(5, 5, 5);\n"
-"font: 87 10pt \"Noto Sans\";\n"
-"selection-background-color: rgb(255, 0, 174);"));
+        argButtonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Save);
+        argButtonBox->setCenterButtons(true);
         addArgument = new QPushButton(ArgDialog);
         addArgument->setObjectName(QString::fromUtf8("addArgument"));
-        addArgument->setGeometry(QRect(340, 70, 80, 26));
+        addArgument->setGeometry(QRect(380, 190, 80, 26));
         addArgument->setStyleSheet(QString::fromUtf8("background-color: rgb(203, 0, 239);\n"
 "color: rgb(16, 16, 16);"));
-        argInput = new QLineEdit(ArgDialog);
-        argInput->setObjectName(QString::fromUtf8("argInput"));
-        argInput->setGeometry(QRect(80, 70, 231, 26));
-        argInput->setStyleSheet(QString::fromUtf8("background-color: rgb(255, 255, 255);\n"
-"color: rgb(5, 5, 5);\n"
-"font: 87 10pt \"Noto Sans\";"));
         argDialogTitle = new QLabel(ArgDialog);
         argDialogTitle->setObjectName(QString::fromUtf8("argDialogTitle"));
-        argDialogTitle->setGeometry(QRect(130, 0, 231, 51));
+        argDialogTitle->setGeometry(QRect(210, 10, 231, 51));
         QFont font;
         font.setPointSize(22);
         font.setBold(true);
@@ -72,12 +76,58 @@ public:
         argDialogTitle->setStyleSheet(QString::fromUtf8("color: rgb(170, 0, 255);"));
         addFile = new QPushButton(ArgDialog);
         addFile->setObjectName(QString::fromUtf8("addFile"));
-        addFile->setGeometry(QRect(340, 100, 80, 26));
+        addFile->setGeometry(QRect(190, 220, 80, 26));
         addFile->setStyleSheet(QString::fromUtf8("background-color: rgb(203, 0, 239);\n"
 "color: rgb(16, 16, 16);"));
         label = new QLabel(ArgDialog);
         label->setObjectName(QString::fromUtf8("label"));
-        label->setGeometry(QRect(70, 120, 81, 18));
+        label->setGeometry(QRect(60, 290, 91, 18));
+        argList = new QTableWidget(ArgDialog);
+        if (argList->columnCount() < 2)
+            argList->setColumnCount(2);
+        argList->setObjectName(QString::fromUtf8("argList"));
+        argList->setGeometry(QRect(60, 320, 481, 171));
+        argList->setStyleSheet(QString::fromUtf8("background-color: rgb(0, 255, 0);\n"
+"color: rgb(5, 5, 5);\n"
+"font: 87 12pt \"Noto Sans\";\n"
+"selection-background-color: rgb(255, 0, 174);"));
+        argList->setColumnCount(2);
+        argList->horizontalHeader()->setCascadingSectionResizes(false);
+        argList->horizontalHeader()->setMinimumSectionSize(100);
+        argList->horizontalHeader()->setDefaultSectionSize(200);
+        argList->verticalHeader()->setMinimumSectionSize(100);
+        argList->verticalHeader()->setDefaultSectionSize(100);
+        argType = new QListWidget(ArgDialog);
+        new QListWidgetItem(argType);
+        new QListWidgetItem(argType);
+        argType->setObjectName(QString::fromUtf8("argType"));
+        argType->setGeometry(QRect(190, 80, 81, 41));
+        argType->setStyleSheet(QString::fromUtf8("background-color: rgb(0, 255, 0);\n"
+"color: rgb(5, 5, 5);\n"
+"font: 87 10pt \"Noto Sans\";\n"
+"selection-background-color: rgb(255, 0, 174);"));
+        label_2 = new QLabel(ArgDialog);
+        label_2->setObjectName(QString::fromUtf8("label_2"));
+        label_2->setGeometry(QRect(130, 80, 58, 18));
+        label_3 = new QLabel(ArgDialog);
+        label_3->setObjectName(QString::fromUtf8("label_3"));
+        label_3->setGeometry(QRect(120, 130, 41, 18));
+        label_4 = new QLabel(ArgDialog);
+        label_4->setObjectName(QString::fromUtf8("label_4"));
+        label_4->setGeometry(QRect(90, 220, 71, 20));
+        argInput = new QTextEdit(ArgDialog);
+        argInput->setObjectName(QString::fromUtf8("argInput"));
+        argInput->setGeometry(QRect(190, 130, 281, 51));
+        argInput->setStyleSheet(QString::fromUtf8("background-color: rgb(0, 255, 0);\n"
+"color: rgb(5, 5, 5);\n"
+"font: 87 12pt \"Noto Sans\";\n"
+"selection-background-color: rgb(255, 0, 174);"));
+        label_5 = new QLabel(ArgDialog);
+        label_5->setObjectName(QString::fromUtf8("label_5"));
+        label_5->setGeometry(QRect(130, 260, 31, 20));
+        dateTime = new QDateTimeEdit(ArgDialog);
+        dateTime->setObjectName(QString::fromUtf8("dateTime"));
+        dateTime->setGeometry(QRect(200, 260, 194, 27));
 
         retranslateUi(ArgDialog);
         QObject::connect(argButtonBox, SIGNAL(accepted()), ArgDialog, SLOT(accept()));
@@ -92,7 +142,20 @@ public:
         addArgument->setText(QCoreApplication::translate("ArgDialog", "Add", nullptr));
         argDialogTitle->setText(QCoreApplication::translate("ArgDialog", "Add Arguments", nullptr));
         addFile->setText(QCoreApplication::translate("ArgDialog", "File", nullptr));
-        label->setText(QCoreApplication::translate("ArgDialog", "Output", nullptr));
+        label->setText(QCoreApplication::translate("ArgDialog", "Items to send", nullptr));
+
+        const bool __sortingEnabled = argType->isSortingEnabled();
+        argType->setSortingEnabled(false);
+        QListWidgetItem *___qlistwidgetitem = argType->item(0);
+        ___qlistwidgetitem->setText(QCoreApplication::translate("ArgDialog", "description", nullptr));
+        QListWidgetItem *___qlistwidgetitem1 = argType->item(1);
+        ___qlistwidgetitem1->setText(QCoreApplication::translate("ArgDialog", "hashtag", nullptr));
+        argType->setSortingEnabled(__sortingEnabled);
+
+        label_2->setText(QCoreApplication::translate("ArgDialog", "Type", nullptr));
+        label_3->setText(QCoreApplication::translate("ArgDialog", "Input", nullptr));
+        label_4->setText(QCoreApplication::translate("ArgDialog", "Attachment", nullptr));
+        label_5->setText(QCoreApplication::translate("ArgDialog", "Time", nullptr));
     } // retranslateUi
 
 };