X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2FDialog_MainWindow.h;h=804332e9e9575da644cdc5e7cbb20fa2f0d1fc1e;hb=8ae0a6b4883dbe193b3ab8f33a592b6a61c35da1;hp=d593dc0dd72b716d01165aabd11165edd9cca722;hpb=10ae6c84519e28595b6ac72f1590b60b9bde8d1f;p=lamexp%2FLameXP.git diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h index d593dc0d..804332e9 100644 --- a/src/Dialog_MainWindow.h +++ b/src/Dialog_MainWindow.h @@ -1,11 +1,12 @@ /////////////////////////////////////////////////////////////////////////////// // LameXP - Audio Encoder Front-End -// Copyright (C) 2004-2011 LoRd_MuldeR +// Copyright (C) 2004-2023 LoRd_MuldeR // // This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by +// it under the terms of the GNU GENERAL PUBLIC LICENSE as published by // the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. +// (at your option) any later version; always including the non-optional +// LAMEXP GNU GENERAL PUBLIC LICENSE ADDENDUM. See "License.txt" file! // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -21,27 +22,47 @@ #pragma once -#include "../tmp/UIC_MainWindow.h" +#include //Class declarations -class QFileSystemModelEx; -class WorkingBanner; -class MessageHandlerThread; +class AbstractEncoder; class AudioFileModel; +class AudioFileModel_MetaInfo; +class CustomEventFilter; +class DropBox; +class FileListModel; +class MessageHandlerThread; class MetaInfoModel; -class SettingsModel; +class QActionGroup; class QButtonGroup; -class FileListModel; -class AbstractEncoder; +class QFileSystemModelEx; +class QLabel; class QMenu; -class DropBox; +class QUrl; +class QModelIndex; +class QEventLoop; +class SettingsModel; +class WorkingBanner; -class MainWindow: public QMainWindow, private Ui::MainWindow +//UIC forward declartion +namespace Ui +{ + class MainWindow; +} + +//IPC forward declartion +namespace MUtils +{ + class IPCChannel; +} + +//MainWindow class +class MainWindow: public QMainWindow { Q_OBJECT public: - MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, SettingsModel *settingsModel, QWidget *parent = 0); + MainWindow(MUtils::IPCChannel *const ipcChannel, FileListModel *const fileListModel, AudioFileModel_MetaInfo *const metaInfo, SettingsModel *const settingsModel, QWidget *const parent = 0); ~MainWindow(void); bool isAccepted() { return m_accepted; } @@ -57,28 +78,38 @@ private slots: void aftenDRCModeChanged(int value); void aftenFastAllocationChanged(bool checked); void aftenSearchSizeChanged(int value); - void autoDetectInstancesChanged(bool checked); + void autoDetectInstancesChanged(const bool checked); void bitrateManagementEnabledChanged(bool checked); void bitrateManagementMaxChanged(int value); void bitrateManagementMinChanged(int value); void browseCustomTempFolderButtonClicked(void); + void centerOutputFolderModel(void); + void centerOutputFolderModel_doAsync(void); void channelModeChanged(int value); void checkForBetaUpdatesActionTriggered(bool checked); void checkUpdatesActionActivated(void); void clearFilesButtonClicked(void); void clearMetaButtonClicked(void); void closeButtonClicked(void); + void compressionTabEventOccurred(QWidget*, QEvent*); + void cornerWidgetEventOccurred(QWidget *sender, QEvent *event); void customParamsChanged(void); + void customParamsHelpRequested(QWidget *obj, QEvent *event); void customTempFolderChanged(const QString &text); void disableNeroAacNotificationsActionTriggered(bool checked); void disableShellIntegrationActionTriggered(bool); + void disableTrayIconActionTriggered(bool); void disableSlowStartupNotificationsActionTriggered(bool checked); void disableSoundsActionTriggered(bool checked); void disableUpdateReminderActionTriggered(bool checked); void documentActionActivated(void); void editMetaButtonClicked(void); void encodeButtonClicked(void); + void exportCsvContextActionTriggered(void); void fileDownButtonClicked(void); + void fileExtAddButtonClicked(); + void fileExtModelChanged(); + void fileExtRemoveButtonClicked(); void fileUpButtonClicked(void); void findFileContextActionTriggered(void); void forceStereoDownmixEnabledChanged(bool checked); @@ -86,33 +117,59 @@ private slots: void gotoFavoriteFolder(void); void gotoHomeFolderButtonClicked(void); void gotoMusicFolderButtonClicked(void); + void goUpFolderContextActionTriggered(void); void handleDelayedFiles(void); + void handleDroppedFiles(void); + void hibernateComputerActionTriggered(bool checked); void importCueSheetActionTriggered(bool checked); + void importCsvContextActionTriggered(void); void initOutputFolderModel(void); + void initOutputFolderModel_doAsync(void); + void keepOriginalDateTimeChanged(bool checked); void languageActionActivated(QAction *action); void languageFromFileActionActivated(bool checked); void makeFolderButtonClicked(void); void metaTagsEnabledChanged(void); void neroAAC2PassChanged(bool checked); void neroAACProfileChanged(int value); + void normalizationCoupledChanged(bool checked); + void normalizationDynamicChanged(bool checked); void normalizationEnabledChanged(bool checked); + void normalizationFilterSizeChanged(int value); + void normalizationFilterSizeFinished(void); void normalizationMaxVolumeChanged(double volume); void notifyOtherInstance(void); void openFolderActionActivated(void); + void opusSettingsChanged(void); void outputFolderContextMenu(const QPoint &pos); + void outputFolderDirectoryLoaded(const QString &path); + void outputFolderEditFinished(void); + void outputFolderItemExpanded(const QModelIndex &item); + void outputFolderMouseEventOccurred(QWidget *sender, QEvent *event); + void outputFolderViewEventOccurred(QWidget *sender, QEvent *event); + void outputFolderRowsInserted(const QModelIndex &parent, int start, int end); void outputFolderViewClicked(const QModelIndex &index); void outputFolderViewMoved(const QModelIndex &index); + void overwriteModeChanged(int id); void playlistEnabledChanged(void); void prependRelativePathChanged(void); void previewContextActionTriggered(void); + void refreshFolderContextActionTriggered(void); void removeFileButtonClicked(void); - void renameOutputEnabledChanged(bool checked); + void renameButtonClicked(bool checked); + void renameOutputEnabledChanged(const bool &checked); void renameOutputPatternChanged(void); - void renameOutputPatternChanged(const QString &text); + void renameOutputPatternChanged(const QString &text, const bool &silent = false); + void renameRegExpEnabledChanged(const bool &checked); + void renameRegExpValueChanged(void); + void renameRegExpSearchChanged (const QString &text, const bool &silent = false); + void renameRegExpReplaceChanged(const QString &text, const bool &silent = false); void resetAdvancedOptionsButtonClicked(void); void restoreCursor(void); void samplingRateChanged(int value); void saveToSourceFolderChanged(void); + void showAnnounceBox(void); + void showCustomParamsHelpScreen(const QString &toolName, const QString &command); void showDetailsButtonClicked(void); void showDropBoxWidgetActionTriggered(bool checked); void showFolderContextActionTriggered(void); @@ -122,64 +179,93 @@ private slots: void sourceModelChanged(void); void styleActionActivated(QAction *action); void tabActionActivated(QAction *action); - void tabPageChanged(int idx); + void tabPageChanged(int idx, const bool silent = false); void toneAdjustBassChanged(double value); void toneAdjustTrebleChanged(double value); void toneAdjustTrebleReset(void); void updateBitrate(int value); - void updateEncoder(int id); + void updateEncoder(int id = 0); void updateLameAlgoQuality(int value); - void updateMaximumInstances(int value); + void updateMaximumInstances(const int value); void updateRCMode(int id); void useCustomTempFolderChanged(bool checked); void visitHomepageActionActivated(void); void windowShown(void); protected: - void changeEvent(QEvent *e); - void closeEvent(QCloseEvent *event); - void dragEnterEvent(QDragEnterEvent *event); - void dropEvent(QDropEvent *event); - bool eventFilter(QObject *obj, QEvent *event); - void resizeEvent(QResizeEvent *event); - void showEvent(QShowEvent *event); + virtual void changeEvent(QEvent *e); + virtual void closeEvent(QCloseEvent *event); + virtual void dragEnterEvent(QDragEnterEvent *event); + virtual void dropEvent(QDropEvent *event); + virtual bool eventFilter(QObject *obj, QEvent *event); + virtual void resizeEvent(QResizeEvent *event); + virtual void showEvent(QShowEvent *event); + virtual void keyPressEvent(QKeyEvent *e); + virtual bool event(QEvent *e); + virtual bool winEvent(MSG *message, long *result); private: + Ui::MainWindow *ui; //for Qt UIC + void addFiles(const QStringList &files); - void addFolder(const QString &path, bool recursive = false, bool delayed = false); - bool checkForUpdates(void); + void addFolder(const QString &path, bool recursive = false, bool delayed = false, QString filter = QString()); + bool MainWindow::checkForUpdates(bool *const haveNewVersion = NULL); + void initializeTranslation(void); void refreshFavorites(void); - + void openDocumentLink(QAction *const action); + void moveSelectedFiles(const bool &up); + + void showBanner(const QString &text); + void showBanner(const QString &text, QThread *const thread); + void showBanner(const QString &text, QEventLoop *const eventLoop); + void showBanner(const QString &text, bool &flag, const bool &test); + bool m_accepted; bool m_firstTimeShown; - bool m_OutputFolderViewInitialized; - - const bool m_neroEncoderAvailable; - const bool m_fhgEncoderAvailable; - - WorkingBanner *m_banner; - QStringList *m_delayedFileList; - QTimer *m_delayedFileTimer; - DropBox *m_dropBox; - QLabel *m_dropNoteLabel; - FileListModel *m_fileListModel; - QFileSystemModelEx *m_fileSystemModel; - MessageHandlerThread *m_messageHandler; - AudioFileModel *m_metaData; - MetaInfoModel *m_metaInfoModel; - QMenu *m_outputFolderContextMenu; - SettingsModel *m_settings; - QMenu *m_sourceFilesContextMenu; - QMenu *m_outputFolderFavoritesMenu; + uint m_outputFolderViewInitCounter; + bool m_outputFolderViewCentering; + + FileListModel *const m_fileListModel; + AudioFileModel_MetaInfo *const m_metaData; + SettingsModel *const m_settings; + + QScopedPointer m_banner; + QScopedPointer m_metaInfoModel; + QScopedPointer m_fileSystemModel; + + QScopedPointer> m_droppedFileList; + QScopedPointer m_delayedFileList; + QScopedPointer m_delayedFileTimer; + QScopedPointer m_dropBox; + QScopedPointer m_dropNoteLabel; + + QScopedPointer m_messageHandler; + QScopedPointer m_outputFolderNoteBox; + + QScopedPointer m_outputFolderContextMenu; + QScopedPointer m_sourceFilesContextMenu; + QScopedPointer m_outputFolderFavoritesMenu; + + QScopedPointer m_languageActionGroup; + QScopedPointer m_styleActionGroup; + QScopedPointer m_tabActionGroup; + QScopedPointer m_encoderButtonGroup; + QScopedPointer m_modeButtonGroup; + QScopedPointer m_overwriteButtonGroup; QAction *m_findFileContextAction; QAction *m_previewContextAction; QAction *m_showDetailsContextAction; QAction *m_showFolderContextAction; + QAction *m_refreshFolderContextAction; + QAction *m_goUpFolderContextAction; QAction *m_addFavoriteFolderAction; - QActionGroup *m_languageActionGroup; - QActionGroup *m_styleActionGroup; - QActionGroup *m_tabActionGroup; - QButtonGroup *m_encoderButtonGroup; - QButtonGroup *m_modeButtonGroup; + QAction *m_exportCsvContextAction; + QAction *m_importCsvContextAction; + + QScopedPointer m_evenFilterCornerWidget; + QScopedPointer m_evenFilterCustumParamsHelp; + QScopedPointer m_evenFilterOutputFolderMouse; + QScopedPointer m_evenFilterOutputFolderView; + QScopedPointer m_evenFilterCompressionTab; };