1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-02-17 16:20:48 +01:00

Added navigation toolbar

This commit is contained in:
Martin Tůma 2015-12-18 22:21:11 +01:00
parent 1b358bde3c
commit 7ac94588c8
12 changed files with 266 additions and 66 deletions

View File

@ -9,6 +9,10 @@
<file>icons/application-exit.png</file> <file>icons/application-exit.png</file>
<file>icons/applications-internet.png</file> <file>icons/applications-internet.png</file>
<file>icons/view-refresh.png</file> <file>icons/view-refresh.png</file>
<file>icons/arrow-left.png</file>
<file>icons/arrow-right.png</file>
<file>icons/arrow-left-double.png</file>
<file>icons/arrow-right-double.png</file>
<file>lang/gpxsee_cs.qm</file> <file>lang/gpxsee_cs.qm</file>
</qresource> </qresource>
</RCC> </RCC>

BIN
icons/arrow-left-double.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

BIN
icons/arrow-left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

BIN
icons/arrow-right.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

View File

@ -47,256 +47,291 @@
<context> <context>
<name>GUI</name> <name>GUI</name>
<message> <message>
<location filename="../src/gui.cpp" line="135"/> <location filename="../src/gui.cpp" line="137"/>
<source>About Qt</source> <source>About Qt</source>
<translation>O Qt</translation> <translation>O Qt</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="295"/> <location filename="../src/gui.cpp" line="319"/>
<source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source> <source>GPXSee is distributed under the terms of the GNU General Public License version 3. For more info about GPXSee visit the project homepage at </source>
<translation>Program GPXSee je distribuován pod podmínkami licence GNU General Public License verze 3. Pro více informací navštivte stránky programu na adrese </translation> <translation>Program GPXSee je distribuován pod podmínkami licence GNU General Public License verze 3. Pro více informací navštivte stránky programu na adrese </translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="354"/> <location filename="../src/gui.cpp" line="381"/>
<source>Open file</source> <source>Open file</source>
<translation>Otevřít soubor</translation> <translation>Otevřít soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="149"/> <location filename="../src/gui.cpp" line="151"/>
<source>Save as</source> <source>Save as</source>
<translation>Uložit jako</translation> <translation>Uložit jako</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="405"/> <location filename="../src/gui.cpp" line="434"/>
<source>Open POI file</source> <source>Open POI file</source>
<translation>Otevřít POI soubor</translation> <translation>Otevřít POI soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="140"/> <location filename="../src/gui.cpp" line="142"/>
<source>Open</source> <source>Open</source>
<translation>Otevřít</translation> <translation>Otevřít</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="123"/> <location filename="../src/gui.cpp" line="125"/>
<source>Quit</source> <source>Quit</source>
<translation>Ukončit</translation> <translation>Ukončit</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="130"/> <location filename="../src/gui.cpp" line="132"/>
<location filename="../src/gui.cpp" line="311"/> <location filename="../src/gui.cpp" line="335"/>
<location filename="../src/gui.cpp" line="312"/> <location filename="../src/gui.cpp" line="336"/>
<source>Keyboard controls</source> <source>Keyboard controls</source>
<translation>Ovládací klávesy</translation> <translation>Ovládací klávesy</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="144"/> <location filename="../src/gui.cpp" line="146"/>
<source>Save</source> <source>Save</source>
<translation>Uložit</translation> <translation>Uložit</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="154"/> <location filename="../src/gui.cpp" line="156"/>
<source>Close</source> <source>Close</source>
<translation>Zavřít</translation> <translation>Zavřít</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="159"/> <location filename="../src/gui.cpp" line="161"/>
<source>Reload</source> <source>Reload</source>
<translation>Znovu načíst</translation> <translation>Znovu načíst</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="244"/> <location filename="../src/gui.cpp" line="262"/>
<source>Show</source> <source>Show</source>
<translation>Zobrazit</translation> <translation>Zobrazit</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="198"/> <location filename="../src/gui.cpp" line="216"/>
<location filename="../src/gui.cpp" line="235"/> <location filename="../src/gui.cpp" line="253"/>
<source>File</source> <source>File</source>
<translation>Soubor</translation> <translation>Soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="128"/> <location filename="../src/gui.cpp" line="130"/>
<location filename="../src/gui.cpp" line="327"/> <location filename="../src/gui.cpp" line="354"/>
<location filename="../src/gui.cpp" line="328"/> <location filename="../src/gui.cpp" line="355"/>
<source>Data sources</source> <source>Data sources</source>
<translation>Zdroje dat</translation> <translation>Zdroje dat</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="166"/> <location filename="../src/gui.cpp" line="168"/>
<source>Load POI file</source> <source>Load POI file</source>
<translation>Nahrát POI soubor</translation> <translation>Nahrát POI soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="169"/> <location filename="../src/gui.cpp" line="171"/>
<source>Show POIs</source> <source>Show POIs</source>
<translation>Zobrazit POI</translation> <translation>Zobrazit POI</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="174"/> <location filename="../src/gui.cpp" line="176"/>
<source>Show map</source> <source>Show map</source>
<translation>Zobrazit mapu</translation> <translation>Zobrazit mapu</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="184"/> <location filename="../src/gui.cpp" line="186"/>
<source>Show graphs</source> <source>Show graphs</source>
<translation>Zobrazovat grafy</translation> <translation>Zobrazovat grafy</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="189"/> <location filename="../src/gui.cpp" line="191"/>
<source>Show toolbars</source> <source>Show toolbars</source>
<translation>Zobrazovat nástrojové lišty</translation> <translation>Zobrazovat nástrojové lišty</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="212"/> <location filename="../src/gui.cpp" line="198"/>
<source>Next</source>
<translation>Následující</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="201"/>
<source>Previous</source>
<translation>Předchozí</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="205"/>
<source>Last</source>
<translation>Poslední</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="208"/>
<source>First</source>
<translation>První</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="230"/>
<source>Map</source> <source>Map</source>
<translation>Mapa</translation> <translation>Mapa</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="217"/> <location filename="../src/gui.cpp" line="235"/>
<source>POI</source> <source>POI</source>
<translation>POI</translation> <translation>POI</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="221"/> <location filename="../src/gui.cpp" line="239"/>
<source>Settings</source> <source>Settings</source>
<translation>Nastavení</translation> <translation>Nastavení</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="225"/> <location filename="../src/gui.cpp" line="243"/>
<source>Help</source> <source>Help</source>
<translation>Nápověda</translation> <translation>Nápověda</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="263"/> <location filename="../src/gui.cpp" line="287"/>
<source>Elevation</source> <source>Elevation</source>
<translation>Výška</translation> <translation>Výška</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="264"/> <location filename="../src/gui.cpp" line="288"/>
<source>Speed</source> <source>Speed</source>
<translation>Rychlost</translation> <translation>Rychlost</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="314"/> <location filename="../src/gui.cpp" line="338"/>
<source>Next file</source> <source>Next file</source>
<translation>Následující soubor</translation> <translation>Následující soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="315"/> <location filename="../src/gui.cpp" line="339"/>
<source>Previous file</source> <source>Previous file</source>
<translation>Předchozí soubor</translation> <translation>Předchozí soubor</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="317"/> <location filename="../src/gui.cpp" line="341"/>
<source>First file</source>
<translation>První soubor</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="342"/>
<source>Last file</source>
<translation>Poslední soubor</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="344"/>
<source>Append modifier</source> <source>Append modifier</source>
<translation>Modifikátor nahradit/přidat</translation> <translation>Modifikátor nahradit/přidat</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="331"/> <location filename="../src/gui.cpp" line="358"/>
<source>Map (tiles) source URLs are read on program startup from the following file:</source> <source>Map (tiles) source URLs are read on program startup from the following file:</source>
<translation>URL mapových zdrojů (dlaždic) jsou načteny při startu programu z následujícího souboru:</translation> <translation>URL mapových zdrojů (dlaždic) jsou načteny při startu programu z následujícího souboru:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="335"/> <location filename="../src/gui.cpp" line="362"/>
<source>The file format is one map entry per line, consisting of the map name and tiles URL delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source> <source>The file format is one map entry per line, consisting of the map name and tiles URL delimited by a TAB character. The tile X and Y coordinates are replaced with $x and $y in the URL and the zoom level is replaced with $z. An example map file could look like:</source>
<translation>Formát souboru je jeden mapový záznam na řádku, kde mapový záznam sestává ze jména mapy a URL dlaždic navzájem oddělených tabulátorem. Souřadnice dlaždice jsou v URL nahrazeny řetězci $x a $y, úroven přiblížení (zoom) pak řetězcem $z. Příklad:</translation> <translation>Formát souboru je jeden mapový záznam na řádku, kde mapový záznam sestává ze jména mapy a URL dlaždic navzájem oddělených tabulátorem. Souřadnice dlaždice jsou v URL nahrazeny řetězci $x a $y, úroven přiblížení (zoom) pak řetězcem $z. Příklad:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="343"/> <location filename="../src/gui.cpp" line="370"/>
<source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source> <source>To make GPXSee load a POI file automatically on startup, add the file to the following directory:</source>
<translation>POI soubory, které se mají automaticky nahrát při startu programu jsou načítány z následujícího adresáře:</translation> <translation>POI soubory, které se mají automaticky nahrát při startu programu jsou načítány z následujícího adresáře:</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="396"/> <location filename="../src/gui.cpp" line="425"/>
<location filename="../src/gui.cpp" line="412"/> <location filename="../src/gui.cpp" line="441"/>
<source>Line: %1</source> <source>Line: %1</source>
<translation>Řádka: %1</translation> <translation>Řádka: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="464"/> <location filename="../src/gui.cpp" line="493"/>
<source>Maximum</source> <source>Maximum</source>
<translation>Maximum</translation> <translation>Maximum</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="466"/> <location filename="../src/gui.cpp" line="495"/>
<source>Minimum</source> <source>Minimum</source>
<translation>Minimum</translation> <translation>Minimum</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="133"/> <location filename="../src/gui.cpp" line="135"/>
<location filename="../src/gui.cpp" line="291"/> <location filename="../src/gui.cpp" line="315"/>
<source>About GPXSee</source> <source>About GPXSee</source>
<translation>O aplikaci GPXSee</translation> <translation>O aplikaci GPXSee</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="293"/> <location filename="../src/gui.cpp" line="269"/>
<source>Navigation</source>
<translation>Navigace</translation>
</message>
<message>
<location filename="../src/gui.cpp" line="317"/>
<source>GPX viewer and analyzer</source> <source>GPX viewer and analyzer</source>
<translation>Prohlížeč a analyzátor GPX</translation> <translation>Prohlížeč a analyzátor GPX</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="330"/> <location filename="../src/gui.cpp" line="357"/>
<source>Map sources</source> <source>Map sources</source>
<translation>Mapové zdroje</translation> <translation>Mapové zdroje</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="342"/> <location filename="../src/gui.cpp" line="369"/>
<source>POIs</source> <source>POIs</source>
<translation>POI body</translation> <translation>POI body</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="457"/> <location filename="../src/gui.cpp" line="486"/>
<source>Distance</source> <source>Distance</source>
<translation>Vzdálenost</translation> <translation>Vzdálenost</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="459"/> <location filename="../src/gui.cpp" line="488"/>
<source>Time</source> <source>Time</source>
<translation>Čas</translation> <translation>Čas</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="460"/> <location filename="../src/gui.cpp" line="489"/>
<source>Ascent</source> <source>Ascent</source>
<translation>Stoupání</translation> <translation>Stoupání</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="461"/> <location filename="../src/gui.cpp" line="490"/>
<location filename="../src/gui.cpp" line="463"/> <location filename="../src/gui.cpp" line="492"/>
<location filename="../src/gui.cpp" line="465"/> <location filename="../src/gui.cpp" line="494"/>
<location filename="../src/gui.cpp" line="467"/> <location filename="../src/gui.cpp" line="496"/>
<source>m</source> <source>m</source>
<translation>m</translation> <translation>m</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="462"/> <location filename="../src/gui.cpp" line="491"/>
<source>Descent</source> <source>Descent</source>
<translation>Klesání</translation> <translation>Klesání</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="558"/> <location filename="../src/gui.cpp" line="588"/>
<source>%1 tracks</source> <source>%1 tracks</source>
<translation>Počet tras: %1</translation> <translation>Počet tras: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="458"/> <location filename="../src/gui.cpp" line="487"/>
<location filename="../src/gui.cpp" line="561"/> <location filename="../src/gui.cpp" line="591"/>
<source>km</source> <source>km</source>
<translation>km</translation> <translation>km</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="398"/> <location filename="../src/gui.cpp" line="427"/>
<location filename="../src/gui.cpp" line="413"/> <location filename="../src/gui.cpp" line="442"/>
<source>Error</source> <source>Error</source>
<translation>Chyba</translation> <translation>Chyba</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="393"/> <location filename="../src/gui.cpp" line="422"/>
<source>Error loading GPX file: <source>Error loading GPX file:
%1</source> %1</source>
<translation>Soubor GPX nelze otevřít: <translation>Soubor GPX nelze otevřít:
%1</translation> %1</translation>
</message> </message>
<message> <message>
<location filename="../src/gui.cpp" line="409"/> <location filename="../src/gui.cpp" line="438"/>
<source>Error loading POI file: <source>Error loading POI file:
%1</source> %1</source>
<translation>Soubor POI nelze otevřít: <translation>Soubor POI nelze otevřít:

