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)
|
||||
{
|
||||
if (!hasData())
|
||||
|
@ -33,6 +33,9 @@ public slots:
|
||||
/** A specified chunk has become available, redraw it. */
|
||||
void chunkAvailable(int a_ChunkX, int a_ChunkZ);
|
||||
|
||||
/** Reloads the current chunk source and redraws the entire workspace. */
|
||||
void reload();
|
||||
|
||||
protected:
|
||||
double m_X, m_Z;
|
||||
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)
|
||||
{
|
||||
emit chunkAvailable(a_ChunkX, a_ChunkZ);
|
||||
|
@ -36,7 +36,10 @@ public:
|
||||
void setChunkSource(std::shared_ptr<ChunkSource> a_ChunkSource);
|
||||
|
||||
/** 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:
|
||||
void chunkAvailable(int a_ChunkX, int a_ChunkZ);
|
||||
|
@ -16,11 +16,11 @@
|
||||
MainWindow::MainWindow(QWidget * parent) :
|
||||
QMainWindow(parent)
|
||||
{
|
||||
createActions();
|
||||
createMenus();
|
||||
|
||||
m_BiomeView = new BiomeView(this);
|
||||
setCentralWidget(m_BiomeView);
|
||||
|
||||
createActions();
|
||||
createMenus();
|
||||
}
|
||||
|
||||
|
||||
@ -68,6 +68,11 @@ void MainWindow::createActions()
|
||||
m_actOpen->setStatusTip(tr("Open an existing world and display its biomes"));
|
||||
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->setShortcut(tr("Alt+X"));
|
||||
m_actExit->setStatusTip(tr("Exit %1").arg(QApplication::instance()->applicationName()));
|
||||
@ -84,6 +89,8 @@ void MainWindow::createMenus()
|
||||
mFile->addAction(m_actGen);
|
||||
mFile->addAction(m_actOpen);
|
||||
mFile->addSeparator();
|
||||
mFile->addAction(m_actReload);
|
||||
mFile->addSeparator();
|
||||
mFile->addAction(m_actExit);
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,7 @@ protected:
|
||||
// Actions:
|
||||
QAction * m_actGen;
|
||||
QAction * m_actOpen;
|
||||
QAction * m_actReload;
|
||||
QAction * m_actExit;
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user