Implemented menubar corner widget.
This commit is contained in:
parent
7ec2a8d9d7
commit
62aa72d283
@ -50,6 +50,7 @@
|
||||
<file>icons/drive_link.png</file>
|
||||
<file>icons/drive_network.png</file>
|
||||
<file>icons/exclamation.png</file>
|
||||
<file>icons/exclamation_small.png</file>
|
||||
<file>icons/error.png</file>
|
||||
<file>icons/error_big.png</file>
|
||||
<file>icons/feed.png</file>
|
||||
|
BIN
res/icons/exclamation_small.png
Normal file
BIN
res/icons/exclamation_small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 415 B |
@ -35,7 +35,7 @@
|
||||
#define VER_LAMEXP_MINOR_LO 0
|
||||
#define VER_LAMEXP_TYPE Beta
|
||||
#define VER_LAMEXP_PATCH 1
|
||||
#define VER_LAMEXP_BUILD 1542
|
||||
#define VER_LAMEXP_BUILD 1543
|
||||
#define VER_LAMEXP_CONFG 1528
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -198,6 +198,15 @@ while(0)
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define SHOW_CORNER_WIDGET(FLAG) do \
|
||||
{ \
|
||||
if(QWidget *cornerWidget = ui->menubar->cornerWidget()) \
|
||||
{ \
|
||||
cornerWidget->setVisible((FLAG)); \
|
||||
} \
|
||||
} \
|
||||
while(0)
|
||||
|
||||
#define LINK(URL) QString("<a href=\"%1\">%2</a>").arg(URL).arg(QString(URL).replace("-", "−"))
|
||||
#define FSLINK(PATH) QString("<a href=\"file:///%1\">%2</a>").arg(PATH).arg(QString(PATH).replace("-", "−"))
|
||||
#define CENTER_CURRENT_OUTPUT_FOLDER_DELAYED QTimer::singleShot(125, this, SLOT(centerOutputFolderModel()))
|
||||
@ -238,7 +247,7 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel_MetaInfo *me
|
||||
//Enabled main buttons
|
||||
connect(ui->buttonAbout, SIGNAL(clicked()), this, SLOT(aboutButtonClicked()));
|
||||
connect(ui->buttonStart, SIGNAL(clicked()), this, SLOT(encodeButtonClicked()));
|
||||
connect(ui->buttonQuit, SIGNAL(clicked()), this, SLOT(closeButtonClicked()));
|
||||
connect(ui->buttonQuit, SIGNAL(clicked()), this, SLOT(closeButtonClicked()));
|
||||
|
||||
//Setup tab widget
|
||||
ui->tabWidget->setCurrentIndex(0);
|
||||
@ -247,6 +256,17 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel_MetaInfo *me
|
||||
//Add system menu
|
||||
lamexp_append_sysmenu(this, IDM_ABOUTBOX, "About...");
|
||||
|
||||
//Setup corner widget
|
||||
QLabel *cornerWidget = new QLabel(ui->menubar);
|
||||
m_evenFilterCornerWidget = new CustomEventFilter;
|
||||
cornerWidget->setText(QString("<nobr><img src=\":/icons/exclamation_small.png\"> <b style=\"color:darkred\">%1</b> </nobr>").arg(tr("Check for Updates")));
|
||||
cornerWidget->setFixedHeight(ui->menubar->height());
|
||||
cornerWidget->setCursor(QCursor(Qt::PointingHandCursor));
|
||||
cornerWidget->hide();
|
||||
cornerWidget->installEventFilter(m_evenFilterCornerWidget);
|
||||
connect(m_evenFilterCornerWidget, SIGNAL(eventOccurred(QWidget*, QEvent*)), this, SLOT(cornerWidgetEventOccurred(QWidget*, QEvent*)));
|
||||
ui->menubar->setCornerWidget(cornerWidget);
|
||||
|
||||
//--------------------------------
|
||||
// Setup "Source" tab
|
||||
//--------------------------------
|
||||
@ -268,23 +288,24 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel_MetaInfo *me
|
||||
m_exportCsvContextAction = m_sourceFilesContextMenu->addAction(QIcon(":/icons/table_save.png"), "N/A");
|
||||
m_importCsvContextAction = m_sourceFilesContextMenu->addAction(QIcon(":/icons/folder_table.png"), "N/A");
|
||||
SET_FONT_BOLD(m_showDetailsContextAction, true);
|
||||
connect(ui->buttonAddFiles, SIGNAL(clicked()), this, SLOT(addFilesButtonClicked()));
|
||||
connect(ui->buttonRemoveFile, SIGNAL(clicked()), this, SLOT(removeFileButtonClicked()));
|
||||
connect(ui->buttonClearFiles, SIGNAL(clicked()), this, SLOT(clearFilesButtonClicked()));
|
||||
connect(ui->buttonFileUp, SIGNAL(clicked()), this, SLOT(fileUpButtonClicked()));
|
||||
connect(ui->buttonFileDown, SIGNAL(clicked()), this, SLOT(fileDownButtonClicked()));
|
||||
connect(ui->buttonShowDetails, SIGNAL(clicked()), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_fileListModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(modelReset()), this, SLOT(sourceModelChanged()));
|
||||
connect(ui->sourceFileView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(sourceFilesContextMenu(QPoint)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(sliderMoved(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(m_showDetailsContextAction, SIGNAL(triggered(bool)), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_previewContextAction, SIGNAL(triggered(bool)), this, SLOT(previewContextActionTriggered()));
|
||||
connect(m_findFileContextAction, SIGNAL(triggered(bool)), this, SLOT(findFileContextActionTriggered()));
|
||||
connect(m_exportCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(exportCsvContextActionTriggered()));
|
||||
connect(m_importCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(importCsvContextActionTriggered()));
|
||||
|
||||
connect(ui->buttonAddFiles, SIGNAL(clicked()), this, SLOT(addFilesButtonClicked()));
|
||||
connect(ui->buttonRemoveFile, SIGNAL(clicked()), this, SLOT(removeFileButtonClicked()));
|
||||
connect(ui->buttonClearFiles, SIGNAL(clicked()), this, SLOT(clearFilesButtonClicked()));
|
||||
connect(ui->buttonFileUp, SIGNAL(clicked()), this, SLOT(fileUpButtonClicked()));
|
||||
connect(ui->buttonFileDown, SIGNAL(clicked()), this, SLOT(fileDownButtonClicked()));
|
||||
connect(ui->buttonShowDetails, SIGNAL(clicked()), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_fileListModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(sourceModelChanged()));
|
||||
connect(m_fileListModel, SIGNAL(modelReset()), this, SLOT(sourceModelChanged()));
|
||||
connect(ui->sourceFileView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(sourceFilesContextMenu(QPoint)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(sliderMoved(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(ui->sourceFileView->verticalScrollBar(), SIGNAL(valueChanged(int)), this, SLOT(sourceFilesScrollbarMoved(int)));
|
||||
connect(m_showDetailsContextAction, SIGNAL(triggered(bool)), this, SLOT(showDetailsButtonClicked()));
|
||||
connect(m_previewContextAction, SIGNAL(triggered(bool)), this, SLOT(previewContextActionTriggered()));
|
||||
connect(m_findFileContextAction, SIGNAL(triggered(bool)), this, SLOT(findFileContextActionTriggered()));
|
||||
connect(m_exportCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(exportCsvContextActionTriggered()));
|
||||
connect(m_importCsvContextAction, SIGNAL(triggered(bool)), this, SLOT(importCsvContextActionTriggered()));
|
||||
|
||||
//--------------------------------
|
||||
// Setup "Output" tab
|
||||
@ -714,6 +735,7 @@ MainWindow::~MainWindow(void)
|
||||
LAMEXP_DELETE(m_outputFolderFavoritesMenu);
|
||||
LAMEXP_DELETE(m_outputFolderContextMenu);
|
||||
LAMEXP_DELETE(m_dropBox);
|
||||
LAMEXP_DELETE(m_evenFilterCornerWidget);
|
||||
LAMEXP_DELETE(m_evenFilterCustumParamsHelp);
|
||||
LAMEXP_DELETE(m_evenFilterOutputFolderMouse);
|
||||
LAMEXP_DELETE(m_evenFilterOutputFolderView);
|
||||
@ -864,6 +886,7 @@ bool MainWindow::checkForUpdates(void)
|
||||
|
||||
if(updateDialog->getSuccess())
|
||||
{
|
||||
SHOW_CORNER_WIDGET(false);
|
||||
m_settings->autoUpdateLastCheck(QDate::currentDate().toString(Qt::ISODate));
|
||||
bReadyToInstall = updateDialog->updateReadyToInstall();
|
||||
}
|
||||
@ -1331,6 +1354,7 @@ void MainWindow::windowShown(void)
|
||||
if(lamexp_current_date_safe() >= lamexp_version_date().addYears(1))
|
||||
{
|
||||
qWarning("Binary is more than a year old, time to update!");
|
||||
SHOW_CORNER_WIDGET(true);
|
||||
int ret = QMessageBox::warning(this, tr("Urgent Update"), NOBR(tr("Your version of LameXP is more than a year old. Time for an update!")), tr("Check for Updates"), tr("Exit Program"), tr("Ignore"));
|
||||
switch(ret)
|
||||
{
|
||||
@ -1351,17 +1375,21 @@ void MainWindow::windowShown(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(m_settings->autoUpdateEnabled())
|
||||
else
|
||||
{
|
||||
QDate lastUpdateCheck = QDate::fromString(m_settings->autoUpdateLastCheck(), Qt::ISODate);
|
||||
if(!firstRun && (!lastUpdateCheck.isValid() || lamexp_current_date_safe() >= lastUpdateCheck.addDays(14)))
|
||||
if((!firstRun) && ((!lastUpdateCheck.isValid()) || (lamexp_current_date_safe() >= lastUpdateCheck.addDays(14))))
|
||||
{
|
||||
if(QMessageBox::information(this, tr("Update Reminder"), NOBR(lastUpdateCheck.isValid() ? tr("Your last update check was more than 14 days ago. Check for updates now?") : tr("Your did not check for LameXP updates yet. Check for updates now?")), tr("Check for Updates"), tr("Postpone")) == 0)
|
||||
SHOW_CORNER_WIDGET(true);
|
||||
if(m_settings->autoUpdateEnabled())
|
||||
{
|
||||
if(checkForUpdates())
|
||||
if(QMessageBox::information(this, tr("Update Reminder"), NOBR(lastUpdateCheck.isValid() ? tr("Your last update check was more than 14 days ago. Check for updates now?") : tr("Your did not check for LameXP updates yet. Check for updates now?")), tr("Check for Updates"), tr("Postpone")) == 0)
|
||||
{
|
||||
QApplication::quit();
|
||||
return;
|
||||
if(checkForUpdates())
|
||||
{
|
||||
QApplication::quit();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1727,6 +1755,21 @@ void MainWindow::tabActionActivated(QAction *action)
|
||||
}
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// Menubar slots
|
||||
// =========================================================
|
||||
|
||||
/*
|
||||
* Handle corner widget Event
|
||||
*/
|
||||
void MainWindow::cornerWidgetEventOccurred(QWidget *sender, QEvent *event)
|
||||
{
|
||||
if(event->type() == QEvent::MouseButtonPress)
|
||||
{
|
||||
QTimer::singleShot(0, this, SLOT(checkUpdatesActionActivated()));
|
||||
}
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// View menu slots
|
||||
// =========================================================
|
||||
|
@ -85,6 +85,7 @@ private slots:
|
||||
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);
|
||||
@ -231,6 +232,7 @@ private:
|
||||
QButtonGroup *m_modeButtonGroup;
|
||||
QButtonGroup *m_overwriteButtonGroup;
|
||||
|
||||
CustomEventFilter *m_evenFilterCornerWidget;
|
||||
CustomEventFilter *m_evenFilterCustumParamsHelp;
|
||||
CustomEventFilter *m_evenFilterOutputFolderMouse;
|
||||
CustomEventFilter *m_evenFilterOutputFolderView;
|
||||
|
@ -152,6 +152,7 @@ ProcessingDialog::ProcessingDialog(FileListModel *fileListModel, const AudioFile
|
||||
m_ramObserver(NULL),
|
||||
m_progressViewFilter(-1),
|
||||
m_initThreads(0),
|
||||
m_defaultColor(new QColor()),
|
||||
m_firstShow(true)
|
||||
{
|
||||
//Init the dialog, from the .ui file
|
||||
@ -348,6 +349,7 @@ ProcessingDialog::~ProcessingDialog(void)
|
||||
LAMEXP_DELETE(m_contextMenu);
|
||||
LAMEXP_DELETE(m_progressModel);
|
||||
LAMEXP_DELETE(m_threadPool);
|
||||
LAMEXP_DELETE(m_defaultColor);
|
||||
|
||||
WinSevenTaskbar::setOverlayIcon(this, NULL);
|
||||
WinSevenTaskbar::setTaskbarState(this, WinSevenTaskbar::WinSevenTaskbarNoState);
|
||||
@ -407,21 +409,19 @@ void ProcessingDialog::closeEvent(QCloseEvent *event)
|
||||
|
||||
bool ProcessingDialog::eventFilter(QObject *obj, QEvent *event)
|
||||
{
|
||||
static QColor defaultColor = QColor();
|
||||
|
||||
if(obj == ui->label_versionInfo)
|
||||
{
|
||||
if(event->type() == QEvent::Enter)
|
||||
{
|
||||
QPalette palette = ui->label_versionInfo->palette();
|
||||
defaultColor = palette.color(QPalette::Normal, QPalette::WindowText);
|
||||
*m_defaultColor = palette.color(QPalette::Normal, QPalette::WindowText);
|
||||
palette.setColor(QPalette::Normal, QPalette::WindowText, Qt::red);
|
||||
ui->label_versionInfo->setPalette(palette);
|
||||
}
|
||||
else if(event->type() == QEvent::Leave)
|
||||
{
|
||||
QPalette palette = ui->label_versionInfo->palette();
|
||||
palette.setColor(QPalette::Normal, QPalette::WindowText, defaultColor);
|
||||
palette.setColor(QPalette::Normal, QPalette::WindowText, *m_defaultColor);
|
||||
ui->label_versionInfo->setPalette(palette);
|
||||
}
|
||||
else if(event->type() == QEvent::MouseButtonPress)
|
||||
|
@ -136,4 +136,5 @@ private:
|
||||
DiskObserverThread *m_diskObserver;
|
||||
qint64 m_timerStart;
|
||||
int m_progressViewFilter;
|
||||
QColor *m_defaultColor;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user