Beispiel #1
0
void IngredientComboBox::reload()
{
	QString remember_text;
	if ( isEditable() )
		remember_text = lineEdit()->text();

	ElementList ingredientList;
	database->loadIngredients( &ingredientList );

	clear();
	ingredientComboRows.clear();

	int row = 0;
	if ( !m_specialItem.isEmpty() ) {
		insertItem( count(), m_specialItem );
		ingredientComboRows.insert( row, -1 );
		row++;
	}
	for ( ElementList::const_iterator it = ingredientList.constBegin(); it != ingredientList.constEnd(); ++it, ++row ) {
		insertItem( count(), (*it).name );
		completionObject()->addItem((*it).name);
		ingredientComboRows.insert( row, (*it).id );
	}

	if ( isEditable() )
		setEditText( remember_text );

	database->disconnect( this );
	connect( database, SIGNAL( ingredientCreated( const Element & ) ), SLOT( createIngredient( const Element & ) ) );
	connect( database, SIGNAL( ingredientRemoved( int ) ), SLOT( removeIngredient( int ) ) );
}
Beispiel #2
0
void KMyMoneyAccountCombo::setSelected(const QString& id)
{
  // make sure, we have all items available for search
  if(isEditable()) {
    lineEdit()->clear();
  }
  // find which item has this id and set is as the current item
  QModelIndexList list = model()->match(model()->index(0, 0), AccountsModel::AccountIdRole,
                                        QVariant(id),
                                        1,
                                        Qt::MatchFlags(Qt::MatchExactly | Qt::MatchCaseSensitive | Qt::MatchRecursive));
  if (list.count() > 0) {
    d->m_lastSelectedAccount = id;
    QModelIndex index = list.front();
    QString accountName = d->fullAccountName(model(), index);

    // set the current index, for this we must set the parent item as the root item
    QModelIndex oldRootModelIndex = rootModelIndex();
    setRootModelIndex(index.parent());
    setCurrentIndex(index.row());
    if(isEditable()) {
      d->m_popupView->collapseAll();
      d->m_popupView->expand(index);
    }
    // restore the old root item
    setRootModelIndex(oldRootModelIndex);
    if(isEditable()) {
      lineEdit()->setText(accountName);
    }
    emit accountSelected(id);
  }
}
Beispiel #3
0
void IngredientComboBox::createIngredient( const Element &element )
{
	int row = findInsertionPoint( element.name );

	QString remember_text;
	if ( isEditable() )
		remember_text = lineEdit()->text();

	insertItem( row, element.name );
	completionObject()->addItem(element.name);

	if ( isEditable() )
		lineEdit()->setText( remember_text );

	//now update the map by pushing everything after this item down
	QMap<int, int> new_map;
	for ( QMap<int, int>::iterator it = ingredientComboRows.begin(); it != ingredientComboRows.end(); ++it ) {
		if ( it.key() >= row ) {
			new_map.insert( it.key() + 1, it.value() );
		}
		else
			new_map.insert( it.key(), it.value() );
	}
	ingredientComboRows = new_map;
	ingredientComboRows.insert( row, element.id );
}
Beispiel #4
0
  //Visualizing MetaInfoDescription object
  void MetaDataBrowser::visualize_(MetaInfoDescription & meta, QTreeWidgetItem * parent)
  {
    MetaInfoDescriptionVisualizer * visualizer = new MetaInfoDescriptionVisualizer(isEditable(), this);
    visualizer->load(meta);

    QStringList labels;
    String name = String("MetaInfoDescription ") + meta.getName();
    labels << name.c_str() << QString::number(ws_->addWidget(visualizer));

    QTreeWidgetItem * item;
    if (parent == nullptr)
    {
      item = new QTreeWidgetItem(treeview_, labels);
    }
    else
    {
      item = new QTreeWidgetItem(parent, labels);
    }

    //check for DataProcessing
    visualizeAll_(meta.getDataProcessing(), item);

    visualize_(dynamic_cast<MetaInfoInterface &>(meta), item);

    connectVisualizer_(visualizer);
  }
