File indexing completed on 2024-05-05 04:47:08

0001 #ifndef STRIKE_H
0002 #define STRIKE_H
0003 
0004 #include <QFileInfo>
0005 #include <QObject>
0006 #include <QProcess>
0007 #include <QDebug>
0008 
0009 #include <MauiKit3/FileBrowsing/fmstatic.h>
0010 
0011 class Strike : public QObject
0012 {
0013     Q_OBJECT
0014 
0015 public:
0016     static Strike *instance()
0017     {
0018         static Strike strike;
0019         return &strike;
0020     }
0021 
0022     Strike(const Strike &) = delete;
0023     Strike &operator=(const Strike &) = delete;
0024     Strike(Strike &&) = delete;
0025     Strike &operator=(Strike &&) = delete;
0026 
0027 public slots:
0028     void requestFiles(const QStringList &urls)
0029     {
0030         qDebug() << "REQUEST FILES" << urls;
0031         QStringList res;
0032         for (const auto &url : urls) {
0033             const auto url_ = QUrl::fromUserInput(url);
0034             qDebug() << "REQUEST FILES" << url_.toString() << FMStatic::getMime(url_);
0035 
0036             if (FMStatic::checkFileType(FMStatic::FILTER_TYPE::TEXT, FMStatic::getMime(url_)))
0037                 res << url_.toString();
0038         }
0039 
0040         qDebug() << "REQUEST FILES" << res;
0041 
0042         emit this->openFiles(res);
0043     }
0044 
0045     bool run(const QString &process, const QStringList &params = {})
0046     {
0047         auto m_process = new QProcess;
0048         //            connect(myProcess,SIGNAL(readyReadStandardError()),this,SLOT(vEdProcess()));
0049         //            connect(myProcess,SIGNAL(readyReadStandardOutput()),this,SLOT(processStandardOutput()));
0050         connect(m_process, SIGNAL(finished(int)), m_process, SLOT(deleteLater()));
0051         connect(this, &QObject::destroyed, m_process, &QProcess::kill);
0052         m_process->start(process, params);
0053         return true;
0054     }
0055 
0056 signals:
0057     void openFiles(QStringList urls);
0058 
0059 private:
0060     explicit Strike(QObject *parent = nullptr)
0061         : QObject(parent)
0062     {
0063     }
0064 };
0065 
0066 #endif // STRIKE_H