Generate protocols' settings templates by call
This commit is contained in:
parent
96195039e0
commit
53fe03d2c8
|
@ -33,6 +33,9 @@ public:
|
||||||
//! Change settings
|
//! Change settings
|
||||||
virtual status_t UpdateSettings(BMessage*) = 0;
|
virtual status_t UpdateSettings(BMessage*) = 0;
|
||||||
|
|
||||||
|
//! Settings menu template
|
||||||
|
virtual BMessage SettingsTemplate() = 0;
|
||||||
|
|
||||||
//! Protocol signature
|
//! Protocol signature
|
||||||
virtual const char* Signature() const = 0;
|
virtual const char* Signature() const = 0;
|
||||||
|
|
||||||
|
|
|
@ -400,30 +400,9 @@ ProtocolSettings::Delete(const char* account)
|
||||||
void
|
void
|
||||||
ProtocolSettings::_Init()
|
ProtocolSettings::_Init()
|
||||||
{
|
{
|
||||||
// Find protocol add-on
|
|
||||||
BPath dllPath(fAddOn->Path());
|
|
||||||
BFile file(dllPath.Path(), B_READ_ONLY);
|
|
||||||
if (file.InitCheck() < B_OK) {
|
|
||||||
fStatus = file.InitCheck();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
BResources resources(&file);
|
|
||||||
if (resources.InitCheck() != B_OK) {
|
|
||||||
fStatus = resources.InitCheck();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t size;
|
|
||||||
const void* data = resources.LoadResource(B_MESSAGE_TYPE,
|
|
||||||
kProtocolSettingsTemplate, &size);
|
|
||||||
if (!data) {
|
|
||||||
fStatus = B_BAD_VALUE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load protocol's settings template
|
// Load protocol's settings template
|
||||||
fTemplate->Unflatten((const char*)data);
|
BMessage settingsTemplate = fAddOn->Protocol()->SettingsTemplate();
|
||||||
|
*fTemplate = settingsTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,150 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Copyright 2014-2015, Dario Casalinuovo.
|
|
||||||
# Copyright 2009, Pier Luigi Fiorini.
|
|
||||||
# Distributed under the terms of the MIT License.
|
|
||||||
#
|
|
||||||
# Authors:
|
|
||||||
# Pier Luigi Fiorini, pierluigi.fiorini@gmail.com
|
|
||||||
# Dario Casalinuovo
|
|
||||||
#
|
|
||||||
|
|
||||||
current_dir=`pwd`
|
|
||||||
defines=""
|
|
||||||
|
|
||||||
# Binaries
|
|
||||||
jambin=`which jam`
|
|
||||||
rcbin=`which rc`
|
|
||||||
xresbin=`which xres`
|
|
||||||
settypebin=`which settype`
|
|
||||||
mimesetbin=`which mimeset`
|
|
||||||
setversionbin=`which setversion`
|
|
||||||
copyattrbin=`which copyattr`
|
|
||||||
|
|
||||||
# Check operating system
|
|
||||||
platform=`uname -s`
|
|
||||||
release=`uname -r`
|
|
||||||
echo -n "Checking operating system... "
|
|
||||||
case "$platform" in
|
|
||||||
BeOS)
|
|
||||||
case "$release" in
|
|
||||||
4.*)
|
|
||||||
echo "*** BeOS R4 is not supported!"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
5.*)
|
|
||||||
echo "*** BeOS R5 is not supported!"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
6.*)
|
|
||||||
echo "*** Zeta is not supported!"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "*** Unsupported BeOS platform!"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
Haiku)
|
|
||||||
defines="HAIKU_TARGET_PLATFORM_HAIKU=1"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "*** Unsupported $platform operating system!"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "$platform $release"
|
|
||||||
|
|
||||||
# Check whether jam exists
|
|
||||||
echo -n "Checking whether jam exists... "
|
|
||||||
if [ -z "$jambin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
echo "*** Caya requires jam, please read our Build.txt file."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "found"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for rc
|
|
||||||
echo -n "Checking for rc... "
|
|
||||||
if [ -z "$rcbin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $rcbin
|
|
||||||
|
|
||||||
# Check for xres
|
|
||||||
echo -n "Checking for xres..."
|
|
||||||
if [ -z "$xresbin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $xresbin
|
|
||||||
|
|
||||||
# Check for settype
|
|
||||||
echo -n "Checking for settype..."
|
|
||||||
if [ -z "$settypebin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $settypebin
|
|
||||||
|
|
||||||
# Check for mimeset
|
|
||||||
echo -n "Checking for mimeset..."
|
|
||||||
if [ -z "$mimesetbin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $mimesetbin
|
|
||||||
|
|
||||||
# Check for setverion
|
|
||||||
echo -n "Checking for setversion..."
|
|
||||||
if [ -z "$setversionbin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $setversionbin
|
|
||||||
|
|
||||||
# Check for copyattr
|
|
||||||
echo -n "Checking for copyattr..."
|
|
||||||
if [ -z "$copyattrbin" ]; then
|
|
||||||
echo "not found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo $copyattrbin
|
|
||||||
|
|
||||||
# Create the build configuration
|
|
||||||
mkdir -p $current_dir/generated
|
|
||||||
cat > $current_dir/generated/BuildConfig << EOF
|
|
||||||
RC = ${rcbin} ;
|
|
||||||
XRES = ${xresbin} ;
|
|
||||||
SETTYPE = ${settypebin} ;
|
|
||||||
MIMESET = ${mimesetbin} ;
|
|
||||||
SETVERSION = ${setversionbin} ;
|
|
||||||
COPYATTR = ${copyattrbin} ;
|
|
||||||
|
|
||||||
USER_CONFIG_DIRECTORY = $(finddir B_USER_CONFIG_DIRECTORY) ;
|
|
||||||
|
|
||||||
SYSTEM_DIRECTORY = $(finddir B_SYSTEM_DIRECTORY) ;
|
|
||||||
SYSTEM_BIN_DIRECTORY = $(finddir B_SYSTEM_BIN_DIRECTORY) ;
|
|
||||||
SYSTEM_SERVERS_DIRECTORY = $(finddir B_SYSTEM_SERVERS_DIRECTORY) ;
|
|
||||||
SYSTEM_ADDONS_DIRECTORY = $(finddir B_SYSTEM_ADDONS_DIRECTORY) ;
|
|
||||||
SYSTEM_DEVELOP_DIRECTORY = $(finddir B_SYSTEM_DEVELOP_DIRECTORY) ;
|
|
||||||
SYSTEM_INCLUDE_DIRECTORY = $(finddir B_SYSTEM_HEADERS_DIRECTORY) ;
|
|
||||||
SYSTEM_DEVELOP_LIB_DIRECTORY = $(finddir B_SYSTEM_DEVELOP_DIRECTORY)/lib ;
|
|
||||||
SYSTEM_LIB_DIRECTORY = $(finddir B_SYSTEM_LIB_DIRECTORY) ;
|
|
||||||
|
|
||||||
BEOS_PREFERENCES_DIRECTORY = $(finddir B_BEOS_PREFERENCES_DIRECTORY) ;
|
|
||||||
PREFERENCES_DIRECTORY = $(finddir B_PREFERENCES_DIRECTORY) ;
|
|
||||||
USER_PREFERENCES_DIRECTORY = $(finddir B_USER_CONFIG_DIRECTORY)/be/Preferences ;
|
|
||||||
|
|
||||||
APPS_DIRECTORY = $(finddir B_USER_APPS_DIRECTORY) ;
|
|
||||||
CAYA_DIRECTORY = $(finddir B_USER_APPS_DIRECTORY)/Caya ;
|
|
||||||
|
|
||||||
DEFINES += ${defines} ;
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo $USER_CONFIG_DIRECTORY
|
|
||||||
echo $SYSTEM_DEVELOP_DIRECTORY
|
|
||||||
echo "Configuration done."
|
|
|
@ -30,6 +30,13 @@ FacebookProtocol::OverrideSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BMessage
|
||||||
|
FacebookProtocol::SettingsTemplate()
|
||||||
|
{
|
||||||
|
return JabberHandler::_SettingsTemplate("Username", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BString
|
BString
|
||||||
FacebookProtocol::ComposeJID() const
|
FacebookProtocol::ComposeJID() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,6 +31,13 @@ GoogleTalkProtocol::OverrideSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BMessage
|
||||||
|
GoogleTalkProtocol::SettingsTemplate()
|
||||||
|
{
|
||||||
|
return JabberHandler::_SettingsTemplate("Identifier", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BString
|
BString
|
||||||
GoogleTalkProtocol::ComposeJID() const
|
GoogleTalkProtocol::ComposeJID() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,8 @@ public:
|
||||||
virtual ~GoogleTalkProtocol();
|
virtual ~GoogleTalkProtocol();
|
||||||
|
|
||||||
virtual void OverrideSettings();
|
virtual void OverrideSettings();
|
||||||
|
virtual BMessage SettingsTemplate();
|
||||||
|
|
||||||
virtual BString ComposeJID() const;
|
virtual BString ComposeJID() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -699,6 +699,42 @@ JabberHandler::_GlooxStatusToCaya(gloox::Presence::PresenceType type)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BMessage
|
||||||
|
JabberHandler::_SettingsTemplate(const char* username, bool serverOption)
|
||||||
|
{
|
||||||
|
BMessage stemplate('IMst');
|
||||||
|
|
||||||
|
BMessage usernameText;
|
||||||
|
usernameText.AddString("name", "username");
|
||||||
|
usernameText.AddString("description", username);
|
||||||
|
usernameText.AddInt32("type", 'CSTR');
|
||||||
|
stemplate.AddMessage("setting", &usernameText);
|
||||||
|
|
||||||
|
BMessage passwordText;
|
||||||
|
passwordText.AddString("name", "password");
|
||||||
|
passwordText.AddString("description", "Password");
|
||||||
|
passwordText.AddInt32("type", 'CSTR');
|
||||||
|
passwordText.AddBool("is_secret", true);
|
||||||
|
stemplate.AddMessage("setting", &passwordText);
|
||||||
|
|
||||||
|
BMessage serverText;
|
||||||
|
serverText.AddString("name", "server");
|
||||||
|
serverText.AddString("description", "Server");
|
||||||
|
serverText.AddInt32("type", 'CSTR');
|
||||||
|
if (serverOption == true)
|
||||||
|
stemplate.AddMessage("setting", &serverText);
|
||||||
|
|
||||||
|
BMessage resourceText;
|
||||||
|
resourceText.AddString("name", "resource");
|
||||||
|
resourceText.AddString("description", "Resource");
|
||||||
|
resourceText.AddInt32("type", 'CSTR');
|
||||||
|
resourceText.AddString("default", "Caya");
|
||||||
|
stemplate.AddMessage("setting", &resourceText);
|
||||||
|
|
||||||
|
return stemplate;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* gloox callbacks
|
* gloox callbacks
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
|
|
|
@ -74,6 +74,7 @@ protected:
|
||||||
BString fResource;
|
BString fResource;
|
||||||
uint16 fPort;
|
uint16 fPort;
|
||||||
|
|
||||||
|
BMessage _SettingsTemplate(const char* username, bool serverOption);
|
||||||
private:
|
private:
|
||||||
CayaProtocolMessengerInterface*
|
CayaProtocolMessengerInterface*
|
||||||
fServerMessenger;
|
fServerMessenger;
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
#include "JabberProtocol.h"
|
#include "JabberProtocol.h"
|
||||||
|
|
||||||
|
|
||||||
const char* kProtocolSignature = "jabber";
|
const char* kProtocolSignature = "jabber";
|
||||||
const char* kProtocolName = "Jabber";
|
const char* kProtocolName = "Jabber";
|
||||||
|
|
||||||
|
@ -29,6 +30,13 @@ JabberProtocol::OverrideSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BMessage
|
||||||
|
JabberProtocol::SettingsTemplate()
|
||||||
|
{
|
||||||
|
return JabberHandler::_SettingsTemplate("Jabber identifier", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
BString
|
BString
|
||||||
JabberProtocol::ComposeJID() const
|
JabberProtocol::ComposeJID() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,6 +13,7 @@ public:
|
||||||
virtual ~JabberProtocol();
|
virtual ~JabberProtocol();
|
||||||
|
|
||||||
virtual void OverrideSettings();
|
virtual void OverrideSettings();
|
||||||
|
virtual BMessage SettingsTemplate();
|
||||||
virtual BString ComposeJID() const;
|
virtual BString ComposeJID() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,7 @@ SRCS = \
|
||||||
# Specify the resource definition files to use. Full or relative paths can be
|
# Specify the resource definition files to use. Full or relative paths can be
|
||||||
# used.
|
# used.
|
||||||
RDEFS = \
|
RDEFS = \
|
||||||
protocols/xmpp/jabber.rdef \
|
protocols/xmpp/jabber.rdef
|
||||||
protoocls/xmpp/jabber_settings.rdef
|
|
||||||
|
|
||||||
# Specify the resource files to use. Full or relative paths can be used.
|
# Specify the resource files to use. Full or relative paths can be used.
|
||||||
# Both RDEFS and RSRCS can be utilized in the same Makefile.
|
# Both RDEFS and RSRCS can be utilized in the same Makefile.
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
resource(1000) message('IMst') {
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "username",
|
|
||||||
"description" = "Username",
|
|
||||||
int32 "type" = 'CSTR'
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "password",
|
|
||||||
"description" = "Password",
|
|
||||||
int32 "type" = 'CSTR',
|
|
||||||
"is_secret" = true
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "resource",
|
|
||||||
"description" = "Resource",
|
|
||||||
int32 "type" = 'CSTR',
|
|
||||||
"default" = "Caya"
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -1,19 +0,0 @@
|
||||||
resource(1000) message('IMst') {
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "username",
|
|
||||||
"description" = "Identifier",
|
|
||||||
int32 "type" = 'CSTR'
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "password",
|
|
||||||
"description" = "Password",
|
|
||||||
int32 "type" = 'CSTR',
|
|
||||||
"is_secret" = true
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "resource",
|
|
||||||
"description" = "Resource",
|
|
||||||
int32 "type" = 'CSTR',
|
|
||||||
"default" = "Caya"
|
|
||||||
}
|
|
||||||
};
|
|
|
@ -1,24 +0,0 @@
|
||||||
resource(1000) message('IMst') {
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "username",
|
|
||||||
"description" = "Jabber identifier",
|
|
||||||
int32 "type" = 'CSTR'
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "password",
|
|
||||||
"description" = "Password",
|
|
||||||
int32 "type" = 'CSTR',
|
|
||||||
"is_secret" = true
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "server",
|
|
||||||
"description" = "Server",
|
|
||||||
int32 "type" = 'CSTR'
|
|
||||||
},
|
|
||||||
"setting" = message {
|
|
||||||
"name" = "resource",
|
|
||||||
"description" = "Resource",
|
|
||||||
int32 "type" = 'CSTR',
|
|
||||||
"default" = "Caya"
|
|
||||||
}
|
|
||||||
};
|
|
Ŝarĝante…
Reference in New Issue