#include "support/lassert.h"
#include "support/lstrings.h"
#include "support/lyxalgo.h" // sorted
+#include "support/mute_warning.h"
#include "support/textutils.h"
#include "support/Messages.h"
#include "support/os.h"
struct GuiApplication::Private
{
Private(): language_model_(nullptr), meta_fake_bit(NoModifier),
- global_menubar_(nullptr)
- #if (QT_VERSION >= QT_VERSION_CHECK(5, 1, 0))
- , last_state_(Qt::ApplicationInactive)
- #endif
+ global_menubar_(nullptr), last_state_(Qt::ApplicationInactive)
{
#if (QT_VERSION >= 0x050400)
#if defined(Q_OS_WIN) || defined(Q_CYGWIN_WIN)
/// Only used on mac.
QMenuBar * global_menubar_;
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 1, 0))
/// Holds previous application state on Mac
Qt::ApplicationState last_state_;
-#endif
#if defined(Q_OS_MAC) && (QT_VERSION < 0x060000)
/// Linkback mime handler for MacOSX.
QCoreApplication::setOrganizationName(app_name);
QCoreApplication::setOrganizationDomain("lyx.org");
QCoreApplication::setApplicationName(lyx_package);
-#if QT_VERSION >= 0x050100 && QT_VERSION < 0x060000
+#if QT_VERSION < 0x060000
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
setupApplescript();
appleCleanupEditMenu();
appleCleanupViewMenu();
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 1, 0))
connect(this, SIGNAL(applicationStateChanged(Qt::ApplicationState)),
this, SLOT(onApplicationStateChanged(Qt::ApplicationState)));
#endif
-#endif
#if defined(QPA_XCB)
// doubleClickInterval() is 400 ms on X11 which is just too long.
return qstring_to_ucs4(findImg(toqstr(c)));
}
+void Application::applyPrefs()
+{
+ if (lyxrc.ui_style != "default")
+ lyx::frontend::GuiApplication::setStyle(toqstr(lyxrc.ui_style));
+}
FuncStatus GuiApplication::getStatus(FuncRequest const & cmd) const
{
createView(QString(), false); // keep hidden
current_view_->newDocument(to_utf8(cmd.argument()));
current_view_->show();
- setActiveWindow(current_view_);
+ current_view_->activateWindow();
} else {
current_view_->newDocument(to_utf8(cmd.argument()));
}
}
case LFUN_LYXFILES_OPEN: {
- // This is the actual reason for this method (#12106).
- validateCurrentView();
- if (!current_view_
- || (!lyxrc.open_buffers_in_tabs
- && current_view_->documentBufferView() != nullptr))
- createView();
string arg = to_utf8(cmd.argument());
if (arg.empty())
// set default
case LFUN_DIALOG_SHOW: {
string const name = cmd.getArg(0);
-
- if ( name == "aboutlyx"
- || name == "prefs"
- || name == "texinfo"
- || name == "progress"
- || name == "compare")
+ // Workaround: on Mac OS the application
+ // is not terminated when closing the last view.
+ // With the following dialogs which should still
+ // be usable, create a new one to be able
+ // to dispatch LFUN_DIALOG_SHOW to this view.
+ if (name == "aboutlyx" || name == "compare"
+ || name == "lyxfiles" || name == "prefs"
+ || name == "progress" || name == "texinfo")
{
- // work around: on Mac OS the application
- // is not terminated when closing the last view.
- // Create a new one to be able to dispatch the
- // LFUN_DIALOG_SHOW to this view.
if (current_view_ == nullptr)
createView();
}
if (autoShow) {
view->show();
- setActiveWindow(view);
+ view->activateWindow();
}
if (!geometry_arg.isEmpty()) {
QPixmap pm = getPixmap(imagedir, name, "svgz,png");
FileName fname = imageLibFileSearch(imagedir, name, "svgz,png");
QString fpath = toqstr(fname.absFileName());
- if (!fpath.isEmpty()) {
+ if (!fpath.isEmpty() && !fpath.endsWith(".png")) {
QSvgRenderer svgRenderer(fpath);
if (svgRenderer.isValid()) {
pm = QPixmap(pm.size() * dpr);
QFont const GuiApplication::typewriterSystemFont()
{
-#if QT_VERSION >= 0x050200
QFont font = QFontDatabase::systemFont(QFontDatabase::FixedFont);
-#else
- QFont font("monospace");
-#endif
if (!isFixedPitch(font)) {
// try to enforce a real monospaced font
font.setStyleHint(QFont::Monospace);
}
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 1, 0))
void GuiApplication::onApplicationStateChanged(Qt::ApplicationState state)
{
std::string name = "unknown";
LYXERR(Debug::GUI, "onApplicationStateChanged..." << name);
d->last_state_ = state;
}
-#endif
void GuiApplication::startLongOperation() {
#if defined(QPA_XCB)
bool GuiApplication::nativeEventFilter(const QByteArray & eventType,
- void * message, long *)
+ void * message, QINTPTR *)
{
if (!current_view_ || eventType != "xcb_generic_event_t")
return false;