QModelIndex SqliteTableModel::dittoRecord(int old_row)
{
    if(!isEditable())
        return QModelIndex();

    if (!insertRow(rowCount()))
        return QModelIndex();

    int firstEditedColumn = 0;
    int new_row = rowCount() - 1;

    sqlb::TablePtr t = m_db.getObjectByName<sqlb::Table>(m_sTable);

    QStringList pk = t->primaryKey();
    for (size_t col = 0; col < t->fields.size(); ++col) {
        if(!contains(pk, t->fields.at(col).name())) {
            if (!firstEditedColumn)
                firstEditedColumn = col + 1;

            QVariant value = data(index(old_row, col + 1), Qt::EditRole);
            setData(index(new_row, col + 1), value);
        }
    }

    return index(new_row, firstEditedColumn);
}
Beispiel #6
0
    void TextBox::draw(Graphics* graphics)
    {
        if (mOpaque)
        {
            graphics->setColor(getBackgroundColor());
            graphics->fillRectangle(0, 0, getWidth(), getHeight());
        }

        if (isFocused() && isEditable())
        {
            drawCaret(graphics, 
                      mText->getCaretX(getFont()), 
                      mText->getCaretY(getFont()));
        }

        graphics->setColor(getForegroundColor());
        graphics->setFont(getFont());

        unsigned int i;
        for (i = 0; i < mText->getNumberOfRows(); i++)
        {
            // Move the text one pixel so we can have a caret before a letter.
            graphics->drawText(mText->getRow(i), 1, i * getFont()->getHeight());
        }
    }
bool SqliteTableModel::removeRows(int row, int count, const QModelIndex& parent)
{
    if(!isEditable())
        return false;

    if(readingData()) {
        // can't delete rows while reading data in background
        return false;
    }

    QStringList rowids;
    for(int i=count-1;i>=0;i--)
    {
        if(m_cache.count(row+i)) {
            rowids.append(m_cache.at(row + i).at(0));
        }
    }

    bool ok = m_db.deleteRecords(m_sTable, rowids, m_pseudoPk);

    if (ok) {
        beginRemoveRows(parent, row, row + count - 1);

        for(int i=count-1;i>=0;i--)
        {
            m_cache.erase(row + i);
            m_currentRowCount--;
        }

        endRemoveRows();
    }
    return ok;
}
Beispiel #8
0
  //Visualizing InstrumentSettings object
  void MetaDataBrowser::visualize_(InstrumentSettings & meta, QTreeWidgetItem * parent)
  {
    InstrumentSettingsVisualizer * visualizer = new InstrumentSettingsVisualizer(isEditable(), this);
    visualizer->load(meta);

    QStringList labels;
    labels << "InstrumentSettings" << QString::number(ws_->addWidget(visualizer));

    QTreeWidgetItem * item;
    if (parent == nullptr)
    {
      item = new QTreeWidgetItem(treeview_, labels);
    }
    else
    {
      item = new QTreeWidgetItem(parent, labels);
    }

    //ScanWindows
    visualizeAll_(meta.getScanWindows(), item);

    visualize_(dynamic_cast<MetaInfoInterface &>(meta), item);

    connectVisualizer_(visualizer);
  }
Beispiel #9
0
  //Visualizing ProteinHit object
  void MetaDataBrowser::visualize_(ProteinHit & meta, QTreeWidgetItem * parent)
  {
    ProteinHitVisualizer * visualizer = new ProteinHitVisualizer(isEditable(), this);
    visualizer->load(meta);

    String name = String("Prot ") + meta.getAccession() + " (" + meta.getScore() + ')';
    QString qs_name(name.c_str());

    QStringList labels;
    labels << qs_name << QString::number(ws_->addWidget(visualizer)) << QString::number(meta.getScore());

    QTreeWidgetItem * item;
    if (parent == nullptr)
    {
      item = new QTreeWidgetItem(treeview_, labels);
    }
    else
    {
      item = new QTreeWidgetItem(parent, labels);
    }

    visualize_(dynamic_cast<MetaInfoInterface &>(meta), item);

    connectVisualizer_(visualizer);
  }
