RoboDK Plug-In Interface
Loading...
Searching...
No Matches
robodktools.cpp
1#include "robodktools.h"
2#include <QDebug>
3
4
5bool ItemValid(const Item item){
6 return item != nullptr;
7}
8
9
10
11QDockWidget* AddDockWidget(QMainWindow *mw, QWidget *widget, const QString &strtitle, Qt::DockWidgetAreas allowed, Qt::DockWidgetArea add_where, bool closable, bool delete_on_close){
12 QDockWidget *dockwidget = new QDockWidget(strtitle, mw);//"Robot properties view"
13 dockwidget->setObjectName(strtitle); // added on 2018-08-24
14
15 QDockWidget::DockWidgetFeatures features =
16 QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable;
17
18 if (closable) {
19 features.setFlag(QDockWidget::DockWidgetClosable);
20 }
21
22 dockwidget->setFeatures(features);
23 dockwidget->setWidget(widget);
24 if (delete_on_close){
25 dockwidget->setAttribute(Qt::WA_DeleteOnClose);
26 }
27 dockwidget->setAllowedAreas(allowed);
28 qDebug() << "Adding new docked window: " << strtitle; //<< add_where;
29 mw->addDockWidget(add_where, dockwidget);
30 if (add_where == Qt::NoDockWidgetArea){
31 dockwidget->setFloating(true);
32 dockwidget->show();
33 }
34 dockwidget->setVisible(true);
35 return dockwidget;
36}
37
38void string_2_doubles(const QString &str, double *values, int *size_inout, const QString &separator) {
39#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
40 QString::SplitBehavior behavior = QString::SkipEmptyParts;
41#else
42 Qt::SplitBehavior behavior = Qt::SkipEmptyParts;
43#endif
44
45 bool isok;
46 QString line;
47 QString strnum;
48 QRegularExpression rx(separator);
49 line = str.trimmed();
50 QStringList strfloats = line.split(rx, behavior);
51 *size_inout = qMin(strfloats.size(), *size_inout);
52 int countok = 0;
53 for (int i=0; i<strfloats.size(); i++){
54 strnum = strfloats.at(i);
55 strnum = strnum.trimmed();
56 double aux = strnum.toDouble(&isok);
57 if (isok){
58 values[countok] = aux;
59 countok = countok + 1;
60 }
61 if (countok >= *size_inout){
62 *size_inout = countok;
63 return;
64 }
65 }
66 *size_inout = countok;
67}
68
69QString doubles_2_string(const double *array, int size, int precision, const QString &separator){
70 QString txt;
71 for (int i=0; i<size-1; i++){
72 QString num_str = QString::number(array[i],'f',precision);
73 txt.append(num_str);
74 txt.append(separator);
75 }
76 QString num_str = QString::number(array[size-1],'f',precision);
77 txt.append(num_str);
78 return txt;
79}
80
81
The Item class represents an item in RoboDK station. An item can be a robot, a frame,...
Definition iitem.h:14