@@ -1,6 +1,11 | |||||
|
1 | #include <QObject> | |||
|
2 | #include <QWidget> | |||
1 | #include "qhexspinbox.h" |
|
3 | #include "qhexspinbox.h" | |
2 | #include "memsizewdgt.h" |
|
4 | #include "memsizewdgt.h" | |
3 | #include "qhexedit/qhexedit.h" |
|
5 | #include "qhexedit/qhexedit.h" | |
4 | #include "SocExplorerPlot.h" |
|
6 | #include "SocExplorerPlot.h" | |
5 | #include "tcp_terminal_client.h" |
|
7 | #include "tcp_terminal_client.h" | |
6 | #include "elf/elfparser.h" |
|
8 | #include "elf/elfparser.h" | |
|
9 | #include "elf/abstractexecfile.h" | |||
|
10 | #include "elf/elffile.h" | |||
|
11 | #include "elf/elffilewidget.h" |
@@ -21,12 +21,11 | |||||
21 | ----------------------------------------------------------------------------*/ |
|
21 | ----------------------------------------------------------------------------*/ | |
22 | #include "abstractexecfile.h" |
|
22 | #include "abstractexecfile.h" | |
23 |
|
23 | |||
24 |
abstractExecFile::abstractExecFile( |
|
24 | abstractExecFile::abstractExecFile() | |
25 | QObject(parent) |
|
|||
26 | { |
|
25 | { | |
27 | } |
|
26 | } | |
28 |
|
27 | |||
29 |
abstractExecFile::abstractExecFile(const QString &File |
|
28 | abstractExecFile::abstractExecFile(const QString &File) | |
30 | { |
|
29 | { | |
31 |
|
30 | |||
32 | } |
|
31 | } |
@@ -33,19 +33,15 public: | |||||
33 | quint32 address; |
|
33 | quint32 address; | |
34 | }; |
|
34 | }; | |
35 |
|
35 | |||
36 |
class abstractExecFile |
|
36 | class abstractExecFile | |
37 | { |
|
37 | { | |
38 | Q_OBJECT |
|
|||
39 | public: |
|
38 | public: | |
40 |
abstractExecFile( |
|
39 | abstractExecFile(); | |
41 |
abstractExecFile(const QString& File |
|
40 | abstractExecFile(const QString& File); | |
42 | virtual bool openFile(const QString& File)=0; |
|
41 | virtual bool openFile(const QString& File)=0; | |
43 | virtual bool isopened()=0; |
|
42 | virtual bool isopened()=0; | |
44 | virtual int closeFile()=0; |
|
43 | virtual int closeFile()=0; | |
45 | virtual QList<codeFragment> getFragments()=0; |
|
44 | virtual QList<codeFragment> getFragments()=0; | |
46 | signals: |
|
|||
47 |
|
||||
48 | public slots: |
|
|||
49 |
|
45 | |||
50 | protected: |
|
46 | protected: | |
51 | QString p_fileName; |
|
47 | QString p_fileName; |
@@ -38,6 +38,7 header.files = \ | |||||
38 | elf/elfinfowdgt.h \ |
|
38 | elf/elfinfowdgt.h \ | |
39 | elf/elfparser.h \ |
|
39 | elf/elfparser.h \ | |
40 | elf/elffile.h \ |
|
40 | elf/elffile.h \ | |
|
41 | elf/elffilewidget.h \ | |||
41 | qipdialogbox.h \ |
|
42 | qipdialogbox.h \ | |
42 | lppserial/src/RS232.h |
|
43 | lppserial/src/RS232.h | |
43 |
|
44 |
@@ -23,13 +23,13 | |||||
23 | ----------------------------------------------------------------------------*/ |
|
23 | ----------------------------------------------------------------------------*/ | |
24 | #include "elffile.h" |
|
24 | #include "elffile.h" | |
25 |
|
25 | |||
26 |
ElfFile::ElfFile(QObject *parent) |
|
26 | ElfFile::ElfFile(QObject *parent) | |
27 |
|
|
27 | :QObject(parent),abstractExecFile(),elfparser() | |
28 | { |
|
28 | { | |
29 | } |
|
29 | } | |
30 |
|
30 | |||
31 | ElfFile::ElfFile(const QString &File, QObject *parent) |
|
31 | ElfFile::ElfFile(const QString &File, QObject *parent) | |
32 |
:abstractExecFile( |
|
32 | :QObject(parent),abstractExecFile(),elfparser() | |
33 | { |
|
33 | { | |
34 | this->p_fileName = File; |
|
34 | this->p_fileName = File; | |
35 | setFilename(File); |
|
35 | setFilename(File); |
@@ -27,7 +27,7 | |||||
27 | #ifndef ELFFILE_H |
|
27 | #ifndef ELFFILE_H | |
28 | #define ELFFILE_H |
|
28 | #define ELFFILE_H | |
29 |
|
29 | |||
30 | class ElfFile : public abstractExecFile, public elfparser |
|
30 | class ElfFile :public QObject, public abstractExecFile, public elfparser | |
31 | { |
|
31 | { | |
32 | Q_OBJECT |
|
32 | Q_OBJECT | |
33 | public: |
|
33 | public: |
@@ -22,5 +22,23 void elfFileWidget::updateElfFile(ElfFil | |||||
22 | this->ui->VersionLabel->setText(QString::number(p_elf->getVersion())); |
|
22 | this->ui->VersionLabel->setText(QString::number(p_elf->getVersion())); | |
23 | this->ui->machineLabel->setText(p_elf->getArchitecture()); |
|
23 | this->ui->machineLabel->setText(p_elf->getArchitecture()); | |
24 | this->ui->endiannesLabel->setText(p_elf->getEndianness()); |
|
24 | this->ui->endiannesLabel->setText(p_elf->getEndianness()); | |
|
25 | this->ui->abiLabel->setText(p_elf->getABI()); | |||
|
26 | this->ui->entryPointLabel->setText("0x"+QString::number(p_elf->getEntryPointAddress(),16,8)); | |||
|
27 | this->ui->sectionCountLabel->setText(QString::number(p_elf->getSectioncount())); | |||
25 | } |
|
28 | } | |
26 | } |
|
29 | } | |
|
30 | ||||
|
31 | ||||
|
32 | ||||
|
33 | ||||
|
34 | ||||
|
35 | ||||
|
36 | ||||
|
37 | ||||
|
38 | ||||
|
39 | ||||
|
40 | ||||
|
41 | ||||
|
42 | ||||
|
43 | ||||
|
44 |
@@ -395,6 +395,30 QString elfparser::getEndianness() | |||||
395 | return "none"; |
|
395 | return "none"; | |
396 | } |
|
396 | } | |
397 |
|
397 | |||
|
398 | QString elfparser::getABI() | |||
|
399 | { | |||
|
400 | if(this->e!=NULL) | |||
|
401 | { | |||
|
402 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_NONE)return "UNIX System V ABI"; | |||
|
403 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_SYSV)return "Alias"; | |||
|
404 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_HPUX)return "HP-UX"; | |||
|
405 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_NETBSD)return "NetBSD"; | |||
|
406 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_GNU)return "Object uses GNU ELF extensions"; | |||
|
407 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_LINUX)return "Compatibility alias"; | |||
|
408 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_SOLARIS)return "Sun Solaris"; | |||
|
409 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_AIX)return "IBM AIX"; | |||
|
410 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_IRIX)return "SGI Irix"; | |||
|
411 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_FREEBSD)return "FreeBSD"; | |||
|
412 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_TRU64)return "Compaq TRU64 UNIX"; | |||
|
413 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_MODESTO)return " Novell Modesto"; | |||
|
414 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_OPENBSD)return "OpenBSD"; | |||
|
415 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_ARM_AEABI)return "ARM EABI"; | |||
|
416 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_ARM)return "ARM"; | |||
|
417 | if(this->ehdr.e_ident[EI_OSABI]==ELFOSABI_STANDALONE)return "Standalone (embedded) application"; | |||
|
418 | } | |||
|
419 | return "none"; | |||
|
420 | } | |||
|
421 | ||||
398 |
|
422 | |||
399 | int32_t elfparser::getVersion() |
|
423 | int32_t elfparser::getVersion() | |
400 | { |
|
424 | { | |
@@ -404,6 +428,14 int32_t elfparser::getVersion() | |||||
404 | } |
|
428 | } | |
405 | } |
|
429 | } | |
406 |
|
430 | |||
|
431 | int64_t elfparser::getEntryPointAddress() | |||
|
432 | { | |||
|
433 | if(this->e!=NULL) | |||
|
434 | { | |||
|
435 | return this->ehdr.e_entry; | |||
|
436 | } | |||
|
437 | } | |||
|
438 | ||||
407 |
|
439 | |||
408 | int elfparser::getSectioncount() |
|
440 | int elfparser::getSectioncount() | |
409 | { |
|
441 | { |
@@ -53,7 +53,9 public: | |||||
53 | QString getArchitecture(); |
|
53 | QString getArchitecture(); | |
54 | QString getType(); |
|
54 | QString getType(); | |
55 | QString getEndianness(); |
|
55 | QString getEndianness(); | |
|
56 | QString getABI(); | |||
56 | int32_t getVersion(); |
|
57 | int32_t getVersion(); | |
|
58 | int64_t getEntryPointAddress(); | |||
57 | int getSectioncount(); |
|
59 | int getSectioncount(); | |
58 | int getSegmentcount(); |
|
60 | int getSegmentcount(); | |
59 | QString getSegmentType(int index); |
|
61 | QString getSegmentType(int index); |
@@ -3,6 +3,32 | |||||
3 | #include <PythonQtMethodInfo.h> |
|
3 | #include <PythonQtMethodInfo.h> | |
4 | #include <PythonQtSignalReceiver.h> |
|
4 | #include <PythonQtSignalReceiver.h> | |
5 | #include <QVariant> |
|
5 | #include <QVariant> | |
|
6 | #include <elffile.h> | |||
|
7 | ||||
|
8 | ElfFile* PythonQtWrapper_ElfFile::new_ElfFile(QObject* parent) | |||
|
9 | { | |||
|
10 | return new ElfFile(parent); } | |||
|
11 | ||||
|
12 | ElfFile* PythonQtWrapper_ElfFile::new_ElfFile(const QString& File, QObject* parent) | |||
|
13 | { | |||
|
14 | return new ElfFile(File, parent); } | |||
|
15 | ||||
|
16 | int PythonQtWrapper_ElfFile::closeFile(ElfFile* theWrappedObject) | |||
|
17 | { | |||
|
18 | return ( theWrappedObject->closeFile()); | |||
|
19 | } | |||
|
20 | ||||
|
21 | bool PythonQtWrapper_ElfFile::isopened(ElfFile* theWrappedObject) | |||
|
22 | { | |||
|
23 | return ( theWrappedObject->isopened()); | |||
|
24 | } | |||
|
25 | ||||
|
26 | bool PythonQtWrapper_ElfFile::openFile(ElfFile* theWrappedObject, const QString& File) | |||
|
27 | { | |||
|
28 | return ( theWrappedObject->openFile(File)); | |||
|
29 | } | |||
|
30 | ||||
|
31 | ||||
6 |
|
32 | |||
7 | MemSizeWdgt* PythonQtWrapper_MemSizeWdgt::new_MemSizeWdgt(QWidget* parent) |
|
33 | MemSizeWdgt* PythonQtWrapper_MemSizeWdgt::new_MemSizeWdgt(QWidget* parent) | |
8 | { |
|
34 | { | |
@@ -447,6 +473,12 QString PythonQtWrapper_XByteArray::toR | |||||
447 |
|
473 | |||
448 |
|
474 | |||
449 |
|
475 | |||
|
476 | elfFileWidget* PythonQtWrapper_elfFileWidget::new_elfFileWidget(QWidget* parent) | |||
|
477 | { | |||
|
478 | return new elfFileWidget(parent); } | |||
|
479 | ||||
|
480 | ||||
|
481 | ||||
450 | elfparser* PythonQtWrapper_elfparser::new_elfparser() |
|
482 | elfparser* PythonQtWrapper_elfparser::new_elfparser() | |
451 | { |
|
483 | { | |
452 | return new elfparser(); } |
|
484 | return new elfparser(); } | |
@@ -456,11 +488,26 int PythonQtWrapper_elfparser::closeFil | |||||
456 | return ( theWrappedObject->closeFile()); |
|
488 | return ( theWrappedObject->closeFile()); | |
457 | } |
|
489 | } | |
458 |
|
490 | |||
|
491 | QString PythonQtWrapper_elfparser::getABI(elfparser* theWrappedObject) | |||
|
492 | { | |||
|
493 | return ( theWrappedObject->getABI()); | |||
|
494 | } | |||
|
495 | ||||
459 | QString PythonQtWrapper_elfparser::getArchitecture(elfparser* theWrappedObject) |
|
496 | QString PythonQtWrapper_elfparser::getArchitecture(elfparser* theWrappedObject) | |
460 | { |
|
497 | { | |
461 | return ( theWrappedObject->getArchitecture()); |
|
498 | return ( theWrappedObject->getArchitecture()); | |
462 | } |
|
499 | } | |
463 |
|
500 | |||
|
501 | QString PythonQtWrapper_elfparser::getClass(elfparser* theWrappedObject) | |||
|
502 | { | |||
|
503 | return ( theWrappedObject->getClass()); | |||
|
504 | } | |||
|
505 | ||||
|
506 | QString PythonQtWrapper_elfparser::getEndianness(elfparser* theWrappedObject) | |||
|
507 | { | |||
|
508 | return ( theWrappedObject->getEndianness()); | |||
|
509 | } | |||
|
510 | ||||
464 | bool PythonQtWrapper_elfparser::getSectionData(elfparser* theWrappedObject, int index, char** buffer) |
|
511 | bool PythonQtWrapper_elfparser::getSectionData(elfparser* theWrappedObject, int index, char** buffer) | |
465 | { |
|
512 | { | |
466 | return ( theWrappedObject->getSectionData(index, buffer)); |
|
513 | return ( theWrappedObject->getSectionData(index, buffer)); |
@@ -2,6 +2,8 | |||||
2 | #include <QObject> |
|
2 | #include <QObject> | |
3 | #include <QVariant> |
|
3 | #include <QVariant> | |
4 | #include <SocExplorerPlot.h> |
|
4 | #include <SocExplorerPlot.h> | |
|
5 | #include <elffile.h> | |||
|
6 | #include <elffilewidget.h> | |||
5 | #include <elfparser.h> |
|
7 | #include <elfparser.h> | |
6 | #include <memsizewdgt.h> |
|
8 | #include <memsizewdgt.h> | |
7 | #include <qhexedit.h> |
|
9 | #include <qhexedit.h> | |
@@ -11,6 +13,22 | |||||
11 |
|
13 | |||
12 |
|
14 | |||
13 |
|
15 | |||
|
16 | class PythonQtWrapper_ElfFile : public QObject | |||
|
17 | { Q_OBJECT | |||
|
18 | public: | |||
|
19 | public slots: | |||
|
20 | ElfFile* new_ElfFile(QObject* parent = 0); | |||
|
21 | ElfFile* new_ElfFile(const QString& File, QObject* parent = 0); | |||
|
22 | void delete_ElfFile(ElfFile* obj) { delete obj; } | |||
|
23 | int closeFile(ElfFile* theWrappedObject); | |||
|
24 | bool isopened(ElfFile* theWrappedObject); | |||
|
25 | bool openFile(ElfFile* theWrappedObject, const QString& File); | |||
|
26 | }; | |||
|
27 | ||||
|
28 | ||||
|
29 | ||||
|
30 | ||||
|
31 | ||||
14 | class PythonQtWrapper_MemSizeWdgt : public QObject |
|
32 | class PythonQtWrapper_MemSizeWdgt : public QObject | |
15 | { Q_OBJECT |
|
33 | { Q_OBJECT | |
16 | public: |
|
34 | public: | |
@@ -185,6 +203,18 void delete_XByteArray(XByteArray* obj) | |||||
185 |
|
203 | |||
186 |
|
204 | |||
187 |
|
205 | |||
|
206 | class PythonQtWrapper_elfFileWidget : public QObject | |||
|
207 | { Q_OBJECT | |||
|
208 | public: | |||
|
209 | public slots: | |||
|
210 | elfFileWidget* new_elfFileWidget(QWidget* parent = 0); | |||
|
211 | void delete_elfFileWidget(elfFileWidget* obj) { delete obj; } | |||
|
212 | }; | |||
|
213 | ||||
|
214 | ||||
|
215 | ||||
|
216 | ||||
|
217 | ||||
188 | class PythonQtWrapper_elfparser : public QObject |
|
218 | class PythonQtWrapper_elfparser : public QObject | |
189 | { Q_OBJECT |
|
219 | { Q_OBJECT | |
190 | public: |
|
220 | public: | |
@@ -192,7 +222,10 public slots: | |||||
192 | elfparser* new_elfparser(); |
|
222 | elfparser* new_elfparser(); | |
193 | void delete_elfparser(elfparser* obj) { delete obj; } |
|
223 | void delete_elfparser(elfparser* obj) { delete obj; } | |
194 | int closeFile(elfparser* theWrappedObject); |
|
224 | int closeFile(elfparser* theWrappedObject); | |
|
225 | QString getABI(elfparser* theWrappedObject); | |||
195 | QString getArchitecture(elfparser* theWrappedObject); |
|
226 | QString getArchitecture(elfparser* theWrappedObject); | |
|
227 | QString getClass(elfparser* theWrappedObject); | |||
|
228 | QString getEndianness(elfparser* theWrappedObject); | |||
196 | bool getSectionData(elfparser* theWrappedObject, int index, char** buffer); |
|
229 | bool getSectionData(elfparser* theWrappedObject, int index, char** buffer); | |
197 | QString getSectionName(elfparser* theWrappedObject, int index); |
|
230 | QString getSectionName(elfparser* theWrappedObject, int index); | |
198 | QString getSectionType(elfparser* theWrappedObject, int index); |
|
231 | QString getSectionType(elfparser* theWrappedObject, int index); |
@@ -3,12 +3,14 | |||||
3 |
|
3 | |||
4 |
|
4 | |||
5 | void PythonQt_init_PySocExplorer(PyObject* module) { |
|
5 | void PythonQt_init_PySocExplorer(PyObject* module) { | |
|
6 | PythonQt::priv()->registerClass(&ElfFile::staticMetaObject, "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_ElfFile>, NULL, module, 0); | |||
6 | PythonQt::priv()->registerCPPClass("MemSizeWdgt", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_MemSizeWdgt>, NULL, module, 0); |
|
7 | PythonQt::priv()->registerCPPClass("MemSizeWdgt", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_MemSizeWdgt>, NULL, module, 0); | |
7 | PythonQt::priv()->registerCPPClass("QHexEdit", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_QHexEdit>, PythonQtSetInstanceWrapperOnShell<PythonQtShell_QHexEdit>, module, 0); |
|
8 | PythonQt::priv()->registerCPPClass("QHexEdit", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_QHexEdit>, PythonQtSetInstanceWrapperOnShell<PythonQtShell_QHexEdit>, module, 0); | |
8 | PythonQt::priv()->registerCPPClass("QHexSpinBox", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_QHexSpinBox>, NULL, module, 0); |
|
9 | PythonQt::priv()->registerCPPClass("QHexSpinBox", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_QHexSpinBox>, NULL, module, 0); | |
9 | PythonQt::priv()->registerCPPClass("SocExplorerPlot", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_SocExplorerPlot>, PythonQtSetInstanceWrapperOnShell<PythonQtShell_SocExplorerPlot>, module, 0); |
|
10 | PythonQt::priv()->registerCPPClass("SocExplorerPlot", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_SocExplorerPlot>, PythonQtSetInstanceWrapperOnShell<PythonQtShell_SocExplorerPlot>, module, 0); | |
10 | PythonQt::priv()->registerClass(&TCP_Terminal_Client::staticMetaObject, "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_TCP_Terminal_Client>, NULL, module, 0); |
|
11 | PythonQt::priv()->registerClass(&TCP_Terminal_Client::staticMetaObject, "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_TCP_Terminal_Client>, NULL, module, 0); | |
11 | PythonQt::priv()->registerCPPClass("XByteArray", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_XByteArray>, NULL, module, 0); |
|
12 | PythonQt::priv()->registerCPPClass("XByteArray", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_XByteArray>, NULL, module, 0); | |
|
13 | PythonQt::priv()->registerCPPClass("elfFileWidget", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_elfFileWidget>, NULL, module, 0); | |||
12 | PythonQt::priv()->registerCPPClass("elfparser", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_elfparser>, NULL, module, 0); |
|
14 | PythonQt::priv()->registerCPPClass("elfparser", "", "PySocExplorer", PythonQtCreateObject<PythonQtWrapper_elfparser>, NULL, module, 0); | |
13 |
|
15 | |||
14 | } |
|
16 | } |
@@ -1,6 +1,6 | |||||
1 | <typesystem package="PySocExplorer" default-superclass="com.trolltech.qt.QtJambiObject"> |
|
1 | <typesystem package="PySocExplorer" default-superclass="com.trolltech.qt.QtJambiObject"> | |
2 |
<load-typesystem name=":/trolltech/generator/typesystem_core.txt" generate=" |
|
2 | <load-typesystem name=":/trolltech/generator/typesystem_core.txt" generate="yes" /> | |
3 |
<load-typesystem name=":/trolltech/generator/typesystem_gui.txt" generate=" |
|
3 | <load-typesystem name=":/trolltech/generator/typesystem_gui.txt" generate="yes" /> | |
4 | <load-typesystem name=":/trolltech/generator/typesystem_sql.txt" generate="no" /> |
|
4 | <load-typesystem name=":/trolltech/generator/typesystem_sql.txt" generate="no" /> | |
5 | <load-typesystem name=":/trolltech/generator/typesystem_opengl.txt" generate="no" /> |
|
5 | <load-typesystem name=":/trolltech/generator/typesystem_opengl.txt" generate="no" /> | |
6 | <load-typesystem name=":/trolltech/generator/typesystem_svg.txt" generate="no" /> |
|
6 | <load-typesystem name=":/trolltech/generator/typesystem_svg.txt" generate="no" /> | |
@@ -10,6 +10,7 | |||||
10 | <load-typesystem name=":/trolltech/generator/typesystem_webkit.txt" generate="no" /> |
|
10 | <load-typesystem name=":/trolltech/generator/typesystem_webkit.txt" generate="no" /> | |
11 | <load-typesystem name=":/trolltech/generator/typesystem_phonon.txt" generate="no" /> |
|
11 | <load-typesystem name=":/trolltech/generator/typesystem_phonon.txt" generate="no" /> | |
12 |
|
12 | |||
|
13 | <rejection class="abstractExecFile" /> | |||
13 |
|
14 | |||
14 | <object-type name="QHexSpinBox" /> |
|
15 | <object-type name="QHexSpinBox" /> | |
15 | <object-type name="MemSizeWdgt" /> |
|
16 | <object-type name="MemSizeWdgt" /> | |
@@ -17,7 +18,10 | |||||
17 | <object-type name="XByteArray" /> |
|
18 | <object-type name="XByteArray" /> | |
18 | <object-type name="SocExplorerPlot" /> |
|
19 | <object-type name="SocExplorerPlot" /> | |
19 | <object-type name="TCP_Terminal_Client" /> |
|
20 | <object-type name="TCP_Terminal_Client" /> | |
20 |
<object-type name="elfparser" /> |
|
21 | <object-type name="elfparser" /> | |
|
22 | <object-type name="abstractExecFile" /> | |||
|
23 | <object-type name="ElfFile" /> | |||
|
24 | <object-type name="elfFileWidget" /> | |||
21 |
|
25 | |||
22 | </typesystem> |
|
26 | </typesystem> | |
23 |
|
27 |
@@ -3,4 +3,4 | |||||
3 | #export QTDIR=/usr/include |
|
3 | #export QTDIR=/usr/include | |
4 | export QTDIR=/usr/include/qt5 |
|
4 | export QTDIR=/usr/include/qt5 | |
5 |
|
5 | |||
6 | pythonqt_generator --output-directory=pythonQtOut PySocExplorer.h pythonQtgeneratorCfg.txt |
|
6 | pythonqt_generator --dump-object-tree --output-directory=pythonQtOut PySocExplorer.h pythonQtgeneratorCfg.txt |
General Comments 0
You need to be logged in to leave comments.
Login now