void MainWindow::modifyTrainDialog()
{
    if(this->visitorMode == true)
    {
        QMessageBox::warning(this, QString::fromLocal8Bit("失败"), QString::fromLocal8Bit("游客身份无法修改车次"));
        return;
    }
    //set default content
    int curRow = trainTable->currentRow();
    if(curRow == -1)
    {
        QMessageBox::warning(this, QString::fromLocal8Bit("修改失败"), QString::fromLocal8Bit("请选择要修改的车次"));
        return;
    }
    else
    {
//        format
//        trainIDLine
//        departureTimeLine
//        drivingTimeLine
//        priceLine
//        maxPassengersLine
//        routesText  以|分隔
        QStringList trainData;
        trainData << trainTable->item(curRow, 0)->text();
        trainData << trainTable->item(curRow, 3)->text();
        trainData << trainTable->item(curRow, 4)->text();
        trainData << trainTable->item(curRow, 5)->text();
        trainData << trainTable->item(curRow, 6)->text();

        QComboBox *comboBox = (QComboBox*)trainTable->cellWidget(curRow, 8);
        QString singleRoute;
        for(int i = 0 ; i < comboBox->count(); ++i)//split route and seats data in the comboBox
        {
            if(i)
                singleRoute += '|';

            QString stationWithSeat = comboBox->itemText(i);
            QStringList t = stationWithSeat.split(" ", QString::SkipEmptyParts);
            if(t.size() < 2)
            {
                qDebug() << "wrong in modiftTrain()";
                return;
            }

            if(t.at(1) != trainData[4] && i != comboBox->count() - 1)
            {
                QMessageBox::warning(this, QString::fromLocal8Bit("修改失败"), QString::fromLocal8Bit("该车次已售票,不可修改"));
                return;
            }
            singleRoute += t.at(0);
        }
        trainData << singleRoute;

        trainAMDialog *modifyDialog = new trainAMDialog(this);
        modifyDialog->setTrainData(trainData);  //set default data
        connect(modifyDialog, &trainAMDialog::modifyValueChanged, this, &MainWindow::modifyTrainInfo);
        modifyDialog->exec();
    }
}
Example #2
0
/**
 * create 'map' relating pair number to row number in pair table
 *
 * @returns :: The 'map' of pair number to table row number
 */
std::vector<int> MuonGroupingHelper::whichPairToWhichRow() const {
  std::vector<int> pairToRow;

  int numRows = m_uiForm.pairTable->rowCount();
  for (int i = 0; i < numRows; i++) {
    // test if pair name valid
    QTableWidgetItem *item0 = m_uiForm.pairTable->item(i, 0);
    if (!item0)
      continue;
    if (item0->text().isEmpty())
      continue;

    // test if alpha is specified
    QTableWidgetItem *item3 = m_uiForm.pairTable->item(i, 3);
    if (!item3)
      continue;
    if (item3->text().isEmpty())
      continue;

    // test if content in combo boxes
    QComboBox *qwF =
        static_cast<QComboBox *>(m_uiForm.pairTable->cellWidget(i, 1));
    QComboBox *qwB =
        static_cast<QComboBox *>(m_uiForm.pairTable->cellWidget(i, 2));
    if (!qwF || !qwB)
      continue;
    if (qwF->count() < 2 || qwB->count() < 2)
      continue;

    pairToRow.push_back(i);
  }
  return pairToRow;
}
void HistoryElementRemoveWarp::undo()
{
    if(!m_scene)
        return;

    LvlScene* lvlScene;
    if(!(lvlScene = qobject_cast<LvlScene*>(m_scene)))
        return;

    lvlScene->m_data->doors.insert(m_removedDoor.meta.index, m_removedDoor);

    QComboBox* warplist = MainWinConnect::pMainWin->dock_LvlWarpProps->getWarpList();
    warplist->insertItem(m_removedDoor.meta.index, QString("%1: x%2y%3 <=> x%4y%5")
                         .arg(m_removedDoor.meta.array_id).arg(m_removedDoor.ix).arg(m_removedDoor.iy).arg(m_removedDoor.ox).arg(m_removedDoor.oy),
                         m_removedDoor.meta.array_id);
    if(warplist->count() > (int)m_removedDoor.meta.index)
    {
        warplist->setCurrentIndex( m_removedDoor.meta.index );
    }
    else
    {
        warplist->setCurrentIndex( warplist->count()-1 );
    }

    if(m_removedDoor.isSetOut){
        lvlScene->placeDoorExit(m_removedDoor);
    }
    if(m_removedDoor.isSetIn){
        lvlScene->placeDoorEnter(m_removedDoor);
    }


    MainWinConnect::pMainWin->dock_LvlWarpProps->setDoorData(-2);
}
void HistoryElementRemoveWarp::redo()
{
    if(!m_scene)
        return;

    LvlScene* lvlScene;
    if(!(lvlScene = qobject_cast<LvlScene*>(m_scene)))
        return;


    lvlScene->doorPointsSync( m_removedDoor.meta.array_id, true);

    for(int i=0;i<lvlScene->m_data->doors.size();i++)
    {
        if(lvlScene->m_data->doors[i].meta.array_id==m_removedDoor.meta.array_id)
        {
            lvlScene->m_data->doors.removeAt(i);
            break;
        }
    }

    QComboBox* warplist = MainWinConnect::pMainWin->dock_LvlWarpProps->getWarpList();
    for(int i = 0; i < warplist->count(); i++){
        if((unsigned int)warplist->itemData(i).toInt() == m_removedDoor.meta.array_id){
            warplist->removeItem(i);
            break;
        }
    }

    if(warplist->count()<=0) MainWinConnect::pMainWin->dock_LvlWarpProps->setWarpRemoveButtonEnabled(false);

    MainWinConnect::pMainWin->dock_LvlWarpProps->setDoorData(-2);
}
void HistoryElementAddWarp::redo()
{
    if(!m_scene)
        return;

    LvlScene* lvlScene;
    if(!(lvlScene = qobject_cast<LvlScene*>(m_scene)))
        return;

    LevelDoor newDoor = FileFormats::CreateLvlWarp();
    newDoor.meta.array_id = m_array_id;
    newDoor.meta.index = m_doorindex;

    lvlScene->m_data->doors.insert(m_doorindex, newDoor);
    QComboBox* warplist = MainWinConnect::pMainWin->dock_LvlWarpProps->getWarpList();
    warplist->addItem(QString("%1: x%2y%3 <=> x%4y%5")
                      .arg(newDoor.meta.array_id).arg(newDoor.ix).arg(newDoor.iy).arg(newDoor.ox).arg(newDoor.oy),
                      newDoor.meta.array_id);
    if(warplist->count() < m_listindex)
    {
        warplist->setCurrentIndex( m_listindex );
    }
    else
    {
        warplist->setCurrentIndex( warplist->count()-1 );
    }

    MainWinConnect::pMainWin->dock_LvlWarpProps->setWarpRemoveButtonEnabled(true);

    MainWinConnect::pMainWin->dock_LvlWarpProps->setDoorData(-2);

}
Example #6
0
/**
 * create 'map' relating pair number to row number in pair table
 *
 * @param m_uiForm :: The UI form
 * @param pairToRow :: The 'map' returned
 */
void whichPairToWhichRow(const Ui::MuonAnalysis& m_uiForm, std::vector<int>& pairToRow)
{
  pairToRow.clear();

  int numRows = m_uiForm.pairTable->rowCount();
  for (int i = 0; i < numRows; i++)
  {
    // test if pair name valid
    QTableWidgetItem *item0 = m_uiForm.pairTable->item(i,0);
    if (!item0)
      continue;
    if ( item0->text().isEmpty() )
      continue;

    // test if alpha is specified
    QTableWidgetItem *item3 = m_uiForm.pairTable->item(i,3);
    if (!item3)
      continue;
    if ( item3->text().isEmpty() )
      continue;

    // test if content in combo boxes
    QComboBox* qwF = static_cast<QComboBox*>(m_uiForm.pairTable->cellWidget(i,1));
    QComboBox* qwB = static_cast<QComboBox*>(m_uiForm.pairTable->cellWidget(i,2));
    if (!qwF || !qwB)
      continue;
    if ( qwF->count() < 2 || qwB->count() < 2 )
      continue;

    pairToRow.push_back(i);
  }
}
Example #7
0
void PopupMenuControl::update (int pId)
{
  uicontrol::properties& up = properties<uicontrol> ();
  QComboBox* box = qWidget<QComboBox> ();

  switch (pId)
    {
    case uicontrol::properties::ID_STRING:
      m_blockUpdate = true;
	{
	  int oldCurrent = box->currentIndex ();

	  box->clear ();
	  box->addItems (Utils::fromStdString
			 (up.get_string_string ()).split ('|'));
	  if (box->count() > 0
	      && oldCurrent >= 0
	      && oldCurrent < box->count ())
	    {
	      box->setCurrentIndex (oldCurrent);
	    }
	  else
	    {
	      gh_manager::post_set (m_handle, "value",
				    octave_value (box->count () > 0
						  ? 1.0 : 0.0),
				    false);
	    }
	}
      m_blockUpdate = false;
      break;
    case uicontrol::properties::ID_VALUE:
	{
	  Matrix value = up.get_value ().matrix_value ();

	  if (value.numel () > 0)
	    {
	      int newIndex = int (value(0)) - 1;

	      if (newIndex >= 0 && newIndex < box->count ()
		  && newIndex != box->currentIndex ())
		{
		  box->setCurrentIndex (newIndex);
		}
	    }
	}
      break;
    default:
      BaseControl::update (pId);
      break;
    }
}
void MainWindow::filterTrainData(QString trainID, QString startingStation, QString terminalStation)
{
    //refresh
    for(int i = 0; i < trainTable->rowCount(); ++i)
        trainTable->showRow(i);
    //filter trainID
    for(int i = 0; i < trainTable->rowCount(); ++i)
    {
        if(!trainTable->item(i, 0)->text().contains(trainID))
            trainTable->hideRow(i);
    }
    //filter starting station
    for(int rowNum = 0; rowNum < trainTable->rowCount(); ++rowNum)
    {
        bool isFind = false;
        QComboBox *comboBox = (QComboBox*)trainTable->cellWidget(rowNum, 8);
        for(int i = 0 ; i < comboBox->count(); ++i)
        {
            if(comboBox->itemText(i).contains(startingStation))
            {
                comboBox->setCurrentIndex(i);
                isFind = true;
                break;
            }
        }
        if(isFind == false)
            trainTable->hideRow(rowNum);
    }

    //filter terminal station
    for(int rowNum = 0; rowNum < trainTable->rowCount(); ++rowNum)
    {
        bool isFind = false;
        QComboBox *comboBox = (QComboBox*)trainTable->cellWidget(rowNum, 8);
        int startingStationIndex = comboBox->currentIndex();
        for(int i = 0 ; i < comboBox->count(); ++i)
        {
            //terminal should be after startingStation
            if(comboBox->itemText(i).contains(terminalStation) && startingStationIndex < i)
            {
                isFind = true;
                break;
            }
        }
        if(isFind == false)
            trainTable->hideRow(rowNum);
    }
}
    foreach(sqlb::FieldPtr f, fields)
    {
        QTreeWidgetItem *tbitem = new QTreeWidgetItem(ui->treeWidget);
        tbitem->setFlags(tbitem->flags() | Qt::ItemIsEditable);
        tbitem->setText(kName, f->name());
        QComboBox* typeBox = new QComboBox(ui->treeWidget);
        typeBox->setProperty("column", f->name());
        typeBox->setEditable(false);
        typeBox->addItems(sqlb::Field::Datatypes);
        int index = typeBox->findText(f->type(), Qt::MatchExactly);
        if(index == -1)
        {
            // non standard named type
            typeBox->addItem(f->type());
            index = typeBox->count() - 1;
        }
        typeBox->setCurrentIndex(index);
        connect(typeBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateTypes()));
        ui->treeWidget->setItemWidget(tbitem, kType, typeBox);

        tbitem->setCheckState(kNotNull, f->notnull() ? Qt::Checked : Qt::Unchecked);
        tbitem->setCheckState(kPrimaryKey, f->primaryKey() ? Qt::Checked : Qt::Unchecked);
        tbitem->setCheckState(kAutoIncrement, f->autoIncrement() ? Qt::Checked : Qt::Unchecked);
        tbitem->setCheckState(kUnique, f->unique() ? Qt::Checked : Qt::Unchecked);
        tbitem->setText(kDefault, f->defaultValue());
        tbitem->setText(kCheck, f->check());
        ui->treeWidget->addTopLevelItem(tbitem);
    }
Example #10
0
void MainWindow::FillTableSoft(QTableWidget* table, const AvailableSoftWare::SoftWareMap& soft) {
    AvailableSoftWare::SoftWareMap::const_iterator iter;
    table->setRowCount(0);
    for (iter = soft.begin(); iter != soft.end(); ++iter) {
        const QString& name = iter.key();
        const SoftWare& config = iter.value();

        int i = table->rowCount();
        table->insertRow(i);
        table->setItem(i, COLUMN_NAME, new QTableWidgetItem(name));
        table->setItem(i, COLUMN_CUR_VER, new QTableWidgetItem(config.m_CurVersion));
        if (config.m_AvailableVersion.size() == 1) {
            table->setItem(i, COLUMN_NEW_VER, new QTableWidgetItem(*(config.m_AvailableVersion.begin())));
        } else {
            QComboBox* pComboBox = new QComboBox(table);
            connect(pComboBox,
                    SIGNAL(currentIndexChanged(QString)),
                    this,
                    SLOT(OnComboBoxValueChanged(QString)));

            QList<QString> versionsList = config.m_AvailableVersion.toList();
            qSort(versionsList);

            for (QList<QString>::const_iterator iter = versionsList.begin();
                 iter != versionsList.end();
                 ++iter) {
                pComboBox->addItem(*iter);
            }
            pComboBox->setCurrentIndex(pComboBox->count() - 1);
            table->setCellWidget(i, COLUMN_NEW_VER, pComboBox);
        }
    }
    table->resizeRowsToContents();
}
Example #11
0
bool Pad::collectExtraInfo(QWidget * parent, const QString & family, const QString & prop, const QString & value, bool swappingEnabled, QString & returnProp, QString & returnValue, QWidget * & returnWidget) 
{
	if (prop.compare("shape", Qt::CaseInsensitive) == 0) {
		returnWidget = setUpDimEntry(false, false, false, returnWidget);
        returnWidget->setEnabled(swappingEnabled);
		returnProp = tr("shape");
		return true;
	}

    if (!copperBlocker()) {
	    if (prop.compare("connect to", Qt::CaseInsensitive) == 0) {
		    QComboBox * comboBox = new QComboBox();
		    comboBox->setObjectName("infoViewComboBox");
		    comboBox->setEditable(false);
		    comboBox->setEnabled(swappingEnabled);
		    comboBox->addItem(tr("center"), "center");
		    comboBox->addItem(tr("north"), "north");
		    comboBox->addItem(tr("east"), "east");
		    comboBox->addItem(tr("south"), "south");
		    comboBox->addItem(tr("west"), "west");
		    QString connectAt = m_modelPart->localProp("connect").toString();
		    for (int i = 0; i < comboBox->count(); i++) {
			    if (comboBox->itemData(i).toString().compare(connectAt) == 0) {
				    comboBox->setCurrentIndex(i);
				    break;
			    }
		    }

		    connect(comboBox, SIGNAL(currentIndexChanged(const QString &)), this, SLOT(terminalPointEntry(const QString &)));

		    returnWidget = comboBox;
		    returnProp = tr("connect to");
		    return true;
	    }
    }
Example #12
0
void MainWindow::updateObjectComboBox()
{
    QComboBox *comboBox = ui->objectSelectorComboBox;

    int previousIndex = comboBox->currentIndex();
    int previousSize = comboBox->count();

    comboBox->clear();
    for(int i = 0; i < levelObjects.count(); i++)
    {
        comboBox->addItem(QString(levelObjects.at(i).value("type").toString() + " - " + levelObjects.at(i).value("name").toString()));
    }

    if(previousSize == comboBox->count())
        comboBox->setCurrentIndex(previousIndex);
}
Example #13
0
void InspectorBase::setValue(const InspectorItem& ii, QVariant val)
      {
      QWidget* w = ii.w;

      P_ID id  = ii.t;
      P_TYPE t = propertyType(id);
      if (t == T_POINT)
            val = val.toDouble() / inspector->element()->score()->spatium();

      if (qobject_cast<QDoubleSpinBox*>(w))
            static_cast<QDoubleSpinBox*>(w)->setValue(val.toDouble());
      else if (qobject_cast<QSpinBox*>(w))
            static_cast<QSpinBox*>(w)->setValue(val.toInt());
      else if (qobject_cast<QComboBox*>(w)) {
            int ival = val.toInt();
            QComboBox* cb = qobject_cast<QComboBox*>(w);
            if (cb->itemData(0).isValid()) {
                  for (int i = 0; i < cb->count(); ++i) {
                        if (cb->itemData(i).toInt() == ival) {
                              ival = i;
                              break;
                              }
                        }
                  }
            cb->setCurrentIndex(ival);
            }
      else if (qobject_cast<QCheckBox*>(w))
            static_cast<QCheckBox*>(w)->setChecked(val.toBool());
      else if (qobject_cast<QLineEdit*>(w))
            static_cast<QLineEdit*>(w)->setText(val.toString());
      else if (qobject_cast<Awl::ColorLabel*>(w))
            static_cast<Awl::ColorLabel*>(w)->setColor(val.value<QColor>());
      else
            qFatal("not supported widget %s", w->metaObject()->className());
      }
void MainWindow::sellTicketDialog()
{
    int rowNum = trainTable->currentRow();
    if(rowNum >= 0)
    {
        QString trainID_ = trainTable->item(rowNum, 0)->text();
        QString departureTime_ = trainTable->item(rowNum, 3)->text();
        QString price_ = trainTable->item(rowNum, 5)->text();
        QStringList routesWithSeats;
        QComboBox *comboBox = (QComboBox*)trainTable->cellWidget(rowNum, 8);
        for(int i = 0 ; i < comboBox->count(); ++i)
        {
            routesWithSeats << comboBox->itemText(i);
        }

        SellDialog *sellDialog = new SellDialog(this);
        sellDialog->setTicketData(trainID_, departureTime_, price_, routesWithSeats);
        connect(sellDialog, &SellDialog::buyTicket, this, &MainWindow::sellTicket);
        sellDialog->exec();
    }
    else
    {
        QMessageBox::warning(this, QString::fromLocal8Bit("购票失败"), QString::fromLocal8Bit("请选择要购买的车次"));
    }
}
void ComboDelegate::setEditorData(QWidget *editor,
                       const QModelIndex &index) const
{
    QComboBox *cmb = qobject_cast<QComboBox*>(editor);
    if (!cmb) {
        QItemDelegate::setEditorData(editor, index);
        return;
    }
    int i = 0;
    cmb->setCurrentIndex(0);
    for (i = 1; i < cmb->count(); i++) {
        if (index.data() == cmb->itemData(i, Qt::UserRole))
            break;
    }
    if (i < cmb->count())
        cmb->setCurrentIndex(i);
}
Example #16
0
void QgsSpatialQueryDialog::addCbLayer( bool isTarget, QgsVectorLayer* lyr )
{
  QVariant item = QVariant::fromValue(( void * )lyr );
  QComboBox * cmb = isTarget ? cbTargetLayer : cbReferenceLayer;
  int idNew = cmb->count();
  QIcon icon = getIconTypeGeometry( lyr->geometryType() );
  cmb->addItem( icon, lyr->name(), item );
  cmb->setItemData( idNew, QVariant( lyr->source() ), Qt::ToolTipRole );
} // void QgsSpatialQueryDialog::removeLayerCombobox(bool isTarget, QgsVectorLayer* lyr)
Example #17
0
QComboBox* LayoutManager::copyComboBox(QObject *obj) {
    QComboBox *oldComboBox = qobject_cast<QComboBox*>(obj);
    QComboBox *newComboBox = new QComboBox();

    for(int i=0;i<oldComboBox->count();i++) {
        newComboBox->addItem(oldComboBox->itemText(i),oldComboBox->itemData(i));
    }
    newComboBox->setObjectName(oldComboBox->objectName() + " " + QString::number(keyLayouts.size()));

    return newComboBox;
}
Example #18
0
void ItemHandlerCombobox::SetDataSource (const QString& prop, QAbstractItemModel *model, Util::XmlSettingsDialog *xsd)
{
    QComboBox *box = Propname2Combobox_ [prop];
    if (!box)
    {
        qWarning () << Q_FUNC_INFO
                    << "combobox for property"
                    << prop
                    << "not found";
        return;
    }

    box->setModel (model);

    const QVariant& data = xsd->GetValue (Propname2Item_ [prop]);
    int pos = box->findData (data);
    if (pos == -1)
    {
        QString text = data.toString ();
        if (!text.isNull ())
            pos = box->findText (text);
    }

    if (pos != -1)
        box->setCurrentIndex (pos);
    else
    {
        qWarning () << Q_FUNC_INFO
                    << box
                    << box->count ()
                    << box->currentIndex ()
                    << data
                    << "not found";

        if (box->count ())
            XSD_->GetManagerObject ()->setProperty (prop.toLatin1 (), GetObjectValue (box));
    }

    if (!data.toString ().isEmpty ())
        ChangedProperties_.remove (prop);
}
Example #19
0
void TaskItemDelegate::setEditorData(QWidget *editor,
                                       const QModelIndex &index) const
{
    const QString& value ( index.data().toString() );
    
    QComboBox *e = static_cast<QComboBox*>(editor);
    for(int i=0; i<e->count(); i++) {
        if (e->itemText(i) == value) {
            e->setCurrentIndex(i);
            break;
        }
    }
}
QComboBox * BoardSetupDialog::constructDimensionComboBox(int defaultDimension)
{
	QComboBox * returnValue = new QComboBox;

	for (int i = QUACKLE_MINIMUM_BOARD_SIZE; i <= QUACKLE_MAXIMUM_BOARD_SIZE; i++)
	{
		returnValue->addItem(QString::number(i));
		if (i == defaultDimension)
			returnValue->setCurrentIndex(returnValue->count() - 1);
	}

	return returnValue;
}
Example #21
0
void Setting::save(const QString& section, const QString& prefix, const QComboBox& cmb, bool all)
{
    QSettings& store = storage();

    store.beginGroup(section);

    QString tkey = prefix + SET_PFX_CMBTXT;

    QString tval = cmb.currentText().trimmed();
    if (!tval.isEmpty())
        store.setValue(tkey, tval);

    if (all)
    {
        QStringList keys, vals;

        keys = store.childKeys();
        qint32 n = keys.size();
        if (n > 0)
        {
            keys.sort();

            while (n--)
            {
                QString k = keys[n];
                if ((k!=tkey) && k.startsWith(prefix))
                {
                    QString v = store.value(k).toString().trimmed();
                    if (!v.isEmpty() && (-1 == cmb.findText(v)))
                        vals.prepend(v);

                    store.remove(k);
                }
            }
        }

        n = cmb.count();
        if (n > SET_MAX_CMBITM)
            n = SET_MAX_CMBITM;

        qint32 i = 0;
        for (i=0; i<n; ++i)
            store.setValue(prefix+QString::number(i), cmb.itemText(i));

        n = (vals.count() > SET_MAX_CMBITM) ? SET_MAX_CMBITM : vals.count();
        for (qint32 j=0; i<n; ++i,++j)
            store.setValue(prefix+QString::number(i), vals[j]);
    }

    store.endGroup();
}
Example #22
0
void InspectorBase::setValue(const InspectorItem& ii, QVariant val)
      {
      QWidget* w = ii.w;

      P_ID id  = ii.t;

      switch (propertyType(id)) {
            case P_TYPE::POINT:
            case P_TYPE::SP_REAL:
                  val = val.toDouble() / inspector->element()->score()->spatium();
                  break;
            case P_TYPE::TEMPO:
                  val = val.toDouble() * 60.0;
                  break;
            case P_TYPE::POINT_MM:
                  val = val.toDouble() / DPMM;
            case P_TYPE::SIZE_MM:
                  val = val.toDouble() / DPMM;
                  break;
            case P_TYPE::DIRECTION:
                  val = int(val.value<Direction>());
                  break;
            default:
                  break;
            }
      if (qobject_cast<QDoubleSpinBox*>(w))
            static_cast<QDoubleSpinBox*>(w)->setValue(val.toDouble());
      else if (qobject_cast<QSpinBox*>(w))
            static_cast<QSpinBox*>(w)->setValue(val.toInt());
      else if (qobject_cast<QComboBox*>(w)) {
            int ival = val.toInt();
            QComboBox* cb = qobject_cast<QComboBox*>(w);
            if (cb->itemData(0).isValid()) {
                  for (int i = 0; i < cb->count(); ++i) {
                        if (cb->itemData(i).toInt() == ival) {
                              ival = i;
                              break;
                              }
                        }
                  }
            cb->setCurrentIndex(ival);
            }
      else if (qobject_cast<QCheckBox*>(w))
            static_cast<QCheckBox*>(w)->setChecked(val.toBool());
      else if (qobject_cast<QLineEdit*>(w))
            static_cast<QLineEdit*>(w)->setText(val.toString());
      else if (qobject_cast<Awl::ColorLabel*>(w))
            static_cast<Awl::ColorLabel*>(w)->setColor(val.value<QColor>());
      else
            qFatal("not supported widget %s", w->metaObject()->className());
      }
void MainWindow::deleteRoute()
{
    if(this->visitorMode == true)
    {
        QMessageBox::warning(this, QString::fromLocal8Bit("失败"), QString::fromLocal8Bit("游客身份无法删除车次"));
        return;
    }
    int rowNum = trainTable->currentRow();
    if(rowNum >= 0)
    {
        QComboBox *comboBox = (QComboBox*)trainTable->cellWidget(rowNum, 8);
        for(int i = 0; i < comboBox->count(); ++i)
        {
            QStringList routesWithSeats = comboBox->itemText(i).split(QString(" "), QString::SkipEmptyParts);
            if(routesWithSeats.size() < 2)
                qDebug() << "error in deleteRoute()";
            if(routesWithSeats[1] != trainTable->item(rowNum, 6)->text() && i != comboBox->count() - 1)
            {
                QMessageBox::warning(this, QString::fromLocal8Bit("删除失败"), QString::fromLocal8Bit("该车次已售票,不可删除"));
                return;
            }
        }

        if(QMessageBox::Yes == QMessageBox::question(this,QString::fromLocal8Bit("删除确认"),QString::fromLocal8Bit("你确定要删除%1车次列车吗?").arg(trainTable->item(rowNum, 0)->text())))
        {
            trainRoutes.deleteRoute(trainTable->item(rowNum, 0)->text(),
                                    trainTable->item(rowNum, 3)->text());
            //trainRoutes.refreshTrainInfo(trainTable);
            trainTable->removeRow(rowNum);  //much fater
        }
        else
            return;
    }
    else
    {
        QMessageBox::warning(this, QString::fromLocal8Bit("删除失败"), QString::fromLocal8Bit("请选择要删除的车次"));
    }
}
Example #24
0
LoadWindow::LoadWindow(QWidget *parent, const QStringList &tierList, const QString &name) :
    QDialog(parent),
    ui(new Ui::LoadWindow)
{
    ui->setupUi(this);

    holder.load();

    LoadLine *array[] = {ui->line1, ui->line2, ui->line3, ui->line4, ui->line5, ui->line6};
    memcpy(lines, array, sizeof(array));

    lines[0]->setUi(ui->name1, ui->gen1, ui->tier1, ui->browser1, tierList);
    lines[1]->setUi(ui->name2, ui->gen2, ui->tier2, ui->browser2, tierList);
    lines[2]->setUi(ui->name3, ui->gen3, ui->tier3, ui->browser3, tierList);
    lines[3]->setUi(ui->name4, ui->gen4, ui->tier4, ui->browser4, tierList);
    lines[4]->setUi(ui->name5, ui->gen5, ui->tier5, ui->browser5, tierList);
    lines[5]->setUi(ui->name6, ui->gen6, ui->tier6, ui->browser6, tierList);

    for (int i = 0; i < 6; i++) {
        if (i >= holder.count()) {
            lines[i]->setChecked(false);
        } else {
            lines[i]->setTeam(holder.team(i));
            lines[i]->setChecked(true);
        }
    }

    /* Hide profile & color from TeamBuilder, since there's a few bugs and you can edit it all in TeamBuilder anyway... */
    if (name == "") {
        ui->profileList->hide();
        ui->colorButton->hide();
    }

    /* To reduce excessive code, this will make the color the same color as your current profile by default */
    on_profileList_currentIndexChanged(name);

    QSettings s;

    QStringList profiles = holder.profile().getProfileList(s.value("Profile/Path").toString());
    QComboBox *profileList = ui->profileList;
    profileList->blockSignals(true);
    profileList->addItems(profiles);
    profileList->blockSignals(false);
    for (int i = 0; i < profileList->count(); ++i) {
        if (profileList->itemText(i) == name)
            profileList->setCurrentIndex(i);
    }

    connect(this, SIGNAL(accepted()), SLOT(onAccept()));
}
void ImportCsvDialog::setQuoteChar(const QChar& c)
{
    QComboBox* combo = ui->comboQuote;
    int index = combo->findText(c);
    if(index == -1)
    {
        combo->setCurrentIndex(combo->count());
        ui->editCustomQuote->setText(c);
    }
    else
    {
        combo->setCurrentIndex(index);
    }
}
void ImportCsvDialog::setEncoding(const QString& sEnc)
{
    QComboBox* combo = ui->comboEncoding;
    int index = combo->findText(sEnc);
    if(index == -1)
    {
        combo->setCurrentIndex(combo->count());
        ui->editCustomEncoding->setText(sEnc);
    }
    else
    {
        combo->setCurrentIndex(index);
    }
}
Example #27
0
DofDialog::DofDialog(Graph* graph, Shape* shape, QWidget *parent) :
  QDialog(parent),
  m_graph(graph),
  m_shape(shape)
{
  m_ui.setupUi(this);

  setAttribute(Qt::WA_DeleteOnClose);
  connect(shape, SIGNAL(destroyed()), this, SLOT(close()));
  connect(this, SIGNAL(dofActivated(int)), shape, SLOT(setModeEditDof(int)));

  m_comboBoxes.clear();

  for (int i = 0; i < m_shape->dofCount(); ++i)
  {
    QComboBox* comboBox = new QComboBox(this);
    comboBox->addItem("None");

    DOF* dof = m_shape->dof(i);
    Attribute* currentAttribute = (dof == 0 ? 0 : dof->attribute());

    for (size_t j = 0; j < m_graph->getSizeAttributes(); ++j)
    {
      Attribute* attribute = m_graph->getAttribute(j);
      comboBox->addItem(attribute->name());
      if (currentAttribute == attribute)
      {
        comboBox->setCurrentIndex(comboBox->count()-1);
      }
    }

    m_ui.formLayout->addRow(m_shape->dofLabel(i), comboBox);

    m_comboBoxes.insert(i, comboBox);
    connect(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(attributeSelected(int)));
    comboBox->setFocusPolicy(Qt::StrongFocus);
    comboBox->installEventFilter(this);
  }
  m_ui.colorLabel->setText(m_shape->colorDOF()->label());
  m_ui.opacityLabel->setText(m_shape->opacityDOF()->label());

  m_colorChooser = new ColorChooser(m_ui.colorChooser, m_shape->colorDOF(), &m_shape->colorYValues(), ColorChooser::HueColor);
  m_ui.colorChooser->layout()->addWidget(m_colorChooser);
  connect(m_colorChooser, SIGNAL(activated()), this, SLOT(colorActivated()));

  m_opacityChooser = new ColorChooser(m_ui.opacityChooser, m_shape->opacityDOF(), &m_shape->opacityYValues(), ColorChooser::OpacityColor);
  m_ui.opacityChooser->layout()->addWidget(m_opacityChooser);
  connect(m_opacityChooser , SIGNAL(activated()), this, SLOT(opacityActivated()));
}
Example #28
0
int CComboBox::GetCount() const
{
	int res = 0;
	
	assert(m_hWnd);
	
	if (m_hWnd)
	{
        QComboBox *comboBox = (QComboBox *)m_hWnd;

        res = comboBox->count();
	}
	
	return res;
}
Example #29
0
QWidget* QUDefaultDelegate::createEditor(
		QWidget *parent,
		const QStyleOptionViewItem &/*option*/,
		const QModelIndex &/*index*/) const
{
	QComboBox *editor = new QComboBox(parent);

	editor->addItems(QUAudioTagTask::availableSpecialSources());
	for(int i = 0; i < editor->count(); i++)
		editor->setItemData(i, Qt::darkGray, Qt::ForegroundRole);

	editor->setEditable(true);

	return editor;
}
void ImportCsvDialog::setSeparatorChar(const QChar& c)
{
    QComboBox* combo = ui->comboSeparator;
    QString sText = c == '\t' ? QString("Tab") : QString(c);
    int index = combo->findText(sText);
    if(index == -1)
    {
        combo->setCurrentIndex(combo->count());
        ui->editCustomSeparator->setText(c);
    }
    else
    {
        combo->setCurrentIndex(index);
    }
}