# HG changeset patch # User Jacob Dawid # Date 1302555212 -7200 # Node ID b2902b9ba84d0156a7b43c654629689082cdd9da # Parent 91d64ef98f817128459d58c8032139816bf88ade Started to build file editor widget. diff --git a/gui//Quint.pro b/gui//Quint.pro --- a/gui//Quint.pro +++ b/gui//Quint.pro @@ -44,7 +44,8 @@ src/HistoryDockWidget.cpp \ src/FilesDockWidget.cpp \ src/CodeEdit.cpp \ - src/Syntax.cpp + src/Syntax.cpp \ + src/FileEditorMdiSubWindow.cpp HEADERS += \ src/TerminalCharacterDecoder.h \ @@ -85,7 +86,8 @@ src/HistoryDockWidget.h \ src/FilesDockWidget.h \ src/CodeEdit.h \ - src/Syntax.h + src/Syntax.h \ + src/FileEditorMdiSubWindow.h INCFLAGS = -g3 $$system(mkoctfile -p INCFLAGS) LFLAGS = $$system(mkoctfile -p LFLAGS) \ diff --git a/gui//src/FileEditorMdiSubWindow.cpp b/gui//src/FileEditorMdiSubWindow.cpp new file mode 100644 --- /dev/null +++ b/gui//src/FileEditorMdiSubWindow.cpp @@ -0,0 +1,42 @@ +#include "FileEditorMdiSubWindow.h" +#include +#include +#include + +FileEditorMdiSubWindow::FileEditorMdiSubWindow(QWidget *parent) + : QMdiSubWindow(parent) { + construct(); +} + +void FileEditorMdiSubWindow::loadFile(QString fileName) { + setWindowTitle(fileName); + // TODO: Load file. +} + +void FileEditorMdiSubWindow::construct() { + QStyle *style = QApplication::style(); + setWidget(new QWidget()); + m_toolBar = new QToolBar(this); + m_codeEdit = new CodeEdit(this); + m_statusBar = new QStatusBar(this); + + QAction *newAction = new QAction(style->standardIcon(QStyle::SP_FileIcon), + "", m_toolBar); + QAction *saveAction = new QAction(style->standardIcon(QStyle::SP_DriveHDIcon), + "", m_toolBar); + QAction *undoAction = new QAction(style->standardIcon(QStyle::SP_ArrowLeft), + "", m_toolBar); + QAction *redoAction = new QAction(style->standardIcon(QStyle::SP_ArrowRight), + "", m_toolBar); + + m_toolBar->addAction(newAction); + m_toolBar->addAction(saveAction); + m_toolBar->addAction(undoAction); + m_toolBar->addAction(redoAction); + + QVBoxLayout *layout = new QVBoxLayout(); + layout->addWidget(m_toolBar); + layout->addWidget(m_codeEdit); + layout->addWidget(m_statusBar); + widget()->setLayout(layout); +} diff --git a/gui//src/FileEditorMdiSubWindow.h b/gui//src/FileEditorMdiSubWindow.h new file mode 100644 --- /dev/null +++ b/gui//src/FileEditorMdiSubWindow.h @@ -0,0 +1,21 @@ +#ifndef FILEEDITORMDISUBWINDOW_H +#define FILEEDITORMDISUBWINDOW_H + +#include +#include +#include +#include "CodeEdit.h" + +class FileEditorMdiSubWindow : public QMdiSubWindow { +public: + FileEditorMdiSubWindow(QWidget *parent = 0); + void loadFile(QString fileName); + +private: + void construct(); + QToolBar *m_toolBar; + CodeEdit *m_codeEdit; + QStatusBar *m_statusBar; +}; + +#endif // FILEEDITORMDISUBWINDOW_H diff --git a/gui//src/MainWindow.cpp b/gui//src/MainWindow.cpp --- a/gui//src/MainWindow.cpp +++ b/gui//src/MainWindow.cpp @@ -22,6 +22,7 @@ #include #include #include "MainWindow.h" +#include "FileEditorMdiSubWindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -37,7 +38,9 @@ void MainWindow::handleOpenFileRequest(QString fileName) { reportStatusMessage("Opening file."); - // TODO: Open mdi subwindow. + FileEditorMdiSubWindow *subWindow = new FileEditorMdiSubWindow(m_openedFiles); + subWindow->loadFile(fileName); + m_openedFiles->addSubWindow(subWindow); } void MainWindow::reportStatusMessage(QString statusMessage) {