1 // copyright (c) 2019-2021 hors<horsicq@gmail.com> 2 // 3 // Permission is hereby granted, free of charge, to any person obtaining a copy 4 // of this software and associated documentation files (the "Software"), to deal 5 // in the Software without restriction, including without limitation the rights 6 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 // copies of the Software, and to permit persons to whom the Software is 8 // furnished to do so, subject to the following conditions: 9 10 // The above copyright notice and this permission notice shall be included in all 11 // copies or substantial portions of the Software. 12 13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 // SOFTWARE. 20 // 21 #ifndef LESECTIONHEADERWIDGET_H 22 #define LESECTIONHEADERWIDGET_H 23 24 #include "../formatwidget.h" 25 #include "le_defs.h" 26 27 namespace Ui { 28 class LESectionHeaderWidget; 29 } 30 31 class LESectionHeaderWidget : public FormatWidget 32 { 33 Q_OBJECT 34 35 public: 36 enum CB 37 { 38 CB_CHARACTERISTICS=0, 39 CB_ALIGH, 40 __CB_size 41 }; 42 LESectionHeaderWidget(QWidget *pParent=nullptr); 43 LESectionHeaderWidget(QIODevice *pDevice,FW_DEF::OPTIONS options,quint32 nNumber,qint64 nOffset,qint32 nType,QWidget *pParent=nullptr); 44 ~LESectionHeaderWidget(); 45 virtual void clear(); 46 virtual void reload(); 47 48 protected: 49 virtual SV _setValue(QVariant vValue,int nStype,int nNdata,int nVtype,int nPosition,qint64 nOffset); 50 virtual void setReadonly(bool bState); 51 virtual void blockSignals(bool bState); 52 virtual void adjustHeaderTable(int nType,QTableWidget *pTableWidget); 53 54 private slots: 55 void on_checkBoxReadonly_toggled(bool bChecked); 56 void reloadData(); 57 58 void on_tableWidget_Section_currentCellChanged(int nCurrentRow,int nCurrentColumn,int nPreviousRow,int nPreviousColumn); 59 60 private: 61 enum INV 62 { 63 INV_OriginalFirstThunk, 64 INV_Name, 65 INV_FirstThunk, 66 __INV_size 67 }; 68 69 Ui::LESectionHeaderWidget *ui; 70 // XLineEditHEX *lineEdit_Section[N_mach_sections::__data_size]; 71 InvWidget *g_invWidget[__INV_size]; 72 SubDevice *g_pSubDevice; 73 }; 74 75 #endif // LESECTIONHEADERWIDGET_H 76