Use C++11 enum class
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user