Bladeren bron

Add support for "Open File=" (sadly, this uses an absolute path so it will only work for KTIGCC-created projects).

git-svn-id: file:///var/svn/tigccpp/trunk@380 9552661e-59e3-4036-b4f2-dbe53926924f
kevinkofler 18 jaren geleden
bovenliggende
commit
9dbd3a4611
4 gewijzigde bestanden met toevoegingen van 27 en 15 verwijderingen
  1. 2 2
      ktigcc/mainform.ui
  2. 15 12
      ktigcc/mainform.ui.h
  3. 9 1
      ktigcc/tpr.cxx
  4. 1 0
      ktigcc/tpr.h

+ 2 - 2
ktigcc/mainform.ui

@@ -1356,9 +1356,9 @@
 <functions>
     <function access="private" specifier="static" returnType="QString">SGetFileName( int mode, short fileFilter, const QString &amp; caption, QWidget * parent )</function>
     <function access="private" specifier="static" returnType="QStringList">SGetFileName_Multiple( short fileFilter, const QString &amp; caption, QWidget * parent )</function>
-    <function access="private" specifier="non virtual">openFile( QListViewItem * category, QListViewItem * parent, const QString &amp; fileCaption, const QString &amp; fileName )</function>
+    <function access="private" specifier="non virtual" returnType="QListViewItem *">openFile( QListViewItem * category, QListViewItem * parent, const QString &amp; fileCaption, const QString &amp; fileName )</function>
     <function access="private" specifier="static" returnType="QListViewItem *">createFolder( QListViewItem * parent, const QString &amp; name )</function>
-    <function access="private" specifier="non virtual">fileOpen_addList( QListViewItem * category, void * fileListV, void * dir )</function>
+    <function access="private" specifier="non virtual">fileOpen_addList( QListViewItem * category, void * fileListV, void * dir, const QString &amp; open_file )</function>
     <function access="private" specifier="non virtual">updateSizes()</function>
     <function access="private" specifier="non virtual">newFile( QListViewItem * parent, QString text, const char * iconName )</function>
     <function access="private" specifier="non virtual">newFile( QListViewItem * parent )</function>

+ 15 - 12
ktigcc/mainform.ui.h

@@ -557,7 +557,7 @@ QStringList MainForm::SGetFileName_Multiple(short fileFilter,const QString &capt
   return ret;
 }
 
-void MainForm::openFile(QListViewItem * category, QListViewItem * parent, const QString &fileCaption, const QString &fileName)
+QListViewItem * MainForm::openFile(QListViewItem * category, QListViewItem * parent, const QString &fileCaption, const QString &fileName)
 {
   QListViewItem *item=NULL, *next=parent->firstChild();
   for (; IS_FILE(next); next=item->nextSibling())
@@ -585,6 +585,7 @@ void MainForm::openFile(QListViewItem * category, QListViewItem * parent, const
    category==qllFilesListItem?qllFileCount:category==oFilesListItem?oFileCount:
    category==aFilesListItem?aFileCount:category==txtFilesListItem?txtFileCount:
    othFileCount)++;
+  return newFile;
 }
 
 QListViewItem *MainForm::createFolder(QListViewItem *parent,const QString &name)
@@ -607,7 +608,7 @@ QListViewItem *MainForm::createFolder(QListViewItem *parent,const QString &name)
   return newItem;
 }
 
-void MainForm::fileOpen_addList(QListViewItem *category,void *fileListV,void *dir)
+void MainForm::fileOpen_addList(QListViewItem *category,void *fileListV,void *dir, const QString &open_file)
 {
   int i,e;
   int p;
@@ -642,7 +643,9 @@ void MainForm::fileOpen_addList(QListViewItem *category,void *fileListV,void *di
         parent=createFolder(parent,treePath);
     }
     
-    openFile(category,parent,caption,tmp.path());
+    ListViewFile *newFile=static_cast<ListViewFile *>(openFile(category,parent,caption,tmp.path()));
+    if (!newFile->fileName.compare(open_file))
+      fileTreeClicked(newFile);
   }
 }
 
@@ -670,15 +673,15 @@ void MainForm::fileOpen()
     return;
   }
   fileNewProject();
-  fileOpen_addList(hFilesListItem,&TPRData.h_files,&dir);
-  fileOpen_addList(cFilesListItem,&TPRData.c_files,&dir);
-  fileOpen_addList(qllFilesListItem,&TPRData.quill_files,&dir);
-  fileOpen_addList(sFilesListItem,&TPRData.s_files,&dir);
-  fileOpen_addList(asmFilesListItem,&TPRData.asm_files,&dir);
-  fileOpen_addList(oFilesListItem,&TPRData.o_files,&dir);
-  fileOpen_addList(aFilesListItem,&TPRData.a_files,&dir);
-  fileOpen_addList(txtFilesListItem,&TPRData.txt_files,&dir);
-  fileOpen_addList(othFilesListItem,&TPRData.oth_files,&dir);
+  fileOpen_addList(hFilesListItem,&TPRData.h_files,&dir,TPRData.open_file);
+  fileOpen_addList(cFilesListItem,&TPRData.c_files,&dir,TPRData.open_file);
+  fileOpen_addList(qllFilesListItem,&TPRData.quill_files,&dir,TPRData.open_file);
+  fileOpen_addList(sFilesListItem,&TPRData.s_files,&dir,TPRData.open_file);
+  fileOpen_addList(asmFilesListItem,&TPRData.asm_files,&dir,TPRData.open_file);
+  fileOpen_addList(oFilesListItem,&TPRData.o_files,&dir,TPRData.open_file);
+  fileOpen_addList(aFilesListItem,&TPRData.a_files,&dir,TPRData.open_file);
+  fileOpen_addList(txtFilesListItem,&TPRData.txt_files,&dir,TPRData.open_file);
+  fileOpen_addList(othFilesListItem,&TPRData.oth_files,&dir,TPRData.open_file);
   rootListItem->setText(0,TPRData.prj_name);
   projectFileName=fileName;
   settings=TPRData.settings;

+ 9 - 1
ktigcc/tpr.cxx

@@ -289,7 +289,15 @@ int parse_file(FILE *f,TPRDataStruct *dest)
 #undef reloc_param
         }
 
-        // Ignore [File Editing] section, it is used only for editing.
+        // Keywords in the [File Editing] section
+        if(stype == SECTION_FILEEDIT)
+        {
+            if ( (p=find_param(buffer, "Open File=")) ) \
+            { \
+                if (*p) dest->open_file = p; \
+                continue; \
+            } else return l;
+        }
 
         // Keywords in the [Included Files] section
         if(stype == SECTION_FILES)

+ 1 - 0
ktigcc/tpr.h

@@ -131,6 +131,7 @@ typedef struct
 typedef struct
 {
   QString prj_name;
+  QString open_file;
   tprSettings settings;
   tprLibOpts libopts;
   TPRFileList h_files;