diff --git a/src/musrgui/PSubTextEdit.cpp b/src/musrgui/PSubTextEdit.cpp new file mode 100644 index 00000000..e869a0dc --- /dev/null +++ b/src/musrgui/PSubTextEdit.cpp @@ -0,0 +1,229 @@ +/**************************************************************************** + + PSubTextEdit.cpp + + Author: Andreas Suter + e-mail: andreas.suter@psi.ch + + $Id$ + +*****************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2009 by Andreas Suter * + * andreas.suter@psi.ch * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include +#include +#include +#include + +#include "PSubTextEdit.h" +#include "forms/PGetTitleDialog.h" + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +PSubTextEdit::PSubTextEdit(QWidget *parent, const char *name) : QTextEdit(parent, name) +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +QPopupMenu* PSubTextEdit::createPopupMenu(const QPoint &pos) +{ + QPopupMenu *menu = new QPopupMenu( this ); + + QAction *a; + a = new QAction(tr("insert Title"), 0, this, "insertTitle"); + connect(a, SIGNAL( activated() ), this, SLOT( insertTitle() )); + a->addTo( menu ); + + menu->insertSeparator(); + + a = new QAction(tr("insert Parameter Block"), 0, this, "insertParameterBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertParameterBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Parameter"), 0, this, "insertParameter"); + connect(a, SIGNAL( activated() ), this, SLOT( insertParameter() )); + a->addTo( menu ); + + menu->insertSeparator(); + + a = new QAction(tr("insert Theory Block"), 0, this, "insertTheoryBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertTheoryBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Function Block"), 0, this, "insertFunctionBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertFunctionBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Asymmetry Block"), 0, this, "insertAsymRunBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertAsymRunBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Single Histo Block"), 0, this, "insertSingleHistRunBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertSingleHistRunBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert NonMusr Block"), 0, this, "insertNonMusrRunBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertNonMusrRunBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Command Block"), 0, this, "insertCommandBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertCommandBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Fourier Block"), 0, this, "insertFourierBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertFourierBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Plot Block"), 0, this, "insertPlotBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertPlotBlock() )); + a->addTo( menu ); + + a = new QAction(tr("insert Statistic Block"), 0, this, "insertStatisticBlock"); + connect(a, SIGNAL( activated() ), this, SLOT( insertStatisticBlock() )); + a->addTo( menu ); + + return menu; +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertTitle() +{ + PGetTitleDialog *dlg = new PGetTitleDialog(); + if (dlg->exec() == QDialog::Accepted) { + QString title = dlg->fTitle_lineEdit->text(); + insert(title+"\n"); + insert("###############################################################\n"); + } +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertParameterBlock() +{ + insert("will insert a real parameter block"); +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertParameter() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertTheoryBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertFunctionBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertAsymRunBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertSingleHistRunBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertNonMusrRunBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertCommandBlock() +{ + insert("###############################################################\n"); + insert("COMMANDS\n"); + insert("SET BATCH\n"); + insert("STRATEGY 1\n"); + insert("MINIMIZE\n"); + insert("#MINOS\n"); + insert("SAVE\n"); + insert("END RETURN\n\n"); +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertFourierBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertPlotBlock() +{ +} + +//---------------------------------------------------------------------------------------------------- +/** + *

+ */ +void PSubTextEdit::insertStatisticBlock() +{ + QDateTime dt = QDateTime::currentDateTime(); + insert("###############################################################\n"); + insert("STATISTIC --- " + dt.toString("yyyy-MM-dd hh:mm:ss") + "\n"); + insert("chisq = ????, NDF = ????, chisq/NDF = ????\n\n"); +} + +//---------------------------------------------------------------------------------------------------- +// END +//---------------------------------------------------------------------------------------------------- diff --git a/src/musrgui/PSubTextEdit.h b/src/musrgui/PSubTextEdit.h new file mode 100644 index 00000000..150afc0e --- /dev/null +++ b/src/musrgui/PSubTextEdit.h @@ -0,0 +1,62 @@ +/**************************************************************************** + + PSubTextEdit.h + + Author: Andreas Suter + e-mail: andreas.suter@psi.ch + + $Id$ + +*****************************************************************************/ + +/*************************************************************************** + * Copyright (C) 2009 by Andreas Suter * + * andreas.suter@psi.ch * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#ifndef _PSUBTEXTEDIT_H_ +#define _PSUBTEXTEDIT_H_ + +#include + +class PSubTextEdit : public QTextEdit +{ + Q_OBJECT + +public: + PSubTextEdit( QWidget *parent = 0, const char *name = 0 ); + +protected: + virtual QPopupMenu *createPopupMenu( const QPoint &pos); + +private slots: + void insertTitle(); + void insertParameterBlock(); + void insertParameter(); + void insertTheoryBlock(); + void insertFunctionBlock(); + void insertAsymRunBlock(); + void insertSingleHistRunBlock(); + void insertNonMusrRunBlock(); + void insertCommandBlock(); + void insertFourierBlock(); + void insertPlotBlock(); + void insertStatisticBlock(); +}; + +#endif // _PSUBTEXTEDIT_H_ diff --git a/src/musrgui/PTextEdit.cpp b/src/musrgui/PTextEdit.cpp index d4eceec5..2a4c119f 100644 --- a/src/musrgui/PTextEdit.cpp +++ b/src/musrgui/PTextEdit.cpp @@ -52,6 +52,7 @@ #include #include "PTextEdit.h" +#include "PSubTextEdit.h" #include "PAdmin.h" #include "PFitOutputHandler.h" #include "PGetDefaultDialog.h" @@ -216,6 +217,8 @@ void PTextEdit::setupMusrActions() a->addTo( tb ); a->addTo( menu ); + menu->insertSeparator(); + a = new QAction( QPixmap::fromMimeSource( "musrcalcchisq.xpm" ), tr( "Calc Chisq" ), ALT + Key_C, this, "cacluates for the given parameters chiSq/maxLH" ); connect( a, SIGNAL( activated() ), this, SLOT( musrCalcChisq() ) ); a->addTo( tb ); @@ -226,6 +229,8 @@ void PTextEdit::setupMusrActions() a->addTo( tb ); a->addTo( menu ); + menu->insertSeparator(); + a = new QAction( QPixmap::fromMimeSource( "musrview.xpm" ), tr( "&View" ), ALT + Key_V, this, "musrView" ); connect( a, SIGNAL( activated() ), this, SLOT( musrView() ) ); a->addTo( tb ); @@ -284,7 +289,7 @@ void PTextEdit::load( const QString &f ) { if ( !QFile::exists( f ) ) return; - QTextEdit *edit = new QTextEdit( fTabWidget ); + PSubTextEdit *edit = new PSubTextEdit( fTabWidget ); edit->setTextFormat( PlainText ); edit->setFamily("Courier"); edit->setPointSize(11); // 11pt @@ -306,10 +311,10 @@ void PTextEdit::load( const QString &f ) /** *

