paysages: Small improvements.
git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@298 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
This commit is contained in:
parent
20bce5da8a
commit
6ebd78f030
3 changed files with 45 additions and 79 deletions
|
@ -182,9 +182,16 @@ void BasePreview::paintEvent(QPaintEvent* event)
|
||||||
void BasePreview::forceRender()
|
void BasePreview::forceRender()
|
||||||
{
|
{
|
||||||
this->lock_drawing->lock();
|
this->lock_drawing->lock();
|
||||||
this->pixbuf->fill(0x00000000);
|
|
||||||
|
QImage part = pixbuf->copy();
|
||||||
|
pixbuf->fill(0x00000000);
|
||||||
|
QPainter painter(pixbuf);
|
||||||
|
painter.setOpacity(0.99);
|
||||||
|
painter.drawImage(0, 0, part);
|
||||||
|
|
||||||
this->need_rerender = false;
|
this->need_rerender = false;
|
||||||
this->need_render = true;
|
this->need_render = true;
|
||||||
|
|
||||||
this->lock_drawing->unlock();
|
this->lock_drawing->unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -367,7 +374,7 @@ void BasePreview::wheelEvent(QWheelEvent* event)
|
||||||
lock_drawing->lock();
|
lock_drawing->lock();
|
||||||
new_width = (int)floor(((double)width) * scaling / old_scaling);
|
new_width = (int)floor(((double)width) * scaling / old_scaling);
|
||||||
new_height = (int)floor(((double)height) * scaling / old_scaling);
|
new_height = (int)floor(((double)height) * scaling / old_scaling);
|
||||||
QImage part = pixbuf->copy((width - new_width) / 2, (height - new_height) / 2, new_width, new_height).scaled(width, height);
|
QImage part = pixbuf->copy((width - new_width) / 2, (height - new_height) / 2, new_width, new_height).scaled(width, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
QPainter painter(pixbuf);
|
QPainter painter(pixbuf);
|
||||||
pixbuf->fill(0x00000000);
|
pixbuf->fill(0x00000000);
|
||||||
painter.setOpacity(0.99);
|
painter.setOpacity(0.99);
|
||||||
|
@ -386,7 +393,7 @@ void BasePreview::wheelEvent(QWheelEvent* event)
|
||||||
}
|
}
|
||||||
|
|
||||||
lock_drawing->lock();
|
lock_drawing->lock();
|
||||||
QImage part = pixbuf->scaled((int)floor(((double)width) * old_scaling / scaling), (int)floor(((double)height) * old_scaling / scaling));
|
QImage part = pixbuf->scaled((int)floor(((double)width) * old_scaling / scaling), (int)floor(((double)height) * old_scaling / scaling), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
||||||
QPainter painter(pixbuf);
|
QPainter painter(pixbuf);
|
||||||
pixbuf->fill(0x00000000);
|
pixbuf->fill(0x00000000);
|
||||||
painter.setOpacity(0.99);
|
painter.setOpacity(0.99);
|
||||||
|
@ -403,70 +410,3 @@ void BasePreview::wheelEvent(QWheelEvent* event)
|
||||||
event->ignore();
|
event->ignore();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//static void _scrollPixbuf(SmallPreview* preview, int dx, int dy)
|
|
||||||
//{
|
|
||||||
// int xstart, ystart, xsize, ysize, y;
|
|
||||||
// void* pixels = gdk_pixbuf_get_pixels(preview->pixbuf);
|
|
||||||
// int rowstride = gdk_pixbuf_get_rowstride(preview->pixbuf);
|
|
||||||
|
|
||||||
// preview->xoffset -= (double)dx * preview->scaling;
|
|
||||||
// preview->yoffset -= (double)dy * preview->scaling;
|
|
||||||
|
|
||||||
// /* TODO Use pixbuf size */
|
|
||||||
// if (dx == 0 && dy == 0)
|
|
||||||
// {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// else if (dx <= -256 || dx >= 256 || dy <= -256 || dy >= 256)
|
|
||||||
// {
|
|
||||||
// _forceRender(preview);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// if (dx < 0)
|
|
||||||
// {
|
|
||||||
// xstart = -dx;
|
|
||||||
// xsize = 256 + dx;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// xstart = 0;
|
|
||||||
// xsize = 256 - dx;
|
|
||||||
// }
|
|
||||||
// if (dy < 0)
|
|
||||||
// {
|
|
||||||
// ystart = -dy;
|
|
||||||
// ysize = 256 + dy;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// ystart = 0;
|
|
||||||
// ysize = 256 - dy;
|
|
||||||
// }
|
|
||||||
// memmove(pixels + (ystart + dy) * rowstride + (xstart + dx) * 4, pixels + ystart * rowstride + xstart * 4, (ysize - 1) * rowstride + xsize * 4);
|
|
||||||
// if (dy < 0)
|
|
||||||
// {
|
|
||||||
// memset(pixels + (256 + dy) * rowstride, 0, (-dy - 1) * rowstride + 256 * 4);
|
|
||||||
// }
|
|
||||||
// else if (dy > 0)
|
|
||||||
// {
|
|
||||||
// memset(pixels, 0, (dy - 1) * rowstride + 256 * 4);
|
|
||||||
// }
|
|
||||||
// if (dx < 0)
|
|
||||||
// {
|
|
||||||
// for (y = ystart + dy; y < ystart + dy + ysize; y++)
|
|
||||||
// {
|
|
||||||
// memset(pixels + y * rowstride + xsize * 4, 0, -dx * 4);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else if (dx > 0)
|
|
||||||
// {
|
|
||||||
// for (y = ystart + dy; y < ystart + dy + ysize; y++)
|
|
||||||
// {
|
|
||||||
// memset(pixels + y * rowstride, 0, dx * 4);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// preview->need_render = 1;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
|
@ -137,9 +137,12 @@ void MainWindow::refreshAll()
|
||||||
|
|
||||||
void MainWindow::fileNew()
|
void MainWindow::fileNew()
|
||||||
{
|
{
|
||||||
autoGenRealisticLandscape(0);
|
if (QMessageBox::question(this, tr("New lanscape"), tr("Do you want to start a new landscape ? Any unsaved changes will be lost."), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes)
|
||||||
autoSetDaytime(8, 30);
|
{
|
||||||
refreshAll();
|
autoGenRealisticLandscape(0);
|
||||||
|
autoSetDaytime(8, 30);
|
||||||
|
refreshAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::fileSave()
|
void MainWindow::fileSave()
|
||||||
|
@ -153,11 +156,14 @@ void MainWindow::fileSave()
|
||||||
|
|
||||||
void MainWindow::fileLoad()
|
void MainWindow::fileLoad()
|
||||||
{
|
{
|
||||||
QString filepath = QFileDialog::getOpenFileName(this);
|
if (QMessageBox::question(this, tr("Load lanscape"), tr("Do you want to load a landscape ? Any unsaved changes will be lost."), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes)
|
||||||
if (!filepath.isNull())
|
|
||||||
{
|
{
|
||||||
paysagesLoad((char*)filepath.toStdString().c_str());
|
QString filepath = QFileDialog::getOpenFileName(this);
|
||||||
refreshAll();
|
if (!filepath.isNull())
|
||||||
|
{
|
||||||
|
paysagesLoad((char*)filepath.toStdString().c_str());
|
||||||
|
refreshAll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -823,12 +823,32 @@ rapide (F5)</translation>
|
||||||
<translation>&A propos</translation>
|
<translation>&A propos</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../gui_qt/mainwindow.cpp" line="166"/>
|
<location filename="../gui_qt/mainwindow.cpp" line="140"/>
|
||||||
|
<source>New lanscape</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../gui_qt/mainwindow.cpp" line="140"/>
|
||||||
|
<source>Do you want to start a new landscape ? Any unsaved changes will be lost.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../gui_qt/mainwindow.cpp" line="159"/>
|
||||||
|
<source>Load lanscape</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../gui_qt/mainwindow.cpp" line="159"/>
|
||||||
|
<source>Do you want to load a landscape ? Any unsaved changes will be lost.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../gui_qt/mainwindow.cpp" line="172"/>
|
||||||
<source>Paysages 3D</source>
|
<source>Paysages 3D</source>
|
||||||
<translation>Paysages 3D</translation>
|
<translation>Paysages 3D</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../gui_qt/mainwindow.cpp" line="166"/>
|
<location filename="../gui_qt/mainwindow.cpp" line="172"/>
|
||||||
<source>A 3D landscape editing and rendering software.
|
<source>A 3D landscape editing and rendering software.
|
||||||
|
|
||||||
Credits :
|
Credits :
|
||||||
|
|
Loading…
Reference in a new issue