3636
3737@implementation NSApplication (MacController)
3838
39- + (QVariant)toQVariant : (id )data {
39+ + (QVariant)toQVariant : (id )data
40+ {
4041 if (data == nil ) {
4142 return {};
4243 }
@@ -55,7 +56,8 @@ + (QVariant)toQVariant:(id)data {
5556 return {};
5657}
5758
58- + (QVariantList)toQVariantList : (NSArray *)data {
59+ + (QVariantList)toQVariantList : (NSArray *)data
60+ {
5961 QVariantList result;
6062 if (data == nil ) {
6163 return result;
@@ -66,7 +68,8 @@ + (QVariantList)toQVariantList:(NSArray *)data {
6668 return result;
6769}
6870
69- + (QVariantMap)toQVariantMap : (NSDictionary *)data {
71+ + (QVariantMap)toQVariantMap : (NSDictionary *)data
72+ {
7073 QVariantMap result;
7174 if (data == nil ) {
7275 return result;
@@ -77,7 +80,8 @@ + (QVariantMap)toQVariantMap:(NSDictionary *)data {
7780 return result;
7881}
7982
80- + (id )toID : (const QVariant&)data {
83+ + (id )toID : (const QVariant&)data
84+ {
8185 switch (data.type ()) {
8286 case QVariant::String: return data.toString ().toNSString ();
8387 case QVariant::Map: return [NSApplication toNSDictionary: data.toMap ()];
@@ -86,23 +90,26 @@ + (id)toID:(const QVariant&)data {
8690 }
8791}
8892
89- + (NSArray *)toNSArray : (const QVariantList&)data {
93+ + (NSArray *)toNSArray : (const QVariantList&)data
94+ {
9095 NSMutableArray *result = [[NSMutableArray alloc ] init ];
91- for (const QVariant & item: data) {
96+ for (const QVariant& item : data) {
9297 [result addObject: [NSApplication toID: item]];
9398 }
9499 return result;
95100}
96101
97- + (NSDictionary *)toNSDictionary : (const QVariantMap&)data {
102+ + (NSDictionary *)toNSDictionary : (const QVariantMap&)data
103+ {
98104 NSMutableDictionary *result = [[NSMutableDictionary alloc ] init ];
99105 for (QVariantMap::const_iterator i = data.cbegin (); i != data.cend (); ++i) {
100106 result[i.key ().toNSString ()] = [NSApplication toID: i.value ()];
101107 }
102108 return result;
103109}
104110
105- - (void )notificationEvent : (NSNotification *)notification {
111+ - (void )notificationEvent : (NSNotification *)notification
112+ {
106113 NSString *nonce = notification.object ;
107114 NSDictionary *req = takeValue (nonce);
108115 NSLog (@" web-eid-safari: msg from extension nonce (%@ ) request: %@ " , nonce, req);
@@ -111,13 +118,16 @@ - (void)notificationEvent:(NSNotification *)notification {
111118 }
112119
113120 NSDictionary *resp;
114- if ([@" status" isEqualToString: req[@" command" ]]) {
115- resp = [NSApplication toNSDictionary: {{QStringLiteral (" version" ), qApp->applicationVersion ()}}];
121+ if ([@" status" isEqualToString: req[@" command" ]]) {
122+ resp = [NSApplication
123+ toNSDictionary: {{QStringLiteral (" version" ), qApp->applicationVersion ()}}];
116124 } else {
117125 try {
118- const auto argumentJson = QJsonDocument::fromJson (QByteArray::fromNSData (req[@" arguments" ]));
119- Controller controller (std::make_unique<CommandWithArguments>(commandNameToCommandType (QString::fromNSString (req[@" command" ])),
120- argumentJson.object ().toVariantMap ()));
126+ const auto argumentJson =
127+ QJsonDocument::fromJson (QByteArray::fromNSData (req[@" arguments" ]));
128+ Controller controller (std::make_unique<CommandWithArguments>(
129+ commandNameToCommandType (QString::fromNSString (req[@" command" ])),
130+ argumentJson.object ().toVariantMap ()));
121131 controller.run ();
122132 QEventLoop e;
123133 QObject::connect (&controller, &Controller::quit, &e, &QEventLoop::quit);
@@ -144,22 +154,19 @@ Controller controller(std::make_unique<CommandWithArguments>(commandNameToComman
144154
145155 bool isSafariExtensionContainingApp () override { return true ; }
146156 bool isSafariExtensionEnabled () override { return safariExtensionEnabled; }
147- void showSafariSettings () override {
148- [SFSafariApplication showPreferencesForExtensionWithIdentifier: WebEidExtension completionHandler: nil ];
149- }
150- void setSafariExtensionEnabled (bool value) {
151- safariExtensionEnabled = value;
157+ void showSafariSettings () override
158+ {
159+ [SFSafariApplication showPreferencesForExtensionWithIdentifier: WebEidExtension
160+ completionHandler: nil ];
152161 }
162+ void setSafariExtensionEnabled (bool value) { safariExtensionEnabled = value; }
153163
154164private:
155165 bool safariExtensionEnabled = false ;
156166};
157167
158168int main (int argc, char * argv[])
159169{
160- id starting = takeValue (WebEidStarting);
161- NSLog (@" web-eid-safari: is starting %@ " , starting);
162-
163170 Q_INIT_RESOURCE (web_eid_resources);
164171 Q_INIT_RESOURCE (translations);
165172
@@ -172,6 +179,16 @@ int main(int argc, char* argv[])
172179 appPtr->setSafariExtensionEnabled (bool (state.enabled ));
173180 }];
174181
182+ id starting = [getUserDefaults () objectForKey: WebEidStarting];
183+ NSLog (@" web-eid-safari: is starting %@ " , starting);
184+ if ([(NSNumber *)starting boolValue ]) {
185+ QTimer::singleShot (0 , appPtr, [] {
186+ id starting = takeValue (WebEidStarting);
187+ NSLog (@" web-eid-safari: started %@ " , starting);
188+ });
189+ return QApplication::exec ();
190+ }
191+
175192 try {
176193 if (auto args = app.parseArgs ()) {
177194 NSLog (@" web-eid-safari: running with arguments" );
@@ -192,8 +209,5 @@ int main(int argc, char* argv[])
192209 qCritical () << error;
193210 }
194211
195- if (![(NSNumber *)starting boolValue ]) {
196- WebEidDialog::showAboutPage ();
197- }
198- return QApplication::exec ();
212+ return -1 ;
199213}
0 commit comments