Changeset 3227 for extras/pLoader/trunk/src/Uploader/GUI/wxApp.pm
- Timestamp:
- Mar 29, 2009, 12:51:40 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extras/pLoader/trunk/src/Uploader/GUI/wxApp.pm
r3198 r3227 302 302 locale 303 303 current_language 304 version 305 imagelist_version 306 use_offline 307 login_dlg 304 308 / 305 309 ); … … 313 317 } 314 318 319 315 320 sub OnInit { 316 321 my( $self ) = @_; 322 323 $self->version( 324 '2.0.1a' 325 ); 326 327 # to check if we can use stored cache 328 $self->imagelist_version( 329 '2' 330 ); 317 331 318 332 Wx::InitAllImageHandlers(); … … 353 367 $self->{current_language}||wxLANGUAGE_ENGLISH 354 368 ); 355 356 369 357 370 $self->init_locale; 358 359 360 361 my $ok = $self->Login(); 371 372 my $not_exit = $self->Login(); 362 373 # user pressed OK 363 if($ok){ 364 $self->pwg( 365 # get these parameters from dialog or from file 366 Uploader::PWG->new( 367 { 368 site_url => $self->site_url, 369 site_username => $self->site_username, 370 site_password => $self->site_password, 371 } 372 ) 373 ); 374 375 374 if($not_exit){ 375 if( !$self->use_offline ){ 376 while( $not_exit and !$self->_is_connected ){ 377 $not_exit = $self->Login(); 378 } 379 } 376 380 $self->_init_imagelist; 377 381 $self->_init_thumbimagelist; 378 379 382 $self->_init_frame; 380 383 } 381 384 382 $ok; 383 } 385 $not_exit; 386 } 387 388 389 sub _is_connected { 390 my ( $self ) = @_; 391 392 my $is_connected; 393 394 if($self->pwg->login_result->{stat} eq 'ok'){ 395 $is_connected = 1; 396 } 397 else{ 398 Wx::MessageBox( 399 sprintf( 400 "%s\n\n%s %s %s", 401 $self->pwg->login_result->{message}, 402 gettext("Connection to"), 403 $self->site_url, 404 gettext("failed"), 405 ), 406 gettext("Piwigo login error"), 407 wxOK | wxICON_EXCLAMATION, 408 ); 409 } 410 411 $is_connected; 412 } 413 384 414 385 415 my $locale; … … 397 427 $locale->AddCatalogLookupPathPrefix( '../locale'); 398 428 if(!$locale->AddCatalog( 'pLoader.mo' )){ 399 print "Cannot find translation catalog files. Use default language\n";429 Wx::LogMessage gettext("Cannot find translation catalog files. Use default language"); 400 430 } 401 431 … … 428 458 my $stored_imagelist; 429 459 460 my $use_new_imagelist; 461 430 462 if( -e $self->storable_file ){ 431 463 eval { … … 434 466 if($@){ 435 467 Wx::LogMessage( 436 "An error has occured. Can not read %s\n%s",468 gettext("An error has occured. Can not read %s\n%s"), 437 469 $self->storable_file, 438 470 $@ 439 471 ); 440 $ stored_imagelist = $self->_default_imagelist_params;472 $use_new_imagelist = 1 ; 441 473 } 474 # should have a valid imagelist 475 else{ 476 $use_new_imagelist = 1 unless $self->imagelist_version eq $stored_imagelist->{imagelist_version}; 477 if($use_new_imagelist){ 478 Wx::LogMessage(gettext("pLoader has to reset image cache.")); 479 } 480 } 442 481 } 443 482 else{ 483 $use_new_imagelist = 1 ; 484 } 485 486 if($use_new_imagelist){ 444 487 $stored_imagelist = $self->_default_imagelist_params ; 445 488 } 489 446 490 447 491 $self->imagelist( … … 449 493 $stored_imagelist 450 494 ) 495 ); 496 497 $self->imagelist->RescaleCallback( 498 sub { $self->RescaleImage(@_) } 451 499 ); 452 500 … … 483 531 count => 0, 484 532 storable_file => $self->storable_file, 485 images => [],486 533 userdata_dir => $self->userdata_dir, 487 534 default_name_prefix => 'Photo', 488 upload_rejects => [], 489 ResizeCallback => sub { $self->ResizeImage(@_) }, 535 upload_rejects => [], 536 image_sums => {}, 537 sums => [], 538 version => $self->version, 539 imagelist_version => $self->imagelist_version, 540 RescaleCallback => sub { $self->RescaleImage(@_) }, 541 ResizeCallback => sub { $self->ResizeImage(@_) }, 490 542 }; 491 543 … … 496 548 my ( $self ) = @_; 497 549 498 my $dlg = Uploader::GUI::wxLoginDlg->new( 499 { 500 title => gettext("Piwigo login"), 501 site_url => sub { $self->site_url(@_) }, 502 site_username => sub { $self->site_username(@_) }, 503 site_password => sub { $self->site_password(@_) }, 504 } 505 ); 550 $self->login_dlg( 551 Uploader::GUI::wxLoginDlg->new( 552 { 553 title => gettext("Piwigo login"), 554 site_url => sub { $self->site_url(@_) }, 555 site_username => sub { $self->site_username(@_) }, 556 site_password => sub { $self->site_password(@_) }, 557 use_offline => sub { $self->use_offline(@_) }, 558 } 559 ) 560 ) unless $self->login_dlg; 506 561 507 562 my $icon = Wx::Icon->new(); 508 563 $icon->LoadFile('../res/favicon.ico', wxBITMAP_TYPE_ICO); 509 $dlg->SetIcon($icon); 510 511 512 my $rval = $dlg->ShowModal(); 513 $dlg->Destroy; 564 $self->login_dlg->SetIcon($icon); 565 566 567 my $rval = $self->login_dlg->ShowModal(); 568 $self->login_dlg->Show(0); 569 570 $self->pwg( 571 # get these parameters from dialog or from file 572 Uploader::PWG->new( 573 { 574 site_url => $self->site_url, 575 site_username => $self->site_username, 576 site_password => $self->site_password, 577 } 578 ) 579 ); 514 580 515 581 $rval; … … 605 671 606 672 my $wximagelist = $self->imagelist->wx_thumb_imglist; 607 my $ images = $self->imagelist->images;673 my $sums = $self->imagelist->sums; 608 674 609 675 map { 676 my $image = $self->imagelist->image_sums->{$_}; 677 610 678 $wximagelist->Add( 611 679 Wx::Bitmap->new( 612 $ _->wx_thumb_file,680 $image->wx_thumb_file, 613 681 $self->GetWxBitmapType($self->imagelist->type), 614 682 ) 615 683 ); 616 684 } 617 @$ images ;685 @$sums ; 618 686 619 687 } … … 626 694 627 695 628 sub Res izeImage {696 sub RescaleImage { 629 697 my ( $self, $image_file, $image_file_out, $type, $ratio, $width, $height, $quality ) = @_; 630 698 … … 682 750 )){ 683 751 Wx::LogMessage( 684 "An error has occured. Can not save file %s",752 gettext("An error has occured. Can not save file %s"), 685 753 $image_file_out, 686 754 ) … … 688 756 } 689 757 758 sub ResizeImage { 759 my ( $self, $image_file, $image_file_out, $type, $width, $height, $quality ) = @_; 760 761 762 my $image = Wx::Image->new( 763 $image_file, 764 $self->GetWxBitmapType($type), 765 0 766 ); 767 768 my $w; 769 my $h; 770 771 my $img_w = $image->GetWidth; 772 my $img_h = $image->GetHeight; 773 774 # portrait 775 if( $img_w < $img_h ){ 776 $w = $height; 777 } 778 else{ 779 $w = $width; 780 } 781 # to respect aspect ratio 782 $h = sprintf( 783 "%.0f", 784 ($w*$img_h)/$img_w 785 ); 786 787 788 789 $image->Rescale( 790 $w, 791 $h, 792 wxIMAGE_QUALITY_HIGH 793 ); 794 795 $image->Resize( 796 [ $width, $height ], [ 0, 20], 797 ); 798 799 $quality ||= 90; 800 801 $image->SetOption( 802 "quality", 803 $quality 804 ); 805 806 if(!$image->SaveFile( 807 $image_file_out, 808 $self->GetWxBitmapType($type), 809 )){ 810 Wx::LogMessage( 811 gettext("An error has occured. Can not save file %s"), 812 $image_file_out, 813 ) 814 }; 815 } 816 817 818 819 690 820 sub _init_frame { 691 my ( $self ) = @_ 821 my ( $self ) = @_; 692 822 693 823 my $config = Wx::ConfigBase::Get; … … 699 829 my $sv = $config->ReadInt( "splitVertical", 150 ); 700 830 my $sh = $config->ReadInt( "splitHorizontal", 300 ); 701 702 my $url; 703 my $is_connected; 704 if($self->pwg->login_result->{stat} eq 'ok'){ 705 $url = $self->site_url; 706 $is_connected = 1; 707 } 708 else{ 709 $url = gettext("Not connected"); 710 Wx::MessageBox( 711 sprintf( 712 "%s\n\n%s %s %s", 713 $self->pwg->login_result->{message}, 714 gettext("Connection to"), 715 $self->site_url, 716 gettext("failed"), 717 ), 718 gettext("Piwigo login error"), 719 wxOK | wxICON_EXCLAMATION, 720 ); 721 } 722 831 832 my $url = $self->site_url; 833 834 if($self->use_offline){ 835 $url = gettext("Work Offline"); 836 } 723 837 724 838 my ( $frame ) = Uploader::GUI::wxFrameAUI->new( … … 728 842 width => $w, 729 843 height => $h, 730 title => "pLoader - Piwigo uploader 2.0.1a - [$url]",844 title => sprintf("pLoader - Piwigo uploader %s - [%s]", $self->version, $url), 731 845 pwg => $self->pwg, 732 846 imagelist => $self->imagelist, 733 is_connected => $is_connected,734 847 } 735 848 ); … … 743 856 $icon->LoadFile('../res/favicon.ico', wxBITMAP_TYPE_ICO); 744 857 $frame->SetIcon($icon); 745 746 747 return 1; 748 } 749 858 } 750 859 751 860 sub _readParams {
Note: See TracChangeset
for help on using the changeset viewer.