start adding popup dialogs

This commit is contained in:
nemu 2009-02-27 21:03:31 +00:00
parent 78ca65648f
commit d980d44ffb
6 changed files with 504 additions and 51 deletions

View File

@ -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 <qaction.h>
#include <qpopupmenu.h>
#include <qdatetime.h>
#include <qlineedit.h>
#include "PSubTextEdit.h"
#include "forms/PGetTitleDialog.h"
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
PSubTextEdit::PSubTextEdit(QWidget *parent, const char *name) : QTextEdit(parent, name)
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
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;
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertTitle()
{
PGetTitleDialog *dlg = new PGetTitleDialog();
if (dlg->exec() == QDialog::Accepted) {
QString title = dlg->fTitle_lineEdit->text();
insert(title+"\n");
insert("###############################################################\n");
}
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertParameterBlock()
{
insert("will insert a real parameter block");
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertParameter()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertTheoryBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertFunctionBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertAsymRunBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertSingleHistRunBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertNonMusrRunBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
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");
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertFourierBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
void PSubTextEdit::insertPlotBlock()
{
}
//----------------------------------------------------------------------------------------------------
/**
* <p>
*/
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
//----------------------------------------------------------------------------------------------------

View File

@ -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 <qtextedit.h>
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_

View File

@ -52,6 +52,7 @@
#include <qvaluevector.h>
#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 )
/**
* <p>
*/
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
/**
* <p>
*/
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

View File

@ -35,76 +35,78 @@
#include <qmainwindow.h>
#include <qmap.h>
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<QTextEdit*, QString> fFilenames;
QTabWidget *fTabWidget;
QMap<PSubTextEdit*, QString> fFilenames;
};

View File

@ -0,0 +1,152 @@
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
<class>PGetTitleDialog</class>
<widget class="QDialog">
<property name="name">
<cstring>PGetTitleDialog</cstring>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>584</width>
<height>107</height>
</rect>
</property>
<property name="caption">
<string>Get Title</string>
</property>
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
<widget class="QLabel">
<property name="name">
<cstring>fTitle_textLabel</cstring>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>40</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>&lt;b&gt;Title&lt;/b&gt;</string>
</property>
</widget>
<widget class="QLineEdit">
<property name="name">
<cstring>fTitle_lineEdit</cstring>
</property>
<property name="geometry">
<rect>
<x>60</x>
<y>20</y>
<width>510</width>
<height>24</height>
</rect>
</property>
</widget>
<widget class="QLayoutWidget">
<property name="name">
<cstring>Layout1</cstring>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>560</width>
<height>33</height>
</rect>
</property>
<hbox>
<property name="name">
<cstring>unnamed</cstring>
</property>
<property name="margin">
<number>0</number>
</property>
<property name="spacing">
<number>6</number>
</property>
<widget class="QPushButton">
<property name="name">
<cstring>buttonHelp</cstring>
</property>
<property name="text">
<string>&amp;Help</string>
</property>
<property name="accel">
<string>F1</string>
</property>
<property name="autoDefault">
<bool>true</bool>
</property>
</widget>
<spacer>
<property name="name">
<cstring>Horizontal Spacing2</cstring>
</property>
<property name="orientation">
<enum>Horizontal</enum>
</property>
<property name="sizeType">
<enum>Expanding</enum>
</property>
<property name="sizeHint">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
<widget class="QPushButton">
<property name="name">
<cstring>buttonOk</cstring>
</property>
<property name="text">
<string>&amp;OK</string>
</property>
<property name="accel">
<string></string>
</property>
<property name="autoDefault">
<bool>true</bool>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton">
<property name="name">
<cstring>buttonCancel</cstring>
</property>
<property name="text">
<string>&amp;Cancel</string>
</property>
<property name="accel">
<string></string>
</property>
<property name="autoDefault">
<bool>true</bool>
</property>
</widget>
</hbox>
</widget>
</widget>
<connections>
<connection>
<sender>buttonOk</sender>
<signal>clicked()</signal>
<receiver>PGetTitleDialog</receiver>
<slot>accept()</slot>
</connection>
<connection>
<sender>buttonCancel</sender>
<signal>clicked()</signal>
<receiver>PGetTitleDialog</receiver>
<slot>reject()</slot>
</connection>
</connections>
<layoutdefaults spacing="6" margin="11"/>
</UI>

View File

@ -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 \