File indexing completed on 2024-04-21 04:48:10

0001 /* AUDEX CDDA EXTRACTOR
0002  * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles
0003  * <https://userbase.kde.org/Audex>
0004  *
0005  * SPDX-License-Identifier: GPL-3.0-or-later
0006  */
0007 
0008 #ifndef EXTRACTINGPROGRESSDIALOG_H
0009 #define EXTRACTINGPROGRESSDIALOG_H
0010 
0011 #include <QAbstractButton>
0012 #include <QDBusConnection>
0013 #include <QDBusMessage>
0014 #include <QDialog>
0015 #include <QDialogButtonBox>
0016 #include <QPushButton>
0017 #include <QVBoxLayout>
0018 #include <QWidget>
0019 
0020 #include <KColorScheme>
0021 #include <KConfigGroup>
0022 #include <KMessageBox>
0023 
0024 #include "core/audex.h"
0025 #include "models/cddamodel.h"
0026 #include "models/profilemodel.h"
0027 
0028 #include "logviewdialog.h"
0029 
0030 #include "ui_extractingprogresswidgetUI.h"
0031 
0032 class ExtractingProgressDialog : public QDialog
0033 {
0034     Q_OBJECT
0035 
0036 public:
0037     ExtractingProgressDialog(ProfileModel *profile_model, CDDAModel *cdda_model, QWidget *parent = nullptr);
0038     ~ExtractingProgressDialog() override;
0039 
0040 public Q_SLOTS:
0041     int exec() override;
0042 
0043 private Q_SLOTS:
0044     void toggle_details();
0045     void cancel();
0046 
0047     void slotCancel();
0048     void slotClose();
0049     void slotEncoderLog();
0050     void slotExtractLog();
0051 
0052     void show_changed_extract_track(int no, int total, const QString &artist, const QString &title);
0053     void show_changed_encode_track(int no, int total, const QString &filename);
0054 
0055     void show_progress_extract_track(int percent);
0056     void show_progress_extract_overall(int percent);
0057     void show_progress_encode_track(int percent);
0058     void show_progress_encode_overall(int percent);
0059 
0060     void show_speed_encode(double speed);
0061     void show_speed_extract(double speed);
0062 
0063     void conclusion(bool successful);
0064 
0065     void show_info(const QString &message);
0066     void show_warning(const QString &message);
0067     void show_error(const QString &message, const QString &details);
0068 
0069     void ask_timeout();
0070 
0071 private:
0072     QVBoxLayout *mainLayout;
0073     QDialogButtonBox *buttonBox;
0074     QPushButton *cancelButton;
0075 
0076     void calc_overall_progress();
0077     void open_encoder_log_view_dialog();
0078     void open_extract_log_view_dialog();
0079     void update_unity();
0080 
0081 private:
0082     Ui::ExtractingProgressWidgetUI ui;
0083 
0084     Audex *audex;
0085     ProfileModel *profile_model;
0086     CDDAModel *cdda_model;
0087 
0088     bool finished;
0089 
0090     bool progressbar_np_flag;
0091     int current_encode_overall;
0092     int current_extract_overall;
0093     unsigned int current_track;
0094 
0095     bool p_single_file;
0096 
0097     QDBusMessage unity_message;
0098 };
0099 
0100 #endif