BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
GUIHelpers Namespace Reference

Classes

class  Error
 

Functions

QString baseName (const QString &fileName)
 Returns base name of file. More...
 
QString createUuid ()
 
QString currentDateTime ()
 
QString fileDir (const QString &fileName)
 Returns file directory from the full file path. More...
 
QStringList fromStdStrings (const std::vector< std::string > &container)
 
QVector< double > fromStdVector (const std::vector< double > &data)
 
QString getBornAgainVersionString ()
 
QString getValidFileName (const QString &proposed_name)
 Returns valid file name to be saved on disk. More...
 
void information (const QString &title, const QString &text, const QString &detailedText)
 
void information (QWidget *parent, const QString &title, const QString &text, const QString &detailedText)
 
bool isVersionMatchMinimal (const QString &version, const QString &minimal_version)
 returns true if current BornAgain version match minimal required version More...
 
bool okToDelete (QWidget *parent, const QString &title, const QString &text, const QString &detailedText)
 
bool parseVersion (const QString &version, int &major_num, int &minor_num, int &patch_num)
 parses version string into 3 numbers, returns true in the case of success More...
 
bool question (QWidget *parent, const QString &title, const QString &text, const QString &detailedText, const QString &yesText, const QString &noText)
 
QString readTextFile (const QString &fileName)
 
int versionCode (const QString &version)
 
void warning (const QString &title, const QString &text, const QString &detailedText)
 
void warning (QWidget *parent, const QString &title, const QString &text, const QString &detailedText)
 

Function Documentation

◆ baseName()

QString GUIHelpers::baseName ( const QString &  fileName)

Returns base name of file.

Definition at line 204 of file GUIHelpers.cpp.

205 {
206  QFileInfo info(fileName);
207  return info.baseName();
208 }

Referenced by PyImportAssistant::exec().

◆ createUuid()

◆ currentDateTime()

◆ fileDir()

QString GUIHelpers::fileDir ( const QString &  fileName)

Returns file directory from the full file path.

Definition at line 193 of file GUIHelpers.cpp.

194 {
195  QFileInfo info(fileName);
196  if (info.exists()) {
197  return info.dir().path();
198  }
199  return "";
200 }

Referenced by RealDataSelectorWidget::importData(), and PyImportAssistant::saveImportDir().

◆ fromStdStrings()

QStringList GUIHelpers::fromStdStrings ( const std::vector< std::string > &  container)

Definition at line 233 of file GUIHelpers.cpp.

234 {
235  QStringList result;
236  for (std::string str : container) {
237  result.append(QString::fromStdString(str));
238  }
239  return result;
240 }

Referenced by MinimizerItemCatalog::algorithmDescriptions(), MinimizerItemCatalog::algorithmNames(), PyImportAssistant::getPySampleFunctionName(), and TransformFromDomain::setParticleDistributionItem().

◆ fromStdVector()

QVector< double > GUIHelpers::fromStdVector ( const std::vector< double > &  data)

Definition at line 225 of file GUIHelpers.cpp.

226 {
227  QVector<double> result;
228  result.reserve(int(data.size()));
229  std::copy(data.begin(), data.end(), std::back_inserter(result));
230  return result;
231 }

Referenced by Data1DViewItem::graphData(), DistributionWidget::plot_multiple_values(), SaveProjectionsAssistant::projectionsData(), ProjectionsPlot::setGraphFromItem(), FitObjectiveBuilder::update_fit_parameters(), FitSessionController::updateFitParameterValues(), and FitSessionController::updateLog().

◆ getBornAgainVersionString()

◆ getValidFileName()

QString GUIHelpers::getValidFileName ( const QString &  proposed_name)

Returns valid file name to be saved on disk.

This name is constructed from proposed_name by replacing all special characters with text representation \ backslash / slash " quote < lessthan

greaterthan

| pipe ? questionmark

Definition at line 144 of file GUIHelpers.cpp.

145 {
146  QString result = proposed_name;
147  for (auto it = invalidCharacterMap.begin(); it != invalidCharacterMap.end(); ++it) {
148  result.replace(it.key(), it.value());
149  }
150  return result;
151 }

