Exemplo n.º 1
0
    void ConnectionsDialog::clone()
    {
        ConnectionListWidgetItem *currentItem =
            (ConnectionListWidgetItem *) _listWidget->currentItem();

        // Do nothing if no item selected
        if (currentItem == 0)
            return;

        // Clone connection
        ConnectionSettings *connection = currentItem->connection()->clone();
        std::string newConnectionName="Copy of "+connection->connectionName();

        connection->setConnectionName(newConnectionName);

        ConnectionDialog editDialog(connection);

        // Cleanup newly created connection and return, if not accepted.
        if (editDialog.exec() != QDialog::Accepted) {
            delete connection;
            return;
        }

        // Now connection will be owned by SettingsManager
        _settingsManager->addConnection(connection);
        add(connection);
    }
Exemplo n.º 2
0
	void KeywordsManagerWidget::on_Modify__released ()
	{
		const QModelIndex& selected = Ui_.Items_->currentIndex ();

		if (!selected.isValid ())
			return;

		QStandardItemModel *model = qobject_cast<QStandardItemModel*> (Ui_.Items_->model ());


		if (!model)
		{
			qWarning () << Q_FUNC_INFO
				<< "unable cast "
				<< Ui_.Items_->model ()
				<< "to QStandardItemModel";
			return;
		}

		const QString& keyword = model->item (selected.row (), 0)->text ();
		const QString& url = model->item (selected.row (), 1)->text ();
		EditKeywordDialog editDialog(url, keyword);

		if (editDialog.exec () == QDialog::Accepted && 
				(keyword != editDialog.GetKeyword () || url != editDialog.GetUrl ()))
		{
			if (keyword != editDialog.GetKeyword ())
				Keywords_.remove (keyword);
			Keywords_.setValue (editDialog.GetKeyword (), editDialog.GetUrl ());
			model->item (selected.row (), 0)->setText (editDialog.GetKeyword ());
			model->item (selected.row (), 1)->setText (editDialog.GetUrl ());
			Plugin_->UpdateKeywords (editDialog.GetKeyword (), editDialog.GetUrl ());
		}
	}
Exemplo n.º 3
0
    /**
     * @brief Initiate 'edit' action, usually when user clicked on Edit button
     */
    void ConnectionsDialog::edit()
    {
        ConnectionListWidgetItem *currentItem =
            (ConnectionListWidgetItem *) _listWidget->currentItem();

        // Do nothing if no item selected
        if (currentItem == 0)
            return;

        ConnectionSettings *connection = currentItem->connection();
        boost::scoped_ptr<ConnectionSettings> clonedConnection(connection->clone());
        ConnectionDialog editDialog(clonedConnection.get());

        // Do nothing if not accepted
        if (editDialog.exec() != QDialog::Accepted) {
            // on linux focus is lost - we need to activate connections dialog
            activateWindow();
            return;
        }

        connection->apply(editDialog.connection());
        _settingsManager->updateConnection(connection);

        // on linux focus is lost - we need to activate connections dialog
        activateWindow();
    }
Exemplo n.º 4
0
    /**
     * @brief Initiate 'edit' action, usually when user clicked on Edit button
     */
    void ConnectionsDialog::edit()
    {
        ConnectionListWidgetItem *currentItem =
            (ConnectionListWidgetItem *) _listWidget->currentItem();

        // Do nothing if no item selected
        if (currentItem == 0)
            return;

        ConnectionSettings *connection = currentItem->connection();
        boost::scoped_ptr<ConnectionSettings> clonedConnection(connection->clone());
        ConnectionDialog editDialog(clonedConnection.get());

        // Do nothing if not accepted
        if (editDialog.exec() != QDialog::Accepted) {
            // on linux focus is lost - we need to activate connections dialog
            activateWindow();
            return;
        }

        connection->apply(editDialog.connection());       

        // on linux focus is lost - we need to activate connections dialog
        activateWindow();

        int size = _connectionItems.size();
        for (int i=0; i<size; ++i)
        {
            ConnectionListWidgetItem *item = _connectionItems[i];
            if (_connectionItems[i]->connection() == connection) {
                item->setConnection(connection);
                break;
            }
        }        
    }
Exemplo n.º 5
0
/** Creates a new patient */
void medDatabaseView::onCreatePatientRequested(void)
{
    QModelIndexList indexes = this->selectedIndexes();

    bool isPersistent = true;

    if(indexes.count() > 0)
    {
        QModelIndex index = indexes.at(0);

        medAbstractDatabaseItem *item = NULL;

        if(QSortFilterProxyModel *proxy = dynamic_cast<QSortFilterProxyModel *>(this->model()))
            item = static_cast<medAbstractDatabaseItem *>(proxy->mapToSource(index).internalPointer());

        if (item)
        {
            isPersistent = medDataManager::instance()->controllerForDataSource(
                               item->dataIndex().dataSourceId() )->isPersistent();
        }
    }

    QString patientName = "new patient";
    QString birthdate = "";
    QString gender = "";

    QList<QString> ptAttributes;
    ptAttributes << medMetaDataKeys::PatientName.label();
    ptAttributes << medMetaDataKeys::BirthDate.label();
    ptAttributes << medMetaDataKeys::Gender.label();

    QList<QVariant> ptValues;
    ptValues << patientName;
    ptValues << QString("");
    ptValues << QChar();

    medDatabaseEditItemDialog editDialog(ptAttributes, ptValues, this, true, isPersistent);

    int res =  editDialog.exec();

    if(res == QDialog::Accepted)
    {
        patientName = editDialog.value(medMetaDataKeys::PatientName.label()).toString();
        birthdate = editDialog.value(medMetaDataKeys::BirthDate.label()).toString();
        gender = editDialog.value(medMetaDataKeys::Gender.label()).toString();

        // TODO: Hack to be able to create patient using medAbstractData
        // Need to be rethought
        medAbstractData* medData = new medAbstractData();

        QString generatedPatientID = QUuid::createUuid().toString().replace ( "{","" ).replace ( "}","" );

        medData->setMetaData ( medMetaDataKeys::PatientName.key(), QStringList() << patientName );
        medData->setMetaData ( medMetaDataKeys::PatientID.key(), QStringList() << generatedPatientID );
        medData->setMetaData ( medMetaDataKeys::BirthDate.key(), QStringList() << birthdate );
        medData->setMetaData ( medMetaDataKeys::Gender.key(), QStringList() << gender );

        medDataManager::instance()->importData(medData, editDialog.isPersistent());
    }
}
Exemplo n.º 6
0
/** Edits selected item */
void medDatabaseView::onEditRequested(void)
{
    QModelIndexList indexes = this->selectedIndexes();
    if(!indexes.count())
        return;

    QModelIndex index = indexes.at(0);

    medAbstractDatabaseItem *item = NULL;

    if(QSortFilterProxyModel *proxy = dynamic_cast<QSortFilterProxyModel *>(this->model()))
        item = static_cast<medAbstractDatabaseItem *>(proxy->mapToSource(index).internalPointer());

    if(item)
    {        
        QList<QVariant> attributes = item->attributes();
        QList<QVariant> values = item->values();
        QList<QString> labels;

        // Users are not allowed to change ThumbnailPath attribute.
        for (int i = 0; i<attributes.count(); i++)
        {
            if (attributes.at(i).toString() == "ThumbnailPath")
            {
                attributes.removeAt(i);
                values.removeAt(i);
            }
        }

        foreach(QVariant attrib, attributes)
        {
            const medMetaDataKeys::Key* key =  medMetaDataKeys::Key::fromKeyName(attrib.toString().toStdString().c_str());

            if(key)
            {
                labels << key->label();
            }
            else
            {
                labels << "";
            }
        }
        
        medDatabaseEditItemDialog editDialog(labels,values,this);
        
        int res =  editDialog.exec();
        medDataIndex index = item->dataIndex();

        if(res == QDialog::Accepted)
        {
            int i=0;
            foreach(QString label, labels)
            {
                QVariant data = editDialog.value(label);
                QVariant variant = item->attribute(i);
                medDataManager::instance()->setMetadata(index, variant.toString(), data.toString());
                i++;    
            }
        } 
Exemplo n.º 7
0
void DhtDialog::addButtonClicked()
{
    DhtEditDialog editDialog(this);
    if (editDialog.exec() == QDialog::Accepted) {
        Settings::DhtServer serverInfo = editDialog.getServerInformation();
        serverModel->appendRow(new QStandardItem(serverInfo.name));
        serverComboBox->setCurrentIndex(serverModel->rowCount() - 1);
        modifiedServerList << serverInfo;
    }
}
Exemplo n.º 8
0
/** Creates a new study */
void medDatabaseView::onCreateStudyRequested(void)
{
    QModelIndexList indexes = this->selectedIndexes();
    if(!indexes.count())
        return;

    QModelIndex index = indexes.at(0);

    medAbstractDatabaseItem *item = NULL;

    if(QSortFilterProxyModel *proxy = dynamic_cast<QSortFilterProxyModel *>(this->model()))
        item = static_cast<medAbstractDatabaseItem *>(proxy->mapToSource(index).internalPointer());

    if (item)
    {
        bool isPersistent = medDataManager::instance()->controllerForDataSource(
                                item->dataIndex().dataSourceId() )->isPersistent();

        int patientNameIndex = item->attributes().indexOf(medMetaDataKeys::PatientName.key());
        int birthdateIndex = item->attributes().indexOf(medMetaDataKeys::BirthDate.key());
        QString patientName = item->data( patientNameIndex ).toString();
        QString birthdate = item->data( birthdateIndex ).toString();
  
        if(birthdate.isNull()) 
            birthdate="";

        QList<QString> stAttributes;
        stAttributes << medMetaDataKeys::StudyDescription.label();

        QList<QVariant> stValues;
        stValues << "new study";

        medDatabaseEditItemDialog editDialog(stAttributes, stValues, this, true, isPersistent);

        int res =  editDialog.exec();

        if(res == QDialog::Accepted)
        {
            QString studyName = editDialog.value(medMetaDataKeys::StudyDescription.label()).toString();

            // TODO: Hack to be able to create study using medAbstractData
            // Need to be rethought
            medAbstractData* medData = new medAbstractData();

            medData->setMetaData ( medMetaDataKeys::PatientName.key(), QStringList() << patientName );
            medData->setMetaData ( medMetaDataKeys::BirthDate.key(), QStringList() << birthdate );
            medData->setMetaData ( medMetaDataKeys::StudyDescription.key(), QStringList() << studyName );
            
            medData->setMetaData ( medMetaDataKeys::StudyID.key(), QStringList() << "0" );
            medData->setMetaData ( medMetaDataKeys::StudyDicomID.key(), QStringList() << "" );

            medDataManager::instance()->importData(medData, editDialog.isPersistent());
        }
    }
}
Exemplo n.º 9
0
    /**
     * @brief Initiate 'add' action, usually when user clicked on Add button
     */
    void ConnectionsDialog::add()
    {
        ConnectionSettings *newModel = new ConnectionSettings();
        ConnectionDialog editDialog(newModel);

        // Do nothing if not accepted
        if (editDialog.exec() != QDialog::Accepted) {
            delete newModel;
            return;
        }

        _settingsManager->addConnection(newModel);
        _listWidget->setFocus();
    }
Exemplo n.º 10
0
void IMEditorWidget::slotEdit()
{
  if( mReadOnly )
    return;
  QTreeWidgetItemIterator it( mWidget->lvAddresses, QTreeWidgetItemIterator::Selected );

  // Just edit the first one selected.
  if ( IMAddressLVI *current = static_cast<IMAddressLVI*>( *it ) ) {
    KDialog editDialog( this );
    editDialog.setCaption( i18nc( "Instant messaging", "Edit Address" ) );
    editDialog.setButtons( KDialog::Ok | KDialog::Cancel );
    editDialog.setDefaultButton( KDialog::Ok );
    editDialog.setObjectName( "editaddress" );
    IMAddressWidget *addressWid = new IMAddressWidget( &editDialog, mProtocols, current->protocol(),
                                                       current->address(), current->context() ) ;
    connect( addressWid, SIGNAL( inValidState( bool ) ),
             &editDialog, SLOT( enableButtonOk( bool ) ) );
    editDialog.setMainWidget( addressWid );

    if ( editDialog.exec() == QDialog::Accepted ) {
      bool modified = false;
      if ( addressWid->address() != current->address() ) {
        modified = true;
        current->setAddress( addressWid->address() );
      }
      if ( addressWid->context() != current->context() ) {
        modified = true;
        current->setContext( addressWid->context() );
      }

      // the entry for the protocol of the current address has changed
      if ( !mChangedProtocols.contains( current->protocol() )  ) {
        mChangedProtocols.append( current->protocol() );
      }
      // update protocol - has another protocol gained an address?
      if ( current->protocol() != addressWid->protocol() ) {
        modified = true;
        // this proto is losing an entry
        current->setProtocol( addressWid->protocol() );
        if ( !mChangedProtocols.contains( current->protocol() ) ) {
          mChangedProtocols.append( current->protocol() );
        }
      }

      if ( modified ) {
        setModified( true );
      }
    }
  }
Exemplo n.º 11
0
void DhtDialog::editButtonClicked()
{
    int currentIndex = serverComboBox->currentIndex();
    if (currentIndex == -1) {
        return;
    }

    DhtEditDialog editDialog(this);
    Settings::DhtServer oldServerInfo = modifiedServerList.at(currentIndex);
    editDialog.setServerInformation(oldServerInfo);
    if (editDialog.exec() == QDialog::Accepted) {
        Settings::DhtServer newServerInfo = editDialog.getServerInformation();
        serverModel->setData(serverModel->index(currentIndex, 0), newServerInfo.name);
        modifiedServerList[currentIndex] = newServerInfo;
    }
}
Exemplo n.º 12
0
void PortMappingDialog::onEditButtonClick()
{
  int selectedIndex = m_exPortsListBox.getSelectedIndex();

  if (selectedIndex == -1) {
    return ;
  }

  PortMapping *pPM = m_extraPorts->at(selectedIndex);

  EditPortMappingDialog editDialog(EditPortMappingDialog::Edit);

  editDialog.setParent(&m_ctrlThis);
  editDialog.setMapping(pPM);

  if (editDialog.showModal() == IDOK) {
    StringStorage mappingString;
    pPM->toString(&mappingString);
    m_exPortsListBox.setItemText(selectedIndex, mappingString.getString());

    ((ConfigDialog *)m_parent)->updateApplyButtonState();
  }
}
Exemplo n.º 13
0
void ScenarioTree::editScenarioObject(ScenarioObject* scenarioObject,
                                      QTreeWidgetItem* editItem)
{
    if (scenarioObject == NULL || editItem == NULL)
        return;
    
    // TODO: Replace this with an edit method for scenario objects
    if (dynamic_cast<ScenarioTrajectoryPropagation*>(scenarioObject) != NULL)
    {
        ScenarioTrajectoryPropagation* prop = dynamic_cast<ScenarioTrajectoryPropagation*>(scenarioObject);
        TrajectoryPropagationDialog editDialog(this);
        if (!editDialog.loadValues(prop))
        {
            QMessageBox::information(this, tr("Bad TrajectoryPropagation element"), tr("Error in TrajectoryPropagation element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(prop);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }
    
    else if (dynamic_cast<ScenarioInitialStatePosition*>(scenarioObject) != NULL)
    {
        ScenarioInitialStatePosition* initialStatePos = dynamic_cast<ScenarioInitialStatePosition*>(scenarioObject);
        if (Lagrmode==1 || Lagrmode==2 || Lagrmode==3 || Lagrmode==4 || Lagrmode==0)
        {

            InitialStateThreebodyEditorDialog editDialog(this);
            if (!editDialog.loadValues(initialStatePos))
            {
                QMessageBox::information(this, tr("Bad InitialStatePosition element"), tr("Error in InitialStatePosition element"));
            }
            else
            {
                if (editDialog.exec() == QDialog::Accepted)
                {
                    editDialog.saveValues(initialStatePos);
                    updateTreeItems(editItem, scenarioObject);
                }
            }
        }
        else
        {
        InitialStateEditorDialog editDialog(this);
        if (!editDialog.loadValues(initialStatePos))
        {
            QMessageBox::information(this, tr("Bad InitialStatePosition element"), tr("Error in InitialStatePosition element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(initialStatePos);
                updateTreeItems(editItem, scenarioObject);
            }
        }
        }
    }
    else if (dynamic_cast<ScenarioLocation*>(scenarioObject) != NULL)
    {
        ScenarioLocation* location = dynamic_cast<ScenarioLocation*>(scenarioObject);
        LocationEditorDialog editDialog(this);
        editDialog.loadValues(location);
        if (editDialog.exec() == QDialog::Accepted)
        {
            editDialog.saveValues(location);
            updateTreeItems(editItem, scenarioObject);
        }
    }
    else if (dynamic_cast<ScenarioRendezvousTrajectory*>(scenarioObject) != NULL)
    {
        ScenarioRendezvousTrajectory* rendezvous = dynamic_cast<ScenarioRendezvousTrajectory*>(scenarioObject);
        RendezvousDialog editDialog(this);
        if (!editDialog.loadValues(rendezvous))
        {
            QMessageBox::information(this, tr("Bad Rendezvous element"), tr("Error in Rendezvous element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(rendezvous);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }
    else if (dynamic_cast<ScenarioLagrangianTrajectory*>(scenarioObject) != NULL)
    {Lagrmode=0;
        ScenarioLagrangianTrajectory* lagrangian = dynamic_cast<ScenarioLagrangianTrajectory*>(scenarioObject);
        LagrangianDialog editDialog(this);
         if (!editDialog.loadValues(lagrangian))
        {
            QMessageBox::information(this, tr("Bad Lagrangian element"), tr("Error in Lagrangian element"));
        }
          else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(lagrangian);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }

    else if (dynamic_cast<ScenarioLoiteringTrajectory*>(scenarioObject) != NULL)
    {
        Lagrmode=-1;
        ScenarioLoiteringTrajectory* loitering = dynamic_cast<ScenarioLoiteringTrajectory*>(scenarioObject);
        LoiteringDialog editDialog(this);
        if (!editDialog.loadValues(loitering))
        {
            QMessageBox::information(this, tr("Bad Loitering element"), tr("Error in Loitering element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(loitering);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }

    else if (dynamic_cast<ScenarioTleTrajectory*>(scenarioObject) != NULL)
    {
	ScenarioTleTrajectory* loiteringTLE = dynamic_cast<ScenarioTleTrajectory*>(scenarioObject);
	LoiteringTLEDialog editDialog(this);

	if (!editDialog.loadValues(loiteringTLE))
	{
	    QMessageBox::information(this, tr("Bad Loitering TLE element"), tr("Error in Loitering TLE element"));
	}
	else
	{
	    if (editDialog.exec() == QDialog::Accepted)
	    {
		editDialog.saveValues(loiteringTLE);
		// TODO Change the name of the participant using the TLE line 0
		updateTreeItems(editItem, scenarioObject);
	    }
	}
    }


    else if (dynamic_cast<ScenarioExternalTrajectory*>(scenarioObject) != NULL)
    {
	ScenarioExternalTrajectory* externalTrajectory = dynamic_cast<ScenarioExternalTrajectory*>(scenarioObject);
	ExternalDialog editDialog(this);

	if (!editDialog.loadValues(externalTrajectory))
	{
	    QMessageBox::information(this, tr("Bad External element"), tr("Error in external trajectory"));
	}
	else
	{
	    if (editDialog.exec() == QDialog::Accepted)
	    {
		editDialog.saveValues(externalTrajectory);
		updateTreeItems(editItem, scenarioObject);
	    }
	}
    }

    else if (dynamic_cast<ScenarioPhysicalProperties*>(scenarioObject) != NULL)
    {
        ScenarioPhysicalProperties* physicalProperties = dynamic_cast<ScenarioPhysicalProperties*>(scenarioObject);
        PhysicalPropertiesDialog editDialog(this);
        if (!editDialog.loadValues(physicalProperties))
        {
            QMessageBox::information(this, tr("Bad Properties element"), tr("Error in Physical Properties element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(physicalProperties);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }

    else if (dynamic_cast<ScenarioAerodynamicProperties*>(scenarioObject) != NULL)
    {
        ScenarioAerodynamicProperties* aerodynamicProperties = dynamic_cast<ScenarioAerodynamicProperties*>(scenarioObject);
        AerodynamicPropertiesDialog editDialog(this);
        if (!editDialog.loadValues(aerodynamicProperties))
        {
            QMessageBox::information(this, tr("Bad Properties element"), tr("Error in Aerodynamic Properties element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(aerodynamicProperties);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }

    else if (dynamic_cast<ScenarioPropulsionProperties*>(scenarioObject) != NULL)
    {
        ScenarioPropulsionProperties* propulsionProperties = dynamic_cast<ScenarioPropulsionProperties*>(scenarioObject);
        PropulsionPropertiesDialog editDialog(this);
        if (!editDialog.loadValues(propulsionProperties))
        {
            QMessageBox::information(this, tr("Bad Properties element"), tr("Error in Propulsion Properties element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(propulsionProperties);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }

    else if (dynamic_cast<ScenarioPayloadProperties*>(scenarioObject) != NULL)
    {
        ScenarioPayloadProperties* payloadProperties = dynamic_cast<ScenarioPayloadProperties*>(scenarioObject);
        PayloadPropertiesDialog editDialog(this);
        if (!editDialog.loadValues(payloadProperties))
        {
            QMessageBox::information(this, tr("Bad Properties element"), tr("Error in Payload Properties element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(payloadProperties);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }

    else if (dynamic_cast<ScenarioReEntryTrajectory*>(scenarioObject) != NULL)
    {
        Lagrmode=0;
        ScenarioReEntryTrajectory* reentry = dynamic_cast<ScenarioReEntryTrajectory*>(scenarioObject);
        ReEntryDialog editDialog(this);

        if (!editDialog.loadValues(reentry))
        {
             QMessageBox::information(this, tr("Bad ReEntry element"), tr("Error in ReEntry element"));
        }
        else
        {
            if (editDialog.exec() == QDialog::Accepted)
            {
                editDialog.saveValues(reentry);
                updateTreeItems(editItem, scenarioObject);
            }
        }
    }
    else if (dynamic_cast<ScenarioAppearance*>(scenarioObject) != NULL)
    {
        ScenarioAppearance* appearance = dynamic_cast<ScenarioAppearance*>(scenarioObject);
        QString modelFileName = QFileDialog::getOpenFileName(this,
                                                             tr("Select Model File"),
                                                             QString("./models/") + appearance->model(),
                                                             tr("Models (*.3ds *.cmod)"));
        if (!modelFileName.isEmpty())
        {
            // Strip away the path--we just want the filename
            if (modelFileName.contains('/'))
                modelFileName.remove(0, modelFileName.lastIndexOf('/') + 1);
            
            appearance->setModel(modelFileName);
            updateTreeItems(editItem, scenarioObject);
        }
    }
    else
    {
        ScenarioObject* parentObject = NULL;
        editItem = editItem->parent();
        if (editItem != NULL)
        {
            QVariant data = editItem->data(0, ScenarioObjectRole);
            
            if (qVariantCanConvert<void*>(data))
            {
                void* pointer = qVariantValue<void*>(data);
                parentObject = reinterpret_cast<ScenarioObject*>(pointer);
            }
        
            editScenarioObject(parentObject, editItem);
        }
    }    
}