Closed mitchcurtis closed 5 years ago
Seems to be the AutoSwatchModel:
1 __psynch_cvwait (x86_64) /usr/lib/system/libsystem_kernel.dylib 0x7fff7c96186a
2 _pthread_cond_wait (x86_64) /usr/lib/system/libsystem_pthread.dylib 0x7fff7ca2056e
3 QWaitConditionPrivate::wait(QDeadlineTimer) qwaitcondition_unix.cpp 146 0x100207baa
4 QWaitCondition::wait(QMutex *, QDeadlineTimer) qwaitcondition_unix.cpp 225 0x100207adf
5 QWaitCondition::wait(QMutex *, unsigned long) qwaitcondition_unix.cpp 208 0x1002079a4
6 QThread::wait(unsigned long) qthread_unix.cpp 788 0x1001f6a1e
7 AutoSwatchModel::~AutoSwatchModel() autoswatchmodel.cpp 65 0x10444ee5d
8 QQmlPrivate::QQmlElement<AutoSwatchModel>::~QQmlElement() qqmlprivate.h 108 0x1000131e8
9 QQmlPrivate::QQmlElement<AutoSwatchModel>::~QQmlElement() qqmlprivate.h 106 0x100013175
10 QQmlPrivate::QQmlElement<AutoSwatchModel>::~QQmlElement() qqmlprivate.h 106 0x100013199
11 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
12 QObject::~QObject() qobject.cpp 1032 0x100537473
13 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
14 QQuickFlickable::~QQuickFlickable() qquickflickable.cpp 753 0x102ea3525
15 QQuickItemView::~QQuickItemView() qquickitemview.cpp 170 0x102f04992
16 QQuickGridView::~QQuickGridView() qquickgridview.cpp 1252 0x102efd415
17 QQmlPrivate::QQmlElement<QQuickGridView>::~QQmlElement() qqmlprivate.h 108 0x102df9267
18 QQmlPrivate::QQmlElement<QQuickGridView>::~QQmlElement() qqmlprivate.h 106 0x102df91a5
19 QQmlPrivate::QQmlElement<QQuickGridView>::~QQmlElement() qqmlprivate.h 106 0x102df91c9
20 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
21 QObject::~QObject() qobject.cpp 1032 0x100537473
22 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
23 QQuickImplicitSizeItem::~QQuickImplicitSizeItem() qquickimplicitsizeitem_p.h 60 0x102e06a55
24 QQuickLoader::~QQuickLoader() qquickloader.cpp 316 0x102eaeeee
25 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() qqmlprivate.h 108 0x102dfbae7
26 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() qqmlprivate.h 106 0x102dfba25
27 QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() qqmlprivate.h 106 0x102dfba49
28 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
29 QObject::~QObject() qobject.cpp 1032 0x100537473
30 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
31 QQuickLayout::~QQuickLayout() qquicklayout.cpp 723 0x10efa3aea
32 QQuickGridLayoutBase::~QQuickGridLayoutBase() qquicklinearlayout.cpp 311 0x10efa7275
33 QQuickLinearLayout::~QQuickLinearLayout() qquicklinearlayout_p.h 191 0x10ef9e695
34 QQuickRowLayout::~QQuickRowLayout() qquicklinearlayout_p.h 223 0x10ef9e675
35 QQmlPrivate::QQmlElement<QQuickRowLayout>::~QQmlElement() qqmlprivate.h 108 0x10ef9e655
36 QQmlPrivate::QQmlElement<QQuickRowLayout>::~QQmlElement() qqmlprivate.h 106 0x10ef9e485
37 QQmlPrivate::QQmlElement<QQuickRowLayout>::~QQmlElement() qqmlprivate.h 106 0x10ef9e4a9
38 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
39 QObject::~QObject() qobject.cpp 1032 0x100537473
40 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
41 QQuickLayout::~QQuickLayout() qquicklayout.cpp 723 0x10efa3aea
42 QQuickGridLayoutBase::~QQuickGridLayoutBase() qquicklinearlayout.cpp 311 0x10efa7275
43 QQuickLinearLayout::~QQuickLinearLayout() qquicklinearlayout_p.h 191 0x10ef9e695
44 QQuickColumnLayout::~QQuickColumnLayout() qquicklinearlayout_p.h 238 0x10ef9f1d5
45 QQmlPrivate::QQmlElement<QQuickColumnLayout>::~QQmlElement() qqmlprivate.h 108 0x10ef9f1b5
46 QQmlPrivate::QQmlElement<QQuickColumnLayout>::~QQmlElement() qqmlprivate.h 106 0x10ef9f0a5
47 QQmlPrivate::QQmlElement<QQuickColumnLayout>::~QQmlElement() qqmlprivate.h 106 0x10ef9f0c9
48 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
49 QObject::~QObject() qobject.cpp 1032 0x100537473
50 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
51 QQuickControl::~QQuickControl() qquickcontrol.cpp 937 0x10f22232a
52 QQuickPane::~QQuickPane() qquickpane.cpp 255 0x10f25b871
53 QQuickPage::~QQuickPage() qquickpage.cpp 237 0x10f2576f9
54 QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() qqmlprivate.h 108 0x10fb9b3b7
55 QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() qqmlprivate.h 106 0x10fb9b2f5
56 QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() qqmlprivate.h 106 0x10fb9b319
57 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
58 QObject::~QObject() qobject.cpp 1032 0x100537473
59 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
60 QQuickControl::~QQuickControl() qquickcontrol.cpp 937 0x10f22232a
61 QQuickContainer::~QQuickContainer() qquickcontainer.cpp 473 0x10f219ece
62 QQuickSplitView::~QQuickSplitView() qquicksplitview.cpp 1075 0x10f286c49
63 QQmlPrivate::QQmlElement<QQuickSplitView>::~QQmlElement() qqmlprivate.h 108 0x10fbbb307
64 QQmlPrivate::QQmlElement<QQuickSplitView>::~QQmlElement() qqmlprivate.h 106 0x10fbbb245
65 QQmlPrivate::QQmlElement<QQuickSplitView>::~QQmlElement() qqmlprivate.h 106 0x10fbbb269
66 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
67 QObject::~QObject() qobject.cpp 1032 0x100537473
68 QQuickItem::~QQuickItem() qquickitem.cpp 2444 0x102d83793
69 QQuickControl::~QQuickControl() qquickcontrol.cpp 937 0x10f22232a
70 QQuickContainer::~QQuickContainer() qquickcontainer.cpp 473 0x10f219ece
71 QQuickSplitView::~QQuickSplitView() qquicksplitview.cpp 1075 0x10f286c49
72 QQmlPrivate::QQmlElement<QQuickSplitView>::~QQmlElement() qqmlprivate.h 108 0x10fbbb307
73 QQmlPrivate::QQmlElement<QQuickSplitView>::~QQmlElement() qqmlprivate.h 106 0x10fbbb245
74 QQmlPrivate::QQmlElement<QQuickSplitView>::~QQmlElement() qqmlprivate.h 106 0x10fbbb269
75 QObjectPrivate::deleteChildren() qobject.cpp 2019 0x100537776
76 QObject::~QObject() qobject.cpp 1032 0x100537473
77 QWindow::~QWindow() qwindow.cpp 227 0x100f0a0cd
78 QQuickWindow::~QQuickWindow() qquickwindow.cpp 1377 0x102dba1ff
79 QQuickWindowQmlImpl::~QQuickWindowQmlImpl() qquickwindowmodule_p.h 63 0x10f20029f
80 QQuickApplicationWindow::~QQuickApplicationWindow() qquickapplicationwindow.cpp 368 0x10f2001d9
81 QQmlPrivate::QQmlElement<QQuickApplicationWindow>::~QQmlElement() qqmlprivate.h 108 0x10fb8f645
82 QQmlPrivate::QQmlElement<QQuickApplicationWindow>::~QQmlElement() qqmlprivate.h 106 0x10fb8f4c5
83 QQmlPrivate::QQmlElement<QQuickApplicationWindow>::~QQmlElement() qqmlprivate.h 106 0x10fb8f4e9
84 void qDeleteAll<QList<QObject *>::const_iterator>(QList<QObject *>::const_iterator, QList<QObject *>::const_iterator) qalgorithms.h 320 0x10231cda1
85 void qDeleteAll<QList<QObject *>>(QList<QObject *> const&) qalgorithms.h 328 0x10231b2e6
86 QQmlApplicationEnginePrivate::cleanUp() qqmlapplicationengine.cpp 64 0x10231b222
87 QQmlApplicationEngine::~QQmlApplicationEngine() qqmlapplicationengine.cpp 250 0x10231c6d0
88 QQmlApplicationEngine::~QQmlApplicationEngine() qqmlapplicationengine.cpp 247 0x10231c705
89 QQmlApplicationEngine::~QQmlApplicationEngine() qqmlapplicationengine.cpp 247 0x10231c729
90 QScopedPointerDeleter<QQmlApplicationEngine>::cleanup(QQmlApplicationEngine *) qscopedpointer.h 60 0x1000125fb
91 QScopedPointer<QQmlApplicationEngine, QScopedPointerDeleter<QQmlApplicationEngine>>::reset(QQmlApplicationEngine *) qscopedpointer.h 159 0x10000de45
92 Application::~Application() application.cpp 185 0x10000dd67
93 Application::~Application() application.cpp 177 0x10000de75
94 main main.cpp 7 0x10002272d
95 start (x86_64) /Users/mitch/dev/slate-qt5_slate_fw-Debug/Debug/install-root/usr/local/Slate.app/Contents/MacOS/Slate 0x100000cd4
For larger images, the time it takes to find all of the swatches (unique colours) in the image is really long. In the case of the image that caused this, it probably never finished before I closed Slate, and then this code caused the app to wait until it was done before actually closing:
I don't really want to support large images like this, at least not in the context of auto swatches. Putting a limit on image dimensions for auto swatches is the ideal solution for now.
Open a large PNG (e.g. > 1 mb) and then quit the application. On macOS the app takes ~30 seconds to close, using almost 100% CPU.