@@ -1870,7 +1870,17 @@ void MainWindow::showGlobalConnect()
18701870
18711871void MainWindow::openDesign ()
18721872{
1873- const QString filefilter = " OpenDB (*.odb *.ODB)" ;
1873+ const std::vector<QString> exts{" .odb" , " .odb.gz" , " .db" , " .db.gz" };
1874+
1875+ QString filefilter = " OpenDB (" ;
1876+ for (const auto & ext : exts) {
1877+ if (filefilter.length () != 8 ) {
1878+ filefilter += " " ;
1879+ }
1880+ filefilter += " *" + ext;
1881+ filefilter += " *" + ext.toUpper ();
1882+ }
1883+ filefilter += " )" ;
18741884 const QString file = QFileDialog::getOpenFileName (
18751885 this , " Open Design" , QString (), filefilter);
18761886
@@ -1879,15 +1889,21 @@ void MainWindow::openDesign()
18791889 }
18801890
18811891 try {
1882- if (file.endsWith (" .odb" , Qt::CaseInsensitive)) {
1883- open_->setEnabled (false );
1884- ord::OpenRoad::openRoad ()->readDb (file.toStdString ().c_str ());
1885- logger_->warn (utl::GUI,
1886- 77 ,
1887- " Timing data is not stored in {} and must be loaded "
1888- " separately, if needed." ,
1889- file.toStdString ());
1890- } else {
1892+ bool found = false ;
1893+ for (const auto & ext : exts) {
1894+ if (file.endsWith (ext, Qt::CaseInsensitive)) {
1895+ open_->setEnabled (false );
1896+ ord::OpenRoad::openRoad ()->readDb (file.toStdString ().c_str ());
1897+ logger_->warn (utl::GUI,
1898+ 77 ,
1899+ " Timing data is not stored in {} and must be loaded "
1900+ " separately, if needed." ,
1901+ file.toStdString ());
1902+ found = true ;
1903+ break ;
1904+ }
1905+ }
1906+ if (!found) {
18911907 logger_->error (utl::GUI, 76 , " Unknown filetype: {}" , file.toStdString ());
18921908 }
18931909 } catch (const std::exception&) {
@@ -1898,7 +1914,17 @@ void MainWindow::openDesign()
18981914
18991915void MainWindow::saveDesign ()
19001916{
1901- const QString filefilter = " OpenDB (*.odb *.ODB)" ;
1917+ const std::vector<QString> exts{" .odb" , " .odb.gz" };
1918+
1919+ QString filefilter = " OpenDB (" ;
1920+ for (const auto & ext : exts) {
1921+ if (filefilter.length () != 8 ) {
1922+ filefilter += " " ;
1923+ }
1924+ filefilter += " *" + ext;
1925+ filefilter += " *" + ext.toUpper ();
1926+ }
1927+ filefilter += " )" ;
19021928 const QString file = QFileDialog::getSaveFileName (
19031929 this , " Save Design" , QString (), filefilter);
19041930
0 commit comments