Padre

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

      context menu key or Shift+F10 as alternatives (DOLMEN)
    - Removed the comment basis for Padre::Document subclassing (ADAMK)
    - Renaming of all methods involved in setting up an editor object (ADAMK)
    - Removed the experimental Padre wizard API (AZAWAWI)

0.90 2011.08.16
    - Return task instance from Padre::Role::Task::tast_request (BRAMBLE)
    - Add 'Solarized Dark' theme contributed by Anton Ukolov ('sugar' on irc)
      (BRAMBLE)
    - Improved fast find text entry colours #1290 (BRAMBLE)
    - Improved preferences colours for 'dark' themed desktops #1290 (BRAMBLE)
    - Added feature_devel_endstats (disabled by default) which makes Padre
      run scripts with -MDevel::EndStats=<feature_devel_endstats_options>
      to show various statistics when your program terminates (AZAWAWI)
    - Fixed "Open in File Browser" under Windows 7 (AZAWAWI)
    - The functions and syntax check windows needs to be cleared when the
      document does not provide any functions or syntax checker tasks (AZAWAWI)
    - The syntax checker is now more accurate when typing faster (AZAWAWI)
    - Added a change dwell mechanism to the editor panels, which gives any tools
      based on editor content an opportunity to auto-refresh (ADAMK)
    - Added dwell-refresh to the function list, so new functions are added as

Changes  view on Meta::CPAN

    - File Reload All/Some was not working as expected (AZAWAWI)
    - Add a xt test for open blocker tickets (SEWI)
    - Underline the syntax warning/error line with an orange or red squiggle
      indicator (AZAWAWI)
    - TRACE() calls now use epoch microsecond timestamps instead of localtime
      to make subsecond temporal relationships more obvious (ADAMK)
    - When the syntax checker is rescanning after a document change, clear the
      window but do not change the margin (ADAMK)
    - Add _ shortcuts in menus. Still to do. Sorry to translators (DOLMEN)
    - Add ... to menus leading to dialogs. Sorry to translators (DOLMEN)
    - Fix blurry app icon on Ubuntu with Unity desktop (DOLMEN)
    - Fixed failing thread test (SEWI)
    - Added feature_devel_traceuse (disabled by default) which makes Padre
      run scripts with -d:TraceUse=<feature_devel_traceuse_options>
      to show the modules that your program loads recursively (AZAWAWI)
    - Checked menu actions may be called form other events but the menu
      event (SEWI)
    - Stop ignoring syntax checking errors without an actual type (AZAWAWI)
    - The editor change dwell time (the time between when you stop typing and
      when tools like function list and syntax update) is now configurable as
      editor_dwell in Advanced Preferences (ADAMK)

Changes  view on Meta::CPAN

    - Added an option for traceing Padre subroutine calls to the
      developer plugin (SEWI)
    - Uses correct make from Config.pm for the run menu item -> Build and
      run tests (KTHAKORE)
    - Speedup and less false-shows for autocomplete (SEWI)
    - Speedup while changing tabs (use the correct project dir) (SEWI)
    - Simple refocus on document after command run (KTHAKORE)
    - Fixed ticket #822: main window could be off screen on start (BLAKEW)
    - padre-client allows you to use Padre for commit messages and other
      synchronous edit events (CORION)
    - WIN32, Converted the --desktop registry code to Win32::TieRegistry 
      and removed hardcoded strawberry paths (AZAWAWI)
    - WIN32, padre.exe will run with the same UAC privileges as same as
      the invoker (AZAWAWI)
    - Disable debugger menu items when there is no document (AZAWAWI)
    - Fixed a Padre debugger crash when unsaved document is debugged (AZAWAWI)
    - Fixed Padre no-document crash with Find Next/Find Previous functionality
      (AZAWAWI)
    - Make sure that windows context key shows the refactor menu 
      items in the right-click pop-up menu (AZAWAWI)
    - Used Module::CoreList::is_deprecated to display deprecated CORE modules

