export bug fixed, UI updated
This commit is contained in:
parent
59b8ba8835
commit
330f0e3984
7 changed files with 211 additions and 159 deletions
|
@ -37,7 +37,7 @@ void ExportThread::run()
|
|||
{
|
||||
if (widget->isSelected())
|
||||
{
|
||||
if (profileMap[widget] == "SnapmaticWidget")
|
||||
if (widget->getWidgetType() == "SnapmaticWidget")
|
||||
{
|
||||
SnapmaticWidget *picWidget = (SnapmaticWidget*)widget;
|
||||
SnapmaticPicture *picture = picWidget->getPicture();
|
||||
|
@ -73,7 +73,7 @@ void ExportThread::run()
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (profileMap[widget] == "SavegameWidget")
|
||||
else if (widget->getWidgetType() == "SavegameWidget")
|
||||
{
|
||||
SavegameWidget *sgdWidget = (SavegameWidget*)widget;
|
||||
SavegameData *savegame = sgdWidget->getSavegame();
|
||||
|
|
|
@ -56,8 +56,8 @@ PictureDialog::PictureDialog(ProfileDatabase *profileDB, QWidget *parent) :
|
|||
|
||||
// Export menu
|
||||
exportMenu = new QMenu(this);
|
||||
exportMenu->addAction(tr("Export as &picture...", "Export as picture"), this, SLOT(exportSnapmaticPicture()));
|
||||
exportMenu->addAction(tr("Export for &import...", "Export for import"), this, SLOT(copySnapmaticPicture()));
|
||||
exportMenu->addAction(tr("Export as &JPG picture..."), this, SLOT(exportSnapmaticPicture()));
|
||||
exportMenu->addAction(tr("Export as >A Snapmatic..."), this, SLOT(copySnapmaticPicture()));
|
||||
ui->cmdExport->setMenu(exportMenu);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
<verstretch>1</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
|
@ -86,24 +86,54 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cmdExport">
|
||||
<property name="toolTip">
|
||||
<string>Export picture</string>
|
||||
<layout class="QVBoxLayout" name="vlButtons">
|
||||
<property name="rightMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Export</string>
|
||||
<property name="bottomMargin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cmdClose">
|
||||
<property name="toolTip">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
<item>
|
||||
<spacer name="vsButtons">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlButtons">
|
||||
<item>
|
||||
<widget class="QPushButton" name="cmdExport">
|
||||
<property name="toolTip">
|
||||
<string>Export picture</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Export</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cmdClose">
|
||||
<property name="toolTip">
|
||||
<string>Close</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Close</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
|
|
@ -310,7 +310,7 @@ fileDialogPreOpen:
|
|||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Snapmatic picture"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Failed to read Snapmatic picture"));
|
||||
picture->deleteLater();
|
||||
delete picture;
|
||||
goto fileDialogPreOpen;
|
||||
|
@ -325,7 +325,7 @@ fileDialogPreOpen:
|
|||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Failed to read Savegame file"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Failed to read Savegame file"));
|
||||
savegame->deleteLater();
|
||||
delete savegame;
|
||||
goto fileDialogPreOpen;
|
||||
|
@ -353,20 +353,20 @@ fileDialogPreOpen:
|
|||
picture->deleteLater();
|
||||
delete savegame;
|
||||
delete picture;
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Can't import %1 because of not valid file format").arg("\""+selectedFileName+"\""));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Can't import %1 because of not valid file format").arg("\""+selectedFileName+"\""));
|
||||
goto fileDialogPreOpen;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("No valid file is selected"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("No valid file is selected"));
|
||||
goto fileDialogPreOpen;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("No valid file is selected"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("No valid file is selected"));
|
||||
goto fileDialogPreOpen;
|
||||
}
|
||||
}
|
||||
|
@ -381,7 +381,7 @@ bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString
|
|||
QString picFileName = picFileInfo.fileName();
|
||||
if (picFileName.left(4) != "PGTA")
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Snapmatic picture because the file not begin with PGTA"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, file not begin with PGTA"));
|
||||
return false;
|
||||
}
|
||||
else if (QFile::copy(picPath, profileFolder + "/" + picFileName))
|
||||
|
@ -391,7 +391,7 @@ bool ProfileInterface::importSnapmaticPicture(SnapmaticPicture *picture, QString
|
|||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Snapmatic picture because the copy failed"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Failed to import the Snapmatic picture, can't copy the file into profile"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -427,13 +427,13 @@ bool ProfileInterface::importSavegameData(SavegameData *savegame, QString sgdPat
|
|||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Savegame file because the copy failed"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Failed to import the Savegame, can't copy the file into profile"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::warning(this, tr("Import copy"), tr("Failed to import copy of Savegame file because no free Savegame slot left"));
|
||||
QMessageBox::warning(this, tr("Import"), tr("Failed to import the Savegame, no Savegame slot is left"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -482,163 +482,182 @@ void ProfileInterface::deselectAllWidgets()
|
|||
|
||||
void ProfileInterface::exportSelected()
|
||||
{
|
||||
int exportCount = 0;
|
||||
int exportPictures = 0;
|
||||
int exportSavegames = 0;
|
||||
bool pictureCopyEnabled = false;
|
||||
bool pictureExportEnabled = false;
|
||||
|
||||
QString exportDirectory = QFileDialog::getExistingDirectory(this, tr("Export selected"), profileFolder);
|
||||
if (exportDirectory != "")
|
||||
if (selectedWidgts != 0)
|
||||
{
|
||||
foreach (ProfileWidget *widget, widgets.keys())
|
||||
int exportCount = 0;
|
||||
int exportPictures = 0;
|
||||
int exportSavegames = 0;
|
||||
bool pictureCopyEnabled = false;
|
||||
bool pictureExportEnabled = false;
|
||||
|
||||
QString exportDirectory = QFileDialog::getExistingDirectory(this, tr("Export selected"), profileFolder);
|
||||
if (exportDirectory != "")
|
||||
{
|
||||
if (widget->isSelected())
|
||||
foreach (ProfileWidget *widget, widgets.keys())
|
||||
{
|
||||
if (widget->getWidgetType() == "SnapmaticWidget")
|
||||
if (widget->isSelected())
|
||||
{
|
||||
exportPictures++;
|
||||
}
|
||||
else if (widget->getWidgetType() == "SavegameWidgets")
|
||||
{
|
||||
exportSavegames++;
|
||||
if (widget->getWidgetType() == "SnapmaticWidget")
|
||||
{
|
||||
exportPictures++;
|
||||
}
|
||||
else if (widget->getWidgetType() == "SavegameWidget")
|
||||
{
|
||||
exportSavegames++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (exportPictures != 0)
|
||||
{
|
||||
QInputDialog inputDialog;
|
||||
QStringList inputDialogItems;
|
||||
inputDialogItems << tr("Export and Copy pictures");
|
||||
inputDialogItems << tr("Export pictures");
|
||||
inputDialogItems << tr("Copy pictures");
|
||||
|
||||
bool itemSelected = false;
|
||||
QString selectedItem = inputDialog.getItem(this, tr("Export selected"), tr("How should we deal with the Snapmatic pictures?"), inputDialogItems, 0, false, &itemSelected, inputDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||
if (itemSelected)
|
||||
if (exportPictures != 0)
|
||||
{
|
||||
if (selectedItem == tr("Export and Copy pictures"))
|
||||
QInputDialog inputDialog;
|
||||
QStringList inputDialogItems;
|
||||
inputDialogItems << tr("JPG pictures and GTA Snapmatic");
|
||||
inputDialogItems << tr("JPG pictures only");
|
||||
inputDialogItems << tr("GTA Snapmatic only");
|
||||
|
||||
bool itemSelected = false;
|
||||
QString selectedItem = inputDialog.getItem(this, tr("Export selected"), tr("Export Snapmatic pictures\n\nJPG pictures make it possible to open the picture with a Image Viewer\nGTA Snapmatic make it possible to import the picture into the game\n\nExport as:"), inputDialogItems, 0, false, &itemSelected, inputDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||
if (itemSelected)
|
||||
{
|
||||
if (selectedItem == tr("JPG pictures and GTA Snapmatic"))
|
||||
{
|
||||
pictureExportEnabled = true;
|
||||
pictureCopyEnabled = true;
|
||||
}
|
||||
else if (selectedItem == tr("JPG pictures only"))
|
||||
{
|
||||
pictureExportEnabled = true;
|
||||
}
|
||||
else if (selectedItem == tr("GTA Snapmatic only"))
|
||||
{
|
||||
pictureCopyEnabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pictureExportEnabled = true;
|
||||
pictureCopyEnabled = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pictureExportEnabled = true;
|
||||
pictureCopyEnabled = true;
|
||||
}
|
||||
else if (selectedItem == tr("Export pictures"))
|
||||
{
|
||||
pictureExportEnabled = true;
|
||||
}
|
||||
else if (selectedItem == tr("Copy pictures"))
|
||||
{
|
||||
pictureCopyEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Counting the exports together
|
||||
exportCount = exportCount + exportSavegames;
|
||||
if (pictureExportEnabled && pictureCopyEnabled)
|
||||
{
|
||||
int exportPictures2 = exportPictures * 2;
|
||||
exportCount = exportCount + exportPictures2;
|
||||
}
|
||||
else
|
||||
{
|
||||
pictureExportEnabled = true;
|
||||
pictureCopyEnabled = true;
|
||||
exportCount = exportCount + exportPictures;
|
||||
}
|
||||
|
||||
QProgressDialog pbDialog(this);
|
||||
pbDialog.setWindowFlags(pbDialog.windowFlags()^Qt::WindowContextHelpButtonHint^Qt::WindowCloseButtonHint);
|
||||
pbDialog.setWindowTitle(tr("Export selected..."));
|
||||
pbDialog.setLabelText(tr("Initializing export..."));
|
||||
pbDialog.setRange(0, exportCount);
|
||||
|
||||
QList<QPushButton*> pbBtn = pbDialog.findChildren<QPushButton*>();
|
||||
pbBtn.at(0)->setDisabled(true);
|
||||
|
||||
QList<QProgressBar*> pbBar = pbDialog.findChildren<QProgressBar*>();
|
||||
pbBar.at(0)->setTextVisible(false);
|
||||
|
||||
ExportThread *exportThread = new ExportThread(widgets, exportDirectory, pictureCopyEnabled, pictureExportEnabled, exportCount);
|
||||
QObject::connect(exportThread, SIGNAL(exportStringUpdate(QString)), &pbDialog, SLOT(setLabelText(QString)));
|
||||
QObject::connect(exportThread, SIGNAL(exportProgressUpdate(int)), &pbDialog, SLOT(setValue(int)));
|
||||
QObject::connect(exportThread, SIGNAL(exportFinished()), &pbDialog, SLOT(close()));
|
||||
exportThread->start();
|
||||
|
||||
pbDialog.exec();
|
||||
QStringList getFailedSavegames = exportThread->getFailedSavegames();
|
||||
QStringList getFailedCopyPictures = exportThread->getFailedCopyPictures();
|
||||
QStringList getFailedExportPictures = exportThread->getFailedExportPictures();
|
||||
|
||||
QString errorStr;
|
||||
QStringList errorList;
|
||||
errorList << getFailedExportPictures;
|
||||
errorList << getFailedCopyPictures;
|
||||
errorList << getFailedSavegames;
|
||||
|
||||
foreach (const QString &curErrorStr, errorList)
|
||||
{
|
||||
errorStr.append(", " + curErrorStr);
|
||||
}
|
||||
if (errorStr != "")
|
||||
{
|
||||
errorStr.remove(0, 2);
|
||||
QMessageBox::warning(this, tr("Export selected"), tr("Export failed with...\n\n%1").arg(errorStr));
|
||||
}
|
||||
|
||||
if (exportThread->isFinished())
|
||||
{
|
||||
exportThread->deleteLater();
|
||||
delete exportThread;
|
||||
}
|
||||
else
|
||||
{
|
||||
QEventLoop threadFinishLoop;
|
||||
QObject::connect(exportThread, SIGNAL(finished()), &threadFinishLoop, SLOT(quit()));
|
||||
threadFinishLoop.exec();
|
||||
exportThread->deleteLater();
|
||||
delete exportThread;
|
||||
}
|
||||
}
|
||||
|
||||
// Counting the exports together
|
||||
exportCount = exportCount + exportSavegames;
|
||||
if (pictureExportEnabled && pictureCopyEnabled)
|
||||
{
|
||||
int exportPictures2 = exportPictures * 2;
|
||||
exportCount = exportCount + exportPictures2;
|
||||
}
|
||||
else
|
||||
{
|
||||
exportCount = exportCount + exportPictures;
|
||||
}
|
||||
|
||||
QProgressDialog pbDialog(this);
|
||||
pbDialog.setWindowFlags(pbDialog.windowFlags()^Qt::WindowContextHelpButtonHint^Qt::WindowCloseButtonHint);
|
||||
pbDialog.setWindowTitle(tr("Export selected..."));
|
||||
pbDialog.setLabelText(tr("Initializing export..."));
|
||||
pbDialog.setRange(0, exportCount);
|
||||
|
||||
QList<QPushButton*> pbBtn = pbDialog.findChildren<QPushButton*>();
|
||||
pbBtn.at(0)->setDisabled(true);
|
||||
|
||||
QList<QProgressBar*> pbBar = pbDialog.findChildren<QProgressBar*>();
|
||||
pbBar.at(0)->setTextVisible(false);
|
||||
|
||||
ExportThread *exportThread = new ExportThread(widgets, exportDirectory, pictureCopyEnabled, pictureExportEnabled, exportCount);
|
||||
QObject::connect(exportThread, SIGNAL(exportStringUpdate(QString)), &pbDialog, SLOT(setLabelText(QString)));
|
||||
QObject::connect(exportThread, SIGNAL(exportProgressUpdate(int)), &pbDialog, SLOT(setValue(int)));
|
||||
QObject::connect(exportThread, SIGNAL(exportFinished()), &pbDialog, SLOT(close()));
|
||||
exportThread->start();
|
||||
|
||||
pbDialog.exec();
|
||||
QStringList getFailedSavegames = exportThread->getFailedSavegames();
|
||||
QStringList getFailedCopyPictures = exportThread->getFailedCopyPictures();
|
||||
QStringList getFailedExportPictures = exportThread->getFailedExportPictures();
|
||||
|
||||
QString errorStr;
|
||||
QStringList errorList;
|
||||
errorList << getFailedExportPictures;
|
||||
errorList << getFailedCopyPictures;
|
||||
errorList << getFailedSavegames;
|
||||
|
||||
foreach (const QString &curErrorStr, errorList)
|
||||
{
|
||||
errorStr.append(", " + curErrorStr);
|
||||
}
|
||||
if (errorStr != "")
|
||||
{
|
||||
errorStr.remove(0, 2);
|
||||
QMessageBox::warning(this, tr("Export selected"), tr("Export failed with...\n\n%1").arg(errorStr));
|
||||
}
|
||||
|
||||
if (exportThread->isFinished())
|
||||
{
|
||||
exportThread->deleteLater();
|
||||
delete exportThread;
|
||||
}
|
||||
else
|
||||
{
|
||||
QEventLoop threadFinishLoop;
|
||||
QObject::connect(exportThread, SIGNAL(finished()), &threadFinishLoop, SLOT(quit()));
|
||||
threadFinishLoop.exec();
|
||||
exportThread->deleteLater();
|
||||
delete exportThread;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::information(this, tr("Export selected"), tr("No Snapmatic pictures or Savegames files are selected"));
|
||||
}
|
||||
}
|
||||
|
||||
void ProfileInterface::deleteSelected()
|
||||
{
|
||||
if (QMessageBox::Yes == QMessageBox::warning(this, tr("Delete selected"), tr("You really want delete the selected content?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||
if (selectedWidgts != 0)
|
||||
{
|
||||
foreach (ProfileWidget *widget, widgets.keys())
|
||||
if (QMessageBox::Yes == QMessageBox::warning(this, tr("Remove selected"), tr("You really want remove the selected Snapmatic picutres and Savegame files?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::No))
|
||||
{
|
||||
if (widget->isSelected())
|
||||
foreach (ProfileWidget *widget, widgets.keys())
|
||||
{
|
||||
if (widget->getWidgetType() == "SnapmaticWidget")
|
||||
if (widget->isSelected())
|
||||
{
|
||||
SnapmaticWidget *picWidget = (SnapmaticWidget*)widget;
|
||||
SnapmaticPicture *picture = picWidget->getPicture();
|
||||
QString fileName = picture->getPictureFileName();
|
||||
if (!QFile::exists(fileName) || QFile::remove(fileName))
|
||||
if (widget->getWidgetType() == "SnapmaticWidget")
|
||||
{
|
||||
pictureDeleted_f(picWidget);
|
||||
SnapmaticWidget *picWidget = (SnapmaticWidget*)widget;
|
||||
SnapmaticPicture *picture = picWidget->getPicture();
|
||||
QString fileName = picture->getPictureFileName();
|
||||
if (!QFile::exists(fileName) || QFile::remove(fileName))
|
||||
{
|
||||
pictureDeleted_f(picWidget);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (widget->getWidgetType() == "SavegameWidget")
|
||||
{
|
||||
SavegameWidget *sgdWidget = (SavegameWidget*)widget;
|
||||
SavegameData *savegame = sgdWidget->getSavegame();
|
||||
QString fileName = savegame->getSavegameFileName();
|
||||
if (!QFile::exists(fileName) || QFile::remove(fileName))
|
||||
else if (widget->getWidgetType() == "SavegameWidget")
|
||||
{
|
||||
savegameDeleted_f(sgdWidget);
|
||||
SavegameWidget *sgdWidget = (SavegameWidget*)widget;
|
||||
SavegameData *savegame = sgdWidget->getSavegame();
|
||||
QString fileName = savegame->getSavegameFileName();
|
||||
if (!QFile::exists(fileName) || QFile::remove(fileName))
|
||||
{
|
||||
savegameDeleted_f(sgdWidget);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (selectedWidgts != 0)
|
||||
{
|
||||
QMessageBox::warning(this, tr("Delete selected"), tr("Failed at delete all selected content"));
|
||||
if (selectedWidgts != 0)
|
||||
{
|
||||
QMessageBox::warning(this, tr("Remove selected"), tr("Failed at remove the complete selected Snapmatic pictures and/or Savegame files"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
QMessageBox::information(this, tr("Remove selected"), tr("No Snapmatic pictures or Savegames files are selected"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
<string>Profile Interface</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vlProfileInterface">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
|
@ -106,7 +109,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>398</width>
|
||||
<height>251</height>
|
||||
<height>257</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vlProfile">
|
||||
|
|
|
@ -176,8 +176,8 @@ void SnapmaticWidget::contextMenuEvent(QContextMenuEvent *ev)
|
|||
{
|
||||
QMenu contextMenu(this);
|
||||
QMenu exportMenu(tr("&Export"), this);
|
||||
exportMenu.addAction(tr("Export as &picture...", "Export as picture"), this, SLOT(on_cmdExport_clicked()));
|
||||
exportMenu.addAction(tr("Export for &import...", "Export for import"), this, SLOT(on_cmdCopy_clicked()));
|
||||
exportMenu.addAction(tr("Export as &JPG picture"), this, SLOT(on_cmdExport_clicked()));
|
||||
exportMenu.addAction(tr("Export as >A Snapmatic"), this, SLOT(on_cmdCopy_clicked()));
|
||||
contextMenu.addAction(tr("&View"), this, SLOT(on_cmdView_clicked()));
|
||||
contextMenu.addMenu(&exportMenu);
|
||||
contextMenu.addAction(tr("&Remove"), this, SLOT(on_cmdDelete_clicked()));
|
||||
|
|
|
@ -166,7 +166,7 @@
|
|||
</action>
|
||||
<action name="actionExport_selected">
|
||||
<property name="text">
|
||||
<string>&Export selected</string>
|
||||
<string>&Export selected...</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+E</string>
|
||||
|
|
Loading…
Reference in a new issue