|
|
|
#!/usr/bin/env ruby
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Form implementation generated from reading ui file 'selector.ui'
|
|
|
|
#
|
|
|
|
# Created: Fri Dec 2 23:40:46 2005
|
|
|
|
# by: The QtRuby User Interface Compiler (rbuic)
|
|
|
|
#
|
|
|
|
# WARNING! All changes made in this file will be lost!
|
|
|
|
#
|
|
|
|
# Ruby script for generic amarok database scripts
|
|
|
|
# (c) 2005 Seb Ruiz <me@sebruiz.net>
|
|
|
|
# Released under the GPL v2 license
|
|
|
|
|
|
|
|
begin
|
|
|
|
require 'Korundum'
|
|
|
|
rescue LoadError
|
|
|
|
error = 'Korundum (KDE bindings for ruby) from kdebindings v3.4 is required for this script.'
|
|
|
|
system("dcop", "amarok", "playlist", "popupMessage", "DatabaseScripts: #{error}")
|
|
|
|
exit
|
|
|
|
end
|
|
|
|
|
|
|
|
class DatabaseScriptChooser < Qt::Dialog
|
|
|
|
|
|
|
|
attr_reader :m_optionCombo
|
|
|
|
attr_reader :m_saveText
|
|
|
|
attr_reader :m_saveDir
|
|
|
|
attr_reader :m_okayButton
|
|
|
|
|
|
|
|
Q_SLOTS 'optionChanged(int)', 'textChanged(const QString &)', 'accept()', 'cancel()'
|
|
|
|
|
|
|
|
def initialize(tqparent = nil, name = nil, modal = false, fl = 0)
|
|
|
|
super
|
|
|
|
|
|
|
|
if name.nil?
|
|
|
|
setName("Database Script Chooser")
|
|
|
|
end
|
|
|
|
|
|
|
|
@Form1Layout = Qt::GridLayout.new(self, 1, 1, 2, 2, 'Form1Layout')
|
|
|
|
|
|
|
|
@tqlayout3 = Qt::VBoxLayout.new(nil, 0, 2, 'tqlayout3')
|
|
|
|
|
|
|
|
@m_optionCombo = Qt::ComboBox.new(false, self, "m_optionCombo")
|
|
|
|
@tqlayout3.addWidget(@m_optionCombo)
|
|
|
|
|
|
|
|
@tqlayout1 = Qt::HBoxLayout.new(nil, 0, 2, 'tqlayout1')
|
|
|
|
|
|
|
|
@m_saveText = Qt::Label.new(self, "m_saveText")
|
|
|
|
@tqlayout1.addWidget(@m_saveText)
|
|
|
|
|
|
|
|
@m_saveDir = KDE::URLRequester.new(self, "m_saveDir")
|
|
|
|
@m_saveDir.setMode( KDE::File::Directory | KDE::File::ExistingOnly );
|
|
|
|
@m_saveDir.setURL( ENV["HOME"] )
|
|
|
|
|
|
|
|
@tqlayout1.addWidget(@m_saveDir)
|
|
|
|
@tqlayout3.addLayout(@tqlayout1)
|
|
|
|
@spacer1 = Qt::SpacerItem.new(20, 21, Qt::SizePolicy::Minimum, Qt::SizePolicy::Expanding)
|
|
|
|
@tqlayout3.addItem(@spacer1)
|
|
|
|
|
|
|
|
@tqlayout2 = Qt::HBoxLayout.new(nil, 0, 2, 'tqlayout2')
|
|
|
|
|
|
|
|
@m_cancelButton = Qt::PushButton.new(self, "@m_cancelButton")
|
|
|
|
@tqlayout2.addWidget(@m_cancelButton)
|
|
|
|
|
|
|
|
@spacer2 = Qt::SpacerItem.new(61, 20, Qt::SizePolicy::Expanding, Qt::SizePolicy::Minimum)
|
|
|
|
@tqlayout2.addItem(@spacer2)
|
|
|
|
|
|
|
|
@m_okayButton = Qt::PushButton.new(self, "m_okayButton")
|
|
|
|
@tqlayout2.addWidget(@m_okayButton)
|
|
|
|
@tqlayout3.addLayout(@tqlayout2)
|
|
|
|
|
|
|
|
connect( @m_optionCombo, SIGNAL( "activated(int)" ), self, SLOT( "optionChanged(int)" ) );
|
|
|
|
connect( @m_okayButton, SIGNAL( "clicked()" ), self, SLOT( "accept()" ) )
|
|
|
|
connect( @m_cancelButton, SIGNAL( "clicked()" ), self, SLOT( "cancel()" ) )
|
|
|
|
|
|
|
|
connect( @m_saveDir, SIGNAL( "textChanged(const QString &)" ),
|
|
|
|
self, SLOT( "textChanged(const QString &)" ) );
|
|
|
|
|
|
|
|
@Form1Layout.addLayout(@tqlayout3, 0, 0)
|
|
|
|
languageChange()
|
|
|
|
|
|
|
|
resize( Qt::Size.new(356, 137).expandedTo(tqminimumSizeHint()) )
|
|
|
|
clearWState( WState_Polished )
|
|
|
|
end
|
|
|
|
|
|
|
|
def optionChanged( i )
|
|
|
|
@m_saveDir.setEnabled( i == 0 )
|
|
|
|
@m_saveText.setEnabled( i == 0 )
|
|
|
|
end
|
|
|
|
|
|
|
|
def textChanged(s)
|
|
|
|
@m_okayButton.setEnabled( !s.empty?() )
|
|
|
|
end
|
|
|
|
|
|
|
|
def accept()
|
|
|
|
arg = ""
|
|
|
|
case @m_optionCombo.currentItem()
|
|
|
|
when 0 # Backup
|
|
|
|
filename = File.dirname( File.expand_path( __FILE__ ) ) + "/backupDatabase.rb"
|
|
|
|
arg = @m_saveDir.url()
|
|
|
|
|
|
|
|
when 1 # Optimise
|
|
|
|
filename = File.dirname( File.expand_path( __FILE__ ) ) + "/staleStatistics.rb"
|
|
|
|
end
|
|
|
|
|
|
|
|
system("ruby", filename, arg)
|
|
|
|
|
|
|
|
done( 0 )
|
|
|
|
end
|
|
|
|
|
|
|
|
def cancel()
|
|
|
|
done( 0 )
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# Sets the strings of the subwidgets using the current
|
|
|
|
# language.
|
|
|
|
#
|
|
|
|
def languageChange()
|
|
|
|
setCaption( trUtf8("Database Scripts") )
|
|
|
|
@m_optionCombo.clear()
|
|
|
|
|
|
|
|
# add combo box items
|
|
|
|
@m_optionCombo.insertItem( trUtf8("Backup Database") )
|
|
|
|
@m_optionCombo.insertItem( trUtf8("Optimise Database") )
|
|
|
|
|
|
|
|
@m_saveText.setText( trUtf8("Save location:") )
|
|
|
|
@m_cancelButton.setText( trUtf8("Cancel") )
|
|
|
|
@m_okayButton.setText( trUtf8("Go!") )
|
|
|
|
end
|
|
|
|
protected :languageChange
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
if $0 == __FILE__
|
|
|
|
about = KDE::AboutData.new("databaseScriptChooser", "DatabaseScriptChooser", "0.1")
|
|
|
|
KDE::CmdLineArgs.init(ARGV, about)
|
|
|
|
a = KDE::Application.new
|
|
|
|
w = DatabaseScriptChooser.new
|
|
|
|
a.mainWidget = w
|
|
|
|
w.show
|
|
|
|
a.exec
|
|
|
|
end
|