Prechádzať zdrojové kódy

finally control over file dialog appearance

logicp 5 rokov pred
rodič
commit
191c806a30
5 zmenil súbory, kde vykonal 30 pridanie a 5 odobranie
  1. 1 0
      include/argdialog.h
  2. 13 0
      include/kfiledialog.h
  3. 3 1
      ky_gui.pro
  4. 2 4
      src/argdialog.cpp
  5. 11 0
      src/kfiledialog.cpp

+ 1 - 0
include/argdialog.h

@@ -10,6 +10,7 @@
 #include <unordered_map>
 #include <QKeyEvent>
 #include <headers/util.hpp>
+#include <include/kfiledialog.h>
 
 namespace Args {
 const QString HEADER_TYPE = "header";

+ 13 - 0
include/kfiledialog.h

@@ -0,0 +1,13 @@
+#ifndef KFILEDIALOG_H
+#define KFILEDIALOG_H
+
+#include <QFileDialog>
+
+class KFileDialog : QFileDialog {
+Q_OBJECT
+public:
+    KFileDialog();
+    QString openFileDialog();
+};
+
+#endif // KFILEDIALOG_H

+ 3 - 1
ky_gui.pro

@@ -30,6 +30,7 @@ QMAKE_CXXFLAGS += "-fno-sized-deallocation"
 SOURCES += \
         src/argdialog.cpp \
         src/consoledialog.cpp \
+        src/kfiledialog.cpp \
         src/main.cpp \
         src/mainwindow.cpp \
         src/client.cpp \
@@ -46,7 +47,8 @@ HEADERS += \
         headers/rapidjson/writer.h \
         headers/rapidjson/stringbuffer.h \
         headers/rapidjson/document.h \
-        include/connection_indicator.h
+        include/connection_indicator.h \
+        include/kfiledialog.h
 
 FORMS += \
         argdialog.ui \

+ 2 - 4
src/argdialog.cpp

@@ -18,10 +18,8 @@ ArgDialog::ArgDialog(QWidget *parent) :
 {
     ui->setupUi(this);
     QObject::connect(ui->addFile, &QPushButton::clicked, this, [this]() {
-        QFileDialog file_dialog;
-        file_dialog.setStyleSheet("QFileDialog QWidget { color: white; font-weight: 700}");
-        auto file_path = file_dialog.getOpenFileName(this,
-                                                     tr("Open File"), "~", tr("All Files (*.*)"), nullptr, QFileDialog::DontUseNativeDialog);
+        KFileDialog file_dialog{};
+        auto file_path = file_dialog.openFileDialog();
         qDebug() << "Selected file:" << file_path;
         if (file_path.size() > 0) {
             auto slash_index = file_path.lastIndexOf("/") + 1;

+ 11 - 0
src/kfiledialog.cpp

@@ -0,0 +1,11 @@
+#include <include/kfiledialog.h>
+
+KFileDialog::KFileDialog()
+{
+    this->setStyleSheet("QFileDialog QWidget { background-color: #2f535f; color: rgb(131, 148, 150); font-weight: 700;}");
+}
+
+QString KFileDialog::openFileDialog() {
+    return this->getOpenFileName(this,
+                                                 tr("Open File"), "~", tr("All Files (*.*)"), nullptr, QFileDialog::DontUseNativeDialog);
+}