QtBiomeVisualiser: Added reloading.
This commit is contained in:
parent
84947a22ad
commit
21b70f17c2
@ -131,6 +131,21 @@ void BiomeView::chunkAvailable(int a_ChunkX, int a_ChunkZ)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void BiomeView::reload()
|
||||||
|
{
|
||||||
|
if (!hasData())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_Cache.reload();
|
||||||
|
|
||||||
|
redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void BiomeView::drawChunk(int a_ChunkX, int a_ChunkZ)
|
void BiomeView::drawChunk(int a_ChunkX, int a_ChunkZ)
|
||||||
{
|
{
|
||||||
if (!hasData())
|
if (!hasData())
|
||||||
|
@ -33,6 +33,9 @@ public slots:
|
|||||||
/** A specified chunk has become available, redraw it. */
|
/** A specified chunk has become available, redraw it. */
|
||||||
void chunkAvailable(int a_ChunkX, int a_ChunkZ);
|
void chunkAvailable(int a_ChunkX, int a_ChunkZ);
|
||||||
|
|
||||||
|
/** Reloads the current chunk source and redraws the entire workspace. */
|
||||||
|
void reload();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
double m_X, m_Z;
|
double m_X, m_Z;
|
||||||
double m_Zoom;
|
double m_Zoom;
|
||||||
|
@ -76,6 +76,22 @@ void ChunkCache::setChunkSource(std::shared_ptr<ChunkSource> a_ChunkSource)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void ChunkCache::reload()
|
||||||
|
{
|
||||||
|
assert(m_ChunkSource.get() != nullptr);
|
||||||
|
|
||||||
|
// Reload the chunk source:
|
||||||
|
m_ChunkSource->reload();
|
||||||
|
|
||||||
|
// Clear the cache:
|
||||||
|
QMutexLocker lock(&m_Mtx);
|
||||||
|
m_Cache.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void ChunkCache::gotChunk(int a_ChunkX, int a_ChunkZ)
|
void ChunkCache::gotChunk(int a_ChunkX, int a_ChunkZ)
|
||||||
{
|
{
|
||||||
emit chunkAvailable(a_ChunkX, a_ChunkZ);
|
emit chunkAvailable(a_ChunkX, a_ChunkZ);
|
||||||
|
@ -36,7 +36,10 @@ public:
|
|||||||
void setChunkSource(std::shared_ptr<ChunkSource> a_ChunkSource);
|
void setChunkSource(std::shared_ptr<ChunkSource> a_ChunkSource);
|
||||||
|
|
||||||
/** Returns true iff the chunk source has been initialized. */
|
/** Returns true iff the chunk source has been initialized. */
|
||||||
bool hasData(void) const { return (m_ChunkSource.get() != nullptr); }
|
bool hasData() const { return (m_ChunkSource.get() != nullptr); }
|
||||||
|
|
||||||
|
/** Reloads the current chunk source. */
|
||||||
|
void reload();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void chunkAvailable(int a_ChunkX, int a_ChunkZ);
|
void chunkAvailable(int a_ChunkX, int a_ChunkZ);
|
||||||
|
@ -16,11 +16,11 @@
|
|||||||
MainWindow::MainWindow(QWidget * parent) :
|
MainWindow::MainWindow(QWidget * parent) :
|
||||||
QMainWindow(parent)
|
QMainWindow(parent)
|
||||||
{
|
{
|
||||||
createActions();
|
|
||||||
createMenus();
|
|
||||||
|
|
||||||
m_BiomeView = new BiomeView(this);
|
m_BiomeView = new BiomeView(this);
|
||||||
setCentralWidget(m_BiomeView);
|
setCentralWidget(m_BiomeView);
|
||||||
|
|
||||||
|
createActions();
|
||||||
|
createMenus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -68,6 +68,11 @@ void MainWindow::createActions()
|
|||||||
m_actOpen->setStatusTip(tr("Open an existing world and display its biomes"));
|
m_actOpen->setStatusTip(tr("Open an existing world and display its biomes"));
|
||||||
connect(m_actOpen, SIGNAL(triggered()), this, SLOT(open()));
|
connect(m_actOpen, SIGNAL(triggered()), this, SLOT(open()));
|
||||||
|
|
||||||
|
m_actReload = new QAction(tr("&Reload"), this);
|
||||||
|
m_actReload->setShortcut(tr("F5"));
|
||||||
|
m_actReload->setStatusTip(tr("Open an existing world and display its biomes"));
|
||||||
|
connect(m_actReload, SIGNAL(triggered()), m_BiomeView, SLOT(reload()));
|
||||||
|
|
||||||
m_actExit = new QAction(tr("E&xit"), this);
|
m_actExit = new QAction(tr("E&xit"), this);
|
||||||
m_actExit->setShortcut(tr("Alt+X"));
|
m_actExit->setShortcut(tr("Alt+X"));
|
||||||
m_actExit->setStatusTip(tr("Exit %1").arg(QApplication::instance()->applicationName()));
|
m_actExit->setStatusTip(tr("Exit %1").arg(QApplication::instance()->applicationName()));
|
||||||
@ -84,6 +89,8 @@ void MainWindow::createMenus()
|
|||||||
mFile->addAction(m_actGen);
|
mFile->addAction(m_actGen);
|
||||||
mFile->addAction(m_actOpen);
|
mFile->addAction(m_actOpen);
|
||||||
mFile->addSeparator();
|
mFile->addSeparator();
|
||||||
|
mFile->addAction(m_actReload);
|
||||||
|
mFile->addSeparator();
|
||||||
mFile->addAction(m_actExit);
|
mFile->addAction(m_actExit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ protected:
|
|||||||
// Actions:
|
// Actions:
|
||||||
QAction * m_actGen;
|
QAction * m_actGen;
|
||||||
QAction * m_actOpen;
|
QAction * m_actOpen;
|
||||||
|
QAction * m_actReload;
|
||||||
QAction * m_actExit;
|
QAction * m_actExit;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user