00001 /*************************************************************************** 00002 * Copyright (C) 2005 by David Saxton * 00003 * david@bluehaze.org * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU General Public License as published by * 00007 * the Free Software Foundation; either version 2 of the License, or * 00008 * (at your option) any later version. * 00009 ***************************************************************************/ 00010 00011 #ifndef PROCESSCHAIN_H 00012 #define PROCESSCHAIN_H 00013 00014 #include "language.h" 00015 #include <qobject.h> 00016 #include <qvaluelist.h> 00017 00018 class FlowCode; 00019 class Gpasm; 00020 class Gpdasm; 00021 class Gplib; 00022 class Gplink; 00023 class KTechlab; 00024 class Microbe; 00025 class PicProgrammer; 00026 class ProcesOptions; 00027 class SDCC; 00028 00029 typedef QValueList<ProcessOptions> ProcessOptionsList; 00030 00035 class ProcessChain : public QObject 00036 { 00037 Q_OBJECT 00038 public: 00039 ProcessChain( ProcessOptions options, KTechlab *parent, const char *name = 0 ); 00040 ~ProcessChain(); 00041 00042 void setProcessOptions( ProcessOptions options ) { m_processOptions = options; } 00043 00044 public slots: 00050 void slotFinishedCompile( Language * language ); 00056 void compile(); 00057 00058 signals: 00065 void successful(ProcessOptions options); 00069 void successful(); 00073 void failed(); 00074 00075 protected: 00076 FlowCode * flowCode(); 00077 Gpasm * gpasm(); 00078 Gpdasm * gpdasm(); 00079 Gplib * gplib(); 00080 Gplink * gplink(); 00081 Microbe * microbe(); 00082 PicProgrammer * picProgrammer(); 00083 SDCC * sdcc(); 00084 00085 int m_errorCount; 00086 ProcessOptions m_processOptions; 00087 KTechlab * m_pKTechlab; 00088 00089 private: 00090 FlowCode * m_pFlowCode; 00091 Microbe * m_pMicrobe; 00092 Gpasm * m_pGpasm; 00093 Gpdasm * m_pGpdasm; 00094 Gplib * m_pGplib; 00095 Gplink * m_pGplink; 00096 PicProgrammer * m_pPicProgrammer; 00097 SDCC * m_pSDCC; 00098 }; 00099 00100 00101 class ProcessListChain : public QObject 00102 { 00103 Q_OBJECT 00104 00105 public: 00106 ProcessListChain( ProcessOptionsList pol, KTechlab *parent, const char *name = 0 ); 00107 00108 signals: 00112 void successful(); 00116 void failed(); 00117 00118 protected slots: 00119 void slotProcessChainSuccessful(); 00120 void slotProcessChainFailed(); 00121 00122 protected: 00123 ProcessOptionsList m_processOptionsList; 00124 KTechlab * m_pKTechlab; 00125 }; 00126 00127 #endif
1.5.1