Merge pull request #1827 from Trial97/shader
fixed shader packs detection
This commit is contained in:
commit
c8ff768d64
@ -284,7 +284,12 @@ void ResourceFolderModel::resolveResource(Resource* res)
|
|||||||
connect(
|
connect(
|
||||||
task.get(), &Task::failed, this, [=] { onParseFailed(ticket, res->internal_id()); }, Qt::ConnectionType::QueuedConnection);
|
task.get(), &Task::failed, this, [=] { onParseFailed(ticket, res->internal_id()); }, Qt::ConnectionType::QueuedConnection);
|
||||||
connect(
|
connect(
|
||||||
task.get(), &Task::finished, this, [=] { m_active_parse_tasks.remove(ticket); }, Qt::ConnectionType::QueuedConnection);
|
task.get(), &Task::finished, this,
|
||||||
|
[=] {
|
||||||
|
m_active_parse_tasks.remove(ticket);
|
||||||
|
emit parseFinished();
|
||||||
|
},
|
||||||
|
Qt::ConnectionType::QueuedConnection);
|
||||||
|
|
||||||
m_helper_thread_task.addTask(task);
|
m_helper_thread_task.addTask(task);
|
||||||
|
|
||||||
@ -617,3 +622,26 @@ QString ResourceFolderModel::instDirPath() const
|
|||||||
{
|
{
|
||||||
return QFileInfo(m_instance->instanceRoot()).absoluteFilePath();
|
return QFileInfo(m_instance->instanceRoot()).absoluteFilePath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResourceFolderModel::onParseFailed(int ticket, QString resource_id)
|
||||||
|
{
|
||||||
|
auto iter = m_active_parse_tasks.constFind(ticket);
|
||||||
|
if (iter == m_active_parse_tasks.constEnd())
|
||||||
|
return;
|
||||||
|
|
||||||
|
auto removed_index = m_resources_index[resource_id];
|
||||||
|
auto removed_it = m_resources.begin() + removed_index;
|
||||||
|
Q_ASSERT(removed_it != m_resources.end());
|
||||||
|
|
||||||
|
beginRemoveRows(QModelIndex(), removed_index, removed_index);
|
||||||
|
m_resources.erase(removed_it);
|
||||||
|
|
||||||
|
// update index
|
||||||
|
m_resources_index.clear();
|
||||||
|
int idx = 0;
|
||||||
|
for (auto const& mod : qAsConst(m_resources)) {
|
||||||
|
m_resources_index[mod->internal_id()] = idx;
|
||||||
|
idx++;
|
||||||
|
}
|
||||||
|
endRemoveRows();
|
||||||
|
}
|
||||||
|
@ -143,6 +143,7 @@ class ResourceFolderModel : public QAbstractListModel {
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void updateFinished();
|
void updateFinished();
|
||||||
|
void parseFinished();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/** This creates a new update task to be executed by update().
|
/** This creates a new update task to be executed by update().
|
||||||
@ -189,11 +190,7 @@ class ResourceFolderModel : public QAbstractListModel {
|
|||||||
* if the resource is complex and has more stuff to parse.
|
* if the resource is complex and has more stuff to parse.
|
||||||
*/
|
*/
|
||||||
virtual void onParseSucceeded(int ticket, QString resource_id);
|
virtual void onParseSucceeded(int ticket, QString resource_id);
|
||||||
virtual void onParseFailed(int ticket, QString resource_id)
|
virtual void onParseFailed(int ticket, QString resource_id);
|
||||||
{
|
|
||||||
Q_UNUSED(ticket);
|
|
||||||
Q_UNUSED(resource_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Represents the relationship between a column's index (represented by the list index), and it's sorting key.
|
// Represents the relationship between a column's index (represented by the list index), and it's sorting key.
|
||||||
|
@ -35,8 +35,3 @@ bool ShaderPack::valid() const
|
|||||||
{
|
{
|
||||||
return m_pack_format != ShaderPackFormat::INVALID;
|
return m_pack_format != ShaderPackFormat::INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShaderPack::applyFilter(QRegularExpression filter) const
|
|
||||||
{
|
|
||||||
return valid() && Resource::applyFilter(filter);
|
|
||||||
}
|
|
||||||
|
@ -54,7 +54,6 @@ class ShaderPack : public Resource {
|
|||||||
void setPackFormat(ShaderPackFormat new_format);
|
void setPackFormat(ShaderPackFormat new_format);
|
||||||
|
|
||||||
bool valid() const override;
|
bool valid() const override;
|
||||||
[[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
mutable QMutex m_data_lock;
|
mutable QMutex m_data_lock;
|
||||||
|
@ -746,7 +746,7 @@ void LocalModParseTask::executeTask()
|
|||||||
m_result->details = mod.details();
|
m_result->details = mod.details();
|
||||||
|
|
||||||
if (m_aborted)
|
if (m_aborted)
|
||||||
emit finished();
|
emitAborted();
|
||||||
else
|
else
|
||||||
emitSucceeded();
|
emitSucceeded();
|
||||||
}
|
}
|
||||||
|
@ -286,8 +286,10 @@ bool LocalResourcePackParseTask::abort()
|
|||||||
|
|
||||||
void LocalResourcePackParseTask::executeTask()
|
void LocalResourcePackParseTask::executeTask()
|
||||||
{
|
{
|
||||||
if (!ResourcePackUtils::process(m_resource_pack))
|
if (!ResourcePackUtils::process(m_resource_pack)) {
|
||||||
|
emitFailed("this is not a resource pack");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_aborted)
|
if (m_aborted)
|
||||||
emitAborted();
|
emitAborted();
|
||||||
|
@ -103,8 +103,10 @@ bool LocalShaderPackParseTask::abort()
|
|||||||
|
|
||||||
void LocalShaderPackParseTask::executeTask()
|
void LocalShaderPackParseTask::executeTask()
|
||||||
{
|
{
|
||||||
if (!ShaderPackUtils::process(m_shader_pack))
|
if (!ShaderPackUtils::process(m_shader_pack)) {
|
||||||
|
emitFailed("this is not a shader pack");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_aborted)
|
if (m_aborted)
|
||||||
emitAborted();
|
emitAborted();
|
||||||
|
@ -241,8 +241,10 @@ bool LocalTexturePackParseTask::abort()
|
|||||||
|
|
||||||
void LocalTexturePackParseTask::executeTask()
|
void LocalTexturePackParseTask::executeTask()
|
||||||
{
|
{
|
||||||
if (!TexturePackUtils::process(m_texture_pack))
|
if (!TexturePackUtils::process(m_texture_pack)) {
|
||||||
|
emitFailed("this is not a texture pack");
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_aborted)
|
if (m_aborted)
|
||||||
emitAborted();
|
emitAborted();
|
||||||
|
@ -88,6 +88,7 @@ ExternalResourcesPage::ExternalResourcesPage(BaseInstance* instance, std::shared
|
|||||||
};
|
};
|
||||||
connect(selection_model, &QItemSelectionModel::selectionChanged, this, updateExtra);
|
connect(selection_model, &QItemSelectionModel::selectionChanged, this, updateExtra);
|
||||||
connect(model.get(), &ResourceFolderModel::updateFinished, this, updateExtra);
|
connect(model.get(), &ResourceFolderModel::updateFinished, this, updateExtra);
|
||||||
|
connect(model.get(), &ResourceFolderModel::parseFinished, this, updateExtra);
|
||||||
|
|
||||||
connect(ui->filterEdit, &QLineEdit::textChanged, this, &ExternalResourcesPage::filterTextChanged);
|
connect(ui->filterEdit, &QLineEdit::textChanged, this, &ExternalResourcesPage::filterTextChanged);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user