◆ information() [1/2]

void GUIHelpers::information ( const QString &  title,
const QString &  text,
const QString &  detailedText 
)

Definition at line 69 of file GUIHelpers.cpp.

70 {
71  information(MainWindow::instance(), title, text, detailedText);
72 }
static MainWindow * instance()
Returns the one and only instance of this class.
Definition: mainwindow.cpp:129
void information(const QString &title, const QString &text, const QString &detailedText)
Definition: GUIHelpers.cpp:69

References information(), and MainWindow::instance().

Here is the call graph for this function:

◆ information() [2/2]

void GUIHelpers::information ( QWidget *  parent,
const QString &  title,
const QString &  text,
const QString &  detailedText 
)

Definition at line 54 of file GUIHelpers.cpp.

56 {
57  QScopedPointer<QMessageBox> messageBox(new QMessageBox(parent));
58  if (parent)
59  messageBox->setWindowModality(Qt::WindowModal);
60  messageBox->setWindowTitle(QString("%1 - %2").arg(QApplication::applicationName()).arg(title));
61  messageBox->setText(text);
62  if (!detailedText.isEmpty())
63  messageBox->setInformativeText(detailedText);
64  messageBox->setIcon(QMessageBox::Information);
65  messageBox->addButton(QMessageBox::Ok);
66  messageBox->exec();
67 }

Referenced by information(), SpecularDataImportWidget::onFormatSelectionChanged(), and PyImportAssistant::populateModels().

◆ isVersionMatchMinimal()

bool GUIHelpers::isVersionMatchMinimal ( const QString &  version,
const QString &  minimal_version 
)

returns true if current BornAgain version match minimal required version

Definition at line 187 of file GUIHelpers.cpp.

188 {
189  return versionCode(version) >= versionCode(minimal_version);
190 }
int versionCode(const QString &version)
Definition: GUIHelpers.cpp:173

References versionCode().

Referenced by ProjectDocument::readFrom().

Here is the call graph for this function:

◆ okToDelete()

bool GUIHelpers::okToDelete ( QWidget *  parent,
const QString &  title,
const QString &  text,
const QString &  detailedText 
)

Definition at line 112 of file GUIHelpers.cpp.

114 {
115  QScopedPointer<QMessageBox> messageBox(new QMessageBox(parent));
116  if (parent)
117  messageBox->setWindowModality(Qt::WindowModal);
118  messageBox->setIcon(QMessageBox::Question);
119  messageBox->setWindowTitle(QString("%1 - %2").arg(QApplication::applicationName()).arg(title));
120  messageBox->setText(text);
121  if (!detailedText.isEmpty())
122  messageBox->setInformativeText(detailedText);
123  QAbstractButton* deleteButton = messageBox->addButton("&Delete", QMessageBox::AcceptRole);
124  messageBox->addButton("Do &Not Delete", QMessageBox::RejectRole);
125  messageBox->setDefaultButton(qobject_cast<QPushButton*>(deleteButton));
126  messageBox->exec();
127  return messageBox->clickedButton() == deleteButton;
128 }

◆ parseVersion()

bool GUIHelpers::parseVersion ( const QString &  version,
int &  major_num,
int &  minor_num,
int &  patch_num 
)

parses version string into 3 numbers, returns true in the case of success

Definition at line 154 of file GUIHelpers.cpp.

155 {
156  major_num = minor_num = patch_num = 0;
157  bool success(true);
158  QStringList nums = version.split(".");
159  if (nums.size() != 3)
160  return false;
161 
162  bool ok(false);
163  major_num = nums.at(0).toInt(&ok);
164  success &= ok;
165  minor_num = nums.at(1).toInt(&ok);
166  success &= ok;
167  patch_num = nums.at(2).toInt(&ok);
168  success &= ok;
169 
170  return success;
171 }

Referenced by versionCode().

◆ question()

bool GUIHelpers::question ( QWidget *  parent,
const QString &  title,
const QString &  text,
const QString &  detailedText,
const QString &  yesText,
const QString &  noText 
)

