Merge remote-tracking branch 'origin/master'

This commit is contained in:
Juan Linietsky 2016-05-21 22:34:55 -03:00
commit eacb8f04c4
111 changed files with 5549 additions and 5393 deletions

View file

@ -117,7 +117,7 @@ if profile:
opts=Variables(customs, ARGUMENTS)
opts.Add('target', 'Compile Target (debug/release_debug/release).', "debug")
opts.Add('bits', 'Compile Target Bits (default/32/64).', "default")
opts.Add('bits', 'Compile Target Bits (default/32/64/fat).', "default")
opts.Add('platform','Platform: '+str(platform_list)+'.',"")
opts.Add('p','Platform (same as platform=).',"")
opts.Add('tools','Build Tools (Including Editor): (yes/no)','yes')
@ -276,6 +276,8 @@ if selected_platform in platform_list:
suffix+=".32"
elif (env["bits"]=="64"):
suffix+=".64"
elif (env["bits"]=="fat"):
suffix+=".fat"
suffix+=env.extra_suffix

View file

@ -53,4 +53,4 @@ void test() {
}
#endif
#endif

View file

@ -500,9 +500,9 @@ void _OS::set_icon(const Image& p_icon) {
}
/**
* Get current datetime with consideration for utc and
* Get current datetime with consideration for utc and
* dst
*/
*/
Dictionary _OS::get_datetime(bool utc) const {
Dictionary dated = get_date(utc);
@ -564,17 +564,17 @@ uint64_t _OS::get_unix_time_from_datetime(Dictionary datetime) const {
// Get all time values from the dictionary, set to zero if it doesn't exist.
// Risk incorrect calculation over throwing errors
unsigned int second = ((datetime.has(SECOND_KEY))?
unsigned int second = ((datetime.has(SECOND_KEY))?
static_cast<unsigned int>(datetime[SECOND_KEY]): 0);
unsigned int minute = ((datetime.has(MINUTE_KEY))?
unsigned int minute = ((datetime.has(MINUTE_KEY))?
static_cast<unsigned int>(datetime[MINUTE_KEY]): 0);
unsigned int hour = ((datetime.has(HOUR_KEY))?
unsigned int hour = ((datetime.has(HOUR_KEY))?
static_cast<unsigned int>(datetime[HOUR_KEY]): 0);
unsigned int day = ((datetime.has(DAY_KEY))?
unsigned int day = ((datetime.has(DAY_KEY))?
static_cast<unsigned int>(datetime[DAY_KEY]): 0);
unsigned int month = ((datetime.has(MONTH_KEY))?
unsigned int month = ((datetime.has(MONTH_KEY))?
static_cast<unsigned int>(datetime[MONTH_KEY]) -1: 0);
unsigned int year = ((datetime.has(YEAR_KEY))?
unsigned int year = ((datetime.has(YEAR_KEY))?
static_cast<unsigned int>(datetime[YEAR_KEY]):0);
/// How many days come before each month (0-12)
@ -604,7 +604,7 @@ uint64_t _OS::get_unix_time_from_datetime(Dictionary datetime) const {
ERR_FAIL_COND_V( day > MONTH_DAYS_TABLE[LEAPYEAR(year)][month], 0);
// Calculate all the seconds from months past in this year
uint64_t SECONDS_FROM_MONTHS_PAST_THIS_YEAR =
uint64_t SECONDS_FROM_MONTHS_PAST_THIS_YEAR =
DAYS_PAST_THIS_YEAR_TABLE[LEAPYEAR(year)][month] * SECONDS_PER_DAY;
uint64_t SECONDS_FROM_YEARS_PAST = 0;
@ -614,13 +614,13 @@ uint64_t _OS::get_unix_time_from_datetime(Dictionary datetime) const {
SECONDS_PER_DAY;
}
uint64_t epoch =
second +
minute * SECONDS_PER_MINUTE +
uint64_t epoch =
second +
minute * SECONDS_PER_MINUTE +
hour * SECONDS_PER_HOUR +
// Subtract 1 from day, since the current day isn't over yet
// and we cannot count all 24 hours.
(day-1) * SECONDS_PER_DAY +
(day-1) * SECONDS_PER_DAY +
SECONDS_FROM_MONTHS_PAST_THIS_YEAR +
SECONDS_FROM_YEARS_PAST;
return epoch;
@ -631,7 +631,7 @@ uint64_t _OS::get_unix_time_from_datetime(Dictionary datetime) const {
* Get a dictionary of time values when given epoch time
*
* Dictionary Time values will be a union if values from #get_time
* and #get_date dictionaries (with the exception of dst =
* and #get_date dictionaries (with the exception of dst =
* day light standard time, as it cannot be determined from epoch)
*
* @param unix_time_val epoch time to convert
@ -660,14 +660,14 @@ Dictionary _OS::get_datetime_from_unix_time( uint64_t unix_time_val) const {
time.hour = dayclock / 3600;
/* day 0 was a thursday */
date.weekday = static_cast<OS::Weekday>((dayno + 4) % 7);
date.weekday = static_cast<OS::Weekday>((dayno + 4) % 7);
while (dayno >= YEARSIZE(year)) {
dayno -= YEARSIZE(year);
year++;
}
date.year = year;
date.year = year;
size_t imonth = 0;

View file

@ -116,7 +116,7 @@ Error HTTPClient::request_raw( Method p_method, const String& p_url, const Vecto
}
request+="\r\n";
CharString cs=request.utf8();
DVector<uint8_t> data;
//Maybe this goes faster somehow?

View file

@ -3635,7 +3635,7 @@ String String::percent_decode() const {
CharString cs = utf8();
for(int i=0;i<cs.length();i++) {
uint8_t c = cs[i];
if (c=='%' && i<length()-2) {

View file

@ -1103,7 +1103,7 @@
% key
</constant>
<constant name="KEY_AMPERSAND" value="38">
& key
&amp; key
</constant>
<constant name="KEY_APOSTROPHE" value="39">
' key
@ -7268,12 +7268,14 @@
<argument index="0" name="degrees" type="float">
</argument>
<description>
Set rotation of the layer in degree.
</description>
</method>
<method name="get_rotationd" qualifiers="const">
<return type="float">
</return>
<description>
Get rotation of the layer in degree.
</description>
</method>
<method name="set_scale">
@ -12250,18 +12252,21 @@ This approximation makes straight segments between each point, then subdivides t
<argument index="0" name="dir" type="String">
</argument>
<description>
Set the current working directory of the file dialog.
</description>
</method>
<method name="set_current_file">
<argument index="0" name="file" type="String">
</argument>
<description>
Set the current selected file name of the file dialog.
</description>
</method>
<method name="set_current_path">
<argument index="0" name="path" type="String">
</argument>
<description>
Set the current selected file path of the file dialog.
</description>
</method>
<method name="set_mode">
@ -12282,6 +12287,7 @@ This approximation makes straight segments between each point, then subdivides t
<return type="VBoxContainer">
</return>
<description>
Return the vertical box container of the dialog, custom controls can be added to it.
</description>
</method>
<method name="set_access">
@ -12314,6 +12320,7 @@ This approximation makes straight segments between each point, then subdivides t
</method>
<method name="invalidate">
<description>
Invalidate and update the current dialog content list.
</description>
</method>
</methods>
@ -12351,6 +12358,7 @@ This approximation makes straight segments between each point, then subdivides t
The dialog functions as a folder selector, disallowing the selection of any file.
</constant>
<constant name="MODE_OPEN_ANY" value="3">
The dialog allows the selection of a file or a directory.
</constant>
<constant name="MODE_SAVE_FILE" value="4">
The dialog will warn when a file exists.
@ -21323,24 +21331,28 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
<argument index="0" name="enabled" type="bool">
</argument>
<description>
Set whether the window is minimized.
</description>
</method>
<method name="is_window_minimized" qualifiers="const">
<return type="bool">
</return>
<description>
Return true if the window is minimized.
</description>
</method>
<method name="set_window_maximized">
<argument index="0" name="enabled" type="bool">
</argument>
<description>
Set the window size to maximized.
</description>
</method>
<method name="is_window_maximized" qualifiers="const">
<return type="bool">
</return>
<description>
Return true if the window is maximized.
</description>
</method>
<method name="set_borderless_window">
@ -21578,6 +21590,7 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
<return type="int">
</return>
<description>
Return the current unix timestamp.
</description>
</method>
<method name="get_datetime_from_unix_time" qualifiers="const">
@ -21740,6 +21753,7 @@ Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
<return type="String">
</return>
<description>
Return the absolute directory path of user data path([user://]).
</description>
</method>
<method name="get_system_dir" qualifiers="const">
@ -41487,6 +41501,17 @@ This method controls whether the position between two cached points is interpola
<description>
</description>
</method>
<method name="get_linear_velocity" qualifiers="const">
<return type="Vector3">
</return>
<description>
Returns the VehicleBody's velocity vector. To get the absolute speed in scalar value, get the length of the return vector in pixels/second. Example:
[codeblock]
# vehicle is an instance of VehicleBody
var speed = vehicle.get_linear_velocity().length()
[/codeblock]
</description>
</method>
</methods>
<constants>
</constants>

View file

@ -1,9 +1,12 @@
Import('env')
env_drivers = env.Clone()
env.drivers_sources=[]
#env.add_source_files(env.drivers_sources,"*.cpp")
env.Append(CPPPATH=["vorbis"])
Export('env')
env_drivers.Append(CPPPATH=["vorbis"])
Export('env_drivers')
SConscript('unix/SCsub');
SConscript('alsa/SCsub');
@ -14,12 +17,9 @@ SConscript('gl_context/SCsub');
SConscript('pnm/SCsub');
if (env['openssl']!='no'):
env_ssl = env.Clone()
Export('env_ssl')
env_ssl.Append(CPPFLAGS=['-DOPENSSL_ENABLED']);
env_drivers.Append(CPPFLAGS=['-DOPENSSL_ENABLED']);
if (env['openssl']=="builtin"):
env_ssl.Append(CPPPATH=['#drivers/builtin_openssl2'])
env_drivers.Append(CPPPATH=['#drivers/builtin_openssl2'])
SConscript("builtin_openssl2/SCsub");
SConscript('openssl/SCsub')
@ -47,7 +47,7 @@ if (env["vorbis"]=="yes" or env["speex"]=="yes" or env["theoralib"]=="yes" or en
if (env["vorbis"]=="yes"):
SConscript("vorbis/SCsub");
if (env["opus"]=="yes"):
SConscript('opus/SCsub');
SConscript('opus/SCsub');
if (env["tools"]=="yes"):
SConscript("convex_decomp/SCsub");
@ -84,14 +84,14 @@ if (env.split_drivers): #split drivers, this used to be needed for windows until
base = string.join(fname.split("/")[:2], "/")
if base != cur_base and len(list) > max_src:
if num > 0:
lib = env.Library("drivers"+str(num), list)
lib = env_drivers.Library("drivers"+str(num), list)
lib_list.append(lib)
list = []
num = num+1
cur_base = base
list.append(f)
lib = env.Library("drivers"+str(num), list)
lib = env_drivers.Library("drivers"+str(num), list)
lib_list.append(lib)
if len(lib_list) > 0:
@ -99,15 +99,15 @@ if (env.split_drivers): #split drivers, this used to be needed for windows until
if os.name=='posix' and sys.platform=='msys':
env.Replace(ARFLAGS=['rcsT'])
lib = env.Library("drivers_collated", lib_list)
lib = env_drivers.Library("drivers_collated", lib_list)
lib_list = [lib]
drivers_base=[]
env.add_source_files(drivers_base,"*.cpp")
lib_list.insert(0, env.Library("drivers", drivers_base))
env_drivers.add_source_files(drivers_base,"*.cpp")
lib_list.insert(0, env_drivers.Library("drivers", drivers_base))
env.Prepend(LIBS=lib_list)
else:
env.add_source_files(env.drivers_sources,"*.cpp")
lib = env.Library("drivers",env.drivers_sources)
env_drivers.add_source_files(env.drivers_sources,"*.cpp")
lib = env_drivers.Library("drivers",env.drivers_sources)
env.Prepend(LIBS=[lib])

View file

@ -1,5 +1,5 @@
Import('env')
Import('env_ssl')
Import('env_drivers')
openssl_sources = [
"ssl/t1_lib.c",
@ -642,17 +642,17 @@ openssl_sources = [
#env.drivers_sources+=openssl_sources
env_ssl.Append(CPPPATH=["#drivers/builtin_openssl2/crypto"])
env_ssl.Append(CPPPATH=["#drivers/builtin_openssl2/openssl"])
env_ssl.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/evp"])
env_ssl.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/asn1"])
env_ssl.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/modes"])
env_drivers.Append(CPPPATH=["#drivers/builtin_openssl2/crypto"])
env_drivers.Append(CPPPATH=["#drivers/builtin_openssl2/openssl"])
env_drivers.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/evp"])
env_drivers.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/asn1"])
env_drivers.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/modes"])
#env_ssl.Append(CPPPATH=["#drivers/builtin_openssl2/crypto/store"])
env_ssl.Append(CPPFLAGS=["-DOPENSSL_NO_ASM","-DOPENSSL_THREADS","-DL_ENDIAN"])
env_drivers.Append(CPPFLAGS=["-DOPENSSL_NO_ASM","-DOPENSSL_THREADS","-DL_ENDIAN"])
# Workaround for compilation error with GCC/Clang when -Werror is too greedy (GH-4517)
import os
if not (os.name=="nt" and os.getenv("VSINSTALLDIR")!=None): # not Windows and not MSVC
env_ssl.Append(CFLAGS=["-Wno-error=implicit-function-declaration"])
env_drivers.Append(CFLAGS=["-Wno-error=implicit-function-declaration"])
env_ssl.add_source_files(env.drivers_sources,openssl_sources)
env_drivers.add_source_files(env.drivers_sources,openssl_sources)

View file

@ -1,6 +1,6 @@
Import('env_ssl')
Import('env_drivers')
Import('env')
env_ssl.add_source_files(env.drivers_sources,"*.cpp")
env_ssl.add_source_files(env.drivers_sources,"*.c")
env_drivers.add_source_files(env.drivers_sources,"*.cpp")
env_drivers.add_source_files(env.drivers_sources,"*.c")

View file

@ -1,4 +1,5 @@
Import('env')
Import('env_drivers')
png_sources = [
@ -25,7 +26,7 @@ png_sources = [
# Currently .ASM filter_neon.S does not compile on NT.
import os
if ("neon_enabled" in env and env["neon_enabled"]) and os.name!="nt":
env.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=2"])
env_drivers.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=2"])
env_neon = env.Clone();
if "S_compiler" in env:
env_neon['CC'] = env['S_compiler']
@ -33,7 +34,7 @@ if ("neon_enabled" in env and env["neon_enabled"]) and os.name!="nt":
png_sources.append(env_neon.Object("#drivers/png/arm/arm_init.c"))
png_sources.append(env_neon.Object("#drivers/png/arm/filter_neon.S"))
else:
env.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=0"])
env_drivers.Append(CPPFLAGS=["-DPNG_ARM_NEON_OPT=0"])
env.drivers_sources+=png_sources

View file

@ -21,7 +21,6 @@ def get_opts():
return [
('ANDROID_NDK_ROOT', 'the path to Android NDK', os.environ.get("ANDROID_NDK_ROOT", 0)),
('NDK_TOOLCHAIN', 'toolchain to use for the NDK',"arm-eabi-4.4.0"),
('NDK_TARGET', 'toolchain to use for the NDK',os.environ.get("NDK_TARGET", "arm-linux-androideabi-4.9")),
('NDK_TARGET_X86', 'toolchain to use for the NDK x86',os.environ.get("NDK_TARGET_X86", "x86-4.9")),
('ndk_platform', 'compile for platform: (android-<api> , example: android-15)',"android-15"),

View file

@ -1,3 +1,3 @@
void register_android_global_defaults();
void register_android_global_defaults();

View file

@ -1,3 +1,3 @@
void register_iphone_global_defaults();
void register_iphone_global_defaults();

View file

@ -220,17 +220,17 @@
#define DOM_VK_WIN_OEM_CLEAR 0xFE
int dom2godot_scancode(int dom_keycode) {
if (DOM_VK_0 <= dom_keycode && dom_keycode <= DOM_VK_Z) {
// ASCII intersection
return dom_keycode;
}
if (DOM_VK_NUMPAD0 <= dom_keycode && dom_keycode <= DOM_VK_NUMPAD9) {
// Numpad numbers
return KEY_KP_0 + (dom_keycode - DOM_VK_NUMPAD0);
}
if (DOM_VK_F1 <= dom_keycode && dom_keycode <= DOM_VK_F16) {
// F1-F16
return KEY_F1 + (dom_keycode - DOM_VK_F1);
@ -259,7 +259,7 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_PAUSE: return KEY_PAUSE;
case DOM_VK_CAPS_LOCK: return KEY_CAPSLOCK;
/*
case DOM_VK_KANA: return KEY_UNKNOWN;
case DOM_VK_HANGUL: return KEY_UNKNOWN;
@ -269,7 +269,7 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_HANJA: return KEY_UNKNOWN;
case DOM_VK_KANJI: return KEY_UNKNOWN;
*/
case DOM_VK_ESCAPE: return KEY_ESCAPE;
/*
case DOM_VK_CONVERT: return KEY_UNKNOWN;
@ -277,8 +277,8 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_ACCEPT: return KEY_UNKNOWN;
case DOM_VK_MODECHANGE: return KEY_UNKNOWN;
*/
case DOM_VK_SPACE: return KEY_SPACE;
case DOM_VK_SPACE: return KEY_SPACE;
case DOM_VK_PAGE_UP: return KEY_PAGEUP;
case DOM_VK_PAGE_DOWN: return KEY_PAGEDOWN;
case DOM_VK_END: return KEY_END;
@ -287,7 +287,7 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_UP: return KEY_UP;
case DOM_VK_RIGHT: return KEY_RIGHT;
case DOM_VK_DOWN: return KEY_DOWN;
//case DOM_VK_SELECT: return KEY_UNKNOWN;
case DOM_VK_PRINTSCREEN: // this is the usual printScreen key
@ -297,7 +297,7 @@ int dom2godot_scancode(int dom_keycode) {
//case DOM_VK_EXECUTE: return KEY_UNKNOWN;
case DOM_VK_INSERT: return KEY_INSERT;
case DOM_VK_DELETE: return KEY_DELETE;
case DOM_VK_META:
case DOM_VK_WIN:
return KEY_META;
@ -312,7 +312,7 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_SUBTRACT: return KEY_KP_SUBTRACT;
case DOM_VK_DECIMAL: return KEY_KP_PERIOD;
case DOM_VK_DIVIDE: return KEY_KP_DIVIDE;
/*
case DOM_VK_F17: return KEY_UNKNOWN;
case DOM_VK_F18: return KEY_UNKNOWN;
@ -323,7 +323,7 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_F23: return KEY_UNKNOWN;
case DOM_VK_F24: return KEY_UNKNOWN;
*/
case DOM_VK_NUM_LOCK: return KEY_NUMLOCK;
case DOM_VK_SCROLL_LOCK: return KEY_SCROLLLOCK;
@ -352,11 +352,11 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_OPEN_CURLY_BRACKET: return KEY_BRACELEFT;
case DOM_VK_CLOSE_CURLY_BRACKET: return KEY_BRACERIGHT;
case DOM_VK_TILDE: return KEY_ASCIITILDE;
case DOM_VK_VOLUME_MUTE: return KEY_VOLUMEMUTE;
case DOM_VK_VOLUME_DOWN: return KEY_VOLUMEDOWN;
case DOM_VK_VOLUME_UP: return KEY_VOLUMEUP;
case DOM_VK_COMMA: return KEY_COMMA;
case DOM_VK_PERIOD: return KEY_PERIOD;
case DOM_VK_SLASH: return KEY_SLASH;
@ -365,9 +365,9 @@ int dom2godot_scancode(int dom_keycode) {
case DOM_VK_BACK_SLASH: return KEY_BACKSLASH;
case DOM_VK_CLOSE_BRACKET: return KEY_BRACKETRIGHT;
case DOM_VK_QUOTE: return KEY_APOSTROPHE;
// rest is OEM/unusual
default: return KEY_UNKNOWN;
};
}

View file

@ -68,9 +68,12 @@ def configure(env):
if (env["bits"]=="64"):
env.Append(CCFLAGS=['-arch', 'x86_64'])
env.Append(LINKFLAGS=['-arch', 'x86_64'])
else:
elif (env["bits"]=="32"):
env.Append(CCFLAGS=['-arch', 'i386'])
env.Append(LINKFLAGS=['-arch', 'i386'])
else:
env.Append(CCFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
env.Append(LINKFLAGS=['-arch', 'i386', '-arch', 'x86_64'])
else:
#osxcross build
root=os.environ.get("OSXCROSS_ROOT",0)

View file

@ -103,7 +103,7 @@ class OS_Windows : public OS {
HDC hDC; // Private GDI Device Context
HINSTANCE hInstance; // Holds The Instance Of The Application
HWND hWnd;
HCURSOR hCursor;
Size2 window_rect;

View file

@ -62,7 +62,7 @@ String CanvasModulate::get_configuration_warning() const {
get_tree()->get_nodes_in_group("_canvas_modulate_"+itos(get_canvas().get_id()),&nodes);
if (nodes.size()>1) {
return TTR("Only one visible CanvasModulate is allowed per scene (or set of instanced scenes). The first one created will work, while the rest will be ignored.");
return TTR("Only one visible CanvasModulate is allowed per scene (or set of instanced scenes). The first created one will work, while the rest will be ignored.");
}
return String();

View file

@ -16,7 +16,7 @@ public:
void set_color(const Color& p_color);
Color get_color() const;
String CanvasModulate::get_configuration_warning() const;
String get_configuration_warning() const;
CanvasModulate();
~CanvasModulate();

View file

@ -243,7 +243,7 @@ String PathFollow2D::get_configuration_warning() const {
return String();
if (!get_parent() || !get_parent()->cast_to<Path2D>()) {
return TTR("PathFolow2D only works when set as a child of a Path2D node.");
return TTR("PathFollow2D only works when set as a child of a Path2D node.");
}
return String();

View file

@ -540,7 +540,7 @@ String ViewportSprite::get_configuration_warning() const {
Viewport *vp = n->cast_to<Viewport>();
if (!vp->is_set_as_render_target()) {
return TTR("The Viewport set in the path property must be set as 'render taget' in order for this sprite to work");
return TTR("The Viewport set in the path property must be set as 'render target' in order for this sprite to work.");
}
}
}

View file

@ -347,11 +347,11 @@ void VisibilityEnabler2D::_node_removed(Node* p_node) {
}
String VisibilityEnabler2D::get_configuration_warning() const {
#ifdef TOOLS_ENABLED
if (is_inside_tree() && get_parent() && (get_parent()->get_filename()==String() && get_parent()!=get_tree()->get_edited_scene_root())) {
return TTR("VisibilityEnable2D works best when used with the edited scene root directly as parent.");
}
#endif
return String();
}

View file

@ -936,7 +936,7 @@ void VehicleBody::_direct_state_changed(Object *p_state) {
wheel.m_deltaRotation *= real_t(0.99);//damping of rotation when not in contact
}
linear_velocity = s->get_linear_velocity();
}
void VehicleBody::set_mass(real_t p_mass) {
@ -990,6 +990,10 @@ float VehicleBody::get_steering() const{
return m_steeringValue;
}
Vector3 VehicleBody::get_linear_velocity()
{
return linear_velocity;
}
void VehicleBody::_bind_methods(){
@ -1008,6 +1012,8 @@ void VehicleBody::_bind_methods(){
ObjectTypeDB::bind_method(_MD("set_steering","steering"),&VehicleBody::set_steering);
ObjectTypeDB::bind_method(_MD("get_steering"),&VehicleBody::get_steering);
ObjectTypeDB::bind_method(_MD("get_linear_velocity"),&VehicleBody::get_linear_velocity);
ObjectTypeDB::bind_method(_MD("_direct_state_changed"),&VehicleBody::_direct_state_changed);
ADD_PROPERTY( PropertyInfo(Variant::REAL,"motion/engine_force",PROPERTY_HINT_RANGE,"0.00,1024.0,0.01"),_SCS("set_engine_force"),_SCS("get_engine_force"));

View file

@ -178,6 +178,7 @@ public:
void set_steering(float p_steering);
float get_steering() const;
Vector3 get_linear_velocity();
VehicleBody();
};

View file

@ -1012,7 +1012,7 @@ void AnimationPlayer::play(const StringName& p_name, float p_custom_blend, float
queued.clear();
_set_process(true); // always process when starting an animation
playing = true;
emit_signal(SceneStringNames::get_singleton()->animation_started, c.assigned);
if (is_inside_tree() && get_tree()->is_editor_hint())

View file

@ -494,7 +494,7 @@ HTTPRequest::HTTPRequest()
max_redirects=8;
body_len=-1;
got_response=false;
validate_ssl=false;
validate_ssl=false;
use_ssl=false;
response_code=0;
request_sent=false;

View file

@ -1842,6 +1842,8 @@ void Viewport::_gui_input_event(InputEvent p_event) {
if (gui.mouse_over)
gui.mouse_over->notification(Control::NOTIFICATION_MOUSE_EXIT);
_gui_cancel_tooltip();
if (over)
over->notification(Control::NOTIFICATION_MOUSE_ENTER);
@ -1849,8 +1851,6 @@ void Viewport::_gui_input_event(InputEvent p_event) {
gui.mouse_over=over;
_gui_cancel_tooltip();
if (gui.drag_preview) {
gui.drag_preview->set_pos(mpos);
}
@ -2407,7 +2407,7 @@ String Viewport::get_configuration_warning() const {
if (get_parent() && !get_parent()->cast_to<Control>() && !render_target) {
return TTR("This viewport is not set as render target. If you intend for it to display it's contents directly to the screen, make it a child of a Control so it can obtain a size. Otherwise, make it a RenderTarget and assign it's internal texture to some node for display.");
return TTR("This viewport is not set as render target. If you intend for it to display its contents directly to the screen, make it a child of a Control so it can obtain a size. Otherwise, make it a RenderTarget and assign its internal texture to some node for display.");
}
return String();

View file

@ -544,7 +544,7 @@ void Curve2D::_bake() const {
List<Vector2> pointlist;
pointlist.push_back(pos); //start always from origin
for(int i=0;i<points.size()-1;i++) {
float step = 0.1; // at least 10 substeps ought to be enough?

View file

@ -29,7 +29,7 @@
// "Zer" on mollyrocket (with fix)
// Cass Everitt
// stoiko (Haemimont Games)
// Brian Hook
// Brian Hook
// Walter van Niftrik
// David Gow
// David Given
@ -218,7 +218,7 @@
// Curve tesselation 120 LOC \__ 550 LOC Bitmap creation
// Bitmap management 100 LOC /
// Baked bitmap interface 70 LOC /
// Font name matching & access 150 LOC ---- 150
// Font name matching & access 150 LOC ---- 150
// C runtime library abstraction 60 LOC ---- 60
//
//
@ -311,7 +311,7 @@ int main(int argc, char **argv)
}
return 0;
}
#endif
#endif
//
// Output:
//
@ -325,9 +325,9 @@ int main(int argc, char **argv)
// :@@. M@M
// @@@o@@@@
// :M@@V:@@.
//
//
//////////////////////////////////////////////////////////////////////////////
//
//
// Complete program: print "Hello World!" banner, with bugs
//
#if 0
@ -599,7 +599,7 @@ STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, stbt
// Calling these functions in sequence is roughly equivalent to calling
// stbtt_PackFontRanges(). If you more control over the packing of multiple
// fonts, or if you want to pack custom data into a font texture, take a look
// at the source to of stbtt_PackFontRanges() and create a custom version
// at the source to of stbtt_PackFontRanges() and create a custom version
// using these functions, e.g. call GatherRects multiple times,
// building up a single array of rects, then call PackRects once,
// then call RenderIntoRects repeatedly. This may result in a
@ -1350,7 +1350,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s
if (i != 0)
num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy);
// now start the new one
// now start the new one
start_off = !(flags & 1);
if (start_off) {
// if we start off with an off-curve point, then when we need to find a point on the curve
@ -1403,7 +1403,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s
int comp_num_verts = 0, i;
stbtt_vertex *comp_verts = 0, *tmp = 0;
float mtx[6] = {1,0,0,1,0,0}, m, n;
flags = ttSHORT(comp); comp+=2;
gidx = ttSHORT(comp); comp+=2;
@ -1433,7 +1433,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s
mtx[2] = ttSHORT(comp)/16384.0f; comp+=2;
mtx[3] = ttSHORT(comp)/16384.0f; comp+=2;
}
// Find transformation scales.
m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]);
n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]);
@ -1691,7 +1691,7 @@ static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, i
float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0);
STBTT_assert(z != NULL);
if (!z) return z;
// round dx down to avoid overshooting
if (dxdy < 0)
z->dx = -STBTT_ifloor(STBTT_FIX * -dxdy);
@ -1769,7 +1769,7 @@ static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__ac
}
}
}
e = e->next;
}
}
@ -2441,7 +2441,7 @@ STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info
{
int ix0,iy0,ix1,iy1;
stbtt__bitmap gbm;
stbtt_vertex *vertices;
stbtt_vertex *vertices;
int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices);
if (scale_x == 0) scale_x = scale_y;
@ -2464,7 +2464,7 @@ STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info
if (height) *height = gbm.h;
if (xoff ) *xoff = ix0;
if (yoff ) *yoff = iy0;
if (gbm.w && gbm.h) {
gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata);
if (gbm.pixels) {
@ -2475,7 +2475,7 @@ STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info
}
STBTT_free(vertices, info->userdata);
return gbm.pixels;
}
}
STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff)
{
@ -2487,7 +2487,7 @@ STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigne
int ix0,iy0;
stbtt_vertex *vertices;
int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices);
stbtt__bitmap gbm;
stbtt__bitmap gbm;
stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0);
gbm.pixels = output;
@ -2509,7 +2509,7 @@ STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *
STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff)
{
return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff);
}
}
STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint)
{
@ -2519,7 +2519,7 @@ STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, uns
STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff)
{
return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff);
}
}
STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint)
{
@ -2644,7 +2644,7 @@ static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *no
con->y = 0;
con->bottom_y = 0;
STBTT__NOTUSED(nodes);
STBTT__NOTUSED(num_nodes);
STBTT__NOTUSED(num_nodes);
}
static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects)
@ -2996,7 +2996,7 @@ STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontd
n = 0;
for (i=0; i < num_ranges; ++i)
n += ranges[i].num_chars;
rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context);
if (rects == NULL)
return 0;
@ -3007,7 +3007,7 @@ STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, unsigned char *fontd
n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects);
stbtt_PackFontRangesPackRects(spc, rects, n);
return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects);
STBTT_free(rects, spc->user_allocator_context);
@ -3060,7 +3060,7 @@ STBTT_DEF void stbtt_GetPackedQuad(stbtt_packedchar *chardata, int pw, int ph, i
//
// check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string
static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2)
static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8 *s1, stbtt_int32 len1, const stbtt_uint8 *s2, stbtt_int32 len2)
{
stbtt_int32 i=0;
@ -3099,7 +3099,7 @@ static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(const stbtt_uint8
return i;
}
STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2)
STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2)
{
return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((const stbtt_uint8*) s1, len1, (const stbtt_uint8*) s2, len2);
}

View file

@ -374,7 +374,7 @@ void Theme::get_stylebox_types(List<StringName> *p_list) const {
const StringName *key=NULL;
while((key=style_map.next(key))) {
p_list->push_back(*key);
}
}
}
void Theme::set_font(const StringName& p_name,const StringName& p_type,const Ref<Font>& p_font) {

View file

@ -657,7 +657,7 @@ public:
virtual RID texture_create();
virtual void texture_allocate(RID p_texture,int p_width, int p_height,Image::Format p_format,uint32_t p_flags=TEXTURE_FLAGS_DEFAULT);
virtual void texture_set_data(RID p_texture,const Image& p_image,CubeMapSide p_cube_side=CUBEMAP_LEFT);
virtual void texture_set_data(RID p_texture,const Image& p_image,CubeMapSide p_cube_side=CUBEMAP_LEFT);
virtual Image texture_get_data(RID p_texture,CubeMapSide p_cube_side=CUBEMAP_LEFT) const;
virtual void texture_set_flags(RID p_texture,uint32_t p_flags) ;
virtual uint32_t texture_get_flags(RID p_texture) const;

View file

@ -1085,7 +1085,7 @@ EditorAddonLibrary::EditorAddonLibrary() {
search_hb->add_child( memnew( Label(TTR("Search: "))));
search_hb->add_child( memnew( Label(TTR("Search:")+" ")));
filter =memnew( LineEdit );
search_hb->add_child(filter);
filter->set_h_size_flags(SIZE_EXPAND_FILL);
@ -1112,7 +1112,7 @@ EditorAddonLibrary::EditorAddonLibrary() {
HBoxContainer *search_hb2 = memnew( HBoxContainer );
library_main->add_child(search_hb2);
search_hb2->add_child( memnew( Label("Sort: ")));
search_hb2->add_child( memnew( Label(TTR("Sort:")+" ")));
sort = memnew( OptionButton );
for(int i=0;i<SORT_MAX;i++) {
sort->add_item(sort_text[i]);
@ -1123,26 +1123,26 @@ EditorAddonLibrary::EditorAddonLibrary() {
sort->set_h_size_flags(SIZE_EXPAND_FILL);
reverse = memnew( CheckBox);
reverse->set_text("Reverse");
reverse->set_text(TTR("Reverse"));
search_hb2->add_child(reverse);
search_hb2->add_child(memnew(VSeparator));
//search_hb2->add_spacer();
search_hb2->add_child( memnew( Label("Category: ")));
search_hb2->add_child( memnew( Label(TTR("Category:")+" ")));
categories = memnew( OptionButton );
categories->add_item("All");
categories->add_item(TTR("All"));
search_hb2->add_child(categories);
categories->set_h_size_flags(SIZE_EXPAND_FILL);
//search_hb2->add_spacer();
search_hb2->add_child(memnew(VSeparator));
search_hb2->add_child( memnew( Label("Site: ")));
search_hb2->add_child( memnew( Label(TTR("Site:")+" ")));
repository = memnew( OptionButton );
repository->add_item(TTR("Godot"));
repository->add_item("Godot");
search_hb2->add_child(repository);
repository->set_h_size_flags(SIZE_EXPAND_FILL);
@ -1232,7 +1232,7 @@ EditorAddonLibrary::EditorAddonLibrary() {
asset_open = memnew( EditorFileDialog );
asset_open->set_access(EditorFileDialog::ACCESS_FILESYSTEM);
asset_open->add_filter("*.zip ; Assets ZIP File");
asset_open->add_filter("*.zip ; "+TTR("Assets ZIP File"));
asset_open->set_mode(EditorFileDialog::MODE_OPEN_FILE);
add_child(asset_open);
asset_open->connect("file_selected",this,"_asset_file_selected");

View file

@ -889,7 +889,7 @@ void AnimationKeyEditor::_menu_track(int p_type) {
case TRACK_MENU_SET_ALL_TRANS_OUTIN: t=-2.0; break;
}
undo_redo->create_action(TTR("Set Transitions to: ")+rtos(t));
undo_redo->create_action(TTR("Set Transitions to:")+" "+rtos(t));
for(Map<SelectedKey,KeyInfo>::Element *E=selection.back();E;E=E->prev()) {
@ -2096,7 +2096,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
/*
if (ofsx < remove_icon->get_width()) {
undo_redo->create_action(TTR("Remove Anim Track"));
undo_redo->create_action("Remove Anim Track");
undo_redo->add_do_method(animation.ptr(),"remove_track",idx);
undo_redo->add_undo_method(animation.ptr(),"add_track",animation->track_get_type(idx),idx);
undo_redo->add_undo_method(animation.ptr(),"track_set_path",idx,animation->track_get_path(idx));
@ -2129,7 +2129,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (ofsx < move_down_icon->get_width()) {
if (idx < animation->get_track_count() -1) {
undo_redo->create_action(TTR("Move Anim Track Down"));
undo_redo->create_action("Move Anim Track Down");
undo_redo->add_do_method(animation.ptr(),"track_move_up",idx);
undo_redo->add_undo_method(animation.ptr(),"track_move_down",idx+1);
undo_redo->commit_action();
@ -2142,7 +2142,7 @@ void AnimationKeyEditor::_track_editor_input_event(const InputEvent& p_input) {
if (ofsx < move_up_icon->get_width()) {
if (idx >0) {
undo_redo->create_action(TTR("Move Anim Track Up"));
undo_redo->create_action("Move Anim Track Up");
undo_redo->add_do_method(animation.ptr(),"track_move_down",idx);
undo_redo->add_undo_method(animation.ptr(),"track_move_up",idx-1);
undo_redo->commit_action();
@ -2893,7 +2893,7 @@ void AnimationKeyEditor::_notification(int p_what) {
optimize_dialog->connect("confirmed",this,"_animation_optimize");
menu_track->get_popup()->add_child(tpp);
//menu_track->get_popup()->add_submenu_item(TTR("Set Transitions.."),"Transitions");
//menu_track->get_popup()->add_submenu_item("Set Transitions..","Transitions");
//menu_track->get_popup()->add_separator();
menu_track->get_popup()->add_item(TTR("Optimize Animation"),TRACK_MENU_OPTIMIZE);
menu_track->get_popup()->add_item(TTR("Clean-Up Animation"),TRACK_MENU_CLEAN_UP);
@ -3113,9 +3113,9 @@ void AnimationKeyEditor::_query_insert(const InsertData& p_id) {
if (bool(EDITOR_DEF("animation/confirm_insert_track",true))) {
//potential new key, does not exist
if (insert_data.size()==1)
insert_confirm->set_text(TTR("Create NEW track for ")+p_id.query+TTR(" and insert key?"));
insert_confirm->set_text(vformat(TTR("Create NEW track for %s and insert key?"),p_id.query));
else
insert_confirm->set_text(TTR("Create ")+itos(insert_data.size())+TTR(" NEW tracks and insert keys?"));
insert_confirm->set_text(vformat(TTR("Create %d NEW tracks and insert keys?"),insert_data.size()));
insert_confirm->get_ok()->set_text(TTR("Create"));
insert_confirm->popup_centered_minsize();
@ -3510,7 +3510,7 @@ void AnimationKeyEditor::_insert_delay() {
return;
}
undo_redo->create_action(TTR("Anim Insert"));
undo_redo->create_action(TTR("Anim Insert"));
int last_track = animation->get_track_count();
bool advance=false;
@ -3818,7 +3818,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
hb->add_child( memnew( VSeparator ) );
Label *l = memnew( Label );
l->set_text(TTR("Len(s):"));
l->set_text(TTR("Length (s):"));
hb->add_child(l);
length = memnew( SpinBox );
@ -3833,7 +3833,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
length->connect("value_changed",this,"_animation_len_changed");
l = memnew( Label );
l->set_text(TTR("Step(s):"));
l->set_text(TTR("Step (s):"));
hb->add_child(l);
step = memnew( SpinBox );
@ -3929,7 +3929,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
/*keying = memnew( Button );
keying->set_toggle_mode(true);
//keying->set_text(TTR("Keys"));
//keying->set_text("Keys");
keying->set_anchor_and_margin(MARGIN_LEFT,ANCHOR_END,60);
keying->set_anchor_and_margin(MARGIN_RIGHT,ANCHOR_END,10);
keying->set_anchor_and_margin(MARGIN_BOTTOM,ANCHOR_BEGIN,55);
@ -3939,7 +3939,7 @@ AnimationKeyEditor::AnimationKeyEditor() {
*/
/* l = memnew( Label );
l->set_text(TTR("Base: "));
l->set_text("Base: ");
l->set_pos(Point2(0,3));
// dr_panel->add_child(l);*/
@ -4089,10 +4089,10 @@ AnimationKeyEditor::AnimationKeyEditor() {
cleanup_vb->add_child(cleanup_tracks);
cleanup_all = memnew( CheckButton );
cleanup_all->set_text(TTR("Clean-Up all animations"));
cleanup_all->set_text(TTR("Clean-up all animations"));
cleanup_vb->add_child(cleanup_all);
cleanup_dialog->set_title(TTR("Clean up Animation(s) (NO UNDO!)"));
cleanup_dialog->set_title(TTR("Clean-Up Animation(s) (NO UNDO!)"));
cleanup_dialog->get_ok()->set_text(TTR("Clean-Up"));
cleanup_dialog->connect("confirmed",this,"_menu_track",varray(TRACK_MENU_CLEAN_UP_CONFIRM));

View file

@ -239,7 +239,7 @@ void CallDialog::set_object(Object *p_object,StringName p_selected) {
return_value->clear();
_update_method_list();
method_label->set_text(TTR("Method List For ' ")+p_object->get_type()+" ':");
method_label->set_text(vformat(TTR("Method List For '%s':"),p_object->get_type()));
}
CallDialog::CallDialog() {
@ -323,7 +323,7 @@ CallDialog::CallDialog() {
label->set_begin( Point2( 15,54) );
label->set_end( Point2( 16,44) );
label->set_text(TTR("Parameters:"));
label->set_text("Parameters:");
add_child(label);
*/

View file

@ -216,7 +216,7 @@ void FindReplaceDialog::_replace() {
text_edit->set_v_scroll(vsval);
// text_edit->set_h_scroll(hsval);
error_label->set_text(TTR("Replaced ")+itos(rc)+TTR(" ocurrence(s)."));
error_label->set_text(vformat(TTR("Replaced %d ocurrence(s)."),rc));
//hide();
@ -274,7 +274,7 @@ bool FindReplaceDialog::_search() {
return true;
} else {
set_error(TTR("Not Found!"));
set_error(TTR("Not found!"));
return false;
}
@ -498,7 +498,7 @@ FindReplaceDialog::FindReplaceDialog() {
void CodeTextEditor::_line_col_changed() {
String text = String()+TTR("Line: ")+itos(text_editor->cursor_get_line()+1)+TTR(", Col: ")+itos(text_editor->cursor_get_column());
String text = String()+TTR("Line:")+" "+itos(text_editor->cursor_get_line()+1)+", "+TTR("Col:")+" "+itos(text_editor->cursor_get_column());
line_col->set_text(text);
}

View file

@ -294,8 +294,8 @@ void ConnectDialog::_bind_methods() {
ConnectDialog::ConnectDialog() {
int margin = get_constant("margin",TTR("Dialogs"));
int button_margin = get_constant("button_margin",TTR("Dialogs"));
int margin = get_constant("margin","Dialogs");
int button_margin = get_constant("button_margin","Dialogs");
Label * label = memnew( Label );
@ -416,7 +416,7 @@ ConnectDialog::ConnectDialog() {
/*dst_method_list = memnew( MenuButton );
dst_method_list->set_text(TTR("List.."));
dst_method_list->set_text("List..");
dst_method_list->set_anchor( MARGIN_RIGHT, ANCHOR_END );
dst_method_list->set_anchor( MARGIN_LEFT, ANCHOR_END );
dst_method_list->set_anchor( MARGIN_TOP, ANCHOR_END );
@ -429,7 +429,7 @@ ConnectDialog::ConnectDialog() {
make_callback = memnew( CheckButton );
make_callback->set_toggle_mode(true);
make_callback->set_pressed( EDITOR_DEF("text_editor/create_signal_callbacks",true));
make_callback->set_text(TTR("Make Function "));
make_callback->set_text(TTR("Make Function"));
dstm_hb->add_child(make_callback);
deferred = memnew( CheckButton );
@ -447,7 +447,7 @@ ConnectDialog::ConnectDialog() {
realtime->set_anchor( MARGIN_RIGHT, ANCHOR_END );
realtime->set_begin( Point2( 120, button_margin-10 ) );
realtime->set_end( Point2( 80, margin ) );
realtime->set_text(TTR("Realtime"));
realtime->set_text("Realtime");
add_child(realtime);
*/
@ -465,7 +465,7 @@ ConnectDialog::ConnectDialog() {
add_child(error);
error->get_ok()->set_text(TTR("Close"));
get_ok()->set_text(TTR("Connect"));
// error->get_cancel()->set_text(TTR("Close"));
// error->get_cancel()->set_text("Close");
@ -511,7 +511,7 @@ void ConnectionsDialog::_connect() {
StringArray args = it->get_metadata(0).operator Dictionary()["args"];
int flags = CONNECT_PERSIST | (defer?CONNECT_DEFERRED:0) | (oshot?CONNECT_ONESHOT:0);
undo_redo->create_action(TTR("Connect '")+signal+"' to '"+String(dst_method)+"'");
undo_redo->create_action(vformat(TTR("Connect '%s' to '%s'"),signal,String(dst_method)));
undo_redo->add_do_method(node,"connect",signal,target,dst_method,binds,flags);
undo_redo->add_undo_method(node,"disconnect",signal,target,dst_method);
undo_redo->add_do_method(this,"update_tree");
@ -610,7 +610,7 @@ void ConnectionsDialog::_remove_confirm() {
Dictionary meta=selected->get_metadata(0);
undo_redo->create_action(TTR("Remove Subscription"));
undo_redo->create_action("Remove Subscription");
undo_redo->add_do_method(node,"unsubscribe_path_event",meta["from_event"].operator String(),meta["from_path"].operator NodePath(),meta["to_method"].operator String());
undo_redo->add_undo_method(node,"subscribe_path_event_persist",meta["from_event"].operator String(),meta["from_path"].operator NodePath(),meta["to_method"].operator String(),Array(),false);
undo_redo->add_do_method(this,"update_tree");

View file

@ -251,7 +251,7 @@ void CreateDialog::_notification(int p_what) {
void CreateDialog::set_base_type(const String& p_base) {
base_type=p_base;
set_title(TTR("Create New ")+p_base);
set_title(TTR("Create New")+" "+p_base);
_update_search();
}
@ -541,7 +541,7 @@ void CreateDialog::_bind_methods() {
void CreateDialog::set_base_type(const String& p_base) {
set_title(TTR("Create ")+p_base+" Type");
set_title(vformat("Create %s Type",p_base));
if (base==p_base)
return;
@ -562,14 +562,14 @@ CreateDialog::CreateDialog() {
add_child(vbc);
set_child_rect(vbc);
get_ok()->set_text(TTR("Create"));
get_ok()->set_text("Create");
tree = memnew( Tree );
vbc->add_margin_child(TTR("Type:"),tree,true);
vbc->add_margin_child("Type:",tree,true);
//tree->set_hide_root(true);
filter = memnew( LineEdit );
vbc->add_margin_child(TTR("Filter:"),filter);
vbc->add_margin_child("Filter:",filter);
base="Node";
set_as_toplevel(true);

View file

@ -27,7 +27,7 @@ void DependencyEditor::_load_pressed(Object* p_item,int p_cell,int p_button){
String fname = ti->get_text(0);
replacing = ti->get_text(1);
search->set_title(TTR("Search Replacement For: ")+replacing.get_file());
search->set_title(TTR("Search Replacement For:")+" "+replacing.get_file());
search->clear_filters();
List<String> ext;
@ -180,7 +180,7 @@ void DependencyEditor::_update_list() {
String name = path.get_file();
Ref<Texture> icon;
if (has_icon(type,TTR("EditorIcons"))) {
if (has_icon(type,"EditorIcons")) {
icon=get_icon(type,"EditorIcons");
} else {
icon=get_icon("Object","EditorIcons");
@ -209,15 +209,15 @@ void DependencyEditor::edit(const String& p_path) {
editing=p_path;
set_title(TTR("Dependencies For: ")+p_path.get_file());
set_title(TTR("Dependencies For:")+" "+p_path.get_file());
_update_list();
popup_centered_ratio();
if (EditorNode::get_singleton()->is_scene_open(p_path)) {
EditorNode::get_singleton()->show_warning(TTR("Scene '")+p_path.get_file()+"' is currently being edited.\nChanges will not take effect unless reloaded.");
EditorNode::get_singleton()->show_warning(vformat(TTR("Scene '%s' is currently being edited.\nChanges will not take effect unless reloaded."),p_path.get_file()));
} else if (ResourceCache::has(p_path)) {
EditorNode::get_singleton()->show_warning(TTR("Resource '")+p_path.get_file()+"' is in use.\nChanges will take effect when reloaded.");
EditorNode::get_singleton()->show_warning(vformat(TTR("Resource '%s' is in use.\nChanges will take effect when reloaded."),p_path.get_file()));
}
}
@ -301,7 +301,7 @@ void DependencyEditorOwners::_fill_owners(EditorFileSystemDirectory *efsd) {
Ref<Texture> icon;
String type=efsd->get_file_type(i);
if (!has_icon(type,TTR("EditorIcons"))) {
if (!has_icon(type,"EditorIcons")) {
icon=get_icon("Object","EditorIcons");
} else {
icon=get_icon(type,"EditorIcons");
@ -319,7 +319,7 @@ void DependencyEditorOwners::show(const String& p_path) {
_fill_owners(EditorFileSystem::get_singleton()->get_filesystem());
popup_centered_ratio();
set_title(TTR("Owners Of: ")+p_path.get_file());
set_title(TTR("Owners Of:")+" "+p_path.get_file());
}
@ -362,7 +362,7 @@ void DependencyRemoveDialog::_fill_owners(EditorFileSystemDirectory *efsd) {
Ref<Texture> icon;
String type=efsd->get_file_type(i);
if (!has_icon(type,TTR("EditorIcons"))) {
if (!has_icon(type,"EditorIcons")) {
icon=get_icon("Object","EditorIcons");
} else {
icon=get_icon(type,"EditorIcons");
@ -448,7 +448,7 @@ void DependencyErrorDialog::show(const String& p_for_file,const Vector<String> &
for_file=p_for_file;
set_title(TTR("Error loading: ")+p_for_file.get_file());
set_title(TTR("Error loading:")+" "+p_for_file.get_file());
files->clear();
TreeItem *root = files->create_item(NULL);
@ -461,7 +461,7 @@ void DependencyErrorDialog::show(const String& p_for_file,const Vector<String> &
type=report[i].get_slice("::",1);
Ref<Texture> icon;
if (!has_icon(type,TTR("EditorIcons"))) {
if (!has_icon(type,"EditorIcons")) {
icon=get_icon("Object","EditorIcons");
} else {
icon=get_icon(type,"EditorIcons");
@ -523,7 +523,7 @@ void OrphanResourcesDialog::ok_pressed() {
if (paths.empty())
return;
delete_confirm->set_text(TTR("Permanently Delete ")+itos(paths.size())+" Item(s) ? (No Undo!!)");
delete_confirm->set_text(vformat(TTR("Permanently delete %d item(s)? (No undo!)"),paths.size()));
delete_confirm->popup_centered_minsize();
}
@ -580,7 +580,7 @@ bool OrphanResourcesDialog::_fill_owners(EditorFileSystemDirectory *efsd,HashMap
String type=efsd->get_file_type(i);
Ref<Texture> icon;
if (has_icon(type,TTR("EditorIcons"))) {
if (has_icon(type,"EditorIcons")) {
icon=get_icon(type,"EditorIcons");
} else {
icon=get_icon("Object","EditorIcons");

View file

@ -677,7 +677,7 @@ void EditorFileDialog::update_filters() {
if (max_filters<filters.size())
all_filters+=", ...";
filter->add_item(TTR("All Recognized ( ")+all_filters+" )");
filter->add_item(TTR("All Recognized")+" ( "+all_filters+" )");
}
for(int i=0;i<filters.size();i++) {

View file

@ -314,7 +314,7 @@ void EditorFileSystem::_scan_filesystem() {
EditorProgressBG scan_progress("efs",TTR("ScanFS"),1000);
EditorProgressBG scan_progress("efs","ScanFS",1000);
ScanProgress sp;
sp.low=0;
@ -609,7 +609,7 @@ void EditorFileSystem::_scan_new_dir(EditorFileSystemDirectory *p_dir,DirAccess
da->change_dir("..");
} else {
ERR_PRINTS(TTR("Can't go into subdir: ")+E->get());
ERR_PRINTS(TTR("Cannot go into subdir:")+" "+E->get());
}
p_progress.update(idx,total);

View file

@ -519,7 +519,7 @@ EditorHelpIndex::EditorHelpIndex() {
search_box->connect("input_event", this, "_sbox_input");
class_list = memnew( Tree );
vbc->add_margin_child(TTR("Class List: "), class_list, true);
vbc->add_margin_child(TTR("Class List:")+" ", class_list, true);
class_list->set_v_size_flags(SIZE_EXPAND_FILL);
class_list->connect("item_activated",this,"_tree_item_selected");
@ -710,7 +710,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->push_font(doc_title_font);
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->add_text(TTR("Class: "));
class_desc->add_text(TTR("Class:")+" ");
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/base_type_color"));
_add_text(p_class);
class_desc->pop();
@ -722,7 +722,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text(TTR("Inherits: "));
class_desc->add_text(TTR("Inherits:")+" ");
class_desc->pop();
class_desc->pop();
@ -756,7 +756,7 @@ Error EditorHelp::_goto_desc(const String& p_class,int p_vscr) {
if (!found) {
class_desc->push_color(EditorSettings::get_singleton()->get("text_editor/keyword_color"));
class_desc->push_font(doc_title_font);
class_desc->add_text("Inherited by: ");
class_desc->add_text(TTR("Inherited by:")+" ");
class_desc->pop();
class_desc->pop();

View file

@ -240,12 +240,12 @@ static void _edit_files_with_filter(DirAccess *da,const List<String>& p_filters,
for(const List<String>::Element *F=p_filters.front();F;F=F->next()) {
if (fullpath.matchn(F->get())) {
String act = TTR("Added: ");
String act = TTR("Added:")+" ";
if (!exclude) {
r_list.insert(fullpath);
} else {
act = TTR("Removed: ");
act = TTR("Removed:")+" ";
r_list.erase(fullpath);
}
@ -866,7 +866,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
Error err = plugin->import2(dst_file,imd,get_image_compression(),true);
if (err) {
EditorNode::add_io_error(TTR("Error saving atlas! ")+dst_file.get_file());
EditorNode::add_io_error(TTR("Error saving atlas:")+" "+dst_file.get_file());
return ERR_CANT_CREATE;
}
@ -916,7 +916,7 @@ Error EditorExportPlatform::export_project_files(EditorExportSaveFunction p_func
String path = EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmpatlas.atex";
Error err = ResourceSaver::save(path,atex);
if (err!=OK) {
EditorNode::add_io_error(TTR("Could not save atlas subtexture: ")+path);
EditorNode::add_io_error(TTR("Could not save atlas subtexture:")+" "+path);
return ERR_CANT_CREATE;
}
Vector<uint8_t> data = FileAccess::get_file_as_array(path);
@ -1157,7 +1157,7 @@ Error EditorExportPlatform::save_pack_file(void *p_userdata,const String& p_path
MD5Final(&ctx);
pd->f->store_buffer(ctx.digest,16);
}
pd->ep->step(TTR("Storing File: ")+p_path,2+p_file*100/p_total,false);
pd->ep->step(TTR("Storing File:")+" "+p_path,2+p_file*100/p_total,false);
pd->count++;
pd->ftmp->store_buffer(p_data.ptr(),p_data.size());
if (pd->alignment > 1) {
@ -1195,7 +1195,7 @@ Error EditorExportPlatform::save_zip_file(void *p_userdata,const String& p_path,
zipWriteInFileInZip(zip,p_data.ptr(),p_data.size());
zipCloseFileInZip(zip);
zd->ep->step(TTR("Storing File: ")+p_path,2+p_file*100/p_total,false);
zd->ep->step(TTR("Storing File:")+" "+p_path,2+p_file*100/p_total,false);
zd->count++;
return OK;
@ -1309,7 +1309,7 @@ Error EditorExportPlatformPC::export_project(const String& p_path, bool p_debug,
EditorProgress ep("export",TTR("Exporting for ")+get_name(),102);
EditorProgress ep("export",vformat(TTR("Exporting for %s"),get_name()),102);
const int BUFSIZE = 32768;

View file

@ -432,7 +432,7 @@ void EditorNode::_rebuild_import_menu()
{
PopupMenu* p = import_menu->get_popup();
p->clear();
p->add_item(TTR("Node from scene"), FILE_IMPORT_SUBSCENE);
p->add_item(TTR("Node From Scene"), FILE_IMPORT_SUBSCENE);
p->add_separator();
for (int i = 0; i < editor_import_export->get_import_plugin_count(); i++) {
p->add_item(editor_import_export->get_import_plugin(i)->get_visible_name(), IMPORT_PLUGIN_BASE + i);
@ -606,15 +606,15 @@ void EditorNode::_dialog_display_file_error(String p_file,Error p_error) {
case ERR_FILE_CANT_WRITE: {
accept->set_text(TTR("Can't open file for writing: ")+p_file.extension());
accept->set_text(TTR("Can't open file for writing:")+" "+p_file.extension());
} break;
case ERR_FILE_UNRECOGNIZED: {
accept->set_text(TTR("File format requested unknown: ")+p_file.extension());
accept->set_text(TTR("Requested file format unknown:")+" "+p_file.extension());
} break;
default: {
accept->set_text(TTR("Error Saving."));
accept->set_text(TTR("Error while saving."));
}break;
}
@ -1071,8 +1071,8 @@ void EditorNode::_import_action(const String& p_action) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("Ugh"));
accept->set_text(TTR("Error importing scene."));
accept->get_ok()->set_text("Ugh");
accept->set_text("Error importing scene.");
accept->popup_centered(Size2(300,70));;
return;
}
@ -1087,8 +1087,8 @@ void EditorNode::_import_action(const String& p_action) {
memdelete(src);
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("Ugh"));
accept->set_text(TTR("Error load scene to update."));
accept->get_ok()->set_text("Ugh");
accept->set_text("Error load scene to update.");
accept->popup_centered(Size2(300,70));;
return;
}
@ -1128,8 +1128,8 @@ void EditorNode::_import(const String &p_file) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("Ugh"));
accept->set_text(TTR("Error importing scene."));
accept->get_ok()->set_text("Ugh");
accept->set_text("Error importing scene.");
accept->popup_centered(Size2(300,70));;
return;
}
@ -1251,7 +1251,7 @@ void EditorNode::_dialog_action(String p_file) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Can't load MeshLibrary for merging!."));
accept->set_text(TTR("Can't load MeshLibrary for merging!"));
accept->popup_centered_minsize();
return;
}
@ -1268,7 +1268,7 @@ void EditorNode::_dialog_action(String p_file) {
if (err) {
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Error saving MeshLibrary!."));
accept->set_text(TTR("Error saving MeshLibrary!"));
accept->popup_centered_minsize();
return;
}
@ -1286,7 +1286,7 @@ void EditorNode::_dialog_action(String p_file) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Can't load TileSet for merging!."));
accept->set_text(TTR("Can't load TileSet for merging!"));
accept->popup_centered_minsize();
return;
}
@ -1304,7 +1304,7 @@ void EditorNode::_dialog_action(String p_file) {
if (err) {
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Error saving TileSet!."));
accept->set_text(TTR("Error saving TileSet!"));
accept->popup_centered_minsize();
return;
}
@ -1328,7 +1328,7 @@ void EditorNode::_dialog_action(String p_file) {
}
int ret = unzGoToFirstFile(pkg);
int fc=0; //coun them
int fc=0; //count them
while(ret==UNZ_OK) {
fc++;
@ -1368,7 +1368,7 @@ void EditorNode::_dialog_action(String p_file) {
file=file.get_file();
p.step(TTR("Importing: ")+file,fc);
p.step(TTR("Importing:")+" "+file,fc);
print_line("IMPORT "+file);
FileAccess *f = FileAccess::open(EditorSettings::get_singleton()->get_settings_path()+"/templates/"+file,FileAccess::WRITE);
@ -1454,7 +1454,7 @@ void EditorNode::_dialog_action(String p_file) {
_update_layouts_menu();
if (p_file=="Default") {
show_warning(TTR("Restored Default layout to base settings."));
show_warning(TTR("Restored default layout to base settings."));
}
} break;
@ -1712,7 +1712,7 @@ void EditorNode::_edit_current() {
_set_top_editors(sub_plugins);
_set_editing_top_editors(current_obj);
_display_top_editors(true);
} else if (!editor_plugins_over->get_plugins_list().empty()) {
_hide_top_editors();
@ -1769,7 +1769,7 @@ void EditorNode::_edit_current() {
}
//p->add_separator();
//p->add_item(TTR("All Methods"),OBJECT_CALL_METHOD);
//p->add_item("All Methods",OBJECT_CALL_METHOD);
update_keying();
@ -1832,7 +1832,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("No scene to run exists."));
accept->set_text(TTR("There is no defined scene to run."));
accept->popup_centered_minsize();
return;
}
@ -1896,7 +1896,7 @@ void EditorNode::_run(bool p_current,const String& p_custom) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Current scene was never saved, please save scene before running."));
accept->set_text(TTR("Current scene was never saved, please save it prior to running."));
accept->popup_centered_minsize();
return;
}
@ -1998,11 +1998,12 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
switch( p_option ) {
case FILE_NEW_SCENE: {
// TODO: Drop such obsolete commented code
/*
if (!p_confirmed) {
confirmation->get_ok()->set_text(TTR("Yes"));
confirmation->get_ok()->set_text("Yes");
//confirmation->get_cancel()->show();
confirmation->set_text(TTR("Start a New Scene? (Current will be lost)"));
confirmation->set_text("Start a New Scene? (Current will be lost)");
confirmation->popup_centered_minsize();
break;
}*/
@ -2058,7 +2059,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
//quick_open->popup("Resource", false, true);
//quick_open->set_title(TTR("Quick Search File.."));
//quick_open->set_title("Quick Search File..");
scenes_dock->focus_on_filter();
} break;
@ -2221,7 +2222,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a tree root.");
accept->popup_centered(Size2(300,70));;
break;
@ -2243,8 +2244,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
} else {
current_option=-1;
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Please save the scene first."));
accept->get_ok()->set_text("I see..");
accept->set_text("Please save the scene first.");
accept->popup_centered(Size2(300,70));;
break;
@ -2259,7 +2260,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
String target = export_db->get_current_platform();
Ref<EditorExporter> exporter = export_db->get_exporter(target);
if (exporter.is_null()) {
accept->set_text(TTR("No exporter for platform '")+target+"' yet.");
accept->set_text("No exporter for platform '"+target+"' yet.");
accept->popup_centered(Size2(300,70));;
return;
}
@ -2343,7 +2344,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
confirmation->get_ok()->set_text(TTR("Quit"));
//confirmation->get_cancel()->show();
confirmation->set_text(TTR("Exit the Editor?"));
confirmation->set_text(TTR("Exit the editor?"));
confirmation->popup_centered(Size2(180,70));
break;
}
@ -2411,7 +2412,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
String filename = scene->get_filename();
if (filename==String()) {
show_warning(TTR("Can't reload a scene that was never saved.."));
show_warning(TTR("Can't reload a scene that was never saved."));
break;
}
@ -2440,7 +2441,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a selected node.");
accept->popup_centered(Size2(300,70));;
break;
@ -2452,7 +2453,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//confirmation->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->get_ok()->set_text("I see..");
accept->set_text("This operation can't be done without a selected node.");
accept->popup_centered(Size2(300,70));;
break;
@ -2464,8 +2465,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("Ugh"));
accept->set_text(String(TTR("Error loading scene from "))+external_file);
accept->get_ok()->set_text("Ugh");
accept->set_text("Error loading scene from "+external_file);
accept->popup_centered(Size2(300,70));;
return;
}
@ -2473,7 +2474,7 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
instanced_scene->generate_instance_state();
instanced_scene->set_filename( Globals::get_singleton()->localize_path(external_file) );
editor_data.get_undo_redo().create_action(TTR("Instance Scene"));
editor_data.get_undo_redo().create_action("Instance Scene");
editor_data.get_undo_redo().add_do_method(parent,"add_child",instanced_scene);
editor_data.get_undo_redo().add_do_method(instanced_scene,"set_owner",edited_scene);
editor_data.get_undo_redo().add_do_reference(instanced_scene);
@ -2703,11 +2704,11 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (ischecked) {
file_server->stop();
//debug_button->set_icon(gui_base->get_icon("FileServer","EditorIcons"));
//debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),TTR("Enable File Server"));
//debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),"Enable File Server");
} else {
file_server->start();
//debug_button->set_icon(gui_base->get_icon("FileServerActive","EditorIcons"));
//debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),TTR("Disable File Server"));
//debug_button->get_popup()->set_item_text( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),"Disable File Server");
}
debug_button->get_popup()->set_item_checked( debug_button->get_popup()->get_item_index(RUN_FILE_SERVER),!ischecked);
@ -2819,9 +2820,9 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
if (!p_confirmed) {
confirmation->get_ok()->set_text(TTR("Open"));
confirmation->get_ok()->set_text("Open");
//confirmation->get_cancel()->show();
confirmation->set_text(TTR("Current scene changed, save and re-import ?"));
confirmation->set_text("Current scene changed, save and re-import ?");
confirmation->popup_centered(Size2(300,70));
break;
@ -2834,8 +2835,8 @@ void EditorNode::_menu_option_confirm(int p_option,bool p_confirmed) {
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Can't import if edited scene was not saved.")); //i dont think this code will ever run
accept->get_ok()->set_text("I see..");
accept->set_text("Can't import if edited scene was not saved."); //i dont think this code will ever run
accept->popup_centered(Size2(300,70));;
break;
@ -3251,7 +3252,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
if (!get_edited_scene()) {
get_scene()->quit();
ERR_EXPLAIN(TTR("No scene to optimize (loading failed?"));
ERR_EXPLAIN("No scene to optimize (loading failed?)");
ERR_FAIL_V(ERR_FILE_NOT_FOUND);
}
@ -3276,10 +3277,10 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
if (!Globals::get_singleton()->has(preset)) {
//accept->"()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Optimizer preset not found: ")+p_preset);
accept->get_ok()->set_text("I see..");
accept->set_text("Optimizer preset not found: "+p_preset);
accept->popup_centered(Size2(300,70));;
ERR_EXPLAIN(TTR("Optimizer preset not found: ")+p_preset);
ERR_EXPLAIN("Optimizer preset not found: "+p_preset);
ERR_FAIL_V(ERR_INVALID_PARAMETER);
}
@ -3299,7 +3300,7 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
}
}
ERR_EXPLAIN(TTR("Preset '")+p_preset+"' references nonexistent saver: "+type);
ERR_EXPLAIN("Preset '"+p_preset+"' references nonexistent saver: "+type);
ERR_FAIL_COND_V(saver.is_null(),ERR_INVALID_DATA);
List<Variant> keys;
@ -3334,8 +3335,8 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
current_option=-1;
//accept->get_cancel()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied."));
accept->get_ok()->set_text("I see..");
accept->set_text("Couldn't save scene. Likely dependencies (instances) couldn't be satisfied.");
accept->popup_centered(Size2(300,70));;
return ERR_INVALID_DATA;
@ -3345,8 +3346,8 @@ Error EditorNode::save_optimized_copy(const String& p_scene,const String& p_pres
if (err) {
//accept->"()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Error saving optimized scene: ")+path);
accept->get_ok()->set_text("I see..");
accept->set_text("Error saving optimized scene: "+path);
accept->popup_centered(Size2(300,70));;
ERR_FAIL_COND_V(err,err);
@ -3635,7 +3636,7 @@ Error EditorNode::load_scene(const String& p_scene, bool p_ignore_broken_deps,bo
for (Map<String,Set<String> >::Element *E=dependency_errors.front();E;E=E->next()) {
String txt=TTR("Scene '")+E->key()+"' has broken dependencies:\n";
String txt=vformat(TTR("Scene '%s' has broken dependencies:"),E->key())+"\n";
for(Set<String>::Element *F=E->get().front();F;F=F->next()) {
txt+="\t"+F->get()+"\n";
}
@ -3916,8 +3917,8 @@ void EditorNode::_save_optimized() {
if (err) {
//accept->"()->hide();
accept->get_ok()->set_text(TTR("I see.."));
accept->set_text(TTR("Error saving optimized scene: ")+path);
accept->get_ok()->set_text("I see..");
accept->set_text("Error saving optimized scene: "+path);
accept->popup_centered(Size2(300,70));;
return;
@ -4949,7 +4950,7 @@ Variant EditorNode::drag_files(const Vector<String>& p_files, Control *p_from){
if (p_files.size()>max_files) {
Label* label=memnew( Label );
label->set_text(itos(p_files.size()-max_files)+" "+TTR("More File(s)"));
label->set_text(vformat(TTR("%d more file(s)"), p_files.size()-max_files));
files->add_child(label);
}
@ -4980,7 +4981,7 @@ Variant EditorNode::drag_files_and_dirs(const Vector<String>& p_files, Control *
if (p_files.size()>max_files) {
Label* label=memnew( Label );
label->set_text(itos(p_files.size()-max_files)+" "+TTR("More File(s) and/or Directory(s)"));
label->set_text(vformat(TTR("%d more file(s) or folder(s)"), p_files.size()-max_files));
files->add_child(label);
}
@ -5151,7 +5152,7 @@ EditorNode::EditorNode() {
ObjectTypeDB::set_type_enabled("CollisionShape",true);
ObjectTypeDB::set_type_enabled("CollisionShape2D",true);
ObjectTypeDB::set_type_enabled("CollisionPolygon2D",true);
//ObjectTypeDB::set_type_enabled(TTR("BodyVolumeConvexPolygon"),true);
//ObjectTypeDB::set_type_enabled("BodyVolumeConvexPolygon",true);
gui_base = memnew( Panel );
add_child(gui_base);
@ -5512,20 +5513,20 @@ EditorNode::EditorNode() {
menu_panel->add_child( node_menu );
p=node_menu->get_popup();
p->add_item(TTR("Create"),NODE_CREATE);
p->add_item(TTR("Instance"),NODE_INSTANCE);
p->add_item("Create",NODE_CREATE);
p->add_item("Instance",NODE_INSTANCE);
p->add_separator();
p->add_item(TTR("Reparent"),NODE_REPARENT);
p->add_item(TTR("Move Up"),NODE_MOVE_UP);
p->add_item(TTR("Move Down"),NODE_MOVE_DOWN);
p->add_item("Reparent",NODE_REPARENT);
p->add_item("Move Up",NODE_MOVE_UP);
p->add_item("Move Down",NODE_MOVE_DOWN);
p->add_separator();
p->add_item(TTR("Duplicate"),NODE_DUPLICATE);
p->add_item("Duplicate",NODE_DUPLICATE);
p->add_separator();
p->add_item(TTR("Remove (Branch)"),NODE_REMOVE_BRANCH);
p->add_item(TTR("Remove (Element)"),NODE_REMOVE_ELEMENT);
p->add_item("Remove (Branch)",NODE_REMOVE_BRANCH);
p->add_item("Remove (Element)",NODE_REMOVE_ELEMENT);
p->add_separator();
p->add_item(TTR("Edit Subscriptions.."),NODE_CONNECTIONS);
p->add_item(TTR("Edit Groups.."),NODE_GROUPS);
p->add_item("Edit Subscriptions..",NODE_CONNECTIONS);
p->add_item("Edit Groups..",NODE_GROUPS);
resource_menu = memnew( MenuButton );
resource_menu->set_text("Resource");
@ -5543,7 +5544,7 @@ EditorNode::EditorNode() {
p->connect("item_pressed",this,"_menu_option");
tool_menu = memnew( MenuButton );
tool_menu->set_tooltip(TTR("Miscelaneous project or scene wide tools."));
tool_menu->set_tooltip(TTR("Miscellaneous project or scene-wide tools."));
tool_menu->set_text(TTR("Tools"));
//tool_menu->set_icon(gui_base->get_icon("Save","EditorIcons"));
@ -5602,6 +5603,7 @@ EditorNode::EditorNode() {
pause_button->set_disabled(true);
play_hb->add_child(pause_button);
stop_button = memnew( ToolButton );
play_hb->add_child(stop_button);
//stop_button->set_toggle_mode(true);
@ -5636,7 +5638,7 @@ EditorNode::EditorNode() {
play_custom_scene_button->set_focus_mode(Control::FOCUS_NONE);
play_custom_scene_button->set_icon(gui_base->get_icon("PlayCustom","EditorIcons"));
play_custom_scene_button->connect("pressed", this,"_menu_option",make_binds(RUN_PLAY_CUSTOM_SCENE));
play_custom_scene_button->set_tooltip(TTR("Play custom scene (")+keycode_get_string(KEY_MASK_CMD|KEY_MASK_SHIFT|KEY_F5)+").");
play_custom_scene_button->set_tooltip(TTR("Play custom scene")+" ("+keycode_get_string(KEY_MASK_CMD|KEY_MASK_SHIFT|KEY_F5)+").");
debug_button = memnew( MenuButton );
debug_button->set_flat(true);
@ -5645,7 +5647,7 @@ EditorNode::EditorNode() {
debug_button->set_focus_mode(Control::FOCUS_NONE);
debug_button->set_icon(gui_base->get_icon("Remote","EditorIcons"));
//debug_button->connect("pressed", this,"_menu_option",make_binds(RUN_LIVE_DEBUG));
debug_button->set_tooltip(TTR("Debug Options"));
debug_button->set_tooltip(TTR("Debug options"));
p=debug_button->get_popup();
p->add_check_item(TTR("Live Editing"),RUN_LIVE_DEBUG);
@ -5723,9 +5725,9 @@ EditorNode::EditorNode() {
right_menu_hb->add_child( settings_menu );
p=settings_menu->get_popup();
//p->add_item(TTR("Export Settings"),SETTINGS_EXPORT_PREFERENCES);
//p->add_item("Export Settings",SETTINGS_EXPORT_PREFERENCES);
p->add_item(TTR("Editor Settings"),SETTINGS_PREFERENCES);
//p->add_item(TTR("Optimization Presets"),SETTINGS_OPTIMIZED_PRESETS);
//p->add_item("Optimization Presets",SETTINGS_OPTIMIZED_PRESETS);
p->add_separator();
editor_layouts = memnew( PopupMenu );
editor_layouts->set_name("Layouts");
@ -5783,7 +5785,7 @@ EditorNode::EditorNode() {
dock_slot[DOCK_SLOT_LEFT_UR]->add_child(scene_tree_dock);
#if 0
resources_dock = memnew( ResourcesDock(this) );
resources_dock->set_name(TTR("Resources"));
resources_dock->set_name("Resources");
//top_pallete->add_child(resources_dock);
dock_slot[DOCK_SLOT_RIGHT_BL]->add_child(resources_dock);
//top_pallete->set_v_size_flags(Control::SIZE_EXPAND_FILL);
@ -5817,21 +5819,21 @@ EditorNode::EditorNode() {
prop_editor_base->add_child(prop_editor_hb);
resource_new_button = memnew( ToolButton );
resource_new_button->set_tooltip(TTR("Create a new resource in memory and edit it"));
resource_new_button->set_tooltip(TTR("Create a new resource in memory and edit it."));
resource_new_button->set_icon(gui_base->get_icon("New","EditorIcons"));
prop_editor_hb->add_child(resource_new_button);
resource_new_button->connect("pressed",this,"_menu_option",varray(RESOURCE_NEW));
resource_new_button->set_focus_mode(Control::FOCUS_NONE);
resource_load_button = memnew( ToolButton );
resource_load_button->set_tooltip(TTR("Load an existing resource from disk and edit it"));
resource_load_button->set_tooltip(TTR("Load an existing resource from disk and edit it."));
resource_load_button->set_icon(gui_base->get_icon("Load","EditorIcons"));
prop_editor_hb->add_child(resource_load_button);
resource_load_button->connect("pressed",this,"_menu_option",varray(RESOURCE_LOAD));
resource_load_button->set_focus_mode(Control::FOCUS_NONE);
resource_save_button = memnew( MenuButton );
resource_save_button->set_tooltip(TTR("Save the currently edited resource"));
resource_save_button->set_tooltip(TTR("Save the currently edited resource."));
resource_save_button->set_icon(gui_base->get_icon("Save","EditorIcons"));
prop_editor_hb->add_child(resource_save_button);
resource_save_button->get_popup()->add_item(TTR("Save"),RESOURCE_SAVE);
@ -5860,7 +5862,7 @@ EditorNode::EditorNode() {
editor_history_menu = memnew( MenuButton );
editor_history_menu->set_tooltip(TTR("History of recently edited objects"));
editor_history_menu->set_tooltip(TTR("History of recently edited objects."));
editor_history_menu->set_icon( gui_base->get_icon("History","EditorIcons"));
prop_editor_hb->add_child(editor_history_menu);
editor_history_menu->connect("about_to_show",this,"_prepare_history");
@ -5896,7 +5898,7 @@ EditorNode::EditorNode() {
prop_editor_base->add_child(search_bar);
search_bar->hide();
Label *l = memnew( Label(TTR("Search: ")) );
Label *l = memnew( Label(TTR("Search:")+" ") );
search_bar->add_child(l);
search_box = memnew( LineEdit );
@ -6081,7 +6083,7 @@ EditorNode::EditorNode() {
about = memnew( AcceptDialog );
about->set_title(TTR("Thanks so Much!"));
about->set_title(TTR("Thanks from the Godot community!"));
//about->get_cancel()->hide();
about->get_ok()->set_text(TTR("Thanks!"));
about->set_hide_on_ok(true);
@ -6101,7 +6103,7 @@ EditorNode::EditorNode() {
file_templates = memnew( FileDialog );
file_templates->set_title(TTR("Import Templates from ZIP file"));
file_templates->set_title(TTR("Import Templates From ZIP File"));
gui_base->add_child( file_templates );
file_templates->set_mode(FileDialog::MODE_OPEN_FILE);
@ -6396,7 +6398,7 @@ EditorNode::EditorNode() {
EditorNode::~EditorNode() {
memdelete( EditorHelp::get_doc_data() );
memdelete(editor_selection);
memdelete(editor_plugins_over);
@ -6462,6 +6464,6 @@ EditorPluginList::EditorPluginList() {
EditorPluginList::~EditorPluginList() {
}

View file

@ -451,7 +451,7 @@ private:
void _display_top_editors(bool p_display);
void _set_top_editors(Vector<EditorPlugin*> p_editor_plugins_over);
void _set_editing_top_editors(Object * p_current_object);
void _quick_opened();
void _quick_run();
@ -748,7 +748,7 @@ public:
EditorPluginList();
~EditorPluginList();
} ;
} ;
struct EditorProgressBG {

View file

@ -32,7 +32,7 @@
void EditorReImportDialog::popup_reimport() {
if (EditorFileSystem::get_singleton()->is_scanning()) {
error->set_text(TTR("Please wait for scan to complete"));
error->set_text(TTR("Please wait for scan to complete."));
error->popup_centered_minsize();
return;
}
@ -92,7 +92,7 @@ void EditorReImportDialog::popup_reimport() {
void EditorReImportDialog::ok_pressed() {
if (EditorFileSystem::get_singleton()->is_scanning()) {
error->set_text(TTR("Please wait for scan to complete"));
error->set_text(TTR("Please wait for scan to complete."));
error->popup_centered_minsize();
return;
}

View file

@ -9,12 +9,12 @@
void EditorScript::add_root_node(Node *p_node) {
if (!editor) {
EditorNode::add_io_error(TTR("EditorScript::add_root_node : Write your logic in the _run() method."));
EditorNode::add_io_error("EditorScript::add_root_node: "+TTR("Write your logic in the _run() method."));
return;
}
if (editor->get_edited_scene()) {
EditorNode::add_io_error(TTR("EditorScript::add_root_node : There is an edited scene already."));
EditorNode::add_io_error("EditorScript::add_root_node: "+TTR("There is an edited scene already."));
return;
}
@ -24,7 +24,7 @@ void EditorScript::add_root_node(Node *p_node) {
Node *EditorScript::get_scene() {
if (!editor) {
EditorNode::add_io_error(TTR("EditorScript::get_scene : Write your logic in the _run() method."));
EditorNode::add_io_error("EditorScript::get_scene: "+TTR("Write your logic in the _run() method."));
return NULL;
}
@ -36,7 +36,7 @@ void EditorScript::_run() {
Ref<Script> s = get_script();
ERR_FAIL_COND(!s.is_valid());
if (!get_script_instance()) {
EditorNode::add_io_error("Couldn't instance script:\n "+s->get_path()+"\nDid you forget the 'tool' keyword?");
EditorNode::add_io_error(TTR("Couldn't instance script:")+"\n "+s->get_path()+"\n"+TTR("Did you forget the 'tool' keyword?"));
return;
}
@ -46,7 +46,7 @@ void EditorScript::_run() {
get_script_instance()->call("_run",NULL,0,ce);
if (ce.error!=Variant::CallError::CALL_OK) {
EditorNode::add_io_error("Couldn't run script:\n "+s->get_path()+"\nDid you forget the '_run' method?");
EditorNode::add_io_error(TTR("Couldn't run script:")+"\n "+s->get_path()+"\n"+TTR("Did you forget the '_run' method?"));
}
}

View file

@ -263,7 +263,7 @@ void EditorSettings::create() {
memdelete(dir);
singleton = ResourceLoader::load(config_file_path,TTR("EditorSettings"));
singleton = ResourceLoader::load(config_file_path,"EditorSettings");
if (singleton.is_null()) {
WARN_PRINT("Could not open config file.");
goto fail;
@ -464,7 +464,7 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
set("2d_editor/bone_color2",Color(0.75,0.75,0.75,0.9));
set("2d_editor/bone_selected_color",Color(0.9,0.45,0.45,0.9));
set("2d_editor/bone_ik_color",Color(0.9,0.9,0.45,0.9));
set("2d_editor/keep_margins_when_changing_anchors", false);
set("game_window_placement/rect",0);
@ -505,7 +505,8 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {
#else
hints["import/pvrtc_texture_tool"]=PropertyInfo(Variant::STRING,"import/pvrtc_texture_tool",PROPERTY_HINT_GLOBAL_FILE,"");
#endif
set(TTR("PVRTC/fast_conversion"),false);
// TODO: Rename to "import/pvrtc_fast_conversion" to match other names?
set("PVRTC/fast_conversion",false);
set("run/auto_save_before_running",true);

View file

@ -198,7 +198,7 @@ EditorSubScene::EditorSubScene() {
scene=NULL;
set_title(TTR("Select Sub-Scene.."));
set_title(TTR("Select Node(s) to Import"));
set_hide_on_ok(false);
VBoxContainer *vb = memnew( VBoxContainer );

View file

@ -278,7 +278,7 @@ ImportSettingsDialog::ImportSettingsDialog(EditorNode *p_editor) {
set_child_rect(tree);
set_title(TTR("Imported Resources"));
texformat=TTR("Keep,None,Disk,VRAM");
// texformat="Keep,None,Disk,VRAM";
tree->set_hide_root(true);
tree->set_columns(2);
@ -288,7 +288,7 @@ ImportSettingsDialog::ImportSettingsDialog(EditorNode *p_editor) {
tree->connect("item_edited",this,"_item_edited");
tree->connect("button_pressed",this,"_button_pressed");
// add_button(TTR("Re-Import"),"reimport");
// add_button("Re-Import","reimport");
get_ok()->set_text(TTR("Re-Import"));
get_cancel()->set_text(TTR("Close"));

View file

@ -527,7 +527,7 @@ class EditorFontImportDialog : public ConfirmationDialog {
Ref<ResourceImportMetadata> rimd = get_rimd();
if (rimd.is_null()) {
error_dialog->set_text(TTR("Can't load/process source font"));
error_dialog->set_text(TTR("Can't load/process source font."));
error_dialog->popup_centered(Size2(200,100));
return;
}
@ -657,14 +657,14 @@ public:
testhb->add_child(test_color);
vbl->add_spacer();
vbl->add_margin_child(TTR("Test: "),testhb);
vbl->add_margin_child(TTR("Test:")+" ",testhb);
/*
HBoxContainer *upd_hb = memnew( HBoxContainer );
// vbl->add_child(upd_hb);
upd_hb->add_spacer();
Button *update = memnew( Button);
upd_hb->add_child(update);
update->set_text(TTR("Update"));
update->set_text("Update");
update->connect("pressed",this,"_update");
*/
options = memnew( _EditorFontImportOptions );
@ -887,7 +887,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if (src_path.extension().to_lower()=="fnt") {
if (ResourceLoader::load(src_path).is_valid()) {
EditorNode::get_singleton()->show_warning(TTR("Path: ")+src_path+"\nIs a Godot font file, please supply a BMFont type file instead.");
EditorNode::get_singleton()->show_warning(TTR("Path:")+" "+src_path+"\n"+TTR("This file is already a Godot font file, please supply a BMFont type file instead."));
return Ref<BitmapFont>();
}
@ -895,7 +895,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
font.instance();
Error err = font->create_from_fnt(src_path);
if (err) {
EditorNode::get_singleton()->show_warning(TTR("Path: ")+src_path+"\nFailed opening as BMFont file.");
EditorNode::get_singleton()->show_warning(TTR("Path:")+" "+src_path+"\n"+TTR("Failed opening as BMFont file."));
return Ref<BitmapFont>();
}
@ -939,7 +939,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if ( error ) {
FT_Done_FreeType( library );
ERR_EXPLAIN(TTR("Invalid font size. "));
ERR_EXPLAIN(TTR("Invalid font size."));
ERR_FAIL_COND_V( error,Ref<BitmapFont>() );
}
@ -986,7 +986,7 @@ Ref<BitmapFont> EditorFontImportPlugin::generate_font(const Ref<ResourceImportMe
if ( !fa ) {
FT_Done_FreeType( library );
ERR_EXPLAIN(TTR("Invalid font custom source. "));
ERR_EXPLAIN(TTR("Invalid font custom source."));
ERR_FAIL_COND_V( !fa,Ref<BitmapFont>() );
}

View file

@ -207,6 +207,13 @@ public:
return;
}
String dst = save_path->get_text();
if (dst=="") {
error_dialog->set_text(TTR("Save path is empty!"));
error_dialog->popup_centered_minsize();
return;
}
for(int i=0;i<meshes.size();i++) {
Ref<ResourceImportMetadata> imd = memnew( ResourceImportMetadata );
@ -224,16 +231,9 @@ public:
imd->add_source(EditorImportPlugin::validate_source_path(meshes[i]));
String dst = save_path->get_text();
if (dst=="") {
error_dialog->set_text(TTR("Save path is empty!"));
error_dialog->popup_centered_minsize();
return;
}
String file_path = dst.plus_file(meshes[i].get_file().basename()+".msh");
dst = dst.plus_file(meshes[i].get_file().basename()+".msh");
plugin->import(dst,imd);
plugin->import(file_path,imd);
}
hide();
@ -362,7 +362,7 @@ Error EditorMeshImportPlugin::import(const String& p_path, const Ref<ResourceImp
if (mesh->surface_get_name(i)!="")
name=mesh->surface_get_name(i);
else
name=TTR("Surface ")+itos(i+1);
name=vformat(TTR("Surface %d"),i+1);
name_map[name]=mesh->surface_get_material(i);
}
@ -498,7 +498,7 @@ Error EditorMeshImportPlugin::import(const String& p_path, const Ref<ResourceImp
surf_tool->index();
mesh = surf_tool->commit(mesh);
if (name=="")
name=TTR("Surface ")+itos(mesh->get_surface_count()-1);
name=vformat(TTR("Surface %d"),mesh->get_surface_count()-1);
mesh->surface_set_name(mesh->get_surface_count()-1,name);
name="";
surf_tool->clear();

View file

@ -262,7 +262,7 @@ public:
}
if (!save_path->get_text().begins_with("res://")) {
error_dialog->set_text(TTR("Target path must be full resource path."));
error_dialog->set_text(TTR("Target path must be a complete resource path."));
error_dialog->popup_centered_minsize();
return;
}
@ -406,7 +406,7 @@ String EditorSampleImportPlugin::get_name() const {
}
String EditorSampleImportPlugin::get_visible_name() const{
return TTR("Audio Sample");
return "Audio Sample";
}
void EditorSampleImportPlugin::import_dialog(const String& p_from){

View file

@ -686,7 +686,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
}
if (!save_path->get_text().begins_with("res://")) {
error_dialog->set_text(TTR("Target path must be full resource path."));
error_dialog->set_text(TTR("Target path must be a complete resource path."));
error_dialog->popup_centered_minsize();
return;
}
@ -721,7 +721,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (script_path->get_text()!="") {
Ref<Script> scr = ResourceLoader::load(script_path->get_text());
if (!scr.is_valid()) {
error_dialog->set_text(TTR("Couldn't load Post-Import Script."));
error_dialog->set_text(TTR("Couldn't load post-import script."));
error_dialog->popup_centered(Size2(200,100));
return;
}
@ -730,7 +730,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
pi->set_script(scr.get_ref_ptr());
if (!pi->get_script_instance()) {
error_dialog->set_text(TTR("Invalid/Broken Script for Post-Import."));
error_dialog->set_text(TTR("Invalid/broken script for post-import."));
error_dialog->popup_centered(Size2(200,100));
return;
}
@ -816,7 +816,7 @@ void EditorSceneImportDialog::_import(bool p_and_open) {
if (err) {
error_dialog->set_text(TTR("Error importing scene."));
error_dialog->set_text("Error importing scene.");
error_dialog->popup_centered(Size2(200,100));
return;
}
@ -1164,14 +1164,14 @@ EditorSceneImportDialog::EditorSceneImportDialog(EditorNode *p_editor, EditorSce
this_import = memnew( OptionButton );
this_import->add_item(TTR("Overwrite Existing Scene"));
this_import->add_item("Overwrite Existing, Keep Materials");
this_import->add_item(TTR("Overwrite Existing, Keep Materials"));
this_import->add_item(TTR("Keep Existing, Merge with New"));
this_import->add_item(TTR("Keep Existing, Ignore New"));
vbc->add_margin_child(TTR("This Time:"),this_import);
next_import = memnew( OptionButton );
next_import->add_item(TTR("Overwrite Existing Scene"));
next_import->add_item("Overwrite Existing, Keep Materials");
next_import->add_item(TTR("Overwrite Existing, Keep Materials"));
next_import->add_item(TTR("Keep Existing, Merge with New"));
next_import->add_item(TTR("Keep Existing, Ignore New"));
vbc->add_margin_child(TTR("Next Time:"),next_import);
@ -2735,13 +2735,13 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
post_import_script_path = post_import_script_path;
Ref<Script> scr = ResourceLoader::load(post_import_script_path);
if (!scr.is_valid()) {
EditorNode::add_io_error(TTR("Couldn't load post-import script: '")+post_import_script_path);
EditorNode::add_io_error(TTR("Couldn't load post-import script:")+" "+post_import_script_path);
} else {
post_import_script = Ref<EditorScenePostImport>( memnew( EditorScenePostImport ) );
post_import_script->set_script(scr.get_ref_ptr());
if (!post_import_script->get_script_instance()) {
EditorNode::add_io_error(TTR("Invalid/Broken Script for Post-Import: '")+post_import_script_path);
EditorNode::add_io_error(TTR("Invalid/broken script for post-import:")+" "+post_import_script_path);
post_import_script.unref();
}
}
@ -2751,7 +2751,7 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
if (post_import_script.is_valid()) {
scene = post_import_script->post_import(scene);
if (!scene) {
EditorNode::add_io_error(TTR("Error running Post-Import script: '")+post_import_script_path);
EditorNode::add_io_error(TTR("Error running post-import script:")+" "+post_import_script_path);
return err;
}
@ -2780,18 +2780,18 @@ Error EditorSceneImportPlugin::import2(Node *scene, const String& p_dest_path, c
String path = texture->get_path();
String fname= path.get_file();
String target_path = Globals::get_singleton()->localize_path(target_res_path.plus_file(fname));
progress.step(TTR("Import Img: ")+fname,3+(idx)*100/imagemap.size());
progress.step(TTR("Import Image:")+" "+fname,3+(idx)*100/imagemap.size());
idx++;
if (path==target_path) {
EditorNode::add_io_error(TTR("Can't import a file over itself: '")+target_path);
EditorNode::add_io_error(TTR("Can't import a file over itself:")+" "+target_path);
continue;
}
if (!target_path.begins_with("res://")) {
EditorNode::add_io_error(TTR("Couldn't localize path: '")+target_path+"' (already local)");
EditorNode::add_io_error(vformat(TTR("Couldn't localize path: %s (already local)"),target_path));
continue;
}

View file

@ -507,15 +507,15 @@ void EditorSceneImporterFBXConv::_parse_materials(State& state) {
if (tex.is_valid() && texture.has("type")) {
String type=texture["type"];
if (type==TTR("DIFFUSE"))
if (type=="DIFFUSE")
mat->set_texture(FixedMaterial::PARAM_DIFFUSE,tex);
else if (type==TTR("SPECULAR"))
else if (type=="SPECULAR")
mat->set_texture(FixedMaterial::PARAM_SPECULAR,tex);
else if (type==TTR("SHININESS"))
else if (type=="SHININESS")
mat->set_texture(FixedMaterial::PARAM_SPECULAR_EXP,tex);
else if (type=="NORMAL")
mat->set_texture(FixedMaterial::PARAM_NORMAL,tex);
else if (type==TTR("EMISSIVE"))
else if (type=="EMISSIVE")
mat->set_texture(FixedMaterial::PARAM_EMISSION,tex);
}
@ -570,13 +570,13 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
exists[Mesh::ARRAY_COLOR]=true;
ofs[Mesh::ARRAY_COLOR]=stride;
stride+=4;
} else if (attr==TTR("COLORPACKED")) {
} else if (attr=="COLORPACKED") {
stride+=1; //ignore
} else if (attr==TTR("TANGENT")) {
} else if (attr=="TANGENT") {
exists[Mesh::ARRAY_TANGENT]=true;
ofs[Mesh::ARRAY_TANGENT]=stride;
stride+=3;
} else if (attr==TTR("BINORMAL")) {
} else if (attr=="BINORMAL") {
binormal_ofs=stride;
stride+=3;
} else if (attr=="TEXCOORD0") {
@ -587,10 +587,10 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
exists[Mesh::ARRAY_TEX_UV2]=true;
ofs[Mesh::ARRAY_TEX_UV2]=stride;
stride+=2;
} else if (attr.begins_with(TTR("TEXCOORD"))) {
} else if (attr.begins_with("TEXCOORD")) {
stride+=2;
} else if (attr.begins_with(TTR("BLENDWEIGHT"))) {
int idx=attr.replace(TTR("BLENDWEIGHT"),"").to_int();
} else if (attr.begins_with("BLENDWEIGHT")) {
int idx=attr.replace("BLENDWEIGHT","").to_int();
if (idx==0) {
exists[Mesh::ARRAY_BONES]=true;
ofs[Mesh::ARRAY_BONES]=stride;
@ -799,13 +799,13 @@ void EditorSceneImporterFBXConv::_parse_surfaces(State& state) {
if (part.has("type")) {
String type=part["type"];
if (type==TTR("LINES"))
if (type=="LINES")
pt=Mesh::PRIMITIVE_LINES;
else if (type==TTR("POINTS"))
else if (type=="POINTS")
pt=Mesh::PRIMITIVE_POINTS;
else if (type==TTR("TRIANGLE_STRIP"))
else if (type=="TRIANGLE_STRIP")
pt=Mesh::PRIMITIVE_TRIANGLE_STRIP;
else if (type==TTR("LINE_STRIP"))
else if (type=="LINE_STRIP")
pt=Mesh::PRIMITIVE_LINE_STRIP;
}
@ -1056,7 +1056,7 @@ Error EditorSceneImporterFBXConv::_parse_fbx(State& state,const String& p_path)
}
args.push_back("-o");
args.push_back(TTR("G3DJ"));
args.push_back("G3DJ");
args.push_back(path);
int res;

View file

@ -53,17 +53,17 @@ static const char *flag_names[]={
#if 0 // not used
static const char *flag_short_names[]={
TTR("Stream"),
TTR("FixBorder"),
TTR("AlphBit"),
TTR("ExtComp"),
TTR("NoMipMap"),
TTR("Repeat"),
TTR("Filter"),
TTR("PMAlpha"),
TTR("ToLinear"),
TTR("ToRG"),
TTR("Anisoropic"),
"Stream",
"FixBorder",
"AlphBit",
"ExtComp",
"NoMipMap",
"Repeat",
"Filter",
"PMAlpha",
"ToLinear",
"ToRG",
"Anisoropic",
NULL
};
#endif
@ -343,7 +343,7 @@ void EditorTextureImportDialog::_import() {
}
if (!save_path->get_text().begins_with("res://")) {
error_dialog->set_text(TTR("Target path must be full resource path."));
error_dialog->set_text(TTR("Target path must be a complete resource path."));
error_dialog->popup_centered_minsize();
return;
}
@ -382,7 +382,7 @@ void EditorTextureImportDialog::_import() {
Error err = plugin->import(dst_file,imd);
if (err) {
error_dialog->set_text(TTR("Error importing: ")+dst_file.get_file());
error_dialog->set_text(TTR("Error importing:")+" "+dst_file.get_file());
error_dialog->popup_centered(Size2(200,100));
return;
@ -391,7 +391,7 @@ void EditorTextureImportDialog::_import() {
if (files.size()!=1) {
error_dialog->set_text(TTR("Only one file is required for large texture"));
error_dialog->set_text(TTR("Only one file is required for large texture."));
error_dialog->popup_centered(Size2(200,100));
return;
@ -414,7 +414,7 @@ void EditorTextureImportDialog::_import() {
Error err = plugin->import(dst_file,imd);
if (err) {
error_dialog->set_text(TTR("Error importing: ")+dst_file.get_file());
error_dialog->set_text(TTR("Error importing:")+" "+dst_file.get_file());
error_dialog->popup_centered(Size2(200,100));
return;
@ -438,7 +438,7 @@ void EditorTextureImportDialog::_import() {
Error err = plugin->import(dst_file,imd);
if (err) {
error_dialog->set_text(TTR("Error importing: ")+dst_file.get_file());
error_dialog->set_text(TTR("Error importing:")+" "+dst_file.get_file());
error_dialog->popup_centered(Size2(200,100));
return;
@ -499,7 +499,7 @@ void EditorTextureImportDialog::_notification(int p_what) {
List<String> extensions;
ImageLoader::get_recognized_extensions(&extensions);
// ResourceLoader::get_recognized_extensions_for_type(TTR("PackedTexture"),&extensions);
// ResourceLoader::get_recognized_extensions_for_type("PackedTexture",&extensions);
file_select->clear_filters();
for(int i=0;i<extensions.size();i++) {
@ -579,7 +579,7 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
if (p_atlas) {
size->set_val(2048);
vbc->add_margin_child(TTR("Max Texture size:"),size);
vbc->add_margin_child(TTR("Max Texture Size:"),size);
} else {
size->set_val(256);
vbc->add_margin_child(TTR("Cell Size:"),size);
@ -612,9 +612,9 @@ EditorTextureImportDialog::EditorTextureImportDialog(EditorTextureImportPlugin*
save_file_select->set_mode(EditorFileDialog::MODE_SAVE_FILE);
save_file_select->clear_filters();
if (large)
save_file_select->add_filter("*.ltex;Large Texture");
save_file_select->add_filter("*.ltex;"+TTR("Large Texture"));
else
save_file_select->add_filter("*.tex;Base Atlas Texture");
save_file_select->add_filter("*.tex;"+TTR("Base Atlas Texture"));
save_file_select->connect("file_selected", this,"_choose_save_dir");
save_select = memnew( EditorDirDialog );
@ -1057,7 +1057,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
err = ResourceSaver::save(p_path,existing);
if (err!=OK) {
EditorNode::add_io_error(TTR("Couldn't save large texture: ")+p_path);
EditorNode::add_io_error(TTR("Couldn't save large texture:")+" "+p_path);
return err;
}
@ -1072,7 +1072,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
bool alpha=false;
bool crop = from->get_option("crop");
EditorProgress ep("make_atlas",TTR("Build Atlas For: ")+p_path.get_file(),from->get_source_count()+3);
EditorProgress ep("make_atlas",TTR("Build Atlas For:")+" "+p_path.get_file(),from->get_source_count()+3);
print_line("sources: "+itos(from->get_source_count()));
@ -1081,12 +1081,12 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
String path = EditorImportPlugin::expand_source_path(from->get_source_path(i));
String md5 = FileAccess::get_md5(path);
from->set_source_md5(i,FileAccess::get_md5(path));
ep.step(TTR("Loading Image: ")+path,i);
ep.step(TTR("Loading Image:")+" "+path,i);
print_line("source path: "+path+" md5 "+md5);
Image src;
Error err = ImageLoader::load_image(path,&src);
if (err) {
EditorNode::add_io_error(TTR("Couldn't load image: ")+path);
EditorNode::add_io_error(TTR("Couldn't load image:")+" "+path);
return err;
}
@ -1176,7 +1176,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
Size2i dst_size;
EditorAtlas::fit(src_sizes,dst_positions,dst_size);
print_line("size that workeD: "+itos(dst_size.width)+","+itos(dst_size.height));
print_line("size that worked: "+itos(dst_size.width)+","+itos(dst_size.height));
ep.step(TTR("Blitting Images"),sources.size()+2);
@ -1291,7 +1291,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
atlases[i]->set_atlas(texture);
Error err = ResourceSaver::save(apath,atlases[i]);
if (err) {
EditorNode::add_io_error(TTR("Couldn't save atlas image: ")+apath);
EditorNode::add_io_error(TTR("Couldn't save atlas image:")+" "+apath);
return err;
}
//from->set_source_md5(i,FileAccess::get_md5(apath));
@ -1433,7 +1433,7 @@ Error EditorTextureImportPlugin::import2(const String& p_path, const Ref<Resourc
Error err = ResourceSaver::save(p_path,texture,save_flags);
if (err!=OK) {
EditorNode::add_io_error(TTR("Couldn't save converted texture: ")+p_path);
EditorNode::add_io_error(TTR("Couldn't save converted texture:")+" "+p_path);
return err;
}

View file

@ -236,7 +236,7 @@ public:
}
if (!save_path->get_text().begins_with("res://")) {
error_dialog->set_text(TTR("No target path!!"));
error_dialog->set_text(TTR("No target path!"));
error_dialog->popup_centered(Size2(200,100));
}
@ -258,7 +258,7 @@ public:
String savefile = save_path->get_text().plus_file(import_path->get_text().get_file().basename()+"."+locale+".xl");
Error err = plugin->import(savefile,imd);
if (err!=OK) {
error_dialog->set_text(TTR("Couldnt import!"));
error_dialog->set_text(TTR("Couldn't import!"));
error_dialog->popup_centered(Size2(200,100));
} else if (add_to_project->is_pressed()) {

View file

@ -9,7 +9,7 @@ bool MultiNodeEdit::_set(const StringName& p_name, const Variant& p_value){
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
ur->create_action(TTR("MultiNode Set ")+String(p_name));
ur->create_action(TTR("MultiNode Set")+" "+String(p_name));
for (const List<NodePath>::Element *E=nodes.front();E;E=E->next()) {
if (!es->has_node(E->get()))

View file

@ -496,7 +496,7 @@ void AnimationPlayerEditor::_animation_name_edited() {
}
if (player->has_animation(new_name)) {
error_dialog->set_text(TTR("ERROR: Animation Name Already Exists!"));
error_dialog->set_text(TTR("ERROR: Animation name already exists!"));
error_dialog->popup_centered_minsize();
return;
}
@ -1022,7 +1022,7 @@ void AnimationPlayerEditor::_editor_store() {
return; //already there
undo_redo->create_action(TTR("Store anim in editor"));
undo_redo->create_action("Store anim in editor");
undo_redo->add_do_method(key_editor,"set_animation",anim);
undo_redo->add_undo_method(key_editor,"remove_animation",anim);
undo_redo->commit_action();
@ -1044,7 +1044,7 @@ void AnimationPlayerEditor::_editor_load(){
String base=anim->get_name();
bool noname=false;
if (base=="") {
base=TTR("New Anim");
base="New Anim";
noname=true;
}
@ -1063,7 +1063,7 @@ void AnimationPlayerEditor::_editor_load(){
if (noname)
anim->set_name(base);
undo_redo->create_action(TTR("Add Animation From Editor"));
undo_redo->create_action("Add Animation From Editor");
undo_redo->add_do_method(player,"add_animation",base,anim);
undo_redo->add_undo_method(player,"remove_animation",base);
undo_redo->add_do_method(this,"_animation_player_changed",player);
@ -1298,7 +1298,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
Label * l;
/*l= memnew( Label );
l->set_text(TTR("Animation Player:"));
l->set_text("Animation Player:");
add_child(l);*/
HBoxContainer *hb = memnew( HBoxContainer );
@ -1306,11 +1306,11 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
play_bw_from = memnew( ToolButton );
play_bw_from->set_tooltip(TTR("Play backwards selected animation from current pos. (A)"));
play_bw_from->set_tooltip(TTR("Play selected animation backwards from current pos. (A)"));
hb->add_child(play_bw_from);
play_bw = memnew( ToolButton );
play_bw->set_tooltip(TTR("Play backwards selected animation from end. (Shift+A)"));
play_bw->set_tooltip(TTR("Play selected animation backwards from end. (Shift+A)"));
hb->add_child(play_bw);
stop = memnew( ToolButton );
@ -1391,7 +1391,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
autoplay = memnew( ToolButton );
hb->add_child(autoplay);
autoplay->set_tooltip(TTR("Autoplay On Load"));
autoplay->set_tooltip(TTR("Autoplay on Load"));
@ -1405,7 +1405,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
tool_anim->get_popup()->add_item(TTR("Copy Animation"),TOOL_COPY_ANIM);
tool_anim->get_popup()->add_item(TTR("Paste Animation"),TOOL_PASTE_ANIM);
//tool_anim->get_popup()->add_separator();
//tool_anim->get_popup()->add_item(TTR("Edit Anim Resource"),TOOL_PASTE_ANIM);
//tool_anim->get_popup()->add_item("Edit Anim Resource",TOOL_PASTE_ANIM);
hb->add_child(tool_anim);
nodename = memnew( Button );
@ -1444,7 +1444,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
error_dialog = memnew( ConfirmationDialog );
error_dialog->get_ok()->set_text(TTR("Close"));
//error_dialog->get_cancel()->set_text(TTR("Close"));
//error_dialog->get_cancel()->set_text("Close");
error_dialog->set_text(TTR("Error!"));
add_child(error_dialog);
@ -1459,7 +1459,7 @@ AnimationPlayerEditor::AnimationPlayerEditor(EditorNode *p_editor) {
blend_editor.dialog->set_child_rect(blend_vb);
blend_editor.tree = memnew( Tree );
blend_editor.tree->set_columns(2);
blend_vb->add_margin_child(TTR("Blend Times: "),blend_editor.tree,true);
blend_vb->add_margin_child(TTR("Blend Times:"),blend_editor.tree,true);
blend_editor.next = memnew( OptionButton );
blend_vb->add_margin_child(TTR("Next (Auto Queue):"),blend_editor.next);
blend_editor.dialog->set_title(TTR("Cross-Animation Blend Times"));

View file

@ -203,7 +203,7 @@ public:
virtual Dictionary get_state() const { return anim_editor->get_state(); }
virtual void set_state(const Dictionary& p_state) { anim_editor->set_state(p_state); }
virtual String get_name() const { return TTR("Anim"); }
virtual String get_name() const { return "Anim"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;

View file

@ -990,12 +990,12 @@ void AnimationTreeEditor::_notification(int p_what) {
case AnimationTreePlayer::CONNECT_OK: {
Ref<Font> f = get_font("font","Label");
f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation Tree is Valid."),Color(0,1,0.6,0.8));
f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation tree is valid."),Color(0,1,0.6,0.8));
} break;
default: {
Ref<Font> f = get_font("font","Label");
f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation Tree is Invalid."),Color(1,0.6,0.0,0.8));
f->draw(get_canvas_item(),Point2(5,25+f->get_ascent()),TTR("Animation tree is invalid."),Color(1,0.6,0.0,0.8));
} break;
}
@ -1369,7 +1369,7 @@ AnimationTreeEditor::AnimationTreeEditor() {
p->add_item(TTR("TimeSeek Node"),AnimationTreePlayer::NODE_TIMESEEK);
p->add_item(TTR("Transition Node"),AnimationTreePlayer::NODE_TRANSITION);
p->add_separator();
p->add_item(TTR("Import Animations..."), MENU_IMPORT_ANIMATIONS); // wtf
p->add_item(TTR("Import Animations.."), MENU_IMPORT_ANIMATIONS); // wtf
p->add_separator();
p->add_item(TTR("Clear"),MENU_GRAPH_CLEAR);
@ -1524,7 +1524,7 @@ AnimationTreeEditorPlugin::AnimationTreeEditorPlugin(EditorNode *p_node) {
anim_tree_editor = memnew( AnimationTreeEditor );
anim_tree_editor->set_custom_minimum_size(Size2(0,300));
button=editor->add_bottom_panel_item(TTR("AnimationTree"),anim_tree_editor);
button=editor->add_bottom_panel_item("AnimationTree",anim_tree_editor);
button->hide();

View file

@ -180,7 +180,7 @@ class AnimationTreeEditorPlugin : public EditorPlugin {
public:
virtual String get_name() const { return TTR("AnimTree"); }
virtual String get_name() const { return "AnimTree"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;

View file

@ -728,14 +728,14 @@ void BakedLightBaker::_make_octree() {
for(int i=0;i<8;i++)
root->children[i]=0;
EditorProgress ep("bake_octree",TTR("Parsing ")+itos(triangles.size())+" Triangles:",triangles.size());
EditorProgress ep("bake_octree",vformat(TTR("Parsing %d Triangles:"), triangles.size()),triangles.size());
for(int i=0;i<triangles.size();i++) {
_octree_insert(0,&triangles[i],octree_depth-1);
if ((i%1000)==0) {
ep.step(TTR("Triangle# ")+itos(i),i);
ep.step(TTR("Triangle #")+itos(i),i);
}
}

View file

@ -1906,7 +1906,7 @@ void CanvasItemEditor::_viewport_draw() {
if (h_scroll->is_visible())
size.height-=h_scroll->get_size().height;
get_stylebox(TTR("EditorFocus"),"EditorStyles")->draw(ci,Rect2(Point2(),size));
get_stylebox("EditorFocus","EditorStyles")->draw(ci,Rect2(Point2(),size));
}
Ref<Texture> lock = get_icon("Lock","EditorIcons");
@ -2229,7 +2229,7 @@ void CanvasItemEditor::_notification(int p_what) {
key_insert_button->set_icon(get_icon("Key","EditorIcons"));
//anchor_menu->add_icon_override(TTR("Align Top Left"));
//anchor_menu->add_icon_override("Align Top Left");
anchor_menu->set_icon(get_icon("Anchor","EditorIcons"));
PopupMenu *p=anchor_menu->get_popup();
@ -3147,7 +3147,7 @@ void CanvasItemEditor::end_drag() {
if (undo_redo) {
undo_redo->create_action(TTR("Edit CanvasItem"));
undo_redo->create_action("Edit CanvasItem");
for(CanvasItemMap::Element *E=canvas_items.front();E;E=E->next()) {
CanvasItem *canvas_item = E->key();
Variant state=canvas_item->edit_get_state();
@ -3285,7 +3285,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(select_button);
select_button->connect("pressed",this,"_tool_select",make_binds(TOOL_SELECT));
select_button->set_pressed(true);
select_button->set_tooltip("Select Mode (Q)\n"+keycode_get_string(KEY_MASK_CMD)+"Drag: Rotate\nAlt+Drag: Move\nPress 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).\nAlt+RMB: Depth list selection");
select_button->set_tooltip(TTR("Select Mode (Q)")+"\n"+keycode_get_string(KEY_MASK_CMD)+TTR("Drag: Rotate")+"\n"+TTR("Alt+Drag: Move")+"\n"+TTR("Press 'v' to Change Pivot, 'Shift+v' to Drag Pivot (while moving).")+"\n"+TTR("Alt+RMB: Depth list selection"));
move_button = memnew( ToolButton );
@ -3306,13 +3306,13 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
list_select_button->set_toggle_mode(true);
hb->add_child(list_select_button);
list_select_button->connect("pressed",this,"_tool_select",make_binds(TOOL_LIST_SELECT));
list_select_button->set_tooltip("Show a list of all objects at the position clicked\n(same as Alt+RMB in selet mode).");
list_select_button->set_tooltip(TTR("Show a list of all objects at the position clicked\n(same as Alt+RMB in select mode)."));
pivot_button = memnew( ToolButton );
pivot_button->set_toggle_mode(true);
hb->add_child(pivot_button);
pivot_button->connect("pressed",this,"_tool_select",make_binds(TOOL_EDIT_PIVOT));
pivot_button->set_tooltip(TTR("Click to change object's rotation pivot"));
pivot_button->set_tooltip(TTR("Click to change object's rotation pivot."));
pan_button = memnew( ToolButton );
pan_button->set_toggle_mode(true);
@ -3326,7 +3326,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
hb->add_child(lock_button);
lock_button->connect("pressed",this,"_popup_callback",varray(LOCK_SELECTED));
lock_button->set_tooltip("Lock the selected object in-place (can't be moved).");
lock_button->set_tooltip(TTR("Lock the selected object in place (can't be moved)."));
unlock_button = memnew( ToolButton );
hb->add_child(unlock_button);
@ -3336,12 +3336,12 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
group_button = memnew( ToolButton );
hb->add_child(group_button);
group_button->connect("pressed",this,"_popup_callback",varray(GROUP_SELECTED));
group_button->set_tooltip("Makes sure the object's' children are not selectable.");
group_button->set_tooltip(TTR("Makes sure the object's children are not selectable."));
ungroup_button = memnew( ToolButton );
hb->add_child(ungroup_button);
ungroup_button->connect("pressed",this,"_popup_callback",varray(UNGROUP_SELECTED));
ungroup_button->set_tooltip("Restores the object's' children ability to be selected.");
ungroup_button->set_tooltip(TTR("Restores the object's children's ability to be selected."));
hb->add_child(memnew(VSeparator));
@ -3375,10 +3375,10 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
/*
p->add_item(TTR("Align Horizontal"),ALIGN_HORIZONTAL);
p->add_item(TTR("Align Vertical"),ALIGN_VERTICAL);
p->add_item(TTR("Space Horizontal"),SPACE_HORIZONTAL);
p->add_item(TTR("Space Vertical"),SPACE_VERTICAL);*/
p->add_item("Align Horizontal",ALIGN_HORIZONTAL);
p->add_item("Align Vertical",ALIGN_VERTICAL);
p->add_item("Space Horizontal",SPACE_HORIZONTAL);
p->add_item("Space Vertical",SPACE_VERTICAL);*/
view_menu = memnew( MenuButton );
view_menu->set_text(TTR("View"));
@ -3436,7 +3436,7 @@ CanvasItemEditor::CanvasItemEditor(EditorNode *p_editor) {
key_insert_button = memnew( Button );
key_insert_button->set_focus_mode(FOCUS_NONE);
key_insert_button->connect("pressed",this,"_popup_callback",varray(ANIM_INSERT_KEY));
key_insert_button->set_tooltip(TTR("Insert Keys (Insert)"));
key_insert_button->set_tooltip(TTR("Insert Keys (Ins)"));
animation_hb->add_child(key_insert_button);

View file

@ -390,7 +390,7 @@ CollisionPolygon2DEditor::CollisionPolygon2DEditor(EditorNode *p_editor) {
add_child(button_create);
button_create->connect("pressed",this,"_menu_option",varray(MODE_CREATE));
button_create->set_toggle_mode(true);
button_create->set_tooltip(TTR("Create a new polygon from scratch"));
button_create->set_tooltip(TTR("Create a new polygon from scratch."));
button_edit = memnew( ToolButton );
add_child(button_edit);
@ -404,8 +404,8 @@ CollisionPolygon2DEditor::CollisionPolygon2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
options->set_text(TTR("Polygon"));
//options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif

View file

@ -559,8 +559,8 @@ CollisionPolygonEditor::CollisionPolygonEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
options->set_text(TTR("Polygon"));
//options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif

View file

@ -112,7 +112,7 @@ void ControlEditor::_key_move(const Vector2& p_dir, bool p_snap) {
if (p_snap)
motion*=snap_val->get_text().to_double();
undo_redo->create_action(TTR("Edit Control"));
undo_redo->create_action("Edit Control");
for(ControlMap::Element *E=controls.front();E;E=E->next()) {
Control *control = E->key();
undo_redo->add_do_method(control,"set_pos",control->get_pos()+motion);
@ -156,7 +156,7 @@ void ControlEditor::_input_event(InputEvent p_event) {
if (undo_redo) {
undo_redo->create_action(TTR("Edit Control"));
undo_redo->create_action("Edit Control");
for(ControlMap::Element *E=controls.front();E;E=E->next()) {
Control *control = E->key();
undo_redo->add_do_method(control,"set_pos",control->get_pos());
@ -752,17 +752,17 @@ ControlEditor::ControlEditor(EditorNode *p_editor) {
handle_len=10;
popup=memnew( PopupMenu );
popup->add_check_item(TTR("Use Snap"));
popup->add_item(TTR("Configure Snap.."));
popup->add_check_item("Use Snap");
popup->add_item("Configure Snap..");
add_child(popup);
snap_dialog = memnew( ConfirmationDialog );
snap_dialog->get_ok()->hide();
snap_dialog->get_cancel()->set_text(TTR("Close"));
snap_dialog->get_cancel()->set_text("Close");
add_child(snap_dialog);
Label *l = memnew(Label);
l->set_text(TTR("Snap:"));
l->set_text("Snap:");
l->set_pos(Point2(5,5));
snap_dialog->add_child(l);

View file

@ -125,7 +125,7 @@ class ControlEditorPlugin : public EditorPlugin {
public:
virtual String get_name() const { return TTR("GUI"); }
virtual String get_name() const { return "GUI"; }
bool has_main_screen() const { return true; }
virtual void edit(Object *p_object);
virtual bool handles(Object *p_object) const;

View file

@ -256,7 +256,7 @@ void MeshLibraryEditor::_menu_cbk(int p_option) {
if (p.begins_with("/MeshLibrary/item") && p.get_slice_count("/")>=3) {
to_erase = p.get_slice("/",3).to_int();
cd->set_text(TTR("Remove Item ")+itos(to_erase)+"?");
cd->set_text(vformat(TTR("Remove item %d?"),to_erase));
cd->popup_centered(Size2(300,60));
}
} break;

View file

@ -129,7 +129,7 @@ int ItemListOptionButtonPlugin::get_flags() const {
void ItemListOptionButtonPlugin::add_item() {
ob->add_item( TTR("Item ")+itos(ob->get_item_count()));
ob->add_item( vformat(TTR("Item %d"),ob->get_item_count()));
_change_notify();
}
@ -171,7 +171,7 @@ int ItemListPopupMenuPlugin::get_flags() const {
void ItemListPopupMenuPlugin::add_item() {
pp->add_item( TTR("Item ")+itos(pp->get_item_count()));
pp->add_item( vformat(TTR("Item %d"),pp->get_item_count()));
_change_notify();
}

View file

@ -421,13 +421,13 @@ LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) {
add_child(button_create);
button_create->connect("pressed",this,"_menu_option",varray(MODE_CREATE));
button_create->set_toggle_mode(true);
button_create->set_tooltip(TTR("Create a new polygon from scratch"));
button_create->set_tooltip(TTR("Create a new polygon from scratch."));
button_edit = memnew( ToolButton );
add_child(button_edit);
button_edit->connect("pressed",this,"_menu_option",varray(MODE_EDIT));
button_edit->set_toggle_mode(true);
button_edit->set_tooltip("Edit existing polygon:\nLMB: Move Point.\nCtrl+LMB: Split Segment.\nRMB: Erase Point.");
button_edit->set_tooltip(TTR("Edit existing polygon:")+"\n"+TTR("LMB: Move Point.")+"\n"+TTR("Ctrl+LMB: Split Segment.")+"\n"+TTR("RMB: Erase Point."));
create_poly = memnew( ConfirmationDialog );
add_child(create_poly);
@ -440,8 +440,8 @@ LightOccluder2DEditor::LightOccluder2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
options->set_text(TTR("Polygon"));
//options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif

View file

@ -73,7 +73,7 @@ void MultiMeshEditor::_populate() {
if (!ms_node) {
err_dialog->set_text(TTR("Mesh source is invalid (Invalid Path)."));
err_dialog->set_text(TTR("Mesh source is invalid (invalid path)."));
err_dialog->popup_centered_minsize();
return;
}
@ -82,7 +82,7 @@ void MultiMeshEditor::_populate() {
if (!ms_instance) {
err_dialog->set_text(TTR("Mesh source is invalid (Not a MeshInstance)."));
err_dialog->set_text(TTR("Mesh source is invalid (not a MeshInstance)."));
err_dialog->popup_centered_minsize();
return;
}
@ -91,7 +91,7 @@ void MultiMeshEditor::_populate() {
if (mesh.is_null()) {
err_dialog->set_text(TTR("Mesh source is invalid (Contains no Mesh resource)."));
err_dialog->set_text(TTR("Mesh source is invalid (contains no Mesh resource)."));
err_dialog->popup_centered_minsize();
return;
}
@ -109,7 +109,7 @@ void MultiMeshEditor::_populate() {
if (!ss_node) {
err_dialog->set_text(TTR("Surface source is invalid (Invalid Path)."));
err_dialog->set_text(TTR("Surface source is invalid (invalid path)."));
err_dialog->popup_centered_minsize();
return;
}
@ -118,7 +118,7 @@ void MultiMeshEditor::_populate() {
if (!ss_instance) {
err_dialog->set_text(TTR("Surface source is invalid (Not Geometry)."));
err_dialog->set_text(TTR("Surface source is invalid (no geometry)."));
err_dialog->popup_centered_minsize();
return;
}
@ -129,7 +129,7 @@ void MultiMeshEditor::_populate() {
if (geometry.size()==0) {
err_dialog->set_text(TTR("Surface source is invalid (No Faces)."));
err_dialog->set_text(TTR("Surface source is invalid (no faces)."));
err_dialog->popup_centered_minsize();
return;
}
@ -153,10 +153,10 @@ void MultiMeshEditor::_populate() {
node->populate_parent(populate_rotate_random->get_val(),populate_tilt_random->get_val(),populate_scale_random->get_val(),populate_scale->get_val());
ERR_EXPLAIN(TTR("Parent is not of type VisualInstance."));
ERR_EXPLAIN("Parent is not of type VisualInstance.");
ERR_FAIL_COND(!get_parent() || !get_parent()->is_type("VisualInstance"));
ERR_EXPLAIN(TTR("Multimesh not present"));
ERR_EXPLAIN("Multimesh not present.");
ERR_FAIL_COND(multimesh.is_null());
VisualInstance *vi = get_parent()->cast_to<VisualInstance>();
@ -184,9 +184,9 @@ void MultiMeshEditor::_populate() {
area_accum+=area;
}
ERR_EXPLAIN(TTR("Couldn't map area"));
ERR_EXPLAIN(TTR("Couldn't map area."));
ERR_FAIL_COND(triangle_area_map.size()==0);
ERR_EXPLAIN(TTR("Couldn't map area"));
ERR_EXPLAIN(TTR("Couldn't map area."));
ERR_FAIL_COND(area_accum==0);

View file

@ -469,13 +469,13 @@ NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) {
add_child(button_create);
button_create->connect("pressed",this,"_menu_option",varray(MODE_CREATE));
button_create->set_toggle_mode(true);
button_create->set_tooltip(TTR("Create a new polygon from scratch"));
button_create->set_tooltip(TTR("Create a new polygon from scratch."));
button_edit = memnew( ToolButton );
add_child(button_edit);
button_edit->connect("pressed",this,"_menu_option",varray(MODE_EDIT));
button_edit->set_toggle_mode(true);
button_edit->set_tooltip("Edit existing polygon:\nLMB: Move Point.\nCtrl+LMB: Split Segment.\nRMB: Erase Point.");
button_edit->set_tooltip(TTR("Edit existing polygon:")+"\n"+TTR("LMB: Move Point.")+"\n"+TTR("Ctrl+LMB: Split Segment.")+"\n"+TTR("RMB: Erase Point."));
create_nav = memnew( ConfirmationDialog );
add_child(create_nav);
create_nav->get_ok()->set_text(TTR("Create"));
@ -487,8 +487,8 @@ NavigationPolygonEditor::NavigationPolygonEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
options->set_text(TTR("Polygon"));
//options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif

View file

@ -66,7 +66,7 @@ void Particles2DEditorPlugin::_file_selected(const String& p_file) {
Image img;
Error err = ImageLoader::load_image(p_file,&img);
ERR_EXPLAIN(TTR("Error loading image: ")+p_file);
ERR_EXPLAIN(TTR("Error loading image:")+" "+p_file);
ERR_FAIL_COND(err!=OK);
img.convert(Image::FORMAT_GRAYSCALE_ALPHA);

View file

@ -249,7 +249,7 @@ void ParticlesEditor::_generate_emission_points() {
if (gcount==0) {
err_dialog->set_text(TTR("No Faces!"));
err_dialog->set_text(TTR("No faces!"));
err_dialog->popup_centered_minsize();
return;
}

View file

@ -622,8 +622,8 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
options->set_text(TTR("Polygon"));
//options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
@ -636,7 +636,7 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
curve_edit->set_icon(CanvasItemEditor::get_singleton()->get_icon("CurveEdit","EditorIcons"));
curve_edit->set_toggle_mode(true);
curve_edit->set_focus_mode(Control::FOCUS_NONE);
curve_edit->set_tooltip("Select Points\nShift+Drag: Select Control Points\n"+keycode_get_string(KEY_MASK_CMD)+"Click: Add Point\nRight Click: Delete Point.");
curve_edit->set_tooltip(TTR("Select Points")+"\n"+TTR("Shift+Drag: Select Control Points")+"\n"+keycode_get_string(KEY_MASK_CMD)+TTR("Click: Add Point")+"\n"+TTR("Right Click: Delete Point"));
curve_edit->connect("pressed",this,"_mode_selected",varray(MODE_EDIT));
base_hb->add_child(curve_edit);
curve_edit_curve = memnew( ToolButton );
@ -650,14 +650,14 @@ Path2DEditor::Path2DEditor(EditorNode *p_editor) {
curve_create->set_icon(CanvasItemEditor::get_singleton()->get_icon("CurveCreate","EditorIcons"));
curve_create->set_toggle_mode(true);
curve_create->set_focus_mode(Control::FOCUS_NONE);
curve_create->set_tooltip("Add Point (in empty space)\nSplit Segment (in curve).");
curve_create->set_tooltip(TTR("Add Point (in empty space)")+"\n"+TTR("Split Segment (in curve)"));
curve_create->connect("pressed",this,"_mode_selected",varray(MODE_CREATE));
base_hb->add_child(curve_create);
curve_del = memnew( ToolButton );
curve_del->set_icon(CanvasItemEditor::get_singleton()->get_icon("CurveDelete","EditorIcons"));
curve_del->set_toggle_mode(true);
curve_del->set_focus_mode(Control::FOCUS_NONE);
curve_del->set_tooltip(TTR("Delete Point."));
curve_del->set_tooltip(TTR("Delete Point"));
curve_del->connect("pressed",this,"_mode_selected",varray(MODE_DELETE));
base_hb->add_child(curve_del);
curve_close = memnew( ToolButton );

View file

@ -546,21 +546,21 @@ PathEditorPlugin::PathEditorPlugin(EditorNode *p_node) {
curve_edit->set_toggle_mode(true);
curve_edit->hide();
curve_edit->set_focus_mode(Control::FOCUS_NONE);
curve_edit->set_tooltip("Select Points\nShift+Drag: Select Control Points\n"+keycode_get_string(KEY_MASK_CMD)+"Click: Add Point\nRight Click: Delete Point.");
curve_edit->set_tooltip(TTR("Select Points")+"\n"+TTR("Shift+Drag: Select Control Points")+"\n"+keycode_get_string(KEY_MASK_CMD)+TTR("Click: Add Point")+"\n"+TTR("Right Click: Delete Point"));
SpatialEditor::get_singleton()->add_control_to_menu_panel(curve_edit);
curve_create = memnew( ToolButton );
curve_create->set_icon(SpatialEditor::get_singleton()->get_icon("CurveCreate","EditorIcons"));
curve_create->set_toggle_mode(true);
curve_create->hide();
curve_create->set_focus_mode(Control::FOCUS_NONE);
curve_create->set_tooltip("Add Point (in empty space)\nSplit Segment (in curve).");
curve_create->set_tooltip(TTR("Add Point (in empty space)")+"\n"+TTR("Split Segment (in curve)"));
SpatialEditor::get_singleton()->add_control_to_menu_panel(curve_create);
curve_del = memnew( ToolButton );
curve_del->set_icon(SpatialEditor::get_singleton()->get_icon("CurveDelete","EditorIcons"));
curve_del->set_toggle_mode(true);
curve_del->hide();
curve_del->set_focus_mode(Control::FOCUS_NONE);
curve_del->set_tooltip(TTR("Delete Point."));
curve_del->set_tooltip(TTR("Delete Point"));
SpatialEditor::get_singleton()->add_control_to_menu_panel(curve_del);
curve_close = memnew( ToolButton );
curve_close->set_icon(SpatialEditor::get_singleton()->get_icon("CurveClose","EditorIcons"));

View file

@ -840,8 +840,8 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
options = memnew( MenuButton );
add_child(options);
options->set_area_as_parent_rect();
options->set_text(TTR("Polygon"));
//options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("Polygon");
//options->get_popup()->add_item("Parse BBCode",PARSE_BBCODE);
options->get_popup()->connect("item_pressed", this,"_menu_option");
#endif
@ -868,7 +868,7 @@ Polygon2DEditor::Polygon2DEditor(EditorNode *p_editor) {
uv_button[i]->set_focus_mode(FOCUS_NONE);
}
uv_button[0]->set_tooltip("Move Point\nCtrl: Rotate\nShift: Move All\n:Shift+Ctrl: Scale");
uv_button[0]->set_tooltip(TTR("Move Point")+"\n"+TTR("Ctrl: Rotate")+"\n"+TTR("Shift: Move All")+"\n"+TTR("Shift+Ctrl: Scale"));
uv_button[1]->set_tooltip(TTR("Move Polygon"));
uv_button[2]->set_tooltip(TTR("Rotate Polygon"));
uv_button[3]->set_tooltip(TTR("Scale Polygon"));

View file

@ -72,7 +72,7 @@ void ResourcePreloaderEditor::_files_load_request(const Vector<String>& p_paths)
if (resource.is_null()) {
dialog->set_text(TTR("ERROR: Couldn't load resource!"));
dialog->set_title(TTR("Error!"));
//dialog->get_cancel()->set_text(TTR("Close"));
//dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@ -169,7 +169,7 @@ void ResourcePreloaderEditor::_paste_pressed() {
if (!r.is_valid()) {
dialog->set_text(TTR("Resource clipboard is empty!"));
dialog->set_title(TTR("Error!"));
//dialog->get_cancel()->set_text(TTR("Close"));
//dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@ -206,11 +206,11 @@ void ResourcePreloaderEditor::_delete_pressed() {
_delete_confirm_pressed(); //it has undo.. why bother with a dialog..
/*
dialog->set_title(TTR("Confirm..."));
dialog->set_text(TTR("Remove Resource '")+tree->get_selected()->get_text(0)+"' ?");
//dialog->get_cancel()->set_text(TTR("Cancel"));
dialog->set_title("Confirm...");
dialog->set_text("Remove Resource '"+tree->get_selected()->get_text(0)+"' ?");
//dialog->get_cancel()->set_text("Cancel");
//dialog->get_ok()->show();
dialog->get_ok()->set_text(TTR("Remove"));
dialog->get_ok()->set_text("Remove");
dialog->popup_centered(Size2(300,60));*/
}

View file

@ -106,8 +106,8 @@ RichTextEditor::RichTextEditor() {
CanvasItemEditor::get_singleton()->add_control_to_menu_panel(options);
options->set_area_as_parent_rect();
options->set_text(TTR("RichText"));
options->get_popup()->add_item(TTR("Parse BBCODE"),PARSE_BBCODE);
options->set_text("RichText");
options->get_popup()->add_item(TTR("Parse BBCode"),PARSE_BBCODE);
options->get_popup()->add_item(TTR("Clear"),CLEAR);
options->get_popup()->connect("item_pressed", this,"_menu_option");

View file

@ -77,7 +77,7 @@ class RichTextEditorPlugin : public EditorPlugin {
public:
virtual String get_name() const { return TTR("RichText"); }
virtual String get_name() const { return "RichText"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;

View file

@ -328,7 +328,7 @@ void SampleEditor::_update_sample() {
return; //bye or unsupported
generate_preview_texture(sample,peakdisplay);
info_label->set_text(TTR("Length: ")+itos(sample->get_length())+" frames ("+String::num(sample->get_length()/(float)sample->get_mix_rate(),2)+" s), "+(sample->get_format()==Sample::FORMAT_PCM16?"16 Bits, ":"8 bits, ")+(sample->is_stereo()?"Stereo.":"Mono."));
info_label->set_text(TTR("Length:")+" "+vformat(TTR("%d frames"), sample->get_length())+" ("+String::num(sample->get_length()/(float)sample->get_mix_rate(),2)+" s), "+(sample->get_format()==Sample::FORMAT_PCM16?TTR("16 Bits"):TTR("8 Bits"))+", "+(sample->is_stereo()?TTR("Stereo"):TTR("Mono"))+".");
library->add_sample("default",sample);
}

View file

@ -76,7 +76,7 @@ void SampleLibraryEditor::_file_load_request(const DVector<String>& p_path) {
if (sample.is_null()) {
dialog->set_text(TTR("ERROR: Couldn't load sample!"));
dialog->set_title(TTR("Error!"));
//dialog->get_cancel()->set_text(TTR("Close"));
//dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@ -248,7 +248,7 @@ void SampleLibraryEditor::_update_library() {
ti->set_cell_mode(2,TreeItem::CELL_MODE_STRING);
ti->set_editable(2,false);
ti->set_selectable(2,false);
ti->set_text(2,String()+/*itos(smp->get_length())+" frames ("+String::num(smp->get_length()/(float)smp->get_mix_rate(),2)+" smp), "+*/(smp->get_format()==Sample::FORMAT_PCM16?"16 Bits, ":(smp->get_format()==Sample::FORMAT_PCM8?"8 bits, ":TTR("IMA-ADPCM,")))+(smp->is_stereo()?"Stereo":"Mono"));
ti->set_text(2,String()+(smp->get_format()==Sample::FORMAT_PCM16?TTR("16 Bits")+", ":(smp->get_format()==Sample::FORMAT_PCM8?TTR("8 Bits")+", ":"IMA-ADPCM,"))+(smp->is_stereo()?TTR("Stereo"):TTR("Mono")));
// Volume dB
ti->set_cell_mode(3,TreeItem::CELL_MODE_RANGE);
@ -457,7 +457,7 @@ SampleLibraryEditor::SampleLibraryEditor() {
tree->set_column_title(1,TTR("Preview"));
tree->set_column_title(2,TTR("Format"));
tree->set_column_title(3,"dB");
tree->set_column_title(4,"Pitch");
tree->set_column_title(4,TTR("Pitch"));
tree->set_column_title(5,"");
tree->set_column_min_width(1,150);

View file

@ -1252,16 +1252,35 @@ void ScriptEditor::_menu_option(int p_option) {
Ref<Script> scr = current->get_edited_script();
if (scr.is_null())
return;
int line = tx->cursor_get_line();
int next_line = line + 1;
int from_line = tx->cursor_get_line();
int to_line = tx->cursor_get_line();
int column = tx->cursor_get_column();
if (line >= tx->get_line_count() - 1)
tx->set_line(line, tx->get_line(line) + "\n");
if (tx->is_selection_active()) {
from_line = tx->get_selection_from_line();
to_line = tx->get_selection_to_line();
column = tx->cursor_get_column();
}
int next_line = to_line + 1;
tx->begin_complex_operation();
for (int i = from_line; i <= to_line; i++) {
if (i >= tx->get_line_count() - 1) {
tx->set_line(i, tx->get_line(i) + "\n");
}
String line_clone = tx->get_line(i);
tx->insert_at(line_clone, next_line);
next_line++;
}
String line_clone = tx->get_line(line);
tx->insert_at(line_clone, next_line);
tx->cursor_set_column(column);
if (tx->is_selection_active()) {
tx->select(to_line + 1, tx->get_selection_from_column(), next_line - 1, tx->get_selection_to_column());
}
tx->end_complex_operation();
tx->update();
} break;
@ -2441,7 +2460,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
#else
edit_menu->get_popup()->add_item(TTR("Complete Symbol"),EDIT_COMPLETE,KEY_MASK_CMD|KEY_SPACE);
#endif
edit_menu->get_popup()->add_item("Trim Trailing Whitespace", EDIT_TRIM_TRAILING_WHITESAPCE, KEY_MASK_CTRL|KEY_MASK_ALT|KEY_T);
edit_menu->get_popup()->add_item(TTR("Trim Trailing Whitespace"), EDIT_TRIM_TRAILING_WHITESAPCE, KEY_MASK_CTRL|KEY_MASK_ALT|KEY_T);
edit_menu->get_popup()->add_item(TTR("Auto Indent"),EDIT_AUTO_INDENT,KEY_MASK_CMD|KEY_I);
edit_menu->get_popup()->connect("item_pressed", this,"_menu_option");
@ -2477,7 +2496,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
debug_menu->get_popup()->add_item(TTR("Break"),DEBUG_BREAK);
debug_menu->get_popup()->add_item(TTR("Continue"),DEBUG_CONTINUE);
debug_menu->get_popup()->add_separator();
//debug_menu->get_popup()->add_check_item(TTR("Show Debugger"),DEBUG_SHOW);
//debug_menu->get_popup()->add_check_item("Show Debugger",DEBUG_SHOW);
debug_menu->get_popup()->add_check_item(TTR("Keep Debugger Open"),DEBUG_SHOW_KEEP_OPEN);
debug_menu->get_popup()->connect("item_pressed", this,"_menu_option");
@ -2523,7 +2542,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
site_search->set_text(TTR("Tutorials"));
site_search->connect("pressed",this,"_menu_option",varray(SEARCH_WEBSITE));
menu_hb->add_child(site_search);
site_search->set_tooltip(TTR("Open http://www.godotengine.org at tutorials section."));
site_search->set_tooltip(TTR("Open https://godotengine.org at tutorials section."));
class_search = memnew( ToolButton );
class_search->set_text(TTR("Classes"));
@ -2581,7 +2600,7 @@ ScriptEditor::ScriptEditor(EditorNode *p_editor) {
disk_changed->set_child_rect(vbc);
Label *dl = memnew( Label );
dl->set_text("The following files are newer on disk.\nWhat action should be taken?:");
dl->set_text(TTR("The following files are newer on disk.\nWhat action should be taken?:"));
vbc->add_child(dl);
disk_changed_list = memnew( Tree );

View file

@ -507,7 +507,7 @@ ShaderEditor::ShaderEditor() {
search_menu->get_popup()->add_item(TTR("Find Next"),SEARCH_FIND_NEXT,KEY_F3);
search_menu->get_popup()->add_item(TTR("Replace.."),SEARCH_REPLACE,KEY_MASK_CMD|KEY_R);
search_menu->get_popup()->add_separator();
// search_menu->get_popup()->add_item(TTR("Locate Symbol.."),SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K);
// search_menu->get_popup()->add_item("Locate Symbol..",SEARCH_LOCATE_SYMBOL,KEY_MASK_CMD|KEY_K);
search_menu->get_popup()->add_item(TTR("Goto Line.."),SEARCH_GOTO_LINE,KEY_MASK_CMD|KEY_G);
search_menu->get_popup()->connect("item_pressed", this,"_menu_option");

View file

@ -743,7 +743,7 @@ void ShaderGraphView::_vec_op_changed(int p_op, int p_id){
void ShaderGraphView::_vec_scalar_op_changed(int p_op, int p_id){
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
ur->create_action(TTR("Change VecxScalar Operator"));
ur->create_action(TTR("Change Vec Scalar Operator"));
ur->add_do_method(graph.ptr(),"vec_scalar_op_node_set_op",type,p_id,p_op);
ur->add_undo_method(graph.ptr(),"vec_scalar_op_node_set_op",type,p_id,graph->vec_scalar_op_node_get_op(type,p_id));
ur->add_do_method(this,"_update_graph");
@ -902,7 +902,7 @@ void ShaderGraphView::_variant_edited() {
break;
}
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
ur->create_action(TTR("Change default value"));
ur->create_action(TTR("Change Default Value"));
ur->add_do_method(graph.ptr(),"default_set_value",type,edited_id,edited_def, v);
ur->add_undo_method(graph.ptr(),"default_set_value",type,edited_id,edited_def, v2);
ur->add_do_method(this,"_update_graph");
@ -1427,7 +1427,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // all inputs (case Shader type dependent)
case ShaderGraph::NODE_SCALAR_CONST: {
gn->set_title(TTR("Scalar"));
gn->set_title("Scalar");
SpinBox *sb = memnew( SpinBox );
sb->set_min(-100000);
sb->set_max(100000);
@ -1440,7 +1440,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; //scalar constant
case ShaderGraph::NODE_VEC_CONST: {
gn->set_title(TTR("Vector"));
gn->set_title("Vector");
Array v3p(true);
for(int i=0;i<3;i++) {
HBoxContainer *hbc = memnew( HBoxContainer );
@ -1469,11 +1469,11 @@ void ShaderGraphView::_create_node(int p_id) {
cpb->connect("color_changed",this,"_rgb_const_changed",varray(p_id));
gn->add_child(cpb);
Label *l = memnew( Label );
l->set_text(TTR("RGB"));
l->set_text("RGB");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
l = memnew( Label );
l->set_text(TTR("Alpha"));
l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@ -1482,7 +1482,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; //rgb constant (shows a color picker instead)
case ShaderGraph::NODE_XFORM_CONST: {
gn->set_title(TTR("XForm"));
gn->set_title("XForm");
ToolButton *edit = memnew( ToolButton );
edit->set_text("edit..");
edit->connect("pressed",this,"_xform_const_changed",varray(p_id,edit));
@ -1492,7 +1492,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 4x4 matrix constant
case ShaderGraph::NODE_TIME: {
gn->set_title(TTR("Time"));
gn->set_title("Time");
Label *l = memnew( Label );
l->set_text("(s)");
l->set_align(Label::ALIGN_RIGHT);
@ -1502,24 +1502,24 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // time in seconds
case ShaderGraph::NODE_SCREEN_TEX: {
gn->set_title(TTR("ScreenTex"));
gn->set_title("ScreenTex");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (!graph->is_slot_connected(type,p_id,0)) {
Vector3 v = graph->default_get_value(type, p_id, 0);
hbc->add_child(make_editor(TTR("UV: ") + v,gn,p_id,0,Variant::VECTOR3));
hbc->add_child(make_editor("UV: " + v,gn,p_id,0,Variant::VECTOR3));
} else {
hbc->add_child(make_label(TTR("UV"),Variant::VECTOR3));
hbc->add_child(make_label("UV",Variant::VECTOR3));
}
hbc->add_spacer();
hbc->add_child( memnew(Label(TTR("RGB"))));
hbc->add_child( memnew(Label("RGB")));
gn->add_child(hbc);
gn->set_slot(0,true,ShaderGraph::SLOT_TYPE_VEC,typecol[ShaderGraph::SLOT_TYPE_VEC],true,ShaderGraph::SLOT_TYPE_VEC,typecol[ShaderGraph::SLOT_TYPE_VEC]);
} break; // screen texture sampler (takes UV) (only usable in fragment case Shader)
case ShaderGraph::NODE_SCALAR_OP: {
gn->set_title(TTR("ScalarOp"));
gn->set_title("ScalarOp");
static const char* op_name[ShaderGraph::SCALAR_MAX_OP]={
("Add"),
("Sub"),
@ -1567,7 +1567,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar vs scalar op (mul: { } break; add: { } break; div: { } break; etc)
case ShaderGraph::NODE_VEC_OP: {
gn->set_title(TTR("VecOp"));
gn->set_title("VecOp");
static const char* op_name[ShaderGraph::VEC_MAX_OP]={
("Add"),
("Sub"),
@ -1615,7 +1615,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 vs vec3 op (mul: { } break;ad: { } break;div: { } break;crossprod: { } break;etc)
case ShaderGraph::NODE_VEC_SCALAR_OP: {
gn->set_title(TTR("VecScalarOp"));
gn->set_title("VecScalarOp");
static const char* op_name[ShaderGraph::VEC_SCALAR_MAX_OP]={
("Mul"),
("Div"),
@ -1657,7 +1657,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 vs scalar op (mul: { } break; add: { } break; div: { } break; etc)
case ShaderGraph::NODE_RGB_OP: {
gn->set_title(TTR("RGB Op"));
gn->set_title("RGB Op");
static const char* op_name[ShaderGraph::RGB_MAX_OP]={
("Screen"),
("Difference"),
@ -1702,7 +1702,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 vs vec3 rgb op (with scalar amount): { } break; like brighten: { } break; darken: { } break; burn: { } break; dodge: { } break; multiply: { } break; etc.
case ShaderGraph::NODE_XFORM_MULT: {
gn->set_title(TTR("XFMult"));
gn->set_title("XFMult");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("a",Variant::TRANSFORM));
@ -1725,9 +1725,9 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // mat4 x mat4
case ShaderGraph::NODE_XFORM_VEC_MULT: {
gn->set_title(TTR("XFVecMult"));
gn->set_title("XFVecMult");
CheckBox *button = memnew (CheckBox(TTR("RotOnly")));
CheckBox *button = memnew (CheckBox("RotOnly"));
button->set_pressed(graph->xform_vec_mult_node_get_no_translation(type,p_id));
button->connect("toggled",this,"_xform_inv_rev_changed",varray(p_id));
@ -1758,10 +1758,10 @@ void ShaderGraphView::_create_node(int p_id) {
} break;
case ShaderGraph::NODE_XFORM_VEC_INV_MULT: {
gn->set_title(TTR("XFVecInvMult"));
gn->set_title("XFVecInvMult");
CheckBox *button = memnew( CheckBox(TTR("RotOnly")));
CheckBox *button = memnew( CheckBox("RotOnly"));
button->set_pressed(graph->xform_vec_mult_node_get_no_translation(type,p_id));
button->connect("toggled",this,"_xform_inv_rev_changed",varray(p_id));
@ -1793,7 +1793,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // mat4 x vec3 inverse mult (with no-translation option)
case ShaderGraph::NODE_SCALAR_FUNC: {
gn->set_title(TTR("ScalarFunc"));
gn->set_title("ScalarFunc");
static const char* func_name[ShaderGraph::SCALAR_MAX_FUNC]={
("Sin"),
("Cos"),
@ -1846,7 +1846,7 @@ void ShaderGraphView::_create_node(int p_id) {
gn->set_title(TTR("VecFunc"));
gn->set_title("VecFunc");
static const char* func_name[ShaderGraph::VEC_MAX_FUNC]={
("Normalize"),
("Saturate"),
@ -1882,7 +1882,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vector function (normalize: { } break; negate: { } break; reciprocal: { } break; rgb2hsv: { } break; hsv2rgb: { } break; etc: { } break; etc)
case ShaderGraph::NODE_VEC_LEN: {
gn->set_title(TTR("VecLength"));
gn->set_title("VecLength");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("in", Variant::VECTOR3));
@ -1899,7 +1899,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 length
case ShaderGraph::NODE_DOT_PROD: {
gn->set_title(TTR("DotProduct"));
gn->set_title("DotProduct");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@ -1924,7 +1924,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 . vec3 (dot product -> scalar output)
case ShaderGraph::NODE_VEC_TO_SCALAR: {
gn->set_title(TTR("Vec2Scalar"));
gn->set_title("Vec2Scalar");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@ -1955,7 +1955,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 1 vec3 input: { } break; 3 scalar outputs
case ShaderGraph::NODE_SCALAR_TO_VEC: {
gn->set_title(TTR("Scalar2Vec"));
gn->set_title("Scalar2Vec");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("x", Variant::REAL));
@ -1986,7 +1986,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 3 scalar input: { } break; 1 vec3 output
case ShaderGraph::NODE_VEC_TO_XFORM: {
gn->set_title(TTR("Vec2XForm"));
gn->set_title("Vec2XForm");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@ -2025,7 +2025,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 3 vec input: { } break; 1 xform output
case ShaderGraph::NODE_XFORM_TO_VEC: {
gn->set_title(TTR("XForm2Vec"));
gn->set_title("XForm2Vec");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
@ -2057,7 +2057,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // 3 vec input: { } break; 1 xform output
case ShaderGraph::NODE_SCALAR_INTERP: {
gn->set_title(TTR("ScalarInterp"));
gn->set_title("ScalarInterp");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
@ -2090,7 +2090,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar interpolation (with optional curve)
case ShaderGraph::NODE_VEC_INTERP: {
gn->set_title(TTR("VecInterp"));
gn->set_title("VecInterp");
HBoxContainer *hbc = memnew( HBoxContainer );
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label("a", Variant::VECTOR3));
@ -2174,7 +2174,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar interpolation (with optional curve)
case ShaderGraph::NODE_CURVE_MAP: {
gn->set_title(TTR("CurveMap"));
gn->set_title("CurveMap");
GraphCurveMapEdit * map = memnew( GraphCurveMapEdit );
DVector<Vector2> points = graph->curve_map_node_get_points(type,p_id);
@ -2221,7 +2221,7 @@ void ShaderGraphView::_create_node(int p_id) {
case ShaderGraph::NODE_SCALAR_INPUT: {
gn->set_title(TTR("ScalarUniform"));
gn->set_title("ScalarUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@ -2238,7 +2238,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // scalar uniform (assignable in material)
case ShaderGraph::NODE_VEC_INPUT: {
gn->set_title(TTR("VectorUniform"));
gn->set_title("VectorUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@ -2265,7 +2265,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // vec3 uniform (assignable in material)
case ShaderGraph::NODE_RGB_INPUT: {
gn->set_title(TTR("ColorUniform"));
gn->set_title("ColorUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@ -2275,11 +2275,11 @@ void ShaderGraphView::_create_node(int p_id) {
cpb->connect("color_changed",this,"_rgb_input_changed",varray(p_id));
gn->add_child(cpb);
Label *l = memnew( Label );
l->set_text(TTR("RGB"));
l->set_text("RGB");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
l = memnew( Label );
l->set_text(TTR("Alpha"));
l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@ -2289,7 +2289,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // color uniform (assignable in material)
case ShaderGraph::NODE_XFORM_INPUT: {
gn->set_title(TTR("XFUniform"));
gn->set_title("XFUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@ -2303,7 +2303,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // mat4 uniform (assignable in material)
case ShaderGraph::NODE_TEXTURE_INPUT: {
gn->set_title(TTR("TexUniform"));
gn->set_title("TexUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@ -2311,7 +2311,9 @@ void ShaderGraphView::_create_node(int p_id) {
TextureFrame *tex = memnew( TextureFrame );
tex->set_expand(true);
tex->set_custom_minimum_size(Size2(80,80));
tex->set_drag_forwarding(this);
gn->add_child(tex);
tex->set_ignore_mouse(false);
tex->set_texture(graph->texture_input_node_get_value(type,p_id));
ToolButton *edit = memnew( ToolButton );
edit->set_text("edit..");
@ -2321,18 +2323,18 @@ void ShaderGraphView::_create_node(int p_id) {
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label(TTR("UV"), Variant::VECTOR3));
hbc->add_child(make_label("UV", Variant::VECTOR3));
} else {
Vector3 v = graph->default_get_value(type,p_id,0);
hbc->add_child(make_editor(String(TTR("UV: "))+v,gn,p_id,0,Variant::VECTOR3));
hbc->add_child(make_editor(String("UV: ")+v,gn,p_id,0,Variant::VECTOR3));
}
hbc->add_spacer();
Label *l=memnew(Label(TTR("RGB")));
Label *l=memnew(Label("RGB"));
l->set_align(Label::ALIGN_RIGHT);
hbc->add_child(l);
gn->add_child(hbc);
l = memnew( Label );
l->set_text(TTR("Alpha"));
l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@ -2342,7 +2344,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // texture input (assignable in material)
case ShaderGraph::NODE_CUBEMAP_INPUT: {
gn->set_title(TTR("TexUniform"));
gn->set_title("TexUniform");
LineEdit *le = memnew( LineEdit );
gn->add_child(le);
le->set_text(graph->input_node_get_name(type,p_id));
@ -2357,18 +2359,18 @@ void ShaderGraphView::_create_node(int p_id) {
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label(TTR("UV"), Variant::VECTOR3));
hbc->add_child(make_label("UV", Variant::VECTOR3));
} else {
Vector3 v = graph->default_get_value(type,p_id,0);
hbc->add_child(make_editor(String(TTR("UV: "))+v,gn,p_id,0,Variant::VECTOR3));
hbc->add_child(make_editor(String("UV: ")+v,gn,p_id,0,Variant::VECTOR3));
}
hbc->add_spacer();
Label *l=memnew(Label(TTR("RGB")));
Label *l=memnew(Label("RGB"));
l->set_align(Label::ALIGN_RIGHT);
hbc->add_child(l);
gn->add_child(hbc);
l = memnew( Label );
l->set_text(TTR("Alpha"));
l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@ -2378,22 +2380,22 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // cubemap input (assignable in material)
case ShaderGraph::NODE_DEFAULT_TEXTURE: {
gn->set_title(TTR("CanvasItemTex"));
gn->set_title("CanvasItemTex");
HBoxContainer *hbc = memnew( HBoxContainer );
hbc->add_constant_override("separation",0);
if (graph->is_slot_connected(type, p_id, 0)) {
hbc->add_child(make_label(TTR("UV"), Variant::VECTOR3));
hbc->add_child(make_label("UV", Variant::VECTOR3));
} else {
Vector3 v = graph->default_get_value(type,p_id,0);
hbc->add_child(make_editor(String(TTR("UV: "))+v,gn,p_id,0,Variant::VECTOR3));
hbc->add_child(make_editor(String("UV: ")+v,gn,p_id,0,Variant::VECTOR3));
}
hbc->add_spacer();
Label *l=memnew(Label(TTR("RGB")));
Label *l=memnew(Label("RGB"));
l->set_align(Label::ALIGN_RIGHT);
hbc->add_child(l);
gn->add_child(hbc);
l = memnew( Label );
l->set_text(TTR("Alpha"));
l->set_text("Alpha");
l->set_align(Label::ALIGN_RIGHT);
gn->add_child(l);
@ -2404,7 +2406,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // screen texture sampler (takes UV) (only usable in fragment case Shader)
case ShaderGraph::NODE_OUTPUT: {
gn->set_title(TTR("Output"));
gn->set_title("Output");
gn->set_show_close_button(false);
List<ShaderGraph::SlotInfo> si;
@ -2412,22 +2414,22 @@ void ShaderGraphView::_create_node(int p_id) {
Array colors;
colors.push_back("Color");
colors.push_back(TTR("LightColor"));
colors.push_back("LightColor");
colors.push_back("Light");
colors.push_back(TTR("Diffuse"));
colors.push_back(TTR("Specular"));
colors.push_back(TTR("Emmision"));
colors.push_back("Diffuse");
colors.push_back("Specular");
colors.push_back("Emmision");
Array reals;
reals.push_back(TTR("Alpha"));
reals.push_back(TTR("DiffuseAlpha"));
reals.push_back(TTR("NormalMapDepth"));
reals.push_back(TTR("SpecExp"));
reals.push_back(TTR("Glow"));
reals.push_back(TTR("ShadeParam"));
reals.push_back(TTR("SpecularExp"));
reals.push_back(TTR("LightAlpha"));
reals.push_back(TTR("PointSize"));
reals.push_back(TTR("Discard"));
reals.push_back("Alpha");
reals.push_back("DiffuseAlpha");
reals.push_back("NormalMapDepth");
reals.push_back("SpecExp");
reals.push_back("Glow");
reals.push_back("ShadeParam");
reals.push_back("SpecularExp");
reals.push_back("LightAlpha");
reals.push_back("PointSize");
reals.push_back("Discard");
int idx=0;
for (List<ShaderGraph::SlotInfo>::Element *E=si.front();E;E=E->next()) {
@ -2448,7 +2450,7 @@ void ShaderGraphView::_create_node(int p_id) {
} break; // output (case Shader type dependent)
case ShaderGraph::NODE_COMMENT: {
gn->set_title(TTR("Comment"));
gn->set_title("Comment");
TextEdit *te = memnew(TextEdit);
te->set_custom_minimum_size(Size2(100,100));
gn->add_child(te);
@ -2517,6 +2519,105 @@ void ShaderGraphView::_sg_updated() {
}
}
Variant ShaderGraphView::get_drag_data_fw(const Point2 &p_point, Control *p_from)
{
TextureFrame* frame = p_from->cast_to<TextureFrame>();
if (!frame)
return Variant();
if (!frame->get_texture().is_valid())
return Variant();
RES res = frame->get_texture();
return EditorNode::get_singleton()->drag_resource(res,p_from);
return Variant();
}
bool ShaderGraphView::can_drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from) const
{
if (p_data.get_type() != Variant::DICTIONARY)
return false;
Dictionary d = p_data;
if (d.has("type")){
if (d["type"] == "resource" && d.has("resource")) {
Variant val = d["resource"];
if (val.get_type()==Variant::OBJECT) {
RES res = val;
if (res.is_valid() && res->cast_to<Texture>())
return true;
}
}
else if (d["type"] == "files" && d.has("files")) {
Vector<String> files = d["files"];
if (files.size() != 1)
return false;
return (ResourceLoader::get_resource_type(files[0]) == "ImageTexture");
}
}
return false;
}
void ShaderGraphView::drop_data_fw(const Point2 &p_point, const Variant &p_data, Control *p_from)
{
if (!can_drop_data_fw(p_point, p_data, p_from))
return;
TextureFrame *frame = p_from->cast_to<TextureFrame>();
if (!frame)
return;
Dictionary d = p_data;
Ref<Texture> tex;
if (d.has("type")) {
if (d["type"] == "resource" && d.has("resource")){
Variant val = d["resource"];
if (val.get_type()==Variant::OBJECT) {
RES res = val;
if (res.is_valid())
tex = Ref<Texture>(res->cast_to<Texture>());
}
}
else if (d["type"] == "files" && d.has("files")) {
Vector<String> files = d["files"];
RES res = ResourceLoader::load(files[0]);
if (res.is_valid())
tex = Ref<Texture>(res->cast_to<Texture>());
}
}
if (!tex.is_valid()) return;
GraphNode *gn = frame->get_parent()->cast_to<GraphNode>();
if (!gn) return;
int id = -1;
for(Map<int,GraphNode*>::Element *E = node_map.front();E;E=E->next())
if (E->get() == gn) {
id = E->key();
break;
}
print_line(String::num(double(id)));
if (id < 0) return;
if (graph->node_get_type(type,id)==ShaderGraph::NODE_TEXTURE_INPUT) {
UndoRedo *ur=EditorNode::get_singleton()->get_undo_redo();
ur->create_action(TTR("Change Texture Uniform"));
ur->add_do_method(graph.ptr(),"texture_input_node_set_value",type,id,tex);
ur->add_undo_method(graph.ptr(),"texture_input_node_set_value",type,id,graph->texture_input_node_get_value(type,id));
ur->add_do_method(this,"_update_graph");
ur->add_undo_method(this,"_update_graph");
ur->commit_action();
}
}
void ShaderGraphView::set_graph(Ref<ShaderGraph> p_graph){
@ -2623,6 +2724,10 @@ void ShaderGraphView::_bind_methods() {
ObjectTypeDB::bind_method("_color_ramp_changed",&ShaderGraphView::_color_ramp_changed);
ObjectTypeDB::bind_method("_curve_changed",&ShaderGraphView::_curve_changed);
ObjectTypeDB::bind_method(_MD("get_drag_data_fw"), &ShaderGraphView::get_drag_data_fw);
ObjectTypeDB::bind_method(_MD("can_drop_data_fw"), &ShaderGraphView::can_drop_data_fw);
ObjectTypeDB::bind_method(_MD("drop_data_fw"), &ShaderGraphView::drop_data_fw);
ObjectTypeDB::bind_method("_sg_updated",&ShaderGraphView::_sg_updated);
}

View file

@ -116,7 +116,7 @@ public:
GraphCurveMapEdit();
};
class ShaderGraphView : public Node {
class ShaderGraphView : public Control {
OBJ_TYPE(ShaderGraphView,Node);
@ -181,6 +181,10 @@ class ShaderGraphView : public Node {
void _curve_changed(int p_id,Node* p_curve);
void _sg_updated();
Map<int,GraphNode*> node_map;
Variant get_drag_data_fw(const Point2& p_point,Control* p_from);
bool can_drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from) const;
void drop_data_fw(const Point2& p_point,const Variant& p_data,Control* p_from);
protected:
void _notification(int p_what);
static void _bind_methods();

View file

@ -561,7 +561,7 @@ void SpatialEditorViewport::_select_region() {
void SpatialEditorViewport::_update_name() {
String ortho = orthogonal?TTR("Orthogonal"):"Perspective";
String ortho = orthogonal?TTR("Orthogonal"):TTR("Perspective");
if (name!="")
view_menu->set_text("[ "+name+" "+ortho+" ]");
@ -1229,7 +1229,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
case InputEvent::MOUSE_MOTION: {
const InputEventMouseMotion &m=p_event.mouse_motion;
_edit.mouse_pos=Point2(p_event.mouse_motion.x,p_event.mouse_motion.y);
if (spatial_editor->get_selected()) {
@ -1265,7 +1265,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
NavigationScheme nav_scheme = _get_navigation_schema("3d_editor/navigation_scheme");
NavigationMode nav_mode = NAVIGATION_NONE;
if (_edit.gizmo.is_valid()) {
Plane plane=Plane(_edit.gizmo_initial_pos,_get_camera_normal());
@ -1353,7 +1353,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
scale = Math::stepify(scale,spatial_editor->get_scale_snap());
}
set_message(TTR("Scaling to ")+String::num(scale,1)+"%.");
set_message(vformat(TTR("Scaling to %s%%."),String::num(scale,1)));
scale/=100.0;
Transform r;
@ -1431,7 +1431,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
motion.snap(snap);
}
//set_message(TTR("Translating: ")+motion);
//set_message("Translating: "+motion);
List<Node*> &selection = editor_selection->get_selected_node_list();
@ -1493,13 +1493,13 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
if (snap) {
angle=Math::rad2deg(angle)+snap*0.5; //else it wont reach +180
angle-=Math::fmod(angle,snap);
set_message(TTR("Rotating ")+rtos(angle)+" degrees.");
set_message(vformat(TTR("Rotating %s degrees."),rtos(angle)));
angle=Math::deg2rad(angle);
} else
set_message(TTR("Rotating ")+rtos(Math::rad2deg(angle))+" degrees.");
set_message(vformat(TTR("Rotating %s degrees."),rtos(Math::rad2deg(angle))));
} else {
set_message(TTR("Rotating ")+rtos(Math::rad2deg(angle))+" degrees.");
set_message(vformat(TTR("Rotating %s degrees."),rtos(Math::rad2deg(angle))));
}
@ -1591,7 +1591,7 @@ void SpatialEditorViewport::_sinput(const InputEvent &p_event) {
mod=KEY_CONTROL;
if (m.mod.meta)
mod=KEY_META;
if(mod){
if (mod == _get_key_modifier("3d_editor/pan_modifier"))
nav_mode = NAVIGATION_PAN;
@ -1815,7 +1815,7 @@ void SpatialEditorViewport::_notification(int p_what) {
if (visible)
_update_camera();
call_deferred("update_transform_gizmo_view");
}
@ -1967,7 +1967,7 @@ void SpatialEditorViewport::_draw() {
if (surface->has_focus()) {
Size2 size = surface->get_size();
Rect2 r =Rect2(Point2(),size);
get_stylebox(TTR("EditorFocus"),"EditorStyles")->draw(surface->get_canvas_item(),r);
get_stylebox("EditorFocus","EditorStyles")->draw(surface->get_canvas_item(),r);
}
@ -2482,7 +2482,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
view_menu->get_popup()->add_check_item(TTR("Orthogonal (Num5)"),VIEW_ORTHOGONAL);
view_menu->get_popup()->set_item_checked(view_menu->get_popup()->get_item_index(VIEW_PERSPECTIVE),true);
view_menu->get_popup()->add_separator();
view_menu->get_popup()->add_check_item("Environment",VIEW_ENVIRONMENT);
view_menu->get_popup()->add_check_item(TTR("Environment"),VIEW_ENVIRONMENT);
view_menu->get_popup()->set_item_checked( view_menu->get_popup()->get_item_index(VIEW_ENVIRONMENT),true);
view_menu->get_popup()->add_separator();
view_menu->get_popup()->add_check_item(TTR("Audio Listener"),VIEW_AUDIO_LISTENER);

View file

@ -78,7 +78,7 @@ void SpriteFramesEditor::_file_load_request(const DVector<String>& p_path,int p_
if (resource.is_null()) {
dialog->set_text(TTR("ERROR: Couldn't load frame resource!"));
dialog->set_title(TTR("Error!"));
//dialog->get_cancel()->set_text(TTR("Close"));
//dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@ -152,7 +152,7 @@ void SpriteFramesEditor::_item_edited() {
}
RES samp = frames->get_resource(old_name);
undo_redo->create_action(TTR("Rename Resource"));
undo_redo->create_action("Rename Resource");
undo_redo->add_do_method(frames,"remove_resource",old_name);
undo_redo->add_do_method(frames,"add_resource",new_name,samp);
undo_redo->add_undo_method(frames,"remove_resource",new_name);
@ -198,7 +198,7 @@ void SpriteFramesEditor::_paste_pressed() {
if (!r.is_valid()) {
dialog->set_text(TTR("Resource clipboard is empty or not a texture!"));
dialog->set_title(TTR("Error!"));
//dialog->get_cancel()->set_text(TTR("Close"));
//dialog->get_cancel()->set_text("Close");
dialog->get_ok()->set_text(TTR("Close"));
dialog->popup_centered_minsize();
return; ///beh should show an error i guess
@ -333,11 +333,11 @@ void SpriteFramesEditor::_delete_pressed() {
_delete_confirm_pressed(); //it has undo.. why bother with a dialog..
/*
dialog->set_title(TTR("Confirm..."));
dialog->set_text(TTR("Remove Resource '")+tree->get_selected()->get_text(0)+"' ?");
//dialog->get_cancel()->set_text(TTR("Cancel"));
dialog->set_title("Confirm...");
dialog->set_text("Remove Resource '"+tree->get_selected()->get_text(0)+"' ?");
//dialog->get_cancel()->set_text("Cancel");
//dialog->get_ok()->show();
dialog->get_ok()->set_text(TTR("Remove"));
dialog->get_ok()->set_text("Remove");
dialog->popup_centered(Size2(300,60));*/
}
@ -530,7 +530,7 @@ void SpriteFramesEditor::_update_library(bool p_skip_selector) {
if (frames->get_frame(edited_anim,i).is_null()) {
name=itos(i)+TTR(": (empty)");
name=itos(i)+": "+TTR("(empty)");
} else {
name=itos(i)+": "+frames->get_frame(edited_anim,i)->get_name();

View file

@ -119,7 +119,7 @@ class SpriteRegionEditorPlugin : public EditorPlugin
EditorNode *editor;
public:
virtual String get_name() const { return TTR("SpriteRegion"); }
virtual String get_name() const { return "SpriteRegion"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;

View file

@ -69,7 +69,7 @@ class StreamEditorPlugin : public EditorPlugin {
public:
virtual String get_name() const { return TTR("Stream"); }
virtual String get_name() const { return "Stream"; }
bool has_main_screen() const { return false; }
virtual void edit(Object *p_node);
virtual bool handles(Object *p_node) const;

View file

@ -199,7 +199,7 @@ void ThemeEditor::_save_template_cbk(String fname) {
if (!file) {
ERR_EXPLAIN(TTR("Can't save theme to file: ")+filename);
ERR_EXPLAIN(TTR("Can't save theme to file:")+" "+filename);
return;
}
file->store_line("; ******************* ");
@ -398,7 +398,7 @@ void ThemeEditor::_dialog_cbk() {
}
} break;
} break;
case POPUP_CLASS_REMOVE: {
StringName fromtype = type_edit->get_text();
List<StringName> names;
@ -599,7 +599,7 @@ ThemeEditor::ThemeEditor() {
theme_menu->get_popup()->add_item(TTR("Add Item"),POPUP_ADD);
theme_menu->get_popup()->add_item(TTR("Add Class Items"),POPUP_CLASS_ADD);
theme_menu->get_popup()->add_item(TTR("Remove Item"),POPUP_REMOVE);
theme_menu->get_popup()->add_item("Remove Class Items",POPUP_CLASS_REMOVE);
theme_menu->get_popup()->add_item(TTR("Remove Class Items"),POPUP_CLASS_REMOVE);
theme_menu->get_popup()->add_separator();
theme_menu->get_popup()->add_item(TTR("Create Template"),POPUP_CREATE_TEMPLATE);
hb_menu->add_child(theme_menu);
@ -757,7 +757,7 @@ ThemeEditor::ThemeEditor() {
line_edit = memnew( LineEdit );
line_edit->set_pos( Point2( 25, 275 ) );
line_edit->set_size( Point2( 150, 5 ) );
line_edit->set_text(TTR("Line Edit"));
line_edit->set_text("Line Edit");
panel->add_child(line_edit);
test_v_scroll = memnew( VScrollBar );
@ -786,12 +786,12 @@ ThemeEditor::ThemeEditor() {
item = test_tree->create_item( test_tree->get_root() );
item->set_cell_mode(0, TreeItem::CELL_MODE_RANGE);
item->set_editable(0,true);
item->set_text(0,TTR("Have,Many,Several,Options!"));
item->set_text(0,"Have,Many,Several,Options!"));
item->set_range(0,2);
Button *fd_button= memnew( Button );
fd_button->set_pos(Point2(300,275));
fd_button->set_text(TTR("Open File Dialog"));
fd_button->set_text("Open File Dialog");
panel->add_child(fd_button);
test_file_dialog = memnew( EditorFileDialog );
@ -852,8 +852,8 @@ ThemeEditor::ThemeEditor() {
type_select = memnew( OptionButton );
type_select->add_item(TTR("Icon"));
type_select->add_item(TTR("Style"));
type_select->add_item("Font");
type_select->add_item("Color");
type_select->add_item(TTR("Font"));
type_select->add_item(TTR("Color"));
type_select->add_item(TTR("Constant"));
type_select->set_pos( Point2( 400,25 ) );
type_select->set_size( Point2( 80,5 ) );

View file

@ -1318,13 +1318,13 @@ TileMapEditor::TileMapEditor(EditorNode *p_editor) {
PopupMenu *p = options->get_popup();
p->add_item("Bucket", OPTION_BUCKET);
p->add_item(TTR("Bucket"), OPTION_BUCKET);
p->add_separator();
p->add_item("Pick Tile", OPTION_PICK_TILE, KEY_CONTROL);
p->add_item(TTR("Pick Tile"), OPTION_PICK_TILE, KEY_CONTROL);
p->add_separator();
p->add_item("Select", OPTION_SELECT, KEY_MASK_CMD+KEY_B);
p->add_item(TTR("Select"), OPTION_SELECT, KEY_MASK_CMD+KEY_B);
p->add_item(TTR("Duplicate Selection"), OPTION_DUPLICATE, KEY_MASK_CMD+KEY_D);
p->add_item("Erase Selection", OPTION_ERASE_SELECTION, KEY_DELETE);
p->add_item(TTR("Erase Selection"), OPTION_ERASE_SELECTION, KEY_DELETE);
p->connect("item_pressed", this, "_menu_option");

View file

@ -130,7 +130,7 @@ class TileMapEditor : public VBoxContainer {
void _fill_points(const DVector<Vector2> p_points, const Dictionary& p_op);
void _erase_points(const DVector<Vector2> p_points);
void _select(const Point2i& p_from, const Point2i& p_to);
void _draw_cell(int p_cell, const Point2i& p_point, bool p_flip_h, bool p_flip_v, bool p_transpose, const Matrix32& p_xform);

View file

@ -175,7 +175,7 @@ void TileSetEditor::_name_dialog_confirm(const String& name) {
if (tileset->has_tile(id)) {
tileset->remove_tile(id);
} else {
err_dialog->set_text(TTR("Could not find tile: ") + name);
err_dialog->set_text(TTR("Could not find tile:")+" " + name);
err_dialog->popup_centered(Size2(300, 60));
}
} break;

View file

@ -470,7 +470,7 @@ void ProjectExportDialog::_export_action(const String& p_file) {
/* Checked if the export location is outside the project directory,
* now will check if a file name has been entered */
if (p_file.ends_with("/")) {
error->set_text("Please enter a file name!");
error->popup_centered_minsize();
return;
@ -505,7 +505,7 @@ void ProjectExportDialog::_export_action_pck(const String& p_file) {
if (p_file.ends_with(".pck")) {
FileAccess *f = FileAccess::open(p_file,FileAccess::WRITE);
if (!f) {
error->set_text(TTR("Error exporting project PCK! Can't write"));
error->set_text(TTR("Error writing the project PCK!"));
error->popup_centered_minsize();
}
ERR_FAIL_COND(!f);
@ -586,7 +586,7 @@ void ProjectExportDialog::custom_action(const String&) {
Ref<EditorExportPlatform> exporter = EditorImportExport::get_singleton()->get_export_platform(platform);
if (exporter.is_null()) {
error->set_text(TTR("No exporter for platform '")+platform+"' yet.");
error->set_text(vformat(TTR("No exporter for platform '%s' yet."),platform));
error->popup_centered_minsize();
return;
}
@ -858,17 +858,17 @@ void ProjectExportDialog::_group_add() {
if (name=="") {
group_new_name_error->show();
group_new_name_error->set_text(TTR("Group Name Can't be Empty!"));
group_new_name_error->set_text(TTR("Group name can't be empty!"));
return;
}
if (name.find("/")!=-1 || name.find(":")!=-1 || name.find(",")!=-1 || name.find("-")!=-1) {
group_new_name_error->set_text(TTR("Invalid Character in Group Name!"));
group_new_name_error->set_text(TTR("Invalid character in group name!"));
group_new_name_error->show();
return;
}
if (EditorImportExport::get_singleton()->image_export_has_group(name)) {
group_new_name_error->set_text(TTR("Group Name Already Exists!"));
group_new_name_error->set_text(TTR("Group name already exists!"));
group_new_name_error->show();
return;
}
@ -1061,13 +1061,13 @@ void ProjectExportDialog::_group_atlas_preview() {
Error err = plugin->import2(dst_file,imd,EditorExportPlatform::IMAGE_COMPRESSION_NONE,true);
if (err) {
EditorNode::add_io_error(TTR("Error saving atlas! ")+dst_file.get_file());
EditorNode::add_io_error(TTR("Error saving atlas:")+" "+dst_file.get_file());
return;
}
Ref<Texture> tex = ResourceLoader::load(dst_file);
atlas_preview_frame->set_texture(tex); //clear previous
atlas_preview_dialog->set_title(TTR("Atlas Preview (")+itos(tex->get_width())+"x"+itos(tex->get_height())+")");
atlas_preview_dialog->set_title(TTR("Atlas Preview")+" ("+itos(tex->get_width())+"x"+itos(tex->get_height())+")");
atlas_preview_dialog->popup_centered_ratio(0.9);
}
@ -1211,14 +1211,14 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
tree->set_column_min_width(1,90);
filters = memnew( LineEdit );
vb->add_margin_child(TTR("Filters to export non-resource files (Comma Separated, eg: *.json, *.txt):"),filters);
vb->add_margin_child(TTR("Filters to export non-resource files (comma-separated, e.g.: *.json, *.txt):"),filters);
filters->connect("text_changed",this,"_filters_edited");
filters_exclude = memnew( LineEdit );
vb->add_margin_child(TTR("Filters to exclude from export (Comma Separated, eg: *.json, *.txt):"),filters_exclude);
vb->add_margin_child(TTR("Filters to exclude from export (comma-separated, e.g.: *.json, *.txt):"),filters_exclude);
filters_exclude->connect("text_changed",this,"_filters_exclude_edited");
convert_text_scenes = memnew( CheckButton );
convert_text_scenes->set_text(TTR("Convert text scenes to binary on export"));
convert_text_scenes->set_text(TTR("Convert text scenes to binary on export."));
vb->add_child(convert_text_scenes);
convert_text_scenes->connect("toggled",this,"_export_mode_changed");
@ -1260,7 +1260,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
fmt->set_editable(0,true);
formats.push_back(fmt);
}
image_vb->add_margin_child(TTR("Compress Formats: "),image_formats,true);
image_vb->add_margin_child(TTR("Compress Formats:")+" ",image_formats,true);
/// groups
HBoxContainer *group_hb = memnew( HBoxContainer );
@ -1421,7 +1421,7 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
sample_max_hz = memnew( SpinBox );
sample_max_hz->set_max(192000);
sample_max_hz->set_min(8000);
sample_vbox->add_margin_child(TTR("Sampling Rate Limit: (hz)"),sample_max_hz);
sample_vbox->add_margin_child(TTR("Sampling Rate Limit (Hz):"),sample_max_hz);
sample_trim = memnew( CheckButton );
sample_trim->set_text(TTR("Trim"));
sample_vbox->add_margin_child(TTR("Trailing Silence:"),sample_trim);
@ -1529,7 +1529,7 @@ Error ProjectExport::export_project(const String& p_preset) {
String preset_path=Globals::get_singleton()->get("export_presets_path/"+selected);
if (preset_path=="") {
error->set_text(TTR("Export path empty, see export options"));
error->set_text("Export path empty, see export options");
error->popup_centered_minsize(Size2(300,100));
ERR_FAIL_V(ERR_INVALID_DATA);
}
@ -1551,9 +1551,9 @@ Error ProjectExport::export_project(const String& p_preset) {
}
if (pc%3 != 0 ) {
memdelete(d);
error->set_text(TTR("Corrupted export data.."));
error->set_text("Corrupted export data..");
error->popup_centered_minsize(Size2(300,100));
ERR_EXPLAIN(TTR("Corrupted export data..."));
ERR_EXPLAIN("Corrupted export data...");
ERR_FAIL_V(ERR_INVALID_DATA);
}
@ -1706,7 +1706,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (err!=OK) {
memdelete(da);
memdelete(d);
ERR_EXPLAIN(TTR("Cannot make dir: ")+cwd+"/"+p);
ERR_EXPLAIN("Cannot make dir: "+cwd+"/"+p);
ERR_FAIL_V(ERR_CANT_CREATE);
}
@ -1714,7 +1714,7 @@ Error ProjectExport::export_project(const String& p_preset) {
memdelete(da);
memdelete(d);
ERR_EXPLAIN(TTR("Cannot change to dir: ")+cwd+"/"+p);
ERR_EXPLAIN("Cannot change to dir: "+cwd+"/"+p);
ERR_FAIL_V(ERR_CANT_CREATE);
}
@ -1742,7 +1742,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (!Globals::get_singleton()->has("optimizer_presets/"+preset)) {
memdelete(d);
ERR_EXPLAIN(TTR("Unknown optimizer preset: ")+preset);
ERR_EXPLAIN("Unknown optimizer preset: "+preset);
ERR_FAIL_V(ERR_INVALID_DATA);
}
@ -1763,7 +1763,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (saver.is_null()) {
memdelete(d);
ERR_EXPLAIN(TTR("Preset '")+preset+"' references nonexistent saver: "+type);
ERR_EXPLAIN("Preset '"+preset+"' references nonexistent saver: "+type);
ERR_FAIL_COND_V(saver.is_null(),ERR_INVALID_DATA);
}
@ -1807,7 +1807,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (res.is_null()) {
memdelete(d);
ERR_EXPLAIN(TTR("Errr loading resource to optimize: ")+path);
ERR_EXPLAIN("Error loading resource to optimize: "+path);
ERR_FAIL_V(ERR_INVALID_DATA);
}
@ -1830,7 +1830,7 @@ Error ProjectExport::export_project(const String& p_preset) {
Error err = ResourceSaver::save(write_file,res,flags,saver);
if (err) {
memdelete(d);
ERR_EXPLAIN(TTR("Errr saving optimized resource: ")+write_file);
ERR_EXPLAIN("Error saving optimized resource: "+write_file);
ERR_FAIL_COND_V(err,ERR_CANT_OPEN);
}
source_file=write_file;
@ -1853,7 +1853,7 @@ Error ProjectExport::export_project(const String& p_preset) {
if (err) {
ERR_EXPLAIN(TTR("Error copying from: ")+source_file+" to "+dst_file+".");
ERR_EXPLAIN("Error copying from: "+source_file+" to "+dst_file+".");
ERR_FAIL_COND_V(err,err);
}

View file

@ -66,7 +66,7 @@ class NewProjectDialog : public ConfirmationDialog {
get_ok()->set_disabled(true);
DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
if (project_path->get_text() != "" && d->change_dir(project_path->get_text())!=OK) {
error->set_text(TTR("Invalid Path for Project, Path Must Exist!"));
error->set_text(TTR("Invalid project path, the path must exist!"));
memdelete(d);
return false;
}
@ -75,7 +75,7 @@ class NewProjectDialog : public ConfirmationDialog {
if (d->file_exists("engine.cfg")) {
error->set_text(TTR("Invalid Project Path (engine.cfg must not exist)."));
error->set_text(TTR("Invalid project path, engine.cfg must not exist."));
memdelete(d);
return false;
}
@ -84,7 +84,7 @@ class NewProjectDialog : public ConfirmationDialog {
if (project_path->get_text() != "" && !d->file_exists("engine.cfg")) {
error->set_text(TTR("Invalid Project Path (engine.cfg must exist)."));
error->set_text(TTR("Invalid project path, engine.cfg must exist."));
memdelete(d);
return false;
}
@ -170,7 +170,7 @@ class NewProjectDialog : public ConfirmationDialog {
DirAccess *d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
if (d->change_dir(project_path->get_text())!=OK) {
error->set_text(TTR("Invalid Path for Project (changed anything?)"));
error->set_text(TTR("Invalid project path (changed anything?)."));
memdelete(d);
return;
}
@ -180,7 +180,7 @@ class NewProjectDialog : public ConfirmationDialog {
FileAccess *f = FileAccess::open(dir.plus_file("/engine.cfg"),FileAccess::WRITE);
if (!f) {
error->set_text(TTR("Couldn't create engine.cfg in project path"));
error->set_text(TTR("Couldn't create engine.cfg in project path."));
} else {
f->store_line("; Engine configuration file.");
@ -247,7 +247,7 @@ public:
if (import_mode) {
set_title(TTR("Import Existing Project"));
get_ok()->set_text(TTR("Import"));
pp->set_text(TTR("Project Path: (Must exist)"));
pp->set_text(TTR("Project Path (Must Exist):"));
pn->set_text(TTR("Project Name:"));
pn->hide();
project_name->hide();
@ -788,7 +788,7 @@ void ProjectManager::_erase_project() {
return;
erase_ask->set_text(TTR("Remove project from list?? (Folder contents will not be modified)"));
erase_ask->set_text(TTR("Remove project from the list? (Folder contents will not be modified)"));
erase_ask->popup_centered_minsize();
}
@ -822,8 +822,8 @@ void ProjectManager::_bind_methods() {
ProjectManager::ProjectManager() {
int margin = get_constant("margin",TTR("Dialogs"));
int button_margin = get_constant("button_margin",TTR("Dialogs"));
int margin = get_constant("margin","Dialogs");
int button_margin = get_constant("button_margin","Dialogs");
// load settings
if (!EditorSettings::get_singleton())
@ -999,8 +999,8 @@ ProjectManager::ProjectManager() {
_scan_begin( EditorSettings::get_singleton()->get("global/autoscan_project_path") );
}
//get_ok()->set_text(TTR("Open"));
//get_ok()->set_text(TTR("Exit"));
//get_ok()->set_text("Open");
//get_ok()->set_text("Exit");
last_clicked = "";
}

View file

@ -139,7 +139,7 @@ void ProjectSettings::_action_edited() {
ti->set_text(0,old_name);
add_at="input/"+old_name;
message->set_text(TTR("Invalid Action (Anything goes but / or :)."));
message->set_text(TTR("Invalid action (anything goes but '/' or ':')."));
message->popup_centered(Size2(300,100));
return;
}
@ -151,7 +151,7 @@ void ProjectSettings::_action_edited() {
ti->set_text(0,old_name);
add_at="input/"+old_name;
message->set_text(TTR("Action '")+new_name+"' already exists!.");
message->set_text(vformat(TTR("Action '%s' already exists!"),new_name));
message->popup_centered(Size2(300,100));
return;
}
@ -357,7 +357,7 @@ void ProjectSettings::_add_item(int p_item){
for(int i=0;i<JOY_AXIS_MAX*2;i++) {
String desc = _axis_names[i];
device_index->add_item(TTR("Axis ")+itos(i/2)+" "+(i&1?"+":"-")+desc);
device_index->add_item(TTR("Axis")+" "+itos(i/2)+" "+(i&1?"+":"-")+desc);
}
device_input->popup_centered(Size2(350,95));
@ -517,7 +517,7 @@ void ProjectSettings::_update_actions() {
} break;
case InputEvent::JOYSTICK_BUTTON: {
String str = TTR("Device ")+itos(ie.device)+", Button "+itos(ie.joy_button.button_index);
String str = TTR("Device")+" "+itos(ie.device)+", "+TTR("Button")+" "+itos(ie.joy_button.button_index);
if (ie.joy_button.button_index>=0 && ie.joy_button.button_index<JOY_BUTTON_MAX)
str+=String()+" ("+_button_names[ie.joy_button.button_index]+").";
else
@ -528,14 +528,14 @@ void ProjectSettings::_update_actions() {
} break;
case InputEvent::MOUSE_BUTTON: {
String str = TTR("Device ")+itos(ie.device)+", ";
String str = TTR("Device")+" "+itos(ie.device)+", ";
switch (ie.mouse_button.button_index) {
case BUTTON_LEFT: str+=TTR("Left Button."); break;
case BUTTON_RIGHT: str+=TTR("Right Button."); break;
case BUTTON_MIDDLE: str+=TTR("Middle Button."); break;
case BUTTON_WHEEL_UP: str+=TTR("Wheel Up."); break;
case BUTTON_WHEEL_DOWN: str+=TTR("Wheel Down."); break;
default: str+=TTR("Button ")+itos(ie.mouse_button.button_index)+".";
default: str+=TTR("Button")+" "+itos(ie.mouse_button.button_index)+".";
}
action->set_text(0,str);
@ -546,7 +546,7 @@ void ProjectSettings::_update_actions() {
int ax = ie.joy_motion.axis;
int n = 2*ax + (ie.joy_motion.axis_value<0 ? 0:1);
String desc = _axis_names[n];
String str = TTR("Device ")+itos(ie.device)+", Axis "+itos(ax)+" "+(ie.joy_motion.axis_value<0?"-":"+")+desc +".";
String str = TTR("Device")+" "+itos(ie.device)+", "+TTR("Axis")+" "+itos(ax)+" "+(ie.joy_motion.axis_value<0?"-":"+")+desc +".";
action->set_text(0,str);
action->set_icon(0,get_icon("JoyAxis","EditorIcons"));
} break;
@ -650,13 +650,13 @@ void ProjectSettings::_action_add() {
String action = action_name->get_text();
if (action.find("/")!=-1 || action.find(":")!=-1 || action=="") {
message->set_text(TTR("Invalid Action (Anything goes but / or :)."));
message->set_text(TTR("Invalid action (anything goes but '/' or ':')."));
message->popup_centered(Size2(300,100));
return;
}
if (Globals::get_singleton()->has("input/"+action)) {
message->set_text(TTR("Action '")+action+"' already exists!.");
message->set_text(vformat(TTR("Action '%s' already exists!"),action));
message->popup_centered(Size2(300,100));
return;
}
@ -710,7 +710,7 @@ void ProjectSettings::_item_checked(const String& p_item, bool p_check) {
void ProjectSettings::_save() {
Error err = Globals::get_singleton()->save();
message->set_text(err!=OK?TTR("Error saving settings."):"Settings Saved OK.");
message->set_text(err!=OK?TTR("Error saving settings."):TTR("Settings saved OK."));
message->popup_centered(Size2(300,100));
}
@ -851,7 +851,7 @@ void ProjectSettings::_autoload_edited() {
if (checked)
path="*"+path;
undo_redo->create_action(TTR("Toggle Autoload GlobalVar"));
undo_redo->create_action(TTR("Toggle AutoLoad Globals"));
undo_redo->add_do_property(Globals::get_singleton(),base,path);
undo_redo->add_undo_property(Globals::get_singleton(),base,Globals::get_singleton()->get(base));
undo_redo->add_do_method(Globals::get_singleton(),"set_order",base,order); // keep order, as config order matters for these
@ -869,7 +869,7 @@ void ProjectSettings::_autoload_add() {
String name = autoload_add_name->get_text();
if (!name.is_valid_identifier()) {
message->set_text("Invalid Name.\nValid characters: a-z,A-Z,0-9 or _");
message->set_text(TTR("Invalid name.")+"\n"+TTR("Valid characters:")+" a-z, A-Z, 0-9 or _");
message->popup_centered(Size2(300,100));
return;
@ -877,7 +877,7 @@ void ProjectSettings::_autoload_add() {
if (ObjectTypeDB::type_exists(name)) {
message->set_text(TTR("Invalid Name.Must not collide with an existing engine class name."));
message->set_text(TTR("Invalid name. Must not collide with an existing engine class name."));
message->popup_centered(Size2(300,100));
return;
@ -886,7 +886,7 @@ void ProjectSettings::_autoload_add() {
for(int i=0;i<Variant::VARIANT_MAX;i++) {
if (Variant::get_type_name(Variant::Type(i))==name) {
message->set_text(TTR("Invalid Name.Must not collide with an existing buit-in type name."));
message->set_text(TTR("Invalid name. Must not collide with an existing buit-in type name."));
message->popup_centered(Size2(300,100));
return;
@ -897,7 +897,7 @@ void ProjectSettings::_autoload_add() {
if (GlobalConstants::get_global_constant_name(i)==name) {
message->set_text(TTR("Invalid Name.Must not collide with an existing global constant name."));
message->set_text(TTR("Invalid name. Must not collide with an existing global constant name."));
message->popup_centered(Size2(300,100));
return;
}
@ -1556,7 +1556,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
save->set_anchor(MARGIN_BOTTOM,ANCHOR_END);
save->set_begin( Point2(80,28) );
save->set_end( Point2(10,20) );
save->set_text(TTR("Save"));
save->set_text("Save");
save->connect("pressed",this,"_save");
*/
@ -1684,7 +1684,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
save->set_anchor(MARGIN_BOTTOM,ANCHOR_END);
save->set_begin( Point2(80,28) );
save->set_end( Point2(10,20) );
save->set_text(TTR("Save"));
save->set_text("Save");
save->connect("pressed",this,"_save");
*/
setting=false;
@ -1861,7 +1861,7 @@ ProjectSettings::ProjectSettings(EditorData *p_data) {
/*
Control * es = memnew( Control );
es->set_name(TTR("Export"));
es->set_name("Export");
tab_container->add_child(es);
export_settings = memnew( ProjectExportSettings );
es->add_child(export_settings);

View file

@ -419,8 +419,8 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
//action_buttons[0];
int button_margin = get_constant("button_margin",TTR("Dialogs"));
int margin = get_constant("margin",TTR("Dialogs"));
int button_margin = get_constant("button_margin","Dialogs");
int margin = get_constant("margin","Dialogs");
action_buttons[0]->set_anchor( MARGIN_LEFT, ANCHOR_END );
action_buttons[0]->set_anchor( MARGIN_TOP, ANCHOR_END );
@ -691,10 +691,10 @@ bool CustomPropertyEditor::edit(Object* p_owner,const String& p_name,Variant::Ty
int id = TYPE_BASE_ID+idx;
if (has_icon(t,"EditorIcons")) {
menu->add_icon_item(get_icon(t,"EditorIcons"),"New "+t,id);
menu->add_icon_item(get_icon(t,"EditorIcons"),TTR("New")+" "+t,id);
} else {
menu->add_item(TTR("New ")+t,id);
menu->add_item(TTR("New")+" "+t,id);
}
idx++;
@ -936,7 +936,7 @@ void CustomPropertyEditor::_node_path_selected(NodePath p_path) {
if (owner->is_type("Node"))
node = owner->cast_to<Node>();
else if (owner->is_type(TTR("ArrayPropertyEdit")))
else if (owner->is_type("ArrayPropertyEdit"))
node = owner->cast_to<ArrayPropertyEdit>()->get_node();
if (!node) {
@ -1732,7 +1732,7 @@ CustomPropertyEditor::CustomPropertyEditor() {
add_child(checks20[i]);
checks20[i]->hide();
checks20[i]->connect("pressed",this,"_action_pressed",make_binds(i));
checks20[i]->set_tooltip(TTR("Bit ")+itos(i)+", val "+itos(1<<i)+".");
checks20[i]->set_tooltip(vformat(TTR("Bit %d, val %d."), i, 1<<i));
}
text_edit = memnew( TextEdit );
@ -2658,11 +2658,11 @@ void PropertyEditor::update_tree() {
TreeItem *title = tree->create_item(root);
title->set_custom_bg_color(0,get_color("prop_section","Editor"));
title->set_text(0,TTR("Property")); // todo, fetch name if ID exists in database
title->set_text(0,"Property"); // todo, fetch name if ID exists in database
title->set_editable(0,false);
title->set_selectable(0,false);
title->set_custom_bg_color(1,get_color("prop_section","Editor"));
title->set_text(1,TTR("Value")); // todo, fetch name if ID exists in database
title->set_text(1,"Value"); // todo, fetch name if ID exists in database
title->set_editable(1,false);
title->set_selectable(1,false);
*/
@ -2671,7 +2671,7 @@ void PropertyEditor::update_tree() {
if (obj->cast_to<Node>() || obj->cast_to<Resource>()) {
TreeItem *type = tree->create_item(root);
type->set_text(0,TTR("Type")); // todo, fetch name if ID exists in database
type->set_text(0,"Type"); // todo, fetch name if ID exists in database
type->set_text(1,obj->get_type()); // todo, fetch name if ID exists in database
if (has_icon(obj->get_type(),"EditorIcons"))
type->set_icon(1,get_icon(obj->get_type(),"EditorIcons") );
@ -2684,7 +2684,7 @@ void PropertyEditor::update_tree() {
TreeItem *name = tree->create_item(root);
name->set_text(0,TTR("Name")); // todo, fetch name if ID exists in database
name->set_text(0,"Name"); // todo, fetch name if ID exists in database
if (obj->is_type("Resource"))
name->set_text(1,obj->cast_to<Resource>()->get_name());
else if (obj->is_type("Node"))
@ -2767,7 +2767,7 @@ void PropertyEditor::update_tree() {
}
sep->set_tooltip(0,TTR("Class: ")+p.name+":\n\n"+class_descr_cache[type]);
sep->set_tooltip(0,TTR("Class:")+" "+p.name+":\n\n"+class_descr_cache[type]);
}
//sep->set_custom_color(0,Color(1,1,1));
@ -2864,7 +2864,7 @@ void PropertyEditor::update_tree() {
descr_cache[type][setter]=descr;
}
item->set_tooltip(0, TTR("Property: ")+p.name+"\n\n"+descr);
item->set_tooltip(0, TTR("Property:")+" "+p.name+"\n\n"+descr);
}
}
//EditorHelp::get_doc_data();
@ -3433,7 +3433,7 @@ void PropertyEditor::_edit_set(const String& p_name, const Variant& p_value) {
} else {
undo_redo->create_action(TTR("Set ")+p_name,true);
undo_redo->create_action(TTR("Set")+" "+p_name,true);
undo_redo->add_do_property(obj,p_name,p_value);
undo_redo->add_undo_property(obj,p_name,obj->get(p_name));
undo_redo->add_do_method(this,"_changed_callback",obj,p_name);

View file

@ -82,7 +82,7 @@ static void _compress_image(Image::CompressMode p_mode,Image *p_image) {
}
if (EditorSettings::get_singleton()->get(TTR("PVRTC/fast_conversion")).operator bool()) {
if (EditorSettings::get_singleton()->get("PVRTC/fast_conversion").operator bool()) {
args.push_back("-pvrtcfast");
}
if (p_image->get_mipmaps()>0)
@ -93,13 +93,13 @@ static void _compress_image(Image::CompressMode p_mode,Image *p_image) {
ResourceSaver::save(src_img,t);
Error err = OS::get_singleton()->execute(ttpath,args,true);
ERR_EXPLAIN(TTR("Could not execute PVRTC Tool: ")+ttpath);
ERR_EXPLAIN(TTR("Could not execute PVRTC tool:")+" "+ttpath);
ERR_FAIL_COND(err!=OK);
t=ResourceLoader::load(dst_img,"Texture");
ERR_EXPLAIN(TTR("Can't load back converted image using PVRTC Tool: ")+dst_img);
ERR_EXPLAIN(TTR("Can't load back converted image using PVRTC tool:")+" "+dst_img);
ERR_FAIL_COND(t.is_null());
*p_image=t->get_data();

View file

@ -32,4 +32,4 @@
void register_exporters();
#endif
#endif

View file

@ -99,7 +99,7 @@ ReparentDialog::ReparentDialog() {
//Label *label = memnew( Label );
//label->set_pos( Point2( 15,8) );
//label->set_text(TTR("Reparent Location (Select new Parent):"));
//label->set_text("Reparent Location (Select new Parent):");
keep_transform = memnew( CheckBox );
keep_transform->set_text(TTR("Keep Global Transform"));
@ -107,7 +107,7 @@ ReparentDialog::ReparentDialog() {
vbc->add_child(keep_transform);
//vbc->add_margin_child(TTR("Options:"),node_only);;
//vbc->add_margin_child("Options:",node_only);;
//cancel->connect("pressed", this,"_cancel");

Some files were not shown because too many files have changed in this diff Show more