Use C++11 enum class

This commit is contained in:
Jonas Kvinge
2023-02-18 14:09:27 +01:00
parent e6c5f76872
commit dd72fb4ca5
237 changed files with 2915 additions and 2840 deletions

View File

@@ -84,7 +84,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
QSize sizeHint() const override {
FancyTabWidget *tabWidget = qobject_cast<FancyTabWidget*>(parentWidget());
if (tabWidget->mode() == FancyTabWidget::Mode_Tabs || tabWidget->mode() == FancyTabWidget::Mode_IconOnlyTabs) {
if (tabWidget->mode() == FancyTabWidget::Mode::Tabs || tabWidget->mode() == FancyTabWidget::Mode::IconOnlyTabs) {
return QTabBar::sizeHint();
}
@@ -102,7 +102,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
int width() const {
FancyTabWidget *tabWidget = qobject_cast<FancyTabWidget*>(parentWidget());
if (tabWidget->mode() == FancyTabWidget::Mode_LargeSidebar || tabWidget->mode() == FancyTabWidget::Mode_SmallSidebar) {
if (tabWidget->mode() == FancyTabWidget::Mode::LargeSidebar || tabWidget->mode() == FancyTabWidget::Mode::SmallSidebar) {
int w = 0;
for (int i = 0; i < count(); ++i) {
if (tabSizeHint(i).width() > w) w = tabSizeHint(i).width();
@@ -120,7 +120,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
FancyTabWidget *tabWidget = qobject_cast<FancyTabWidget*>(parentWidget());
QSize size;
if (tabWidget->mode() == FancyTabWidget::Mode_LargeSidebar) {
if (tabWidget->mode() == FancyTabWidget::Mode::LargeSidebar) {
QFont bold_font(font());
bold_font.setBold(true);
@@ -137,7 +137,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
QRect rect = fm.boundingRect(QRect(0, 0, w, height()), Qt::TextWordWrap, QTabBar::tabText(index));
size = QSize(w, tabWidget->iconsize_largesidebar() + rect.height() + 10);
}
else if (tabWidget->mode() == FancyTabWidget::Mode_SmallSidebar) {
else if (tabWidget->mode() == FancyTabWidget::Mode::SmallSidebar) {
QFont bold_font(font());
bold_font.setBold(true);
@@ -180,12 +180,12 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
bool verticalTextTabs = false;
if (tabWidget->mode() == FancyTabWidget::Mode_SmallSidebar) {
if (tabWidget->mode() == FancyTabWidget::Mode::SmallSidebar) {
verticalTextTabs = true;
}
// if LargeSidebar, restore spacers
if (tabWidget->mode() == FancyTabWidget::Mode_LargeSidebar && spacers.count() > 0) {
if (tabWidget->mode() == FancyTabWidget::Mode::LargeSidebar && spacers.count() > 0) {
QList<int> keys = spacers.keys();
for (const int index : keys) {
tabWidget->insertTab(index, spacers[index], QIcon(), QString());
@@ -193,7 +193,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
}
spacers.clear();
}
else if (tabWidget->mode() != FancyTabWidget::Mode_LargeSidebar) {
else if (tabWidget->mode() != FancyTabWidget::Mode::LargeSidebar) {
// traverse in the opposite order to save indices of spacers
for (int i = count() - 1; i >= 0; --i) {
// spacers are disabled tabs
@@ -206,16 +206,16 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
}
// Restore any label text that was hidden/cached for the IconOnlyTabs mode
if (labelCache.count() > 0 && tabWidget->mode() != FancyTabWidget::Mode_IconOnlyTabs) {
if (labelCache.count() > 0 && tabWidget->mode() != FancyTabWidget::Mode::IconOnlyTabs) {
for (int i = 0; i < count(); ++i) {
setTabToolTip(i, "");
setTabText(i, labelCache[tabWidget->widget(i)]);
}
labelCache.clear();
}
if (tabWidget->mode() != FancyTabWidget::Mode_LargeSidebar && tabWidget->mode() != FancyTabWidget::Mode_SmallSidebar) {
if (tabWidget->mode() != FancyTabWidget::Mode::LargeSidebar && tabWidget->mode() != FancyTabWidget::Mode::SmallSidebar) {
// Cache and hide label text for IconOnlyTabs mode
if (tabWidget->mode() == FancyTabWidget::Mode_IconOnlyTabs && labelCache.count() == 0) {
if (tabWidget->mode() == FancyTabWidget::Mode::IconOnlyTabs && labelCache.count() == 0) {
for (int i = 0; i < count(); ++i) {
labelCache[tabWidget->widget(i)] = tabText(i);
setTabToolTip(i, tabText(i));
@@ -448,7 +448,7 @@ FancyTabWidget::FancyTabWidget(QWidget *parent)
: QTabWidget(parent),
style_(nullptr),
menu_(nullptr),
mode_(Mode_None),
mode_(Mode::None),
bottom_widget_(nullptr),
bg_color_system_(true),
bg_gradient_(true),
@@ -504,7 +504,7 @@ void FancyTabWidget::SaveSettings(const QString &kSettingsGroup) {
QSettings s;
s.beginGroup(kSettingsGroup);
s.setValue("tab_mode", mode_);
s.setValue("tab_mode", static_cast<int>(mode_));
s.setValue("current_tab", currentIndex());
for (TabData *tab : std::as_const(tabs_)) {
@@ -537,7 +537,7 @@ void FancyTabWidget::ReloadSettings() {
s.endGroup();
#ifndef Q_OS_MACOS
if (mode() == FancyTabWidget::Mode_LargeSidebar) {
if (mode() == FancyTabWidget::Mode::LargeSidebar) {
setIconSize(QSize(iconsize_largesidebar_, iconsize_largesidebar_));
}
else {
@@ -595,7 +595,7 @@ int FancyTabWidget::IndexOfTab(QWidget *widget) {
void FancyTabWidget::paintEvent(QPaintEvent *pe) {
if (mode() != FancyTabWidget::Mode_LargeSidebar && mode() != FancyTabWidget::Mode_SmallSidebar) {
if (mode() != FancyTabWidget::Mode::LargeSidebar && mode() != FancyTabWidget::Mode::SmallSidebar) {
QTabWidget::paintEvent(pe);
return;
}
@@ -675,7 +675,7 @@ void FancyTabWidget::SetMode(FancyTabWidget::Mode mode) {
mode_ = mode;
if (mode == FancyTabWidget::Mode_Tabs || mode == FancyTabWidget::Mode_IconOnlyTabs) {
if (mode == FancyTabWidget::Mode::Tabs || mode == FancyTabWidget::Mode::IconOnlyTabs) {
setTabPosition(QTabWidget::North);
}
else {
@@ -683,7 +683,7 @@ void FancyTabWidget::SetMode(FancyTabWidget::Mode mode) {
}
#ifndef Q_OS_MACOS
if (mode_ == FancyTabWidget::Mode_LargeSidebar) {
if (mode_ == FancyTabWidget::Mode::LargeSidebar) {
setIconSize(QSize(iconsize_largesidebar_, iconsize_largesidebar_));
}
else {
@@ -721,11 +721,11 @@ void FancyTabWidget::contextMenuEvent(QContextMenuEvent *e) {
if (!menu_) {
menu_ = new QMenu(this);
QActionGroup *group = new QActionGroup(this);
addMenuItem(group, tr("Large sidebar"), Mode_LargeSidebar);
addMenuItem(group, tr("Small sidebar"), Mode_SmallSidebar);
addMenuItem(group, tr("Plain sidebar"), Mode_PlainSidebar);
addMenuItem(group, tr("Tabs on top"), Mode_Tabs);
addMenuItem(group, tr("Icons on top"), Mode_IconOnlyTabs);
addMenuItem(group, tr("Large sidebar"), Mode::LargeSidebar);
addMenuItem(group, tr("Small sidebar"), Mode::SmallSidebar);
addMenuItem(group, tr("Plain sidebar"), Mode::PlainSidebar);
addMenuItem(group, tr("Tabs on top"), Mode::Tabs);
addMenuItem(group, tr("Icons on top"), Mode::IconOnlyTabs);
menu_->addActions(group->actions());
}

View File

@@ -60,13 +60,13 @@ class FancyTabWidget : public QTabWidget {
void ReloadSettings();
// Values are persisted - only add to the end
enum Mode {
Mode_None = 0,
Mode_LargeSidebar,
Mode_SmallSidebar,
Mode_Tabs,
Mode_IconOnlyTabs,
Mode_PlainSidebar,
enum class Mode {
None = 0,
LargeSidebar,
SmallSidebar,
Tabs,
IconOnlyTabs,
PlainSidebar
};
static const int TabSize_LargeSidebarMinWidth;

View File

@@ -60,7 +60,7 @@ FileView::FileView(QWidget *parent)
model_(nullptr),
undo_stack_(new QUndoStack(this)),
task_manager_(nullptr),
storage_(new FilesystemMusicStorage(Song::Source_LocalFile, "/")) {
storage_(new FilesystemMusicStorage(Song::Source::LocalFile, "/")) {
ui_->setupUi(this);
@@ -255,7 +255,7 @@ void FileView::DeleteFinished(const SongList &songs_with_errors) {
if (songs_with_errors.isEmpty()) return;
OrganizeErrorDialog *dialog = new OrganizeErrorDialog(this);
dialog->Show(OrganizeErrorDialog::Type_Delete, songs_with_errors);
dialog->Show(OrganizeErrorDialog::OperationType::Delete, songs_with_errors);
// It deletes itself when the user closes it
}

View File

@@ -34,7 +34,7 @@
LoginStateWidget::LoginStateWidget(QWidget *parent)
: QWidget(parent),
ui_(new Ui_LoginStateWidget),
state_(LoggedOut) {
state_(State::LoggedOut) {
ui_->setupUi(this);
ui_->signed_in->hide();
@@ -58,7 +58,7 @@ LoginStateWidget::LoginStateWidget(QWidget *parent)
LoginStateWidget::~LoginStateWidget() { delete ui_; }
void LoginStateWidget::Logout() {
SetLoggedIn(LoggedOut);
SetLoggedIn(State::LoggedOut);
emit LogoutClicked();
}
@@ -75,19 +75,19 @@ void LoginStateWidget::SetLoggedIn(const State state, const QString &account_nam
State last_state = state_;
state_ = state;
ui_->signed_in->setVisible(state == LoggedIn);
ui_->signed_out->setVisible(state != LoggedIn);
ui_->busy->setVisible(state == LoginInProgress);
ui_->signed_in->setVisible(state == State::LoggedIn);
ui_->signed_out->setVisible(state != State::LoggedIn);
ui_->busy->setVisible(state == State::LoginInProgress);
if (account_name.isEmpty()) ui_->signed_in_label->setText("<b>" + tr("You are signed in.") + "</b>");
else ui_->signed_in_label->setText(tr("You are signed in as %1.").arg("<b>" + account_name + "</b>"));
for (QWidget *widget : credential_groups_) {
widget->setVisible(state != LoggedIn);
widget->setEnabled(state != LoginInProgress);
widget->setVisible(state != State::LoggedIn);
widget->setEnabled(state != State::LoginInProgress);
}
if (state == LoggedOut && last_state == LoginInProgress) {
if (state == State::LoggedOut && last_state == State::LoginInProgress) {
// A login just failed - give focus back to the last crediental field (usually password).
// We have to do this after control gets back to the
// event loop because the user might have just closed a dialog and our widget might not be active yet.

View File

@@ -38,7 +38,11 @@ class LoginStateWidget : public QWidget {
explicit LoginStateWidget(QWidget *parent = nullptr);
~LoginStateWidget() override;
enum State { LoggedIn, LoginInProgress, LoggedOut };
enum class State {
LoggedIn,
LoginInProgress,
LoggedOut
};
// Installs an event handler on the field so that pressing enter will emit
// LoginClicked() instead of doing the default action (closing the dialog).

View File

@@ -64,7 +64,7 @@ PlayingWidget::PlayingWidget(QWidget *parent)
: QWidget(parent),
app_(nullptr),
album_cover_choice_controller_(nullptr),
mode_(LargeSongDetails),
mode_(Mode::LargeSongDetails),
menu_(new QMenu(this)),
above_statusbar_action_(nullptr),
fit_cover_width_action_(nullptr),
@@ -86,7 +86,7 @@ PlayingWidget::PlayingWidget(QWidget *parent)
// Load settings
QSettings s;
s.beginGroup(kSettingsGroup);
mode_ = Mode(s.value("mode", LargeSongDetails).toInt());
mode_ = static_cast<Mode>(s.value("mode", static_cast<int>(Mode::LargeSongDetails)).toInt());
fit_width_ = s.value("fit_cover_width", false).toBool();
s.endGroup();
@@ -95,8 +95,8 @@ PlayingWidget::PlayingWidget(QWidget *parent)
// Context menu
QActionGroup *mode_group = new QActionGroup(this);
CreateModeAction(SmallSongDetails, tr("Small album cover"), mode_group);
CreateModeAction(LargeSongDetails, tr("Large album cover"), mode_group);
CreateModeAction(Mode::SmallSongDetails, tr("Small album cover"), mode_group);
CreateModeAction(Mode::LargeSongDetails, tr("Large album cover"), mode_group);
menu_->addActions(mode_group->actions());
fit_cover_width_action_ = menu_->addAction(tr("Fit cover to width"));
@@ -113,7 +113,7 @@ PlayingWidget::PlayingWidget(QWidget *parent)
details_->setUndoRedoEnabled(false);
// add placeholder text to get the correct height
if (mode_ == LargeSongDetails) {
if (mode_ == Mode::LargeSongDetails) {
details_->setDefaultStyleSheet("p { font-size: small; font-weight: bold; }");
details_->setHtml(QString("<p align=center><i></i><br/><br/></p>"));
}
@@ -216,11 +216,11 @@ void PlayingWidget::CreateModeAction(const Mode mode, const QString &text, QActi
}
void PlayingWidget::SetMode(const int mode) {
void PlayingWidget::SetMode(const Mode mode) {
mode_ = static_cast<Mode>(mode);
fit_cover_width_action_->setEnabled(mode_ != SmallSongDetails);
fit_cover_width_action_->setEnabled(mode_ != Mode::SmallSongDetails);
UpdateHeight();
UpdateDetailsText();
@@ -228,7 +228,7 @@ void PlayingWidget::SetMode(const int mode) {
QSettings s;
s.beginGroup(kSettingsGroup);
s.setValue("mode", mode_);
s.setValue("mode", static_cast<int>(mode_));
s.endGroup();
}
@@ -362,11 +362,11 @@ void PlayingWidget::SetHeight(int height) {
void PlayingWidget::UpdateHeight() {
switch (mode_) {
case SmallSongDetails:
case Mode::SmallSongDetails:
cover_loader_options_.desired_height_ = small_ideal_height_;
total_height_ = small_ideal_height_;
break;
case LargeSongDetails:
case Mode::LargeSongDetails:
if (fit_width_) cover_loader_options_.desired_height_ = width();
else cover_loader_options_.desired_height_ = qMin(kMaxCoverSize, width());
total_height_ = kTopBorder + cover_loader_options_.desired_height_ + kBottomOffset + static_cast<int>(details_->size().height());
@@ -394,11 +394,11 @@ void PlayingWidget::UpdateDetailsText() {
QString html;
details_->setDefaultStyleSheet("p { font-size: small; font-weight: bold; }");
switch (mode_) {
case SmallSongDetails:
case Mode::SmallSongDetails:
details_->setTextWidth(-1);
html += "<p>";
break;
case LargeSongDetails:
case Mode::LargeSongDetails:
details_->setTextWidth(cover_loader_options_.desired_height_);
html += "<p align=center>";
break;
@@ -410,7 +410,7 @@ void PlayingWidget::UpdateDetailsText() {
details_->setHtml(html);
// if something spans multiple lines the height needs to change
if (mode_ == LargeSongDetails) UpdateHeight();
if (mode_ == Mode::LargeSongDetails) UpdateHeight();
update();
@@ -437,7 +437,7 @@ void PlayingWidget::DrawContents(QPainter *p) {
p->setRenderHint(QPainter::SmoothPixmapTransform);
switch (mode_) {
case SmallSongDetails:
case Mode::SmallSongDetails:
// Draw the cover
p->drawPixmap(0, 0, small_ideal_height_, small_ideal_height_, pixmap_cover_);
if (downloading_covers_) {
@@ -450,7 +450,7 @@ void PlayingWidget::DrawContents(QPainter *p) {
p->translate(-small_ideal_height_ - kPadding, 0);
break;
case LargeSongDetails:
case Mode::LargeSongDetails:
// Work out how high the text is going to be
const int text_height = static_cast<int>(details_->size().height());
const int cover_size = fit_width_ ? width() : qMin(kMaxCoverSize, width());
@@ -491,7 +491,7 @@ void PlayingWidget::resizeEvent(QResizeEvent *e) {
//if (visible_ && e->oldSize() != e->size()) {
if (e->oldSize() != e->size()) {
if (mode_ == LargeSongDetails) {
if (mode_ == Mode::LargeSongDetails) {
UpdateHeight();
UpdateDetailsText();
}

View File

@@ -86,9 +86,15 @@ class PlayingWidget : public QWidget {
void dragEnterEvent(QDragEnterEvent *e) override;
void dropEvent(QDropEvent *e) override;
private:
enum class Mode {
SmallSongDetails = 0,
LargeSongDetails = 1
};
private slots:
void Update() { update(); }
void SetMode(const int mode);
void SetMode(const Mode mode);
void ShowAboveStatusBar(const bool above);
void FitCoverWidth(const bool fit);
@@ -98,12 +104,6 @@ class PlayingWidget : public QWidget {
void FadePreviousTrack(const qreal value);
private:
enum Mode {
SmallSongDetails = 0,
LargeSongDetails = 1,
};
static const char *kSettingsGroup;
static const int kPadding;
static const int kGradientHead;

View File

@@ -28,7 +28,7 @@
PrettySlider::PrettySlider(const Qt::Orientation orientation, const SliderMode mode, QWidget *parent, const uint max)
: SliderSlider(orientation, parent, static_cast<int>(max)), m_mode(mode) {
if (m_mode == SliderMode_Pretty) {
if (m_mode == SliderMode::Pretty) {
setFocusPolicy(Qt::NoFocus);
}
@@ -44,7 +44,7 @@ void PrettySlider::mousePressEvent(QMouseEvent *e) {
void PrettySlider::slideEvent(QMouseEvent *e) {
if (m_mode == SliderMode_Pretty) {
if (m_mode == SliderMode::Pretty) {
QSlider::setValue(orientation() == Qt::Horizontal ? QStyle::sliderValueFromPosition(minimum(), maximum(), e->pos().x(), width() - 2) : QStyle::sliderValueFromPosition(minimum(), maximum(), e->pos().y(), height() - 2)); // clazy:exclude=skipped-base-method
}
else {

View File

@@ -32,9 +32,9 @@ class PrettySlider : public SliderSlider {
Q_OBJECT
public:
enum SliderMode {
SliderMode_Normal, // Same behavior as Slider *unless* there's a moodbar
SliderMode_Pretty
enum class SliderMode {
Normal, // Same behavior as Slider *unless* there's a moodbar
Pretty
};
explicit PrettySlider(const Qt::Orientation orientation, const SliderMode mode, QWidget *parent, const uint max = 0);