Changes  view on Meta::CPAN

      user's configuration.
    - Tuned lock-release refresh execution to remove low-level refresh
      methods that are also contained in higher level refresh methods.
    - Removed a superfluous AUI Update from the refresh method (ADAMK)
    - Delay loading some additional GUI classes and objects until they
      definitely needed (ADAMK)
    - Suppress warnings that occur during plugin loading (ADAMK)
    - 'Simple' possible fix for #331 to update the tabs when 'save all' is 
      run in Padre. (PLAVEN)
    - Fixed #819: Don't crash on missing project dir (SEWI)
    - Upgrading --desktop option from VBScript to a new Win32::Shortcut-based
      Padre::Desktop. Desktop link creation works on Vista and newer
      operating systems again (ADAMK)
    - Tuned menubar refresh to only fire if we change document mimetype,
      which saves a ton of CPU and seems to reduce flicker (ADAMK)

0.54 2010.01.07
    - Added experimental support for clickable filenames in Output panel.
      Currently only matches: <error> at <file> line 5. (PDONELAN)
    - If all files are closed, the function list would ->Hide itself
      permanently and never come back. Resolved (ADAMK)

Changes  view on Meta::CPAN

    - Smart highlighting works now in realtime as you select text (AZAWAWI)
    - Fixed ticket #611: File | Open does not support UNC path (AZAWAWI)
    - Save session now suggest the name of the last opened session for saving (SEWI)
    - Fixed ticket #627: Suggestion: Make it possible to copy 'Syntax Check'
      messages (AZAWAWI)
    - Require version 0.20 of Wx::Perl::ProcessStream to fix #628 (AZAWAWI, SZABGAB)
    - Fixed ticket #493: splash image license not suitable for Debian (AZAWAWI)
    - Fixed t/86-service.t to work again on win32 (AZAWAWI)
    - Fixed ticket #314: Padre broken on MS Vista when starting with no file
      to be opened (AZAWAWI)
    - Added a 'padre --desktop' option that improves Padre-Windows integration.
      This creates a desktop shortcut and an "Edit with Padre" in the shell 
      context menu (AZAWAWI)
    - Made beginner error checks report the line where an error was located (SEWI)
    - Fixed: Syntax checker now only shows errors from current file (SEWI)
    - padre --version displays a MessageBox under wperl.exe (AZAWAWI)
    - Option to continue on beginner errors (SEWI)
    - Made title bar configurable (SEWI)
    - Autocomplete on every char (enable it in the preferences) (SEWI)
    - Add logfile so the developer debugger of padre will print there
      and not on STDERR. (SZABGAB)
    - Show file size on disk in statistics (SEWI)
    - Under Linux and BSD, 'padre --desktop' adds a Padre.desktop inside
      /usr/share/applications (AZAWAWI)
    - When saving a module for the first time, Padre will attempt to guess the
      name of the file so you don't need to type it (ADAMK)
    - Added "Dump Expression" to Developer Plugin to evaluate and dump a single
      expression within the Padre context (ADAMK)
    - Perl interpreter for running scripts is now configurable (SEWI)
    - Added MIME type count to PopularityContest, but it's still not sending
      anything (SEWI)
    - Added a runnable-flag to Padre::File and it's current modules (SEWI)
    - Syntax check now doesn't slow down typing (SEWI)

MANIFEST  view on Meta::CPAN

share/locale/nl-nl.po
share/locale/no.po
share/locale/pl.po
share/locale/pt-br.po
share/locale/ru.po
share/locale/tr.po
share/locale/zh-cn.po
share/locale/zh-tw.po
share/padre-splash-ccnc.png
share/padre-splash.png
share/padre.desktop
share/padre.desktop.README
share/ppm/README.txt
share/README.txt
share/templates/perl5/01_compile_t.tt
share/templates/perl5/module_install_dsl_pl.tt
share/templates/perl5/module_install_pl.tt
share/templates/perl5/module_pm.tt
share/templates/perl5/script_pl.tt
share/templates/perl5/test_t.tt
share/templates/perl6/script_p6.tt
share/themes/default.txt

lib/Padre/Desktop.pm  view on Meta::CPAN

package Padre::Desktop;

=pod

=head1 NAME

Padre::Desktop - Support library for Padre desktop integration

=head1 DESCRIPTION

