void MainWindow::setupConnections() { /* * Actions */ connect(actionAbout, SIGNAL(triggered()), aboutDial, SLOT(exec())); connect(actionAddDb, SIGNAL(triggered()), this, SLOT(createDatabase())); connect(actionClearRecent, SIGNAL(triggered()), this, SLOT(clearRecent())); connect(actionCloseTab, SIGNAL(triggered()), this, SLOT(closeCurrentTab())); connect(actionCopy, SIGNAL(triggered()), this, SLOT(copy())); connect(actionCut, SIGNAL(triggered()), this, SLOT(cut())); connect(actionDbManager, SIGNAL(triggered()), dbDialog, SLOT(exec())); connect(actionLogs, SIGNAL(triggered()), logDial, SLOT(exec())); connect(actionNewQuery, SIGNAL(triggered()), this, SLOT(newQuery())); connect(actionNextTab, SIGNAL(triggered()), this, SLOT(nextTab())); connect(actionOpenQuery, SIGNAL(triggered()), this, SLOT(openQuery())); connect(actionPaste, SIGNAL(triggered()), this, SLOT(paste())); connect(actionPlugins, SIGNAL(triggered()), pluginDialog, SLOT(exec())); connect(actionPreferences, SIGNAL(triggered()), confDial, SLOT(exec())); connect(actionPreviousTab, SIGNAL(triggered()), this, SLOT(previousTab())); connect(actionPrint, SIGNAL(triggered()), this, SLOT(print())); connect(actionRedo, SIGNAL(triggered()), this, SLOT(redo())); connect(actionSaveQuery, SIGNAL(triggered()), this, SLOT(saveQuery())); connect(actionSaveQueryAs, SIGNAL(triggered()), this, SLOT(saveQueryAs())); connect(actionSearch, SIGNAL(triggered()), this, SLOT(search())); connect(actionSelect_all, SIGNAL(triggered()), this, SLOT(selectAll())); connect(actionUndo, SIGNAL(triggered()), this, SLOT(undo())); /* * DbTreeView */ connect(dbTreeView, SIGNAL(tableSelected(QSqlDatabase*,QString)), this, SLOT(openTable(QSqlDatabase*,QString))); /* * DbManager */ connect(DbManager::instance(), SIGNAL(statusChanged(QSqlDatabase*)), this, SLOT(checkDb(QSqlDatabase*))); connect(DbManager::model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(reloadDbList())); /* * Dialogs */ connect(dbWizard, SIGNAL(accepted()), this, SLOT(reloadDbList())); connect(logDial, SIGNAL(event(QString)), QMainWindow::statusBar(), SLOT(showMessage(QString))); connect(QueryScheduler::instance(), SIGNAL(countChanged(int)), this, SLOT(setQueryCount(int))); /* * Tab widget */ connect(tabWidget, SIGNAL(currentChanged(int)), this, SLOT(refreshTab())); connect(tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int))); }
MainWindow::MainWindow() : m_settings(QString::fromAscii("Doxygen.org"), QString::fromAscii("Doxywizard")) { QMenu *file = menuBar()->addMenu(tr("File")); file->addAction(tr("Open..."), this, SLOT(openConfig()), Qt::CTRL+Qt::Key_O); m_recentMenu = file->addMenu(tr("Open recent")); file->addAction(tr("Save"), this, SLOT(saveConfig()), Qt::CTRL+Qt::Key_S); file->addAction(tr("Save as..."), this, SLOT(saveConfigAs()), Qt::SHIFT+Qt::CTRL+Qt::Key_S); file->addAction(tr("Quit"), this, SLOT(quit()), Qt::CTRL+Qt::Key_Q); QMenu *settings = menuBar()->addMenu(tr("Settings")); settings->addAction(tr("Reset to factory defaults"), this,SLOT(resetToDefaults())); settings->addAction(tr("Use current settings at startup"), this,SLOT(makeDefaults())); settings->addAction(tr("Clear recent list"), this,SLOT(clearRecent())); QMenu *help = menuBar()->addMenu(tr("Help")); help->addAction(tr("Online manual"), this, SLOT(manual()), Qt::Key_F1); help->addAction(tr("About"), this, SLOT(about()) ); m_expert = new Expert; m_wizard = new Wizard(m_expert->modelData()); // ----------- top part ------------------ QWidget *topPart = new QWidget; QVBoxLayout *rowLayout = new QVBoxLayout(topPart); // select working directory QHBoxLayout *dirLayout = new QHBoxLayout; m_workingDir = new QLineEdit; m_selWorkingDir = new QPushButton(tr("Select...")); dirLayout->addWidget(m_workingDir); dirLayout->addWidget(m_selWorkingDir); //------------- bottom part -------------- QWidget *runTab = new QWidget; QVBoxLayout *runTabLayout = new QVBoxLayout(runTab); // run doxygen QHBoxLayout *runLayout = new QHBoxLayout; m_run = new QPushButton(tr("Run doxygen")); m_run->setEnabled(false); m_runStatus = new QLabel(tr("Status: not running")); m_saveLog = new QPushButton(tr("Save log...")); m_saveLog->setEnabled(false); QPushButton *showSettings = new QPushButton(tr("Show configuration")); runLayout->addWidget(m_run); runLayout->addWidget(m_runStatus); runLayout->addStretch(1); runLayout->addWidget(showSettings); runLayout->addWidget(m_saveLog); // output produced by doxygen runTabLayout->addLayout(runLayout); runTabLayout->addWidget(new QLabel(tr("Output produced by doxygen"))); QGridLayout *grid = new QGridLayout; m_outputLog = new QTextEdit; m_outputLog->setReadOnly(true); m_outputLog->setFontFamily(QString::fromAscii("courier")); m_outputLog->setMinimumWidth(600); grid->addWidget(m_outputLog,0,0); grid->setColumnStretch(0,1); grid->setRowStretch(0,1); QHBoxLayout *launchLayout = new QHBoxLayout; m_launchHtml = new QPushButton(tr("Show HTML output")); launchLayout->addWidget(m_launchHtml); launchLayout->addStretch(1); grid->addLayout(launchLayout,1,0); runTabLayout->addLayout(grid); QTabWidget *tabs = new QTabWidget; tabs->addTab(m_wizard,tr("Wizard")); tabs->addTab(m_expert,tr("Expert")); tabs->addTab(runTab,tr("Run")); rowLayout->addWidget(new QLabel(tr("Step 1: Specify the working directory from which doxygen will run"))); rowLayout->addLayout(dirLayout); rowLayout->addWidget(new QLabel(tr("Step 2: Configure doxygen using the Wizard and/or Expert tab, then switch to the Run tab to generate the documentation"))); rowLayout->addWidget(tabs); setCentralWidget(topPart); statusBar()->showMessage(tr("Welcome to Doxygen"),messageTimeout); m_runProcess = new QProcess; m_running = false; m_timer = new QTimer; // connect signals and slots connect(tabs,SIGNAL(currentChanged(int)),SLOT(selectTab(int))); connect(m_selWorkingDir,SIGNAL(clicked()),SLOT(selectWorkingDir())); connect(m_recentMenu,SIGNAL(triggered(QAction*)),SLOT(openRecent(QAction*))); connect(m_workingDir,SIGNAL(returnPressed()),SLOT(updateWorkingDir())); connect(m_runProcess,SIGNAL(readyReadStandardOutput()),SLOT(readStdout())); connect(m_runProcess,SIGNAL(finished(int, QProcess::ExitStatus)),SLOT(runComplete())); connect(m_timer,SIGNAL(timeout()),SLOT(readStdout())); connect(m_run,SIGNAL(clicked()),SLOT(runDoxygen())); connect(m_launchHtml,SIGNAL(clicked()),SLOT(showHtmlOutput())); connect(m_saveLog,SIGNAL(clicked()),SLOT(saveLog())); connect(showSettings,SIGNAL(clicked()),SLOT(showSettings())); connect(m_expert,SIGNAL(changed()),SLOT(configChanged())); loadSettings(); updateLaunchButtonState(); m_modified = false; updateTitle(); m_wizard->refresh(); }