mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-02-21 10:10:49 +01:00
Added the "Don't show again" checkbox also to map load error messages
This commit is contained in:
parent
f60c08c57e
commit
903c925e2a
@ -94,7 +94,7 @@ int App::run()
|
|||||||
for (int i = 1; i < args.count(); i++) {
|
for (int i = 1; i < args.count(); i++) {
|
||||||
if (!_gui->openFile(args.at(i), false, silent)) {
|
if (!_gui->openFile(args.at(i), false, silent)) {
|
||||||
MapAction *a;
|
MapAction *a;
|
||||||
if (!_gui->loadMap(args.at(i), a, true))
|
if (!_gui->loadMap(args.at(i), a, silent))
|
||||||
_gui->openFile(args.at(i), true, showError);
|
_gui->openFile(args.at(i), true, showError);
|
||||||
else {
|
else {
|
||||||
if (a)
|
if (a)
|
||||||
@ -145,7 +145,7 @@ bool App::event(QEvent *event)
|
|||||||
|
|
||||||
if (!_gui->openFile(e->file(), false, silent)) {
|
if (!_gui->openFile(e->file(), false, silent)) {
|
||||||
MapAction *a;
|
MapAction *a;
|
||||||
if (!_gui->loadMap(e->file(), a, true))
|
if (!_gui->loadMap(e->file(), a, silent))
|
||||||
return _gui->openFile(e->file(), true, showError);
|
return _gui->openFile(e->file(), true, showError);
|
||||||
else {
|
else {
|
||||||
if (a)
|
if (a)
|
||||||
|
@ -1667,9 +1667,10 @@ void GUI::loadMap()
|
|||||||
_mapDir, MapList::formats()));
|
_mapDir, MapList::formats()));
|
||||||
#endif // Q_OS_ANDROID
|
#endif // Q_OS_ANDROID
|
||||||
MapAction *a, *lastReady = 0;
|
MapAction *a, *lastReady = 0;
|
||||||
|
int showError = (files.size() > 1) ? 2 : 1;
|
||||||
|
|
||||||
for (int i = 0; i < files.size(); i++) {
|
for (int i = 0; i < files.size(); i++) {
|
||||||
if (loadMap(files.at(i), a) && a)
|
if (loadMap(files.at(i), a, showError) && a)
|
||||||
lastReady = a;
|
lastReady = a;
|
||||||
}
|
}
|
||||||
if (!files.isEmpty())
|
if (!files.isEmpty())
|
||||||
@ -1691,14 +1692,15 @@ static MapAction *findMapAction(const QList<QAction*> &mapActions,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool GUI::loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
bool GUI::loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
||||||
bool silent, const QList<QAction*> &existingActions)
|
const QList<QAction*> &existingActions, int &showError)
|
||||||
{
|
{
|
||||||
bool valid = false;
|
bool valid = false;
|
||||||
|
|
||||||
action = 0;
|
action = 0;
|
||||||
|
|
||||||
for (int i = 0; i < node.childs().size(); i++)
|
for (int i = 0; i < node.childs().size(); i++)
|
||||||
valid = loadMapNode(node.childs().at(i), action, silent, existingActions);
|
valid = loadMapNode(node.childs().at(i), action, existingActions,
|
||||||
|
showError);
|
||||||
|
|
||||||
for (int i = 0; i < node.items().size(); i++) {
|
for (int i = 0; i < node.items().size(); i++) {
|
||||||
Map *map = node.items().at(i);
|
Map *map = node.items().at(i);
|
||||||
@ -1706,11 +1708,22 @@ bool GUI::loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
|||||||
|
|
||||||
if (!(a = findMapAction(existingActions, map))) {
|
if (!(a = findMapAction(existingActions, map))) {
|
||||||
if (!map->isValid()) {
|
if (!map->isValid()) {
|
||||||
if (!silent)
|
if (showError) {
|
||||||
QMessageBox::critical(this, APP_NAME,
|
QString error = tr("Error loading map:") + "\n"
|
||||||
tr("Error loading map:") + "\n"
|
+ Util::displayName(map->path()) + ": " + map->errorString();
|
||||||
+ Util::displayName(map->path()) + ": "
|
|
||||||
+ map->errorString());
|
if (showError > 1) {
|
||||||
|
QMessageBox message(QMessageBox::Critical, APP_NAME,
|
||||||
|
error, QMessageBox::Ok, this);
|
||||||
|
QCheckBox checkBox(tr("Don't show again"));
|
||||||
|
message.setCheckBox(&checkBox);
|
||||||
|
message.exec();
|
||||||
|
if (checkBox.isChecked())
|
||||||
|
showError = 0;
|
||||||
|
} else
|
||||||
|
QMessageBox::critical(this, APP_NAME, error);
|
||||||
|
}
|
||||||
|
|
||||||
delete map;
|
delete map;
|
||||||
} else {
|
} else {
|
||||||
valid = true;
|
valid = true;
|
||||||
@ -1735,12 +1748,12 @@ bool GUI::loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
|||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GUI::loadMap(const QString &fileName, MapAction *&action, bool silent)
|
bool GUI::loadMap(const QString &fileName, MapAction *&action, int &showError)
|
||||||
{
|
{
|
||||||
TreeNode<Map*> maps(MapList::loadMaps(fileName));
|
TreeNode<Map*> maps(MapList::loadMaps(fileName));
|
||||||
QList<QAction*> existingActions(_mapsActionGroup->actions());
|
QList<QAction*> existingActions(_mapsActionGroup->actions());
|
||||||
|
|
||||||
return loadMapNode(maps, action, silent, existingActions);
|
return loadMapNode(maps, action, existingActions, showError);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GUI::mapLoaded()
|
void GUI::mapLoaded()
|
||||||
@ -1780,12 +1793,13 @@ void GUI::mapLoadedDir()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void GUI::loadMapDirNode(const TreeNode<Map *> &node, QList<MapAction*> &actions,
|
void GUI::loadMapDirNode(const TreeNode<Map *> &node, QList<MapAction*> &actions,
|
||||||
QMenu *menu, const QList<QAction*> &existingActions)
|
QMenu *menu, const QList<QAction*> &existingActions, int &showError)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < node.childs().size(); i++) {
|
for (int i = 0; i < node.childs().size(); i++) {
|
||||||
QMenu *cm = new QMenu(node.childs().at(i).name(), menu);
|
QMenu *cm = new QMenu(node.childs().at(i).name(), menu);
|
||||||
menu->addMenu(cm);
|
menu->addMenu(cm);
|
||||||
loadMapDirNode(node.childs().at(i), actions, cm, existingActions);
|
loadMapDirNode(node.childs().at(i), actions, cm, existingActions,
|
||||||
|
showError);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < node.items().size(); i++) {
|
for (int i = 0; i < node.items().size(); i++) {
|
||||||
@ -1794,9 +1808,22 @@ void GUI::loadMapDirNode(const TreeNode<Map *> &node, QList<MapAction*> &actions
|
|||||||
|
|
||||||
if (!(a = findMapAction(existingActions, map))) {
|
if (!(a = findMapAction(existingActions, map))) {
|
||||||
if (!map->isValid()) {
|
if (!map->isValid()) {
|
||||||
QMessageBox::critical(this, APP_NAME, tr("Error loading map:")
|
if (showError) {
|
||||||
+ "\n" + Util::displayName(map->path()) + ": "
|
QString error = tr("Error loading map:") + "\n"
|
||||||
+ map->errorString());
|
+ Util::displayName(map->path()) + ": " + map->errorString();
|
||||||
|
|
||||||
|
if (showError > 1) {
|
||||||
|
QMessageBox message(QMessageBox::Critical, APP_NAME,
|
||||||
|
error, QMessageBox::Ok, this);
|
||||||
|
QCheckBox checkBox(tr("Don't show again"));
|
||||||
|
message.setCheckBox(&checkBox);
|
||||||
|
message.exec();
|
||||||
|
if (checkBox.isChecked())
|
||||||
|
showError = 0;
|
||||||
|
} else
|
||||||
|
QMessageBox::critical(this, APP_NAME, error);
|
||||||
|
}
|
||||||
|
|
||||||
delete map;
|
delete map;
|
||||||
} else {
|
} else {
|
||||||
a = new MapAction(map, _mapsActionGroup);
|
a = new MapAction(map, _mapsActionGroup);
|
||||||
@ -1831,8 +1858,10 @@ void GUI::loadMapDir()
|
|||||||
QList<QAction*> existingActions(_mapsActionGroup->actions());
|
QList<QAction*> existingActions(_mapsActionGroup->actions());
|
||||||
QList<MapAction*> actions;
|
QList<MapAction*> actions;
|
||||||
QMenu *menu = new QMenu(maps.name());
|
QMenu *menu = new QMenu(maps.name());
|
||||||
|
int showError = (maps.items().size() > 1 || !maps.childs().isEmpty())
|
||||||
|
? 2 : 1;
|
||||||
|
|
||||||
loadMapDirNode(maps, actions, menu, existingActions);
|
loadMapDirNode(maps, actions, menu, existingActions, showError);
|
||||||
|
|
||||||
_mapView->loadMaps(actions);
|
_mapView->loadMaps(actions);
|
||||||
|
|
||||||
@ -2229,7 +2258,7 @@ void GUI::dropEvent(QDropEvent *event)
|
|||||||
|
|
||||||
if (!openFile(file, false, silent)) {
|
if (!openFile(file, false, silent)) {
|
||||||
MapAction *a;
|
MapAction *a;
|
||||||
if (!loadMap(file, a, true))
|
if (!loadMap(file, a, silent))
|
||||||
openFile(file, true, showError);
|
openFile(file, true, showError);
|
||||||
else {
|
else {
|
||||||
if (a)
|
if (a)
|
||||||
|
@ -45,8 +45,7 @@ public:
|
|||||||
GUI();
|
GUI();
|
||||||
|
|
||||||
bool openFile(const QString &fileName, bool tryUnknown, int &showError);
|
bool openFile(const QString &fileName, bool tryUnknown, int &showError);
|
||||||
bool loadMap(const QString &fileName, MapAction *&action,
|
bool loadMap(const QString &fileName, MapAction *&action, int &showError);
|
||||||
bool silent = false);
|
|
||||||
void show();
|
void show();
|
||||||
void writeSettings();
|
void writeSettings();
|
||||||
|
|
||||||
@ -154,9 +153,9 @@ private:
|
|||||||
bool loadFile(const QString &fileName, bool tryUnknown, int &showError);
|
bool loadFile(const QString &fileName, bool tryUnknown, int &showError);
|
||||||
void loadData(const Data &data);
|
void loadData(const Data &data);
|
||||||
bool loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
bool loadMapNode(const TreeNode<Map*> &node, MapAction *&action,
|
||||||
bool silent, const QList<QAction*> &existingActions);
|
const QList<QAction*> &existingActions, int &showError);
|
||||||
void loadMapDirNode(const TreeNode<Map*> &node, QList<MapAction*> &actions,
|
void loadMapDirNode(const TreeNode<Map*> &node, QList<MapAction*> &actions,
|
||||||
QMenu *menu, const QList<QAction*> &existingActions);
|
QMenu *menu, const QList<QAction*> &existingActions, int &showError);
|
||||||
void updateStatusBarInfo();
|
void updateStatusBarInfo();
|
||||||
void updateWindowTitle();
|
void updateWindowTitle();
|
||||||
bool updateGraphTabs();
|
bool updateGraphTabs();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user