Browse Source

Check if Quill and A68k are available when loading a project needing them.

git-svn-id: file:///var/svn/tigccpp/trunk@364 9552661e-59e3-4036-b4f2-dbe53926924f
kevinkofler 18 years ago
parent
commit
79af88063d
3 changed files with 17 additions and 7 deletions
  1. 15 1
      ktigcc/mainform.ui.h
  2. 1 3
      ktigcc/tpr.cxx
  3. 1 3
      ktigcc/tpr.h

+ 15 - 1
ktigcc/mainform.ui.h

@@ -43,6 +43,7 @@
 #include <khelpmenu.h>
 #include <kfiledialog.h>
 #include <kurl.h>
+#include <kmessagebox.h>
 #include <cstdio>
 #include <cstdlib>
 #include "tpr.h"
@@ -185,6 +186,8 @@ static KHelpMenu *khelpmenu;
 static QPopupMenu *te_popup;
 static QAssistantClient *assistant;
 static int fileCount=0, hFileCount=0, cFileCount=0, sFileCount=0, asmFileCount=0, qllFileCount=0, oFileCount=0, aFileCount=0, txtFileCount=0, othFileCount=0;
+static tprSettings settings;
+static tprLibOpts libopts;
 
 class DnDListView : public QListView {
   private:
@@ -579,11 +582,20 @@ void MainForm::fileOpen_addList(QListViewItem *category,void *fileListV,void *di
 
 void MainForm::fileOpen()
 {
+  TPRDataStruct TPRData;
   QString fileName=SGetFileName(KFileDialog::Opening,TIGCCOpenProjectFileFilter,"Open Project/File",this);
   KURL dir;
   dir.setPath(fileName);
-  if (!loadTPR(fileName))
+  if (!loadTPR(fileName, &TPRData))
   {
+    if (TPRData.asm_files.path.count() && !asmFilesListItem) {
+      KMessageBox::error(this,"This project needs A68k, which is not installed.");
+      return;
+    }
+    if (TPRData.quill_files.path.count() && !qllFilesListItem) {
+      KMessageBox::error(this,"This project needs quill.drv, which is not installed.");
+      return;
+    }
     fileNewProject();
     fileOpen_addList(hFilesListItem,&TPRData.h_files,&dir);
     fileOpen_addList(cFilesListItem,&TPRData.c_files,&dir);
@@ -594,6 +606,8 @@ void MainForm::fileOpen()
     fileOpen_addList(aFilesListItem,&TPRData.a_files,&dir);
     fileOpen_addList(txtFilesListItem,&TPRData.txt_files,&dir);
     fileOpen_addList(othFilesListItem,&TPRData.oth_files,&dir);
+    settings=TPRData.settings;
+    libopts=TPRData.libopts;
   }
 }
 

+ 1 - 3
ktigcc/tpr.cxx

@@ -399,7 +399,7 @@ int parse_file(FILE *f,TPRDataStruct *dest)
 }
 
 //returns 0 on success
-short loadTPRIndirect(QString &fileName,TPRDataStruct *dest)
+short loadTPR(QString &fileName,TPRDataStruct *dest)
 {
   FILE *f;
   short ret;
@@ -413,8 +413,6 @@ short loadTPRIndirect(QString &fileName,TPRDataStruct *dest)
   return ret;
 }
 
-TPRDataStruct TPRData;
-
 QString loadFileText(const char *fileName)
 {
   FILE *f;

+ 1 - 3
ktigcc/tpr.h

@@ -105,8 +105,6 @@ typedef struct
   TPRFileList quill_files;
 } TPRDataStruct;
 
-#define loadTPR(fileName) (loadTPRIndirect(fileName,&TPRData))
-extern TPRDataStruct TPRData;
-short loadTPRIndirect(QString &fileName,TPRDataStruct *dest);
+short loadTPR(QString &fileName,TPRDataStruct *dest);
 
 QString loadFileText(const char *fileName);