This commit is contained in:
itsmattkc
2021-04-02 15:29:25 +11:00
5 changed files with 33 additions and 29 deletions
+18 -13
View File
@@ -83,23 +83,28 @@ jobs:
# Create install tree # Create install tree
cmake --install app --prefix appdir/usr cmake --install app --prefix appdir/usr
# Process AppDir
/usr/local/linuxdeployqt-x86_64.AppImage \
appdir/usr/share/applications/org.olivevideoeditor.Olive.desktop \
-bundle-non-qt-libs \
-executable=appdir/usr/bin/crashpad_handler \
-executable=appdir/usr/bin/minidump_stackwalk \
-executable=appdir/usr/bin/olive-crashhandler \
--appimage-extract-and-run
# Dump Crashpad symbols # Dump Crashpad symbols
dump_syms app/olive-editor > olive-editor.sym dump_syms appdir/usr/bin/olive-editor > olive-editor.sym
SYM_HEADER=($(head -n 1 olive-editor.sym)) # Read first line of symbol file # HACK: For some reason, minidump_stackwalk reads identifier as all 0s
SYM_DIR=appdir/usr/share/olive-editor/symbols/olive-editor/${SYM_HEADER[3]} SYM_DIR=appdir/usr/share/olive-editor/symbols/olive-editor/000000000000000000000000000000000
mkdir -p "$SYM_DIR" mkdir -p "$SYM_DIR"
mv olive-editor.sym "$SYM_DIR" mv olive-editor.sym "$SYM_DIR"
# Package AppImage # Package AppImage
VERSION=${GITHUB_SHA::8} $DOWNLOAD_TOOL https://github.com/AppImage/AppImageKit/releases/download/12/appimagetool-x86_64.AppImage
export VERSION chmod +x appimagetool-x86_64.AppImage
/usr/local/linuxdeployqt-x86_64.AppImage \ VERSION=${GITHUB_SHA::8} ./appimagetool-x86_64.AppImage appdir --appimage-extract-and-run
appdir/usr/share/applications/org.olivevideoeditor.Olive.desktop \
-appimage \ # Set env variables
-executable=appdir/usr/bin/crashpad_handler \
-executable=appdir/usr/bin/minidump_stackwalk \
-executable=appdir/usr/bin/olive-crashhandler \
--appimage-extract-and-run
filename=$(echo Olive*.AppImage) filename=$(echo Olive*.AppImage)
pkgname="${filename/x86_64/Linux-x86_64}" pkgname="${filename/x86_64/Linux-x86_64}"
mv "${filename}" "${pkgname}" mv "${filename}" "${pkgname}"
@@ -316,7 +321,7 @@ jobs:
working-directory: ${{ runner.workspace }}/build working-directory: ${{ runner.workspace }}/build
run: | run: |
brew install ninja brew install ninja
PATH=$DEP_LOCATION:$PATH \ PATH=$DEP_LOCATION:$DEP_LOCATION/crashpad:$PATH \
cmake $GITHUB_WORKSPACE -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -G "${{ matrix.cmake-gen }}" -DCMAKE_INSTALL_PREFIX=$DEP_LOCATION cmake $GITHUB_WORKSPACE -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -G "${{ matrix.cmake-gen }}" -DCMAKE_INSTALL_PREFIX=$DEP_LOCATION
- name: Build - name: Build
+7 -4
View File
@@ -371,15 +371,18 @@ void NodeViewItem::DrawNodeTitle(QPainter* painter, QString text, const QRectF&
{ {
QFontMetrics fm = painter->fontMetrics(); QFontMetrics fm = painter->fontMetrics();
painter->setRenderHint(QPainter::SmoothPixmapTransform);
// Draw right or down arrow based on expanded state // Draw right or down arrow based on expanded state
int icon_size = fm.height() / 2; int icon_size = fm.height() / 2;
int icon_padding = title_bar_rect_.height() / 2 - icon_size / 2; int icon_padding = title_bar_rect_.height() / 2 - icon_size / 2;
int icon_full_size = icon_size + icon_padding * 2; int icon_full_size = icon_size + icon_padding * 2;
const QIcon& expand_icon = IsExpanded() ? icon::TriDown : icon::TriRight; const QIcon& expand_icon = IsExpanded() ? icon::TriDown : icon::TriRight;
expand_icon.paint(painter, QRect(title_bar_rect_.x() + icon_padding, int icon_size_scaled = icon_size * painter->transform().m11();
title_bar_rect_.y() + icon_padding, painter->drawPixmap(QRect(title_bar_rect_.x() + icon_padding,
icon_size, title_bar_rect_.y() + icon_padding,
icon_size)); icon_size,
icon_size), expand_icon.pixmap(QSize(icon_size_scaled, icon_size_scaled)));
// Calculate how much space we have for text // Calculate how much space we have for text
int item_width = title_bar_rect_.width(); int item_width = title_bar_rect_.width();
+5 -7
View File
@@ -50,9 +50,7 @@ MainWindow::MainWindow(QWidget *parent) :
taskbar_interface_ = nullptr; taskbar_interface_ = nullptr;
#endif #endif
#ifdef Q_OS_LINUX first_show_ = true;
checked_graphics_vendor_ = false;
#endif
// Create empty central widget - we don't actually want a central widget (so we set its maximum // Create empty central widget - we don't actually want a central widget (so we set its maximum
// size to 0,0) but some of Qt's docking/undocking fails without it // size to 0,0) but some of Qt's docking/undocking fails without it
@@ -635,10 +633,10 @@ void MainWindow::showEvent(QShowEvent *e)
{ {
QMainWindow::showEvent(e); QMainWindow::showEvent(e);
QMetaObject::invokeMethod(Core::instance(), "CheckForAutoRecoveries", Qt::QueuedConnection); if (first_show_) {
QMetaObject::invokeMethod(Core::instance(), "CheckForAutoRecoveries", Qt::QueuedConnection);
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
if (!checked_graphics_vendor_) {
// Check for nouveau since that driver really doesn't work with Olive // Check for nouveau since that driver really doesn't work with Olive
QOffscreenSurface surface; QOffscreenSurface surface;
surface.create(); surface.create();
@@ -651,9 +649,9 @@ void MainWindow::showEvent(QShowEvent *e)
QMetaObject::invokeMethod(this, "ShowNouveauWarning", Qt::QueuedConnection); QMetaObject::invokeMethod(this, "ShowNouveauWarning", Qt::QueuedConnection);
} }
checked_graphics_vendor_ = true; first_show_ = false;
}
#endif #endif
}
} }
template<typename T> template<typename T>
+1 -3
View File
@@ -156,9 +156,7 @@ private:
ITaskbarList3* taskbar_interface_; ITaskbarList3* taskbar_interface_;
#endif #endif
#ifdef Q_OS_LINUX bool first_show_;
bool checked_graphics_vendor_;
#endif
private slots: private slots:
void FocusedPanelChanged(PanelWidget* panel); void FocusedPanelChanged(PanelWidget* panel);
+2 -2
View File
@@ -78,5 +78,5 @@ cd breakpad
fetch breakpad fetch breakpad
cd src cd src
./configure --prefix="${OLIVE_INSTALL_PREFIX}" ./configure --prefix="${OLIVE_INSTALL_PREFIX}"
make make -j$(nproc)
make install -j$(nproc) make install