View File

@ -41,6 +41,16 @@ void FileBrowser::setFilter(const QStringList &filter)
reloadDirectory(_files.last().canonicalPath()); reloadDirectory(_files.last().canonicalPath());
} }
bool FileBrowser::isLast()
{
return (_files.size() > 0 && _index == _files.size() - 1);
}
bool FileBrowser::isFirst()
{
return (_files.size() > 0 && _index == 0);
}
QString FileBrowser::next() QString FileBrowser::next()
{ {
if (_index < 0 || _index == _files.size() - 1) if (_index < 0 || _index == _files.size() - 1)
@ -57,6 +67,24 @@ QString FileBrowser::prev()
return _files.at(--_index).absoluteFilePath(); return _files.at(--_index).absoluteFilePath();
} }
QString FileBrowser::last()
{
if (_files.empty())
return QString();
_index = _files.size() - 1;
return _files.last().absoluteFilePath();
}
QString FileBrowser::first()
{
if (_files.empty())
return QString();
_index = 0;
return _files.first().absoluteFilePath();
}
void FileBrowser::reloadDirectory(const QString &path) void FileBrowser::reloadDirectory(const QString &path)
{ {
QDir dir(path); QDir dir(path);

View File

@ -20,6 +20,11 @@ public:
QString next(); QString next();
QString prev(); QString prev();
QString last();
QString first();
bool isLast();
bool isFirst();
private slots: private slots:
void reloadDirectory(const QString &path); void reloadDirectory(const QString &path);

View File

@ -118,6 +118,8 @@ void GUI::createActions()
_fileActionGroup->setExclusive(false); _fileActionGroup->setExclusive(false);
_fileActionGroup->setEnabled(false); _fileActionGroup->setEnabled(false);
_navigationActionGroup = new QActionGroup(this);
_navigationActionGroup->setEnabled(false);
// General actions // General actions
_exitAction = new QAction(QIcon(QPixmap(QUIT_ICON)), tr("Quit"), this); _exitAction = new QAction(QIcon(QPixmap(QUIT_ICON)), tr("Quit"), this);
@ -191,6 +193,22 @@ void GUI::createActions()
_showToolbarsAction->setChecked(true); _showToolbarsAction->setChecked(true);
connect(_showToolbarsAction, SIGNAL(triggered(bool)), this, connect(_showToolbarsAction, SIGNAL(triggered(bool)), this,
SLOT(showToolbars(bool))); SLOT(showToolbars(bool)));
// Navigation actions
_nextAction = new QAction(QIcon(QPixmap(NEXT_FILE_ICON)), tr("Next"), this);
_nextAction->setActionGroup(_navigationActionGroup);
connect(_nextAction, SIGNAL(triggered()), this, SLOT(next()));
_prevAction = new QAction(QIcon(QPixmap(PREV_FILE_ICON)), tr("Previous"),
this);
_prevAction->setActionGroup(_navigationActionGroup);
connect(_prevAction, SIGNAL(triggered()), this, SLOT(prev()));
_lastAction = new QAction(QIcon(QPixmap(LAST_FILE_ICON)), tr("Last"), this);
_lastAction->setActionGroup(_navigationActionGroup);
connect(_lastAction, SIGNAL(triggered()), this, SLOT(last()));
_firstAction = new QAction(QIcon(QPixmap(FIRST_FILE_ICON)), tr("First"),
this);
_firstAction->setActionGroup(_navigationActionGroup);
connect(_firstAction, SIGNAL(triggered()), this, SLOT(first()));
} }
void GUI::createMenus() void GUI::createMenus()
@ -247,6 +265,12 @@ void GUI::createToolBars()
#ifdef Q_OS_MAC #ifdef Q_OS_MAC
_showToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); _showToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
#endif // Q_OS_MAC #endif // Q_OS_MAC
_navigationToolBar = addToolBar(tr("Navigation"));
_navigationToolBar->addAction(_firstAction);
_navigationToolBar->addAction(_prevAction);
_navigationToolBar->addAction(_nextAction);
_navigationToolBar->addAction(_lastAction);
} }
void GUI::createTrackView() void GUI::createTrackView()
@ -314,8 +338,10 @@ void GUI::keys()
QString("<div><table width=\"300\"><tr><td>") + tr("Next file") QString("<div><table width=\"300\"><tr><td>") + tr("Next file")
+ QString("</td><td><i>SPACE</i></td></tr><tr><td>") + tr("Previous file") + QString("</td><td><i>SPACE</i></td></tr><tr><td>") + tr("Previous file")
+ QString("</td><td><i>BACKSPACE</i></td></tr><tr><td>") + QString("</td><td><i>BACKSPACE</i></td></tr><tr><td>")
+ tr("Append modifier") + QString("</td><td><i>SHIFT</i></td></tr>" + tr("First file") + QString("</td><td><i>HOME</i></td></tr><tr><td>")
"</table></div>")); + tr("Last file") + QString("</td><td><i>END</i></td></tr><tr><td></td>"
"<td></td></tr><tr><td>") + tr("Append modifier")
+ QString("</td><td><i>SHIFT</i></td></tr></table></div>"));
msgBox.exec(); msgBox.exec();
} }
@ -368,6 +394,8 @@ bool GUI::openFile(const QString &fileName)
_browser->setCurrent(fileName); _browser->setCurrent(fileName);
updateStatusBarInfo(); updateStatusBarInfo();
_fileActionGroup->setEnabled(true); _fileActionGroup->setEnabled(true);
_navigationActionGroup->setEnabled(true);
updateNavigationActions();
return true; return true;
} else } else
return false; return false;
@ -506,6 +534,7 @@ void GUI::closeFile()
_files.clear(); _files.clear();
_fileActionGroup->setEnabled(false); _fileActionGroup->setEnabled(false);
_navigationActionGroup->setEnabled(false);
updateStatusBarInfo(); updateStatusBarInfo();
} }
@ -537,9 +566,11 @@ void GUI::showToolbars(bool checked)
addToolBar(_showToolBar); addToolBar(_showToolBar);
_fileToolBar->show(); _fileToolBar->show();
_showToolBar->show(); _showToolBar->show();
_navigationToolBar->show();
} else { } else {
removeToolBar(_fileToolBar); removeToolBar(_fileToolBar);
removeToolBar(_showToolBar); removeToolBar(_showToolBar);
removeToolBar(_navigationToolBar);
} }
} }
@ -578,18 +609,97 @@ void GUI::graphChanged(int index)
_speedGraph->setSliderPosition(_elevationGraph->sliderPosition()); _speedGraph->setSliderPosition(_elevationGraph->sliderPosition());
} }
void GUI::updateNavigationActions()
{
if (_browser->isLast()) {
_nextAction->setEnabled(false);
_lastAction->setEnabled(false);
} else {
_nextAction->setEnabled(true);
_lastAction->setEnabled(true);
}
if (_browser->isFirst()) {
_prevAction->setEnabled(false);
_firstAction->setEnabled(false);
} else {
_prevAction->setEnabled(true);
_firstAction->setEnabled(true);
}
}
void GUI::next()
{
QString file = _browser->next();
if (file.isNull())
return;
closeFile();
openFile(file);
updateNavigationActions();
}
void GUI::prev()
{
QString file = _browser->prev();
if (file.isNull())
return;
closeFile();
openFile(file);
updateNavigationActions();
}
void GUI::last()
{
QString file = _browser->last();
if (file.isNull())
return;
closeFile();
openFile(file);
updateNavigationActions();
}
void GUI::first()
{
QString file = _browser->first();
if (file.isNull())
return;
closeFile();
openFile(file);
updateNavigationActions();
}
void GUI::keyPressEvent(QKeyEvent *event) void GUI::keyPressEvent(QKeyEvent *event)
{ {
QString file; QString file;
if (event->key() == PREV_KEY) switch (event->key()) {
file = _browser->prev(); case PREV_KEY:
if (event->key() == NEXT_KEY) file = _browser->prev();
file = _browser->next(); break;
case NEXT_KEY:
file = _browser->next();
break;
case FIRST_KEY:
file = _browser->first();
break;
case LAST_KEY:
file = _browser->last();
break;
}
if (!file.isNull()) { if (!file.isNull()) {
if (!(event->modifiers() & MODIFIER)) if (!(event->modifiers() & MODIFIER))
closeFile(); closeFile();
openFile(file); openFile(file);
} }
updateNavigationActions();
} }

