Skip to content

Commit

Permalink
Squash and remove extra files
Browse files Browse the repository at this point in the history
Signed-off-by: Elsie Hupp <[email protected]>
  • Loading branch information
elsiehupp committed Mar 12, 2021
1 parent aa9821f commit 86202df
Show file tree
Hide file tree
Showing 9 changed files with 214 additions and 2 deletions.
6 changes: 6 additions & 0 deletions src/gui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,8 @@ endif()

IF( APPLE )
list(APPEND client_SRCS cocoainitializer_mac.mm)
list(APPEND client_SRCS foregroundbackground_mac.mm)
list(APPEND client_SRCS foregroundbackground_cocoa.mm)
list(APPEND client_SRCS socketapisocket_mac.mm)
list(APPEND client_SRCS systray.mm)

Expand All @@ -164,6 +166,10 @@ IF( APPLE )
DESTINATION "${OWNCLOUD_OSX_BUNDLE}/Contents/Frameworks" USE_SOURCE_PERMISSIONS)

endif()
ELSEIF( WIN32 )
list(APPEND client_SRCS foregroundbackground_windows.cpp)
ELSEIF( LINUX )
list(APPEND client_SRCS foregroundbackground_linux.cpp)
ENDIF()

IF( NOT WIN32 AND NOT APPLE )
Expand Down
42 changes: 42 additions & 0 deletions src/gui/foregroundbackground_cocoa.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright (C) by Elsie Hupp <gpl at elsiehupp dot com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

#import <AppKit/NSApplication.h>

/**
* @brief CocoaProcessType provides methods for moving the application between
* the background and foreground.
* @ingroup gui
*/

#ifndef COCOAPROCESSTYPE_H
#define COCOAPROCESSTYPE_H

@interface CocoaProcessType : NSApplication

/**
* @brief CocoaProcessTypeToForeground() enables the macOS menubar and dock icon, which are necessary for a maximized window to be able to exit full screen.
* @ingroup gui
*/
+ (void)ToForeground;

/**
* @brief CocoaProcessTypeToBackground() disables the macOS menubar and dock icon, so that the application will only be present as a menubar icon.
* @ingroup gui
*/
+ (void)ToBackground;

@end

#endif
34 changes: 34 additions & 0 deletions src/gui/foregroundbackground_cocoa.mm
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* Copyright (C) by Elsie Hupp <gpl at elsiehupp dot com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

#include "foregroundbackground_cocoa.h"
#include "common/utility.h"

@implementation CocoaProcessType

+ (void)ToForeground
{
NSApplicationLoad();
ProcessSerialNumber processSerialNumber = { 0, kCurrentProcess };
TransformProcessType(&processSerialNumber, kProcessTransformToForegroundApplication);
}

+ (void)ToBackground
{
NSApplicationLoad();
ProcessSerialNumber processSerialNumber = { 0, kCurrentProcess };
TransformProcessType(&processSerialNumber, kProcessTransformToUIElementApplication);
}

@end
35 changes: 35 additions & 0 deletions src/gui/foregroundbackground_interface.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/*
* Copyright (C) by Elsie Hupp <gpl at elsiehupp dot com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

/**
* @brief ForegroundBackgroundInterface allows ForegroundBackground to be implemented differently per platform
* @ingroup gui
*/

#ifndef FOREGROUNDBACKGROUND_INTERFACE_H
#define FOREGROUNDBACKGROUND_INTERFACE_H

/**
* @brief ToForeground() enables the macOS menubar and dock icon, which are necessary for a maximized window to be able to exit full screen.
* @ingroup gui
*/
void ToForeground();

/**
* @brief TypeToBackground() disables the macOS menubar and dock icon, so that the application will only be present as a menubar icon.
* @ingroup gui
*/
void ToBackground();

#endif
27 changes: 27 additions & 0 deletions src/gui/foregroundbackground_linux.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright (C) by Elsie Hupp <gpl at elsiehupp dot com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

#include "foregroundbackground_interface.h"

void ToForeground()
{
// To be implemented
return;
}

void ToBackground()
{
// To be implemented
return;
}
26 changes: 26 additions & 0 deletions src/gui/foregroundbackground_mac.mm
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright (C) by Elsie Hupp <gpl at elsiehupp dot com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

#include "foregroundbackground_interface.h"
#include "foregroundbackground_cocoa.h"

void ToForeground()
{
[CocoaProcessType ToForeground];
}

void ToBackground()
{
[CocoaProcessType ToBackground];
}
27 changes: 27 additions & 0 deletions src/gui/foregroundbackground_windows.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/*
* Copyright (C) by Elsie Hupp <gpl at elsiehupp dot com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*/

#include "foregroundbackground_interface.h"

void ToForeground()
{
// To be implemented
return;
}

void ToBackground()
{
// To be implemented
return;
}
17 changes: 15 additions & 2 deletions src/gui/settingsdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

#include "settingsdialog.h"
#include "ui_settingsdialog.h"
#include "foregroundbackground_interface.h"

#include "folderman.h"
#include "theme.h"
Expand All @@ -26,6 +27,7 @@
#include "accountmanager.h"

#include <QLabel>
#include <QMenuBar>
#include <QStandardItemModel>
#include <QStackedWidget>
#include <QPushButton>
Expand Down Expand Up @@ -85,13 +87,20 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)
, _ui(new Ui::SettingsDialog)
, _gui(gui)
{

ToForeground();

ConfigFile cfg;

_ui->setupUi(this);

_menuBar = new QMenuBar(parent);

_toolBar = new QToolBar;
_toolBar->setIconSize(QSize(32, 32));
_toolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
layout()->setMenuBar(_toolBar);
// layout()->addWidget(_toolBar);
layout()->setMenuBar(_menuBar);

// People perceive this as a Window, so also make Ctrl+W work
auto *closeWindowAction = new QAction(this);
Expand Down Expand Up @@ -158,12 +167,14 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent)

customizeStyle();

setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint & Qt::Window);

cfg.restoreGeometry(this);
}

SettingsDialog::~SettingsDialog()
{
ToBackground();
delete _ui;
}

Expand All @@ -178,13 +189,15 @@ void SettingsDialog::reject()
ConfigFile cfg;
cfg.saveGeometry(this);
QDialog::reject();
ToBackground();
}

void SettingsDialog::accept()
{
ConfigFile cfg;
cfg.saveGeometry(this);
QDialog::accept();
ToBackground();
}

void SettingsDialog::changeEvent(QEvent *e)
Expand Down
2 changes: 2 additions & 0 deletions src/gui/settingsdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

class QAction;
class QActionGroup;
class QMenuBar;
class QToolBar;
class QStandardItemModel;

Expand Down Expand Up @@ -89,6 +90,7 @@ private slots:
// case the account avatar changes
QHash<Account *, QAction *> _actionForAccount;

QMenuBar *_menuBar;
QToolBar *_toolBar;

ownCloudGui *_gui;
Expand Down

0 comments on commit 86202df

Please sign in to comment.