Beispiel #10
0
QgsGrassEdit::QgsGrassEdit( QgisInterface *iface, QgsMapLayer* layer, bool newMap,
                            QWidget * parent, Qt::WFlags f )
    : QMainWindow( parent, f ), QgsGrassEditBase(), mInited( false ),
    mMapTool( 0 ), mCanvasEdit( 0 ), mRubberBandLine( 0 ), mRubberBandIcon( 0 )
{
  QgsDebugMsg( "QgsGrassEdit()" );

  setupUi( this );

  mRunning = true;
  mValid = false;
  mTool = QgsGrassEdit::NONE;
  mSuspend = false;
  mIface = iface;
  mNewMap = newMap;

  mProjectionEnabled = ( QgsProject::instance()->readNumEntry( "SpatialRefSys", "/ProjectionsEnabled", 0 ) != 0 );

  mCanvas = mIface->mapCanvas();

  if ( !isEditable( layer ) )
    return;

  //TODO dynamic_cast ?
  mLayer = ( QgsVectorLayer* )layer;

  //TODO dynamic_cast ?
  mProvider = ( QgsGrassProvider * ) mLayer->dataProvider();

  init();

}
Beispiel #11
0
void KMyMoneyAccountCombo::setModel(QAbstractItemModel *model)
{
  delete d->m_popupView;

  KComboBox::setModel(model);

  AccountNamesFilterProxyModel* filterModel = qobject_cast<AccountNamesFilterProxyModel*>(model);
  if(filterModel) {
    filterModel->setFilterKeyColumn(AccountsModel::Account);
    filterModel->setFilterRole(AccountsModel::FullNameRole);
  }

  d->m_popupView = new QTreeView(this);
  d->m_popupView->setSelectionMode(QAbstractItemView::SingleSelection);
  setView(d->m_popupView);

  d->m_popupView->installEventFilter(this);

  d->m_popupView->setHeaderHidden(true);
  d->m_popupView->setRootIsDecorated(false);
  d->m_popupView->setAlternatingRowColors(true);
  d->m_popupView->setAnimated(true);

  d->m_popupView->expandAll();

  connect(this, SIGNAL(activated(int)), SLOT(activated()));
  connect(d->m_popupView, SIGNAL(activated(QModelIndex)), this, SLOT(selectItem(QModelIndex)));
  connect(d->m_popupView, SIGNAL(pressed(QModelIndex)), this, SLOT(selectItem(QModelIndex)));

  if(isEditable()) {
    connect(lineEdit(), SIGNAL(textEdited(QString)), this, SLOT(makeCompletion(QString)));
  }
}
Beispiel #12
0
  //Visualizing DataProcessing object
  void MetaDataBrowser::visualize_(DataProcessingPtr & meta, QTreeWidgetItem * parent)
  {
    DataProcessingVisualizer * visualizer = new DataProcessingVisualizer(isEditable(), this);
    visualizer->load(*meta);

    QStringList labels;
    labels << "DataProcessing" << QString::number(ws_->addWidget(visualizer));

    QTreeWidgetItem * item;
    if (parent == nullptr)
    {
      item = new QTreeWidgetItem(treeview_, labels);
    }
    else
    {
      item = new QTreeWidgetItem(parent, labels);
    }

    //Software object
    visualize_(meta->getSoftware(), item);

    visualize_(dynamic_cast<MetaInfoInterface &>(*meta), item);

    connectVisualizer_(visualizer);
  }
Beispiel #13
0
  //Visualizing Instrument object
  void MetaDataBrowser::visualize_(Instrument & meta, QTreeWidgetItem * parent)
  {
    InstrumentVisualizer * visualizer = new InstrumentVisualizer(isEditable(), this);
    visualizer->load(meta);

    QStringList labels;
    labels << "Instrument" << QString::number(ws_->addWidget(visualizer));

    QTreeWidgetItem * item;
    if (parent == nullptr)
    {
      item = new QTreeWidgetItem(treeview_, labels);
    }
    else
    {
      item = new QTreeWidgetItem(parent, labels);
    }

    //IonSources
    visualizeAll_(meta.getIonSources(), item);

    //MassAnalyzers
    visualizeAll_(meta.getMassAnalyzers(), item);

    //IonDectector
    visualizeAll_(meta.getIonDetectors(), item);

    //Software
    visualize_(meta.getSoftware(), item);

    visualize_(dynamic_cast<MetaInfoInterface &>(meta), item);

    connectVisualizer_(visualizer);
  }
Beispiel #14
0
  //Visualizing AcquisitionInfo object
  void MetaDataBrowser::visualize_(AcquisitionInfo & meta, QTreeWidgetItem * parent)
  {
    AcquisitionInfoVisualizer * visualizer = new AcquisitionInfoVisualizer(isEditable(), this);
    visualizer->load(meta);

    QStringList labels;
    labels << "Acquisition Info" << QString::number(ws_->addWidget(visualizer));

    QTreeWidgetItem * item;
    if (parent == nullptr)
    {
      item = new QTreeWidgetItem(treeview_, labels);
    }
    else
    {
      item = new QTreeWidgetItem(parent, labels);
    }

    //Get Aquisition objects
    visualizeAll_(meta, item);

    visualize_(dynamic_cast<MetaInfoInterface &>(meta), item);

    connectVisualizer_(visualizer);
  }
