Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
savoirfairelinux
jami-client-macos
Commits
7f3164c1
Commit
7f3164c1
authored
Jun 12, 2015
by
Alexandre Lision
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
accounts: use account selection model
Refs #75626 Change-Id: If9dbd47d5463b4a17aff31eae6dd3699cf7e9883
parent
d18fa275
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
245 additions
and
229 deletions
+245
-229
src/AccAdvancedVC.h
src/AccAdvancedVC.h
+1
-5
src/AccAdvancedVC.mm
src/AccAdvancedVC.mm
+56
-40
src/AccAudioVC.h
src/AccAudioVC.h
+1
-5
src/AccAudioVC.mm
src/AccAudioVC.mm
+27
-15
src/AccGeneralVC.h
src/AccGeneralVC.h
+0
-6
src/AccGeneralVC.mm
src/AccGeneralVC.mm
+29
-19
src/AccRingVC.h
src/AccRingVC.h
+1
-6
src/AccRingVC.mm
src/AccRingVC.mm
+31
-20
src/AccSecurityVC.h
src/AccSecurityVC.h
+1
-7
src/AccSecurityVC.mm
src/AccSecurityVC.mm
+57
-49
src/AccVideoVC.h
src/AccVideoVC.h
+1
-5
src/AccVideoVC.mm
src/AccVideoVC.mm
+31
-19
src/AccountsVC.mm
src/AccountsVC.mm
+9
-33
No files found.
src/AccAdvancedVC.h
View file @
7f3164c1
...
...
@@ -31,10 +31,6 @@
#import <account.h>
@interface
AccAdvancedVC
:
NSViewController
<
NSTextFieldDelegate
>
{
}
-
(
void
)
loadAccount
:(
Account
*
)
account
;
@interface
AccAdvancedVC
:
NSViewController
<
NSTextFieldDelegate
>
@end
src/AccAdvancedVC.mm
View file @
7f3164c1
...
...
@@ -39,9 +39,11 @@
#import "AccAdvancedVC.h"
#import <accountmodel.h>
#import <qitemselectionmodel.h>
@interface
AccAdvancedVC
()
@property
Account
*
privateAccount
;
@property
(
assign
)
IBOutlet
NSTextField
*
registrationField
;
@property
(
assign
)
IBOutlet
NSTextField
*
localPortField
;
@property
(
assign
)
IBOutlet
NSButton
*
isUsingSTUN
;
...
...
@@ -67,7 +69,6 @@
@end
@implementation
AccAdvancedVC
@synthesize
privateAccount
;
@synthesize
registrationField
;
@synthesize
localPortField
;
@synthesize
isUsingSTUN
;
...
...
@@ -106,12 +107,27 @@
[
STUNserverURLField
setTag
:
STUNURL_TAG
];
[
publishedPortField
setTag
:
PUBLICPORT_TAG
];
[
publishedAddrField
setTag
:
PUBLICADDR_TAG
];
QObject
::
connect
(
AccountModel
::
instance
()
->
selectionModel
(),
&
QItemSelectionModel
::
currentChanged
,
[
=
](
const
QModelIndex
&
current
,
const
QModelIndex
&
previous
)
{
if
(
!
current
.
isValid
())
return
;
[
self
loadAccount
];
});
}
-
(
void
)
loadAccount
:(
Account
*
)
a
ccount
-
(
Account
*
)
currentA
ccount
{
privateAccount
=
account
;
auto
accIdx
=
AccountModel
::
instance
()
->
selectionModel
()
->
currentIndex
();
return
AccountModel
::
instance
()
->
getAccountByModelIndex
(
accIdx
);
}
-
(
void
)
loadAccount
{
auto
account
=
[
self
currentAccount
];
[
self
updateControlsWithTag
:
REGISTRATION_TAG
];
[
self
updateControlsWithTag
:
LOCALPORT_TAG
];
[
self
updateControlsWithTag
:
MINAUDIO_TAG
];
...
...
@@ -119,20 +135,20 @@
[
self
updateControlsWithTag
:
MINVIDEO_TAG
];
[
self
updateControlsWithTag
:
MAXVIDEO_TAG
];
[
STUNserverURLField
setStringValue
:
privateA
ccount
->
sipStunServer
().
toNSString
()];
[
isUsingSTUN
setState
:
privateA
ccount
->
isSipStunEnabled
()?
NSOnState
:
NSOffState
];
[
STUNserverURLField
setEnabled
:
privateA
ccount
->
isSipStunEnabled
()];
[
STUNserverURLField
setStringValue
:
a
ccount
->
sipStunServer
().
toNSString
()];
[
isUsingSTUN
setState
:
a
ccount
->
isSipStunEnabled
()?
NSOnState
:
NSOffState
];
[
STUNserverURLField
setEnabled
:
a
ccount
->
isSipStunEnabled
()];
if
(
privateA
ccount
->
isPublishedSameAsLocal
())
if
(
a
ccount
->
isPublishedSameAsLocal
())
[
publishAddrAndPortRadioGroup
selectCellAtRow
:
0
column
:
0
];
else
{
[
publishAddrAndPortRadioGroup
selectCellAtRow
:
1
column
:
0
];
}
[
publishedAddrField
setStringValue
:
privateA
ccount
->
publishedAddress
().
toNSString
()];
[
publishedPortField
setIntValue
:
privateA
ccount
->
publishedPort
()];
[
publishedAddrField
setEnabled
:
!
privateA
ccount
->
isPublishedSameAsLocal
()];
[
publishedPortField
setEnabled
:
!
privateA
ccount
->
isPublishedSameAsLocal
()];
[
publishedAddrField
setStringValue
:
a
ccount
->
publishedAddress
().
toNSString
()];
[
publishedPortField
setIntValue
:
a
ccount
->
publishedPort
()];
[
publishedAddrField
setEnabled
:
!
a
ccount
->
isPublishedSameAsLocal
()];
[
publishedPortField
setEnabled
:
!
a
ccount
->
isPublishedSameAsLocal
()];
}
#pragma mark - NSTextFieldDelegate methods
...
...
@@ -152,31 +168,31 @@
{
switch
([
sender
tag
])
{
case
REGISTRATION_TAG
:
private
Account
->
setRegistrationExpire
([
sender
integerValue
]);
[
self
current
Account
]
->
setRegistrationExpire
([
sender
integerValue
]);
break
;
case
LOCALPORT_TAG
:
private
Account
->
setLocalPort
([
sender
integerValue
]);
[
self
current
Account
]
->
setLocalPort
([
sender
integerValue
]);
break
;
case
STUNURL_TAG
:
private
Account
->
setSipStunServer
([[
sender
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setSipStunServer
([[
sender
stringValue
]
UTF8String
]);
break
;
case
PUBLICADDR_TAG
:
private
Account
->
setPublishedAddress
([[
sender
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setPublishedAddress
([[
sender
stringValue
]
UTF8String
]);
break
;
case
PUBLICPORT_TAG
:
private
Account
->
setPublishedPort
([
sender
integerValue
]);
[
self
current
Account
]
->
setPublishedPort
([
sender
integerValue
]);
break
;
case
MINAUDIO_TAG
:
private
Account
->
setAudioPortMin
([
sender
integerValue
]);
[
self
current
Account
]
->
setAudioPortMin
([
sender
integerValue
]);
break
;
case
MAXAUDIO_TAG
:
private
Account
->
setAudioPortMax
([
sender
integerValue
]);
[
self
current
Account
]
->
setAudioPortMax
([
sender
integerValue
]);
break
;
case
MINVIDEO_TAG
:
private
Account
->
setVideoPortMin
([
sender
integerValue
]);
[
self
current
Account
]
->
setVideoPortMin
([
sender
integerValue
]);
break
;
case
MAXVIDEO_TAG
:
private
Account
->
setVideoPortMax
([
sender
integerValue
]);
[
self
current
Account
]
->
setVideoPortMax
([
sender
integerValue
]);
break
;
default:
break
;
...
...
@@ -186,20 +202,20 @@
-
(
IBAction
)
toggleSTUN
:(
NSButton
*
)
sender
{
private
Account
->
setSipStunEnabled
([
sender
state
]
==
NSOnState
);
[
STUNserverURLField
setEnabled
:
private
Account
->
isSipStunEnabled
()];
[
self
current
Account
]
->
setSipStunEnabled
([
sender
state
]
==
NSOnState
);
[
STUNserverURLField
setEnabled
:
[
self
current
Account
]
->
isSipStunEnabled
()];
}
-
(
IBAction
)
didSwitchPublishedAddress
:(
NSMatrix
*
)
matrix
{
NSInteger
row
=
[
matrix
selectedRow
];
if
(
row
==
0
)
{
private
Account
->
setPublishedSameAsLocal
(
YES
);
[
self
current
Account
]
->
setPublishedSameAsLocal
(
YES
);
}
else
{
private
Account
->
setPublishedSameAsLocal
(
NO
);
[
self
current
Account
]
->
setPublishedSameAsLocal
(
NO
);
}
[
publishedAddrField
setEnabled
:
!
private
Account
->
isPublishedSameAsLocal
()];
[
publishedPortField
setEnabled
:
!
private
Account
->
isPublishedSameAsLocal
()];
[
publishedAddrField
setEnabled
:
!
[
self
current
Account
]
->
isPublishedSameAsLocal
()];
[
publishedPortField
setEnabled
:
!
[
self
current
Account
]
->
isPublishedSameAsLocal
()];
}
...
...
@@ -207,28 +223,28 @@
{
switch
(
tag
)
{
case
REGISTRATION_TAG
:
[
registrationStepper
setIntegerValue
:
private
Account
->
registrationExpire
()];
[
registrationField
setIntegerValue
:
private
Account
->
registrationExpire
()];
[
registrationStepper
setIntegerValue
:
[
self
current
Account
]
->
registrationExpire
()];
[
registrationField
setIntegerValue
:
[
self
current
Account
]
->
registrationExpire
()];
break
;
case
LOCALPORT_TAG
:
[
localPortStepper
setIntegerValue
:
private
Account
->
localPort
()];
[
localPortField
setIntegerValue
:
private
Account
->
localPort
()];
[
localPortStepper
setIntegerValue
:
[
self
current
Account
]
->
localPort
()];
[
localPortField
setIntegerValue
:
[
self
current
Account
]
->
localPort
()];
break
;
case
MINAUDIO_TAG
:
[
minAudioPortStepper
setIntegerValue
:
private
Account
->
audioPortMin
()];
[
minAudioRTPRange
setIntegerValue
:
private
Account
->
audioPortMin
()];
[
minAudioPortStepper
setIntegerValue
:
[
self
current
Account
]
->
audioPortMin
()];
[
minAudioRTPRange
setIntegerValue
:
[
self
current
Account
]
->
audioPortMin
()];
break
;
case
MAXAUDIO_TAG
:
[
maxAudioPortStepper
setIntegerValue
:
private
Account
->
audioPortMax
()];
[
maxAudioRTPRange
setIntegerValue
:
private
Account
->
audioPortMax
()];
[
maxAudioPortStepper
setIntegerValue
:
[
self
current
Account
]
->
audioPortMax
()];
[
maxAudioRTPRange
setIntegerValue
:
[
self
current
Account
]
->
audioPortMax
()];
break
;
case
MINVIDEO_TAG
:
[
minVideoPortStepper
setIntegerValue
:
private
Account
->
videoPortMin
()];
[
minVideoRTPRange
setIntegerValue
:
private
Account
->
videoPortMin
()];
[
minVideoPortStepper
setIntegerValue
:
[
self
current
Account
]
->
videoPortMin
()];
[
minVideoRTPRange
setIntegerValue
:
[
self
current
Account
]
->
videoPortMin
()];
break
;
case
MAXVIDEO_TAG
:
[
maxVideoPortStepper
setIntegerValue
:
private
Account
->
videoPortMax
()];
[
maxVideoRTPRange
setIntegerValue
:
private
Account
->
videoPortMax
()];
[
maxVideoPortStepper
setIntegerValue
:
[
self
current
Account
]
->
videoPortMax
()];
[
maxVideoRTPRange
setIntegerValue
:
[
self
current
Account
]
->
videoPortMax
()];
break
;
default:
break
;
...
...
src/AccAudioVC.h
View file @
7f3164c1
...
...
@@ -36,11 +36,7 @@
#import "QNSTreeController.h"
@interface
AccAudioVC
:
NSViewController
<
NSOutlineViewDelegate
>
{
}
-
(
void
)
loadAccount
:(
Account
*
)
account
;
@interface
AccAudioVC
:
NSViewController
<
NSOutlineViewDelegate
>
@end
...
...
src/AccAudioVC.mm
View file @
7f3164c1
...
...
@@ -37,10 +37,10 @@
#import <QSortFilterProxyModel>
#import <audio/codecmodel.h>
#import <accountmodel.h>
#import <qitemselectionmodel.h>
@interface
AccAudioVC
()
@property
Account
*
privateAccount
;
@property
QNSTreeController
*
treeController
;
@property
(
assign
)
IBOutlet
NSOutlineView
*
codecsView
;
...
...
@@ -49,17 +49,29 @@
@implementation
AccAudioVC
@synthesize
treeController
;
@synthesize
codecsView
;
@synthesize
privateAccount
;
-
(
void
)
awakeFromNib
{
NSLog
(
@"INIT Audio VC"
);
QObject
::
connect
(
AccountModel
::
instance
()
->
selectionModel
(),
&
QItemSelectionModel
::
currentChanged
,
[
=
](
const
QModelIndex
&
current
,
const
QModelIndex
&
previous
)
{
if
(
!
current
.
isValid
())
return
;
[
self
loadAccount
];
});
}
-
(
void
)
loadAccount
:(
Account
*
)
a
ccount
-
(
Account
*
)
currentA
ccount
{
privateAccount
=
account
;
treeController
=
[[
QNSTreeController
alloc
]
initWithQModel
:
privateAccount
->
codecModel
()
->
audioCodecs
()];
auto
accIdx
=
AccountModel
::
instance
()
->
selectionModel
()
->
currentIndex
();
return
AccountModel
::
instance
()
->
getAccountByModelIndex
(
accIdx
);
}
-
(
void
)
loadAccount
{
auto
account
=
[
self
currentAccount
];
treeController
=
[[
QNSTreeController
alloc
]
initWithQModel
:
account
->
codecModel
()
->
audioCodecs
()];
[
treeController
setAvoidsEmptySelection
:
NO
];
[
treeController
setChildrenKeyPath
:
@"children"
];
...
...
@@ -75,8 +87,8 @@
if
(
!
qIdx
.
isValid
())
return
;
QMimeData
*
mime
=
private
Account
->
codecModel
()
->
audioCodecs
()
->
mimeData
(
QModelIndexList
()
<<
qIdx
);
private
Account
->
codecModel
()
->
audioCodecs
()
->
dropMimeData
(
mime
,
Qt
::
MoveAction
,
qIdx
.
row
()
-
1
,
0
,
QModelIndex
());
QMimeData
*
mime
=
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
mimeData
(
QModelIndexList
()
<<
qIdx
);
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
dropMimeData
(
mime
,
Qt
::
MoveAction
,
qIdx
.
row
()
-
1
,
0
,
QModelIndex
());
}
}
...
...
@@ -86,8 +98,8 @@
if
(
!
qIdx
.
isValid
())
return
;
QMimeData
*
mime
=
private
Account
->
codecModel
()
->
audioCodecs
()
->
mimeData
(
QModelIndexList
()
<<
qIdx
);
private
Account
->
codecModel
()
->
audioCodecs
()
->
dropMimeData
(
mime
,
Qt
::
MoveAction
,
qIdx
.
row
()
+
1
,
0
,
QModelIndex
());
QMimeData
*
mime
=
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
mimeData
(
QModelIndexList
()
<<
qIdx
);
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
dropMimeData
(
mime
,
Qt
::
MoveAction
,
qIdx
.
row
()
+
1
,
0
,
QModelIndex
());
}
}
...
...
@@ -95,8 +107,8 @@
NSInteger
row
=
[
sender
clickedRow
];
NSTableColumn
*
col
=
[
sender
tableColumnWithIdentifier
:
COLUMNID_STATE
];
NSButtonCell
*
cell
=
[
col
dataCellForRow
:
row
];
QModelIndex
qIdx
=
private
Account
->
codecModel
()
->
audioCodecs
()
->
index
(
row
,
0
,
QModelIndex
());
private
Account
->
codecModel
()
->
audioCodecs
()
->
setData
(
qIdx
,
cell
.
state
==
NSOnState
?
Qt
:
:
Unchecked
:
Qt
::
Checked
,
Qt
::
CheckStateRole
);
QModelIndex
qIdx
=
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
index
(
row
,
0
,
QModelIndex
());
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
setData
(
qIdx
,
cell
.
state
==
NSOnState
?
Qt
:
:
Unchecked
:
Qt
::
Checked
,
Qt
::
CheckStateRole
);
}
#pragma mark - NSOutlineViewDelegate methods
...
...
@@ -157,16 +169,16 @@
if
(
!
qIdx
.
isValid
())
return
;
if
([[
tableColumn
identifier
]
isEqualToString
:
COLUMNID_STATE
])
{
[
cell
setState
:
private
Account
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
Qt
:
:
CheckStateRole
).
value
<
BOOL
>
()?
NSOnState
:
NSOffState
];
[
cell
setState
:
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
Qt
:
:
CheckStateRole
).
value
<
BOOL
>
()?
NSOnState
:
NSOffState
];
}
else
if
([[
tableColumn
identifier
]
isEqualToString
:
COLUMNID_CODECS
])
{
cell
.
title
=
private
Account
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
CodecModel
::
Role
::
NAME
).
toString
().
toNSString
();
cell
.
title
=
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
CodecModel
::
Role
::
NAME
).
toString
().
toNSString
();
}
else
if
([[
tableColumn
identifier
]
isEqualToString
:
COLUMNID_FREQ
])
{
cell
.
title
=
private
Account
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
CodecModel
::
Role
::
SAMPLERATE
).
toString
().
toNSString
();
cell
.
title
=
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
CodecModel
::
Role
::
SAMPLERATE
).
toString
().
toNSString
();
}
else
if
([[
tableColumn
identifier
]
isEqualToString
:
COLUMNID_BITRATE
])
{
cell
.
title
=
private
Account
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
CodecModel
::
Role
::
BITRATE
).
toString
().
toNSString
();
cell
.
title
=
[
self
current
Account
]
->
codecModel
()
->
audioCodecs
()
->
data
(
qIdx
,
CodecModel
::
Role
::
BITRATE
).
toString
().
toNSString
();
}
}
...
...
src/AccGeneralVC.h
View file @
7f3164c1
...
...
@@ -38,12 +38,6 @@
}
-
(
IBAction
)
toggleUpnp
:(
NSButton
*
)
sender
;
-
(
IBAction
)
toggleAutoAnswer
:(
NSButton
*
)
sender
;
-
(
IBAction
)
toggleCustomAgent
:(
NSButton
*
)
sender
;
-
(
void
)
loadAccount
:(
Account
*
)
account
;
@end
#endif // ACCGENERALVC_H
\ No newline at end of file
src/AccGeneralVC.mm
View file @
7f3164c1
...
...
@@ -42,8 +42,6 @@
@interface
AccGeneralVC
()
@property
Account
*
privateAccount
;
@property
(
assign
)
IBOutlet
NSView
*
boxingAccount
;
@property
(
assign
)
IBOutlet
NSView
*
boxingParameters
;
@property
(
assign
)
IBOutlet
NSView
*
boxingCommon
;
...
...
@@ -79,7 +77,6 @@
@synthesize
autoAnswerButton
;
@synthesize
userAgentButton
;
@synthesize
userAgentTextField
;
@synthesize
privateAccount
;
-
(
void
)
awakeFromNib
{
...
...
@@ -89,25 +86,38 @@
[
usernameTextField
setTag
:
USERNAME_TAG
];
[
passwordTextField
setTag
:
PASSWORD_TAG
];
[
userAgentTextField
setTag
:
USERAGENT_TAG
];
QObject
::
connect
(
AccountModel
::
instance
()
->
selectionModel
(),
&
QItemSelectionModel
::
currentChanged
,
[
=
](
const
QModelIndex
&
current
,
const
QModelIndex
&
previous
)
{
if
(
!
current
.
isValid
())
return
;
[
self
loadAccount
];
});
}
-
(
Account
*
)
currentAccount
{
auto
accIdx
=
AccountModel
::
instance
()
->
selectionModel
()
->
currentIndex
();
return
AccountModel
::
instance
()
->
getAccountByModelIndex
(
accIdx
);
}
-
(
IBAction
)
toggleUpnp
:(
NSButton
*
)
sender
{
private
Account
->
setUpnpEnabled
([
sender
state
]
==
NSOnState
);
[
self
current
Account
]
->
setUpnpEnabled
([
sender
state
]
==
NSOnState
);
}
-
(
IBAction
)
toggleAutoAnswer
:(
NSButton
*
)
sender
{
private
Account
->
setAutoAnswer
([
sender
state
]
==
NSOnState
);
[
self
current
Account
]
->
setAutoAnswer
([
sender
state
]
==
NSOnState
);
}
-
(
IBAction
)
toggleCustomAgent
:(
NSButton
*
)
sender
{
[
self
.
userAgentTextField
setEnabled
:[
sender
state
]
==
NSOnState
];
private
Account
->
setHasCustomUserAgent
([
sender
state
]
==
NSOnState
);
[
self
current
Account
]
->
setHasCustomUserAgent
([
sender
state
]
==
NSOnState
);
}
-
(
void
)
loadAccount
:(
Account
*
)
account
-
(
void
)
loadAccount
{
privateAccount
=
account
;
auto
account
=
[
self
currentAccount
];
if
([
account
->
alias
().
toNSString
()
isEqualToString
:
@"IP2IP"
])
{
[
boxingAccount
.
subviews
setValue
:
@YES
forKeyPath
:
@"hidden"
];
...
...
@@ -145,15 +155,15 @@
break
;
}
[
upnpButton
setState
:
private
Account
->
isUpnpEnabled
()];
[
userAgentButton
setState
:
private
Account
->
hasCustomUserAgent
()];
[
userAgentTextField
setEnabled
:
private
Account
->
hasCustomUserAgent
()];
[
self
.
autoAnswerButton
setState
:
private
Account
->
isAutoAnswer
()];
[
upnpButton
setState
:
[
self
current
Account
]
->
isUpnpEnabled
()];
[
userAgentButton
setState
:
[
self
current
Account
]
->
hasCustomUserAgent
()];
[
userAgentTextField
setEnabled
:
[
self
current
Account
]
->
hasCustomUserAgent
()];
[
self
.
autoAnswerButton
setState
:
[
self
current
Account
]
->
isAutoAnswer
()];
[
self
.
userAgentTextField
setStringValue
:
account
->
userAgent
().
toNSString
()];
}
-
(
IBAction
)
tryRegistration
:(
id
)
sender
{
self
.
private
Account
<<
Account
::
EditAction
::
SAVE
;
[
self
current
Account
]
<<
Account
::
EditAction
::
SAVE
;
}
-
(
IBAction
)
showPassword
:(
NSButton
*
)
sender
{
...
...
@@ -195,19 +205,19 @@
switch
([
textField
tag
])
{
case
ALIAS_TAG
:
private
Account
->
setAlias
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setAlias
([[
textField
stringValue
]
UTF8String
]);
break
;
case
HOSTNAME_TAG
:
private
Account
->
setHostname
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setHostname
([[
textField
stringValue
]
UTF8String
]);
break
;
case
USERNAME_TAG
:
private
Account
->
setUsername
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setUsername
([[
textField
stringValue
]
UTF8String
]);
break
;
case
PASSWORD_TAG
:
private
Account
->
setPassword
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setPassword
([[
textField
stringValue
]
UTF8String
]);
break
;
case
USERAGENT_TAG
:
private
Account
->
setUserAgent
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setUserAgent
([[
textField
stringValue
]
UTF8String
]);
break
;
default:
break
;
...
...
src/AccRingVC.h
View file @
7f3164c1
...
...
@@ -34,12 +34,7 @@
#import <account.h>
@interface
AccRingVC
:
NSViewController
<
NSTextFieldDelegate
>
{
NSTextField
*
hashField
;
}
-
(
void
)
loadAccount
:(
Account
*
)
account
;
@interface
AccRingVC
:
NSViewController
<
NSTextFieldDelegate
>
@end
...
...
src/AccRingVC.mm
View file @
7f3164c1
...
...
@@ -35,9 +35,10 @@
#import "AccRingVC.h"
@interface
AccRingVC
()
#import <accountmodel.h>
#import <qitemselectionmodel.h>
@
property
Account
*
privateAccount
;
@
interface
AccRingVC
()
@property
(
assign
)
IBOutlet
NSTextField
*
aliasTextField
;
@property
(
assign
)
IBOutlet
NSTextField
*
typeLabel
;
...
...
@@ -52,7 +53,6 @@
@end
@implementation
AccRingVC
@synthesize
privateAccount
;
@synthesize
typeLabel
;
@synthesize
bootstrapField
;
@synthesize
hashField
;
...
...
@@ -68,14 +68,25 @@
[
aliasTextField
setTag
:
ALIAS_TAG
];
[
userAgentTextField
setTag
:
USERAGENT_TAG
];
[
bootstrapField
setTag
:
HOSTNAME_TAG
];
QObject
::
connect
(
AccountModel
::
instance
()
->
selectionModel
(),
&
QItemSelectionModel
::
currentChanged
,
[
=
](
const
QModelIndex
&
current
,
const
QModelIndex
&
previous
)
{
if
(
!
current
.
isValid
())
return
;
[
self
loadAccount
];
});
}
-
(
void
)
loadAccount
:(
Account
*
)
a
ccount
-
(
Account
*
)
currentA
ccount
{
if
(
privateAccount
==
account
)
return
;
auto
accIdx
=
AccountModel
::
instance
()
->
selectionModel
()
->
currentIndex
();
return
AccountModel
::
instance
()
->
getAccountByModelIndex
(
accIdx
);
}
privateAccount
=
account
;
-
(
void
)
loadAccount
{
auto
account
=
[
self
currentAccount
];
[
self
.
aliasTextField
setStringValue
:
account
->
alias
().
toNSString
()];
...
...
@@ -94,33 +105,33 @@
break
;
}
[
upnpButton
setState
:
private
Account
->
isUpnpEnabled
()];
[
userAgentButton
setState
:
private
Account
->
hasCustomUserAgent
()];
[
userAgentTextField
setEnabled
:
private
Account
->
hasCustomUserAgent
()];
[
upnpButton
setState
:
[
self
current
Account
]
->
isUpnpEnabled
()];
[
userAgentButton
setState
:
[
self
current
Account
]
->
hasCustomUserAgent
()];
[
userAgentTextField
setEnabled
:
[
self
current
Account
]
->
hasCustomUserAgent
()];
[
autoAnswerButton
setState
:
private
Account
->
isAutoAnswer
()];
[
autoAnswerButton
setState
:
[
self
current
Account
]
->
isAutoAnswer
()];
[
userAgentTextField
setStringValue
:
account
->
userAgent
().
toNSString
()];
[
bootstrapField
setStringValue
:
account
->
hostname
().
toNSString
()];
if
([
private
Account
->
username
().
toNSString
()
isEqualToString
:
@""
])
if
([
[
self
current
Account
]
->
username
().
toNSString
()
isEqualToString
:
@""
])
[
hashField
setStringValue
:
@"Reopen account to see your hash"
];
else
[
hashField
setStringValue
:
private
Account
->
username
().
toNSString
()];
[
hashField
setStringValue
:
[
self
current
Account
]
->
username
().
toNSString
()];
}
-
(
IBAction
)
toggleUpnp
:(
NSButton
*
)
sender
{
private
Account
->
setUpnpEnabled
([
sender
state
]
==
NSOnState
);
[
self
current
Account
]
->
setUpnpEnabled
([
sender
state
]
==
NSOnState
);
}
-
(
IBAction
)
toggleAutoAnswer
:(
NSButton
*
)
sender
{
private
Account
->
setAutoAnswer
([
sender
state
]
==
NSOnState
);
[
self
current
Account
]
->
setAutoAnswer
([
sender
state
]
==
NSOnState
);
}
-
(
IBAction
)
toggleCustomAgent
:(
NSButton
*
)
sender
{
[
self
.
userAgentTextField
setEnabled
:[
sender
state
]
==
NSOnState
];
private
Account
->
setHasCustomUserAgent
([
sender
state
]
==
NSOnState
);
[
self
current
Account
]
->
setHasCustomUserAgent
([
sender
state
]
==
NSOnState
);
}
#pragma mark - NSTextFieldDelegate methods
...
...
@@ -136,16 +147,16 @@
switch
([
textField
tag
])
{
case
ALIAS_TAG
:
private
Account
->
setAlias
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setAlias
([[
textField
stringValue
]
UTF8String
]);
break
;
case
HOSTNAME_TAG
:
private
Account
->
setHostname
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setHostname
([[
textField
stringValue
]
UTF8String
]);
break
;
case
PASSWORD_TAG
:
private
Account
->
setPassword
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setPassword
([[
textField
stringValue
]
UTF8String
]);
break
;
case
USERAGENT_TAG
:
private
Account
->
setUserAgent
([[
textField
stringValue
]
UTF8String
]);
[
self
current
Account
]
->
setUserAgent
([[
textField
stringValue
]
UTF8String
]);
break
;
default:
break
;
...
...
src/AccSecurityVC.h
View file @
7f3164c1
...
...
@@ -32,13 +32,7 @@
#import <Cocoa/Cocoa.h>
#import <account.h>
@interface
AccSecurityVC
:
NSViewController
<
NSMenuDelegate
,
NSPathControlDelegate
,
NSOpenSavePanelDelegate
>
{
}
-
(
void
)
loadAccount
:(
Account
*
)
account
;
@interface
AccSecurityVC
:
NSViewController
<
NSMenuDelegate
,
NSPathControlDelegate
,
NSOpenSavePanelDelegate
>
@end
...
...
src/AccSecurityVC.mm
View file @
7f3164c1
...
...
@@ -34,6 +34,7 @@
#import <tlsmethodmodel.h>
#import <qitemselectionmodel.h>
#import <ciphermodel.h>
#import <accountmodel.h>
#import "QNSTreeController.h"
#import "CertificateWC.h"
...
...
@@ -48,7 +49,6 @@
@interface
AccSecurityVC
()
@property
Account
*
privateAccount
;
@property
NSTreeController
*
treeController
;
@property
(
unsafe_unretained
)
IBOutlet
NSOutlineView
*
cipherListView
;
@property
(
unsafe_unretained
)
IBOutlet
NSButton
*
useTLS
;
...
...
@@ -73,7 +73,6 @@
@end
@implementation
AccSecurityVC
@synthesize
privateAccount
;
@synthesize
treeController
;
@synthesize
cipherListView
;
@synthesize
certificateWC
;
...
...
@@ -100,21 +99,34 @@
[
tlsNegotiationTimeoutStepper
setTag
:
TLS_NEGOTIATION_TAG
];
[
tlsNegotiationTimeout
setTag
:
TLS_NEGOTIATION_TAG
];