#!/usr/bin/perl -w # This file was preprocessed, do not edit! package Debconf::FrontEnd::Kde; use strict; use utf8; use Debconf::Gettext; use Debconf::Config; BEGIN { eval { require QtCore4 }; die "Unable to load QtCore -- is libqtcore4-perl installed?\n" if $@; eval { require QtGui4 }; die "Unable to load QtGui -- is libqtgui4-perl installed?\n" if $@; } use Debconf::FrontEnd::Kde::Wizard; use Debconf::Log ':all'; use base qw{Debconf::FrontEnd}; use Debconf::Encoding qw(to_Unicode); our @ARGV_KDE=(); sub init { my $this=shift; $this->SUPER::init(@_); $this->interactive(1); $this->cancelled(0); $this->createdelements([]); $this->dupelements([]); $this->capb('backup'); $this->need_tty(0); if (fork) { wait(); # for child if ($? != 0) { die "DISPLAY problem?\n"; } } else { $this->qtapp(Qt::Application(\@ARGV_KDE)); exit(0); # success } $this->window_initted(0); $this->kde_initted(0); } sub init_kde { my $this=shift; return if $this->kde_initted; debug frontend => "QTF: initializing app"; $this->qtapp(Qt::Application(\@ARGV_KDE)); $this->kde_initted(1); } sub init_window { my $this=shift; $this->init_kde(); return if $this->window_initted; $this->{vbox} = Qt::VBoxLayout; debug frontend => "QTF: initializing wizard"; $this->win(Debconf::FrontEnd::Kde::Wizard(undef,undef, $this)); debug frontend => "QTF: setting size"; $this->win->resize(620, 430); my $hostname = `hostname`; chomp $hostname; $this->hostname($hostname); debug frontend => "QTF: setting title"; $this->win->setTitle(to_Unicode(sprintf(gettext("Debconf on %s"), $this->hostname))); debug frontend => "QTF: initializing main widget"; $this->{toplayout} = Qt::HBoxLayout(); $this->win->setMainFrameLayout($this->toplayout); $this->win->setTitle(to_Unicode(sprintf(gettext("Debconf on %s"), $this->hostname))); $this->window_initted(1); } sub go { my $this=shift; my @elements=@{$this->elements}; $this->init_window; my $interactive=''; debug frontend => "QTF: -- START ------------------"; foreach my $element (@elements) { next unless $element->can("create"); $element->create($this->frame); $interactive=1; debug frontend => "QTF: ADD: " . $element->question->description; $this->{vbox}->addWidget($element->top); } if ($interactive) { foreach my $element (@elements) { next unless $element->top; debug frontend => "QTF: SHOW: " . $element->question->description; $element->top->show; } my $scroll = Qt::ScrollArea($this->win); my $widget = Qt::Widget($scroll); $widget->setLayout($this->{vbox}); $scroll->setWidget($widget); $this->toplayout->addWidget($scroll); if ($this->capb_backup) { $this->win->setBackEnabled(1); } else { $this->win->setBackEnabled(0); } $this->win->setNextEnabled(1); $this->win->show; debug frontend => "QTF: -- ENTER EVENTLOOP --------"; $this->qtapp->exec; $this->qtapp->exit; debug frontend => "QTF: -- LEFT EVENTLOOP --------"; $this->win->destroy(); $this->window_initted(0); } else { foreach my $element (@elements) { $element->show; } } debug frontend => "QTF: -- END --------------------"; if ($this->cancelled) { exit 1; } return '' if $this->goback; return 1; } sub progress_start { my $this=shift; $this->init_window; $this->SUPER::progress_start(@_); my $element=$this->progress_bar; $this->{vbox}->addWidget($element->top); $element->top->show; my $scroll = Qt::ScrollArea($this->win); my $widget = Qt::Widget($scroll); $widget->setLayout($this->{vbox}); $scroll->setWidget($widget); $this->toplayout->addWidget($scroll); $this->win->setBackEnabled(0); $this->win->setNextEnabled(0); $this->win->show; $this->qtapp->processEvents; } sub progress_set { my $this=shift; my $ret=$this->SUPER::progress_set(@_); $this->qtapp->processEvents; return $ret; } sub progress_info { my $this=shift; my $ret=$this->SUPER::progress_info(@_); $this->qtapp->processEvents; return $ret; } sub progress_stop { my $this=shift; my $element=$this->progress_bar; $this->SUPER::progress_stop(@_); $this->qtapp->processEvents; $this->win->setAttribute(Qt::WA_DeleteOnClose()); $this->win->close; $this->window_initted(0); if ($this->cancelled) { exit 1; } } sub shutdown { my $this = shift; if ($this->kde_initted) { if($this->win) { $this->win->destroy; } } } 1