ui: made os integration more universal

ProgressDialog doesn't have to worry about the platform anymore, now
MainWindow will determine what to do or whether to ignore certain progress
indicator functions.
This commit is contained in:
itsmattkc
2020-06-16 16:55:11 +10:00
parent e979ce4d7a
commit cadb703ed8
3 changed files with 54 additions and 32 deletions
+31 -16
View File
@@ -191,22 +191,6 @@ bool MainWindow::IsSequenceOpen(Sequence *sequence) const
return false;
}
#ifdef Q_OS_WINDOWS
void MainWindow::SetTaskbarButtonState(TBPFLAG flags)
{
if (taskbar_interface_) {
taskbar_interface_->SetProgressState(reinterpret_cast<HWND>(this->winId()), flags);
}
}
void MainWindow::SetTaskbarButtonProgress(int value, int max)
{
if (taskbar_interface_) {
taskbar_interface_->SetProgressValue(reinterpret_cast<HWND>(this->winId()), value, max);
}
}
#endif
void MainWindow::FolderOpen(Project* p, Item *i, bool floating)
{
ProjectPanel* panel = PanelManager::instance()->CreatePanel<ProjectPanel>(this);
@@ -356,6 +340,37 @@ void MainWindow::ProjectClose(Project *p)
}
}
void MainWindow::SetApplicationProgressStatus(ProgressStatus status)
{
#if defined(Q_OS_WINDOWS)
if (taskbar_interface_) {
switch (status) {
case kProgressShow:
taskbar_interface_->SetProgressState(reinterpret_cast<HWND>(this->winId()), TBPF_NORMAL);
break;
case kProgressNone:
taskbar_interface_->SetProgressState(reinterpret_cast<HWND>(this->winId()), TBPF_NOPROGRESS);
break;
case kProgressError:
taskbar_interface_->SetProgressState(reinterpret_cast<HWND>(this->winId()), TBPF_ERROR);
break;
}
}
#elif defined(Q_OS_MAC)
#endif
}
void MainWindow::SetApplicationProgressValue(int value)
{
#if defined(Q_OS_WINDOWS)
if (taskbar_interface_) {
taskbar_interface_->SetProgressValue(reinterpret_cast<HWND>(this->winId()), value, 100);
}
#elif defined(Q_OS_MAC)
#endif
}
void MainWindow::closeEvent(QCloseEvent *e)
{
// Try to close all projects (this will return false if the user chooses not to close)