Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
mclarekin
@mclarekin
@buddhi1980 . cool, even just some basic controls for V2.07 would be great. Then boolean will then be running good.
Sebastian Jennen
@zebastian
@buddhi, do you see, what i am doing wrong?
void RenderWindow::slotFractalSwap(int swapA, int swapB)
{
    cParameterContainer *swap = gParFractal->at(swapA);
    gParFractal[swapA] = gParFractal[swapB];
    gParFractal[swapB] = swap;
    gMainInterface->SynchronizeInterfaceWindow(fractalWidgets[swapA],
                                                                                         &gParFractal->at(swapA),
                                                                                         cInterface::write);
    gMainInterface->SynchronizeInterfaceWindow(fractalWidgets[swapB],
                                                                                         &gParFractal->at(swapB),
                                                                                         cInterface::write);
}
and here is the rest:
QApplication::connect(mainWindow->ui->tabWidget_fractals,
                                                SIGNAL(swapTabs(int, int)),
                                                mainWindow,
                                                SLOT(slotFractalSwap(int, int)));
Krzysztof Marczak
@buddhi1980
what is the result?
Sebastian Jennen
@zebastian
gcc says:
/home/sebastian/buddhi1980-mandelbulber2/mandelbulber2/src/render_window.cpp:2189: Fehler:cannot convert 'cParameterContainer' to 'cParameterContainer*' in initialization
is this even the right way, to swap the fractals?
Krzysztof Marczak
@buddhi1980
it's good way, but there is something wrong in cParameterContainer *swap = gParFractal->at(swapA); Gime a minut to analyze it.
should be
    cParameterContainer swap = gParFractal->at(swapA);
    gParFractal[swapA] = gParFractal[swapB];
    gParFractal[swapB] = swap;
at() returns value not a pointer
Sebastian Jennen
@zebastian
now only last line throws error:
gParFractal[swapB] = swap;
/home/sebastian/buddhi1980-mandelbulber2/mandelbulber2/src/render_window.cpp:2191: Fehler:no match for 'operator=' (operand types are 'cFractalContainer' and 'cParameterContainer')
Krzysztof Marczak
@buddhi1980
try
gParFractal->at(swapB) = swap;
if doesn't work, you can add swap logic inside cFractalContainer class
there will be easier, because you have direct access to array
Sebastian Jennen
@zebastian
thanks, compiles now but crashes, when function gets called.
btw, just found qswap
http://doc.qt.io/qt-4.8/qtalgorithms.html
qSwap(gParFractal[swapA], gParFractal[swapB]);
which seems to be working as well (still crashes :) )
i am not sure, what the problem is right now.
should i commit and you take a look?
Krzysztof Marczak
@buddhi1980
yes, I will look at this
Sebastian Jennen
@zebastian
ok, there it is: buddhi1980/mandelbulber2@d85f85c
Krzysztof Marczak
@buddhi1980
ok
Krzysztof Marczak
@buddhi1980
I have fixed it. Now it doesn't crash
But there is another problem. When you swap tabs then you also swap all widgets.
So if you swap 1 and 2 then you have wighets from fractal 1 on tab no. 2 (look at widgets tooltips, then you will se which parameter is connected)
I'm not sure if this will be possible, but after swap event, you can swap tab contents (all widgets) internally and then swap parameters
This is the reason why I wanted to add arrows to swap parameters between tabs. Swapping tabs by dragging makes mess in widget numbers
Sebastian Jennen
@zebastian
yes, arrows would have been easier, but dragging really has a better user experience and is faster.
we will need to change the tabs as well, or set the objectname again for the swapped tabs,
i will continue to work on this tomorrow evening, thanks for your help!
Martin
@acidhunter
hello everybody, nice to see this chatroom :-)
Krzysztof Marczak
@buddhi1980
Hello
Martin
@acidhunter
can somebody tell me whats the build req. on windows?
i would get mandelbulber roled out via a msi pack to distribute renderings over night in my office ^^
Krzysztof Marczak
@buddhi1980
Are you asking how to build it under windows or how to package it?
Martin
@acidhunter
only build
Krzysztof Marczak
@buddhi1980
It's longer story, because you need to configure cross-compiller
but win32 nad win64 executables are available
Martin
@acidhunter
i know, thanks for this
but i want to get it build by myself, never do such things under windows
on osx and linux i got working builds
Krzysztof Marczak
@buddhi1980
I compile windows executables under linux
Martin
@acidhunter
i read some docs and try to get it running, will came back later if i got questions
Krzysztof Marczak
@buddhi1980
if you go to mandelbulber2/mandelbulber2/deploy/ there you will find two bash files:
setup-cross-compile-to-windows.sh
cross-compile-windows.sh
in mandelbulber2/mandelbulber2/ there is one more needed file: make-package.sh
Martin
@acidhunter
thank you for your great work!!!
a nice
thx, will try this after reboot, see you soon ;-)
Krzysztof Marczak
@buddhi1980
with trat scrips (you can modify it for your purposes) you can try to get your own executables
Martin
@acidhunter
are these scripts working on osx?
i am not sure which os i select on reboot^^
Krzysztof Marczak
@buddhi1980
no, they are prepared for linux
that scrips work well with Debian or Ubuntu
Sebastian Jennen
@zebastian
i tried a couple of things so far, but nothing is really going to work out:
void RenderWindow::slotFractalSwap(int swapA, int swapB)
{
qDebug() << "swapping " << swapA << " with " << swapB;

    /*cParameterContainer swap = gParFractal->at(swapA);
    gParFractal->at(swapA) = gParFractal->at(swapB);
    gParFractal->at(swapB) = swap;*/
    gMainInterface->SynchronizeInterface(gPar, gParFractal, cInterface::read);
    gParFractal->swap(swapA, swapB);
    gMainInterface->SynchronizeInterface(gPar, gParFractal, cInterface::write);

    QString nameA = ui->tabWidget_fractals->widget(swapA)->objectName();
    ui->tabWidget_fractals->widget(swapA)->setObjectName(
                ui->tabWidget_fractals->widget(swapB)->objectName());
    ui->tabWidget_fractals->widget(swapB)->setObjectName(nameA);
}

with gParFractal->swap:

void cFractalContainer::swap(int swapA, int swapB)
{
    cParameterContainer swap = fractals[swapA];
    fractals[swapA] = fractals[swapB];
    fractals[swapB] = swap;
}
Krzysztof Marczak
@buddhi1980
Try to do this step by step. First learn how to swap parameters, how to swap widgets or name. Then try do do everything together.
Krzysztof Marczak
@buddhi1980
Yesterday I have bought and installed Windows 10, so I will be able to test our application on modern Windows.
mclarekin
@mclarekin
@bermarte A big thank you from my nephews 9 year old son. He now has Mandelbulber V2.06 running on his Mac, and he is having fun.
Sebastian Jennen
@zebastian
@buddhi1980 what changes do you still want to make for the next release, what can i contribute?
i can do german language update and i am looking for example settings on my different devices / OSes. It's a mess :/