-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
119 lines (99 loc) · 3.39 KB
/
Copy pathmainwindow.cpp
File metadata and controls
119 lines (99 loc) · 3.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include "common.h"
#include "mainwindow.h"
#include "ldapobjectmodel.h"
#include "ldaptablemodel.h"
#include "ui_userproperties.h"
#include "ui_connectionproperties.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent), settings("BaseALT", "admc")
{
qDebug() << "Start MainWindow";
setupUi(this);
createMenu();
userProperties = new QTabWidget(this);
Ui_UserProperties uiUserProperties;
uiUserProperties.setupUi(userProperties);
userProperties->hide();
splitter->addWidget(userProperties);
connectionProperties = new QTabWidget(this);
Ui_ConnectionProperties uiConnectionProperties;
uiConnectionProperties.setupUi(connectionProperties);
splitter->addWidget(connectionProperties);
currentProperties = connectionProperties;
model = new LdapObjectModel(this);
hierarchy->setModel(model);
hierarchy->setHeaderHidden(true);
Connector *c = new Connector(this);
if(c->connect("dc0.domain.alt")){
connectors.append(c);
model->addConnector(*c);
} else {
delete c;
}
table = new LdapTableModel(this);
objects->setShowGrid(false);
objects->horizontalHeader()->hide();
objects->verticalHeader()->hide();
objects->horizontalHeader()->setMinimumSectionSize(1);
objects->verticalHeader()->setMinimumSectionSize(1);
objects->verticalHeader()->setMaximumSectionSize(1);
objects->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
objects->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
//objects->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed);
objects->verticalHeader()->setDefaultSectionSize(22);
objects->resizeRowsToContents();
objects->setModel(table);
QObject::connect(hierarchy, &QTreeView::pressed, this, &MainWindow::chooseObject);
QObject::connect(objects, &QTreeView::pressed, this, &MainWindow::chooseProperty);
}
MainWindow::~MainWindow()
{
qDebug() << "MainWindow::~MainWindow";
delete model;
}
void MainWindow::createMenu()
{
newAct = new QAction(tr("&New"), this);
newAct->setShortcuts(QKeySequence::New);
newAct->setStatusTip(tr("Create a new file"));
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
openAct = new QAction(tr("&Open..."), this);
openAct->setShortcuts(QKeySequence::Open);
openAct->setStatusTip(tr("Open an existing file"));
connect(openAct, SIGNAL(triggered()), this, SLOT(openFile()));
fileMenu->addAction(newAct);
fileMenu->addAction(openAct);
}
void MainWindow::newFile()
{
qDebug() << "newFile();";
}
void MainWindow::openFile()
{
qDebug() << "openFile();";
}
void MainWindow::chooseObject(const QModelIndex &index)
{
qDebug() << "chooseObject();";
if (!index.isValid()) {
qDebug() << "chooseObject(): got invalid index";
return;
}
qDebug() << "chooseObject(): got valid index" << (void*)table;
table->setRootObject(static_cast<LdapObject*>(index.internalPointer()));
objects->setModel(table);
}
void MainWindow::chooseProperty(const QModelIndex &index)
{
qDebug() << "chooseProperty()";
LdapObject* object = static_cast<LdapObject*>(index.internalPointer());
if (object->type() == UserType)
setProperty(userProperties);
}
void MainWindow::setProperty(QTabWidget *widget)
{
if (currentProperties != widget) {
currentProperties->hide();
widget->show();
}
}