~george-edison55/pedeconstructor/trunk

« back to all changes in this revision

Viewing changes to CMainWindow.cpp

  • Committer: Nathan Osman
  • Date: 2011-10-12 17:12:27 UTC
  • Revision ID: admin@quickmediasolutions.com-20111012171227-35bir1bjl8bz3vd2
Added import descriptors.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
#include <QFileDialog>
6
6
#include <QMessageBox>
7
7
 
 
8
// PE Deconstructor
 
9
#include "CAboutDialog.h"
 
10
 
8
11
CMainWindow::CMainWindow(QWidget *parent)
9
12
    : QMainWindow(parent), ui(new Ui::CMainWindow), m_executable(NULL)
10
13
{
27
30
        if(m_executable)
28
31
        {
29
32
            ui->section_list->clear();
 
33
            ui->import_tree->clear();
30
34
            delete m_executable;
31
35
        }
32
36
 
41
45
 
42
46
        // Fill in the information on the general tab
43
47
        ui->architecture->setText(m_executable->GetArchitectureString(m_executable->m_architecture));
 
48
        ui->image_base->setText(tr("0x%1").arg(m_executable->m_image_base, 0, 16));
44
49
 
45
50
        // Fill in the sections
46
51
        foreach(CPESection * section, m_executable->m_sections)
51
56
 
52
57
            ui->section_list->addItem(item);
53
58
        }
 
59
 
 
60
        // Fill in the imports
 
61
        foreach(CPEImportDescriptor * descriptor, m_executable->m_import_descriptors)
 
62
        {
 
63
            QTreeWidgetItem * dll = new QTreeWidgetItem(ui->import_tree);
 
64
            dll->setText(0, descriptor->m_name);
 
65
 
 
66
            ui->import_tree->addTopLevelItem(dll);
 
67
        }
54
68
    }
55
69
}
56
70
 
 
71
void CMainWindow::OnAbout()
 
72
{
 
73
    CAboutDialog dialog;
 
74
    dialog.exec();
 
75
}
 
76
 
57
77
void CMainWindow::OnSectionSelected(QListWidgetItem * new_selection, QListWidgetItem *)
58
78
{
59
79
    if(!new_selection) return;
62
82
    CPESection * section = new_selection->data(Qt::UserRole).value<CPESection *>();
63
83
 
64
84
    // Fill in the GUI data
65
 
    ui->section_memory_size->setText(tr("%1").arg(section->m_memory_size));
66
 
    ui->section_rva->setText(tr("%1").arg(section->m_rva));
67
 
    ui->section_file_size->setText(tr("%1").arg(section->m_file_size));
68
 
    ui->section_file_offset->setText(tr("%1").arg(section->m_file_offset));
 
85
    ui->section_memory_size->setText(tr("0x%1").arg(section->m_memory_size, 0, 16));
 
86
    ui->section_rva->setText(tr("0x%1").arg(section->m_rva, 0, 16));
 
87
    ui->section_file_size->setText(tr("0x%1").arg(section->m_file_size, 0, 16));
 
88
    ui->section_file_offset->setText(tr("0x%1").arg(section->m_file_offset, 0, 16));
69
89
 
70
90
    // Fill in the flags
71
91
    ui->section_contains_code->setChecked(section->m_contains_code);