26#include <ktabwidget.h>
27#include <tdelistview.h>
28#include <kiconloader.h>
29#include <kdialogbase.h>
30#include <kpushbutton.h>
35static DebugWindowDialog* debugWindow = 0;
36static KTabWidget* debugWindowTab = 0;
37static TDEListView* kexiDBDebugPage = 0;
38static TDEListView* kexiAlterTableActionDebugPage = 0;
43 debugWindow =
new DebugWindowDialog(parent);
44 debugWindow->setSizeGripEnabled(
true );
45 TQBoxLayout *lyr =
new TQVBoxLayout(debugWindow, KDialogBase::marginHint());
46 debugWindowTab =
new KTabWidget(debugWindow,
"debugWindowTab");
47 lyr->addWidget( debugWindowTab );
48 debugWindow->resize(900, 600);
49 debugWindow->setIcon( DesktopIcon(
"application-vnd.tde.info") );
50 debugWindow->setCaption(
"Kexi Internal Debugger");
60 if (!kexiDBDebugPage) {
61 TQWidget *page =
new TQWidget(debugWindowTab);
62 TQVBoxLayout *vbox =
new TQVBoxLayout(page);
63 TQHBoxLayout *hbox =
new TQHBoxLayout(page);
64 vbox->addLayout(hbox);
66 KPushButton *btn_clear =
new KPushButton(KGuiItem(
"Clear",
"clear_left"), page);
67 hbox->addWidget(btn_clear);
69 kexiDBDebugPage =
new TDEListView(page,
"kexiDbDebugPage");
70 TQObject::connect(btn_clear, TQ_SIGNAL(clicked()), kexiDBDebugPage, TQ_SLOT(clear()));
71 vbox->addWidget(kexiDBDebugPage);
72 kexiDBDebugPage->addColumn(
"");
73 kexiDBDebugPage->header()->hide();
74 kexiDBDebugPage->setSorting(-1);
75 kexiDBDebugPage->setAllColumnsShowFocus (
true );
76 kexiDBDebugPage->setColumnWidthMode( 0, TQListView::Maximum );
77 kexiDBDebugPage->setRootIsDecorated(
true );
78 debugWindowTab->addTab( page,
"KexiDB" );
79 debugWindowTab->showPage(page);
80 kexiDBDebugPage->show();
85 TDEListViewItem * li =
new TDEListViewItem( kexiDBDebugPage, kexiDBDebugPage->lastItem(), text );
86 li->setMultiLinesEnabled(
true );
94 if (!kexiAlterTableActionDebugPage) {
95 TQWidget *page =
new TQWidget(debugWindowTab);
96 TQVBoxLayout *vbox =
new TQVBoxLayout(page);
97 TQHBoxLayout *hbox =
new TQHBoxLayout(page);
98 vbox->addLayout(hbox);
100 KPushButton *btn_exec =
new KPushButton(KGuiItem(
"Real Alter Table",
"document-save"), page);
101 btn_exec->setName(
"executeRealAlterTable");
102 hbox->addWidget(btn_exec);
103 KPushButton *btn_clear =
new KPushButton(KGuiItem(
"Clear",
"clear_left"), page);
104 hbox->addWidget(btn_clear);
105 KPushButton *btn_sim =
new KPushButton(KGuiItem(
"Simulate Execution",
"application-x-executable"), page);
106 btn_sim->setName(
"simulateAlterTableExecution");
107 hbox->addWidget(btn_sim);
109 kexiAlterTableActionDebugPage =
new TDEListView(page,
"kexiAlterTableActionDebugPage");
110 TQObject::connect(btn_clear, TQ_SIGNAL(clicked()), kexiAlterTableActionDebugPage, TQ_SLOT(clear()));
111 vbox->addWidget(kexiAlterTableActionDebugPage);
112 kexiAlterTableActionDebugPage->addColumn(
"");
113 kexiAlterTableActionDebugPage->header()->hide();
114 kexiAlterTableActionDebugPage->setSorting(-1);
115 kexiAlterTableActionDebugPage->setAllColumnsShowFocus (
true );
116 kexiAlterTableActionDebugPage->setColumnWidthMode( 0, TQListView::Maximum );
117 kexiAlterTableActionDebugPage->setRootIsDecorated(
true );
118 debugWindowTab->addTab( page,
"AlterTable Actions" );
119 debugWindowTab->showPage(page);
124 TDEListViewItem * li;
125 int availableNestingLevels = 0;
127 TQListViewItem * lastItem = kexiAlterTableActionDebugPage->lastItem();
130 lastItem = lastItem->parent();
131 availableNestingLevels++;
135 lastItem = kexiAlterTableActionDebugPage->lastItem();
136 int levelsToGoUp = availableNestingLevels - nestingLevel;
137 while (levelsToGoUp > 0 && lastItem) {
138 lastItem = lastItem->parent();
143 TQListViewItem *after = lastItem->firstChild();
144 while (after && after->nextSibling())
145 after = after->nextSibling();
147 li =
new TDEListViewItem( lastItem, after, text );
149 li =
new TDEListViewItem( lastItem, text );
152 lastItem = kexiAlterTableActionDebugPage->lastItem();
153 while (lastItem && lastItem->parent())
154 lastItem = lastItem->parent();
156 li =
new TDEListViewItem( kexiAlterTableActionDebugPage, lastItem, text );
159 li->setMultiLinesEnabled(
true );
163 const TQObject *receiver,
const char* slot)
166 KPushButton* btn = findFirstChild<KPushButton>(debugWindow,
"KPushButton", actionName);
168 TQObject::connect(btn, TQ_SIGNAL(clicked()), receiver, slot);
type * findParent(TQObject *o, const char *className)