将 paste-img 改得更加 KISS

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

将 paste-img 改得更加 KISS

#1

帖子 eexpress » 2010-10-07 14:42

决定增强原有的cli版本。剥离gui作为外壳。以后增加rc配置。
http://code.google.com/p/paste-img/
附件
pi.pl.tar.xz
cli增强版本
(1.91 KiB) 已下载 74 次
参数和操作说明
参数和操作说明
ccsm的super+鼠标设置:截图+贴图
ccsm的super+鼠标设置:截图+贴图
● 鸣学
头像
Ubuntu与Linux
帖子: 1211
注册时间: 2010-06-09 19:57

Re: 将 paste-img 改得更加 KISS

#2

帖子 Ubuntu与Linux » 2010-10-07 14:50

传说的沙发?? :em11
头像
hcym
帖子: 15634
注册时间: 2007-05-06 2:46

Re: 将 paste-img 改得更加 KISS

#3

帖子 hcym » 2010-10-07 14:51

不太 KISS
附件
kiss.png
وإذا كان هذا لا يحصل أكثر من 100 ملاحظات ، انا ذاهب الى غضب
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 将 paste-img 改得更加 KISS

#4

帖子 eexpress » 2010-10-09 13:00

简化的gui。

代码: 全选

● cat ./paste_img.pl 
#!/usr/bin/perl

use utf8;       # 文件路径才可以使用中文。
use Gtk2 -init;
use Gtk2::GladeXML;
use File::Basename qw/basename dirname/;
use Encode;
$user="eexp";
#----------------------------------
chdir dirname (-l $0?readlink $0:$0);
$app="paste_img"; $cli="pi.pl";
my $gui = Gtk2::GladeXML->new("$app.glade");
$gui->signal_autoconnect_from_package('main');
#----------------------------------
#$select="imagebin";
$box2 = $gui->get_widget('vbox2');
$button = Gtk2::RadioButton->new(undef, "null");
@group = $button->get_group;
@web=`./$cli -l`;
foreach (@web){
chomp;
s/\s.*$//,$select=$_ if /\*/;
$button = Gtk2::RadioButton->new_with_label(@group, "$_");
$button->signal_connect('toggled'=>\&radio_clicked);
$button->set_active(TRUE) if /$select/;
$box2->pack_start($button, TRUE, TRUE, 0);
$button->show;
print "...$_...\n";
}
#----------------------------------
$ff=Gtk2::FileFilter->new();
$ff->add_mime_type("image/png");
$ff->add_mime_type("image/jpeg");
#$ff->add_pattern("*.png");
$gui->get_widget('filechooserbutton2')->add_filter($ff);
$gui->get_widget('filechooserbutton2')->set_filename("$app.png");
#----------------------------------
$gui->get_widget('preview')->drag_dest_set('all', ["link","ask"], {target=>'STRING', flags=>['other-app','other-widget'], info=>0});
Gtk2->main;

#========================子程序============================
sub on_preview_drag_data_received{
        my ($tolist, $context, $x, $y, $data, $info, $time, $fromlist) = @_;
        use URI::Escape;
        $_=$data->get_text(); chomp; 
        print "drag:$_\n";
        $_=uri_unescape($_); 
        s'^file://'';
        $_=decode("utf8",$_);
        print "$_\n";
        $gui->get_widget('filechooserbutton2')->set_filename($_);
        print $gui->get_widget('filechooserbutton2')->get_filename();
#nautilus' String
#file:///home/exp/%E4%B8%8B%E8%BD%BD/d70b644df40e4a68da6eaeef49dcf469.jpg
#file:///home/exp/%E4%B8%8B%E8%BD%BD/2010-09-25-15:44:34.png
#rox no String
        $context->finish(1, 0, $time);
        return 0;
}
#----------------------------------
sub radio_clicked{
$_=shift;
$select=$_->get_label;
}
#----------------------------------
sub on_mainwindow_destroy{
Gtk2->main_quit;
}
#----------------------------------
sub on_filechooserbutton2_selection_changed{
$gui->get_widget('preview')->set_from_file($gui->get_widget('filechooserbutton2')->get_filename());
}
#----------------------------------
sub on_bpaste_clicked{
my $pic=$gui->get_widget('filechooserbutton2')->get_filename();
$pic=encode("utf8",$pic);
print "./$cli -s $select -n $user $pic\n";
my @re=`./$cli -s $select -n $user $pic`;
@re=grep /Paste URL/,@re;
$_=$re[0];
$gui->get_widget('statusbar1')->push(0,"$_");
}
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 将 paste-img 改得更加 KISS

#5

帖子 eexpress » 2010-10-09 21:43

增强CLI版本+简化GUI版本
支持拖放图片到Image和Filechooserbutton
带notify提示和自动复制url到剪贴板。
附件
paste_img_KISS.tar.xz
(23.5 KiB) 已下载 71 次
● 鸣学
回复