Back to index

salome-gui  6.5.0
Public Slots | Public Member Functions | Protected Member Functions | Private Slots
MainWindow Class Reference

#include <mainwindow.hxx>

List of all members.

Public Slots

void updateActions ()

Public Member Functions

 MainWindow (QWidget *parent=0)

Protected Member Functions

void contextMenuEvent (QContextMenuEvent *event)

Private Slots

void insertChild ()
bool insertColumn (const QModelIndex &parent=QModelIndex())
void insertRow ()
bool removeColumn (const QModelIndex &parent=QModelIndex())
void removeRow ()
void newData ()

Detailed Description

Definition at line 32 of file mainwindow.hxx.


Constructor & Destructor Documentation

MainWindow::MainWindow ( QWidget *  parent = 0)

Definition at line 28 of file mainwindow.cxx.

    : QMainWindow(parent)
{
    setupUi(this);

    QStringList headers;
    headers << tr("Title") << tr("Description");

    TreeModel *model = new TreeModel(headers);
    TESTHELPER_loadDataFromFile(model, TESTHELPER_testfilename(DATAFILENAME));

    view->setModel(model);
    for (int column = 0; column < model->columnCount(); ++column)
        view->resizeColumnToContents(column);

    connect(exitAction, SIGNAL(triggered()), qApp, SLOT(quit()));

    connect(view->selectionModel(),
            SIGNAL(selectionChanged(const QItemSelection &,
                                    const QItemSelection &)),
            this, SLOT(updateActions()));

    connect(actionsMenu, SIGNAL(aboutToShow()), this, SLOT(updateActions()));
    connect(insertRowAction, SIGNAL(triggered()), this, SLOT(insertRow()));
    connect(insertColumnAction, SIGNAL(triggered()), this, SLOT(insertColumn()));
    connect(removeRowAction, SIGNAL(triggered()), this, SLOT(removeRow()));
    connect(removeColumnAction, SIGNAL(triggered()), this, SLOT(removeColumn()));
    connect(insertChildAction, SIGNAL(triggered()), this, SLOT(insertChild()));
    connect(newDataAction, SIGNAL(triggered()), this, SLOT(newData()));

    updateActions();
}

Here is the call graph for this function:


Member Function Documentation

void MainWindow::contextMenuEvent ( QContextMenuEvent *  event) [protected]

Definition at line 184 of file mainwindow.cxx.

                                                          {
  QMenu menu(this);
  menu.addAction(newDataAction);
  menu.exec(event->globalPos());
}
void MainWindow::insertChild ( ) [private, slot]

Definition at line 82 of file mainwindow.cxx.

{
    QModelIndex index = view->selectionModel()->currentIndex();
    QAbstractItemModel *model = view->model();

    if (model->columnCount(index) == 0) {
        if (!model->insertColumn(0, index))
            return;
    }

    if (!model->insertRow(0, index))
        return;

    for (int column = 0; column < model->columnCount(index); ++column) {
        QModelIndex child = model->index(0, column, index);
        model->setData(child, QVariant("[No data]"), Qt::EditRole);
        if (!model->headerData(column, Qt::Horizontal).isValid())
            model->setHeaderData(column, Qt::Horizontal, QVariant("[No header]"),
                                 Qt::EditRole);
    }

    view->selectionModel()->setCurrentIndex(model->index(0, 0, index),
                                            QItemSelectionModel::ClearAndSelect);
    updateActions();
}

Here is the call graph for this function:

Here is the caller graph for this function:

bool MainWindow::insertColumn ( const QModelIndex &  parent = QModelIndex()) [private, slot]

Definition at line 108 of file mainwindow.cxx.

{
    QAbstractItemModel *model = view->model();
    int column = view->selectionModel()->currentIndex().column();

    // Insert a column in the parent item.
    bool changed = model->insertColumn(column + 1, parent);
    if (changed)
        model->setHeaderData(column + 1, Qt::Horizontal, QVariant("[No header]"),
                             Qt::EditRole);

    updateActions();

    return changed;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void MainWindow::insertRow ( ) [private, slot]

Definition at line 124 of file mainwindow.cxx.

{
    QModelIndex index = view->selectionModel()->currentIndex();
    QAbstractItemModel *model = view->model();

    if (!model->insertRow(index.row()+1, index.parent()))
        return;

    updateActions();

    for (int column = 0; column < model->columnCount(index.parent()); ++column) {
        QModelIndex child = model->index(index.row()+1, column, index.parent());
        model->setData(child, QVariant("[No data]"), Qt::EditRole);
    }
}

Here is the call graph for this function:

Here is the caller graph for this function:

void MainWindow::newData ( ) [private, slot]

Definition at line 61 of file mainwindow.cxx.

                         {
  LOG("MainWindow::newData(): START");

  bool ok;
  QString text = QInputDialog::getText(this, tr("QInputDialog::getText()"),
                                       tr("Data path:"), QLineEdit::Normal,
                                       "folder/subfolder/item", &ok);
  if (!ok || text.trimmed().isEmpty())
    return;

  QStringList path = text.trimmed().split("/");
  TreeModel *model = (TreeModel *)view->model();

  QString label = path.last();
  path.removeLast();
  DataObject * data = TESTHELPER_dummyObject(label);
  model->addData(data,path);

  LOG("MainWindow::newData(): END");
}

Here is the call graph for this function:

Here is the caller graph for this function:

bool MainWindow::removeColumn ( const QModelIndex &  parent = QModelIndex()) [private, slot]

Definition at line 140 of file mainwindow.cxx.

{
    QAbstractItemModel *model = view->model();
    int column = view->selectionModel()->currentIndex().column();

    // Insert columns in each child of the parent item.
    bool changed = model->removeColumn(column, parent);

    if (!parent.isValid() && changed)
        updateActions();

    return changed;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void MainWindow::removeRow ( ) [private, slot]

Definition at line 154 of file mainwindow.cxx.

{
    QModelIndex index = view->selectionModel()->currentIndex();
    QAbstractItemModel *model = view->model();
    if (model->removeRow(index.row(), index.parent()))
        updateActions();
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 162 of file mainwindow.cxx.

{
    bool hasSelection = !view->selectionModel()->selection().isEmpty();
    removeRowAction->setEnabled(hasSelection);
    removeColumnAction->setEnabled(hasSelection);

    bool hasCurrent = view->selectionModel()->currentIndex().isValid();
    insertRowAction->setEnabled(hasCurrent);
    insertColumnAction->setEnabled(hasCurrent);

    if (hasCurrent) {
        view->closePersistentEditor(view->selectionModel()->currentIndex());

        int row = view->selectionModel()->currentIndex().row();
        int column = view->selectionModel()->currentIndex().column();
        if (view->selectionModel()->currentIndex().parent().isValid())
            statusBar()->showMessage(tr("Position: (%1,%2)").arg(row).arg(column));
        else
            statusBar()->showMessage(tr("Position: (%1,%2) in top level").arg(row).arg(column));
    }
}

Here is the caller graph for this function:


The documentation for this class was generated from the following files: