Beispiel #1
0
void UpdateDetector::showDialog()
{
    // if the version tag is set, there is a newer version.
    QString ver = QString::fromLatin1("%1.%2.%3")
            .arg(MIRALL_VERSION_MAJOR).arg(MIRALL_VERSION_MINOR).arg(MIRALL_VERSION_MICRO);
    QDialog *msgBox = new QDialog;

    QIcon info = msgBox->style()->standardIcon(QStyle::SP_MessageBoxInformation, 0, 0);
    int iconSize = msgBox->style()->pixelMetric(QStyle::PM_MessageBoxIconSize, 0, 0);

    msgBox->setWindowIcon(info);

    QVBoxLayout *layout = new QVBoxLayout(msgBox);
    QHBoxLayout *hlayout = new QHBoxLayout;
    layout->addLayout(hlayout);

    msgBox->setWindowTitle(tr("New Version Available"));

    QLabel *ico = new QLabel;
    ico->setFixedSize(iconSize, iconSize);
    ico->setPixmap(info.pixmap(iconSize));
    QLabel *lbl = new QLabel;
    QString txt = tr("<p>A new version of the %1 Client is available.</p>"
                     "<p><b>%2</b> is available for download. The installed version is %3.<p>")
            .arg(Theme::instance()->appNameGUI()).arg(ocClient.versionstring()).arg(ver);

    lbl->setText(txt);
    lbl->setTextFormat(Qt::RichText);
    lbl->setWordWrap(true);

    hlayout->addWidget(ico);
    hlayout->addWidget(lbl);

    QDialogButtonBox *bb = new QDialogButtonBox;
    QPushButton *skip = bb->addButton(tr("Skip update"), QDialogButtonBox::ResetRole);
    QPushButton *reject = bb->addButton(tr("Skip this time"), QDialogButtonBox::AcceptRole);
    QPushButton  *getupdate = bb->addButton(tr("Get update"), QDialogButtonBox::AcceptRole);

    connect(skip, SIGNAL(clicked()), msgBox, SLOT(reject()));
    connect(reject, SIGNAL(clicked()), msgBox, SLOT(reject()));
    connect(getupdate, SIGNAL(clicked()), msgBox, SLOT(accept()));

    connect(skip, SIGNAL(clicked()), SLOT(slotSetVersionSeen()));
    connect(getupdate, SIGNAL(clicked()), SLOT(slotOpenUpdateUrl()));

    layout->addWidget(bb);

    msgBox->open();
    msgBox->resize(400, msgBox->sizeHint().height());
}
Beispiel #2
0
static bool getConfig(QWidget *parent, sigen::interface::Options *options) {
  // http://vivi.dyndns.org/vivi/docs/Qt/layout.html
  QFormLayout *fLayout = new QFormLayout(parent);
  fLayout->setLabelAlignment(Qt::AlignRight);

  // http://doc.qt.io/qt-4.8/qlineedit.html
  QLineEdit *sxy_lineEdit = addDoubleEdit("1.0", parent);
  fLayout->addRow(QObject::tr("Scale XY"), sxy_lineEdit);

  QLineEdit *sz_lineEdit = addDoubleEdit("1.0", parent);
  fLayout->addRow(QObject::tr("Scale Z"), sz_lineEdit);

  QCheckBox *interp_checkbox = new QCheckBox("Interpolation", parent);
  interp_checkbox->setCheckState(Qt::Checked);
  fLayout->addRow("", interp_checkbox);

  QLineEdit *vt_lineEdit = addIntEdit("0", parent);
  fLayout->addRow(QObject::tr("Interpolation VT"), vt_lineEdit);

  QLineEdit *dt_lineEdit = addDoubleEdit("0.0", parent);
  fLayout->addRow(QObject::tr("Interpolation DT"), dt_lineEdit);

  // http://www.qtforum.org/article/2430/qcheckbox.html
  QObject::connect(interp_checkbox, SIGNAL(toggled(bool)), vt_lineEdit, SLOT(setEnabled(bool)));
  QObject::connect(interp_checkbox, SIGNAL(toggled(bool)), dt_lineEdit, SLOT(setEnabled(bool)));

  QCheckBox *smoothing_checkbox = new QCheckBox("Smoothing", parent);
  smoothing_checkbox->setCheckState(Qt::Checked);
  fLayout->addRow("", smoothing_checkbox);

  QLineEdit *sm_lineEdit = addIntEdit("0", parent);
  fLayout->addRow(QObject::tr("Smoothing Level"), sm_lineEdit);

  QObject::connect(smoothing_checkbox, SIGNAL(toggled(bool)), sm_lineEdit, SLOT(setEnabled(bool)));

  QCheckBox *clipping_checkbox = new QCheckBox("Clipping", parent);
  clipping_checkbox->setCheckState(Qt::Checked);
  fLayout->addRow("", clipping_checkbox);

  QLineEdit *cl_lineEdit = addIntEdit("0", parent);
  fLayout->addRow(QObject::tr("Clipping Level"), cl_lineEdit);

  QObject::connect(clipping_checkbox, SIGNAL(toggled(bool)), cl_lineEdit, SLOT(setEnabled(bool)));

  QDialogButtonBox *buttonBox = new QDialogButtonBox(
      QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
      Qt::Horizontal,
      parent);

  QVBoxLayout *vLayout = new QVBoxLayout(parent);
  vLayout->addLayout(fLayout);
  vLayout->addWidget(buttonBox);

  QDialog *dialog = new QDialog(parent);
  dialog->setWindowTitle("SIGEN");
  dialog->setLayout(vLayout);
  dialog->setFixedSize(dialog->sizeHint());

  QObject::connect(buttonBox, SIGNAL(accepted()), dialog, SLOT(accept()));
  QObject::connect(buttonBox, SIGNAL(rejected()), dialog, SLOT(reject()));

  bool retval;
  switch (dialog->exec()) {
  case QDialog::Accepted:
    retval = true;
    break;
  case QDialog::Rejected:
    retval = false;
    break;
  default:
    assert(false);
    break;
  }

  // v3d_msg(vt_lineEdit->text() + "/" + dt_lineEdit->text() + "/" + sm_lineEdit->text() + "/" + cl_lineEdit->text(), true);

  if (retval) {
    options->scale_xy = sxy_lineEdit->text().toDouble();
    options->scale_z = sz_lineEdit->text().toDouble();

    options->enable_interpolation = interp_checkbox->checkState() == Qt::Checked;
    options->volume_threshold = vt_lineEdit->text().toInt();
    options->distance_threshold = dt_lineEdit->text().toDouble();

    options->enable_smoothing = smoothing_checkbox->checkState() == Qt::Checked;
    options->smoothing_level = sm_lineEdit->text().toInt();

    options->enable_clipping = clipping_checkbox->checkState() == Qt::Checked;
    options->clipping_level = cl_lineEdit->text().toInt();
  }

  return retval;
}