View File

@ -45,6 +45,11 @@ private slots:
void mapChanged(int); void mapChanged(int);
void graphChanged(int); void graphChanged(int);
void next();
void prev();
void last();
void first();
private: private:
void loadFiles(); void loadFiles();
@ -59,6 +64,7 @@ private:
bool loadFile(const QString &fileName); bool loadFile(const QString &fileName);
void saveFile(const QString &fileName); void saveFile(const QString &fileName);
void updateStatusBarInfo(); void updateStatusBarInfo();
void updateNavigationActions();
void keyPressEvent(QKeyEvent * event); void keyPressEvent(QKeyEvent * event);
@ -70,8 +76,10 @@ private:
QToolBar *_fileToolBar; QToolBar *_fileToolBar;
QToolBar *_showToolBar; QToolBar *_showToolBar;
QToolBar *_navigationToolBar;
QTabWidget *_trackGraphs; QTabWidget *_trackGraphs;
QActionGroup *_fileActionGroup; QActionGroup *_fileActionGroup;
QActionGroup *_navigationActionGroup;
QAction *_exitAction; QAction *_exitAction;
QAction *_keysAction; QAction *_keysAction;
@ -88,6 +96,10 @@ private:
QAction *_showMapAction; QAction *_showMapAction;
QAction *_showGraphsAction; QAction *_showGraphsAction;
QAction *_showToolbarsAction; QAction *_showToolbarsAction;
QAction *_nextAction;
QAction *_prevAction;
QAction *_lastAction;
QAction *_firstAction;
QList<QAction*> _mapActions; QList<QAction*> _mapActions;
QLabel *_fileNameLabel; QLabel *_fileNameLabel;