Beispiel #15
0
void LegacyTextEditor::_onStateChanged( State oldState )
{
    Widget::_onStateChanged(oldState);

    m_text.setState(m_state);
    _requestRender(); //TODO: Only requestRender if skin or text appearance has changed.

    if( isEditable() )
    {
        if( m_state.isFocused() && !oldState.isFocused() )
        {
            m_text.showCursor();
            m_tickRouteId = Base::msgRouter()->addRoute( MsgType::Tick, this );
            if(	m_bResetCursorOnFocus )
                m_text.goEot();
            _requestRender();
        }
        if( !m_state.isFocused() && oldState.isFocused() )
        {
            m_text.hideCursor();
            Base::msgRouter()->deleteRoute( m_tickRouteId );
            m_tickRouteId = 0;
            _requestRender();
        }
    }
}
Beispiel #16
0
QStringList ContactListSpecialGroup::moveOperationsForSpecialGroupContact(PsiContact* contact) const
{
	Q_ASSERT(isEditable());
	QStringList result;
	if (specialType_ == SpecialType_General) {
		result << QString();
	}
	return result;
}
/*! \brief Called when an item has been double clicked */
void ApplicationViewWidget::onItemDoubleClicked(QTreeWidgetItem *it,int col)
{
    Qt::ItemFlags tmp = it->flags();
    if (isEditable(it, col)) {
        it->setFlags(tmp | Qt::ItemIsEditable);
    } else if (tmp & Qt::ItemIsEditable) {
        it->setFlags(tmp ^ Qt::ItemIsEditable);
    }
}
Beispiel #18
0
void MyFontComboBox::setCurrentText( const QString & text ) {
    int i = findText(text);
    if (i != -1)
        setCurrentIndex(i);
    else if (isEditable())
        setEditText(text);
    else
        setItemText(currentIndex(), text);
}
void KonqCombo::getStyleOption(QStyleOptionComboBox* comboOpt)
{
   //We only use this for querying metrics,so it's rough..
   comboOpt->init(this);
   comboOpt->editable = isEditable();
   comboOpt->frame    = hasFrame();
   comboOpt->iconSize = iconSize();
   comboOpt->currentIcon = itemIcon(currentIndex());
   comboOpt->currentText = currentText();
}
bool SqliteTableModel::setData(const QModelIndex& index, const QVariant& value, int role)
{
    // Don't even try setting any data if we're not browsing a table, i.e. the model data comes from a custom query
    if(!isEditable())
        return false;

    // This function is for in-place editing.
    // So, BLOB flag is false every times.
    return setTypedData(index, false, value, role);
}
Qt::ItemFlags MLModel::flags(const QModelIndex &index) const
{
    if( !index.isValid() )
        return 0;

    if( isEditable( index ) )
        return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled
                | Qt::ItemIsEditable;
    else
        return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled;
}
Beispiel #22
0
bool LegacyTextEditor::insertCharAtCursor( uint16_t c )
{
    if( !isEditable() )
        return 0;

    if( !m_state.isFocused() )
        if( !grabFocus() )
            return false;				// Couldn't get input focus...

    return _insertCharAtCursor(c);
}
Beispiel #23
0
bool QgsRasterDataProvider::writeBlock( QgsRasterBlock *block, int band, int xOffset, int yOffset )
{
  if ( !block )
    return false;
  if ( !isEditable() )
  {
    QgsDebugMsg( "writeBlock() called on read-only provider." );
    return false;
  }
  return write( block->bits(), band, block->width(), block->height(), xOffset, yOffset );
}
Beispiel #24
0
  MetaDataBrowser::MetaDataBrowser(bool editable, QWidget * parent, bool modal) :
    QDialog(parent),
    editable_(editable)
  {
    setWindowTitle("Meta data");

    setModal(modal);

    //splitter to hold treewidget and the right part (on a dummy widget)
    QGridLayout * grid = new QGridLayout(this);
    QSplitter * splitter = new QSplitter(Qt::Horizontal, this);
    grid->addWidget(splitter, 0, 0);

    //Create the tree for exploring data
    treeview_ = new QTreeWidget(this);
    treeview_->setColumnCount(3);
    treeview_->setHeaderLabel("Browse in Metadata tree");
    treeview_->setRootIsDecorated(true);
    treeview_->setColumnHidden(1, true);
    treeview_->setColumnHidden(2, true);
    splitter->addWidget(treeview_);

    //create a dummy widget to hold a grid layout and the item stack
    QWidget * dummy = new QWidget(splitter);
    splitter->addWidget(dummy);
    grid = new QGridLayout(dummy);
    grid->setColumnStretch(0, 1);

    //Create WidgetStack for managing visible metadata
    ws_ = new QStackedWidget(dummy);
    grid->addWidget(ws_, 0, 0, 1, 3);

    if (isEditable())
    {
      saveallbutton_ = new QPushButton("OK", dummy);
      cancelbutton_ = new QPushButton("Cancel", dummy);
      grid->addWidget(saveallbutton_, 1, 1);
      grid->addWidget(cancelbutton_, 1, 2);
      connect(saveallbutton_, SIGNAL(clicked()), this, SLOT(saveAll_()));
      connect(cancelbutton_, SIGNAL(clicked()), this, SLOT(reject()));
    }
    else
    {
      closebutton_ = new QPushButton("Close", dummy);
      grid->addWidget(closebutton_, 1, 2);
      connect(closebutton_, SIGNAL(clicked()), this, SLOT(reject()));
    }

    connect(treeview_, SIGNAL(itemSelectionChanged()), this, SLOT(showDetails_()));

    status_list_ = "";

  }  //end of constructor
