<CalistoMathias>
Hi... I was just wondering something. There isn't really a class meant for acting as a filter for Pose Views yet? Does it sound like a good idea to add such an abstraction. I was just thinking that in terms of my project I can directly add in "only" directory-filtering. But if I also choose the abstraction layer, then I could create a separate Filter class which could encompass a general sort of a filter.. Just wanted to get an initial thought
<CalistoMathias>
from some of the seasoned devs here :)
<Begasus>
excludes me :P
<CalistoMathias>
kinda so that in the future, incase a new sort of filter needs to be added it can be done easily... is this a good sort of thing to try or should I just stick to only implementing folder filtering at that level?
DKnoto_W2 has joined #haiku
DKnoto_W has quit [Ping timeout: 480 seconds]
mmu_man has joined #haiku
dovsienko has joined #haiku
_-Caleb-_ has left #haiku [#haiku]
_-Caleb-_ has joined #haiku
Calisto has joined #haiku
CalistoMathias has quit [Ping timeout: 480 seconds]
bbjimmy has quit [Quit: Vision[]: i've been blurred!]
<Calisto>
alright Begasus: the moment is here
<Calisto>
finally going to push the first UI change to Gerrit
<Calisto>
pretty nervous about this xD
bbjimmy has joined #haiku
MisthaLu has quit [Quit: Leaving]
<Begasus>
crossing fingers * :)
UW_Mill has joined #haiku
* Nephele
waits in anticipation
mmu_man has quit [Ping timeout: 480 seconds]
<phschafft>
oh?
<Nephele>
Well, if they push a UI change, and i get CC'ed to random Ui changes because i can do UI clearly I need to review it ;)
<phschafft>
hm.
mmu_man has joined #haiku
<Begasus>
so f****** annoyed by this lua ... no file './lfs.so/packages/lua-5.4.7-1/.self/lib/lua/5.4//boot/home/config/non-packaged/data/lib/lua/5.4/lfs.so' :/
<Nephele>
what are you doing with it Begasus?
<Begasus>
trying to make it look in non-packaged
<Begasus>
I had (hacked) it in a year ago, can't remember how :)
<Begasus>
afk for a bit
<Habbie>
need lua help?
<Nephele>
I think packaging help
<Habbie>
ok, all i can offer right now is to help understand how imports work in Lua
<Habbie>
so if there's a question of that shape, ping me :)
<Nephele>
it's more like how you would change the search path *in the executable* so it looks into haikus non-packaged directory too
<Nephele>
since package manager directories are RO and immutable :)
UW_Mill has quit [Remote host closed the connection]
<Begasus>
nice thing neochat up and running, no need to click those matrix links then :)
Nephele has quit [Quit: This computer has gone to sleep]
<Begasus>
luarocks also changed here so it install in ~/config/non-packaged/{data,lib} instead of ~/config/non-packaged/data/{data,lib}
<augiedoggie>
JME[m]: you have to clone both the buildtools and the main repository, and it's basically required to clone the main repo from gerrit, not github
<Habbie>
waddlesplash, any news on the AMD crashes?
<Begasus>
k, with the luafilesystem it now picks up the library
<waddlesplash>
Habbie: not really, if it still triple faults after those changes I don't have any more ideas at the moment
<Habbie>
alright
<Habbie>
yes, it still does
<Habbie>
but by the time i could report that i think you were gone for a few weeks
<waddlesplash>
no, I did see your messages
<Habbie>
ok good
<JME[m]>
augiedoggie: Ah. dang. Let me try that. Are the docs open for a PR?
PetePete has joined #haiku
<augiedoggie>
yes, but i think this is covered in one of the "getting the source" links
Nephele has joined #haiku
<JME[m]>
well it mentions git clone https://review.haiku-os.org/buildtools but not that the github repo might provide a bad clone. i am a bit surprised.
nosycat has joined #haiku
<zard>
I'm guessing cloning from github will make it harder to push changes for review
Nephele has quit [Quit: This computer has gone to sleep]
<augiedoggie>
buildtools are fine, but the main haiku repo on github has no hrev tags
<augiedoggie>
so, you'd still have to fetch those from gerrit or set the hrev manually
<augiedoggie>
i don't think buildtools uses the btrev tags, so it should work from github
<Calisto>
i hadn't added the BDeskView and container window cpp files :(
<Calisto>
did someone make a commit to them before I did?
Nephele has quit [Quit: This computer has gone to sleep]
<Calisto>
I specifically only staged the 5 Files that I had to commit from my system tho Gerrit shows an extra 3 files that were changed ?
Nephele has joined #haiku
<Calisto>
did I do something wrong :(
<augiedoggie>
waddlesplash changed those files yesterday, i think you just need to rebase and push again but i'm not very good with gerrit and i have to leave for work
<Calisto>
oh okay
<Calisto>
ill try doing that
<Calisto>
I also have quite a few styling guidelines changes to make
<Calisto>
i tried running git-haiku-format before pushing
<Calisto>
but it just said no modified files to change
<Begasus>
afk
<zard>
re
<zard>
Calisto: you can look at previous commit messages for inspiration for how to write yours
<Calisto>
yup
<Calisto>
is there any way to remove a push to gerrit?
<Calisto>
like and start from scratch
<Calisto>
i don't know what exactly happened i only pushed the files I changed but when I push the PR it also adds int he files that waddlesplash changed :( i did the rebase and it just says that git is up to date
<zard>
Probably you should fix the pr and push again
<Calisto>
yup
<zard>
Then the change on gerrit will update as well
<Calisto>
it undoes the changes that waddlesplash did for some reason
<Calisto>
JME[m] oh okay thanks. Right now i'm on Haiku Nightly though :)
<JME[m]>
sweet. good luck :)
<JME[m]>
Calisto: question: are you running in a VM? If so which one? Or real hardware?
<Calisto>
real hardware
<Calisto>
I have an older dell inspiron 1365 i think
<Calisto>
its an 19 7th gen
<Calisto>
and 4gb ram
<Calisto>
okay waddlesplash: it installed
<JME[m]>
boot from .ISO?
<Calisto>
I didn't get you JME[m]?
<waddlesplash>
Calisto: well then just run it :)
<waddlesplash>
just "git gui" in the repo
<Calisto>
oh wow
<Calisto>
this GUI is so much better
<Calisto>
okay so what do I do next?
<Calisto>
do I just commit this now?
<waddlesplash>
well, stage the files, and then amend your previous commit
<waddlesplash>
there's an "Amend previous commit" checkbox
<Calisto>
yup
<JME[m]>
Calisto: do you boot from an ISO CD/USB stick? Or have you installed permanently on your Dell?
* zard
give git gui a whirl
<waddlesplash>
Calisto: and then you just push again
<Calisto>
permanently installed it on the disk
<Calisto>
oh okay
<Calisto>
ill just do that
<waddlesplash>
gerrit will update your change
<waddlesplash>
since it has a Change-Id in the commit message
<Calisto>
btw when I click the ammend last commit checkbox
<Calisto>
are the ContainerWindow and DeskWindow files supposed to disappear?
<waddlesplash>
yes
<Calisto>
oh okay
<waddlesplash>
it shows the final diff of the amended commit
<waddlesplash>
so all the existing changes will appear
<waddlesplash>
your new changes cancel out the old changes, so the files won't be listed now
<Calisto>
ohhhh
<Calisto>
that helps a lottt
<Calisto>
also the commit box is the exact width that is shown in Gerrit?
<Calisto>
like the commit message box?
hightower4 has joined #haiku
<waddlesplash>
it might be? if the window is the default size
<waddlesplash>
probably 80 columns
<Calisto>
ohhh okay. I must have mistaken the commit guideline for 100 columns. I'll just fix that too.
<waddlesplash>
zard: Calisto: another git-gui feature I use *a lot*: if you right click in the diff area, you can stage/unstage individual chunks
<waddlesplash>
Calisto: yeah, 100 columns is the limit for code, still 80 for messages
<Calisto>
oh wow
<Calisto>
wait you can unstage specific lines?
<waddlesplash>
yes
<Calisto>
wow
<Calisto>
how does that even work xD
<waddlesplash>
it's a very useful tool
<Calisto>
i thought you could only do entire files
<waddlesplash>
there are ways to do that from the command line but it's much more annoying
<waddlesplash>
stage/unstage hunks, that is
<zard>
ok, looks nice
<waddlesplash>
I use it all the time
<waddlesplash>
was a major motivation for me to find a way to port Tk to Haiku lol
<zard>
I'm quite used to the command line. Just run `git add -p` to stage hunks :P
<Calisto>
wow I have quite a bit to learn on that front
<Calisto>
but I guess good opportunity to learn it :)
<waddlesplash>
IMHO the problem a lot of people have with Git is that they try to memorize various commands to "just do things you want done"
<zard>
But I like that `git gui` lets you jump around while staging hunks
<waddlesplash>
if you instead learn the basics of how it works on a conceptual level it's much easier to work with
<Calisto>
hmm... i edited the commit message as well and clicked the push button tho now its just stuck on working... please wait...
<Calisto>
it isn't really prompting me for the ssh key password either
<waddlesplash>
and you instead ask questions like "how do I get from state A to state B?" and then look for commands
<waddlesplash>
Calisto: I basically never push using the GUI
<Calisto>
ohhhh
<waddlesplash>
not really useful to me, I stick to the command line for that
<Calisto>
shoot
<Calisto>
oh okay cool
<Calisto>
so now if i close the GUI
<Calisto>
the changes still remaining of all the things I just did right?
<Calisto>
that's really cool
<waddlesplash>
yes, of course
<waddlesplash>
the gui just is running Git commands under the hood
<Calisto>
yup
<waddlesplash>
or manipulating the repo state directly
<Calisto>
oh okay
<Calisto>
cool ill just do the commit using the GUI and push it using the terminal line
hightower3 has quit [Ping timeout: 480 seconds]
<Calisto>
okay fingers crossed
<Calisto>
waddlesplash: is there some online resource where I can get into the nitty-gritty details of all these git commands. Most videos/tutorials on YouTube don't really get into this much detail ... if you know of any it would be of great help :)
<waddlesplash>
no idea, haven't looked
<waddlesplash>
like I said above, just "learning commands" isn't the approach I think makes sense to take
<waddlesplash>
learn a bit about what Git is actually doing and you will then have a better model of what the commands are for
<waddlesplash>
very basic overview of Git:
<Calisto>
ohh okay so what you are saying is I should understand what git actually does under the hood?
<waddlesplash>
not exactly. more like the concepts of what it does under the hood, the technical details are not so important
<Calisto>
btw zard: it worked with the fix... now the PR has only the files I had changed... thanks a lot for the help :D
<Calisto>
waddlesplash: *
<Calisto>
ugh i tagged the wrong user by mistake
<Calisto>
sorry sorry
<JME[m]>
and recommend to do a git pull before a git push just to make sure nothing was forgotten/overlooked
<Calisto>
oh okay... ill take a look at that cheatsheet JME[m]
<Calisto>
and ill try to get a look at the concepts
<Calisto>
of Git too.
<Calisto>
till now I was just using the commands to do what I needed to do
<waddlesplash>
* the "git repository" itself is just data files (the .git folder), containing all the history, branches, etc.
<waddlesplash>
* the "working tree" is everything outside the ".git" directory
<waddlesplash>
* "git status" tells you 1. what the differences are between your "working tree" and the current "HEAD" state of the git repository, and 2. what changes are "staged" (that means, they've been added to the repository data, but in a temporary state; they aren't a "commit" yet.
<waddlesplash>
* "git commit" makes a new commit (you can think of it like a "tree node") on top of the current "HEAD" commit
Nephele has quit [Quit: This computer has gone to sleep]
<waddlesplash>
and thus obviously 'git add' "stages" a file
<Habbie>
some git documentation very confusingly uses 'cached' to mean 'staged'
<Calisto>
oh okay wow
<waddlesplash>
some example implications of this:
<waddlesplash>
* any file in the "git repository" can be retrieved at any point in its history. indeed, files that are "staged" can be retrieved too. So if I make a file, "git add" it, then delete it, "git status" will show it as "added" status, and I can use "git checkout <file>" to get it back
<waddlesplash>
but also I can get back files from earlier
<waddlesplash>
that's what the command I had you run above did: "git checkout HEAD~1 <files>"
<waddlesplash>
this means "checkout" (retrieve into the "working tree") these specified files, just as they were at the commit "HEAD~1", that is, 1 commit before the topmost one made
<Habbie>
btw, modern git wants you to never use 'checkout' because it has too many distinct purposes; instead if you're new, it's recommended to learn 'restore' and 'switch' separately
<waddlesplash>
if we just said "HEAD" it would've overwitten any changes in the working tree or the "staged" ones
<waddlesplash>
HEAD~1 means the commit before HEAD (and HEAD~2 the second, and so on)
<waddlesplash>
Habbie: yeah, checkout was indeed a pretty overloaded command
<waddlesplash>
I haven't gotten around to learning those. I probably will pick up "switch" eventually
<Calisto>
oh wow
<zard>
Habbie: Interesting. I use git restore and git checkout, so I guess I have a weird combination
<Habbie>
so far i've only managed to pick up restore :D
<Habbie>
the Pro Git book is free on the git website, people tell me it is good too
<Calisto>
yup i've heard about that one
<zard>
Yes, from what I've read from it, it's pretty nice
<dovsienko>
in my experience, the biggest problem among real-world git users is not understanding/caring what commit history they produce
<dovsienko>
which sequence of git/shell commands makes the most sense to you is a private detail
<Habbie>
in my experience, it's not understanding the model enough and getting into states where the only thing that makes sense to them is rm -rf ; git clone
<waddlesplash>
yeah, there's also that
<Calisto>
wait i just have one last question... in my PR on Gerrit... it shows that all the haiku-format comments were resolved
<Calisto>
does this mean that it just automatically formatted t hem right?
<Calisto>
or will I need to do it by hand by looking at the suggestions?
mmu_man has quit [Ping timeout: 480 seconds]
<waddlesplash>
you will have to look at the suggestions
<waddlesplash>
note that some of them may not make sense or should be ignored
<Calisto>
oh okay wow
<Calisto>
there are like 130 of these xD
<Calisto>
from patch 1 and patch 2
<waddlesplash>
yeah a lot of them don't make sense
hightower4 has quit [Ping timeout: 480 seconds]
<Calisto>
might be.. but for now I think ill just fix it as per what it is saying xD
<waddlesplash>
like obviously the BLayoutBuilder ones ought to be ignored
<waddlesplash>
Calisto: no, there are definitely a number you should ignore
<waddlesplash>
the ones saying to put the "new BCheckbox..." for example, on new lines, should also be ignored
<waddlesplash>
the ones suggesting adding spaces here and there are probably all correct
<waddlesplash>
and about reordering includes
<Calisto>
ohhh i see
<Calisto>
okay then I'll definitely fix the ones that look like they are making sense.
<waddlesplash>
:)
<Calisto>
also waddlesplash: it isn't giving me any option to resolve your comment
<waddlesplash>
no? I see a "Done" button here
<waddlesplash>
doesn't that appear for you?
<Calisto>
oh wait nevermind it logged me out for some reason. Yup i resolved it :D
<waddlesplash>
yeah, Gerrit login doesn't persist very long
<Calisto>
now I need to publish the blog post on the menu bar changes, fix all the styling guideline errors, and get working on the folder filtering :D
<Calisto>
btw waddlesplash: were you able to see the question that I had posted earlier
<waddlesplash>
where?
<Calisto>
I did mail my mentor nielx[m] about it too ...
<Calisto>
I had sent it a while back...
<Calisto>
but I think there were not a lot of people active
<waddlesplash>
I usually skim scrollback but I often don't read it in detail
<Calisto>
if you are free for a little bit longer, could I ask you :D ?
<waddlesplash>
"don't ask to ask"
<waddlesplash>
if I can't answer, I'll just answer that I can't answer :p
<Calisto>
While trying to implement the folder filtering logic in the PoseView.cpp file, I tried finding some sort of class in the Haiku API that pertains to a general sort of Filter but couldn't find anythign like that. Basically what I was doing was creating a specific filter function that only works to filter Models by their directory... I was just thinking whether I should abstract this and make it so that I can create some sort of abstract class, say
<Calisto>
BFilter, which can't be instantiated but only acts as a base class. Any filter function would be a child version of this class with the Filter function overridden.
<Calisto>
Basically I was thinking whether I should create an abstraction over filtering, and create some sort of general class that represents a filter rather than just doing a specific folder filter
<waddlesplash>
isn't this what BRefFilter already is?
<Calisto>
I''m not sure whether this is a good or a bad idea
<Calisto>
Yah I was looking into BRefFilter but it said that its only being used by the BFilePanel for some reason. I then looked into the TFilteredQuery class but couldn't find it being used there as well so I was just completely confused
<Calisto>
also the BRefFilter only works for entry_refs right?
<Calisto>
I was talking about a general filter that takes in any sort of object and returns a boolean
<waddlesplash>
yes, but an entry_ref refers to a file
<waddlesplash>
which is what you want to filter here
<waddlesplash>
and BFilePanel displays files with BPoseView, so it's BPoseView that does the filtering
<waddlesplash>
so you can do the same
<Calisto>
ohhh okay... then ill probably just use BRefFilter to do the folder filtering... how come there isn't a more general filter written that can apply to any sort of an object and not just entry_refs or things that point to a file?
<Calisto>
is it because its not of much use?
<waddlesplash>
how would it even work?
mmu_man has joined #haiku
<Calisto>
like lets say i had a list of objects given by some sort of custom written class and I wanted to write a filter for them... but they don't have much to do with entry_refs or something liket hat...
<waddlesplash>
but the objects have to have a type
<waddlesplash>
so what type will the base class specify?
<waddlesplash>
also, I wonder if we can actually add this feature to query code
<waddlesplash>
inside the filesystems
<waddlesplash>
yes, the indexes aren't by-parent, but we could still add a query term for this actually
<Calisto>
i mean this is probably a very very stupid idea, but like inside the base class we could just add a function that takes in two void poitners right, the first points to whatever object and the second points to any sort of object that can be used as argumetns.. basically if you are writing a filter you will have to create a child version of this class and override the abstract filter function defined in the base class. you could also define some sort of
<Calisto>
struct for the args as well as the object type wherever you are declaring the child class
<waddlesplash>
yeah, I don't think there's any value to that
<Calisto>
i know that is probably very very "dumb", but it was just a though :P
<waddlesplash>
because comparisons or filterings usually will need more parameters than just pointers
<waddlesplash>
you also lose type-safety that way
<Calisto>
yah but don't you put back the type-safety in the child class?
<waddlesplash>
Calisto: before you implement this though, I think we could actually do this at the FS level
<waddlesplash>
or at least I don't see why we couldn't
<Calisto>
no no i probably won't implement this at the moment... it was just on the backburner
<Calisto>
i was just confused as to why such a thing wasn't there
<waddlesplash>
no, I meant, the query filtering feature
<Calisto>
ohhhh
<Calisto>
Wait how would we do it at the file system level?
<Calisto>
you mean the directory filtering ?
<waddlesplash>
yes
<Calisto>
ohhh
<waddlesplash>
by adding "parent" as a valid Query parameter
<Calisto>
as in the query returns only the filtered results back
<Calisto>
ohhh
<Calisto>
i see
nosycat has quit [Quit: Leaving]
<Calisto>
wait i'm still trying to process what you just said :(
<waddlesplash>
yes, basically
Nephele has quit [Quit: This computer has gone to sleep]
_-Caleb-_ has left #haiku [#haiku]
_-Caleb-_ has joined #haiku
<waddlesplash>
Calisto: eh, actually, not really feasible
<waddlesplash>
we could filter out for one parent at the FS layer, but a whole directory tree, not really
<Calisto>
ohh
<Calisto>
that makes sense otherwise im pretty sure augiedoggie would have implemented that as well in his TFilteredQuery class
<Calisto>
although this is out of scope since I won't be going ahead with it anyways, I still, out of curiosity wanted to ask why a filter function couldn't work with just two void pointers... a similar approach was taken in the TFilteredQuery class with the filters there
<Calisto>
ill stick to creating the FolderFilter only though for now
<waddlesplash>
you need more than a folder filter
<waddlesplash>
presumably people want to filter out folders recursively
<Calisto>
recursively as in including the subdirectories as well?
<waddlesplash>
so I think you will need to gather all subfolder ino_t together in a HashSet or something
<Calisto>
kind of like when you select what folder you want to search in ... you get the option to serach in it recursively or only at that level
<waddlesplash>
and then in the filter, check if the folder is in the HashSet
<waddlesplash>
and if not, ignore it
<Calisto>
oh wait are you saying for at the FS level?
<Calisto>
oh okayyyy... no no i was mentioning at the results level... like once the query generates the results
<waddlesplash>
yes
<waddlesplash>
that's what I meant
<Calisto>
i mean using the entry_refs you could just filter it out right? using a very similar approach to the FolderFilter function written in the TFilteredQuery class?
<waddlesplash>
yes
<Calisto>
oh okay cool :D
<Calisto>
I guess that's all the questions i had xD
<Calisto>
I mean I do have one more but I think I need some dummy code on codepen to try and explain what I meant with the filters a little better .... but i think ill keep it for once im done with the project side of folder filtering :)
<Calisto>
waddlesplash: thanks for all the help :)
<waddlesplash>
no problem :)
<Calisto>
cool.. I'll get working on the folder filtering then :)
<Calisto>
have to also push the blog post up before I forget
<waddlesplash>
looks more like what you would do in C not C++
<Calisto>
ohhh that makes sense
<Calisto>
is it like inherently like dangerous code since you don't have type-safety at the Filter class level?
<Calisto>
anyways this isn't really useful for my project... i was just messing around with some code to try out something new
gouchi has joined #haiku
arti has quit [Ping timeout: 480 seconds]
<Calisto>
waddlesplash: so while im implementing the folder filtering at the PoseView level, is it better if i don't go by the way the code is written in the TFilteredQuery... since it also does something similar with void pointers and things like that?
<OscarL>
There you'll see the problem was on file: src/kits/tracker/FindPanel.cpp
<OscarL>
Panda's 2.2.2 requires "Cython==3.0.5" and "numpy>=2.0.0rc1". I'm *not* looking forward to updating those :-D
<OscarL>
In other news... our man/mandoc use of mandoc.db is plain broken. strace shows it trying to read the db from the wrong places... resort to find manpages by looking around on the filesystem, and then misleadingly warn about the mandoc.db not containing files.
<Calisto>
heyy
<Calisto>
yup I'm still here
<Calisto>
okay I'll just give that a check
<OscarL>
+1
<Calisto>
wait so where is that error given?
<Calisto>
oh okay one sec ill just check that link
<Calisto>
okay yah I see the error now
<Calisto>
by any chance do you know which of these points to the line?
<OscarL>
let me check locally.
<Calisto>
the weird thing is when i compile this locally it works just fine
<OscarL>
different compiles can give different output.
<OscarL>
in this case... old gcc2 can be a PITA to please.
<Calisto>
ohh i see
<Calisto>
I'm pretty sure the RemoveItem error must be coming from the FindWindow::ClearMenu(BMenu* menu) function?
<OscarL>
Calisto: there's an .html file with the full log.
<Calisto>
oh okay one second ill just try looking into that
<OscarL>
yeah.. that's what I'm reading on buildlog.html