View File

@ -12,6 +12,10 @@
#define SHOW_MAP_ICON ":/icons/applications-internet.png" #define SHOW_MAP_ICON ":/icons/applications-internet.png"
#define QUIT_ICON ":/icons/application-exit.png" #define QUIT_ICON ":/icons/application-exit.png"
#define RELOAD_FILE_ICON ":/icons/view-refresh.png" #define RELOAD_FILE_ICON ":/icons/view-refresh.png"
#define NEXT_FILE_ICON ":/icons/arrow-right.png"
#define PREV_FILE_ICON ":/icons/arrow-left.png"
#define LAST_FILE_ICON ":/icons/arrow-right-double.png"
#define FIRST_FILE_ICON ":/icons/arrow-left-double.png"
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
#define QT_ICON ":/trolltech/qmessagebox/images/qtlogo-64.png" #define QT_ICON ":/trolltech/qmessagebox/images/qtlogo-64.png"

View File

@ -3,6 +3,8 @@
#define NEXT_KEY Qt::Key_Space #define NEXT_KEY Qt::Key_Space
#define PREV_KEY Qt::Key_Backspace #define PREV_KEY Qt::Key_Backspace
#define FIRST_KEY Qt::Key_Home
#define LAST_KEY Qt::Key_End
#define MODIFIER Qt::ShiftModifier #define MODIFIER Qt::ShiftModifier
#endif // KEYS_H #endif // KEYS_H