Re: [Interest] Q_NAMESPACE is not portable?
On 24/08/2019 00:10, Matthew Woehlke wrote: Am I doing something wrong, or is it impossible to use Q_NAMESPACE correctly without platform-specific PP conditionals? I've fixed this in 5.14, see https://doc-snapshots.qt.io/qt5-dev/qobject.html#Q_NAMESPACE_EXPORT Cheers, -- Giuseppe D'Angelo | giuseppe.dang...@kdab.com | Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com KDAB - The Qt, C++ and OpenGL Experts smime.p7s Description: S/MIME Cryptographic Signature ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Q_NAMESPACE is not portable?
Am I missing something, or is it impossible to portably use Q_NAMESPACE? If I just use Q_NAMESPACE on its own, e.g.: namespace foo { Q_NAMESPACE } ...then I get unresolved externals on Linux. If I attempt the obvious fix: namespace foo { Q_NAMESPACE extern FOO_EXPORT const QMetaObject staticMetaObject; // Ugh } ...then I get 'redefinition, different linkage' errors on Windows. Am I doing something wrong, or is it impossible to use Q_NAMESPACE correctly without platform-specific PP conditionals? -- Matthew ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] Using Q_ENUM_NS?
Is it *really* impossible to use Q_ENUM_NS (in the same namespace) in more than one header? If not, how does one do so correctly? If I don't have code that looks *exactly* like this: namespace whatever { Q_NAMESPACE Q_ENUM_NS(...) } ...moc is unhappy. But if Q_NAMESPACE appears in more than one header, I get duplicate definition errors. -- Matthew ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] equivalent of python glob
On 8/23/2019 9:03 AM, Thiago Macieira wrote: On Friday, 23 August 2019 07:38:56 PDT Bob Hood wrote: e.g., QDirIterator iter(base_folder, QStringList() << "*.*", QDir::Files, QDirIterator::Subdirectories); "*.*" is "all files containing a dot" (and not in the first character) and the vast majority of files in /usr/bin don't. Yeah, sorry, that was from Windows code. ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] equivalent of python glob
On Friday, 23 August 2019 07:38:56 PDT Bob Hood wrote: > e.g., QDirIterator iter(base_folder, QStringList() << "*.*", QDir::Files, > QDirIterator::Subdirectories); "*.*" is "all files containing a dot" (and not in the first character) and the vast majority of files in /usr/bin don't. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel System Software Products ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] equivalent of python glob
On 8/23/2019 12:46 AM, Hamish Moffatt wrote: Hi, In Python one can write the expression: glob.glob("/usr/bin/*") and get a list of such files. I am looking for something similar in Qt (in C++). I have look at QDir::entryList() and entryInfoList(), but it seems I would have to extract the path first and provide it to QDir. I can't use QDir('/').entryList({ "/usr/bin/*" }), as it returns nothing. Look at QDirIterator. e.g., QDirIterator iter(base_folder, QStringList() << "*.*", QDir::Files, QDirIterator::Subdirectories); ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
Re: [Interest] Qt free software policy
1) Compilation method which removes 100% of QML, including QML support from non-QML classes. > While my correct views of QML are widely known, the reality is that many > embedded and IoT systems have no UI or correctly choose not to use QML > because they are running on battery without a GPU. Unless these systems fall > back to a pre-QML version of Qt, they cannot get rid of the buggy baggage. If you design your software right nothing in Qml should be seen into your C++ except the module registration. Your C++ code expose to the meta object with properties and signal and that's about it.Qml use the meta exposition, you can still use the meta calls without Qml. This is one thing I really like about Qml, it doesn't invade the application code, it sit above it and you can use the javascript for view model adaptor/converter. I have give up on QWidget and looking at my code base now I would not go back, the automatic binding re evaluation is such a connect() call saver. -Original Message- From: Interest On Behalf Of Roland Hughes Sent: August 22, 2019 11:21 AM To: interest@qt-project.org Subject: Re: [Interest] Qt free software policy On 8/22/19 5:00 AM, James Ross-Smith wrote: > This a quite a timely thread, as I, like several others in here, am > trying to decide on a Commercial or non-Commercial licensing approach with Qt. > I've submitted numerous contact/quote/trial requests on the TQtC > website over the last couple of weeks but never hear back, so it's > very helpful to stumble across this discussion. You are welcome. We do try to be of assistance in here. To answer the other question I didn't cut and paste . . . For whatever reason Qt Company didn't follow the Cannonical (Ubuntu) model. The ex-wife alimony fixation on royalties makes me believe they have a whole lot of Dire Straights Syndrome going on. https://www.youtube.com/watch?v=JRDgihVDEko While it was a great tune, it was not a good business model. I just finished up at a client site where commercial license was purchased. I wasn't there or it never would have happened as they certainly had no need for the "latest" anything. Be that as it may, the negotiations started and happened many states away. The way our "support" was explained to me by our boss was this (it might be different for every negotiation): "If we have trouble with installation of the development software, configuration of the development environment or cross compiling for the target system we can call and get help right away. If we find a bug we have to file a bug report and get in the queue with everyone else." When someone mentions "software support" a large chunk of the industry, especially those of us who are older and have worked on large systems from Digital Equipment Corporation, Oracle, IBM, etc., we expect a sev-level escalation tree. You start somewhere down at the 4 or 5 level (normally the bottom) and unresolved problems keep getting kicked up the tree until it becomes a sev-1 (it can start at sev-1 if you have a complete production outage). At sev-1 the vendor assembles a trauma-1 team which generally includes one or more of the developers who actually developed the particular piece of hardware or software which is suspect. Mileage may vary, but that has not been my experience in the Qt world. I believe that is partially due to the distributed (OpenSource) nature of the development. There are big chunks of Qt which Qt Company had basically nothing to do with. I'm thinking the 3-D stuff might be a good example given a message thread on this list from some months back. A company of some size, be it one or more, developed the package and donated some or all of it to the community. Unless Qt Company was to pay that company for sev-level support, how could Qt Company ever provide support for it? Sure, coders who never wrote any of it could dig through the code and hopefully find something, but that's not exactly the level of support one thinks of when they hear "support contract." A much larger part of the issue has been, in my opinion, not sufficiently pursuing a large embedded systems consulting group. I'm talking about an embedded system in a box type consulting company where they could do project level stuff from hardware design all the way through setting up factory production. When people "went to the bench" they would be working on Qt itself and providing support. This is how the old, successful, companies did it. Albeit they were working on mid-range and mainframe systems at the time. The "device in a box" type companies are growing at alarming rates. Once they bring in the correct heavy hitters (both high architectural level and low firmware/algorithm level) they go from startup to nearly $20Million in just a couple of years. The one problem all of them seem to have is pursuing 100% billable time for all employees. If you are a 100% billable you are 100% failure, it just may take you
Re: [Interest] Qt free software policy
On 8/23/19 1:59 AM, Kai Köhne wrote: -Original Message- From: Interest On Behalf Of Roland Hughes [...] The way our "support" was explained to me by our boss was this (it might be different for every negotiation): "If we have trouble with installation of the development software, configuration of the development environment or cross compiling for the target system we can call and get help right away. If we find a bug we have to file a bug report and get in the queue with everyone else." That's not true (unless "everyone else" means all people with the same support level). The people in Qt support will also try to directly provide you with a patch and/or workaround, if possible. Also the internal development teams in the Qt Company will prioritize bugs coming from commercial customers. That's why it's actually advised to file a bug through Qt Support, or at least inform Qt Support that you filed a bug in JIRA if you are a commercial customer. Prioritize != Ride Bug to Extinction At some point I expect "that guy again" to chime in here about the REGRESSION bugs he filed which have been rotting for years. Their bits may have turned to dust by now. I always have trouble communicating this to people who have never worked with real computers. They have no concept of what real sev-level support is. They believe throwing bugs into JIRA and watching them age like Bourbon is "support." It can't even buy a ticket to watch real support happen. My first IT job was a midnight computer operator at Airfone, Inc. They put credit card telephones in airplanes long before anyone had cell phones. They were dead broke from building all of the ground stations and installing the phones we had installed. Had even missed payroll so we were all working for free. The only bill which was religiously paid was our sev-level support contract with DEC. It was about 11:30 at night when we had a major outage. I forget what it was. I called the systems analyst who had me boot/load the Colorado software on the system console. Then phone in to the Colorado voice support line. I was on the phone with Colorado when I had to set the phone down to sign for someone with the security guard. The person I had to sign in was from DEC support. Colorado had dispatched them from a regional office once their diagnostics firmware identified the problem area from the OPCOM and AUDIT logs. He stayed until some time after 4a.m. We were fully functional when he left. I wasn't on-site for this one but worked with the individual who was. He used to love telling me this story. When Oracle first introduced RAC it was an even bigger hand polished turd than QML. I know that is difficult to wrap one's mind around if you've been exposed to QML, but, there it is. Oracle convinced a major downstate heavy equipment manufacturer to roll out a new critical system based on Oracle RAC on some flavor of *nix instead of basing it on the already proven RDB running on OpenVMS. The only OS then or now which well and truly clusters is OpenVMS. Everything else claims whatever sad and pathetic thing they are capable of, clustering. It's as night and day different as real support and filing a JIRA ticket. This system was production critical when it went online. The database was completely corrupted multiple times. I'm told Oracle had an entire team on-site for weeks, all as part of the support contract. Big companies are willing to take big chances on unproven technologies when they can get sev-level support. "Filing a ticket" isn't sev-level support. When there is no written promise that however many bodies necessary will be allocated 100%, even on-site 100% when needed, all as part of the support contract, it isn't sev-level support. Here's another one I was on-site for. Payroll conversion project at Quaker Oats. They were kicking ADP to the curb and bringing payroll in-house with PeopleSoft. All of the mills and plants were still running Cyborg payroll. The feed from Cyborg had to create a different file for transmission to PeopleSoft at the corporate office. At the time Cyborg was 1970s style COBOL using the card format with line numbers and it was distributed in source. They also had their own "4GL" called Generator which was supposed to be platform independent but used COBOL underneath. Someone, whom I can only assume is either the worst human being ever or the most unfortunate one, worked at one of the east coast pet food factories. The exact number escapes me. I can't remember if it was 25 or 27 wage garnishments they had, just that it was north of 20 and one more than the Cyborg payroll system could handle. It crashed payroll. Factory workers tend to live paycheck to paycheck and nobody was getting paid until that bug was fixed. Cyborg sent the head or one of the head/lead developers to our office. He patched the software with us sitting there. We compiled it, tested it, and
Re: [Interest] Qt free software policy
> -Original Message- > From: Interest On Behalf Of Roland > Hughes > [...] > The way our "support" was explained to me by our boss was this (it might be > different for every negotiation): > > "If we have trouble with installation of the development software, > configuration of the development environment or cross compiling for the > target system we can call and get help right away. If we find a bug we have to > file a bug report and get in the queue with everyone else." That's not true (unless "everyone else" means all people with the same support level). The people in Qt support will also try to directly provide you with a patch and/or workaround, if possible. Also the internal development teams in the Qt Company will prioritize bugs coming from commercial customers. That's why it's actually advised to file a bug through Qt Support, or at least inform Qt Support that you filed a bug in JIRA if you are a commercial customer. https://www.qt.io/qt-support/ Kai -- Kai Köhne, Senior Manager R | The Qt Company The Qt Company GmbH, Erich-Thilo-Str. 10, D-12489 Berlin Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho. Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
[Interest] equivalent of python glob
Hi, In Python one can write the expression: glob.glob("/usr/bin/*") and get a list of such files. I am looking for something similar in Qt (in C++). I have look at QDir::entryList() and entryInfoList(), but it seems I would have to extract the path first and provide it to QDir. I can't use QDir('/').entryList({ "/usr/bin/*" }), as it returns nothing. Does anyone have a recipe? Thanks Hamish ___ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest