1. 22 May, 2019 12 kayıt (commit)
    • Michael Stahl's avatar
      tdf#119856 vcl: fix Qt warning Qt5Frame::SetModal() · 5be0bd7c
      Michael Stahl yazdı
      This prints a warning "Cannot create children for a parent that is in a
      different thread"; let's fix it before it causes another hard to debug
      crash.
      
      0  check_parent_thread(QObject*, QThreadData*, QThreadData*) (parent=parent@entry=0xe88ca0, parentThreadData=<optimized out>, currentThreadData=<optimized out>) at kernel/qobject.cpp:781
      1  check_parent_thread (currentThreadData=<optimized out>, parentThreadData=<optimized out>, parent=0xe88ca0) at kernel/qobject.cpp:822
      2  QObject::QObject(QObject*) (this=0x9ed2e80, parent=0xe88ca0) at kernel/qobject.cpp:810
      3  Adwaita::GenericData::GenericData(QObject*, QWidget*, int) () at /usr/lib64/qt5/plugins/styles/adwaita.so
      4  Adwaita::WidgetStateEngine::registerWidget(QWidget*, QFlags<Adwaita::AnimationMode>) () at /usr/lib64/qt5/plugins/styles/adwaita.so
      5  Adwaita::Animations::registerWidget(QWidget*) const () at /usr/lib64/qt5/plugins/styles/adwaita.so
      6  Adwaita::Style::polish(QWidget*) () at /usr/lib64/qt5/plugins/styles/adwaita.so
      7  QWidget::event(QEvent*) () at /lib64/libQt5Widgets.so.5
      8  Qt5Widget::event(QEvent*) (this=0x7321790, pEvent=0x7f90c27d3750) at vcl/qt5/Qt5Widget.cxx:416
      9  QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
      10 QApplication::notify(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
      11 QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7321790, event=0x7f90c27d3750) at kernel/qcoreapplication.cpp:1047
      12 QWidget::ensurePolished() const () at /lib64/libQt5Widgets.so.5
      13 QWidget::setVisible(bool) () at /lib64/libQt5Widgets.so.5
      14 Qt5Frame::SetModal(bool) (this=0x9f411b0, bModal=true) at vcl/qt5/Qt5Frame.cxx:482
      
      Change-Id: Ib6b4d1ee859dfce650422a6c7860abf2eb2686f1
      Reviewed-on: https://gerrit.libreoffice.org/68356
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 69c46bf5)
      Reviewed-on: https://gerrit.libreoffice.org/72659Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
      5be0bd7c
    • Michael Stahl's avatar
      tdf#119856 vcl: fix Qt5FilePicker destructor to run in main thread · c6f2f4e8
      Michael Stahl yazdı
      During QFileDialog dtor, QSocketNotifier::setEnabled(false) is called,
      but it doesn't do anything other than print a stupid warning and so it's
      still registered and later it receives events after it's dead.
      
      0   QSocketNotifier::setEnabled(bool) (this=this@entry=0x991c058, enable=enable@entry=false) at kernel/qsocketnotifier.cpp:240
      1   QInotifyFileSystemWatcherEngine::~QInotifyFileSystemWatcherEngine() (this=0x991c030, __in_chrg=<optimized out>) at io/qfilesystemwatcher_inotify.cpp:260
      2   QInotifyFileSystemWatcherEngine::~QInotifyFileSystemWatcherEngine() (this=0x991c030, __in_chrg=<optimized out>) at io/qfilesystemwatcher_inotify.cpp:258
      3   QObjectPrivate::deleteChildren() (this=this@entry=0x991c240) at kernel/qobject.cpp:1997
      4   QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1025
      5   QFileSystemWatcher::~QFileSystemWatcher() (this=0x9641b60, __in_chrg=<optimized out>) at io/qfilesystemwatcher.cpp:277
      6   QObjectPrivate::deleteChildren() (this=this@entry=0x2a30130) at kernel/qobject.cpp:1997
      7   QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1025
      8   QThread::~QThread() (this=0x2a079b8, __in_chrg=<optimized out>) at thread/qmutex.h:217
      9    () at /lib64/libQt5Widgets.so.5
      10  QScopedPointerDeleter<QObjectData>::cleanup(QObjectData*) (pointer=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:52
      11  QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::~QScopedPointer() (this=0x98aa4d8, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qscopedpointer.h:107
      12  QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:884
      13  QFileSystemModel::~QFileSystemModel() () at /lib64/libQt5Widgets.so.5
      14  QObjectPrivate::deleteChildren() (this=0x97bab00) at kernel/qobject.cpp:1997
      15  QWidget::~QWidget() () at /lib64/libQt5Widgets.so.5
      16  QFileDialog::~QFileDialog() () at /lib64/libQt5Widgets.so.5
      17  std::default_delete<QFileDialog>::operator()(QFileDialog*) const (this=0x9770f90, __ptr=0x926e970) at /usr/include/c++/8/bits/unique_ptr.h:81
      18  std::unique_ptr<QFileDialog, std::default_delete<QFileDialog> >::~unique_ptr() (this=0x9770f90, __in_chrg=<optimized out>) at /usr/include/c++/8/bits/unique_ptr.h:274
      19  Qt5FilePicker::~Qt5FilePicker() (this=0x9770ed0, __in_chrg=<optimized out>) at vcl/qt5/Qt5FilePicker.cxx:155
      
      Change-Id: Iddfa3d44de59e1760e20a389566d9e6815ab26f7
      Reviewed-on: https://gerrit.libreoffice.org/68355
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 621bebd8)
      Reviewed-on: https://gerrit.libreoffice.org/72658Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
      c6f2f4e8
    • Michael Stahl's avatar
      tdf#119856 vcl: Qt5/KDE5 RunInMainThread · 5ad697fd
      Michael Stahl yazdı
      The problem with the current approach of transferring calls to the main
      thread with Q_EMIT signals is that if the code that should run in the
      main thread needs SolarMutex, then the non-main-thread must use
      SolarMutexReleaser - but then the main thread will run not only the call
      that is needed right now, but will potentially process all pending
      events, and the other thread hasn't prepared for that.
      
      We need the inter-thread feature of Qt::BlockingQueuedConnection and the
      non-queued feature of Qt::DirectConnection, but this combination doesn't
      appear to exist.
      
      So the SolarMutexReleaser needs to go - but then the main thread does
      need SolarMutex for some things, and hence we need to trick it into
      believing it has SolarMutex with the m_bNoYieldLock hack.
      
      Then it becomes apparent that the main thread may be blocked on either
      Qt events, which is fine, or on the SalYieldMutex's m_aMutex, which will
      never be released now.
      
      So the main thread must never block on m_aMutex; the alternative is to
      use the same approach as the osx code (and, in a somewhat different
      form, the svp code), and add some condition variables on which the main
      thread can block if it fails to acquire the m_aMutex immediately.
      
      It's even possible to do this in a somewhat generic way with lambdas.
      
      This does appear to work, but it makes the Q_EMIT approach entirely
      untenable, because now the main thread will be blocked on the condition
      variable and the non-main-thread will be blocked until the Qt event is
      processed.
      
      Reviewed-on: https://gerrit.libreoffice.org/68232
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 265caa43)
      
      Change-Id: I6480a6b909d5ec8814b2ff10dbefb0f3686a83c7
      Reviewed-on: https://gerrit.libreoffice.org/72657
      Tested-by: Jenkins
      Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
      5ad697fd
    • Caolán McNamara's avatar
      Resolves: tdf#125387 gtk3 fit-to-text stuck as disabled · 6431b8e8
      Caolán McNamara yazdı
      should only disable/enable its parent container
      
      Change-Id: I002a525b7ac4c178c3db7efc06848315afb785e0
      Reviewed-on: https://gerrit.libreoffice.org/72624
      Tested-by: Jenkins
      Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
      Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
      (cherry picked from commit c278c1cf)
      Reviewed-on: https://gerrit.libreoffice.org/72664Reviewed-by: 's avatarXisco Faulí <xiscofauli@libreoffice.org>
      6431b8e8
    • Miklos Vajna's avatar
      tdf#123106: oox: disable gradient fill grab-bag for PPTX · 2045a84c
      Miklos Vajna yazdı
      This was added in commit 2fcf3a87
      (ooxml: preserve gradient shape fill, 2014-01-31), and assumes that the
      theme colors can be preserved, as the theme definition is grab-bagged as
      well.
      
      But the theme is grab-bagged only for DOCX, not for PPTX, so skip
      gradient grab-bag for PPTX, otherwise the gradient would refer to
      incorrect colors in the theme.
      
      Change-Id: I98e1c67d4b10e68916f81dd7fc508eb4146d506b
      Reviewed-on: https://gerrit.libreoffice.org/67386Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.com>
      Tested-by: Jenkins
      Reviewed-on: https://gerrit.libreoffice.org/72681Reviewed-by: 's avatarXisco Faulí <xiscofauli@libreoffice.org>
      2045a84c
    • Michael Weghorn's avatar
      kde5 fpicker: Reuse 'initialize()' from base class · 3be6a74d
      Michael Weghorn yazdı
      Take over missing case from 'KDE5FilePicker::initialize' to
      'Qt5FilePicker::initialize' and make
      'Qt5FilePicker::addCustomControl' virtual, so that the
      subclass's implementation is called in the 'initialize()'
      method (in particular to avoid adding another autoextension
      checkbox).
      
      Drop the 'KDE5FilePicker::initialize' so that the
      base class implementation is used, which now does the
      same thing.
      
      Add 'override' keyword in KDE5Filepicker.hxx.
      
      Change-Id: Id151a4d4862af4275f6c21c6537a79c52e3ed513
      Reviewed-on: https://gerrit.libreoffice.org/68059
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 77d5795f)
      Reviewed-on: https://gerrit.libreoffice.org/72656
      3be6a74d
    • Michael Weghorn's avatar
      Make 'setDefaultName()' work again for kde5 fpicker · 54ca7549
      Michael Weghorn yazdı
      Add an option to Qt5FilePicker constructor to
      say whether the QFileDialog should be a native one or not,
      since 'QFileDialog::selectFile' does not preselect the correct
      name in the native dialog any more if the
      'QFileDialog::DontUseNativeDialog' option has ever been set, i.e.
      
          QFileDialog fileDialog;
          fileDialog.setOption(QFileDialog::DontUseNativeDialog);
          fileDialog.setOption(QFileDialog::DontUseNativeDialog, false);
          fileDialog.selectFile("test.txt");
      
      will not properly set the name in the native file dialog, which
      broke 'setDefaultName' for the KDE5FilePicker.
      
      This makes it work again, even though I think that the underlying
      issue is a Qt bug
      (s. https://bugreports.qt.io/browse/QTBUG-73682 ).
      
      Change-Id: I99a1e7c97d594925d600fa8eaf3303f9013551c2
      Reviewed-on: https://gerrit.libreoffice.org/68058
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 1d01ebc8)
      Reviewed-on: https://gerrit.libreoffice.org/72655
      54ca7549
    • Michael Weghorn's avatar
      KDE5FilePicker: Reuse custom controls from parent class · 698218f8
      Michael Weghorn yazdı
      Use the custom controls widgets from the parent class
      Qt5FileWidget and drop the own class members that were
      used for this.
      
      Also call the base class's implementations for the methods
      that interact with the custom controls.
      Since the native Plasma/kde5 file picker handles automatic
      file extensions by itself while the non-native qt5 one does
      not, the methods in KDE5FilePicker only forward those
      method calls that are not related to the corresponding
      control ('CHECKBOX_AUTOEXTENSION').
      
      Change-Id: Ia2de3211ffba7814683914a5e629208b19b2ed82
      Reviewed-on: https://gerrit.libreoffice.org/68057
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 0b93a6c3)
      Reviewed-on: https://gerrit.libreoffice.org/72654
      698218f8
    • Grzegorz Araminowicz's avatar
      PPTX export: save SmartArt as diagram instead of group of shapes · 03afad2a
      Grzegorz Araminowicz yazdı
      preserving SmartArt allows editing it in PowerPoint after saving as pptx file
      
      * moved common parts for docx and pptx export to oox/drawingml
      * fixed export tests that expected shapes on output
      
      Change-Id: I3e70a9f4177bebf5e1671232f4cd0ef0e7212626
      Reviewed-on: https://gerrit.libreoffice.org/69598
      Tested-by: Jenkins
      Reviewed-by: 's avatarMiklos Vajna <vmiklos@collabora.com>
      Reviewed-on: https://gerrit.libreoffice.org/72474
      03afad2a
    • Stephan Bergmann's avatar
      Add content_rating to AppData files · 3f2c444c
      Stephan Bergmann yazdı
      At least building on Flathub makes presence of this information a hard
      requirement now (see <https://blogs.gnome.org/hughsie/2019/03/28/
      new-appstream-validation-requirements/> and witness the failed
      <https://flathub.org/builds/#/builders/32/builds/3597>).
      
      The suggested way to calculate that information is via the form at
      <https://hughsie.github.io/oars/generate.html>, which I filled in as follows
      (the answers I selected are prefixed with "=>"):
      
      > By answering all the questions you can generate AppStream-compatible markup
      > for the upstream AppData file.
      >
      > If the user is able to "enable" NSFW or "adult" content, then this should be
      > included in the assessment even if it is turned off by default.
      >
      > What type of component are you generating content for:
      
      => Application that can connect to the Internet
      
      > OARS has multiple versions, and the newer versions include more questions
      > involving specific cultural and religious sensitivities. What version of OARS
      > metadata do you want to produce:
      
      => 1.0 (works with all clients)
      
      > Advertising
      >
      > Defined as the activity of producing advertisements for commercial products or
      > services.
      >
      > For example, this would include banners showing the Coca-Cola logo shown in a
      > Soccer game.
      
      => None
      
      > Gambling
      >
      > Defined as taking a risky action in the hope of a desired result.
      >
      > For example, this would include spinning a wheel to get in-app credits.
      
      => None
      
      > In-App Purchases
      >
      > Defined as items or points that a user can buy for use within a virtual world
      > to improve a character or enhance the playing experience.
      
      => None
      
      > Online Text-only Messaging
      >
      > Defined as any messaging system connected to the Internet.
      
      => None
      
      > Online Audio and Video Messaging
      >
      > Defined as any multimedia messaging system connected to the Internet.
      
      => None
      
      > Contact Details
      >
      > Defined as sharing identifiable details with other users to allow out-of-band
      > communication.
      
      => None
      
      > Information Sharing
      >
      > Defined as sharing information with a legal entity typically used for
      > advertising or for sending back diagnostic data.
      >
      > For example, this would include sending your purchasing history to Amazon.
      
      => None
      
      > Location Sharing
      >
      > Defined as sharing your physical real-time location.
      >
      > For example, this would include uploading the GPS co-ordinates of your current
      > location. NOTE: This does not include heuristic based location services, e.g.
      > GeoIP and others.
      
      => None
      
      > The following markup can be pasted into the existing application AppData file.
      >
      > <content_rating type="oars-1.0" />
      
      Change-Id: I063484d8031892c20f88999c5a9beeae3666511c
      Reviewed-on: https://gerrit.libreoffice.org/72581
      Tested-by: Jenkins
      Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
      (cherry picked from commit 0a136095)
      Reviewed-on: https://gerrit.libreoffice.org/72667Reviewed-by: 's avatarMichael Stahl <Michael.Stahl@cib.de>
      Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
      3f2c444c
    • Katarina Behrens's avatar
      tdf#122056: Catch DisposedExceptions everywhere · 74df5aff
      Katarina Behrens yazdı
      Change-Id: I6bdb9aa89a8a5181b096f47f90ab6fb5711e7447
      Reviewed-on: https://gerrit.libreoffice.org/69541
      Tested-by: Jenkins
      Reviewed-by: 's avatarKatarina Behrens <Katarina.Behrens@cib.de>
      (cherry picked from commit 9e37ab4e)
      Reviewed-on: https://gerrit.libreoffice.org/72661Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
      74df5aff
    • Jan-Marek Glogowski's avatar
      tdf#123549 Qt5 implement Qt5Menu::ShowCloseButton · f10c1c64
      Jan-Marek Glogowski yazdı
      This includes some not-so-nice lifetime handling of the button
      "clicked" connection handling. I decided to keep the code in
      one place, simply always forcing a disconnect on show, instead
      of a more "optimized" code version in SetFrame.
      
      First we try to get the icon from the system theme, but use LO's
      own icon theme as a fallback.
      
      Change-Id: Ic0459623ec907b9a54bef4670bf65cf587cd47ea
      Reviewed-on: https://gerrit.libreoffice.org/71784Tested-by: 's avatarJenkins <ci@libreoffice.org>
      Reviewed-by: 's avatarJan-Marek Glogowski <glogow@fbihome.de>
      (cherry picked from commit 8ea988f5)
      Reviewed-on: https://gerrit.libreoffice.org/71931
      Tested-by: Jenkins
      Reviewed-by: 's avatarMichael Weghorn <m.weghorn@posteo.de>
      f10c1c64
  2. 21 May, 2019 23 kayıt (commit)
  3. 20 May, 2019 1 kayıt (commit)
  4. 19 May, 2019 1 kayıt (commit)
  5. 18 May, 2019 1 kayıt (commit)
  6. 17 May, 2019 2 kayıt (commit)