@@ -401,70 +401,109 @@ MainWindow::~MainWindow()
401401// ! For time-consuming operations
402402int MainWindow::Initial ()
403403{
404- int nRet = 0 ;
405404 qDebug (log) << Q_FUNC_INFO;
406405
407- QMessageBox box (QMessageBox::Information, tr (" Load" ), tr (" Load ......" ));
408- box.showNormal ();
409- qApp->processEvents ();
410- setEnabled (false );
411-
412- QString szMsg;
413- szMsg = tr (" Load plugins ......" );
414- box.setText (szMsg);
415- slotInformation (szMsg);
416- qApp->processEvents ();
417- nRet = m_Manager.Initial ();
418- if (nRet) return nRet;
419- m_Manager.EnumPlugins (this );
420-
421- if (m_Manager.GetGlobalParameters ())
422- m_Parameter.m_Database = m_Manager.GetGlobalParameters ()->m_Database ;
406+ int nRet = 0 ;
407+ QString szErr;
423408
424- if (m_pRecent) {
425- szMsg = tr ( " Load list recent dock ...... " );
426- box. setText (szMsg );
427- slotInformation (szMsg );
409+ setEnabled ( false );
410+ do {
411+ QMessageBox initMsgBox (QMessageBox::Information, tr ( " Load " ), tr ( " Load ...... " ) );
412+ initMsgBox. showNormal ( );
428413 qApp->processEvents ();
429- nRet = m_pRecent->Init ();
430- if (nRet) return nRet;
431- }
432414
433- if (m_pRecentMenu) {
434- szMsg = tr (" Load recent menu ......" );
435- box .setText (szMsg);
415+ QString szMsg;
416+ szMsg = tr (" Load plugins ......" );
417+ initMsgBox .setText (szMsg);
436418 slotInformation (szMsg);
437419 qApp->processEvents ();
420+ nRet = m_Manager.Initial ();
421+ if (nRet) {
422+ szErr = tr (" Initial manage error" );
423+ break ;
424+ }
425+ m_Manager.EnumPlugins (this );
426+
427+ if (m_Manager.GetGlobalParameters ())
428+ m_Parameter.m_Database = m_Manager.GetGlobalParameters ()->m_Database ;
429+
438430 if (m_pRecent) {
439- auto recents = m_pRecent->GetRecents (m_Parameter.GetRecentMenuMaxCount ());
440- // qDebug(log) << "recents totaol:" << recents.size() << m_Parameter.GetRecentMenuMaxCount();
441- for (auto it = recents.rbegin (); it != recents.rend (); it++) {
442- m_pRecentMenu->addRecentFile (it->GetFile (), it->szName , it->icon );
431+ szMsg = tr (" Load list recent dock ......" );
432+ initMsgBox.setText (szMsg);
433+ slotInformation (szMsg);
434+ qApp->processEvents ();
435+ nRet = m_pRecent->Init ();
436+ if (nRet) {
437+ szErr = tr (" Initial recent dock error" );
438+ break ;
443439 }
444440 }
445- }
446441
447- if (m_pFavoriteView) {
448- szMsg = tr (" Load favorite ......" );
449- box.setText (szMsg);
442+ if (m_pRecentMenu) {
443+ szMsg = tr (" Load recent menu ......" );
444+ initMsgBox.setText (szMsg);
445+ slotInformation (szMsg);
446+ qApp->processEvents ();
447+ if (m_pRecent) {
448+ auto recents = m_pRecent->GetRecents (m_Parameter.GetRecentMenuMaxCount ());
449+ // qDebug(log) << "recents totaol:" << recents.size() << m_Parameter.GetRecentMenuMaxCount();
450+ for (auto it = recents.rbegin (); it != recents.rend (); it++) {
451+ m_pRecentMenu->addRecentFile (it->GetFile (), it->szName , it->icon );
452+ }
453+ }
454+ }
455+
456+ if (m_pFavoriteView) {
457+ szMsg = tr (" Load favorite ......" );
458+ initMsgBox.setText (szMsg);
459+ slotInformation (szMsg);
460+ qApp->processEvents ();
461+ nRet = m_pFavoriteView->Initial ();
462+ if (nRet) {
463+ szErr = tr (" Initial favorite error" );
464+ break ;
465+ }
466+ }
467+
468+ slotEnableSystemTrayIcon ();
469+
470+ setEnabled (true );
471+
472+ szMsg = tr (" Load laster operate ......" );
473+ initMsgBox.setText (szMsg);
450474 slotInformation (szMsg);
451475 qApp->processEvents ();
452- nRet = m_pFavoriteView->Initial ();
453- if (nRet) return nRet;
454- }
476+ nRet = LoadOperateLasterClose ();
477+ if (nRet) {
478+ szErr = tr (" Initial load laster close operate error" );
479+ break ;
480+ }
455481
456- slotEnableSystemTrayIcon ();
482+ slotInformation (tr (" Ready" ));
483+
484+ return nRet;
485+ } while (false );
457486
458487 setEnabled (true );
459488
460- szMsg = tr (" Load laster operate ......" );
461- box.setText (szMsg);
462- slotInformation (szMsg);
463- qApp->processEvents ();
464- nRet = LoadOperateLasterClose ();
465- if (nRet) return nRet;
489+ QMessageBox errMsgBox;
490+ errMsgBox.setWindowTitle (QObject::tr (" Error" ));
491+ errMsgBox.setText (QObject::tr (" Initial error:" ) + szErr);
492+ errMsgBox.setIcon (QMessageBox::Critical);
493+
494+ auto logMenu = RabbitCommon::CTools::GetLogMenu ();
495+ QPushButton *pbLog = new QPushButton (logMenu->title ());
496+ pbLog->setMenu (logMenu);
497+
498+ QPushButton *pbettings = new QPushButton (ui->actionSettings ->text ());
499+ QMenu* pSettings = new QMenu (pbettings);
500+ pSettings->addAction (ui->actionSettings );
501+ pbettings->setMenu (pSettings);
502+ errMsgBox.addButton (pbettings, QMessageBox::ActionRole);
503+ errMsgBox.addButton (pbLog, QMessageBox::ActionRole);
504+ errMsgBox.addButton (QMessageBox::Cancel);
466505
467- slotInformation ( tr ( " Ready " ) );
506+ errMsgBox. exec ( );
468507
469508 return nRet;
470509}
0 commit comments