diff options
-rw-r--r-- | gui_callbacks.pm | 7 | ||||
-rwxr-xr-x | rhimport | 82 | ||||
-rw-r--r-- | rhimport.glade | 55 | ||||
-rw-r--r-- | rhimport.pm | 17 |
4 files changed, 107 insertions, 54 deletions
diff --git a/gui_callbacks.pm b/gui_callbacks.pm index 05b6adf..dd2291d 100644 --- a/gui_callbacks.pm +++ b/gui_callbacks.pm @@ -32,6 +32,13 @@ sub on_exit Gtk2->main_quit; } +sub on_cb_pool_toggled +{ + my ($widget, $data) = @_; + + ::change_pool_gui(); +} + sub on_b_apply_clicked { my ($widget, $data) = @_; @@ -36,25 +36,25 @@ my $DBUSER = "rivendellro"; my $DBPW = "lldrivenro"; my $DB = "rivendell"; my $HELP = 0; -my $M3U = ""; -my $DONTCONCAT = 0; +my $FILE = ""; +my $POOL = 0; my $DROPBOX = ""; my $LISTALLOWED = 0; GetOptions ("help!" => \$HELP, - "m3u=s" => \$M3U, - "dont-concat!" => \$DONTCONCAT, + "file=s" => \$FILE, + "pool!" => \$POOL, "dropbox=s" => \$DROPBOX, "list-allowed!" => \$LISTALLOWED, ); if($HELP) { print << "EOF"; -usage: $0 --m3u <playlist file> --dont-concat +usage: $0 --file <audio or playlist file> --pool --dropbox <path to dropbox> --list-allowed options: - --m3u the playlist file to import - --dont-concat dont concat the audio files, import as seperate files + --file the media file or playlist to import + --pool pool mode, import media files referneced by playlist --dropbox the path to the dropbox to use --list-allowed list allowed dropboxes and exit @@ -62,8 +62,6 @@ EOF exit; } -my $CONCAT = 0; -$CONCAT = 1 unless $DONTCONCAT; my $user = $ENV{'USER'}; $user or die "Username not found in environment"; @@ -97,7 +95,7 @@ if($LISTALLOWED) { my $guixml; -if(!$M3U && !$DROPBOX) { +if(!$FILE && !$DROPBOX) { Gtk2->init; $guixml = Gtk2::GladeXML->new('rhimport.glade'); @@ -116,11 +114,6 @@ if(!$M3U && !$DROPBOX) { $co_dropbox->add_attribute($renderer, text => 0); $co_dropbox->set_active(0); - my $filter = Gtk2::FileFilter->new; - $filter->add_pattern("*.m3u"); - my $filechooser = $guixml->get_widget('filechooser'); - $filechooser->set_filter($filter); - my $appwin = $guixml->get_widget('appwin'); $appwin or die "can't find Main Window"; $appwin->resize(800,600); @@ -131,6 +124,30 @@ if(!$M3U && !$DROPBOX) { exit 0; } +sub change_pool_gui() +{ + if(!$guixml) { + print STDERR "no GUI definition found!\n"; + exit 0; + } + + my $l_file_playlist = $guixml->get_widget('l_file_playlist'); + my $filechooser = $guixml->get_widget('filechooser'); + + my $cb_pool = $guixml->get_widget('cb_pool'); + if($cb_pool->get_active) { + $l_file_playlist->set_label("<b>Playlist</b>"); + my $filter = Gtk2::FileFilter->new; + $filter->add_pattern("*.m3u"); + $filechooser->set_filter($filter); + } else { + $l_file_playlist->set_label("<b>File</b>"); + my $filter = Gtk2::FileFilter->new; + $filter->add_pattern("*"); + $filechooser->set_filter($filter); + } +} + sub start_import_gui() { if(!$guixml) { @@ -141,8 +158,8 @@ sub start_import_gui() my $l_status = $guixml->get_widget('l_status'); my $filechooser = $guixml->get_widget('filechooser'); - my $m3u = $filechooser->get_filename; - if(!$m3u || -d $m3u) { + my $file = $filechooser->get_filename; + if(!$file || -d $file) { $l_status->set_label("No Playlist selected!"); return 0; } @@ -151,28 +168,35 @@ sub start_import_gui() my $co_dropbox = $guixml->get_widget('co_dropbox'); my $dropbox = $co_dropbox->get_active_text; - my $cb_concat = $guixml->get_widget('cb_concat'); - my $concat = 1; - $concat = 0 unless $cb_concat->get_active; + $l_status->set_label("importing from $file"); - $l_status->set_label("importing from $m3u"); - - rhimport::start_import($m3u, $dropbox, $concat); + my $cb_pool = $guixml->get_widget('cb_pool'); + my $ret; + if($cb_pool->get_active) { + $ret = rhimport::import_playlist($file, $dropbox); + } else { + $ret = rhimport::import_file($file, $dropbox); + } - return 0; + return $ret; } ########################################### ## command line mode -(-e "$M3U") or die "file '$M3U' not found"; -if($CONCAT) { - print "Will import $M3U (concatenated), with user $user\n\n"; +(-e "$FILE") or die "file '$FILE' not found"; +if($POOL) { + print "Will import from playlist $FILE, with user $user\n\n"; } else { - print "Will import $M3U (seperate files), with user $user\n\n"; + print "Will import $FILE, with user $user\n\n"; } -my $ret = rhimport::start_import($M3U, $DROPBOX, $CONCAT); +my $ret; +if($POOL) { + $ret = rhimport::import_playlist($FILE, $DROPBOX); +} else { + $ret = rhimport::import_file($FILE, $DROPBOX); +} # $dbh->disconnect(); exit $ret; diff --git a/rhimport.glade b/rhimport.glade index 16e83bc..a4d6503 100644 --- a/rhimport.glade +++ b/rhimport.glade @@ -28,20 +28,22 @@ <property name="orientation">vertical</property> <property name="spacing">4</property> <child> - <widget class="GtkLabel" id="l_dropbox"> + <widget class="GtkHSeparator" id="hseparator"> <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="label"><b>Dropbox</b></property> - <property name="use_markup">True</property> </widget> <packing> <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">5</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkComboBox" id="co_dropbox"> + <widget class="GtkLabel" id="l_dropbox"> <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="label"><b>Dropbox</b></property> + <property name="use_markup">True</property> </widget> <packing> <property name="expand">False</property> @@ -49,11 +51,8 @@ </packing> </child> <child> - <widget class="GtkLabel" id="l_playlist"> + <widget class="GtkComboBox" id="co_dropbox"> <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="label"><b>Playlist</b></property> - <property name="use_markup">True</property> </widget> <packing> <property name="expand">False</property> @@ -61,25 +60,26 @@ </packing> </child> <child> - <widget class="GtkFileChooserWidget" id="filechooser"> + <widget class="GtkCheckButton" id="cb_pool"> + <property name="label" translatable="yes">Musik Pool</property> <property name="visible">True</property> - <property name="orientation">vertical</property> - <property name="use_preview_label">False</property> - <property name="preview_widget_active">False</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="xalign">0.46000000834465027</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_cb_pool_toggled"/> </widget> <packing> + <property name="expand">False</property> <property name="position">3</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="cb_concat"> - <property name="label" translatable="yes">Musikdateien zusammenfügen</property> + <widget class="GtkLabel" id="l_file_playlist"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="xalign">0.46000000834465027</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> + <property name="sensitive">False</property> + <property name="label"><b>File</b></property> + <property name="use_markup">True</property> </widget> <packing> <property name="expand">False</property> @@ -87,13 +87,24 @@ </packing> </child> <child> + <widget class="GtkFileChooserWidget" id="filechooser"> + <property name="visible">True</property> + <property name="orientation">vertical</property> + <property name="preview_widget_active">False</property> + <property name="use_preview_label">False</property> + </widget> + <packing> + <property name="position">5</property> + </packing> + </child> + <child> <widget class="GtkProgressBar" id="progressbar"> <property name="visible">True</property> <property name="sensitive">False</property> </widget> <packing> <property name="expand">False</property> - <property name="position">5</property> + <property name="position">6</property> </packing> </child> <child> @@ -140,7 +151,7 @@ </widget> <packing> <property name="expand">False</property> - <property name="position">6</property> + <property name="position">7</property> </packing> </child> </widget> diff --git a/rhimport.pm b/rhimport.pm index 064a8ad..512652b 100644 --- a/rhimport.pm +++ b/rhimport.pm @@ -25,11 +25,22 @@ use strict; package rhimport; -sub start_import +sub import_playlist { - my ($m3u, $dropbox, $concat) = @_; + my ($playlist, $dropbox) = @_; + + print "Starting import from playlist $playlist to $dropbox\n"; + + + return 0; +} + +sub import_file +{ + my ($file, $dropbox) = @_; + + print "Starting import from $file to $dropbox\n"; - print "Starting import from $m3u($concat) to $dropbox\n"; return 0; } |