Skip to content

Commit

Permalink
fix #3773
Browse files Browse the repository at this point in the history
  • Loading branch information
sunderme committed Aug 23, 2024
1 parent 9e798fb commit ef7c485
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/latexstructure.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class LatexDocuments;
* Section are organized hierarchical depending on the section level, MAGIC comments, label are below a root-marker below root
*/
struct StructureEntry {
enum Type {SE_DOCUMENT_ROOT, SE_OVERVIEW, SE_SECTION, SE_BIBTEX, SE_TODO, SE_MAGICCOMMENT, SE_INCLUDE, SE_LABEL, SE_BLOCK = SE_LABEL};
enum Type {SE_DOCUMENT_ROOT, SE_OVERVIEW, SE_SECTION, SE_BIBTEX, SE_TODO, SE_MAGICCOMMENT, SE_INCLUDE, SE_LABEL, SE_BLOCK};
enum Context { ///< mark if entry is located beyond appendix/end document commands
Unknown = 0x0000,
InAppendix = 0x0001,
Expand Down
23 changes: 21 additions & 2 deletions src/texstudio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12491,6 +12491,7 @@ void Texstudio::updateStructureLocally(bool updateAll){
bool itemExpandedTODO=false;
bool itemExpandedMAGIC=false;
bool itemExpandedBIBLIO=false;
bool itemExpandedBLOCK=false;
bool addToTopLevel=false;
if(!root){
root=new QTreeWidgetItem();
Expand All @@ -12513,6 +12514,9 @@ void Texstudio::updateStructureLocally(bool updateAll){
if(item->data(0,Qt::UserRole+1).toString()=="LABEL"){
itemExpandedLABEL=item->isExpanded();
}
if(item->data(0,Qt::UserRole+1).toString()=="BLOCK"){
itemExpandedBLOCK=item->isExpanded();
}
if(item->data(0,Qt::UserRole+1).toString()=="MAGIC"){
itemExpandedMAGIC=item->isExpanded();
}
Expand Down Expand Up @@ -12549,7 +12553,8 @@ void Texstudio::updateStructureLocally(bool updateAll){
QList<QTreeWidgetItem*> labelList;
QList<QTreeWidgetItem*> magicList;
QList<QTreeWidgetItem*> biblioList;
parseStructLocally(doc,rootVector,&todoList,&labelList,&magicList,&biblioList);
QList<QTreeWidgetItem*> blockList;
parseStructLocally(doc,rootVector,&todoList,&labelList,&magicList,&biblioList,&blockList);
if(addToTopLevel)
structureTreeWidget->addTopLevelItem(root);

Expand Down Expand Up @@ -12577,6 +12582,14 @@ void Texstudio::updateStructureLocally(bool updateAll){
root->insertChild(0,itemTODO);
itemTODO->setExpanded(itemExpandedTODO);
}
if(!blockList.isEmpty()){
QTreeWidgetItem *itemBLOCK=new QTreeWidgetItem();
itemBLOCK->setText(0,tr("BLOCK"));
itemBLOCK->setData(0,Qt::UserRole+1,"BLOCK");
itemBLOCK->insertChildren(0,blockList);
root->insertChild(0,itemBLOCK);
itemBLOCK->setExpanded(itemExpandedBLOCK);
}
if(!labelList.isEmpty()){
QTreeWidgetItem *itemLABEL=new QTreeWidgetItem();
itemLABEL->setText(0,tr("LABELS"));
Expand All @@ -12599,7 +12612,7 @@ void Texstudio::updateStructureLocally(bool updateAll){
* \param se root structureentry
* \param rootVector
*/
void Texstudio::parseStructLocally(LatexDocument *doc, QVector<QTreeWidgetItem *> &rootVector, QList<QTreeWidgetItem *> *todoList, QList<QTreeWidgetItem *> *labelList, QList<QTreeWidgetItem *> *magicList, QList<QTreeWidgetItem *> *biblioList) {
void Texstudio::parseStructLocally(LatexDocument *doc, QVector<QTreeWidgetItem *> &rootVector, QList<QTreeWidgetItem *> *todoList, QList<QTreeWidgetItem *> *labelList, QList<QTreeWidgetItem *> *magicList, QList<QTreeWidgetItem *> *biblioList, QList<QTreeWidgetItem *> *blockList) {
const QColor beyondEndColor = darkMode ? QColor(255, 170, 0) : QColor(255, 170, 0);
const QColor inAppendixColor= darkMode ? QColor(0, 102, 0): QColor(200, 230, 200);

Expand Down Expand Up @@ -12628,6 +12641,12 @@ void Texstudio::parseStructLocally(LatexDocument *doc, QVector<QTreeWidgetItem *
item->setText(0,elem->title);
biblioList->append(item);
}
if(blockList && (elem->type == StructureEntry::SE_BLOCK)){
QTreeWidgetItem * item=new QTreeWidgetItem();
item->setData(0,Qt::UserRole,QVariant::fromValue<StructureEntry *>(elem));
item->setText(0,elem->title);
blockList->append(item);
}
if(elem->type == StructureEntry::SE_SECTION){
QTreeWidgetItem * item=new QTreeWidgetItem();
item->setData(0,Qt::UserRole,QVariant::fromValue<StructureEntry *>(elem));
Expand Down
2 changes: 1 addition & 1 deletion src/texstudio.h
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ private slots:
void linkToEditorSlot(QAction *act, const char *slot, const QList<QVariant> &args);

bool parseStruct(LatexDocument *doc, QVector<QTreeWidgetItem *> &rootVector, QSet<LatexDocument*> *visited=nullptr, QList<QTreeWidgetItem *> *todoList=nullptr, int currentColor=0);
void parseStructLocally(LatexDocument* document, QVector<QTreeWidgetItem *> &rootVector, QList<QTreeWidgetItem *> *todoList=nullptr, QList<QTreeWidgetItem *> *labelList=nullptr, QList<QTreeWidgetItem *> *magicList=nullptr, QList<QTreeWidgetItem *> *biblioList=nullptr);
void parseStructLocally(LatexDocument* document, QVector<QTreeWidgetItem *> &rootVector, QList<QTreeWidgetItem *> *todoList=nullptr, QList<QTreeWidgetItem *> *labelList=nullptr, QList<QTreeWidgetItem *> *magicList=nullptr, QList<QTreeWidgetItem *> *biblioList=nullptr, QList<QTreeWidgetItem *> *blockList=nullptr);
#ifndef QT_NO_DEBUG
void checkForShortcutDuplicate();
#endif
Expand Down

0 comments on commit ef7c485

Please sign in to comment.