Ignore:
Timestamp:
Nov 15, 2007, 11:55:49 AM (17 years ago)
Author:
garnier
Message:

r644@mac-90108: laurentgarnier | 2007-11-13 14:35:50 +0100
modif pour qt3

Location:
trunk/geant4/interfaces/basic
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/geant4/interfaces/basic/include/G4UIQt.hh

    r602 r603  
    4343class QLineEdit;
    4444class G4UIsession;
     45#if QT_VERSION < 0x040000
     46class QListView;
     47class QListViewItem;
     48#else
    4549class QListWidget;
     50class QTreeWidget;
     51class QTreeWidgetItem;
     52#endif
    4653class QTextEdit;
    4754class QLabel;
    4855class QDialog;
    49 class QTreeWidgetItem;
    50 class QTreeWidget;
    5156
    5257// Class description :
     
    101106  void SecondaryLoop(G4String); // a VIRER
    102107  void TerminalHelp(G4String);
     108#if QT_VERSION < 0x040000
     109  void CreateChildTree(QListViewItem*,G4UIcommandTree*);
     110  QListViewItem* FindTreeItem(QListViewItem *,const QString&);
     111#else
    103112  void CreateChildTree(QTreeWidgetItem*,G4UIcommandTree*);
    104113  QTreeWidgetItem* FindTreeItem(QTreeWidgetItem *,const QString&);
     114#endif
    105115
    106116  QString GetCommandList(const G4UIcommand*);
     
    121131  QTextEdit *fTextArea;
    122132  QTextEdit *fHelpArea;
     133#if QT_VERSION < 0x040000
     134  QListView *fCommandHistoryArea;
     135  QListView *fHelpTreeWidget;
     136#else
    123137  QListWidget *fCommandHistoryArea;
    124138  QTreeWidget *fHelpTreeWidget;
     139#endif
    125140  QDialog *fHelpDialog;
    126141
  • trunk/geant4/interfaces/basic/src/G4UIQt.cc

    r602 r603  
    5050#include <qlineedit.h>
    5151#include <qwidget.h>
    52 #if QT_VERSION >= 0x040000
    53 #include <qmenu.h>
    54 #else
    55 #include <qpopupmenu.h>
    56 #endif
    5752#include <qmenubar.h>
    5853#include <qlayout.h>
     
    6358#include <qdialog.h>
    6459#include <qevent.h>
     60#include <qtextedit.h>
     61#include <qsignalmapper.h>
     62
     63#if QT_VERSION >= 0x040000
     64#include <qmenu.h>
    6565#include <qlistwidget.h>
    66 #include <qtextedit.h>
    6766#include <qtreewidget.h>
    68 #include <qsignalmapper.h>
     67#else
     68#include <qaction.h>
     69#include <qheader.h>
     70#include <qlistview.h>
     71#include <qpopupmenu.h>
     72#endif
     73
    6974
    7075
     
    106111
    107112  fMainWindow = new QMainWindow();
    108   fMainWindow->setWindowTitle( "G4UI Session" );
     113#if QT_VERSION < 0x040000
     114  fMainWindow->setCaption( tr( "G4UI Session" ));
     115#else
     116  fMainWindow->setWindowTitle( tr("G4UI Session") );
     117#endif
    109118  fMainWindow->resize(800,600);
    110119  fMainWindow->move(QPoint(50,100));
     
    112121  QSplitter *splitter = new QSplitter(Qt::Vertical);
    113122  fTextArea = new QTextEdit();
    114   QPushButton *clearButton = new QPushButton("clear");
     123  QPushButton *clearButton = new QPushButton("clear",fMainWindow);
    115124  connect(clearButton, SIGNAL(clicked()), SLOT(ClearButtonCallback()));
    116125
     126#if QT_VERSION < 0x040000
     127  fCommandHistoryArea = new QListView();
     128  fCommandHistoryArea->setSelectionMode(QListView::Single);
     129#else
    117130  fCommandHistoryArea = new QListWidget();
    118131  fCommandHistoryArea->setSelectionMode(QAbstractItemView::SingleSelection);
     132#endif
    119133  connect(fCommandHistoryArea, SIGNAL(itemSelectionChanged()), SLOT(CommandHistoryCallback()));
    120134  fCommandHistoryArea->installEventFilter(this);
    121   fCommandLabel = new QLabel();
    122 
    123   fCommandArea = new QLineEdit();
     135  fCommandLabel = new QLabel("",fMainWindow);
     136
     137  fCommandArea = new QLineEdit(fMainWindow);
    124138  fCommandArea->installEventFilter(this);
     139#if QT_VERSION < 0x040000
     140  fCommandArea->setActiveWindow();
     141#else
    125142  fCommandArea->activateWindow();
     143#endif
    126144  connect(fCommandArea, SIGNAL(returnPressed()), SLOT(CommandEnteredCallback()));
     145#if QT_VERSION < 0x040000
     146  fCommandArea->setFocusPolicy ( QWidget::StrongFocus );
     147  fCommandArea->setFocus();
     148#else
    127149  fCommandArea->setFocusPolicy ( Qt::StrongFocus );
    128150  fCommandArea->setFocus(Qt::TabFocusReason);
     151#endif
    129152  fTextArea->setReadOnly(true);
    130153
     
    132155  // Set layouts
    133156
     157#if QT_VERSION < 0x040000
     158  QWidget* topWidget = new QWidget(splitter);
     159  QWidget* bottomWidget = new QWidget(splitter);
     160
     161  QVBoxLayout *layoutTop = new QVBoxLayout(topWidget);
     162  QVBoxLayout *layoutBottom = new QVBoxLayout(bottomWidget);
     163#else
    134164  QWidget* topWidget = new QWidget();
     165  QWidget* bottomWidget = new QWidget();
     166
    135167  QVBoxLayout *layoutTop = new QVBoxLayout;
    136 
    137   QWidget* bottomWidget = new QWidget();
    138168  QVBoxLayout *layoutBottom = new QVBoxLayout;
     169#endif
     170
    139171
    140172
    141173  layoutTop->addWidget(fTextArea);
    142174  layoutTop->addWidget(clearButton);
     175
     176#if QT_VERSION >= 0x040000
    143177  topWidget->setLayout(layoutTop);
     178#endif
    144179
    145180  layoutBottom->addWidget(fCommandHistoryArea);
    146181  layoutBottom->addWidget(fCommandLabel);
    147182  layoutBottom->addWidget(fCommandArea);
     183#if QT_VERSION >= 0x040000
    148184  bottomWidget->setLayout(layoutBottom);
    149 
    150 
    151185  splitter->addWidget(topWidget);
    152186  splitter->addWidget(bottomWidget);
     187#endif
     188
    153189  fMainWindow->setCentralWidget(splitter);
    154190
     191#if QT_VERSION < 0x040000
     192  // Add a quit subMenu
     193  QPopupMenu *fileMenu = new QPopupMenu( fMainWindow);
     194  fileMenu->insertItem( "&Quitter",  this, SLOT(close()), CTRL+Key_Q );
     195  fMainWindow->menuBar()->insertItem( QString("&File"), fileMenu );
     196
     197  // Add a Help menu
     198  QPopupMenu *helpMenu = new QPopupMenu( fMainWindow );
     199  helpMenu->insertItem( "&Show Help",  this, SLOT(ShowHelpCallback()), CTRL+Key_H );
     200  fMainWindow->menuBar()->insertItem( QString("&Help"), helpMenu );
     201
     202#else
    155203  // Add a quit subMenu
    156204  QMenu *fileMenu = fMainWindow->menuBar()->addMenu("File");
     
    160208  QMenu *helpMenu = fMainWindow->menuBar()->addMenu("Help");
    161209  helpMenu->addAction("Show Help", this, SLOT(ShowHelpCallback()));
     210#endif
    162211
    163212  // Set the splitter size. The fTextArea sould be 2/3 on the fMainWindow
     213#if QT_VERSION < 0x040000
     214  QValueList<int> vals = splitter->sizes();
     215#else
    164216  QList<int> vals = splitter->sizes();
     217#endif
    165218  if(vals.size()==2) {
    166219    vals[0] = (splitter->orientation()==Qt::Vertical ? splitter->height() : splitter->width())*3/4;
     
    310363 
    311364  //  printf(" **************** G4 Cout : %s\n",(char*)aString.data());
     365#if QT_VERSION < 0x040000
     366  fTextArea->append(QString((char*)aString.data()).simplifyWhiteSpace());
     367  fTextArea->verticalScrollBar()->setValue(fTextArea->verticalScrollBar()->maxValue());
     368#else
    312369  fTextArea->append(QString((char*)aString.data()).trimmed());
    313370  fTextArea->verticalScrollBar()->setSliderPosition(fTextArea->verticalScrollBar()->maximum());
     371#endif
    314372  interactorManager->FlushAndWaitExecution();
    315373  return 0;
     
    330388  if (!interactorManager) return 0;
    331389
     390#if QT_VERSION < 0x040000
     391  QColor previousColor = fTextArea->color();
     392  fTextArea->setColor(Qt::red);
     393  fTextArea->append(QString((char*)aString.data()).simplifyWhiteSpace());
     394  fTextArea->setColor(previousColor);
     395  fTextArea->verticalScrollBar()->setValue(fTextArea->verticalScrollBar()->maxValue());
     396#else
    332397  QColor previousColor = fTextArea->textColor();
    333398  fTextArea->setTextColor(Qt::red);
     
    335400  fTextArea->setTextColor(previousColor);
    336401  fTextArea->verticalScrollBar()->setSliderPosition(fTextArea->verticalScrollBar()->maximum());
     402#endif
    337403  interactorManager->FlushAndWaitExecution();
    338404  return 0;
     
    354420  if (aLabel == NULL) return;
    355421
     422#if QT_VERSION < 0x040000
     423  QPopupMenu *fileMenu = new QPopupMenu( fMainWindow);
     424  fMainWindow->menuBar()->insertItem( aLabel, fileMenu );
     425#else
    356426  QMenu *fileMenu = new QMenu(aLabel);
    357427  fMainWindow->menuBar()->insertMenu(fMainWindow->menuBar()->actions().last(),fileMenu);
     428#endif
     429
    358430  AddInteractor (aName,(G4Interactor)fileMenu);
    359431}
     
    376448  if(aCommand==NULL) return; // TO KEEP
    377449
     450#if QT_VERSION < 0x040000
     451  QPopupMenu *parent = (QPopupMenu*)GetInteractor(aMenu);
     452#else
    378453  QMenu *parent = (QMenu*)GetInteractor(aMenu);
     454#endif
     455
    379456  if(parent==NULL) return;
    380457 
    381458  QSignalMapper *signalMapper = new QSignalMapper(this);
     459#if QT_VERSION < 0x040000
     460  QAction *action = new QAction(QString(aLabel),QKeySequence::QKeySequence (),signalMapper, SLOT(map()));
     461  action->addTo(parent);
     462#else
    382463  QAction *action = parent->addAction(aLabel, signalMapper, SLOT(map()));
     464#endif
    383465  signalMapper->setMapping(action, QString(aCommand));
    384466  connect(signalMapper, SIGNAL(mapped(const QString &)),this, SLOT(ButtonCallback(const QString&)));
     
    401483  // Create the help dialog
    402484  if (!fHelpDialog) {
     485#if QT_VERSION < 0x040000
     486    fHelpDialog = new QDialog(fMainWindow,0,FALSE,Qt::WStyle_Title | Qt::WStyle_SysMenu | Qt::WStyle_MinMax );
     487#else
    403488    fHelpDialog = new QDialog(fMainWindow,Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
     489#endif
    404490    QSplitter *splitter = new QSplitter(Qt::Horizontal);
    405     fHelpArea = new QTextEdit();
    406     QPushButton *exitButton = new QPushButton("Exit");
     491    QPushButton *exitButton = new QPushButton("Exit",fMainWindow);
    407492    connect(exitButton, SIGNAL(clicked()), fHelpDialog,SLOT(close()));
    408     fHelpArea->setReadOnly(true);
    409493
    410494    // the help tree
     
    414498
    415499    // build widget
     500#if QT_VERSION < 0x040000
     501    fHelpTreeWidget = new QListView(splitter);
     502    fHelpTreeWidget->setSelectionMode(QListView::Single);
     503    fHelpTreeWidget->addColumn("Command");
     504    fHelpTreeWidget->addColumn("Description");
     505    fHelpTreeWidget->hideColumn(1);
     506    fHelpTreeWidget->header()->setResizeEnabled(FALSE,1);
     507    //    QList<QListViewItem *> items;
     508#else
    416509    fHelpTreeWidget = new QTreeWidget();
    417510    fHelpTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection);
     
    421514    labels << QString("Command") << QString("Description");
    422515    fHelpTreeWidget->setHeaderLabels(labels);
    423 
    424     QList<QTreeWidgetItem *> items;
     516    //    QList<QTreeWidgetItem *> items;
     517#endif
     518
     519#if QT_VERSION < 0x040000
     520    fHelpArea = new QTextEdit(splitter);
     521#else
     522    fHelpArea = new QTextEdit();
     523#endif
     524    fHelpArea->setReadOnly(true);
     525
    425526    G4int treeSize = treeTop->GetTreeEntry();
     527#if QT_VERSION < 0x040000
     528    QListViewItem * newItem;
     529#else
    426530    QTreeWidgetItem * newItem;
     531#endif
    427532    for (int a=0;a<treeSize;a++) {
    428533      // Creating new item
    429       QStringList stringList;
    430       stringList << QString((char*)(treeTop->GetTree(a+1)->GetPathName()).data()).trimmed()  ;
    431       stringList << QString((char*)(treeTop->GetTree(a+1)->GetTitle()).data()).trimmed()  ;
    432 
    433       newItem = new QTreeWidgetItem(stringList);
     534
     535#if QT_VERSION < 0x040000
     536      newItem = new QListViewItem(fHelpTreeWidget);
     537      newItem->setText(0,QString((char*)(treeTop->GetTree(a+1)->GetPathName()).data()).simplifyWhiteSpace());
     538      newItem->setText(1,QString((char*)(treeTop->GetTree(a+1)->GetTitle()).data()).simplifyWhiteSpace());
     539#else
     540                                                                                                   //FIXME : Qt 4.2
     541                                                                                                   //      QStringList stringList;
     542                                                                                                   //      stringList << QString((char*)(treeTop->GetTree(a+1)->GetPathName()).data()).trimmed()  ;
     543                                                                                                   //      stringList << QString((char*)(treeTop->GetTree(a+1)->GetTitle()).data()).trimmed()  ;
     544                                                                                                   //      newItem = new QTreeWidgetItem(stringList);
     545                                                                                                   // FIXME : Qt 4.0
     546      newItem = new QTreeWidgetItem(fHelpTreeWidget);
     547      newItem->setText(0,QString((char*)(treeTop->GetTree(a+1)->GetPathName()).data()).trimmed());
     548      newItem->setText(1,QString((char*)(treeTop->GetTree(a+1)->GetTitle()).data()).trimmed());
     549#endif
     550
    434551
    435552      // look for childs
    436553      CreateChildTree(newItem,treeTop->GetTree(a+1));
    437       items.append(newItem);
     554      //      items.append(newItem);
    438555    }
    439     fHelpTreeWidget->insertTopLevelItems(0, items);
    440556
    441557    connect(fHelpTreeWidget, SIGNAL(itemSelectionChanged ()),this, SLOT(HelpTreeClicCallback())); 
     
    444560    // Set layouts
    445561
     562#if QT_VERSION < 0x040000
     563    QVBoxLayout *vLayout = new QVBoxLayout(fHelpDialog);
     564#else
    446565    QVBoxLayout *vLayout = new QVBoxLayout;
    447 
    448566    splitter->addWidget(fHelpTreeWidget);
    449567    splitter->addWidget(fHelpArea);
     568#endif
     569
    450570
    451571    vLayout->addWidget(splitter);
    452572    vLayout->addWidget(exitButton);
     573#if QT_VERSION >= 0x040000
    453574    fHelpDialog->setLayout(vLayout);
     575#endif
    454576
    455577  }
     
    465587    }
    466588  if (targetCom != "") {
     589#if QT_VERSION < 0x040000
     590    QListViewItem* findItem = NULL;
     591    QListViewItem* tmpItem = fHelpTreeWidget->firstChild();
     592    while (tmpItem != 0) {
     593      if (!findItem) {
     594        findItem = FindTreeItem(tmpItem,QString((char*)targetCom.data()));
     595      }
     596      tmpItem = tmpItem->nextSibling();
     597    }
     598#else
    467599    QTreeWidgetItem* findItem = NULL;
    468600    for (int a=0;a<fHelpTreeWidget->topLevelItemCount();a++) {
     
    471603      }
    472604    }
     605#endif
    473606   
    474607    if (findItem) {     
    475608     
    476609      //collapsed open item
     610#if QT_VERSION < 0x040000
     611      QList<QListViewItem *> selected;
     612#else
    477613      QList<QTreeWidgetItem *> selected;
     614#endif
    478615      selected = fHelpTreeWidget->selectedItems();
    479616      if ( selected.count() != 0 ) {
     617#if QT_VERSION < 0x040000
     618        QListViexItem * tmp =selected.at( 0 );
     619#else
    480620        QTreeWidgetItem * tmp =selected.at( 0 );
     621#endif
    481622        while ( tmp) {
    482623          tmp->setExpanded(false);
     
    515656   @param aCommandTree : commandTree node associate with this part of the Tree
    516657*/
     658#if QT_VERSION < 0x040000
     659void G4UIQt::CreateChildTree(
     660 QListViewItem *aParent
     661,G4UIcommandTree *aCommandTree
     662#else
    517663void G4UIQt::CreateChildTree(
    518664 QTreeWidgetItem *aParent
    519665,G4UIcommandTree *aCommandTree
     666#endif
    520667)
    521668{
Note: See TracChangeset for help on using the changeset viewer.