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

Method saveMenu

src/frontend/TemplateHandler.cpp:291–328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

289}
290
291void TemplateHandler::saveMenu() {
292 QMenu menu(this);
293 menu.addSection(i18n("Save As Template"));
294
295 auto list = QDir(m_dirName + m_className).entryList();
296 list.removeAll(QLatin1String("."));
297 list.removeAll(QLatin1String(".."));
298 for (int i = 0; i < list.size(); ++i) {
299 QFileInfo fileinfo(list.at(i));
300 auto* action = menu.addAction(QIcon::fromTheme(QLatin1String("document-edit")), fileinfo.fileName());
301 action->setData(fileinfo.fileName());
302 }
303 connect(&menu, &QMenu::triggered, this, &TemplateHandler::saveMenuSelected);
304
305 // add editable action
306 auto* widgetAction = new QWidgetAction(this);
307 auto* frame = new QFrame(this);
308 auto* layout = new QHBoxLayout(frame);
309
310 auto* label = new QLabel(i18n("New:"), frame);
311 layout->addWidget(label);
312
313 auto* leFilename = new QLineEdit(QString(), frame);
314 layout->addWidget(leFilename);
315 connect(leFilename, &QLineEdit::returnPressed, this, [=]() {
316 saveNewSelected(leFilename->text());
317 });
318 connect(leFilename, &QLineEdit::returnPressed, &menu, &QMenu::close);
319
320 widgetAction->setDefaultWidget(frame);
321 if (menu.actions().size() > 1)
322 menu.addSeparator();
323 menu.addAction(widgetAction);
324 leFilename->setFocus();
325
326 QPoint pos(-menu.sizeHint().width() + m_tbSave->width(), -menu.sizeHint().height());
327 menu.exec(m_tbSave->mapToGlobal(pos));
328}
329
330/*!
331 * Is called when the current properties are going to be saved as a new template.

Callers

nothing calls this directly

Calls 12

removeAllMethod · 0.80
addSeparatorMethod · 0.80
heightMethod · 0.80
execMethod · 0.80
QStringClass · 0.50
sizeMethod · 0.45
fileNameMethod · 0.45
setDataMethod · 0.45
textMethod · 0.45
setFocusMethod · 0.45
widthMethod · 0.45
sizeHintMethod · 0.45

Tested by

no test coverage detected