Definition at line 94 of file GUIHelpers.cpp.

96 {
97  QScopedPointer<QMessageBox> messageBox(new QMessageBox(parent));
98  if (parent)
99  messageBox->setWindowModality(Qt::WindowModal);
100  messageBox->setWindowTitle(QString("%1 - %2").arg(QApplication::applicationName()).arg(title));
101  messageBox->setText(text);
102  if (!detailedText.isEmpty())
103  messageBox->setInformativeText(detailedText);
104  messageBox->setIcon(QMessageBox::Question);
105  QAbstractButton* yesButton = messageBox->addButton(yesText, QMessageBox::AcceptRole);
106  messageBox->addButton(noText, QMessageBox::RejectRole);
107  messageBox->setDefaultButton(qobject_cast<QPushButton*>(yesButton));
108  messageBox->exec();
109  return messageBox->clickedButton() == yesButton;
110 }

Referenced by ProjectManager::restoreProjectDialog(), and RealDataSelectorWidget::rotateCurrentItem().

◆ readTextFile()

QString GUIHelpers::readTextFile ( const QString &  fileName)

Definition at line 247 of file GUIHelpers.cpp.

248 {
249  QFile file(fileName);
250  if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
251  throw GUIHelpers::Error("PyImportAssistant::readFile() -> Error. Can't read file '"
252  + fileName + "'");
253  QTextStream in(&file);
254  return in.readAll();
255 }

◆ versionCode()

int GUIHelpers::versionCode ( const QString &  version)

Definition at line 173 of file GUIHelpers.cpp.

174 {
175  int result(-1);
176 
177  int ba_major(0), ba_minor(0), ba_patch(0);
178  if (!parseVersion(version, ba_major, ba_minor, ba_patch))
179  return result;
180 
181  result = ba_major * 10000 + ba_minor * 100 + ba_patch;
182 
183  return result;
184 }
bool parseVersion(const QString &version, int &major_num, int &minor_num, int &patch_num)
parses version string into 3 numbers, returns true in the case of success
Definition: GUIHelpers.cpp:154

References parseVersion().

Referenced by isVersionMatchMinimal(), and UpdateNotifier::replyFinished().

Here is the call graph for this function:

◆ warning() [1/2]

void GUIHelpers::warning ( const QString &  title,
const QString &  text,
const QString &  detailedText 
)

Definition at line 89 of file GUIHelpers.cpp.

90 {
91  warning(MainWindow::instance(), title, text, detailedText);
92 }
void warning(const QString &title, const QString &text, const QString &detailedText)
Definition: GUIHelpers.cpp:89

References MainWindow::instance(), and warning().

Here is the call graph for this function:

◆ warning() [2/2]

void GUIHelpers::warning ( QWidget *  parent,
const QString &  title,
const QString &  text,
const QString &  detailedText 
)

Definition at line 74 of file GUIHelpers.cpp.

76 {
77  QScopedPointer<QMessageBox> messageBox(new QMessageBox(parent));
78  if (parent)
79  messageBox->setWindowModality(Qt::WindowModal);
80  messageBox->setWindowTitle(QString("%1 - %2").arg(QApplication::applicationName()).arg(title));
81  messageBox->setText(text);
82  if (!detailedText.isEmpty())
83  messageBox->setInformativeText(detailedText);
84  messageBox->setIcon(QMessageBox::Warning);
85  messageBox->addButton(QMessageBox::Ok);
86  messageBox->exec();
87 }

Referenced by ModelView::ExternalPropertyEditor::buttonClicked(), LinkInstrumentManager::canLinkDataToInstrument(), MainWindow::closeEvent(), RealDataSelectorWidget::importData(), ImportDataUtils::ImportKnownData(), ImportDataUtils::ImportReflectometryData(), SimulationSetupAssistant::isValidSimulationSetup(), PyImportAssistant::readFile(), ProjectManager::riseProjectLoadFailedDialog(), RealSpaceCanvas::savePicture(), SavePlotAssistant::savePlot(), ProjectManager::saveProject(), PyImportAssistant::selectPySampleFunction(), and warning().