This module provides a collection of functionality related to operating
system integration. It is intended to serve as a repository for code
relating to file extensions, desktop shortcuts, and so on.

This module is intended to be loadable without having to load the
main Padre code tree.

The workings of this module are currently undocumented.

=cut

use 5.008005;
use strict;

lib/Padre/Desktop.pm  view on Meta::CPAN

	#exit if we could not find Padre's executable in PATH
	if ($padre_executable) {
		require File::Basename;
		my $padre_exe_dir = File::Basename::dirname($padre_executable);
		return ( $padre_executable, $padre_exe_dir );
	} else {
		return;
	}
}

sub desktop {
	if (Padre::Constant::WIN32) {

		#TODO Support Vista/Win7 UAC (User Account Control)

		# Find Padre's executable
		my ( $padre_exe, $padre_exe_dir ) = find_padre_location();
		return 0 unless $padre_exe;

		# Write to the registry to get the "Edit with Padre" in the
		# right-click-shell-context menu

lib/Padre/Desktop.pm  view on Meta::CPAN

			TiedRef => \$Registry, Delimiter => '/', ArrayValues => 1,
		);
		$Registry->Delimiter('/');
		$Registry->{'HKEY_CLASSES_ROOT/*/shell/'} = {
			'Edit with Padre/' => {
				'Command/' => { '' => 'c:\\strawberry\\perl\\bin\\padre.exe "%1"' },
			}
			}
			or return 0;

		# create Padre's desktop shortcut
		require File::HomeDir;
		my $padre_lnk = File::Spec->catfile(
			File::HomeDir->my_desktop,
			'Padre.lnk',
		);
		return 1 if -f $padre_lnk;

		# NOTE: Use Padre::Perl to make this distribution agnostic
		require Win32::Shortcut;
		my $link = Win32::Shortcut->new;
		$link->{Description}      = 'Padre - The Perl IDE';
		$link->{Path}             = $padre_exe;
		$link->{WorkingDirectory} = $padre_exe_dir;
		$link->Save($padre_lnk);
		$link->Close;

		return 1;
	}

	if (Padre::Constant::UNIX) {

		# create Padre's desktop shortcut
		require File::HomeDir;
		my $padre_desktop = File::Spec->catfile(
			File::HomeDir->my_desktop,
			'padre.desktop',
		);
		return 1 if -f $padre_desktop;

		require Padre::Util;
		my $icon_file = Padre::Util::sharedir('/icons/padre/64x64/logo.png');

		open my $FH, '>', $padre_desktop or die "Could not open $padre_desktop for writing\n";
		print $FH <<END;
[Desktop Entry]
Encoding=UTF-8
Name=Padre
Comment=The Perl IDE
Exec=padre
Icon=$icon_file
Categories=Application;Development;Perl;IDE
Version=1.0
Type=Application
Terminal=0

END
		close $FH;
		chmod 0755, $padre_desktop; # make executable

		return 1;
	}

	return 0;
}

sub quicklaunch {
	if (Padre::Constant::WIN32) {

lib/Padre/Project.pm  view on Meta::CPAN

				return 0;
			}

			# Windows thumbnailing, instead of having sensibly
			# centralised storage of thumbnails, likes to put a
			# file in every single directory.
			if ( $_->{name} eq 'Thumbs.db' ) {
				return 0;
			}

			# Likewise, desktop.ini files are stupid files used
			# by windows to make a folder behave weirdly.
			# Ignore them too.
			if ( $_->{name} eq 'desktop.ini' ) {
				return 0;
			}
		}

		return 1;
	};
}

# Alternate form
sub ignore_skip {

lib/Padre/Project.pm  view on Meta::CPAN

		# with a dollar sign as "hidden". This is mainly relevant if
		# we are opening some project across a UNC path on more recent
		# versions of Windows.
		push @$rule, "(?:^|\\/)\\\$";
		push @$rule, "\\\$\$";

		# Windows thumbnailing, instead of having sensibly centralised
		# storage of thumbnails, likes to put a file in every single directory.
		push @$rule, "(?:^|\\/)Thumbs.db\$";

		# Likewise, desktop.ini files are stupid files used by windows
		# to make a folder behave weirdly. Ignore them too.
		push @$rule, "(?:^|\\/)desktop.ini\$";
	}

	return $rule;
}

