diff --git a/src/dialogs/choosefiledialog.h b/src/dialogs/choosefiledialog.h --- a/src/dialogs/choosefiledialog.h +++ b/src/dialogs/choosefiledialog.h @@ -28,7 +28,7 @@ public: ChooseFileDialog(QWidget *parent = nullptr, QList files = QList()); - virtual ~ChooseFileDialog() {} + ~ChooseFileDialog() = default; const QUrl choosenFile(); private: diff --git a/src/dialogs/choosefiledialog.cpp b/src/dialogs/choosefiledialog.cpp --- a/src/dialogs/choosefiledialog.cpp +++ b/src/dialogs/choosefiledialog.cpp @@ -26,24 +26,25 @@ QDialog(parent) { const int padding = 30; - auto listWigdet = new QListWidget(); - listWigdet->setMinimumWidth(fontMetrics().height() / 2 * padding); + auto listWidget = new QListWidget(this); + listWidget->setMinimumWidth(fontMetrics().height() / 2 * padding); foreach (const auto &url, files) { - listWigdet->addItem(url.toLocalFile()); + listWidget->addItem(url.toLocalFile()); } - connect(listWigdet, &QListWidget::currentRowChanged, this, [this, &files](const int t) { + listWidget->setCurrentRow(0); + connect(listWidget, &QListWidget::currentRowChanged, this, [this, &files](const int t) { m_choosen_file = files.at(t); }); - auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); connect(buttonBox, &QDialogButtonBox::accepted, this, &ChooseFileDialog::accept); connect(buttonBox, &QDialogButtonBox::rejected, this, &ChooseFileDialog::reject); auto layout = new QVBoxLayout; - auto label = new QLabel(i18n("Choose a file to print:")); + auto label = new QLabel(i18n("Choose a file to print:"), this); layout->addWidget(label); - layout->addWidget(listWigdet); + layout->addWidget(listWidget); layout->addWidget(buttonBox); setLayout(layout); } diff --git a/src/dialogs/profilesdialog.cpp b/src/dialogs/profilesdialog.cpp --- a/src/dialogs/profilesdialog.cpp +++ b/src/dialogs/profilesdialog.cpp @@ -184,7 +184,7 @@ //Baud ui->baudCB->setCurrentText(m_settings.value(QStringLiteral("bps"), QStringLiteral("115200")).toString()); ui->firmwareCB->setCurrentText(m_settings.value(QStringLiteral("firmware"), QStringLiteral("Auto-Detect")).toString()); - ui->postPauseLE->setText(m_settings.value(QStringLiteral("postPause"), QStringLiteral("")).toString()); + ui->postPauseLE->setText(m_settings.value(QStringLiteral("postPause"), QString()).toString()); m_settings.endGroup(); m_settings.endGroup(); setModified(false); @@ -220,10 +220,11 @@ QStringList firmwares; QStringList paths = AtCoreDirectories::pluginDir; //Add our runtime paths - paths.prepend(qApp->applicationDirPath() + QStringLiteral("/../Plugins/AtCore")); - paths.prepend(qApp->applicationDirPath() + QStringLiteral("/AtCore")); - paths.prepend(qApp->applicationDirPath() + QStringLiteral("/plugins")); - for (const QString &path : paths) { + const QString &path(qApp->applicationDirPath()); + paths.prepend(path + QStringLiteral("/../Plugins/AtCore")); + paths.prepend(path + QStringLiteral("/AtCore")); + paths.prepend(path + QStringLiteral("/plugins")); + for (const QString &path : qAsConst(paths)) { firmwares = firmwaresInPath(path); if (!firmwares.isEmpty()) { //use path where plugins were detected. diff --git a/src/main.cpp b/src/main.cpp --- a/src/main.cpp +++ b/src/main.cpp @@ -65,8 +65,8 @@ aboutData.setOtherText(i18n("Using AtCore:%1", QString(ATCORE_VERSION_STRING))); KAboutData::setApplicationData(aboutData); - MainWindow *m = new MainWindow(); - m->setWindowIcon(QIcon(":/icon/atelier")); - m->show(); + auto mainWindow = new MainWindow(); + mainWindow->setWindowIcon(QIcon(":/icon/atelier")); + mainWindow->show(); return app.exec(); } diff --git a/src/mainwindow.h b/src/mainwindow.h --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -59,13 +59,13 @@ void dropEvent(QDropEvent *event); private: - GCodeEditorWidget *m_gcodeEditor; - KTextEditor::View *m_currEditorView; + GCodeEditorWidget *m_gcodeEditor = nullptr; + KTextEditor::View *m_currEditorView = nullptr; int m_currInstance; LateralArea m_lateral; QList m_openFiles; QString m_theme; - QTabWidget *m_instances; + QTabWidget *m_instances = nullptr; bool askToClose(); bool askToSave(const QVector &fileList); void atCoreInstanceNameChange(const QString &name); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -35,7 +35,6 @@ MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent) - , m_currEditorView(nullptr) , m_currInstance(0) , m_theme(getTheme()) , m_instances(new QTabWidget(this)) @@ -70,7 +69,7 @@ bool closePrompt = false; for (int i = 0; i < m_instances->count(); i++) { - AtCoreInstanceWidget *instance = qobject_cast(m_instances->widget(i)); + auto instance = qobject_cast(m_instances->widget(i)); if (instance->isPrinting()) { closePrompt = true; break; @@ -117,11 +116,11 @@ // View: // Sidebar, Sidebar Controls, Printer Tabs. // Sidebar Controls and Printer Tabs can be resized, Sidebar can't. - auto splitter = new QSplitter(); + auto splitter = new QSplitter(this); splitter->addWidget(m_lateral.m_stack); splitter->addWidget(m_instances); - auto addTabBtn = new QToolButton(); + auto addTabBtn = new QToolButton(this); addTabBtn->setIconSize(QSize(fontMetrics().lineSpacing(), fontMetrics().lineSpacing())); addTabBtn->setIcon(QIcon::fromTheme("list-add", QIcon(QString(":/%1/addTab").arg(m_theme)))); addTabBtn->setToolTip(i18n("Create new instance")); @@ -133,7 +132,7 @@ centralLayout->addWidget(m_lateral.m_toolBar); centralLayout->addWidget(splitter); - auto *centralWidget = new QWidget(); + auto *centralWidget = new QWidget(this); centralWidget->setLayout(centralLayout); setCentralWidget(centralWidget); } @@ -146,7 +145,7 @@ newInstanceWidget->setFileCount(m_openFiles.size()); connect(this, &MainWindow::profilesChanged, newInstanceWidget, &AtCoreInstanceWidget::updateProfileData); connect(newInstanceWidget, &AtCoreInstanceWidget::requestProfileDialog, this, [this] { - std::unique_ptr pd(new ProfilesDialog); + std::unique_ptr pd(new ProfilesDialog(this)); pd->exec(); emit(profilesChanged()); }); @@ -183,7 +182,8 @@ ); if (result == QMessageBox::Cancel) { return; - } else if (result == QMessageBox::Save) { + } + if (result == QMessageBox::Save) { m_gcodeEditor->saveFile(file); } } @@ -207,8 +207,8 @@ // Move to LateralArea. void MainWindow::setupLateralArea() { - m_lateral.m_toolBar = new QWidget(); - m_lateral.m_stack = new QStackedWidget(); + m_lateral.m_toolBar = new QWidget(this); + m_lateral.m_stack = new QStackedWidget(this); auto buttonLayout = new QVBoxLayout(); auto setupButton = [this, buttonLayout](const QString & key, const QString & text, const QIcon & icon, QWidget * w) { diff --git a/src/widgets/3dview/axisgnomonentity.h b/src/widgets/3dview/axisgnomonentity.h --- a/src/widgets/3dview/axisgnomonentity.h +++ b/src/widgets/3dview/axisgnomonentity.h @@ -36,7 +36,7 @@ Q_PROPERTY(float scale READ scale WRITE setScale NOTIFY scaleChanged) public: explicit AxisGnomonEntity(Qt3DCore::QNode *parent = nullptr); - ~AxisGnomonEntity(); + ~AxisGnomonEntity() = default; QVector2D position() const; float scale() const; diff --git a/src/widgets/3dview/axisgnomonentity.cpp b/src/widgets/3dview/axisgnomonentity.cpp --- a/src/widgets/3dview/axisgnomonentity.cpp +++ b/src/widgets/3dview/axisgnomonentity.cpp @@ -85,10 +85,6 @@ addComponent(material); } -AxisGnomonEntity::~AxisGnomonEntity() -{ -} - QVector2D AxisGnomonEntity::position() const { return _position; diff --git a/src/widgets/3dview/bedproperties.h b/src/widgets/3dview/bedproperties.h --- a/src/widgets/3dview/bedproperties.h +++ b/src/widgets/3dview/bedproperties.h @@ -30,7 +30,7 @@ Q_PROPERTY(int depth READ depth NOTIFY depthChanged) public: explicit BedProperties(QObject *parent = nullptr); - ~BedProperties(); + ~BedProperties() = default; int width() const; int depth() const; diff --git a/src/widgets/3dview/bedproperties.cpp b/src/widgets/3dview/bedproperties.cpp --- a/src/widgets/3dview/bedproperties.cpp +++ b/src/widgets/3dview/bedproperties.cpp @@ -50,10 +50,6 @@ }); } -BedProperties::~BedProperties() -{ -} - int BedProperties::width() const { return m_width; diff --git a/src/widgets/3dview/cameracontroller.h b/src/widgets/3dview/cameracontroller.h --- a/src/widgets/3dview/cameracontroller.h +++ b/src/widgets/3dview/cameracontroller.h @@ -28,7 +28,7 @@ Q_OBJECT public: explicit CameraController(Qt3DCore::QNode *parent = nullptr); - ~CameraController(); + ~CameraController() = default; private: void moveCamera(const QAbstractCameraController::InputState &state, float dt) override; diff --git a/src/widgets/3dview/cameracontroller.cpp b/src/widgets/3dview/cameracontroller.cpp --- a/src/widgets/3dview/cameracontroller.cpp +++ b/src/widgets/3dview/cameracontroller.cpp @@ -42,10 +42,6 @@ { } -CameraController::~CameraController() -{ -} - void CameraController::moveCamera(const Qt3DExtras::QAbstractCameraController::InputState &state, float dt) { auto cam = camera(); diff --git a/src/widgets/3dview/fileloader.h b/src/widgets/3dview/fileloader.h --- a/src/widgets/3dview/fileloader.h +++ b/src/widgets/3dview/fileloader.h @@ -34,10 +34,17 @@ public: FileLoader(QString &fileName, QObject *parent = nullptr); - ~FileLoader(); + ~FileLoader() = default; private: QFile _file; + const static QString _commentChar; + const static QStringList _moveCommands; + const static QString _space; + const static QString _E; + const static QString _X; + const static QString _Y; + const static QString _Z; signals: void percentUpdate(QVariant var); diff --git a/src/widgets/3dview/fileloader.cpp b/src/widgets/3dview/fileloader.cpp --- a/src/widgets/3dview/fileloader.cpp +++ b/src/widgets/3dview/fileloader.cpp @@ -26,27 +26,20 @@ #include #include "fileloader.h" -namespace -{ -const static QString _commentChar = QStringLiteral(";"); -const static QStringList _moveCommands = {QStringLiteral("G0"), QStringLiteral("G1")}; -const static QString _space = QStringLiteral(" "); -const static QString _E = QStringLiteral("E"); -const static QString _X = QStringLiteral("X"); -const static QString _Y = QStringLiteral("Y"); -const static QString _Z = QStringLiteral("Z"); -} +const QString FileLoader::_commentChar = QStringLiteral(";"); +const QStringList FileLoader::_moveCommands = {QStringLiteral("G0"), QStringLiteral("G1")}; +const QString FileLoader::_space = QStringLiteral(" "); +const QString FileLoader::_E = QStringLiteral("E"); +const QString FileLoader::_X = QStringLiteral("X"); +const QString FileLoader::_Y = QStringLiteral("Y"); +const QString FileLoader::_Z = QStringLiteral("Z"); FileLoader::FileLoader(QString &fileName, QObject *parent) : QObject(parent) , _file(fileName) { } -FileLoader::~FileLoader() -{ -} - void FileLoader::run() { QVector pos; diff --git a/src/widgets/3dview/gcodeto4d.h b/src/widgets/3dview/gcodeto4d.h --- a/src/widgets/3dview/gcodeto4d.h +++ b/src/widgets/3dview/gcodeto4d.h @@ -28,7 +28,7 @@ public: explicit GcodeTo4D(QObject *parent = 0); - ~GcodeTo4D(); + ~GcodeTo4D() = default; public: void read(const QString &url); @@ -38,6 +38,6 @@ void posFinished(const QVector &pos); private: - QThread *_thread; - bool _wait; + QThread *_thread = nullptr; + bool _wait = false; }; diff --git a/src/widgets/3dview/gcodeto4d.cpp b/src/widgets/3dview/gcodeto4d.cpp --- a/src/widgets/3dview/gcodeto4d.cpp +++ b/src/widgets/3dview/gcodeto4d.cpp @@ -30,13 +30,9 @@ { } -GcodeTo4D::~GcodeTo4D() -{ -} - void GcodeTo4D::read(const QString &url) { - _thread = new QThread; + _thread = new QThread(this); QString path = QUrl(url).path(); auto fileLoader = new FileLoader(path); fileLoader->moveToThread(_thread); diff --git a/src/widgets/3dview/gridmesh.h b/src/widgets/3dview/gridmesh.h --- a/src/widgets/3dview/gridmesh.h +++ b/src/widgets/3dview/gridmesh.h @@ -33,7 +33,7 @@ Q_PROPERTY(QSize meshResolution READ meshResolution WRITE setMeshResolution NOTIFY meshResolutionChanged) public: explicit GridMesh(Qt3DCore::QNode *parent = nullptr); - ~GridMesh(); + ~GridMesh() = default; QSize meshResolution() const; diff --git a/src/widgets/3dview/gridmesh.cpp b/src/widgets/3dview/gridmesh.cpp --- a/src/widgets/3dview/gridmesh.cpp +++ b/src/widgets/3dview/gridmesh.cpp @@ -36,10 +36,6 @@ setMeshResolution(QSize(20, 20)); } -GridMesh::~GridMesh() -{ -} - QSize GridMesh::meshResolution() const { return m_meshResolution; diff --git a/src/widgets/3dview/linemesh.h b/src/widgets/3dview/linemesh.h --- a/src/widgets/3dview/linemesh.h +++ b/src/widgets/3dview/linemesh.h @@ -37,7 +37,7 @@ public: explicit LineMesh(Qt3DCore::QNode *parent = Q_NULLPTR); - ~LineMesh(); + ~LineMesh() = default; void read(const QString &path); Q_INVOKABLE void readAndRun(const QString &path); void posUpdate(const QVector &pos); diff --git a/src/widgets/3dview/linemesh.cpp b/src/widgets/3dview/linemesh.cpp --- a/src/widgets/3dview/linemesh.cpp +++ b/src/widgets/3dview/linemesh.cpp @@ -40,10 +40,6 @@ connect(&_gcode, &GcodeTo4D::posFinished, this, &LineMesh::posUpdate); } -LineMesh::~LineMesh() -{ -} - void LineMesh::readAndRun(const QString &path) { _gcode.read(path); diff --git a/src/widgets/3dview/linemeshgeometry.h b/src/widgets/3dview/linemeshgeometry.h --- a/src/widgets/3dview/linemeshgeometry.h +++ b/src/widgets/3dview/linemeshgeometry.h @@ -32,7 +32,7 @@ public: LineMeshGeometry(const QVector &vertices, Qt3DCore::QNode *parent = Q_NULLPTR); - ~LineMeshGeometry(); + ~LineMeshGeometry() = default; int vertexCount(); private: diff --git a/src/widgets/3dview/linemeshgeometry.cpp b/src/widgets/3dview/linemeshgeometry.cpp --- a/src/widgets/3dview/linemeshgeometry.cpp +++ b/src/widgets/3dview/linemeshgeometry.cpp @@ -43,10 +43,6 @@ addAttribute(_positionAttribute); } -LineMeshGeometry::~LineMeshGeometry() -{ -} - int LineMeshGeometry::vertexCount() { return _vertexBuffer->data().size() / static_cast(sizeof(QVector3D)); diff --git a/src/widgets/3dview/viewer3d.h b/src/widgets/3dview/viewer3d.h --- a/src/widgets/3dview/viewer3d.h +++ b/src/widgets/3dview/viewer3d.h @@ -39,9 +39,9 @@ public: explicit Viewer3D(QWidget *parent = nullptr); - ~Viewer3D() override; + ~Viewer3D() override = default; QSize bedSize(); - void drawModel(QString file); + void drawModel(const QString &file); private: LineMesh *_lineMesh; diff --git a/src/widgets/3dview/viewer3d.cpp b/src/widgets/3dview/viewer3d.cpp --- a/src/widgets/3dview/viewer3d.cpp +++ b/src/widgets/3dview/viewer3d.cpp @@ -58,27 +58,23 @@ _view->rootContext()->setContextProperty("viewer3d", this); _view->setResizeMode(QQuickView::SizeRootObjectToView); _view->setSource(QUrl(QStringLiteral("qrc:/viewer3d.qml"))); - QHBoxLayout *mainLayout = new QHBoxLayout; + auto mainLayout = new QHBoxLayout; mainLayout->addWidget(QWidget::createWindowContainer(_view)); QObject *item = _view->rootObject(); //Connect the drop pass from the QML part. connect(item, SIGNAL(droppedUrls(QVariant)), this, SLOT(dropCatch(QVariant))); this->setLayout(mainLayout); } -Viewer3D::~Viewer3D() -{ -} - void Viewer3D::dropCatch(const QVariant &var) { emit droppedUrls(var.value >()); } -void Viewer3D::drawModel(QString file) +void Viewer3D::drawModel(const QString &file) { QObject *object = _view->rootObject(); - QObject *fileName = object->findChild(QStringLiteral("fileName")); + auto fileName = object->findChild(QStringLiteral("fileName")); fileName->setProperty("text", QVariant(file)); } diff --git a/src/widgets/atcoreinstancewidget.h b/src/widgets/atcoreinstancewidget.h --- a/src/widgets/atcoreinstancewidget.h +++ b/src/widgets/atcoreinstancewidget.h @@ -57,29 +57,29 @@ private: AtCore m_core; - BedExtruderWidget *m_bedExtWidget; - CommandWidget *m_commandWidget; - int m_fileCount; - LogWidget *m_logWidget; - MovementWidget *m_movementWidget; - PlotWidget *m_plotWidget; - PrintWidget *m_printWidget; - SdWidget *m_sdWidget; - StatusWidget *m_statusWidget; - QAction *m_printAction; - QAction *m_stopAction; - QComboBox *m_comboPort; - QComboBox *m_comboProfile; + BedExtruderWidget *m_bedExtWidget = nullptr; + CommandWidget *m_commandWidget = nullptr; + int m_fileCount = 0; + LogWidget *m_logWidget = nullptr; + MovementWidget *m_movementWidget = nullptr; + PlotWidget *m_plotWidget = nullptr; + PrintWidget *m_printWidget = nullptr; + SdWidget *m_sdWidget = nullptr; + StatusWidget *m_statusWidget = nullptr; + QAction *m_printAction = nullptr; + QAction *m_stopAction = nullptr; + QComboBox *m_comboPort = nullptr; + QComboBox *m_comboProfile = nullptr; QMap m_profileData; - QPushButton *m_connectButton; + QPushButton *m_connectButton = nullptr; QSettings m_settings; QSize m_iconSize; QString m_theme; - QTabWidget *m_tabWidget; - QToolBar *m_connectToolBar; - QToolBar *m_toolBar; - QWidget *m_advancedTab; - QWidget *m_connectWidget; + QTabWidget *m_tabWidget = nullptr; + QToolBar *m_connectToolBar = nullptr; + QToolBar *m_toolBar = nullptr; + QWidget *m_advancedTab = nullptr; + QWidget *m_connectWidget = nullptr; QSize m_bedSize; void buildConnectionToolbar(); void buildToolbar(); diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp --- a/src/widgets/atcoreinstancewidget.cpp +++ b/src/widgets/atcoreinstancewidget.cpp @@ -25,46 +25,42 @@ AtCoreInstanceWidget::AtCoreInstanceWidget(QWidget *parent): QWidget(parent) - , m_fileCount(0) - , m_printAction(nullptr) - , m_stopAction(nullptr) - , m_toolBar(nullptr) , m_bedSize(200, 200) { m_theme = palette().text().color().value() >= QColor(Qt::lightGray).value() ? QString("dark") : QString("light") ; m_iconSize = QSize(fontMetrics().lineSpacing(), fontMetrics().lineSpacing()); - QHBoxLayout *HLayout = new QHBoxLayout; - m_bedExtWidget = new BedExtruderWidget; + auto HLayout = new QHBoxLayout; + m_bedExtWidget = new BedExtruderWidget(this); HLayout->addWidget(m_bedExtWidget); - m_movementWidget = new MovementWidget(false); + m_movementWidget = new MovementWidget(false, this); m_movementWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum); HLayout->addWidget(m_movementWidget); - QVBoxLayout *VLayout = new QVBoxLayout; + auto VLayout = new QVBoxLayout; VLayout->addLayout(HLayout); - m_plotWidget = new PlotWidget(); + m_plotWidget = new PlotWidget(this); VLayout->addWidget(m_plotWidget, 80); - QWidget *controlTab = new QWidget(); + auto controlTab = new QWidget(this); controlTab->setLayout(VLayout); //AdvancedTab VLayout = new QVBoxLayout; - m_printWidget = new PrintWidget(false); + m_printWidget = new PrintWidget(false, this); VLayout->addWidget(m_printWidget); - m_commandWidget = new CommandWidget; + m_commandWidget = new CommandWidget(this); VLayout->addWidget(m_commandWidget); - m_logWidget = new LogWidget(new QTemporaryFile(QDir::tempPath() + QStringLiteral("/Atelier_"))); + m_logWidget = new LogWidget(new QTemporaryFile(QDir::tempPath() + QStringLiteral("/Atelier_")), this); VLayout->addWidget(m_logWidget); - m_advancedTab = new QWidget; + m_advancedTab = new QWidget(this); m_advancedTab->setLayout(VLayout); - m_sdWidget = new SdWidget; + m_sdWidget = new SdWidget(this); VLayout = new QVBoxLayout(); buildToolbar(); @@ -76,13 +72,13 @@ VLayout->addLayout(HLayout); m_toolBar->setHidden(true); - m_tabWidget = new QTabWidget; + m_tabWidget = new QTabWidget(this); m_tabWidget->addTab(controlTab, i18n("Controls")); m_tabWidget->addTab(m_advancedTab, i18n("Advanced")); m_tabWidget->addTab(m_sdWidget, i18n("Sd Card")); VLayout->addWidget(m_tabWidget); - m_statusWidget = new StatusWidget(false); + m_statusWidget = new StatusWidget(false, this); m_statusWidget->showPrintArea(false); VLayout->addWidget(m_statusWidget); setLayout(VLayout); @@ -99,43 +95,41 @@ void AtCoreInstanceWidget::buildToolbar() { - m_toolBar = new QToolBar(); + m_toolBar = new QToolBar(this); m_toolBar->setIconSize(m_iconSize); m_toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - auto lb = new QLabel; + auto lb = new QLabel(this); QIcon icon = QIcon::fromTheme("go-home", QIcon(QString(":/%1/home").arg(m_theme))); lb->setPixmap(icon.pixmap(m_iconSize)); m_toolBar->addWidget(lb); - lb = new QLabel(i18n("Home:")); + lb = new QLabel(i18n("Home:"), this); m_toolBar->addWidget(lb); auto homeAll = new QAction(i18n("All")); connect(homeAll, &QAction::triggered, this, [this] { m_core.home(); }); m_toolBar->addAction(homeAll); - for (auto homes : std::map {{"X", AtCore::X}, {"Y", AtCore::Y}, {"Z", AtCore::Z}}) { - auto home = new QAction(homes.first); + for (const auto &homes : std::map {{"X", AtCore::X}, {"Y", AtCore::Y}, {"Z", AtCore::Z}}) { + auto home = new QAction(homes.first, this); connect(home, &QAction::triggered, this, [this, homes] { m_core.home(uchar(homes.second)); }); m_toolBar->addAction(home); } m_toolBar->addSeparator(); - m_printAction = new QAction(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay)), i18n("Print")); + m_printAction = new QAction(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay)), i18n("Print"), this); connect(m_printAction, &QAction::triggered, this, [this] { - if (m_core.state() == AtCore::BUSY) { m_logWidget->appendLog(i18n("Pause Print")); pausePrint(); return; } - if (m_core.state() == AtCore::IDLE) { print(); @@ -147,47 +141,47 @@ }); m_toolBar->addAction(m_printAction); - m_stopAction = new QAction(QIcon::fromTheme("media-playback-stop", QIcon(QString(":/%1/stop").arg(m_theme))), i18n("Stop")); + m_stopAction = new QAction(QIcon::fromTheme("media-playback-stop", QIcon(QStringLiteral(":/%1/stop").arg(m_theme))), i18n("Stop"), this); connect(m_stopAction, &QAction::triggered, this, &AtCoreInstanceWidget::stopPrint); connect(m_stopAction, &QAction::triggered, this, [this] { m_printAction->setText(i18n("Print")); - m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme)))); + m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QStringLiteral(":/%1/start").arg(m_theme)))); }); m_toolBar->addAction(m_stopAction); - auto disableMotorsAction = new QAction(style()->standardIcon(QStyle::SP_MediaStop), i18n("Disable Motors")); + auto disableMotorsAction = new QAction(style()->standardIcon(QStyle::SP_MediaStop), i18n("Disable Motors"), this); connect(disableMotorsAction, &QAction::triggered, this, &AtCoreInstanceWidget::disableMotors); m_toolBar->addAction(disableMotorsAction); togglePrintButtons(m_fileCount); } void AtCoreInstanceWidget::buildConnectionToolbar() { - m_connectToolBar = new QToolBar(); - m_comboPort = new QComboBox; + m_connectToolBar = new QToolBar(this); + m_comboPort = new QComboBox(this); m_comboPort->setEditable(true); - QLabel *deviceLabel = new QLabel(i18n("Device")); - QHBoxLayout *deviceLayout = new QHBoxLayout; + auto deviceLabel = new QLabel(i18n("Device"), this); + auto deviceLayout = new QHBoxLayout; deviceLayout->addWidget(deviceLabel); deviceLayout->addWidget(m_comboPort, 100); - m_comboProfile = new QComboBox; + m_comboProfile = new QComboBox(this); m_comboProfile->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - QHBoxLayout *profileLayout = new QHBoxLayout; - QLabel *profileLabel = new QLabel(i18n("Profile")); + auto profileLayout = new QHBoxLayout; + auto profileLabel = new QLabel(i18n("Profile"), this); profileLayout->addWidget(profileLabel); profileLayout->addWidget(m_comboProfile, 100); - QHBoxLayout *connectLayout = new QHBoxLayout; + auto connectLayout = new QHBoxLayout; connectLayout->addLayout(deviceLayout, 50); connectLayout->addLayout(profileLayout, 50); - m_connectWidget = new QWidget(); + m_connectWidget = new QWidget(this); m_connectWidget->setLayout(connectLayout); m_connectToolBar->addWidget(m_connectWidget); - m_connectButton = new QPushButton(QIcon::fromTheme("network-connect", QIcon(QString(":/%1/connect").arg(m_theme))), i18n("Connect")); + m_connectButton = new QPushButton(QIcon::fromTheme("network-connect", QIcon(QString(":/%1/connect").arg(m_theme))), i18n("Connect"), this); m_connectButton->setIconSize(m_iconSize); m_connectButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); connect(this, &AtCoreInstanceWidget::disableDisconnect, m_connectButton, &QPushButton::setDisabled); @@ -336,7 +330,8 @@ , i18n("No filename sent from calling method, please check and try again.") ); return; - } else if (!QFileInfo(fileName.toLocalFile()).isReadable()) { + } + if (!QFileInfo(fileName.toLocalFile()).isReadable()) { QMessageBox::critical( this , i18n("File not found") @@ -449,7 +444,6 @@ } break; default: m_logWidget->appendLog(i18n("Unknown AtCore State, %1", newState)); - qWarning("AtCore State not Recognized."); break; } m_statusWidget->setState(stateString); @@ -460,33 +454,31 @@ static QString msg; switch (sensorType) { case 0x00: // bed - msg = QString::fromLatin1("Bed Temperature "); + msg = QString::fromLatin1("Bed Temperature"); break; case 0x01: // bed target - msg = QString::fromLatin1("Bed Target Temperature "); + msg = QString::fromLatin1("Bed Target Temperature"); break; case 0x02: // extruder - msg = QString::fromLatin1("Extruder Temperature "); + msg = QString::fromLatin1("Extruder[%1] Temperature").arg(QString::number(number)); break; case 0x03: // extruder target - msg = QString::fromLatin1("Extruder Target Temperature "); + msg = QString::fromLatin1("Extruder[%1] Target Temperature").arg(QString::number(number)); break; case 0x04: // enclosure - msg = QString::fromLatin1("Enclosure Temperature "); + msg = QString::fromLatin1("Enclosure Temperature"); break; case 0x05: // enclosure target - msg = QString::fromLatin1("Enclosure Target Temperature "); + msg = QString::fromLatin1("Enclosure Target Temperature"); break; } - msg.append(QString::fromLatin1("[%1] : %2")); - msg = msg.arg(QString::number(number)) - .arg(QString::number(double(temp), 'f', 2)); + msg.append(QString::fromLatin1(": %1").arg(QString::number(double(temp), 'f', 2))); m_logWidget->appendLog(msg); } @@ -573,7 +565,7 @@ , {"bedTemp", m_settings.value(QStringLiteral("maximumTemperatureBed"), QStringLiteral("0"))} , {"hotendTemp", m_settings.value(QStringLiteral("maximumTemperatureExtruder"), QStringLiteral("0"))} , {"firmware", m_settings.value(QStringLiteral("firmware"), QStringLiteral("Auto-Detect"))} - , {"postPause", m_settings.value(QStringLiteral("postPause"), QStringLiteral(""))} + , {"postPause", m_settings.value(QStringLiteral("postPause"), QString())} , {"heatedBed", m_settings.value(QStringLiteral("heatedBed"), true)} , {"name", profile} , {"isCartesian", m_settings.value(QStringLiteral("isCartesian"), true)} diff --git a/src/widgets/bedextruderwidget.h b/src/widgets/bedextruderwidget.h --- a/src/widgets/bedextruderwidget.h +++ b/src/widgets/bedextruderwidget.h @@ -32,6 +32,7 @@ public: explicit BedExtruderWidget(QWidget *parent = nullptr); + ~BedExtruderWidget() = default; void setExtruderCount(int value); void setBedMaxTemperature(int value); void setExtruderMaxTemperature(int value); diff --git a/src/widgets/bedextruderwidget.cpp b/src/widgets/bedextruderwidget.cpp --- a/src/widgets/bedextruderwidget.cpp +++ b/src/widgets/bedextruderwidget.cpp @@ -35,7 +35,7 @@ m_extruderThermo->setScale(0, 250); m_extruderBox->setLayout(m_extrudersLayout); - auto *label = new QLabel(i18n("Active Extruder:")); + auto *label = new QLabel(i18n("Active Extruder:"), this); m_extrudersLayout->addWidget(label); auto *layout = new QHBoxLayout; @@ -48,12 +48,10 @@ setExtruderCount(1); connect(m_bedThermo, &ThermoWidget::targetTemperatureChanged, this, [this](int v) { - qDebug() << "Receiving the temperature change for bed"; emit bedTemperatureChanged(v, false); }); connect(m_extruderThermo, &ThermoWidget::targetTemperatureChanged, this, [this](int v) { - qDebug() << "Receiving the temperature changed for thermo"; emit extTemperatureChanged(v, currentExtruder(), false); }); } @@ -63,10 +61,12 @@ value > 1 ? m_extruderBox->setVisible(true) : m_extruderBox->setVisible(false); if (value == m_extruderCount) { return; - } else if (m_extruderCount < value) { + } + + if (m_extruderCount < value) { //loop for the new buttons for (int i = m_extruderCount; i < value; i++) { - auto *rb = new QRadioButton(QString::number(i + 1)); + auto *rb = new QRadioButton(QString::number(i + 1), this); m_extrudersLayout->addWidget(rb); extruderMap.insert(i, rb); } diff --git a/src/widgets/gcodeeditorwidget.h b/src/widgets/gcodeeditorwidget.h --- a/src/widgets/gcodeeditorwidget.h +++ b/src/widgets/gcodeeditorwidget.h @@ -30,14 +30,15 @@ Q_OBJECT public: explicit GCodeEditorWidget(QWidget *parent = nullptr); + ~GCodeEditorWidget() = default; void loadFile(const QUrl &file); QVector modifiedFiles(); bool saveFile(const QUrl &url); private: QMap urlDoc; QMap urlTab; - KTextEditor::ConfigInterface *m_interface; + KTextEditor::ConfigInterface *m_interface = nullptr; KTextEditor::Document *newDoc(const QUrl &file); KTextEditor::Editor *m_editor; KTextEditor::View *newView(KTextEditor::Document *doc); diff --git a/src/widgets/gcodeeditorwidget.cpp b/src/widgets/gcodeeditorwidget.cpp --- a/src/widgets/gcodeeditorwidget.cpp +++ b/src/widgets/gcodeeditorwidget.cpp @@ -25,12 +25,12 @@ GCodeEditorWidget::GCodeEditorWidget(QWidget *parent) : QWidget(parent) - , m_tabwidget(new QTabWidget()) + , m_tabwidget(new QTabWidget(this)) { setAcceptDrops(true); m_editor = KTextEditor::Editor::instance(); setupTabWidget(); - QVBoxLayout *layout = new QVBoxLayout(); + auto layout = new QVBoxLayout(); layout->addWidget(m_tabwidget); setLayout(layout); } diff --git a/src/widgets/thermowidget.h b/src/widgets/thermowidget.h --- a/src/widgets/thermowidget.h +++ b/src/widgets/thermowidget.h @@ -32,7 +32,8 @@ Q_OBJECT public: - ThermoWidget(QWidget *parent, QString name); + ThermoWidget(QWidget *parent, const QString &name); + ~ThermoWidget() = default; void drawNeedle(QPainter *painter, const QPointF ¢er, double radius, double dir, QPalette::ColorGroup colorGroup) const; diff --git a/src/widgets/thermowidget.cpp b/src/widgets/thermowidget.cpp --- a/src/widgets/thermowidget.cpp +++ b/src/widgets/thermowidget.cpp @@ -27,11 +27,11 @@ #include #include "thermowidget.h" -ThermoWidget::ThermoWidget(QWidget *parent, QString name) : +ThermoWidget::ThermoWidget(QWidget *parent, const QString &name) : QwtDial(parent) , m_targetTemperatureNeedle(new QwtDialSimpleNeedle(QwtDialSimpleNeedle::Arrow, false, Qt::red, Qt::darkRed)) , m_name(name) - , m_tempChangedTimer(new QTimer()) + , m_tempChangedTimer(new QTimer(this)) , m_currentTemperature(0) , m_targetTemperature(0) { @@ -42,7 +42,7 @@ setReadOnly(false); setFocusPolicy(Qt::StrongFocus); - m_cursorTimer = new QTimer(); + m_cursorTimer = new QTimer(this); connect(m_cursorTimer, &QTimer::timeout, this, [this] { m_paintCursor = !m_paintCursor; update(); diff --git a/src/widgets/videomonitorwidget.h b/src/widgets/videomonitorwidget.h --- a/src/widgets/videomonitorwidget.h +++ b/src/widgets/videomonitorwidget.h @@ -27,9 +27,10 @@ public: explicit VideoMonitorWidget(QWidget *parent = nullptr); + ~VideoMonitorWidget() = default; private: - QLabel *_errorlabel; + QLabel *_errorlabel = nullptr; QMediaPlayer _mediaplayer; void handleError(); }; diff --git a/src/widgets/videomonitorwidget.cpp b/src/widgets/videomonitorwidget.cpp --- a/src/widgets/videomonitorwidget.cpp +++ b/src/widgets/videomonitorwidget.cpp @@ -25,30 +25,30 @@ VideoMonitorWidget::VideoMonitorWidget(QWidget *parent) : QWidget(parent) - , _mediaplayer(nullptr, QMediaPlayer::StreamPlayback) + , _errorlabel(new QLabel(this)) + , _mediaplayer(this, QMediaPlayer::StreamPlayback) { auto _layout = new QGridLayout(); - auto _label = new QLabel(i18n("Source url:")); + auto _label = new QLabel(i18n("Source url:"), this); _layout->addWidget(_label, 0, 0); - auto _sourceCB = new QComboBox(); + auto _sourceCB = new QComboBox(this); _sourceCB->setEditable(true); _sourceCB->setToolTip(i18n("Valid Urls:\n\ http://www.example.com/stream.avi\n\ rtp://@:1234\n\ mms://mms.examples.com/stream.asx\n\ rtsp://server.example.org:8080/test.sdp")); _layout->addWidget(_sourceCB, 0, 1); - auto _playPB = new QPushButton(); + auto _playPB = new QPushButton(this); _playPB->setCheckable(true); _playPB->setIcon(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay))); _layout->addWidget(_playPB, 0, 2); - auto _videoWidget = new QVideoWidget(); + auto _videoWidget = new QVideoWidget(this); _layout->addWidget(_videoWidget, 1, 0, -1, -1); - _errorlabel = new QLabel; _layout->addWidget(_errorlabel, 2, 0, 0, -1); this->setLayout(_layout); @@ -77,8 +77,7 @@ } _videoWidget->setVisible(b); }); - - typedef void (QMediaPlayer::*ErrorSignal)(QMediaPlayer::Error); + using ErrorSignal = void (QMediaPlayer::*)(QMediaPlayer::Error); connect(&_mediaplayer, static_cast(&QMediaPlayer::error), this, &VideoMonitorWidget::handleError); } diff --git a/src/widgets/welcomewidget.h b/src/widgets/welcomewidget.h --- a/src/widgets/welcomewidget.h +++ b/src/widgets/welcomewidget.h @@ -36,7 +36,7 @@ public: WelcomeWidget(QWidget *parent = nullptr); - ~WelcomeWidget(); + ~WelcomeWidget() = default; private: QWidget *m_newsFeedWidget; @@ -46,4 +46,7 @@ void retrieveRssFeed(); void setNewsLayout(QLayout *newLayout); void setupRssFeed(); + static const QString m_telegramLink; + static const QString m_documentsLink; + static const QString m_linkClose; }; diff --git a/src/widgets/welcomewidget.cpp b/src/widgets/welcomewidget.cpp --- a/src/widgets/welcomewidget.cpp +++ b/src/widgets/welcomewidget.cpp @@ -1,6 +1,7 @@ /* Atelier KDE Printer Host for 3D Printing Copyright (C) <2018> Author: Lays Rodrigues - lays.rodrigues@kde.org + Chris Rizzitello - rizzitello@kde.org This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,73 +34,78 @@ #include "welcomewidget.h" #define POSTS_LIMIT 5 +const QString WelcomeWidget::m_telegramLink = QStringLiteral(R"()"); +const QString WelcomeWidget::m_documentsLink = QStringLiteral(R"()"); +const QString WelcomeWidget::m_linkClose = QStringLiteral(""); -WelcomeWidget::WelcomeWidget(QWidget *parent): QWidget(parent), m_newsFeedWidget(new QWidget) +WelcomeWidget::WelcomeWidget(QWidget *parent) + : QWidget(parent) + , m_newsFeedWidget(new QWidget(this)) { QFont appFont = font(); auto hlayout = new QHBoxLayout; auto layout = new QVBoxLayout; - auto label = new QLabel; + auto label = new QLabel(this); label->setText(i18n("Welcome to Atelier!")); appFont.setPointSize(font().pointSize() + 4); label->setFont(appFont); hlayout->addWidget(label); - label = new QLabel; + label = new QLabel(this); label->setPixmap(QPixmap(":/icon/logo")); label->setLayoutDirection(Qt::LayoutDirection::RightToLeft); hlayout->addWidget(label); layout->addItem(hlayout); - auto line = new QFrame; + auto line = new QFrame(this); line->setFrameShape(QFrame::HLine); layout->addWidget(line); appFont.setPointSize(font().pointSize() + 2); - label = new QLabel(i18n("Quick Connect Guide")); + label = new QLabel(i18n("Quick Connect Guide"), this); label->setFont(appFont); layout->addWidget(label); for (const QString &sentence : { i18n("1 - Create a Profile."), i18n("2 - Select the device."), i18n("3 - Select the profile and connect.") }) { - label = new QLabel(sentence); + label = new QLabel(sentence, this); layout->addWidget(label); } - label = new QLabel(i18n("Having a connection problem?")); + label = new QLabel(i18n("Having a connection problem?"), this); label->setFont(appFont); layout->addWidget(label); - label = new QLabel(i18n("See the info section of the Log for common problems.")); + label = new QLabel(i18n("See the info section of the Log for common problems."), this); layout->addWidget(label); - label = new QLabel(i18n("Check our Atelier Docs for more information.")); + label = new QLabel(i18n("Check our %1Atelier Docs%2 for more information.", m_documentsLink, m_linkClose), this); label->setOpenExternalLinks(true); layout->addWidget(label); - label = new QLabel(i18n("Check our last news!")); + label = new QLabel(i18n("Atelier news!"), this); label->setFont(appFont); layout->addWidget(label); retrieveRssFeed(); layout->addWidget(m_newsFeedWidget); - label = new QLabel(i18n("Get Involved")); + label = new QLabel(i18n("Get Involved"), this); label->setFont(appFont); layout->addWidget(label); - label = new QLabel(QString("") + i18n("Join our Telegram Group!") + QString("")); + label = new QLabel(i18n("Join our %1Telegram Group%2!", m_telegramLink, m_linkClose), this); label->setOpenExternalLinks(true); layout->addWidget(label); - label = new QLabel(i18n("You can also find us on Freenode IRC #kde-atelier")); + label = new QLabel(i18n("You can also find us on Freenode IRC #kde-atelier"), this); layout->addWidget(label); layout->addStretch(); - auto infoWidget = new QWidget(); + auto infoWidget = new QWidget(this); infoWidget->setLayout(layout); auto scrollArea = new QScrollArea(this); @@ -111,14 +117,9 @@ setLayout(layout); } -WelcomeWidget::~WelcomeWidget() -{ - -} - void WelcomeWidget::retrieveRssFeed() { - auto manager = new QNetworkAccessManager(); + auto manager = new QNetworkAccessManager(this); for (const QUrl &url : { QUrl("https://rizzitello.wordpress.com/category/atelier/feed/"), QUrl("https://laysrodriguesdev.wordpress.com/category/atelier/feed/") @@ -129,20 +130,19 @@ connect(manager, &QNetworkAccessManager::finished, this, [&](QNetworkReply * reply) { if (reply->error()) { return; - } else { - QDomDocument document; - if (document.setContent(reply->readAll())) { - parseRss(document); - } + } + QDomDocument document; + if (document.setContent(reply->readAll())) { + parseRss(document); } }); } } void WelcomeWidget::parseRss(const QDomDocument &document) { auto itemList = document.elementsByTagName("item"); - QRegularExpression dateRegex("(?\\d{2} \\w{3} \\d{4})"); + QRegularExpression dateRegex(QStringLiteral(R"((?\d{2} \w{3} \d{4}))")); for (int i = 0; i < itemList.count(); ++i) { auto node = itemList.at(i);