bool QgsAuxiliaryLayer::save()
{
  bool rc = false;

  if ( isEditable() )
  {
    rc = commitChanges();
  }

  startEditing();

  return rc;
}
Beispiel #26
0
int OptVectorLayer::addFeatureWithDefaultValue( OptFeature& f )
{
//{zhangliye2715:api}
  if ( !isEditable() )
  {
    startEditing();
  }

  // add the fields to the QgsFeature
  QgsVectorDataProvider* provider = dataProvider();
  const QgsFieldMap fields = provider->fields();

  for ( QgsFieldMap::const_iterator it = fields.begin(); it != fields.end(); ++it )
  {
    f.addAttribute( it.key(), provider->defaultValue( it.key() ) );
  }

  int id = -1;
  id = OptVectorLayer::addFeature( f );
  if ( id != -1 )
  {
    //add points to other features to keep topology up-to-date
    int topologicalEditing = QgsProject::instance()->readNumEntry( "Digitizing", "/TopologicalEditing", 0 );

    if( topologicalEditing )
    {
      addTopologicalPoints( f.geometry() );
    }
  }
  else
  {
    return -1;
  }

  //vlayer->setModified(true);
  //commit or rollBack the change
  if ( isModified() )
  {
    commitChanges();
  }
  else
  {
    rollBack();
    return -1;
  }

  //make the layer still editable for the next adding operation
  startEditing();

  return id;
}
Beispiel #27
0
/*! \internal */
Qt::ItemFlags KDPropertyModel::flags(const QModelIndex &index) const
{
  Qt::ItemFlags f = QAbstractItemModel::flags(index);
  if(isEnabled(index)) {
    f |= Qt::ItemIsEnabled;
    if(isEditable(index))
      f |= Qt::ItemIsEditable;
  } else {
    f &= !Qt::ItemIsEnabled;
  }
  if(privateData(index) && privateData(index)->isCategory())
    f |= Qt::ItemIsUserCheckable|Qt::ItemIsEnabled;
  return f;
}
Beispiel #28
0
void QThemeWidget::setThemeName(const QString & value)
{
    name = value;
    if (isEditable())
    {
        disconnect(nameEdit,SIGNAL(textChanged(QString)),this,SLOT(setThemeName(QString)));
        nameEdit -> setText(name);
        emit widgetChanged();
        connect(nameEdit,SIGNAL(textChanged(QString)),this,SLOT(setThemeName(QString)));
    }
    else
        nameLabel -> setText("<h1>" + name + "</h1>");

}
Beispiel #29
0
  void InstrumentVisualizer::update_()
  {
    name_->setText(temp_.getName().c_str());
    vendor_->setText(temp_.getVendor().c_str());
    model_->setText(temp_.getModel().c_str());
    customizations_->setText(temp_.getCustomizations().c_str());

    if (!isEditable())
    {
      fillComboBox_(ion_optics_, &temp_.NamesOfIonOpticsType[temp_.getIonOptics()], 1);
    }
    else
    {
      fillComboBox_(ion_optics_, temp_.NamesOfIonOpticsType, Instrument::SIZE_OF_IONOPTICSTYPE);
    }
  }
    void TextField::draw(Graphics* graphics)
    {
        Color faceColor = getBaseColor();
        Color highlightColor, shadowColor;
        int alpha = getBaseColor().a;
        highlightColor = faceColor + 0x303030;
        highlightColor.a = alpha;
        shadowColor = faceColor - 0x303030;
        shadowColor.a = alpha;

        // Draw a border.
        graphics->setColor(shadowColor);
        graphics->drawLine(0, 0, getWidth() - 1, 0);
        graphics->drawLine(0, 1, 0, getHeight() - 2);
        graphics->setColor(highlightColor);
        graphics->drawLine(getWidth() - 1, 1, getWidth() - 1, getHeight() - 1);
        graphics->drawLine(0, getHeight() - 1, getWidth() - 1, getHeight() - 1);

        // Push a clip area so the other drawings don't need to worry
        // about the border.
        graphics->pushClipArea(Rectangle(1, 1, getWidth() - 2, getHeight() - 2));

        graphics->setColor(getBackgroundColor());
        graphics->fillRectangle(Rectangle(0, 0, getWidth(), getHeight()));

        if (isFocused())
        {
            graphics->setColor(getSelectionColor());
            graphics->drawRectangle(Rectangle(0, 0, getWidth() - 2, getHeight() - 2));
            graphics->drawRectangle(Rectangle(1, 1, getWidth() - 4, getHeight() - 4));
        }

        if (isFocused() && isEditable())
        {
            drawCaret(graphics, mText->getCaretX(getFont()) - mXScroll);
        }

        graphics->setColor(getForegroundColor());
        graphics->setFont(getFont());

        const Rectangle& dim = mText->getCaretDimension(getFont());
        if (mText->getNumberOfRows() != 0)
            graphics->drawText(mText->getRow(0), 1 - mXScroll, 1);

        graphics->popClipArea();
    }