MCPcopy Create free account
hub / github.com/KDE/labplot / importTo

Method importTo

src/frontend/datasources/ImportDatasetDialog.cpp:89–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87}
88
89bool ImportDatasetDialog::importTo(QStatusBar* statusBar) const {
90 auto* progressBar = new QProgressBar();
91 progressBar->setRange(0, 100);
92
93 auto* spreadsheet = new Spreadsheet(i18n("Dataset%1", 1));
94 auto* datasetHandler = new DatasetHandler(spreadsheet);
95
96 int duration = 5000;
97 QTimer timer;
98 timer.setSingleShot(true);
99 QEventLoop loop;
100 connect(&timer, &QTimer::timeout, [&] {
101 disconnect(datasetHandler, &DatasetHandler::downloadCompleted, nullptr, nullptr);
102 disconnect(datasetHandler, &DatasetHandler::error, nullptr, nullptr);
103 const_cast<ImportDatasetDialog*>(this)->showErrorMessage(i18n("Failed to connect within %1 seconds", static_cast<float>(duration) / 1000));
104 loop.exit(static_cast<int>(Status::FAILURE));
105 });
106 connect(datasetHandler, &DatasetHandler::error, [&](const QString& message) {
107 const_cast<ImportDatasetDialog*>(this)->showErrorMessage(message);
108 loop.exit(static_cast<int>(Status::FAILURE));
109 });
110 connect(datasetHandler, &DatasetHandler::downloadCompleted, [&] {
111 m_mainWin->addAspectToProject(spreadsheet);
112 loop.exit(static_cast<int>(Status::SUCCESS));
113 });
114 connect(datasetHandler, &DatasetHandler::downloadProgress, progressBar, &QProgressBar::setValue);
115
116 statusBar->clearMessage();
117 statusBar->addWidget(progressBar, 1);
118
119 WAIT_CURSOR;
120 QApplication::processEvents(QEventLoop::AllEvents, 100);
121
122 timer.start(duration);
123 m_importDatasetWidget->import(datasetHandler);
124 int status = loop.exec();
125
126 bool success = status == static_cast<int>(Status::SUCCESS);
127 if (success) {
128 statusBar->showMessage(i18n("Dataset imported in %1 seconds.", static_cast<float>(duration - timer.remainingTime()) / 1000));
129 timer.stop();
130 } else
131 delete spreadsheet;
132
133 delete datasetHandler;
134
135 RESET_CURSOR;
136 statusBar->removeWidget(progressBar);
137 return success;
138}

Callers

nothing calls this directly

Calls 8

addAspectToProjectMethod · 0.80
importMethod · 0.80
execMethod · 0.80
showMessageMethod · 0.80
removeWidgetMethod · 0.80
setRangeMethod · 0.45
showErrorMessageMethod · 0.45
startMethod · 0.45

Tested by

no test coverage detected