10 #include <Wt/WApplication>
11 #include <Wt/WContainerWidget>
12 #include <Wt/WEnvironment>
13 #include <Wt/WLineEdit>
14 #include <Wt/WGridLayout>
15 #include <Wt/WHBoxLayout>
16 #include <Wt/WPushButton>
19 #include <Wt/WTreeView>
20 #include <Wt/WVBoxLayout>
21 #include <Wt/WViewWidget>
24 #include "../wt-homepage/SourceView.h"
47 useStyleSheet(
"gitview.css");
48 setTitle(
"Git model example");
50 const char *gitRepo = getenv(
"GITVIEW_REPOSITORY_PATH");
52 WGridLayout *grid =
new WGridLayout();
53 grid->addWidget(
new WText(
"Git repository path:"), 0, 0);
54 grid->addWidget(repositoryEdit_ =
new WLineEdit(gitRepo ? gitRepo :
"")
56 grid->addWidget(repositoryError_ =
new WText(), 0, 2);
57 grid->addWidget(
new WText(
"Revision:"), 1, 0);
58 grid->addWidget(revisionEdit_ =
new WLineEdit(
"master"), 1, 1, AlignLeft);
59 grid->addWidget(revisionError_ =
new WText(), 1, 2);
61 repositoryEdit_->setTextSize(30);
62 revisionEdit_->setTextSize(20);
63 repositoryError_->setStyleClass(
"error-msg");
64 revisionError_->setStyleClass(
"error-msg");
66 repositoryEdit_->enterPressed()
68 revisionEdit_->enterPressed()
71 WPushButton *b =
new WPushButton(
"Load");
73 grid->addWidget(b, 2, 0, AlignLeft);
75 gitView_ =
new WTreeView();
76 gitView_->resize(300, WLength::Auto);
77 gitView_->setSortingEnabled(
false);
78 gitView_->setModel(gitModel_ =
new GitModel(
this));
79 gitView_->setSelectionMode(SingleSelection);
85 sourceView_->setStyleClass(
"source-view");
87 if (environment().javaScript()) {
92 WVBoxLayout *topLayout =
new WVBoxLayout();
93 topLayout->addLayout(grid, 0);
95 WHBoxLayout *gitLayout =
new WHBoxLayout();
96 gitLayout->addWidget(gitView_, 0);
97 gitLayout->addWidget(sourceView_, 1);
98 topLayout->addLayout(gitLayout, 1);
100 root()->setLayout(topLayout);
101 root()->setStyleClass(
"maindiv");
107 root()->setStyleClass(
"maindiv");
108 WContainerWidget *top =
new WContainerWidget();
109 top->setLayout(grid);
110 root()->addWidget(top);
111 root()->addWidget(gitView_);
112 gitView_->setFloatSide(Left);
113 gitView_->setMargin(6);
114 root()->addWidget(sourceView_);
115 sourceView_->setMargin(6);
129 sourceView_->
setIndex(WModelIndex());
130 repositoryError_->setText(
"");
131 revisionError_->setText(
"");
135 gitModel_->
loadRevision(revisionEdit_->text().toUTF8());
137 revisionError_->setText(e.what());
140 repositoryError_->setText(e.what());
147 if (gitView_->selectedIndexes().empty())
150 WModelIndex selected = *gitView_->selectedIndexes().begin();
160 int main(
int argc,
char **argv)