Facilitate Portability

Forums

Just sharing my progress.

Qtractor.cpp line 159:

sLocPath = (QDir(QCoreApplication::applicationDirPath()).filePath("../share/qtractor/translations")); 

This allows Qtractor to always find the translations, even if the local installation directory changes.
You just need to respect the structure: bin | lib | share.

---

QtractorOptions.cpp line 72:

qtractorOptions::qtractorOptions(void)
    : m_settings([&]() -> QSettings {
        QString appDirPath = QCoreApplication::applicationDirPath();
        QString homePath   = QDir::homePath();

        QString app = QDir::cleanPath(appDirPath);
        QString home = QDir::cleanPath(homePath);

		// Comprueba si se esta ejecutando en local
        bool inHome = (app == home) || app.startsWith(home + QDir::separator());

        if (inHome) {
            QString confPath = QDir(appDirPath).filePath(QLatin1String("../Qtractor.conf"));
            return QSettings(confPath, QSettings::IniFormat);
        } else {
            return QSettings(QTRACTOR_DOMAIN, QTRACTOR_TITLE);
        }
    }())
{
    g_pOptions = this;
    loadOptions();
}

This ensures that if it's installed locally, the configuration won't conflict with other existing Qtractor installations.

Very useful for testing.

___

Conclusions:

Furthermore, these two requirements make it easier to create a portable Qtractor with your own plugins and samples.

You only need to:
1- Compile on Ubuntu 20 LT and add library dependencies to the lib directory.

2. Create an application run that saves the application's root path state and updates this path in the internal configuration files if it changes, and manages the lib environment variable.

The result is much cleaner than the current AppImage, more understandable, and with fewer files. It's a portable application in traditional style.

P.S.:
I used deploy to gather the libraries.
https://github.com/linuxdeploy/linuxdeploy/

Calf Suite works correctly (I still don't understand why it doesn't work in the official AppImage).
Samplv1 also works, as it uses the RubberBand library from the portable version.

Permalink

I still don't understand why it doesn't work in the official AppImage...

please don't bother much with this, on a couple of accounts...

  • general support for calf/gtk2 is ever vanishing from near sight and I'd be surprised if it's not going into a silent death in just a few years at most; so, and I'm sure said this more than once before, you'll better off with the LSP than betting on a dead-horse for life :S

  • the good news are the aforementioned calf/gtk2 issue on the AppImage's have been already addressed and hopefully mitigated (qtractor >= v1.5.12.20+); you may assess this claim from the latest builds.

hth.
thanks

Many will appreciate it :). Calf still has no replacement.
Most users value high usability, provided the result is satisfactory.

I understand all the warnings from various developers. GTK2 is reaching its end; there's no solution.

Regarding the Qtractor distribution project, I think I should put it on hold for now. I have too much technical knowledge; it's beyond me. Besides, it's a project that could unintentionally violate licenses.

Thank you for everything, especially for your patience :)

P.S.
I assume you're aware of this, and it's to be expected.
Qtractor is reporting an error in the messages:

qt.qpa.theme.gnome: dbus reply error: [ "org.freedesktop.DBus.Error.UnknownMethod" ] "There is no interface 'org.freedesktop.portal.Settings' in the object at /org/freedesktop/portal/desktop"

But it seems to be working correctly.

It's also reporting two other things (the old appImage version did the same):
Case insensitive sorting unsupported in the POSIX collation implementation
Numeric mode unsupported in the POSIX collation implementation

Add new comment

The content of this field is kept private and will not be shown publicly.

Markdown

  • Parses markdown and converts it to HTML.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id> <img src alt height width> <strike> <pre> <p> <br>
  • Lines and paragraphs break automatically.

Filtered HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <b> <i> <pre> <img src alt height width> <strike>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
File attachments
Unlimited number of files can be uploaded to this field.
2 MB limit.
Allowed types: jpg jpeg gif png txt doc docx xls xlsx pdf ppt pps odt ods odp zip gz bz2 xz patch diff wav ogg flac ogv mp4 qtz.