00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "mainwindow.hpp"
00021
00022 #include <QtGui/QApplication>
00023 #include <QtGui/QMenuBar>
00024 #include <QtGui/QMenu>
00025 #include <QtGui/QTextEdit>
00026 #include <QtGui/QFileDialog>
00027 #include <QExtend/Gui/RecentMenu>
00028
00029 MainWindow::MainWindow(QWidget *parent)
00030 : QMainWindow(parent)
00031 {
00032 setWindowTitle(tr("QExtend::RecentMenu example"));
00033
00034 QMenuBar* menubar = this->menuBar();
00035 QMenu* menuFile = menubar->addMenu("&File");
00036
00037 QAction* menuOpen = menuFile->addAction(tr("&Open..."));
00038 menuOpen->setShortcuts(QKeySequence::Open);
00039 menuOpen->setStatusTip(tr("Open an existing file"));
00040 connect(menuOpen, SIGNAL(triggered()), this, SLOT(open()));
00041
00042 recentMenu = new QExtend::RecentMenu(tr("Recent file"));
00043 menuFile->addMenu(recentMenu);
00044 connect(recentMenu, SIGNAL(openFile(QString)), this, SLOT(open(QString)));
00045
00046 QAction* menuQuit = menuFile->addAction(tr("&Quit\tCtrl+Q"));
00047 connect(menuQuit, SIGNAL(triggered()), qApp, SLOT(quit()));
00048
00049 QMenu* menuHelp = menubar->addMenu("&Help");
00050 QAction* aboutQtAct = menuHelp->addAction(tr("About &Qt"));
00051 aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
00052 connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
00053
00054 text = new QTextEdit(this);
00055 text->setReadOnly(true);
00056 setCentralWidget(text);
00057 }
00058
00059 void MainWindow::open()
00060 {
00061 QString filename = QFileDialog::getOpenFileName(
00062 this,
00063 tr("Open text file"),
00064 "",
00065 tr("All files (*.txt *.h *.cpp);;Text files (*.txt);;C++ headers (*.h);;C++ sources (*.cpp)"));
00066 if(!filename.isEmpty())
00067 {
00068 open(filename);
00069 }
00070 }
00071
00072 void MainWindow::open(const QString & filename)
00073 {
00074 QFile file(filename);
00075 if( file.open(QIODevice::ReadOnly | QIODevice::Text) )
00076 {
00077 text->clear();
00078 while(!file.atEnd())
00079 {
00080 text->append(file.readLine());
00081 }
00082 recentMenu->addRecent(filename);
00083 setWindowTitle(tr("QExtend::RecentMenu example : ") + filename);
00084 }
00085 file.close();
00086 }