mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-03-13 15:21:36 -04:00
--User changes
-Make Shift+F keys select the flames in the file, and Shift +/- cycle through them.
This commit is contained in:
parent
6156036370
commit
897ccdd375
@ -589,6 +589,7 @@ string IterOpenCLKernelCreator<T>::CreateIterKernelString(const Ember<T>& ember,
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
os <<
|
os <<
|
||||||
|
"\n"
|
||||||
" firstPoint = secondPoint;\n";//For testing, using straight rand flam4/fractron style instead of cuburn.
|
" firstPoint = secondPoint;\n";//For testing, using straight rand flam4/fractron style instead of cuburn.
|
||||||
#endif
|
#endif
|
||||||
os <<
|
os <<
|
||||||
|
@ -372,6 +372,8 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
|
|||||||
static int commacount = 0;
|
static int commacount = 0;
|
||||||
static int periodcount = 0;
|
static int periodcount = 0;
|
||||||
static int lcount = 0;
|
static int lcount = 0;
|
||||||
|
const bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
|
||||||
|
const bool ctrl = QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier);
|
||||||
|
|
||||||
if (o == ui.GLParentScrollArea && e->type() == QEvent::Resize)
|
if (o == ui.GLParentScrollArea && e->type() == QEvent::Resize)
|
||||||
{
|
{
|
||||||
@ -393,7 +395,12 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
|
|||||||
{
|
{
|
||||||
const int val = ke->key() - (int)Qt::Key_F1;
|
const int val = ke->key() - (int)Qt::Key_F1;
|
||||||
|
|
||||||
if (val < combo->count())
|
if (shift)
|
||||||
|
{
|
||||||
|
if (val < ui.LibraryTree->topLevelItem(0)->childCount())
|
||||||
|
m_Controller->SetEmber(val, true);
|
||||||
|
}
|
||||||
|
else if (val < combo->count())
|
||||||
combo->setCurrentIndex(val);
|
combo->setCurrentIndex(val);
|
||||||
|
|
||||||
fcount = 0;
|
fcount = 0;
|
||||||
@ -407,7 +414,7 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
|
|||||||
//Require shift for deleting to prevent it from triggering when the user enters delete in the edit box.
|
//Require shift for deleting to prevent it from triggering when the user enters delete in the edit box.
|
||||||
if (ke->key() == Qt::Key_Delete && e->type() == QEvent::KeyRelease && shift)
|
if (ke->key() == Qt::Key_Delete && e->type() == QEvent::KeyRelease && shift)
|
||||||
{
|
{
|
||||||
auto v = GetCurrentEmberIndex();
|
auto v = GetCurrentEmberIndex(false);
|
||||||
|
|
||||||
if (ui.LibraryTree->topLevelItem(0)->childCount() > 1)
|
if (ui.LibraryTree->topLevelItem(0)->childCount() > 1)
|
||||||
OnDelete(v);
|
OnDelete(v);
|
||||||
@ -428,16 +435,26 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
|
|||||||
!focusedctrlCombo &&
|
!focusedctrlCombo &&
|
||||||
!QGuiApplication::keyboardModifiers().testFlag(Qt::AltModifier))//Must exclude these because otherwise, typing a minus key in any of the spinners will switch the xform. Also exclude alt.
|
!QGuiApplication::keyboardModifiers().testFlag(Qt::AltModifier))//Must exclude these because otherwise, typing a minus key in any of the spinners will switch the xform. Also exclude alt.
|
||||||
{
|
{
|
||||||
unsigned int index = combo->currentIndex();
|
unsigned int index;
|
||||||
double vdist = 0.01;
|
double vdist = 0.01;
|
||||||
double hdist = 0.01;
|
double hdist = 0.01;
|
||||||
double zoom = 1;
|
double zoom = 1;
|
||||||
double rot = 1;
|
double rot = 1;
|
||||||
double grow = 0.01;
|
double grow = 0.01;
|
||||||
const bool shift = QGuiApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
|
|
||||||
const bool ctrl = QGuiApplication::keyboardModifiers().testFlag(Qt::ControlModifier);
|
|
||||||
bool pre = true;
|
bool pre = true;
|
||||||
|
|
||||||
|
if (shift)
|
||||||
|
{
|
||||||
|
auto v = GetCurrentEmberIndex(true);
|
||||||
|
|
||||||
|
if (v.size() > 0)
|
||||||
|
index = v[0].first;
|
||||||
|
else
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
index = combo->currentIndex();
|
||||||
|
|
||||||
if (const auto r = m_Controller->Renderer())
|
if (const auto r = m_Controller->Renderer())
|
||||||
{
|
{
|
||||||
hdist = std::abs(r->UpperRightX() - r->LowerLeftX()) * 0.01 * m_Controller->AffineScaleLockedToCurrent();
|
hdist = std::abs(r->UpperRightX() - r->LowerLeftX()) * 0.01 * m_Controller->AffineScaleLockedToCurrent();
|
||||||
@ -471,7 +488,12 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
|
|||||||
if (xfupcount >= times)
|
if (xfupcount >= times)
|
||||||
{
|
{
|
||||||
xfupcount = 0;
|
xfupcount = 0;
|
||||||
combo->setCurrentIndex((index + 1) % combo->count());
|
|
||||||
|
if (shift)
|
||||||
|
m_Controller->SetEmber((index + 1) % ui.LibraryTree->topLevelItem(0)->childCount(), true);
|
||||||
|
else
|
||||||
|
combo->setCurrentIndex((index + 1) % combo->count());
|
||||||
|
|
||||||
//qDebug() << "global arrow plus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
|
//qDebug() << "global arrow plus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,10 +507,21 @@ bool Fractorium::eventFilter(QObject* o, QEvent* e)
|
|||||||
{
|
{
|
||||||
xfdncount = 0;
|
xfdncount = 0;
|
||||||
|
|
||||||
if (index == 0)
|
if (shift)
|
||||||
index = combo->count();
|
{
|
||||||
|
if (index == 0)
|
||||||
|
index = ui.LibraryTree->topLevelItem(0)->childCount();
|
||||||
|
|
||||||
|
m_Controller->SetEmber((index - 1) % ui.LibraryTree->topLevelItem(0)->childCount(), true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (index == 0)
|
||||||
|
index = combo->count();
|
||||||
|
|
||||||
|
combo->setCurrentIndex((index - 1) % combo->count());
|
||||||
|
}
|
||||||
|
|
||||||
combo->setCurrentIndex((index - 1) % combo->count());
|
|
||||||
//qDebug() << "global arrow minus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
|
//qDebug() << "global arrow minus key press: " << ke->key() << " " << o->metaObject()->className() << " " << o->objectName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -436,7 +436,7 @@ private:
|
|||||||
|
|
||||||
//Library.
|
//Library.
|
||||||
void SelectLibraryItem(size_t index);
|
void SelectLibraryItem(size_t index);
|
||||||
vector<pair<size_t, QTreeWidgetItem*>> GetCurrentEmberIndex();
|
vector<pair<size_t, QTreeWidgetItem*>> GetCurrentEmberIndex(bool isChecked);
|
||||||
void SyncSequenceSettings();
|
void SyncSequenceSettings();
|
||||||
|
|
||||||
//Params.
|
//Params.
|
||||||
|
@ -85,8 +85,9 @@ void Fractorium::SelectLibraryItem(size_t index)
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the index of the currently selected ember in the library tree.
|
/// Get the index of the currently selected ember in the library tree.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="isChecked">Whether to search for items that are checked or items that are only selected</param>
|
||||||
/// <returns>A pair containing the index of the item clicked and a pointer to the item</param>
|
/// <returns>A pair containing the index of the item clicked and a pointer to the item</param>
|
||||||
vector<pair<size_t, QTreeWidgetItem*>> Fractorium::GetCurrentEmberIndex()
|
vector<pair<size_t, QTreeWidgetItem*>> Fractorium::GetCurrentEmberIndex(bool isChecked)
|
||||||
{
|
{
|
||||||
int index = 0;
|
int index = 0;
|
||||||
QTreeWidgetItem* item = nullptr;
|
QTreeWidgetItem* item = nullptr;
|
||||||
@ -100,7 +101,15 @@ vector<pair<size_t, QTreeWidgetItem*>> Fractorium::GetCurrentEmberIndex()
|
|||||||
item = top->child(index);
|
item = top->child(index);
|
||||||
|
|
||||||
if (item && item->isSelected())
|
if (item && item->isSelected())
|
||||||
v.push_back(make_pair(index, item));
|
{
|
||||||
|
if (isChecked)
|
||||||
|
{
|
||||||
|
if (item->checkState(0) == Qt::Checked)
|
||||||
|
v.push_back(make_pair(index, item));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
v.push_back(make_pair(index, item));
|
||||||
|
}
|
||||||
|
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user