You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amarok/amarok/src/scripts/databasescripts/databaseScripts.rb

146 lines
4.3 KiB

#!/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 tdebindings 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(parent = 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