*/ -QTextEdit *PTextEdit::currentEditor() const +PSubTextEdit *PTextEdit::currentEditor() const { - if ( fTabWidget->currentPage() && fTabWidget->currentPage()->inherits( "QTextEdit" ) ) - return (QTextEdit*)fTabWidget->currentPage(); + if ( fTabWidget->currentPage() && fTabWidget->currentPage()->inherits( "PSubTextEdit" ) ) + return (PSubTextEdit*)fTabWidget->currentPage(); return 0; } @@ -317,7 +322,7 @@ QTextEdit *PTextEdit::currentEditor() const /** *

*/ -void PTextEdit::doConnections( QTextEdit *e ) +void PTextEdit::doConnections( PSubTextEdit *e ) { connect( e, SIGNAL( currentFontChanged( const QFont & ) ), this, SLOT( fontChanged( const QFont & ) ) ); @@ -331,7 +336,7 @@ void PTextEdit::doConnections( QTextEdit *e ) */ void PTextEdit::fileNew() { - QTextEdit *edit = new QTextEdit( fTabWidget ); + PSubTextEdit *edit = new PSubTextEdit( fTabWidget ); edit->setTextFormat( PlainText ); edit->setFamily("Courier"); edit->setPointSize(11); // 11pt diff --git a/src/musrgui/PTextEdit.h b/src/musrgui/PTextEdit.h index 431f8406..ac3379b7 100644 --- a/src/musrgui/PTextEdit.h +++ b/src/musrgui/PTextEdit.h @@ -35,76 +35,78 @@ #include #include +class PSubTextEdit; class PAdmin; class QAction; class QComboBox; class QTabWidget; class QTextEdit; +class QPopupMenu; class PTextEdit : public QMainWindow { Q_OBJECT public: - PTextEdit( QWidget *parent = 0, const char *name = 0 ); + PTextEdit( QWidget *parent = 0, const char *name = 0 ); private: - void setupFileActions(); - void setupEditActions(); - void setupTextActions(); - void setupMusrActions(); - void setupHelpActions(); - void load( const QString &f ); - QTextEdit *currentEditor() const; - void doConnections( QTextEdit *e ); + void setupFileActions(); + void setupEditActions(); + void setupTextActions(); + void setupMusrActions(); + void setupHelpActions(); + void load( const QString &f ); + PSubTextEdit *currentEditor() const; + void doConnections( PSubTextEdit *e ); private slots: - void fileNew(); - void fileOpen(); - void fileSave(); - void fileSaveAs(); - void filePrint(); - void fileClose(); - void fileExit(); + void fileNew(); + void fileOpen(); + void fileSave(); + void fileSaveAs(); + void filePrint(); + void fileClose(); + void fileExit(); - void editUndo(); - void editRedo(); - void editSelectAll(); - void editCut(); - void editCopy(); - void editPaste(); + void editUndo(); + void editRedo(); + void editSelectAll(); + void editCut(); + void editCopy(); + void editPaste(); - void textFamily( const QString &f ); - void textSize( const QString &p ); + void textFamily( const QString &f ); + void textSize( const QString &p ); - void musrGetAsymetryDefault(); - void musrGetSingleHistoDefault(); - void musrCalcChisq(); - void musrFit(); - void musrView(); - void musrT0(); - void musrPrefs(); - void musrShowMlog( const QString &str ); + void musrGetAsymetryDefault(); + void musrGetSingleHistoDefault(); + void musrCalcChisq(); + void musrFit(); + void musrView(); + void musrT0(); + void musrPrefs(); + void musrShowMlog( const QString &str ); - void helpContents(); - void helpAboutQt(); - void helpAbout(); + void helpContents(); + void helpAboutQt(); + void helpAbout(); - void fontChanged( const QFont &f ); - void textChanged(); + void fontChanged( const QFont &f ); + void textChanged(); private: - PAdmin *fAdmin; + PAdmin *fAdmin; - bool fShowMlog; + bool fShowMlog; - QComboBox *fComboFont; - QComboBox *fComboSize; + QComboBox *fComboFont; + QComboBox *fComboSize; - QComboBox *fComboShowMlog; + QComboBox *fComboShowMlog; - QTabWidget *fTabWidget; - QMap fFilenames; + QTabWidget *fTabWidget; + QMap fFilenames; }; diff --git a/src/musrgui/forms/PGetTitleDialog.ui b/src/musrgui/forms/PGetTitleDialog.ui new file mode 100644 index 00000000..48afaeb4 --- /dev/null +++ b/src/musrgui/forms/PGetTitleDialog.ui @@ -0,0 +1,152 @@ + +PGetTitleDialog + + + PGetTitleDialog + + + + 0 + 0 + 584 + 107 + + + + Get Title + + + true + + + + fTitle_textLabel + + + + 10 + 20 + 40 + 21 + + + + <b>Title</b> + + + + + fTitle_lineEdit + + + + 60 + 20 + 510 + 24 + + + + + + Layout1 + + + + 10 + 60 + 560 + 33 + + + + + unnamed + + + 0 + + + 6 + + + + buttonHelp + + + &Help + + + F1 + + + true + + + + + Horizontal Spacing2 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + buttonOk + + + &OK + + + + + + true + + + true + + + + + buttonCancel + + + &Cancel + + + + + + true + + + + + + + + buttonOk + clicked() + PGetTitleDialog + accept() + + + buttonCancel + clicked() + PGetTitleDialog + reject() + + + + diff --git a/src/musrgui/musrgui.pro b/src/musrgui/musrgui.pro index 5a7a8aae..0a88973c 100644 --- a/src/musrgui/musrgui.pro +++ b/src/musrgui/musrgui.pro @@ -15,18 +15,21 @@ CONFIG += qt warn_on debug HEADERS = PTextEdit.h \ + PSubTextEdit.h \ PAdmin.h \ PFitOutputHandler.h \ PGetDefaultDialog.h SOURCES = PTextEdit.cpp \ + PSubTextEdit.cpp \ PAdmin.cpp \ PFitOutputHandler.cpp \ PGetDefaultDialog.cpp \ main.cpp FORMS = forms/PGetDefaultDialogBase.ui \ - forms/PMusrGuiAbout.ui + forms/PMusrGuiAbout.ui \ + forms/PGetTitleDialog.ui IMAGES = images/editcopy.xpm \ images/editcut.xpm \