mirror of
https://github.com/leozide/leocad
synced 2025-01-30 20:34:56 +01:00
Array cleanup.
This commit is contained in:
parent
220fb26a3a
commit
b43675f323
6 changed files with 35 additions and 36 deletions
|
@ -32,7 +32,7 @@ struct lcPreferencesDialogOptions
|
||||||
int AASamples;
|
int AASamples;
|
||||||
int StudLogo;
|
int StudLogo;
|
||||||
|
|
||||||
lcArray<lcLibraryCategory> Categories;
|
std::vector<lcLibraryCategory> Categories;
|
||||||
bool CategoriesModified;
|
bool CategoriesModified;
|
||||||
bool CategoriesDefault;
|
bool CategoriesDefault;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#include "lc_file.h"
|
#include "lc_file.h"
|
||||||
#include "lc_profile.h"
|
#include "lc_profile.h"
|
||||||
|
|
||||||
lcArray<lcLibraryCategory> gCategories;
|
std::vector<lcLibraryCategory> gCategories;
|
||||||
|
|
||||||
void lcResetDefaultCategories()
|
void lcResetDefaultCategories()
|
||||||
{
|
{
|
||||||
|
@ -30,7 +30,7 @@ void lcSaveDefaultCategories()
|
||||||
lcSetProfileBuffer(LC_PROFILE_CATEGORIES, ByteArray);
|
lcSetProfileBuffer(LC_PROFILE_CATEGORIES, ByteArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcResetCategories(lcArray<lcLibraryCategory>& Categories, bool BuiltInLibrary)
|
void lcResetCategories(std::vector<lcLibraryCategory>& Categories, bool BuiltInLibrary)
|
||||||
{
|
{
|
||||||
const char DefaultCategories[] =
|
const char DefaultCategories[] =
|
||||||
{
|
{
|
||||||
|
@ -86,7 +86,7 @@ void lcResetCategories(lcArray<lcLibraryCategory>& Categories, bool BuiltInLibra
|
||||||
lcLoadCategories(Buffer, Categories);
|
lcLoadCategories(Buffer, Categories);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool lcLoadCategories(const QString& FileName, lcArray<lcLibraryCategory>& Categories)
|
bool lcLoadCategories(const QString& FileName, std::vector<lcLibraryCategory>& Categories)
|
||||||
{
|
{
|
||||||
QFile File(FileName);
|
QFile File(FileName);
|
||||||
|
|
||||||
|
@ -98,9 +98,9 @@ bool lcLoadCategories(const QString& FileName, lcArray<lcLibraryCategory>& Categ
|
||||||
return lcLoadCategories(FileData, Categories);
|
return lcLoadCategories(FileData, Categories);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool lcLoadCategories(const QByteArray& Buffer, lcArray<lcLibraryCategory>& Categories)
|
bool lcLoadCategories(const QByteArray& Buffer, std::vector<lcLibraryCategory>& Categories)
|
||||||
{
|
{
|
||||||
Categories.RemoveAll();
|
Categories.clear();
|
||||||
|
|
||||||
QTextStream Stream(Buffer);
|
QTextStream Stream(Buffer);
|
||||||
|
|
||||||
|
@ -114,16 +114,18 @@ bool lcLoadCategories(const QByteArray& Buffer, lcArray<lcLibraryCategory>& Cate
|
||||||
QString Name = Line.left(Equals);
|
QString Name = Line.left(Equals);
|
||||||
QString Keywords = Line.mid(Equals + 1);
|
QString Keywords = Line.mid(Equals + 1);
|
||||||
|
|
||||||
lcLibraryCategory& Category = Categories.Add();
|
lcLibraryCategory Category;
|
||||||
|
|
||||||
Category.Name = Name.toLatin1().constData();
|
Category.Name = Name;
|
||||||
Category.Keywords = Keywords.toLatin1().constData();
|
Category.Keywords = Keywords.toLatin1();
|
||||||
|
|
||||||
|
Categories.emplace_back(std::move(Category));
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool lcSaveCategories(const QString& FileName, const lcArray<lcLibraryCategory>& Categories)
|
bool lcSaveCategories(const QString& FileName, const std::vector<lcLibraryCategory>& Categories)
|
||||||
{
|
{
|
||||||
QFile File(FileName);
|
QFile File(FileName);
|
||||||
|
|
||||||
|
@ -135,7 +137,7 @@ bool lcSaveCategories(const QString& FileName, const lcArray<lcLibraryCategory>&
|
||||||
return lcSaveCategories(Stream, Categories);
|
return lcSaveCategories(Stream, Categories);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool lcSaveCategories(QTextStream& Stream, const lcArray<lcLibraryCategory>& Categories)
|
bool lcSaveCategories(QTextStream& Stream, const std::vector<lcLibraryCategory>& Categories)
|
||||||
{
|
{
|
||||||
QString Format("%1=%2\r\n");
|
QString Format("%1=%2\r\n");
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "lc_array.h"
|
|
||||||
|
|
||||||
struct lcLibraryCategory
|
struct lcLibraryCategory
|
||||||
{
|
{
|
||||||
QString Name;
|
QString Name;
|
||||||
QByteArray Keywords;
|
QByteArray Keywords;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern lcArray<lcLibraryCategory> gCategories;
|
extern std::vector<lcLibraryCategory> gCategories;
|
||||||
|
|
||||||
void lcResetDefaultCategories();
|
void lcResetDefaultCategories();
|
||||||
void lcLoadDefaultCategories(bool BuiltInLibrary = false);
|
void lcLoadDefaultCategories(bool BuiltInLibrary = false);
|
||||||
void lcSaveDefaultCategories();
|
void lcSaveDefaultCategories();
|
||||||
|
|
||||||
void lcResetCategories(lcArray<lcLibraryCategory>& Categories, bool BuiltInLibrary = false);
|
void lcResetCategories(std::vector<lcLibraryCategory>& Categories, bool BuiltInLibrary = false);
|
||||||
bool lcLoadCategories(const QString& FileName, lcArray<lcLibraryCategory>& Categories);
|
bool lcLoadCategories(const QString& FileName, std::vector<lcLibraryCategory>& Categories);
|
||||||
bool lcLoadCategories(const QByteArray& Buffer, lcArray<lcLibraryCategory>& Categories);
|
bool lcLoadCategories(const QByteArray& Buffer, std::vector<lcLibraryCategory>& Categories);
|
||||||
bool lcSaveCategories(const QString& FileName, const lcArray<lcLibraryCategory>& Categories);
|
bool lcSaveCategories(const QString& FileName, const std::vector<lcLibraryCategory>& Categories);
|
||||||
bool lcSaveCategories(QTextStream& Stream, const lcArray<lcLibraryCategory>& Categories);
|
bool lcSaveCategories(QTextStream& Stream, const std::vector<lcLibraryCategory>& Categories);
|
||||||
|
|
||||||
bool lcMatchCategory(const char* PieceName, const char* Expression);
|
bool lcMatchCategory(const char* PieceName, const char* Expression);
|
||||||
|
|
||||||
|
|
|
@ -1729,7 +1729,7 @@ bool lcPiecesLibrary::PieceInCategory(PieceInfo* Info, const char* CategoryKeywo
|
||||||
|
|
||||||
void lcPiecesLibrary::GetCategoryEntries(int CategoryIndex, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces)
|
void lcPiecesLibrary::GetCategoryEntries(int CategoryIndex, bool GroupPieces, lcArray<PieceInfo*>& SinglePieces, lcArray<PieceInfo*>& GroupedPieces)
|
||||||
{
|
{
|
||||||
if (CategoryIndex >= 0 && CategoryIndex < gCategories.GetSize())
|
if (CategoryIndex >= 0 && CategoryIndex < static_cast<int>(gCategories.size()))
|
||||||
GetCategoryEntries(gCategories[CategoryIndex].Keywords.constData(), GroupPieces, SinglePieces, GroupedPieces);
|
GetCategoryEntries(gCategories[CategoryIndex].Keywords.constData(), GroupPieces, SinglePieces, GroupedPieces);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1110,7 +1110,7 @@ void lcPartSelectionWidget::UpdateCategories()
|
||||||
CurrentItem = PaletteCategoryItem;
|
CurrentItem = PaletteCategoryItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int CategoryIdx = 0; CategoryIdx < gCategories.GetSize(); CategoryIdx++)
|
for (int CategoryIdx = 0; CategoryIdx < static_cast<int>(gCategories.size()); CategoryIdx++)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem* CategoryItem = new QTreeWidgetItem(mCategoriesWidget, QStringList(gCategories[CategoryIdx].Name));
|
QTreeWidgetItem* CategoryItem = new QTreeWidgetItem(mCategoriesWidget, QStringList(gCategories[CategoryIdx].Name));
|
||||||
CategoryItem->setData(0, static_cast<int>(lcPartCategoryRole::Type), static_cast<int>(lcPartCategoryType::Category));
|
CategoryItem->setData(0, static_cast<int>(lcPartCategoryRole::Type), static_cast<int>(lcPartCategoryType::Category));
|
||||||
|
|
|
@ -377,19 +377,19 @@ void lcQPreferencesDialog::on_ViewSphereSizeCombo_currentIndexChanged(int Index)
|
||||||
|
|
||||||
void lcQPreferencesDialog::updateCategories()
|
void lcQPreferencesDialog::updateCategories()
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *categoryItem;
|
QTreeWidgetItem* CategoryItem;
|
||||||
QTreeWidget *tree = ui->categoriesTree;
|
QTreeWidget* CategoriesTree = ui->categoriesTree;
|
||||||
|
|
||||||
tree->clear();
|
CategoriesTree->clear();
|
||||||
|
|
||||||
for (int categoryIndex = 0; categoryIndex < mOptions->Categories.GetSize(); categoryIndex++)
|
for (int CategoryIndex = 0; CategoryIndex < static_cast<int>(mOptions->Categories.size()); CategoryIndex++)
|
||||||
{
|
{
|
||||||
categoryItem = new QTreeWidgetItem(tree, QStringList(mOptions->Categories[categoryIndex].Name));
|
CategoryItem = new QTreeWidgetItem(CategoriesTree, QStringList(mOptions->Categories[CategoryIndex].Name));
|
||||||
categoryItem->setData(0, CategoryRole, QVariant(categoryIndex));
|
CategoryItem->setData(0, CategoryRole, QVariant(CategoryIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
categoryItem = new QTreeWidgetItem(tree, QStringList(tr("Unassigned")));
|
CategoryItem = new QTreeWidgetItem(CategoriesTree, QStringList(tr("Unassigned")));
|
||||||
categoryItem->setData(0, CategoryRole, QVariant(-1));
|
CategoryItem->setData(0, CategoryRole, QVariant(-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcQPreferencesDialog::updateParts()
|
void lcQPreferencesDialog::updateParts()
|
||||||
|
@ -429,13 +429,13 @@ void lcQPreferencesDialog::updateParts()
|
||||||
{
|
{
|
||||||
PieceInfo* Info = PartIt.second;
|
PieceInfo* Info = PartIt.second;
|
||||||
|
|
||||||
for (categoryIndex = 0; categoryIndex < mOptions->Categories.GetSize(); categoryIndex++)
|
for (categoryIndex = 0; categoryIndex < static_cast<int>(mOptions->Categories.size()); categoryIndex++)
|
||||||
{
|
{
|
||||||
if (Library->PieceInCategory(Info, mOptions->Categories[categoryIndex].Keywords.constData()))
|
if (Library->PieceInCategory(Info, mOptions->Categories[categoryIndex].Keywords.constData()))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (categoryIndex == mOptions->Categories.GetSize())
|
if (categoryIndex == static_cast<int>(mOptions->Categories.size()))
|
||||||
{
|
{
|
||||||
QStringList rowList(Info->m_strDescription);
|
QStringList rowList(Info->m_strDescription);
|
||||||
rowList.append(Info->mFileName);
|
rowList.append(Info->mFileName);
|
||||||
|
@ -459,10 +459,10 @@ void lcQPreferencesDialog::on_newCategory_clicked()
|
||||||
|
|
||||||
mOptions->CategoriesModified = true;
|
mOptions->CategoriesModified = true;
|
||||||
mOptions->CategoriesDefault = false;
|
mOptions->CategoriesDefault = false;
|
||||||
mOptions->Categories.Add(category);
|
mOptions->Categories.emplace_back(std::move(category));
|
||||||
|
|
||||||
updateCategories();
|
updateCategories();
|
||||||
ui->categoriesTree->setCurrentItem(ui->categoriesTree->topLevelItem(mOptions->Categories.GetSize() - 1));
|
ui->categoriesTree->setCurrentItem(ui->categoriesTree->topLevelItem(static_cast<int>(mOptions->Categories.size()) - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
void lcQPreferencesDialog::on_editCategory_clicked()
|
void lcQPreferencesDialog::on_editCategory_clicked()
|
||||||
|
@ -508,7 +508,7 @@ void lcQPreferencesDialog::on_deleteCategory_clicked()
|
||||||
|
|
||||||
mOptions->CategoriesModified = true;
|
mOptions->CategoriesModified = true;
|
||||||
mOptions->CategoriesDefault = false;
|
mOptions->CategoriesDefault = false;
|
||||||
mOptions->Categories.RemoveIndex(categoryIndex);
|
mOptions->Categories.erase(mOptions->Categories.begin() + categoryIndex);
|
||||||
|
|
||||||
updateCategories();
|
updateCategories();
|
||||||
}
|
}
|
||||||
|
@ -520,7 +520,7 @@ void lcQPreferencesDialog::on_importCategories_clicked()
|
||||||
if (FileName.isEmpty())
|
if (FileName.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
lcArray<lcLibraryCategory> Categories;
|
std::vector<lcLibraryCategory> Categories;
|
||||||
if (!lcLoadCategories(FileName, Categories))
|
if (!lcLoadCategories(FileName, Categories))
|
||||||
{
|
{
|
||||||
QMessageBox::warning(this, "LeoCAD", tr("Error loading categories file."));
|
QMessageBox::warning(this, "LeoCAD", tr("Error loading categories file."));
|
||||||
|
|
Loading…
Add table
Reference in a new issue