| 00:23.01 | Stragus | clock, publishing your own distro sounds like a lot of work. Anything special you are aiming at? |
| 00:25.33 | Stragus | I also don't want Qt on my boxes, except in a little sandbox somewhere for a project from work. I'm unsure regarding GTK as I googled how to achieve a specific need and the information was lacking |
| 00:26.27 | Stragus | Not that wxwidgets was much better, but I'll have to pick one and figure things out eventually. Unless I just build the GUI out of OpenGL. |
| 00:41.55 | clock | Stragus, I am aming at that it actually works and that its clear for users under which conditions is it supposed to reliably work, how to install it, and how to use it for common tasks people use PC for |
| 00:42.04 | clock | I actually don't make a distro but a PC |
| 00:42.10 | clock | cause distro without PC is useless |
| 00:42.14 | clock | PC without distro is useless |
| 00:42.20 | clock | its the whole thing that is useful |
| 00:42.35 | clock | I am making neither a heater nor a plastic shell. |
| 00:42.38 | clock | I am making an iron |
| 00:42.46 | clock | Which you can actually use to iron clothes |
| 00:43.34 | clock | Stragus, and I am aiming at copying the "bureaucracy" of the distro from human brain |
| 00:44.23 | clock | The brain has at least hundred million years of history of success at managing behaviour |
| 00:44.31 | clock | so its kinda... proven |
| 00:44.47 | clock | And I don't feel like inventing a wheel again when u have a model which has such long history of success |
| 00:45.03 | clock | So one thing is for example that I don't have a database of installed packet |
| 00:45.21 | clock | thats follows from copying the brain design |
| 00:45.33 | clock | It has a nice side effect - it cant get corrupted |
| 00:45.38 | Stragus | So... you are building a distro organized like a brain? :) I'm probably not following the concept |
| 00:45.48 | clock | Its really difficult to corrupt a database which doesn't exist ;-) |
| 00:46.06 | clock | Stragus, yeah exactly |
| 00:46.11 | clock | brain can do things right? |
| 00:46.30 | clock | like complex actions assembled from simpler actions right? |
| 00:46.44 | Stragus | A brain doesn't have much structure or design, it evolves and learns towards greater dopamine rewards |
| 00:47.33 | clock | I feel disrespected when you say " A brain doesn't have much structure or design" |
| 00:48.24 | Stragus | As any neural network, every brain is unique, it's organized in its own chaotic way learning toward a goal |
| 00:48.47 | Stragus | And I'm not sure how the concept can be transfered to a Linux distribution |
| 00:53.44 | clock | Stragus, and do you want to know it? |
| 00:56.02 | Stragus | I'm curious, though perhaps the anology meant something else than what I'm assuming |
| 00:58.24 | clock | OK its copied pretty straightforward from the brain |
| 00:58.41 | clock | just rip the circuit out of the brain and replace with different content |
| 00:59.17 | clock | like say instead of drinking from a mug, writing a letter or eating an apple I put making sure that firefox is functional, making sure that libreoffice is functional, making sure that brl-cad is functionaö |
| 01:00.11 | clock | Stragus, I give you an example how it works |
| 01:00.22 | clock | example: we want to achieve a reliable operation of BRL-CAD |
| 01:00.42 | clock | Will BRL-CAD operate reliably if the RAM of the PC is unreliable? |
| 01:02.04 | Stragus | The RAM needed depends on the operations that have to be performed, and only BRL-CAD knows that |
| 01:03.34 | clock | I feel disrespected when I get an answer which is in my opinion to a different question. I haven't asked whether the RAM needed depends on the operations that have to be performed or whether BRL-CAD knows that the RAM needed depends on the operations that have to be performed, but whether BRL-CAD will operate reliably if the RAM of the PC is unreliable. |
| 01:03.39 | clock | Will BRL-CAD operate reliably if the RAM of the PC is unreliable? |
| 01:05.32 | Stragus | Well no, of course. Pretty much nothing will operate reliably if the RAM is unreliable |
| 01:05.52 | clock | yes exactly - its obvious |
| 01:06.11 | Stragus | So obvious that I thought you were asking something else ;) |
| 01:06.32 | clock | So one of the conditions needed for the BRL-CAD to operate reliably is that the RAM is reliable AT THE MOMENT WHEN THE BRL-CAD runs |
| 01:07.33 | Stragus | One of the conditions needed for a working operating system is also that the RAM is reliable |
| 01:07.41 | clock | that too |
| 01:08.12 | clock | So there must be some kind of system in place - no matter whether automatic or through manual testing by the user - to CONTINOUSLY ensure that the RAM is reliable |
| 01:08.38 | clock | I had one laptop where the RAM was new, good, tested, running few years, then developed defects |
| 01:09.02 | clock | Another requirement for BRL-CAD is I assume a working X Window System |
| 01:09.19 | clock | Again, it doesnt matter whether there is a valid entry for X Windows System in the system package database |
| 01:09.24 | Stragus | As you know, EEC memory is meant to detect (and correct) issues, warning the user when it's getting bad |
| 01:09.31 | clock | What matters is that the X Windows actually works |
| 01:10.16 | clock | You may have a good entry in database but broken X Window System - for example, through library update which causes failure to load of dynamic library, or through corruption of executable upon power loss and file system corruption |
| 01:10.34 | clock | Stragus, yes - ECC memory is one way how to ensure continously that the RAM is good |
| 01:10.39 | clock | another option is periodic testing |
| 01:10.50 | clock | Or there is option in kernel to test memory on every boot |
| 01:11.14 | clock | And please notice BRL-CAD will work reliably even when you don't have any package database on the system |
| 01:11.24 | clock | The package database is absolutely irrelevant for operation of BRL-CAD |
| 01:11.41 | clock | It is the proper operability of the X Window system that is actually relevant |
| 01:11.51 | Stragus | As any other software, it's happy if it finds its dependencies, the package management (if any) doesn't matter |
| 01:12.02 | clock | well find is not enough |
| 01:12.25 | clock | whats necessary that the software actually works |
| 01:12.37 | clock | like... dependency test may test for presence of some header or library to link |
| 01:12.55 | clock | but it may test for maybe 10% of the files in the package and the package itself may be broken |
| 01:13.20 | clock | Stragus, my system, like the brain is robust |
| 01:13.38 | Stragus | Sure. The user then has to fix dependencies, although that's generally the job of package managers |
| 01:13.47 | clock | You silently delete or corrupt an executable, and what the system does, it just recompiles the bad software and replaces it |
| 01:13.50 | clock | its like self-healing |
| 01:14.04 | clock | but the kind oif self-healing you have to shoot really heavily to actually bring it down :) |
| 01:14.16 | Stragus | How does it detect a bad dependency? |
| 01:14.48 | clock | Well it actually tries to run it |
| 01:14.55 | clock | if it doesnt execute, its bad |
| 01:15.45 | clock | so it ensures its good |
| 01:15.46 | Stragus | And let's say it crashes, it was linked to libpng of a different version than assumed due to direct access into PNG structs (which is deprecated) |
| 01:15.48 | clock | compile again |
| 01:15.50 | clock | replace the bad one |
| 01:16.13 | clock | if it crashes, test fails, the bad software gets replaced |
| 01:16.58 | Stragus | What do you replace? The software calling libpng? |
| 01:17.13 | clock | The software that malfunctions |
| 01:17.36 | clock | fails? chug it, replace with a new one! :) |
| 01:17.40 | Stragus | The software could function perfectly and the problem being in any of its dependency due to a version mismatch |
| 01:18.33 | clock | Stragus, its me who decides which versions of software and libs are on the system |
| 01:18.41 | clock | I must not allow this. This would be a bug in my product. |
| 01:19.05 | Stragus | Well... You know, package management is a real pain |
| 01:19.11 | clock | I don't find it |
| 01:19.26 | clock | I don't find it pain |
| 01:19.46 | Stragus | Installing software A demands library X being version > N, but software B was compiled against version N, so software B would also have to be recompiled if you update N |
| 01:20.03 | Stragus | Except that installed software C doesn't actually work at all if X has version > N |
| 01:20.24 | Stragus | And it gets a lot more complicated than that. Distribution package management is a little nightmare |
| 01:20.42 | clock | Stragus, well real life has a ton of "impossible" situations like that |
| 01:20.56 | clock | Human brain has of course methods how to deal with this |
| 01:22.05 | clock | Typical situation is you want to go to cinema (SW A) and shopping (SW B) |
| 01:22.15 | clock | Cinema is in floor N and mall in floor M |
| 01:22.25 | clock | A demands your body be in floor N B demands your body be in floor M |
| 01:22.32 | clock | impossible to satisfy at once |
| 01:24.10 | Stragus | I guess I'm not seeing where the brain comes into play in all this |
| 01:24.40 | clock | Stragus, brain has a universal structure to solve all kinds of dependencies like this |
| 01:24.44 | clock | I just take it over |
| 01:25.09 | clock | Cause I believe its proven, elegant, fast, robust, reliable,... |
| 01:26.00 | Stragus | I really have no idea how that's going to work, but good luck :) |
| 01:26.19 | clock | Stragus, I believe the reason package management is a nightmare people try to program package management in a serial, von-neumann approach which I believe is grossly unsuitable for that |
| 01:26.39 | clock | Stragus, I think u already know very well how it works :) |
| 01:26.45 | clock | Please watch yourself doing any kind of task |
| 01:26.48 | clock | cleaning teeth |
| 01:26.58 | clock | u see how it works... |
| 01:27.16 | Stragus | I understand neural networks, I understand how they work and learn. But I don't understand how you want to apply that concept to package management |
| 01:27.41 | clock | Stragus, I dont put a self-learning neural network inside. I just copy the already learned product |
| 04:50.14 | *** join/#brlcad gaganjyot (~gaganjyot@124.253.225.90) | |
| 06:15.32 | *** join/#brlcad gaganjyot (~gaganjyot@124.253.225.90) | |
| 06:22.56 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 07:15.02 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 09:09.40 | *** join/#brlcad luca79 (~luca@net-2-34-209-63.cust.vodafonedsl.it) | |
| 10:14.44 | *** join/#brlcad ries (~ries@D979EA84.cm-3-2d.dynamic.ziggo.nl) | |
| 10:58.32 | *** join/#brlcad vladbogo (~vlad@188.25.239.134) | |
| 12:30.16 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 12:52.32 | ries | Stragus: our experience is that using Qt allows you to create a UI on different platforms very easely |
| 12:52.44 | ries | A lot of thingâs âjust workâ |
| 12:53.33 | ries | I know compilation is a bit âoddâ if you are used to autotools (hehehe) but on the other hand the same build instruction can be issued for mac, windows and linux |
| 12:56.45 | *** join/#brlcad gaganjyot (~gaganjyot@124.253.225.90) | |
| 13:09.25 | *** join/#brlcad clock (~clock@212.203.58.127) | |
| 14:01.29 | *** join/#brlcad ries (~ries@D979EA84.cm-3-2d.dynamic.ziggo.nl) | |
| 14:10.08 | starseeker | vladbogo: thanks. I started exploring what it will take to re-create Archer's level of functionality, so I haven't gotten too far yet |
| 14:12.02 | starseeker | vladbogo: you can build on what is there if you want, but it might still be worthwhile to implement the minimalist MGED interface and resolve some things like key binding mapping there. I would suggest re-using the cadconsole stuff for a command prompt, since there's no particular point in redoing that when it seems to be working... |
| 14:13.16 | starseeker | The Qt dock widget isn't *quite* what we need - it's very close, but when the windows de-dock they need to turn into full fledged toplevel windows instead of the "floating dockwindow" thing they've got going on right now |
| 14:14.27 | starseeker | I'm not sure how hard it will be to make our own modified version of QDock, so for now I'm going to focus on other things and return to that later |
| 14:17.03 | starseeker | the tree widget is critical to get right, since Archer handles that very well now - that and figuring out how to structure the edit panel look like the most complicated UI bits to deal with at this point |
| 14:17.40 | starseeker | I figure that should be fairly orthogonal to your work building up from the Qt dm/fb, and hopefully we can meet in the middle |
| 14:20.34 | starseeker | one note about the console - I deliberately stripped it down compared to the Paraview version, but it may prove I took that too far - scroll history has to have a limit regardless (even xterms have such a limit) and we may end up wanting the richer features of the fancier text environment if we want to add GUI integration to the console (things like clicking on objects in output of the tops command, for example, to draw them) |
| 14:21.17 | starseeker | for now we'll stay simple - stuff like that is for *after* we get MGED/Archer level fuctionality working - but I wanted to point it out for later |
| 14:23.00 | starseeker | rather likes that idea because it will hopefully be simpler than adding a filter system to the tree view - just do a search for what you want on the command prompt and have the search results be clickable to select things in the tree... |
| 14:30.38 | vladbogo | starseeker: that's what I thought too to reuse the console and get a minimal drawing functionality at first. That said I will start working at this approach and come back with updates. |
| 14:31.36 | starseeker | vladbogo: cool. With any luck the basic drawing will be quite simple (in theory it should be easier to use "proper" Qt interaction bindings than shoehorning in Tk stuff) |
| 14:32.53 | vladbogo | that's what I hope too |
| 14:34.20 | starseeker | Qt menus are also quite simple, and feel free to use standard Qt dialogs anywhere it makes sense (File open and save are definite, and I suspect QColorDialog will be an improvement over the Tk version: http://qt-project.org/doc/qt-5/qcolordialog.html) |
| 14:38.20 | starseeker | Don't worry about most of the dialogs that are custom in MGED at this stage - a lot of those are quick hacks that need re-thinking, and I know that the Build Pattern tool (for example) needs to be massively refactored into C and have its interface re-thought |
| 14:41.04 | starseeker | that will actually be the fun stage of all this - when we have the foundation in place, we can start to think about what the *good* ways to do UI bits for BRL-CAD are instead of what the *quick* ways are :-) |
| 14:45.08 | starseeker | one think I don't know for sure yet is whether the native Qt HTML support can usably display our help documentation, or whether we need an all-up webkit window to handle the CSS formatting. |
| 14:45.17 | starseeker | s/one think/one thing/ |
| 14:46.37 | starseeker | in principle it would be nice to avoid needing webkit for the help system, but if the choice comes down to building webkit as part of Qt or porting tkhtml3 from Tcl/Tk to Qt... urk |
| 14:47.42 | starseeker | another option would be a stand-alone CSS "pre-processor" that could feed finalized HTML to a renderer, but if one exists I haven't found it yet |
| 14:49.10 | starseeker | anyway, first things first. |
| 14:56.07 | Notify | 03BRL-CAD:starseeker * 63269 (brlcad/branches/qtged/src/qbrlcad/cadtreemodel.cxx brlcad/branches/qtged/src/qbrlcad/cadtreemodel.h and 2 others): Add headers to the cadtree code |
| 15:14.11 | Notify | 03BRL-CAD:starseeker * 63270 (brlcad/branches/qtged/src/qbrlcad/main.cxx brlcad/branches/qtged/src/qbrlcad/main_window.cxx brlcad/branches/qtged/src/qbrlcad/main_window.h): Move the dock widgets' initialization to main_window.cxx |
| 15:18.55 | teepee | runs screaming after reading "qt dock widgets" ;) |
| 15:51.17 | starseeker | teepee: have you had problems with them? |
| 15:51.56 | teepee | well, problems is maybe too big a word |
| 15:52.11 | teepee | mostly ask 3 users and get 5 answers how it's supposed to work |
| 15:52.18 | teepee | like "i don't want them to undock" |
| 15:52.24 | starseeker | heh |
| 15:52.25 | teepee | "the title bars are too big" |
| 15:52.58 | teepee | i've ended up with https://github.com/openscad/openscad/pull/1003 so far :) |
| 15:53.38 | teepee | or "i can't make them as small as previously" (before it was a dock widget) |
| 15:54.29 | teepee | there were some big issues in Qt5 on MacOS and in case of multi-monitor usage |
| 15:54.39 | teepee | I think most are solved now |
| 15:55.19 | starseeker | teepee: I was a little surprised there doesn't seem to be an option to make the undocked windows full toplevel windows, but perhaps that's too strange a use case |
| 15:56.01 | teepee | yep, that would be awesome. I do understand they are not supposed to be that way, but it would help in some cases |
| 15:56.19 | starseeker | for us it will be essential |
| 15:56.29 | teepee | undocking to separate top-level is not too much code |
| 15:56.39 | teepee | but it's annoying having to write it manually |
| 15:56.57 | starseeker | nods - I'm guessing if there is a problem, it will be recognizing the correct placement for a re-docking |
| 15:57.49 | teepee | I'm still thinking about having to GUI modes where the main window is a different widget |
| 15:58.06 | starseeker | you mean as opposed to docking? |
| 15:58.20 | teepee | depending on how the user works, the main widget is either the text editor or the output view window |
| 15:58.43 | teepee | more like a combination of both due to different usage |
| 15:59.00 | teepee | when using an external editor, the viewport is pretty much the main window |
| 15:59.03 | starseeker | that's why I want the ability to un-dock to toplevel windows - if that's working, in theory either could be treated as the "main" window |
| 15:59.36 | teepee | well, one has to have the toolbar :) |
| 15:59.47 | starseeker | can't they both have toolbars? |
| 15:59.58 | teepee | ok, it would be possible to copy that and use the "same" everywhere |
| 16:00.04 | teepee | but you can't set the same instance |
| 16:00.54 | teepee | I have no idea how MacOS and Unity (with common menu bar) handle that then, probably switching when the window changes |
| 16:01.14 | starseeker | is it critical to do so? I suppose if you have elements on the toolbar reflecting state that could be tricky, but if you used signals and slots to make have all instances of a button "listening" for a state change wouldn't that work? |
| 16:01.57 | teepee | when using actions the state->menu-item should be fine |
| 16:02.28 | teepee | the other direction should work too, I guess one just has to make sure not to create circles when triggering changes |
| 16:02.38 | teepee | but then that could happen with single menu/toolbar too |
| 16:02.46 | starseeker | is a little surprised the dock isn't more mature than this - is it a relatively new feature in Qt? |
| 16:02.56 | starseeker | or just something only now getting wide use? |
| 16:03.15 | teepee | don't know, it's at least in 4.8, so it's not very new |
| 16:03.34 | teepee | I think they really just see it as "Tool" window like for graphics editors |
| 16:04.08 | starseeker | ah |
| 16:04.26 | teepee | they do have that "MDI" mode, but it's modeled like on Windows which pretty much nobody wants to have :D |
| 16:04.31 | starseeker | nods |
| 16:04.55 | starseeker | yeah, I really like what they do have for docking aside from that "not a toplevel window" bit |
| 16:05.28 | starseeker | and that's mostly because MGED has established the tradition of the console and display both being toplevel. |
| 16:06.04 | teepee | yup, mostly it's fine. I have to try if the awful drawing problems with Qt5 are still there (I'm not sure if we cause this ourself or if that's really Qt5 bugs) |
| 16:06.54 | teepee | sometimes after redocking it just draws in some random rectangle in the main window that has nothing to do with the actual docked widget |
| 16:07.06 | teepee | with Qt4 that never happened |
| 16:07.18 | starseeker | huh |
| 16:07.31 | starseeker | yeah, that's not good |
| 16:08.06 | teepee | it's easy to fix by just touching anything that resizes the window or parts of it |
| 16:08.44 | starseeker | ah - so a "safe" workaround might be to trigger some sort of re-draw on the main window? |
| 16:09.14 | teepee | could be, I did not have much time to look at that |
| 16:09.31 | teepee | maybe it's something we do in the signal handlers |
| 16:09.48 | teepee | I guess the only way to find out would be to just do a tiny sample application |
| 16:09.56 | starseeker | nods |
| 16:10.27 | teepee | but getting all compiling fine is higher on the todo list ;) |
| 16:10.32 | starseeker | heh |
| 16:10.43 | teepee | it really gets funny if both Qt4-dev and Qt5 dev is installed on a Linux system |
| 16:11.10 | teepee | like compiling against Qt5 but some lib is compiled against Qt4 |
| 16:11.13 | *** join/#brlcad gaganjyot (~gaganjyot@124.253.225.90) | |
| 16:11.26 | teepee | that's easy to notice though |
| 16:11.34 | teepee | instant crash on application start :/ |
| 16:11.39 | starseeker | nods - CMake tends to do pretty well with that in my experience |
| 16:12.14 | teepee | are you using cmake for the Qt app too? |
| 16:12.30 | teepee | we still use qmake for the main app and cmake for the test cases (that do not link Qt) |
| 16:12.44 | teepee | which is not really the ideal way ;) |
| 16:13.28 | starseeker | yes - see http://sourceforge.net/p/brlcad/code/HEAD/tree/brlcad/branches/qtged/src/qbrlcad/ |
| 16:14.30 | starseeker | our toplevel CMake Qt setup is here: http://sourceforge.net/p/brlcad/code/HEAD/tree/brlcad/branches/qtged/CMakeLists.txt#l1025 |
| 16:17.13 | starseeker | CMake does too many nice things at this point for us to switch without *very* compelling reasons - we've build some features on top of CMake that to my knowledge are unique in CMake land (in-src make clean support, distcheck, sophisticated third party dependency management, etc.) and would be a lot of work to duplicate elsewhere |
| 16:17.13 | teepee | cool, I guess I'll try that in case I have some spare time :) |
| 16:17.21 | *** join/#brlcad gurwinder (75c76b36@gateway/web/freenode/ip.117.199.107.54) | |
| 16:17.25 | teepee | having both build tools is not really perfect |
| 16:18.55 | teepee | I guess if a cmake developer has a look at our CMakeLists.txt that will cause instant heart attack |
| 16:19.01 | starseeker | CMake gives us some bits that are very nice for Windows portability - it can handle file copying, decompressing archives, run scripts, etc. in a portable fashion. Normally it's the kind of thing you rely on standard tools like tar and sh for, but on Windows you can't count on anything |
| 16:19.07 | starseeker | heh |
| 16:19.08 | teepee | ctest is quite nice tho |
| 16:19.08 | *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14) | |
| 16:19.41 | teepee | ahh, right we currently don't have a native Windows built |
| 16:19.45 | starseeker | has little doubt our CMake logic is scary - I don't like that, but if you want advanced features you just end up not looking very vanilla in your code |
| 16:20.12 | starseeker | yeah, we did a *LOT* of work to get Windows support working cleanly |
| 16:20.26 | starseeker | including switching from flex/bison to re2c/lemon for portability |
| 16:20.40 | teepee | true, like I always try to tell some people it's not possible to solve complicated issues in a simple way ;) |
| 16:21.15 | starseeker | We don't have a portable sh that we can use to run our scripts, and windows doesn't have termlib so programs still using that don't build, but on the whole we're very close to full-featured building |
| 16:21.48 | teepee | nice. how do you handle the dependency builds in that case? |
| 16:22.28 | starseeker | has thought occasionally about trying to build https://www.mirbsd.org/mksh.htm with CMake... |
| 16:23.09 | starseeker | our dependencies are spelled out in CMake - it usually resolves them for us without trouble, including building tools it needs to build sources for libraries and such |
| 16:23.12 | starseeker | very nice |
| 16:24.18 | starseeker | Visual Studio projects are our only working target at the moment for Windows, but I would really like to see if I can get ninja working on Windows |
| 16:24.32 | teepee | ninja? |
| 16:24.47 | starseeker | http://martine.github.io/ninja/ |
| 16:24.56 | teepee | yet another build system :) |
| 16:25.00 | starseeker | CMake can generate build files for it |
| 16:25.08 | starseeker | no, in this case it's basically a make replacement |
| 16:25.17 | Stragus | I profoundly dislike how Qt wants to take over the whole build system, enough to make me stay away from it entirely. Am I missing something or it's really required? |
| 16:25.43 | Stragus | I assume it's required due to their weird C++ "extensions" |
| 16:26.33 | gurwinder | brlcad: Hi. I am still trying to get the whole information of our BRL-CAD's .g file. Want to know how information is stored( header, flags all other things ). Its not related with g-pov. Please provide me right way to get it. |
| 16:26.40 | starseeker | Stragus: I haven't found it too bad - you need moc as part of the build, but CMake manages that once you set up the right logic and after that it's not a big deal... it was more complex to get re2c/lemon build set up in my experience |
| 16:27.34 | Stragus | Let's suppose I would like to compile with a bash script, not any CMake magic to be compatible with Qt |
| 16:27.36 | starseeker | As I understand it those extensions are what allow object introspection, which is essential to how Qt works. |
| 16:27.59 | starseeker | Stragus: ah, yes if you are using bare bones build tools it will be more complicated |
| 16:28.06 | teepee | it basicall generates the signal/slot stuff |
| 16:28.08 | Stragus | Yes... Traditional callbacks aren't good enough for Qt, they want to send "signals" based on slots registered as strings of text |
| 16:28.26 | starseeker | has found it to be very powerful, so far |
| 16:28.29 | Stragus | (Totally inefficient, but no one cares I guess) |
| 16:29.03 | starseeker | I suspect it's seldom a performance bottleneck, since it's concerned mostly with user interaction... |
| 16:29.43 | Stragus | Probably so, but it doesn't seem like a good reason to mess up the build system to implement an inferior solution (to my eyes) |
| 16:30.04 | Stragus | Is there a way to write the signal/slot in plain C++? A lower-level interface?... |
| 16:30.14 | teepee | that moc thingy is ancient :) |
| 16:30.20 | starseeker | I think it depends on which version of C++ we're talking about |
| 16:30.35 | starseeker | yeah, when Qt started the answer was a flat "no" as I understand it |
| 16:30.42 | teepee | it's possible to write even in C (see glib) and as no-moc C++ (libsigc++ or what it's called) |
| 16:30.58 | starseeker | today you might check this out: https://github.com/pbhogan/Signals |
| 16:31.30 | Stragus | Of course I know it's possible. :) But I wonder if Qt makes it possible, not if it can be implemented in a different context |
| 16:32.06 | starseeker | I don't think the moc is optional unless you're willing to do without most of Qt's advanced features |
| 16:32.16 | teepee | I don't think it's possible and even Qt will not touch it as they are moving away from the Widget stuff anyway |
| 16:32.36 | gaganjyot | brlcad, if BRL-CAD participates under GCI this year will it consider LibreCAD too ? |
| 16:32.44 | Stragus | Meh, I see. All right, I think it's going to be GTK+ or wxwidgets |
| 16:34.01 | starseeker | Stragus: if you're not too concerned about native platform integration, what about fltk? |
| 16:34.30 | starseeker | If Qt wasn't a possiblity for us I'd be looking hard at fltk |
| 16:35.05 | Stragus | That one didn't seem to natively implement something I expected to need: a long list with multiple columns, the cells of some columns holding images, dropdown menu and such stuff |
| 16:35.30 | Stragus | ... something I expect* to need |
| 16:35.53 | starseeker | fair enough - fltk is minimalistic (by design) |
| 16:36.07 | Stragus | Yes, it seemed so |
| 16:36.37 | Stragus | Even GTK+ and wxwidgets seem to barely support what I just described, relying on new and poorly documented features |
| 16:37.12 | starseeker | yeah, that sounds like enough of an application specific widget that most people would assume it's something the application would do |
| 16:37.30 | starseeker | even with Qt we're going to have some custom work to do things like the edit panel |
| 16:37.42 | Stragus | I wouldn't mind that, I have just zero experience with GUI :) |
| 16:37.57 | Stragus | Except some win32 about... 15 years ago, and GUIs written from scratch in OpenGL |
| 16:39.03 | starseeker | Stragus: then you might want to write small programs in the various options to get a feel for them - for anything non-trivial you can pretty much count on having to do some custom work regardless, so you might want to get a sense of what framework best fits your style |
| 16:39.04 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 16:39.45 | Stragus | Yes, that sounds wise. I have no experience with the whole concept of creating new widgets from scratch within a toolkit (OpenGL doesn't count) |
| 16:40.27 | starseeker | realizes he'd better stop putting off the chores... |
| 16:40.41 | Stragus | :) Go ahead, thanks for the tips |
| 16:41.21 | Stragus | And it's probably weird that I'm tempted to just write GUI in OpenGL again. Somehow, it seems "easier", ten times the code but nothing to learn |
| 16:44.37 | starseeker | Stragus: if you go that route, you might want to look at this guy's work: https://github.com/memononen/ |
| 16:45.51 | Stragus | Ohhh! Unicode freetype rendering library written in C |
| 16:45.57 | Stragus | That is nice. |
| 16:46.26 | *** join/#brlcad gurwinder (75c76b36@gateway/web/freenode/ip.117.199.107.54) | |
| 16:48.58 | Stragus | Thanks starseeker, very interesting |
| 17:44.29 | *** join/#brlcad teepee (~teepee@gateway/tor-sasl/teepee) | |
| 18:14.13 | *** join/#brlcad mpictor (~mark@c-69-136-183-213.hsd1.in.comcast.net) | |
| 18:21.09 | *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14) | |
| 19:35.45 | *** join/#brlcad ries (~ries@D979EA84.cm-3-2d.dynamic.ziggo.nl) | |
| 20:06.19 | *** join/#brlcad kintel (~kintel@unaffiliated/kintel) | |
| 20:18.53 | *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14) | |
| 22:04.12 | *** join/#brlcad ries (~ries@D979EA84.cm-3-2d.dynamic.ziggo.nl) | |
| 22:30.13 | *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14) | |
| 23:39.58 | Notify | 03BRL-CAD Wiki:Mmattb117763 * 0 /wiki/User:Mmattb117763: |