mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Qt: path selector fixes
This commit is contained in:
parent
948c242922
commit
17fcd880e9
@ -10329,6 +10329,7 @@ static bool setting_append_list(
|
|||||||
parent_group,
|
parent_group,
|
||||||
general_write_handler,
|
general_write_handler,
|
||||||
general_read_handler);
|
general_read_handler);
|
||||||
|
menu_settings_list_current_add_values(list, list_info, "ttf");
|
||||||
|
|
||||||
CONFIG_FLOAT(
|
CONFIG_FLOAT(
|
||||||
list, list_info,
|
list, list_info,
|
||||||
@ -11248,6 +11249,7 @@ static bool setting_append_list(
|
|||||||
general_read_handler);
|
general_read_handler);
|
||||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT);
|
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT);
|
||||||
|
menu_settings_list_current_add_values(list, list_info, "ttf");
|
||||||
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_FONT_SELECTOR;
|
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_FONT_SELECTOR;
|
||||||
|
|
||||||
CONFIG_UINT(
|
CONFIG_UINT(
|
||||||
|
@ -136,12 +136,6 @@ void FormLayout::addFileSelector(rarch_setting_t *setting)
|
|||||||
addRow(formLabel(setting), new FileSelector(setting));
|
addRow(formLabel(setting), new FileSelector(setting));
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormLayout::addFontSelector(rarch_setting_t *setting)
|
|
||||||
{
|
|
||||||
if (setting && setting->short_description)
|
|
||||||
addRow(formLabel(setting), new FontSelector(setting));
|
|
||||||
}
|
|
||||||
|
|
||||||
void FormLayout::addFloatSliderAndSpinBox(rarch_setting_t *setting)
|
void FormLayout::addFloatSliderAndSpinBox(rarch_setting_t *setting)
|
||||||
{
|
{
|
||||||
if (setting && setting->short_description)
|
if (setting && setting->short_description)
|
||||||
@ -220,11 +214,6 @@ void SettingsGroup::addFileSelector(rarch_setting_t *setting)
|
|||||||
m_layout->addFileSelector(setting);
|
m_layout->addFileSelector(setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsGroup::addFontSelector(rarch_setting_t *setting)
|
|
||||||
{
|
|
||||||
m_layout->addFontSelector(setting);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsGroup::addStringLineEdit(rarch_setting_t *setting)
|
void SettingsGroup::addStringLineEdit(rarch_setting_t *setting)
|
||||||
{
|
{
|
||||||
m_layout->addStringLineEdit(setting);
|
m_layout->addStringLineEdit(setting);
|
||||||
@ -879,19 +868,29 @@ PathButton::PathButton(const char *setting, QWidget *parent) :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString PathButton::currentPath()
|
||||||
|
{
|
||||||
|
QString current(m_setting->value.target.string);
|
||||||
|
if (current.isEmpty())
|
||||||
|
current = m_setting->default_value.string;
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
void DirectoryButton::onClicked(bool)
|
void DirectoryButton::onClicked(bool)
|
||||||
{
|
{
|
||||||
QString dir = QFileDialog::getExistingDirectory(
|
QString dir = QFileDialog::getExistingDirectory(
|
||||||
this,
|
this,
|
||||||
"Choose " + QString(m_setting->short_description) + " Directory",
|
"Choose " + QString(m_setting->short_description) + " Directory",
|
||||||
QString(m_setting->default_value.string));
|
currentPath());
|
||||||
|
|
||||||
if (!dir.isNull())
|
if (!dir.isNull())
|
||||||
{
|
{
|
||||||
strlcpy(m_setting->value.target.string, QDir::toNativeSeparators(dir).toUtf8().data(), m_setting->size);
|
strlcpy(m_setting->value.target.string, QDir::toNativeSeparators(dir).toUtf8().data(), m_setting->size);
|
||||||
|
|
||||||
handleChange(m_setting);
|
handleChange(m_setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
emit changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FileButton::onClicked(bool)
|
void FileButton::onClicked(bool)
|
||||||
@ -899,7 +898,7 @@ void FileButton::onClicked(bool)
|
|||||||
QString file = QFileDialog::getOpenFileName(
|
QString file = QFileDialog::getOpenFileName(
|
||||||
this,
|
this,
|
||||||
"Choose File",
|
"Choose File",
|
||||||
QString(m_setting->default_value.string),
|
currentPath(),
|
||||||
QString(m_setting->short_description) + " (*." + QString(m_setting->values) + ")");
|
QString(m_setting->short_description) + " (*." + QString(m_setting->values) + ")");
|
||||||
|
|
||||||
if (!file.isNull())
|
if (!file.isNull())
|
||||||
@ -908,29 +907,19 @@ void FileButton::onClicked(bool)
|
|||||||
|
|
||||||
handleChange(m_setting);
|
handleChange(m_setting);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
void FontButton::onClicked(bool)
|
emit changed();
|
||||||
{
|
|
||||||
QString file = QFileDialog::getOpenFileName(
|
|
||||||
this,
|
|
||||||
"Choose Font",
|
|
||||||
QString(m_setting->default_value.string),
|
|
||||||
"TrueType font (*.ttf)");
|
|
||||||
|
|
||||||
if (!file.isNull())
|
|
||||||
{
|
|
||||||
strlcpy(m_setting->value.target.string, QDir::toNativeSeparators(file).toUtf8().data(), m_setting->size);
|
|
||||||
|
|
||||||
handleChange(m_setting);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DirectorySelector::DirectorySelector(rarch_setting_t *setting, QWidget *parent) :
|
DirectorySelector::DirectorySelector(rarch_setting_t *setting, QWidget *parent) :
|
||||||
QHBoxLayout(parent)
|
QHBoxLayout(parent)
|
||||||
|
,m_lineEdit(new StringLineEdit(setting))
|
||||||
|
,m_button(new DirectoryButton(setting))
|
||||||
{
|
{
|
||||||
addWidget(new StringLineEdit(setting));
|
addWidget(m_lineEdit);
|
||||||
addWidget(new DirectoryButton(setting));
|
addWidget(m_button);
|
||||||
|
|
||||||
|
connect(m_button, SIGNAL(changed()), m_lineEdit, SLOT(update()));
|
||||||
}
|
}
|
||||||
|
|
||||||
FileSelector::FileSelector(const char *setting, QWidget *parent) :
|
FileSelector::FileSelector(const char *setting, QWidget *parent) :
|
||||||
@ -940,16 +929,14 @@ FileSelector::FileSelector(const char *setting, QWidget *parent) :
|
|||||||
|
|
||||||
FileSelector::FileSelector(rarch_setting_t *setting, QWidget *parent) :
|
FileSelector::FileSelector(rarch_setting_t *setting, QWidget *parent) :
|
||||||
QHBoxLayout(parent)
|
QHBoxLayout(parent)
|
||||||
{
|
,m_lineEdit(new StringLineEdit(setting))
|
||||||
addWidget(new StringLineEdit(setting));
|
,m_button(new FileButton(setting))
|
||||||
addWidget(new FileButton(setting));
|
|
||||||
}
|
|
||||||
|
|
||||||
FontSelector::FontSelector(rarch_setting_t *setting, QWidget *parent) :
|
|
||||||
QHBoxLayout(parent)
|
|
||||||
{
|
{
|
||||||
addWidget(new StringLineEdit(setting));
|
addWidget(m_lineEdit);
|
||||||
addWidget(new FontButton(setting));
|
addWidget(m_button);
|
||||||
|
|
||||||
|
connect(m_button, SIGNAL(changed()), m_lineEdit, SLOT(update()));
|
||||||
}
|
}
|
||||||
|
|
||||||
FloatSlider::FloatSlider(const char *setting, QWidget *parent) :
|
FloatSlider::FloatSlider(const char *setting, QWidget *parent) :
|
||||||
|
@ -28,8 +28,6 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static const QString FONT_FILTER = QStringLiteral("TrueType font (*.ttf)");
|
|
||||||
|
|
||||||
class FormLayout : public QFormLayout
|
class FormLayout : public QFormLayout
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -44,7 +42,6 @@ public:
|
|||||||
void addFileSelector(rarch_setting_t *setting);
|
void addFileSelector(rarch_setting_t *setting);
|
||||||
void addDirectorySelector(rarch_setting_t *setting);
|
void addDirectorySelector(rarch_setting_t *setting);
|
||||||
void addFloatSliderAndSpinBox(rarch_setting_t *setting);
|
void addFloatSliderAndSpinBox(rarch_setting_t *setting);
|
||||||
void addFontSelector(rarch_setting_t *setting);
|
|
||||||
void addUIntRadioButtons(rarch_setting_t *setting);
|
void addUIntRadioButtons(rarch_setting_t *setting);
|
||||||
void addStringComboBox(rarch_setting_t *setting);
|
void addStringComboBox(rarch_setting_t *setting);
|
||||||
void addStringLineEdit(rarch_setting_t *setting);
|
void addStringLineEdit(rarch_setting_t *setting);
|
||||||
@ -96,9 +93,6 @@ public:
|
|||||||
case ST_UI_TYPE_FILE_SELECTOR:
|
case ST_UI_TYPE_FILE_SELECTOR:
|
||||||
this->addFileSelector(setting);
|
this->addFileSelector(setting);
|
||||||
break;
|
break;
|
||||||
case ST_UI_TYPE_FONT_SELECTOR:
|
|
||||||
this->addFontSelector(setting);
|
|
||||||
break;
|
|
||||||
case ST_UI_TYPE_STRING_COMBOBOX:
|
case ST_UI_TYPE_STRING_COMBOBOX:
|
||||||
this->addStringComboBox(setting);
|
this->addStringComboBox(setting);
|
||||||
break;
|
break;
|
||||||
@ -185,9 +179,6 @@ public:
|
|||||||
case ST_UI_TYPE_FILE_SELECTOR:
|
case ST_UI_TYPE_FILE_SELECTOR:
|
||||||
this->addFileSelector(setting);
|
this->addFileSelector(setting);
|
||||||
break;
|
break;
|
||||||
case ST_UI_TYPE_FONT_SELECTOR:
|
|
||||||
this->addFontSelector(setting);
|
|
||||||
break;
|
|
||||||
case ST_UI_TYPE_STRING_COMBOBOX:
|
case ST_UI_TYPE_STRING_COMBOBOX:
|
||||||
this->addStringComboBox(setting);
|
this->addStringComboBox(setting);
|
||||||
break;
|
break;
|
||||||
@ -219,7 +210,6 @@ private:
|
|||||||
void addFileSelector(rarch_setting_t *setting);
|
void addFileSelector(rarch_setting_t *setting);
|
||||||
void addDirectorySelector(rarch_setting_t *setting);
|
void addDirectorySelector(rarch_setting_t *setting);
|
||||||
void addFloatSliderAndSpinBox(rarch_setting_t *setting);
|
void addFloatSliderAndSpinBox(rarch_setting_t *setting);
|
||||||
void addFontSelector(rarch_setting_t *setting);
|
|
||||||
void addUIntRadioButtons(rarch_setting_t *setting);
|
void addUIntRadioButtons(rarch_setting_t *setting);
|
||||||
void addStringComboBox(rarch_setting_t *setting);
|
void addStringComboBox(rarch_setting_t *setting);
|
||||||
void addStringLineEdit(rarch_setting_t *setting);
|
void addStringLineEdit(rarch_setting_t *setting);
|
||||||
@ -422,6 +412,8 @@ class PathButton : public QPushButton
|
|||||||
public:
|
public:
|
||||||
PathButton(rarch_setting_t *setting, QWidget *parent = 0);
|
PathButton(rarch_setting_t *setting, QWidget *parent = 0);
|
||||||
PathButton(const char *setting, QWidget *parent = 0);
|
PathButton(const char *setting, QWidget *parent = 0);
|
||||||
|
signals:
|
||||||
|
void changed();
|
||||||
protected slots:
|
protected slots:
|
||||||
virtual void onClicked(bool checked = false) { Q_UNUSED( checked); }
|
virtual void onClicked(bool checked = false) { Q_UNUSED( checked); }
|
||||||
protected:
|
protected:
|
||||||
@ -429,6 +421,7 @@ protected:
|
|||||||
rarch_setting_t *m_setting;
|
rarch_setting_t *m_setting;
|
||||||
char *m_value;
|
char *m_value;
|
||||||
const char *m_dir;
|
const char *m_dir;
|
||||||
|
QString currentPath();
|
||||||
};
|
};
|
||||||
|
|
||||||
class DirectoryButton : public PathButton
|
class DirectoryButton : public PathButton
|
||||||
@ -451,21 +444,14 @@ private:
|
|||||||
void onClicked(bool checked = false);
|
void onClicked(bool checked = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
class FontButton : public PathButton
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
FontButton(rarch_setting_t *setting, QWidget *parent = 0) :
|
|
||||||
PathButton(setting, parent) {}
|
|
||||||
private:
|
|
||||||
void onClicked(bool checked = false);
|
|
||||||
};
|
|
||||||
|
|
||||||
class DirectorySelector : public QHBoxLayout
|
class DirectorySelector : public QHBoxLayout
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DirectorySelector(rarch_setting_t *setting, QWidget *parent = 0);
|
DirectorySelector(rarch_setting_t *setting, QWidget *parent = 0);
|
||||||
|
private:
|
||||||
|
StringLineEdit *m_lineEdit;
|
||||||
|
DirectoryButton *m_button;
|
||||||
};
|
};
|
||||||
|
|
||||||
class FileSelector : public QHBoxLayout
|
class FileSelector : public QHBoxLayout
|
||||||
@ -474,13 +460,9 @@ class FileSelector : public QHBoxLayout
|
|||||||
public:
|
public:
|
||||||
FileSelector(rarch_setting_t *setting, QWidget *parent = 0);
|
FileSelector(rarch_setting_t *setting, QWidget *parent = 0);
|
||||||
FileSelector(const char *setting, QWidget *parent = 0);
|
FileSelector(const char *setting, QWidget *parent = 0);
|
||||||
};
|
private:
|
||||||
|
StringLineEdit *m_lineEdit;
|
||||||
class FontSelector : public QHBoxLayout
|
FileButton *m_button;
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
FontSelector(rarch_setting_t *setting, QWidget *parent = 0);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class FloatSlider : public QSlider
|
class FloatSlider : public QSlider
|
||||||
|
Loading…
x
Reference in New Issue
Block a user