2 #include "GuiEditFile.h"
11 #include <QTextStream>
13 #include <QMessageBox>
33 if (m_instance == NULL) {
37 m_instance->showWindow(psFile);
49 m_fileName = QString(psFile);
50 m_editWin->setWindowTitle (m_fileName);
66 m_fileName = QString(psFile);
70 m_editWin =
new QMainWindow(m_parent, Qt::SubWindow);
71 m_editWin->setWindowTitle (m_fileName);
72 m_editWin->resize (400, 600);
75 QStatusBar *statusBar =
new QStatusBar(m_editWin);
76 m_editWin->setStatusBar(statusBar);
79 QMenuBar *menuBar =
new QMenuBar(m_editWin);
80 QMenu *fileMenu = menuBar->addMenu(
"&File");
84 m_open->setShortcut(Qt::CTRL + Qt::Key_O);
85 m_open->setText(
"&Open...");
86 m_open->setToolTip(
"Open File");
87 QString whatsThis =
"Open a file to edit";
88 m_open->setWhatsThis(whatsThis);
89 connect(m_open, SIGNAL(activated()),
this, SLOT(open()));
90 fileMenu->addAction(m_open);
94 m_save->setShortcut(Qt::CTRL + Qt::Key_S);
95 m_save->setText(
"&Save...");
96 m_save->setToolTip(
"Save File");
97 m_save->setWhatsThis(
"Save the current file");
98 connect(m_save, SIGNAL(activated()),
this, SLOT(saveFile()));
99 fileMenu->addAction(m_save);
102 m_saveAs =
new QAction(menuBar);
103 m_saveAs->setText(
"Save &As...");
104 m_saveAs->setShortcut(Qt::CTRL + Qt::Key_A);
105 m_saveAs->setToolTip(
"Save As File");
106 m_saveAs->setWhatsThis(
"Save the current file into another file");
107 connect(m_saveAs, SIGNAL(activated()),
this, SLOT(saveAs()));
108 fileMenu->addAction(m_saveAs);
111 m_close =
new QAction(menuBar);
112 m_close->setText(
"&Close...");
113 m_close->setShortcut(Qt::CTRL + Qt::Key_C);
114 m_close->setToolTip(
"Close File");
115 m_close->setWhatsThis(
"Close the current file");
116 connect(m_close, SIGNAL(activated()),
this, SLOT(closeFile()));
117 fileMenu->addAction(m_close);
120 m_exit = menuBar->addAction(
"&Exit");
121 m_exit->setShortcut(Qt::CTRL + Qt::Key_E);
122 m_exit->setText(
"&Exit...");
123 m_exit->setToolTip(
"Exit");
124 m_exit->setWhatsThis(
"Exit the Editor");
126 connect(m_exit, SIGNAL(activated()),
this, SLOT(closeWin()));
128 m_editWin->setMenuBar(menuBar);
131 m_textChanged =
false;
132 m_txtEdit =
new QTextEdit(m_editWin);
133 m_txtEdit->setUndoRedoEnabled(
true);
134 m_txtEdit->resize(400,500);
135 m_editWin->setCentralWidget(m_txtEdit);
136 if (m_fileName.length() > 0){
137 OpenFile(m_fileName);
139 connect(m_txtEdit, SIGNAL(textChanged()),
this, SLOT(setTextChanged()));
179 m_textChanged =
true;
191 if(QMessageBox::question((
QWidget *)parent(), tr(
"Save File?"),
192 tr(
"Are you sure you want to save this file?"),
193 tr(
"&Save"), tr(
"&Cancel"),
199 QString sFilterList(
"All files (*)");
200 QDir currDir = QDir::current();
201 QString sOpen(
"Open");
204 connect(fileDialog, SIGNAL(fileSelected(QString)),
this, SLOT(OpenFile(QString)));
214 if(QMessageBox::question((
QWidget *)parent(), tr(
"Save File?"),
215 tr(
"Changes have been made to the file. Do you want to Save?"),
216 QMessageBox::Save, QMessageBox::No) == QMessageBox::Save) {
222 m_textChanged =
false;
223 m_editWin->setWindowTitle(tr(
""));
235 if(psOutFile.isEmpty()){
236 QMessageBox::information((
QWidget *)parent(),
"Error",
"No output file selected");
240 if (m_editFile != NULL) {
244 m_editFile =
new QFile(psOutFile);
246 windowTitle(psOutFile);
248 if (m_editFile->open(QIODevice::ReadWrite)){
251 qint64 lineLength = m_editFile->readLine(buf,
sizeof(buf));
252 while (lineLength != -1) {
253 bufStr = QString(buf);
256 m_txtEdit->append(bufStr);
257 lineLength = m_editFile->readLine(buf,
sizeof(buf));
261 m_txtEdit->append(
"\nThis file cannot be edited. Please check the file's Write permissions");
263 m_textChanged =
false;
274 QTextStream out(m_editFile);
275 out << m_txtEdit->document()->toPlainText();
276 m_textChanged =
false;
286 QString sFilterList(
"All files (*)");
287 QDir currDir = QDir::current();
288 QString sOpen(
"Open");
293 allPButtons[0]->setText(
"&Save");
295 allPButtons[1]->setText(
"&Close");
297 saveAsDialog->show();
298 connect(saveAsDialog, SIGNAL(fileSelected(QString)),
this, SLOT(saveAsFile(QString)));
311 m_editFile =
new QFile(psNewFile);
312 m_editFile->open(QFile::ReadWrite);
314 windowTitle(psNewFile);
327 m_editFile->open(QFile::ReadWrite | QFile::Truncate);
339 m_editWin->setWindowTitle(
FileName(psfile).name());