File indexing completed on 2024-04-14 14:59:40
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 MAINWINDOW_H 0009 #define MAINWINDOW_H 0010 0011 #include <QComboBox> 0012 #include <QDockWidget> 0013 #include <QInputDialog> 0014 #include <QLabel> 0015 #include <QObject> 0016 #include <QTreeView> 0017 0018 #include <KActionCollection> 0019 #include <KCDDB/CDInfo> 0020 #include <KCDDB/Client> 0021 #include <KCDDB/KCDDB> 0022 #include <KCModuleLoader> 0023 #include <KComboBox> 0024 #include <KConfigDialog> 0025 #include <KLocalizedString> 0026 #include <KMessageBox> 0027 #include <KStandardAction> 0028 #include <KTextEdit> 0029 #include <KXmlGuiWindow> 0030 #include <QLineEdit> 0031 #include <QPushButton> 0032 #include <QStatusBar> 0033 0034 #include "utils/cuesheetwriter.h" 0035 #include "utils/error.h" 0036 0037 #include "models/cddamodel.h" 0038 #include "models/profilemodel.h" 0039 0040 #include "preferences.h" 0041 #include "widgets/cddaheaderwidget.h" 0042 #include "widgets/devicewidget.h" 0043 #include "widgets/generalsettingswidget.h" 0044 #include "widgets/profilewidget.h" 0045 #include "widgets/remoteserversettingswidget.h" 0046 0047 #include "dialogs/errordialog.h" 0048 #include "dialogs/extractingprogressdialog.h" 0049 0050 #include "utils/encoderassistant.h" 0051 0052 class MainWindow : public KXmlGuiWindow 0053 { 0054 Q_OBJECT 0055 0056 public: 0057 explicit MainWindow(QWidget *parent = nullptr); 0058 ~MainWindow() override; 0059 0060 private: 0061 bool firstStart(); 0062 0063 private Q_SLOTS: 0064 void eject(); 0065 void cddb_lookup(); 0066 void cddb_submit(); 0067 void rip(); 0068 void configure(); 0069 void edit(); 0070 0071 void new_audio_disc_detected(); 0072 void audio_disc_removed(); 0073 0074 void cddb_lookup_start(); 0075 void cddb_lookup_done(const bool successful); 0076 0077 void update_layout(); 0078 0079 void enable_layout(bool enabled); 0080 void enable_cddb_submit(bool enabled = true); 0081 void disable_cddb_submit(); 0082 0083 void configuration_updated(const QString &dialog_name); 0084 0085 void current_profile_updated_from_ui(int row); 0086 void update_profile_action(int index); 0087 void update_profile_action(); 0088 0089 void split_titles(); 0090 void swap_artists_and_titles(); 0091 void capitalize(); 0092 void auto_fill_artists(); 0093 void toggle(const QModelIndex &idx); 0094 void resizeColumns(); 0095 0096 void select_all(); 0097 void select_none(); 0098 void invert_selection(); 0099 0100 void cdda_context_menu(const QPoint &pos); 0101 0102 void selection_changed(const int num_selected); 0103 0104 private: 0105 CDDAModel *cdda_model; 0106 ProfileModel *profile_model; 0107 0108 QLabel *profile_label; 0109 KComboBox *profile_combobox; 0110 0111 void setup_actions(); 0112 void setup_layout(); 0113 0114 QTreeView *cdda_tree_view; 0115 0116 QDockWidget *cdda_header_dock; 0117 CDDAHeaderWidget *cdda_header_widget; 0118 0119 bool layout_enabled; 0120 0121 int current_profile_index; 0122 void set_profile(int profile_index); 0123 0124 deviceWidget *device_widget; 0125 }; 0126 0127 #endif