PATTERN "*.manifest" EXCLUDE
PATTERN "resource.h" EXCLUDE
)
+ install(DIRECTORY od-unix/share/filter-presets/
+ DESTINATION "${CMAKE_INSTALL_DATADIR}/winuae/od-unix/share/filter-presets"
+ )
if(WINUAE_UNIX_WITH_PPC_QEMU)
install(FILES "${WINUAE_QEMU_UAE_PLUGIN_PATH}"
DESTINATION "${WINUAE_UNIX_INSTALL_PLUGINDIR_RELATIVE}"
return QDir(filterPresetDirectoryPath()).filePath(normalizedFilterPresetName(name) + QStringLiteral(".filter"));
}
+ QString systemFilterPresetDirectory() const
+ {
+ return resourceFile(QStringLiteral("od-unix/share/filter-presets"));
+ }
+
+ QString findFilterPresetFile(const QString &name) const
+ {
+ const QString user = filterPresetPath(name);
+ if (QFileInfo::exists(user)) {
+ return user;
+ }
+ const QString system = QDir(systemFilterPresetDirectory()).filePath(normalizedFilterPresetName(name) + QStringLiteral(".filter"));
+ if (QFileInfo::exists(system)) {
+ return system;
+ }
+ return user;
+ }
+
void refreshFilterPresetList(const QString &preferred = QString())
{
if (!filterPresetName) {
QSignalBlocker blocker(filterPresetName);
filterPresetName->clear();
filterPresetName->addItem(QString());
- QDir dir(filterPresetDirectoryPath());
- const QStringList files = dir.entryList({ QStringLiteral("*.filter") }, QDir::Files, QDir::Name | QDir::IgnoreCase);
- for (const QString &file : files) {
- filterPresetName->addItem(QFileInfo(file).completeBaseName());
+ QStringList names;
+ for (const QString &directory : { filterPresetDirectoryPath(), systemFilterPresetDirectory() }) {
+ QDir dir(directory);
+ const QStringList files = dir.entryList({ QStringLiteral("*.filter") }, QDir::Files, QDir::Name | QDir::IgnoreCase);
+ for (const QString &file : files) {
+ const QString name = QFileInfo(file).completeBaseName();
+ if (!names.contains(name, Qt::CaseInsensitive)) {
+ names.append(name);
+ }
+ }
}
+ names.sort(Qt::CaseInsensitive);
+ filterPresetName->addItems(names);
filterPresetName->setCurrentText(current);
}
if (name.isEmpty()) {
return;
}
- QFile file(filterPresetPath(name));
+ QFile file(findFilterPresetFile(name));
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::warning(this, windowTitle(), QStringLiteral("Could not read %1:\n%2").arg(file.fileName(), file.errorString()));
return;
! -name '*.manifest' \
! -name 'resource.h' \
-exec cp '{}' "${resources_dir}/od-win32/resources/" ';'
+mkdir -p "${resources_dir}/od-unix/share/filter-presets"
+cp "${source_dir}/od-unix/share/filter-presets/"*.filter \
+ "${resources_dir}/od-unix/share/filter-presets/"
cp "${source_dir}/README_unix.md" "${resources_dir}/README_unix.md"
if [[ -f "${source_dir}/od-win32/resources/winuae.ico" ]]; then