sub name {
	my $self = shift;
	my $name = ( reverse( File::Spec->splitdir( $self->root ) ) )[0];

	if ( !defined $name or $name eq '' ) { # Fallback

lib/Padre/Util/FileBrowser.pm  view on Meta::CPAN


	my ( $self, $filename ) = @_;

	my $error;
	if ( defined $ENV{KDE_FULL_SESSION} ) {

		# In KDE, execute: kfmclient exec $filename
		$error = $self->_execute( 'kfmclient', "exec", $filename );
	} elsif ( defined $ENV{GNOME_DESKTOP_SESSION_ID} ) {

		# In Gnome, execute: nautilus --nodesktop --browser $filename
		$error = $self->_execute( 'nautilus', "--no-desktop", "--browser", $filename );
	} else {
		$error = Wx::gettext("Could not find KDE or GNOME");
	}

	return $error;
}

1;

__END__

lib/Padre/Wx/Icon.pm  view on Meta::CPAN

package Padre::Wx::Icon;

# It turns out that icon management needs to be more complex than just
# a few utility functions in Padre::Wx, and that it needs an entire
# library of its own.

# This library attempts to integrate padre with the freedesktop.org
# icon specifications using a highly limited and mostly
# wrong implementation of the algorithms they describe.
# http://standards.freedesktop.org/icon-naming-spec
# http://standards.freedesktop.org/icon-theme-spec

# Initially we only support the use of icons in directories bundled
# with Padre. Later, we'll probably be forced by distro-packagers and
# users to support integration with system icon themes.

use 5.008;
use strict;
use warnings;
use File::Spec   ();
use Params::Util ();

script/padre  view on Meta::CPAN


	# Avoid loading Getopt::Long entirely if we can,
	# sneakily saving a meg or so of RAM.
	require Getopt::Long;
	Getopt::Long::GetOptions(
		'help|usage'    => \$USAGE,
		'version'       => \$SHOWVERSION,
		'home=s'        => \$HOME,
		'reset'         => \$RESET,
		'session=s'     => \$SESSION,
		'desktop'       => \$DESKTOP,
		'actionqueue=s' => \$ACTIONS,
		'locale=s'      => \$LOCALE,

		# Keep this sekrit for now --ADAMK
		'preload' => \$PRELOAD,
	) or $USAGE = 1;
}



script/padre  view on Meta::CPAN

# Padre command line usage
if ($USAGE) {
	print <<"END_USAGE";
Usage: $0 [FILENAMES]

--help              Shows this help message
--home=dir          Forces Padre "home" directory to a specific location
--reset             Flush entire local config directory and reset to defaults
--session=name      Open given session during Padre startup
--version           Prints Padre version and quits
--desktop           Integrate Padre with your desktop
--actionqueue=list  Run a list of comma-separated actions after Padre startup
--locale=name       Locale name to use

END_USAGE
	exit(1);
}

# Lock in the home and constants, which are needed for everything else
local $ENV{PADRE_HOME} = defined($HOME) ? $HOME : $ENV{PADRE_HOME};
require Padre::Constant;

script/padre  view on Meta::CPAN


# Destroy and reinitialise our config directory
if ($RESET) {
	require File::Remove;
	File::Remove::remove( \1, Padre::Constant::CONFIG_DIR() );
	Padre::Constant::init();
}

if ($DESKTOP) {
	require Padre::Desktop;
	unless ( Padre::Desktop::desktop() ) {
		error("--desktop not implemented for $^O");
	}
	exit(1);
}

# local $ENV{PADRE_PAR_PATH} = $ENV{PAR_TEMP} || '';

# If we have an action queue then we are running for automation reasons.
# Avoid the startup logic and continue to the main startup.
unless ( defined $ACTIONS ) {

share/padre.desktop.README  view on Meta::CPAN

Change the hardcoded paths in padre.desktop to your corresponding installation. This will be automated later.



( run in 0.476 second using v1.01-cache-2.11-cpan-299005ec8e3 )