diff --git a/src/config.cc b/src/config.cc index 2a97f0650..1585b1168 100644 --- a/src/config.cc +++ b/src/config.cc @@ -1157,7 +1157,7 @@ Class load() c.showingDictBarNames = ( root.namedItem( "showingDictBarNames" ).toElement().text() == "1" ); - c.usingToolbarsIconSize =( root.namedItem( "usingToolbarsIconSize" ).toElement().text().toInt() ) ; + c.usingToolbarsIconSize =( static_cast(root.namedItem( "usingToolbarsIconSize" ).toElement().text().toInt()) ) ; if ( !root.namedItem( "historyExportPath" ).isNull() ) c.historyExportPath = root.namedItem( "historyExportPath" ).toElement().text(); @@ -2152,7 +2152,7 @@ void save( Class const & c ) root.appendChild( opt ); opt = dd.createElement( "usingToolbarsIconSize" ); - opt.appendChild( dd.createTextNode( QString::number( c.usingToolbarsIconSize ) ) ); + opt.appendChild( dd.createTextNode( QString::number( static_cast< int >( c.usingToolbarsIconSize ) ) ) ); root.appendChild( opt ); if ( !c.historyExportPath.isEmpty() ) { diff --git a/src/config.hh b/src/config.hh index 17488ad94..82a409c27 100644 --- a/src/config.hh +++ b/src/config.hh @@ -819,13 +819,13 @@ struct HeadwordsDialog { } }; + // TODO: arbitrary sizing -// Not using enum here to bypass MSVC 2022 BUG. -namespace ToolbarsIconSize { -static const int small = 0; -static const int normal = 1; -static const int large = 2; -} // namespace ToolbarsIconSize +enum class ToolbarsIconSize : std::uint8_t { + small_size = 0, // _size because `small` causes error in MSVC 2022 + normal = 1, + large = 2, +}; struct Class { @@ -875,7 +875,7 @@ struct Class bool showingDictBarNames; - int usingToolbarsIconSize = ToolbarsIconSize::normal; + ToolbarsIconSize usingToolbarsIconSize = ToolbarsIconSize::normal; /// Maximum size for the headwords. /// Bigger headwords won't be indexed. For now, only in DSL. diff --git a/src/ui/mainwindow.cc b/src/ui/mainwindow.cc index 082f3d937..7330cfc27 100644 --- a/src/ui/mainwindow.cc +++ b/src/ui/mainwindow.cc @@ -508,7 +508,7 @@ MainWindow::MainWindow( Config::Class & cfg_ ): // Use small icons in toolbars useSmallIconsInToolbarsAction.setCheckable( true ); - useSmallIconsInToolbarsAction.setChecked( cfg.usingToolbarsIconSize == Config::ToolbarsIconSize::small ); + useSmallIconsInToolbarsAction.setChecked( cfg.usingToolbarsIconSize == Config::ToolbarsIconSize::small_size ); connect( &useSmallIconsInToolbarsAction, &QAction::triggered, this, &MainWindow::useSmallIconsInToolbarsTriggered ); @@ -3029,7 +3029,7 @@ void MainWindow::useSmallIconsInToolbarsTriggered() { bool useSmallIcons = useSmallIconsInToolbarsAction.isChecked(); if ( useSmallIcons ) { - cfg.usingToolbarsIconSize = Config::ToolbarsIconSize::small; + cfg.usingToolbarsIconSize = Config::ToolbarsIconSize::small_size; useLargeIconsInToolbarsAction.setChecked( false ); } else if ( !useLargeIconsInToolbarsAction.isChecked() ) { diff --git a/src/ui/scanpopup.cc b/src/ui/scanpopup.cc index 8376e09c7..ec343e010 100644 --- a/src/ui/scanpopup.cc +++ b/src/ui/scanpopup.cc @@ -1110,7 +1110,7 @@ void ScanPopup::on_goForwardButton_clicked() const void ScanPopup::setDictionaryIconSize() { - if ( cfg.usingToolbarsIconSize == Config::ToolbarsIconSize::small ) { + if ( cfg.usingToolbarsIconSize == Config::ToolbarsIconSize::small_size ) { dictionaryBar.setDictionaryIconSize( DictionaryBar::IconSize::Small ); } else if ( cfg.usingToolbarsIconSize == Config::ToolbarsIconSize::normal ) {