kover-4.orig/0000755000175000017500000000000011145115715011751 5ustar renerenekover-4.orig/src/0000755000175000017500000000000011145115715012540 5ustar renerenekover-4.orig/src/cddb_211_item.cc0000644000175000017500000000332611107643076015354 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "cddb_211_item.h" #include #include #include cddb_211_item::cddb_211_item() { cddb_data = NULL; } cddb_211_item::cddb_211_item(char *input) { cddb_data = strdup(input); } cddb_211_item::cddb_211_item(string input) { cddb_data = strdup(input.c_str()); } cddb_211_item::~cddb_211_item() { if (cddb_data) free(cddb_data); } char * cddb_211_item::get() { return strdup(cddb_data); } void cddb_211_item::set_title(string input) { title = input; } void cddb_211_item::set_artist(string input) { artist = input; } void cddb_211_item::set_category(string input) { category = input; } void cddb_211_item::set_id(unsigned long input) { id = input; } string cddb_211_item::get_title() { return title; } string cddb_211_item::get_artist() { return artist; } string cddb_211_item::get_category() { return category; } unsigned long cddb_211_item::get_id() { return id; } kover-4.orig/src/koverfile.h0000644000175000017500000000716511107643076014714 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Description: storage of cover data * * 29 Oct 2001: variable inlet title font */ #ifndef KOVERFILE_H #define KOVERFILE_H #include #include #include #include #include #include #include /* class KURL; */ typedef enum { IMG_CENTER, IMG_TILE, IMG_STRETCH } IMG_MODE; typedef enum { IMG_FRONT_LEFT, IMG_FRONT_RIGHT, IMG_FRONT_FULL, IMG_BACK_INNER, IMG_BACK_FULL } IMG_TARGET; /**This class provides storage of cover data with file I/O *@author Denis Oliver Kropp */ class KoverFile : public QObject { Q_OBJECT public: KoverFile(); ~KoverFile(); void setTitle(const QString & _title); void setContents(const QString & _contents); void setTitleFont(const QFont & _title_font); void setTitleColor(const QColor & _title_color); void setContentsFont(const QFont & _contents_font); void set_inlet_title_font(const QFont & _inlet_title_font); void setContentsColor(const QColor & _contents_color); void setBackColor(const QColor & _back_color); void setNumber(const int _number); void setImageFile(const int _nr, const QString & _image_file); void setImageMode(const int _nr, const int _image_mode); void setImageTarget(const int _nr, const int _image_target); void set_display_title(bool title); void set_spine_text(bool bla); void set_the_spine_text(const QString & text); void set_cddb_id(const QString & text); QString title() const; QString contents() const; QFont titleFont() const; QColor titleColor() const; QFont contentsFont() const; QFont inlet_title_font() const; QColor contentsColor() const; QColor backColor() const; int number() const; QString imageFile(const int _nr) const; int imageMode(const int _nr) const; int imageTarget(const int _nr) const; bool display_title() const; bool spine_text() const; QString the_spine_text() const; QString cddb_id() const; bool openFile(const KUrl & url); bool saveFile(const KUrl & url); void reset(); bool empty(); signals: /** * This signal is emitted when any data changed. */ void dataChanged(bool image = false); private: QString cd_title; QString cd_contents; QFont cd_title_font; QColor cd_title_color; QFont cd_contents_font; QFont cd_inlet_title_font; QColor cd_contents_color; QColor cd_back_color; int cd_number; QString cd_image_file[3]; int cd_image_mode[3]; int cd_image_target[3]; bool cd_display_title; bool cd_spine_text; QString cd_the_spine_text; QString cd_cddb_id; bool save_as_XML(const QString & filename); bool open_XML(const QString & filename); bool open_XML(QDomDocument doc); bool checkForECD(QString & filename); bool openECD(QString & filename); void open_k3b_audio_project(QDomDocument doc); void open_k3b_data_project(QDomDocument doc); }; #endif /* KOVERFILE_H */ kover-4.orig/src/inexact_dialog.cc0000644000175000017500000001027611107643076016033 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "inexact_dialog.moc" #include "inexact_dialog.h" #include #include #include /** * The constructor inexact_dialog::inexact_dialog * constructing the dialog * @param inexact_list is a STL list containing the 211 (inexact match) items */ inexact_dialog::inexact_dialog(list < cddb_211_item * >inexact_list) : QDialog() { local_list = inexact_list; QVBoxLayout *top_layout = new QVBoxLayout(this); top_layout->setMargin(7); top_layout->addSpacing(10); QLabel *label = new QLabel(tr("Choose wisely!"), this); top_layout->addWidget(label); top_layout->addSpacing(10); box = new QListWidget(this); list < cddb_211_item * >::iterator item; for (item = inexact_list.begin(); item != inexact_list.end(); item++) { char disc_id[16]; snprintf(disc_id, 8, "%08lX", (*item)->get_id()); string tmp = string(disc_id); tmp += ": "; tmp += string((*item)->get_artist()); tmp += " / "; tmp += string((*item)->get_title()); tmp += " ("; tmp += string((*item)->get_category()); tmp += ")"; QListWidgetItem *newItem = new QListWidgetItem; newItem->setText(tmp.c_str()); box->addItem(newItem); } connect(box, SIGNAL(itemDoubleClicked(QListWidgetItem *)), SLOT(double_clicked(QListWidgetItem *))); top_layout->addWidget(box); top_layout->addSpacing(20); QBoxLayout *button_layout = new QBoxLayout(QBoxLayout::RightToLeft); top_layout->addLayout(button_layout); QPushButton *ok = new QPushButton(tr("Ok"), this); ok->setDefault(TRUE); ok->setMaximumWidth(70); connect(ok, SIGNAL(clicked()), SLOT(accept())); button_layout->addWidget(ok, 0, Qt::AlignRight); button_layout->addSpacing(5); QPushButton *quit = new QPushButton(tr("Quit"), this); connect(quit, SIGNAL(clicked()), SLOT(quit())); quit->setMaximumWidth(70); button_layout->addWidget(quit, 0, Qt::AlignRight); button_layout->addStretch(20); adjustSize(); } /** * The highly sophisticated destructor is doing nothing. */ inexact_dialog::~inexact_dialog() { } /** * The accept() slot. Setting the return value. * reimplemented from QDialog */ void inexact_dialog::accept() { QDialog::done(box->currentRow()); } /** * The done() slot. Setting the return value. */ void inexact_dialog::quit() { QDialog::done(-1); } /** * The double_clicked() slot. Setting the return value. * reimplemented from QDialog */ void inexact_dialog::double_clicked(QListWidgetItem *item) { QDialog::done(item->listWidget()->currentRow()); } /** * The exec() method. Executing the dialog. * reimplemented from QDialog * @see double_clicked(QListBoxItem *item) * @see accept() * @return an int representation of the selected item */ int inexact_dialog::exec() { if (local_list.size() == 1) { return 0; } else { return QDialog::exec(); } } /** * The get() method. * @param index the int value returned by exec() * @see exec() * @return the string containing the cddb id and category. Can be freed with free(3). */ char * inexact_dialog::get(int index) { int i = 0; list < cddb_211_item * >::iterator item; for (item = local_list.begin(); item != local_list.end(); item++) { if (i++ == index) return strdup((*item)->get()); } return NULL; } cddb_211_item * inexact_dialog::get_object(int index) { int i = 0; list < cddb_211_item * >::iterator item; for (item = local_list.begin(); item != local_list.end(); item++) { if (i++ == index) return (*item); } return NULL; } kover-4.orig/src/filemode.cc0000644000175000017500000000672511107643076014651 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000-2005 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: filemode.cc,v 1.3 2005/06/25 19:38:13 adrian Exp $ */ #include "filemode.moc" #include "filemode.h" #include #include #include #include #include //Added by qt3to4: #include /** * The constructor filemode::filemode * constructing the dialog * @param inexact_list is a STL list containing the 211 (inexact match) items */ filemode::filemode():QDialog(0, 0, TRUE, 0) { Q3VBoxLayout *top_layout = new Q3VBoxLayout(this); top_layout->setMargin(7); top_layout->addSpacing(10); QLabel *label = new QLabel(tr("Choose wisely!"), this); top_layout->addWidget(label); top_layout->addSpacing(10); box = new Q3ListBox(this); box->setMinimumWidth(box->maxItemWidth() + 30); connect(box, SIGNAL(doubleClicked(Q3ListBoxItem *)), SLOT(double_clicked(Q3ListBoxItem *))); top_layout->addWidget(box); top_layout->addSpacing(10); directory = new QLineEdit(this, "directory"); top_layout->addWidget(directory); top_layout->addSpacing(20); Q3BoxLayout *button_layout = new Q3BoxLayout(top_layout, Q3BoxLayout::RightToLeft, -10); QPushButton *ok = new QPushButton(tr("Ok"), this, "ok"); ok->setDefault(TRUE); ok->setMaximumWidth(70); connect(ok, SIGNAL(clicked()), SLOT(accept())); button_layout->addWidget(ok, 0, AlignRight); button_layout->addSpacing(5); QPushButton *quit = new QPushButton(tr("Quit"), this, "quit"); connect(quit, SIGNAL(clicked()), SLOT(quit())); quit->setMaximumWidth(70); button_layout->addWidget(quit, 0, AlignRight); button_layout->addStretch(20); adjustSize(); } /** * The highly sophisticated destructor is doing nothing. */ filemode::~filemode() { } /** * The accept() slot. Setting the return value. * reimplemented from QDialog */ void filemode::accept() { QDialog::done(box->currentItem()); } /** * The done() slot. Setting the return value. */ void filemode::quit() { QDialog::done(-1); } /** * The double_clicked() slot. Setting the return value. * reimplemented from QDialog */ void filemode::double_clicked(Q3ListBoxItem * item) { QDialog::done(item->listBox()->currentItem()); } /** * The exec() method. Executing the dialog. * reimplemented from QDialog * @see double_clicked(QListBoxItem *item) * @see accept() * @return an int representation of the selected item */ int filemode::exec() { if (0) { return 0; } else { return QDialog::exec(); } } /** * The get() method. * @param index the int value returned by exec() * @see exec() * @return the string containing the cddb id and category. Can be freed with free(3). */ char *filemode::get(int index __attribute((unused))) { return strdup(directory->text().utf8()); } kover-4.orig/src/cdview.cc0000644000175000017500000003347511107643076014350 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1998, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * 14 Dec 1998: Initial release * 18 Oct 2001: Added routines for 'inlet only' option * 29 Oct 2001: Change size of the inlet title font */ #include "cdview.moc" #include "cdview.h" #include #include #include #include #include #include #include #define FRONT_H 343 #define FRONT_V 338 #define BACK_HI 391 #define BACK_HS 17 #define BACK_V 334 CDView::CDView(KoverFile *_kover_file, QWidget *parent) : QFrame(parent) { kover_file = _kover_file; connect(kover_file, SIGNAL(dataChanged(bool)), SLOT(dataChanged(bool))); /* setBackgroundColor(Qt::white); */ previewMode = false; setFrameRect(QRect(0, 0, 0, 0)); setFrameStyle(WinPanel | Sunken); printer = new QPrinter(); printer->setOrientation(QPrinter::Landscape); /* printer->setMinMax(1, 2); */ printer->setFromTo(1, 2); } void CDView::paintEvent(QPaintEvent *) { QPainter paint(this); drawFrame(&paint); if (previewMode) { drawBooklet(&paint, 4, 4); inlet(&paint, 150, 4 * 2 + FRONT_V); paint.setWorldMatrix(QMatrix()); paint.setFont(QFont("helvetica", 14)); paint.setPen(Qt::black); paint.drawText(20, 400, tr("Click to close")); } else { paint.scale(0.4f, 0.4f); drawBooklet(&paint, 20, 15); inlet(&paint, 140, 15 * 2 + FRONT_V); } } void CDView::showPreview(bool preview) { previewMode = preview; update(); } void CDView::print_information(QPainter *p) { if (!previewMode) return; if (globals.one_page) { p->restore(); p->rotate(-90); p->drawLine(10 + FRONT_H, 500, 10, 500); p->drawText( -130, 140, tr("Click to close")); } } void CDView::printKover() { if (globals.one_page) { printer->setOrientation(QPrinter::Portrait); printer->setFromTo(1, 1); } else if (globals.its_a_slim_case) { printer->setOrientation(QPrinter::Landscape); printer->setFromTo(1, 1); } else if (globals.inlet_only) { printer->setOrientation(QPrinter::Landscape); printer->setFromTo(1, 1); } else { printer->setOrientation(QPrinter::Landscape); printer->setFromTo(1, 2); } QPrintDialog printDialog(printer, this); if (globals.one_page) printDialog.setMinMax(1, 1); else if (globals.its_a_slim_case) printDialog.setMinMax(1, 1); else if (globals.inlet_only) printDialog.setMinMax(1, 1); else printDialog.setMinMax(1, 2); printDialog.setWindowTitle(i18n("Print Dialog Title")); if (!printDialog.exec()) return; QPainter *paint = new QPainter(printer); paint->scale(1.35f, 1.35f); previewMode = true; /* hack */ kprintf("FIXME: printing does not working properly\n"); if (globals.one_page) { kprintf("globals.one_page\n"); drawBooklet(paint, 20, 15); inlet(paint, 20, 370); } else if (globals.its_a_slim_case) { kprintf("globals.its_a_slim_case\n"); drawBooklet(paint, 20, 20); } else if (globals.inlet_only) { kprintf("globals.inlet_only\n"); inlet(paint, 20, 20); } else { kprintf("normal print\n"); if (printer->fromPage() != 2) drawBooklet(paint, 20, 20); if (printer->fromPage() != 2 && printer->toPage() != 1) printer->newPage(); if (printer->toPage() != 1) inlet(paint, 20, 20); } /* print_information(paint); */ previewMode = false; paint->end(); delete (paint); } void CDView::booklet_images(QPainter *p, int X, int Y, int i) { QRect r; QRect s; int x; int y; int draw = 0; if (kover_file->imageTarget(i) == IMG_BACK_INNER || kover_file->imageTarget(i) == IMG_BACK_FULL) return; kprintf("i %d\n", i); kprintf("image mode %d\n", kover_file->imageMode(i)); kprintf("image target %d\n", kover_file->imageTarget(i)); switch (kover_file->imageMode(i)) { case IMG_CENTER: switch (kover_file->imageTarget(i)) { case IMG_FRONT_LEFT: r.setRect(X, Y, FRONT_H, FRONT_V); x = X + FRONT_H / 2 - images[i].width() / 2; y = Y + FRONT_V / 2 - images[i].height() / 2; draw = 1; break; case IMG_FRONT_RIGHT: if (globals.one_page) break; r.setRect(X + FRONT_H, Y, FRONT_H, FRONT_V); x = X + FRONT_H + FRONT_H / 2 - images[i].width() / 2; y = Y + FRONT_V / 2 - images[i].height() / 2; draw = 1; break; case IMG_FRONT_FULL: r.setRect(X, Y, FRONT_H, FRONT_V); if (!globals.one_page) r.setWidth(FRONT_H * 2); if (globals.one_page) x = X + FRONT_H / 2 - images[i].width() / 2; else x = X + FRONT_H - images[i].width() / 2; y = Y + FRONT_V / 2 - images[i].height() / 2; draw = 1; } if (draw) { p->setClipRect(r); p->drawPixmap(x, y, images[i]); } break; case IMG_TILE: switch (kover_file->imageTarget(i)) { case IMG_FRONT_LEFT: r.setRect(X, Y, FRONT_H, FRONT_V); draw = 1; break; case IMG_FRONT_RIGHT: if (globals.one_page) break; r.setRect(X + FRONT_H, Y, FRONT_H, FRONT_V); draw = 1; break; case IMG_FRONT_FULL: r.setRect(X, Y, FRONT_H, FRONT_V); if (!globals.one_page) r.setWidth(FRONT_H * 2); draw = 1; } if (draw) { p->setClipRect(r); p->drawTiledPixmap(r, images[i]); } break; case IMG_STRETCH: s.setRect(0, 0, images[i].width(), images[i].height()); r.setRect(X, Y, FRONT_H, FRONT_V); switch (kover_file->imageTarget(i)) { case IMG_FRONT_FULL: r.setWidth(FRONT_H * 2); draw = 1; break; case IMG_FRONT_LEFT: if (globals.one_page) break; draw = 1; break; case IMG_FRONT_RIGHT: r.moveLeft(X + FRONT_H); draw = 1; } if (draw) { p->setClipRect(r); p->drawPixmap(r, images[i], s); } } p->setClipping(false); } void CDView::drawBooklet(QPainter *p, int X, int Y) { if (globals.inlet_only) return; /* just to make sure we always start drawing at the same point */ p->translate(0, 0); if (globals.one_page) p->fillRect(X, Y, FRONT_H, FRONT_V, kover_file->backColor()); else p->fillRect(X, Y, FRONT_H * 2, FRONT_V, kover_file->backColor()); for (int i = 0; i < 3; i++) { if (!images[i].isNull()) booklet_images(p, X, Y, i); } p->setFont(kover_file->titleFont()); p->setPen(kover_file->titleColor()); if (!kover_file->display_title()) { if (globals.one_page) p->drawText(X + 10, Y + 10, FRONT_H - 20, FRONT_V - 10, Qt::AlignHCenter, kover_file->title()); else p->drawText(X + FRONT_H, Y + 10, FRONT_H, FRONT_V - 10, Qt::AlignHCenter, kover_file->title()); } p->setPen(Qt::black); if (globals.one_page) { /* top */ p->drawLine(X, Y, X + FRONT_H, Y); /* bottom */ p->drawLine(X, Y + FRONT_V, X + FRONT_H, Y + FRONT_V); /* right */ } else { /* top */ p->drawLine(X, Y, X + FRONT_H * 2, Y); /* bottom */ p->drawLine(X, Y + FRONT_V, X + FRONT_H * 2, Y + FRONT_V); /* right */ p->drawLine(X + FRONT_H * 2, Y, X + FRONT_H * 2, Y + FRONT_V); } /* left */ /* p->drawLine(X, Y-10, X, Y -8); */ /* p->drawLine(X, Y-6, X, Y -4); */ /* p->drawLine(X, Y-2, X, Y); */ p->drawLine(X, Y, X, Y + FRONT_V); if (kover_file->backColor() == Qt::black) p->setPen(Qt::white); /* middle */ p->drawLine(X + FRONT_H, Y, X + FRONT_H, Y + FRONT_V); if (globals.its_a_slim_case) { p->setFont(kover_file->contentsFont()); p->setPen(kover_file->contentsColor()); p->drawText(X + 10, Y + 10, FRONT_H - 20, FRONT_V - 10, Qt::AlignLeft, kover_file->contents()); } } void CDView::inlet_center_back_inner(QPainter *p, int X, int Y, int i) { int y; int x; kprintf("entering\n"); p->setClipRect(X + BACK_HS, Y, BACK_HI, BACK_V); x = X + BACK_HS + BACK_HI / 2 - images[i].width() / 2; y = Y + BACK_V / 2 - images[i].height() / 2; p->drawPixmap(x, y, images[i]); } void CDView::inlet_center_back_full(QPainter *p, int X, int Y, int i) { int x; int y; p->setClipRect(X, Y, (BACK_HI + BACK_HS * 2), BACK_V); x = X + BACK_HS + BACK_HI / 2 - images[i].width() / 2; y = Y + BACK_V / 2 - images[i].height() / 2; p->drawPixmap(x, y, images[i]); } void CDView::inlet_images(QPainter *p, int X, int Y, int i) { int draw = 0; QRect r; QRect s; if (kover_file->imageTarget(i) != IMG_BACK_INNER && kover_file->imageTarget(i) != IMG_BACK_FULL) return; kprintf("i %d\n", i); kprintf("image mode %d\n", kover_file->imageMode(i)); kprintf("image target %d\n", kover_file->imageTarget(i)); switch (kover_file->imageMode(i)) { case IMG_CENTER: switch (kover_file->imageTarget(i)) { case IMG_BACK_INNER: inlet_center_back_inner(p, X, Y, i); break; case IMG_BACK_FULL: inlet_center_back_full(p, X, Y, i); } break; case IMG_TILE: switch (kover_file->imageTarget(i)) { case IMG_BACK_INNER: r.setRect(X + BACK_HS, Y, BACK_HI, BACK_V); draw = 1; break; case IMG_BACK_FULL: r.setRect(X, Y, BACK_HI + BACK_HS * 2, BACK_V); draw = 1; } if (draw) { p->setClipRect(r); p->drawTiledPixmap(r, images[i]); } break; case IMG_STRETCH: switch (kover_file->imageTarget(i)) { case IMG_BACK_INNER: r.setRect(X + BACK_HS, Y, BACK_HI, BACK_V); s.setRect(0, 0, images[i].width(), images[i].height()); draw = 1; break; case IMG_BACK_FULL: r.setRect(X, Y, (BACK_HI + BACK_HS * 2), BACK_V); s.setRect(0, 0, images[i].width(), images[i].height()); draw = 1; } if (draw) { p->setClipRect(r); p->drawPixmap(r, images[i], s); } } p->setClipping(false); } void CDView::inlet(QPainter *p, int X, int Y) { int offset; if (globals.its_a_slim_case) return; QString title; if (kover_file->spine_text()) title = kover_file->the_spine_text(); else title = kover_file->title(); title.replace(QRegExp("\n"), " - "); /* just to make sure we always start drawing at the same point */ p->translate(0, 0); p->fillRect(X, Y, BACK_HI + BACK_HS * 2, BACK_V, kover_file->backColor()); for (int i = 0; i < 3; i++) { if (!images[i].isNull()) inlet_images(p, X, Y, i); } p->setPen(Qt::black); /* help */ p->drawLine(X - 20, Y, X - 15, Y); p->drawLine(X - 10, Y, X - 5, Y); p->drawLine(X + BACK_HI + BACK_HS * 2 + 20, Y, X + BACK_HI + BACK_HS * 2 + 15, Y); p->drawLine(X + BACK_HI + BACK_HS * 2 + 10, Y, X + BACK_HI + BACK_HS * 2 + 5, Y); p->drawLine(X - 20, Y + BACK_V, X - 15, Y + BACK_V); p->drawLine(X - 10, Y + BACK_V, X - 5, Y + BACK_V); p->drawLine(X + BACK_HI + BACK_HS * 2 + 20, Y + BACK_V, X + BACK_HI + BACK_HS * 2 + 15, Y + BACK_V); p->drawLine(X + BACK_HI + BACK_HS * 2 + 10, Y + BACK_V, X + BACK_HI + BACK_HS * 2 + 5, Y + BACK_V); p->drawLine(X, Y, X + BACK_HI + BACK_HS * 2, Y); p->drawLine(X, Y + BACK_V, X + BACK_HI + BACK_HS * 2, Y + BACK_V); p->drawLine(X, Y, X, Y + BACK_V); p->drawLine(X + BACK_HI + BACK_HS * 2, Y, X + BACK_HI + BACK_HS * 2, Y + BACK_V); if (kover_file->backColor() == Qt::black) p->setPen(Qt::white); p->drawLine(X + BACK_HS, Y, X + BACK_HS, Y + BACK_V); p->drawLine(X + BACK_HS + BACK_HI, Y, X + BACK_HS + BACK_HI, Y + BACK_V); p->translate(X, Y + BACK_V); p->rotate(-90); offset = 10; if (kover_file->number()) { QString numberStr; numberStr.setNum(kover_file->number()); p->setPen(Qt::red); p->setFont(QFont("helvetica", 12, QFont::Bold)); p->drawText(offset, 0, BACK_V - offset, BACK_HS, Qt::AlignLeft | Qt::AlignVCenter, numberStr); offset = 38; } p->setPen(kover_file->titleColor()); p->setFont(kover_file->inlet_title_font()); p->drawText(offset, 0, BACK_V - offset, BACK_HS, Qt::AlignLeft | Qt::AlignVCenter, title); p->translate(BACK_V, BACK_HS + BACK_HI); p->rotate(-180); offset = 10; if (kover_file->number()) { QString numberStr; numberStr.setNum(kover_file->number()); p->setPen(Qt::red); p->setFont(QFont("helvetica", 12, QFont::Bold)); p->drawText(offset, -BACK_HS, BACK_V - offset, BACK_HS, Qt::AlignLeft | Qt::AlignVCenter, numberStr); offset = 38; } p->setPen(kover_file->titleColor()); p->setFont(kover_file->inlet_title_font()); p->drawText(offset, -BACK_HS, BACK_V - offset, BACK_HS, Qt::AlignLeft | Qt::AlignVCenter, title); kprintf("%s\n", title.toUtf8().constData()); p->translate(0, BACK_HI); p->rotate(-90); if (!globals.inlet_only) { p->setFont(kover_file->contentsFont()); p->setPen(kover_file->contentsColor()); p->drawText(5, 7, BACK_HI - 5, BACK_V - 7, Qt::AlignLeft, kover_file->contents()); } else { p->setFont(kover_file->titleFont()); p->setPen(kover_file->titleColor()); p->drawText(5, 7, BACK_HI - 5, BACK_V - 7, Qt::AlignHCenter, kover_file->title()); p->setFont(kover_file->contentsFont()); p->setPen(kover_file->contentsColor()); int lines = kover_file->title().count(QRegExp("\n")); lines += 2; p->drawText(5, kover_file->titleFont().pointSize() * lines + 5, BACK_HI - 5, BACK_V - 7, Qt::AlignLeft, kover_file->contents()); } } void CDView::mousePressEvent(QMouseEvent *evt) { int i = evt->x(); i++; if (previewMode) emit stopPreview(); else { if (!globals.trigger_actual_size) return; emit actualSize(); } } void CDView::dataChanged(bool image) { int i = 3; kprintf("kover:CDView::dataChanged() %d\n", globals.one_page); while (i--) { if (kover_file->imageFile(i).isEmpty()) images[i] = QPixmap(); } if (image) { for (i = 0; i < 3; i++) { QImage load(kover_file->imageFile(i)); if (load.isNull()) images[i] = QPixmap(); else images[i] = QPixmap::fromImage(load); } } repaint(); } kover-4.orig/src/kover_config.h0000644000175000017500000000213611107643076015372 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Description: header for the config class * * 13 Jun 2001: Initial creation */ #ifndef KOVER_CONFIG_H #define KOVER_CONFIG_H class kover_config { public: void store_globals(); void load_globals(); void sync(); private: char *check_cddb_dir(); }; #endif /* KOVER_CONFIG_H */ kover-4.orig/src/pd.h0000644000175000017500000000573111107643076013326 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* This is the Preferences Dialog (pd) */ #ifndef PD_H #define PD_H #include #include #include #include #include #include #include using namespace std; class pd:public KConfigDialog { Q_OBJECT public: pd(QWidget *p, KConfigSkeleton *cs, bool changed = false); ~pd(); private: void setup_cdrom(); void set_cdrom(); void apply_settings(); void setup_cddb(); void set_cddb(); void setup_cddb_files(); void save_cddb_files(); void set_cddb_files(); void setup_cover(); void output_changed(int type); void set_cover(); void save_cover(); void setup_font(); void font_dialog(QFont *); void setup_misc(); void set_misc(); void save_misc(); int check(); QFont content; QFont title; QFont inlet_title; struct cddb_widgets { QLineEdit *cddb_server; QLineEdit *cgi_path; QCheckBox *use_proxy; QCheckBox *proxy_from_env; QLineEdit *proxy_server; QLineEdit *proxy_port; QComboBox *cddb_protocol; } cddb_widgets; struct cdrom_widgets { QLineEdit *cdrom_device; QCheckBox *eject_cdrom; } cdrom_widgets; struct cddb_files_widgets { QCheckBox *use_cache; QLineEdit *cddb_path; } cddb_files_widgets; struct misc_widgets { QCheckBox *save_position; QCheckBox *disable_animation; QCheckBox *trigger_actual_size; } misc_widgets; struct cover_widgets { QCheckBox *display_track_duration; QRadioButton *its_a_slim_case; QRadioButton *inlet_only; QRadioButton *its_normal; QRadioButton *one_page; QLabel *inlet; QLabel *booklet; } cover_widgets; struct font_widgets { QPushButton *change_content_font; QPushButton *change_title_font; QPushButton *change_inlet_title_font; } font_widgets; bool changed; private slots: void use_proxy(bool status); void use_proxy_env(bool status); void protocol_changed(int); void output_changed_1(); void output_changed_2(); void output_changed_3(); void output_changed_4(); void browsing(); void content_font_dialog(); void title_font_dialog(); void inlet_title_font_dialog(); protected Q_SLOTS: virtual void slotButtonClicked(int button); }; #endif /* PD_H */ kover-4.orig/src/kover.h0000644000175000017500000000224311107643076014044 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef KOVER_OLD_H #define KOVER_OLD_H #include #define kprintf(format, ARGS...) \ { if (verbose) \ k_printf(__PRETTY_FUNCTION__, __LINE__, format, ##ARGS); } #include #include #include using std::string; extern int verbose; void eject_cdrom(); void k_printf(const char *, int, const char *, ...); #endif kover-4.orig/src/without_cd.h0000644000175000017500000000244011107643076015066 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Description: dialog to execute a cddb query without a cd * * 11 Nov 2001: Initial release */ #ifndef WITHOUT_CD_H #define WITHOUT_CD_H #include #include #include class without_cd : public QDialog { Q_OBJECT public: without_cd(); ~without_cd(); int get_category(); char *get_id(); private: QLineEdit *cddb_id; QComboBox *category; void handle_input(); private slots: void accept(); void quit(); }; #endif /* WITHOUT_CD_H */ kover-4.orig/src/koverfile.cpp0000644000175000017500000004737311107643076015254 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ using namespace std; #include "koverfile.moc" #include #include #include #include #include #include #include #include #include #include KoverFile::KoverFile() { reset(); } KoverFile::~KoverFile() { } void KoverFile::reset() { cd_title = ""; cd_title_font = QFont(*globals.title_font); cd_contents = ""; cd_contents_font = QFont(*globals.content_font); cd_inlet_title_font = QFont(*globals.inlet_title_font); cd_title_color = Qt::black; cd_contents_color = Qt::black; cd_back_color = Qt::white; cd_number = 0; cd_cddb_id = ""; cd_image_file[0] = ""; cd_image_mode[0] = IMG_CENTER; cd_image_target[0] = IMG_FRONT_LEFT; cd_image_file[1] = ""; cd_image_mode[1] = IMG_CENTER; cd_image_target[1] = IMG_FRONT_LEFT; cd_image_file[2] = ""; cd_image_mode[2] = IMG_CENTER; cd_image_target[2] = IMG_FRONT_LEFT; cd_display_title = false; cd_spine_text = false; cd_the_spine_text = ""; emit dataChanged(); } bool KoverFile::empty() { if (cd_title == "" && cd_contents == "" && cd_the_spine_text == "") return true; else return false; } void KoverFile::setTitle(const QString & _title) { if (cd_title != _title) { cd_title = _title; cd_title.replace(QRegExp("\r"), "\n"); emit dataChanged(); } } void KoverFile::setContents(const QString & _contents) { if (cd_contents != _contents) { cd_contents = _contents; cd_contents.replace(QRegExp("\r"), "\n"); emit dataChanged(); } } void KoverFile::setTitleFont(const QFont & _title_font) { if (cd_title_font != _title_font) { cd_title_font = _title_font; emit dataChanged(); } } void KoverFile::setTitleColor(const QColor & _title_color) { if (cd_title_color != _title_color) { cd_title_color = _title_color; emit dataChanged(); } } void KoverFile::setContentsFont(const QFont & _contents_font) { if (cd_contents_font != _contents_font) { cd_contents_font = _contents_font; emit dataChanged(); } } void KoverFile::set_inlet_title_font(const QFont & _inlet_title_font) { if (cd_inlet_title_font != _inlet_title_font) { cd_inlet_title_font = _inlet_title_font; emit dataChanged(); } } void KoverFile::setContentsColor(const QColor & _contents_color) { if (cd_contents_color != _contents_color) { cd_contents_color = _contents_color; emit dataChanged(); } } void KoverFile::setBackColor(const QColor & _back_color) { if (cd_back_color != _back_color) { cd_back_color = _back_color; emit dataChanged(); } } void KoverFile::setNumber(const int _number) { if (cd_number != _number) { cd_number = _number; emit dataChanged(); } } void KoverFile::setImageFile(const int _nr, const QString & _image_file) { if (cd_image_file[_nr] != _image_file) { cd_image_file[_nr] = _image_file; emit dataChanged(true); } } void KoverFile::setImageMode(const int _nr, const int _image_mode) { if (cd_image_mode[_nr] != _image_mode) { cd_image_mode[_nr] = _image_mode; emit dataChanged(true); } } void KoverFile::setImageTarget(const int _nr, const int _image_target) { if (cd_image_target[_nr] != _image_target) { cd_image_target[_nr] = _image_target; emit dataChanged(true); } } void KoverFile::set_display_title(bool title) { cd_display_title = title; emit dataChanged(); } bool KoverFile::display_title() const { return cd_display_title; } QString KoverFile::title() const { return cd_title; } QString KoverFile::contents() const { return cd_contents; } QFont KoverFile::titleFont() const { return cd_title_font; } QColor KoverFile::titleColor() const { return cd_title_color; } QFont KoverFile::contentsFont() const { return cd_contents_font; } QFont KoverFile::inlet_title_font() const { return cd_inlet_title_font; } QColor KoverFile::contentsColor() const { return cd_contents_color; } QColor KoverFile::backColor() const { return cd_back_color; } int KoverFile::number() const { return cd_number; } QString KoverFile::imageFile(const int _nr) const { kprintf("KoverFile::imageFile():%s\n", cd_image_file[_nr].toUtf8().constData()); return cd_image_file[_nr]; } int KoverFile::imageMode(const int _nr) const { return cd_image_mode[_nr]; } int KoverFile::imageTarget(const int _nr) const { return cd_image_target[_nr]; } void KoverFile::set_spine_text(bool bla) { cd_spine_text = bla; emit dataChanged(); } bool KoverFile::spine_text() const { return cd_spine_text; } QString KoverFile::the_spine_text() const { return cd_the_spine_text; } void KoverFile::set_the_spine_text(const QString & text) { if (cd_the_spine_text != text) { cd_the_spine_text = text; emit dataChanged(); } } QString KoverFile::cddb_id() const { return cd_cddb_id; } void KoverFile::set_cddb_id(const QString & text) { if (cd_cddb_id != text) { cd_cddb_id = text; emit dataChanged(); } } bool KoverFile::checkForECD(QString & filename) { QFile ecd_file(filename); if (!ecd_file.open(QIODevice::ReadOnly)) return false; if ((ecd_file.read(8) == "DCEi20RP")) { ecd_file.close(); return true; } ecd_file.close(); return false; } bool KoverFile::openECD(QString & filename) { QFileInfo fi(filename); if (!fi.exists()) return false; if (!fi.isReadable()) return false; if (fi.isDir()) return false; char c; long i, length; QFile ecd_file(filename); if (!ecd_file.open(QIODevice::ReadOnly)) return false; /* ID */ ecd_file.seek(8); /* Title */ cd_title = ""; length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); for (i = 0; i < length; i++) { c = (long)ecd_file.read(1).constData(); ecd_file.seek(1); if ((c != 10) && (c != 13)) cd_title += c; else cd_title += 32; } /* Background image */ length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); ecd_file.seek(ecd_file.pos() + length); /* Foreground image */ length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); ecd_file.seek(ecd_file.pos() + length); /* Font 1, Data */ ecd_file.seek(ecd_file.pos() + 28); /* Font 1, Name */ length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); ecd_file.seek(ecd_file.pos() + length); /* Font 2, Data */ ecd_file.seek(ecd_file.pos() + 28); /* Font 2, Name */ length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); ecd_file.seek(ecd_file.pos() + length); /* Unknown */ ecd_file.seek(ecd_file.pos() + 22); /* Contents */ cd_contents = ""; length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); if (length == 0xff) { length = (long)ecd_file.read(1).constData(); ecd_file.seek(1); length += (long)ecd_file.read(1).constData() << 8; ecd_file.seek(1); } for (i = 0; i < length; i++) { c = (long)ecd_file.read(1).constData(); ecd_file.seek(1); if (c != 13) cd_contents += c; } ecd_file.close(); emit dataChanged(); return true; } bool KoverFile::openFile(const KUrl & url) { QString filename; QString tempFile; bool retval = false; filename = url.path(); QFileInfo fi(filename); if (!fi.exists() || !fi.isReadable() || fi.isDir()) { return false; } /* check for ECD */ if (checkForECD(filename)) { kprintf("even older format; opening ECD file\n"); retval = openECD(filename); emit dataChanged(true); return retval; } /* check for xml */ QDomDocument doc("kover"); QFile f(filename); if (!f.open(QIODevice::ReadOnly)) { return false; } /* this is for the k3b files */ /* unfortunately they changed to zipped format */ /* that's why i had to include this code and */ /* the kostore classes from koffice */ #if 0 KoStore *store = KoStore::createStore(filename, KoStore::Read); if (store) { if (!store->bad()) { if (store->open("maindata.xml")) { _DEBUG_ fprintf( stderr, "%s:this should be a kostore file\n", PACKAGE); bool answer = false; QIODevice *dev = store->device(); dev->open(QIODevice::ReadOnly); if (doc.setContent(dev)) answer = true; dev->close(); if (answer) answer = open_XML(doc); else answer = false; store->close(); delete store; emit dataChanged(true); return answer; } } } delete store; #endif if (doc.setContent(&f)) { f.close(); kprintf("must be one of the new XML files\n"); retval = open_XML(filename); emit dataChanged(true); return retval; } else { f.close(); return false; } emit dataChanged(true); if (!url.isLocalFile()) KIO::NetAccess::removeTempFile(tempFile); return true; } bool KoverFile::saveFile(const KUrl & url) { QString filename; KTemporaryFile tempFile; tempFile.setAutoRemove(true); if (!url.isLocalFile()) filename = tempFile.fileName(); else filename = url.path(); QFileInfo fi(filename); if (fi.exists() && !fi.isWritable()) return false; if (fi.isDir()) return false; if (fi.absolutePath() == "") return false; fi.setFile(fi.absoluteFilePath()); if (fi.exists() && !fi.isWritable()) return false; if (!save_as_XML(filename)) return false; return true; } bool KoverFile::save_as_XML(const QString & filename) { QDomElement text; QDomElement img; QDomText the_text; QStringList list; QDomDocument doc("kover"); QDomElement root = doc.documentElement(); QDomElement kover = doc.createElement("kover"); kover.setAttribute("name", PACKAGE); kover.setAttribute("version", VERSION); doc.appendChild(kover); /* comment */ QDomComment comment = doc.createComment("This file was created by " PACKAGE " " VERSION); kover.appendChild(comment); /* title */ QDomElement title = doc.createElement("title"); title.setAttribute("color", cd_title_color.name()); title.setAttribute("font", cd_title_font.family()); title.setAttribute("size", cd_title_font.pointSize()); title.setAttribute("weight", cd_title_font.weight()); title.setAttribute("italic", cd_title_font.italic()); title.setAttribute("display", cd_display_title); title.setAttribute("font_settings", cd_title_font.toString()); kover.appendChild(title); /* replace carriage return with newline */ cd_title.replace(QRegExp("\r"), "\n"); cd_contents.replace(QRegExp("\r"), "\n"); /* title text */ list = cd_title.split("\n"); for (QStringList::Iterator it = list.begin(); it != list.end(); ++it) { text = doc.createElement("text"); title.appendChild(text); the_text = doc.createCDATASection((*it).toUtf8()); text.appendChild(the_text); } for (int i = 0; i < 3; i++) { img = doc.createElement("img"); img.setAttribute("src", cd_image_file[i]); img.setAttribute("mode", cd_image_mode[i]); img.setAttribute("target", cd_image_target[i]); kover.appendChild(img); } /* general */ QDomElement general = doc.createElement("general"); general.setAttribute("bgcolor", cd_back_color.name()); general.setAttribute("number", cd_number); general.setAttribute("cddb_id", cd_cddb_id); kover.appendChild(general); /* inlet */ QDomElement inlet = doc.createElement("inlet"); inlet.setAttribute("font", cd_inlet_title_font.family()); inlet.setAttribute("size", cd_inlet_title_font.pointSize()); inlet.setAttribute("weight", cd_inlet_title_font.weight()); inlet.setAttribute("italic", cd_inlet_title_font.italic()); inlet.setAttribute("spine_text", cd_spine_text); inlet.setAttribute("font_settings", cd_inlet_title_font.toString()); the_text = doc.createCDATASection(cd_the_spine_text.toUtf8()); inlet.appendChild(the_text); kover.appendChild(inlet); /* content */ QDomElement content = doc.createElement("content"); content.setAttribute("color", cd_contents_color.name()); content.setAttribute("font", cd_contents_font.family()); content.setAttribute("size", cd_contents_font.pointSize()); content.setAttribute("weight", cd_contents_font.weight()); content.setAttribute("italic", cd_contents_font.italic()); content.setAttribute("font_settings", cd_contents_font.toString()); kover.appendChild(content); /* content text */ list = cd_contents.split("\n"); for (QStringList::Iterator it = list.begin(); it != list.end(); ++it) { text = doc.createElement("text"); content.appendChild(text); the_text = doc.createCDATASection((*it).toUtf8()); text.appendChild(the_text); } /* saving */ QFile f(filename); if (!f.open(QIODevice::WriteOnly)) return false; f.write(doc.toString().toUtf8()); f.write("\n", 1); /* newline */ f.close(); kprintf("%s\n", (const char *)(doc.toString()).toUtf8()); return true; } bool KoverFile::open_XML(const QString & filename) { reset(); QDomDocument doc; QFile f(filename); if (!f.open(QIODevice::ReadOnly)) return false; if (!doc.setContent(&f)) { f.close(); return false; } f.close(); return open_XML(doc); } bool KoverFile::open_XML(QDomDocument doc) { QDomElement docElem = doc.documentElement(); /* cerr << docElem.tagName() << endl; */ if (docElem.tagName() == "k3b_audio_project") { open_k3b_audio_project(doc); return true; } if (docElem.tagName() == "k3b_data_project") { open_k3b_data_project(doc); return true; } QDomNamedNodeMap nmm = docElem.attributes(); for (uint length = 0; length < nmm.length(); length++) { /* cerr << (nmm.item(length)).nodeName() << "..." << (nmm. item(length)).nodeValue() << endl; */ } QDomNode n = docElem.firstChild(); int image = 0; while (!n.isNull()) { QDomElement e = n.toElement(); /* try to convert the node to an element. */ if (!e.isNull()) { /* the node was really an element. */ /* cerr << e.tagName() << endl; */ QDomNamedNodeMap nm = e.attributes(); if (e.tagName() == "title") { cd_title_font = QFont((nm.namedItem( "font")).nodeValue(), (nm.namedItem( "size")).nodeValue( ).toInt(), (nm.namedItem( "weight")). nodeValue().toInt(), (nm.namedItem( "italic")). nodeValue().toInt()); cd_title_color = QColor((nm.namedItem( "color")). nodeValue()); cd_display_title = nm.namedItem("display").nodeValue().toInt(); kprintf("font:%s\n", cd_title_font.rawName().toUtf8(). constData()); } if (e.tagName() == "content") { cd_contents_font = QFont((nm.namedItem("font")).nodeValue(), (nm.namedItem( "size")).nodeValue().toInt(), (nm.namedItem( "weight")).nodeValue(). toInt(), (nm.namedItem( "italic")).nodeValue(). toInt()); cd_contents_color = QColor((nm.namedItem("color")).nodeValue()); kprintf("font:%s\n", cd_contents_font.rawName().toUtf8(). constData()); } if (e.tagName() == "inlet") { cd_inlet_title_font = QFont((nm.namedItem("font")).nodeValue(), (nm.namedItem( "size")).nodeValue().toInt(), (nm.namedItem( "weight")).nodeValue(). toInt(), (nm.namedItem( "italic")).nodeValue(). toInt()); cd_spine_text = nm.namedItem("spine_text").nodeValue(). toInt(); cd_the_spine_text = e.text(); kprintf("font:%s\n", cd_inlet_title_font.rawName().toUtf8(). constData()); } if (e.tagName() == "general") { cd_number = (nm.namedItem("number")).nodeValue(). toInt(); cd_back_color = QColor((nm.namedItem( "bgcolor")). nodeValue()); cd_cddb_id = (nm.namedItem("cddb_id")).nodeValue(); } if (e.tagName() == "img") { cd_image_file[image] = (nm.namedItem("src")).nodeValue(); cd_image_mode[image] = (nm.namedItem("mode")).nodeValue().toInt(); cd_image_target[image++] = (nm.namedItem("target")).nodeValue(). toInt(); } } QDomNode m = n.firstChild(); while (!m.isNull()) { QDomElement ee = m.toElement(); if (!ee.isNull()) { /* the node was really an element. */ /* cout << ee.tagName() << "...." << ee.text() << endl; */ if (e.tagName() == "title" && ee.tagName() == "text") { cd_title += ee.text() + "\n"; } if (e.tagName() == "content" && ee.tagName() == "text") { cd_contents += ee.text() + "\n"; } } m = m.nextSibling(); } n = n.nextSibling(); } cd_title.truncate(cd_title.length() - 1); cd_contents.truncate(cd_contents.length() - 1); return true; } void KoverFile::open_k3b_audio_project(QDomDocument doc) { QString title, artist; QDomElement docElem = doc.documentElement(); QDomNamedNodeMap nmm = docElem.attributes(); QDomNode n = docElem.firstChild(); title = ""; artist = ""; while (!n.isNull()) { QDomElement e = n.toElement(); if (e.tagName() == "cd-text") { QDomNode m = n.firstChild(); while (!m.isNull()) { QDomElement ee = m.toElement(); if (ee.tagName() == "title") title = ee.text(); if (ee.tagName() == "artist") artist = ee.text(); if (ee.tagName() == "disc_id") cd_cddb_id = ee.text(); m = m.nextSibling(); } if (title.isEmpty()) cd_title = artist; else if (artist.isEmpty()) cd_title = title; else cd_title = title + "\n" + artist; } title = ""; artist = ""; if (e.tagName() == "contents") { QDomNode m = n.firstChild(); while (!m.isNull()) { QDomElement ee = m.toElement(); if (ee.tagName() == "track") { QDomNode mm = m.firstChild(); while (!mm.isNull()) { QDomNode mmm = mm.firstChild(); QDomElement eee = mm.toElement(); if (eee.tagName() == "cd-text") { while (!mmm.isNull()) { QDomElement eeee = mmm.toElement(); if (eeee.tagName() == "title") title = eeee . text(); if (eeee.tagName() == "artist") artist = eeee . text(); mmm = mmm. nextSibling(); } if (title.isEmpty()) cd_contents += artist + "\n"; else if (artist.isEmpty()) cd_contents += title + "\n"; else if (!title.isEmpty() && !artist. isEmpty()) cd_contents += title + " - " + artist + "\n"; } mm = mm.nextSibling(); } } m = m.nextSibling(); } } n = n.nextSibling(); } cd_contents.truncate(cd_contents.length() - 1); } void KoverFile::open_k3b_data_project(QDomDocument doc) { /* QDomElement docElem = doc.documentElement(); */ QDomNode n = (doc.documentElement()).firstChild(); while (!n.isNull()) { QDomElement e = n.toElement(); if (e.tagName() == "header") { QDomNode m = n.firstChild(); while (!m.isNull()) { QDomElement ee = m.toElement(); if (ee.tagName() == "volume_id") cd_title = ee.text(); m = m.nextSibling(); } } if (e.tagName() == "files") { QDomNode m = n.firstChild(); while (!m.isNull()) { QDomElement ee = m.toElement(); QDomNamedNodeMap nm = ee.attributes(); if (ee.tagName() == "directory") cd_contents += (nm.namedItem("name")).nodeValue() + "\n"; if (ee.tagName() == "file") cd_contents += (nm.namedItem("name")).nodeValue() + "\n"; m = m.nextSibling(); } } n = n.nextSibling(); } cd_contents.truncate(cd_contents.length() - 1); } kover-4.orig/src/pa.cpp0000644000175000017500000000574011107643076013656 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "pa.moc" #include "pa.h" #include #include #include pa::pa(char *host, int port):QDialog() { password = NULL; username = NULL; QString greeting; QString tmp; QVBoxLayout *top_layout = new QVBoxLayout(this); top_layout->setMargin(7); top_layout->addSpacing(10); greeting = tr("Enter username and password for proxy at "); tmp.sprintf("%s:%d", host, port); greeting += tmp; QLabel *label = new QLabel(greeting, this); top_layout->addWidget(label); top_layout->addSpacing(5); user = new QLineEdit(this); user->setFocus(); pw = new QLineEdit(this); pw->setEchoMode(QLineEdit::Password); top_layout->addWidget(new QLabel(tr("User Name:"), this)); top_layout->addSpacing(5); top_layout->addWidget(user); top_layout->addSpacing(5); top_layout->addWidget(new QLabel(tr("Password:"), this)); top_layout->addSpacing(5); top_layout->addWidget(pw); top_layout->addSpacing(10); QBoxLayout *button_layout = new QBoxLayout(QBoxLayout::RightToLeft); top_layout->addLayout(button_layout); QPushButton *ok = new QPushButton(tr("Ok"), this); ok->setDefault(TRUE); ok->setMaximumWidth(70); connect(ok, SIGNAL(clicked()), SLOT(accept())); button_layout->addWidget(ok, 0, Qt::AlignRight); button_layout->addSpacing(10); QPushButton *quit = new QPushButton(tr("Cancel"), this); connect(quit, SIGNAL(clicked()), SLOT(quit())); quit->setMaximumWidth(70); button_layout->addWidget(quit, 0, Qt::AlignRight); button_layout->addStretch(20); adjustSize(); } pa::~pa() { if (password) free(password); if (username) free(username); password = NULL; username = NULL; } void pa::accept() { QString tmp = user->text(); username = strdup(tmp.toUtf8()); tmp = pw->text(); password = strdup(tmp.toUtf8()); QDialog::done(0); } void pa::quit() { password = NULL; username = NULL; QDialog::done(-1); } char * pa::get_password() { if (!password) return NULL; int length = strlen(password); char *pw = strdup(password); memset(password, 0, length); return pw; } char * pa::get_username() { if (!username) return NULL; int length = strlen(username); char *un = strdup(username); memset(username, 0, length); return un; } kover-4.orig/src/kover.desktop0000644000175000017500000000023011107643076015260 0ustar renerene[Desktop Entry] Type=Application MimeType=application/x-kover Exec=kover Icon=kover Comment=CD Cover Printer Terminal=false Name=Kover Encoding=UTF-8 kover-4.orig/src/server.h0000644000175000017500000000246511107643076014232 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef SERVER_H #define SERVER_H #include using namespace std; class server { public: server(string, string, int, string, string, string, string); ~server(); string get_site(); string get_proto(); int get_port(); string get_path(); string get_latitude(); string get_longitude(); string get_description(); void dump(); private: string site; string proto; int port; string path; string latitude; string longitude; string description; }; #endif /* SERVER_H */ kover-4.orig/src/sd.cpp0000644000175000017500000000743411107643076013666 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* This is the dialog for freedb server selection */ #include "sd.moc" #include "sd.h" #include #include #include #include #include sd::sd():QDialog() { cddb_fill *bla = new cddb_fill(); bla->sites(server_list); delete(bla); QVBoxLayout *top_layout = new QVBoxLayout(this); top_layout->setMargin(7); top_layout->addSpacing(10); QLabel *label = new QLabel (tr("Choose wisely!"), this); top_layout->addWidget(label); top_layout->addSpacing(10); box = new QListWidget(this); list < server * >::iterator item; QString string; for (item = server_list.begin(); item != server_list.end(); item++) { if (verbose) (*item)->dump(); if (((*item)->get_proto()).compare("http")) { string = ((*item)->get_site()).c_str(); string += " ("; string += ((*item)->get_description()).c_str(); string += ")"; QListWidgetItem *newItem = new QListWidgetItem; newItem->setText(string); box->addItem(newItem); } } connect(box, SIGNAL(itemDoubleClicked(QListWidgetItem *)), SLOT(double_clicked(QListWidgetItem *))); top_layout->addWidget(box); top_layout->addSpacing(20); QBoxLayout *button_layout = new QBoxLayout(QBoxLayout::RightToLeft); top_layout->addLayout(button_layout); QPushButton *ok = new QPushButton(tr("Ok"), this); ok->setDefault(TRUE); ok->setMaximumWidth(70); connect(ok, SIGNAL(clicked()), SLOT(accept())); button_layout->addWidget(ok, 0, Qt::AlignRight); button_layout->addSpacing(5); QPushButton *quit = new QPushButton(tr("Quit"), this); connect(quit, SIGNAL(clicked()), SLOT(quit())); quit->setMaximumWidth(70); button_layout->addWidget(quit, 0, Qt::AlignRight); button_layout->addStretch(20); adjustSize(); } sd::~sd() { fprintf(stderr, "%s:sd::~sd()\n", PACKAGE); while (server_list.size()) { delete((server_list.back())); server_list.pop_back(); } } /** * The accept() slot. Setting the return value. * reimplemented from QDialog */ void sd::accept() { QDialog::done(box->currentRow()); } /** * The done() slot. Setting the return value. */ void sd::quit() { QDialog::done(-1); } /** * The double_clicked() slot. Setting the return value. * reimplemented from QDialog */ void sd::double_clicked(QListWidgetItem *item) { QDialog::done(item->listWidget()->currentRow()); } /** * The exec() method. Executing the dialog. * reimplemented from QDialog * @see double_clicked(QListBoxItem *item) * @see accept() * @return an int representation of the selected item */ int sd::exec() { if (server_list.size() == 1) { return 0; } else { return QDialog::exec(); } } /** * The get() method. * @param index the int value returned by exec() * @see exec() * @return the string containing the cddb id and category. Can be freed with free(3). */ string sd::get(int index) { int i = 0; list < server * >::iterator item; for (item = server_list.begin(); item != server_list.end(); item++) { if (i++ == index * 2) return (*item)->get_site(); } return string(); } kover-4.orig/src/directory.h0000644000175000017500000000165211107643076014725 0ustar renerene// // File: directory.h // Created by: adrian // Created on: Thu Jan 30 17:28:51 2003 // #ifndef _DIRECTORY_H_ #define _DIRECTORY_H_ #include #include #include using namespace std; class directory { public: directory(string current_dir); ~directory(); bool has_childs(); int how_many(); int how_many_files(); string get_directory(int id); string get_file(int id); string get_current(); void make_childs(); directory* get_childs(int id); int how_many_childs(); string get_short_name(); directory *get_child_by_path(string path); protected: string current_dir; list directories; list files; list childs; bool is_dir(string dir); string short_name; string normalize_path(string path); }; #endif //_DIRECTORY_H_ kover-4.orig/src/icons/0000755000175000017500000000000011145115715013653 5ustar renerenekover-4.orig/src/icons/hi32-app-kover.png0000644000175000017500000000124011107643076017031 0ustar renerenePNG  IHDR szzgAMA abKGD pHYs  ~tIME 8EPIDATx햿u0?% dS xTjhm&AةLH *}nX6w=etv`ooE(qVRoQ^n[*r(i7͹,zߧ>_"."p(E8f(XJPѩAM 1o92db)T7 ~&U{]U]9I%A,uu ury e F! "q{q!Tb W)kgPmx0DB4f~6s`c 3unw%6_8TUo[|DrSe&rPb%lQe!^`z tu,'kL Q=&Y ,g?9umxd'+ 43t:^$0!'T xsU!2>݅Gp?aT*H!V嘅x@n+qK^)C1 ?kKd綢?ovIENDB`kover-4.orig/src/icons/kover_front_title-content-right_content-left.png0000644000175000017500000000340211107643076025370 0ustar renerenePNG  IHDR@](gAMA abKGD pHYs  d_tIME EaIDATx^훿NGMIb,mɑ"q+vK~(b"7p4@(4iҀd)h(>x4;wݝfgϜ7.+#|vv(v<11y]Fv  dԆYXK@mia3lx`kuq?MSw>QٽԊz6c!wr|tgv|Ee {_~MNosE8y4\qD5 ?6-. !KArT>oU헣zЫUXkkke|7665l+~tS(QGE{ 9k=ɶH dyϝ2Ok!b~~ٿ#7?Y]rP#~.䴵_QVTG%14)#&hTcz5#ƐjgS _^ ~%6 =*&:`---K jfb*! jAChtAš#I\W.n`#8fzzLqQ^8V". XVc1ҕ${ii U cX7RDPFY1_E/бπ-( hQ@\ WAM"A¨Buݔ$xV>]1Uw.?Mb^O46v6B p-[ P֔*(]>w3>^. yaOBeUinwjCpfpÃze,^ VOn '@$JȉzqQ4Gx\Ć 2@` JvG <]ܪ9(( P)bu*`yAX5HUK! JmuX,T.8'B)h|DݩN}DBM' C8"?LmwB +`V#f[wIi.inrZ KSr#¢9!ʹiK2 hӍ J%%5_nM6L[C?'zĥc/1(ST k[c꥜%]|~f9t45qzIY4AWˆisQQc|ܾP[=@ rjN+IE$G̦#~G=Q7f0 E0}:\3\Pr`RXi-s0 $:%n\%a(bf7a }`iPĥ Z*'QҖųXVHPS3b;sٙ8E}@& V{{VSk ru lI~|h ,6\0Ed6m4ڞ.SCa+ːfig-~wtF31}ӵ'{A,^݋6 9Tx5o}@r[?&g? $y]8NXշypZTPH ,^chGF #H^7[ck8IENDB`kover-4.orig/src/icons/lo32-app-kover.png0000644000175000017500000000124011107643076017043 0ustar renerenePNG  IHDR szzgAMA abKGD pHYs  ~tIME 8EPIDATx햿u0?% dS xTjhm&AةLH *}nX6w=etv`ooE(qVRoQ^n[*r(i7͹,zߧ>_"."p(E8f(XJPѩAM 1o92db)T7 ~&U{]U]9I%A,uu ury e F! "q{q!Tb W)kgPmx0DB4f~6s`c 3unw%6_8TUo[|DrSe&rPb%lQe!^`z tu,'kL Q=&Y ,g?9umxd'+ 43t:^$0!'T xsU!2>݅Gp?aT*H!V嘅x@n+qK^)C1 ?kKd綢?ovIENDB`kover-4.orig/src/icons/hi16-app-audio_mode.png0000644000175000017500000000171111107643076020015 0ustar renerenePNG  IHDRabKGD pHYs  ~tIMEhgVIDATx]]h[uƟ?I]ӤM.ӭn*%C\~\dѢSE_"VPt(Zft>֡Bۥ-MMc-<n)/uW}!]֓s E;}K"|؁}vnbl%臇?'WEܥxOOϹ`0ȢѨ.&|[dz?BQf?NmM0KJvo}mSƁ\-VEEc"{>ZZZ~$A8c<|1B%r[$(h.~b#;We5;=99y"Ht$,84m &(ZI;*Oymmm'2^29Q`Ft9"ްp`bH\K x lp98z7JU TA_ +?]Pj1oee2e}ѠmHHó9NBRG8U'3N(^LJoO .?Ϫg&|j\.WD]1Zb]C{Ԟ_[&:v.8`Zӽy'3w7~RIENDB`kover-4.orig/src/icons/hi48-app-kover.png0000644000175000017500000000552611107643076017053 0ustar renerenePNG  IHDR,,ZgAMA abKGD oFFsuG pHYs  ~tIME :@I IDATx[lu3;ܝ.H./̋#(,;Tih CCފ F@^HeAAÉF Y"$Ejy[{ݙݝMEIJ?0/;3;3 u=*@xQT*Neght {:p$B9Dmo[C|?_@e ()#g  KT_^AXeĀ1h(drRe#+a(kV*.C-j-S*}r)rE~tfxlMussTZ-t}QNO e2 ,sss]GnzPkk|a\YZ0 '<|hn7P[_'(tvD+"tpfzZ張z}M׀G <2>WKJbIqBܪV1z=LJD& ^St].FǹJMc% e\ί3-X.ؠnɓHx> dz?3m;w(clP(~i.G G,2!r@Q:3T۹af^H&y+g8KF鄁T^~f2˄aEf'8B<')3Vr8\>ѡ!B%lRlw8XI5EZ ]4-a4X8qΗq9hȇWa+1pz4#ljq jR,o935E4V j5Ά MUEn?yYQVR| \-qO~SUE<0pwaqЛ2MPWFGuŕbz^w  M8*N}Aҙ?whFa "N/V/V)Itj5.RE4Ep!P> c? x"PڈJ; W"/"aOO* 0qh̠>YfeRᝋυZnB G| ea|:`\oiER]SP*Y;A#I;$}}}h )A6˗ဓ'0p*\vNFC܌B2J@sD@S 9qiMcP t25<̳g%El`C;m뉾B<lDŽY;ssp$+* cg 0~(}N' _DEF|#k5t@੧vYU я Ç76 [>f~ՂpgNwa$@w{qvF)B 0 F>oAFPYY=*PȪݥ%дh_ TQ(>8tnL{!?fӐe?>5pƒLȒD㪒$( ,S),YׯYۅlLn_U?Hcb 7@ CCtB mׯ3?pB+n%H{n_A(Vr^[ @~؇T0uE Y=?44:ǰoZFzrޠQm!=OƀI4w:N:uV73 a0bl%}cC VET*r:zIw8ft`W[?~^#v+v(9z=2A]PmVYKqlh\V~q {> C}օ >{)&&&BD"Nͅ_^U\-^۽ki//p3y|?i,-A@^ՊzD3۷nǃ޶c_ʱٰMeXs&~ʕ+ϳ0ﲐ[.0Vllhkۭ`aVu]_=t:?7Z.O]H&iQ]He*yG;UY̪ Yv[,I/, K^FQb1˕Οwhno39ie60Hk ˟&CQ8Ʈ!&E=IWi6T*q9 VV*{ɲ}6N5H[n4zpU` 6_6 nn ̾ 8 lnB2 ܾJzzp~79h~}5 ++n75@IVJ!Ck@G=>;J}1t]8~(Wttڡ\P;PnR;{2#zw@fzGp/OSXIENDB`kover-4.orig/src/icons/kover_one_page.png0000644000175000017500000000126511107643076017354 0ustar renerenePNG  IHDRB@bKGD pHYs  d_tIME. H%BIDATxڱnPCe(8sT [CY<R'7 },`eRե C Jwp:*#&P|K@؉}e%` CP:|^?YkRRRR:ٿ{s~b~ +[F޼'1jG}C^fy)_؝GDzVӡ[u=xtuP۽aQ4j Hl|{ϟn1$WoGfdMe*_Y׎IENDB`kover-4.orig/src/icons/kover_cdaudio.png0000644000175000017500000001342611107643076017211 0ustar renerenePNG  IHDR@@iqbKGDIDATxyyUw}4%oYb>% 9H[ m1 l|J` 0"6AH`]ڗܹ3w]Uճ Rs9\vWw=n5Z p3]G%UVr_?[kvÆ wM<38Tj---{=%Z;XEQzܹ<'gڡڭ;_|q"Z֮v]q,^ |ؠO Fct6ZHcL6zGS߽tp֍7 70z֒krx~mg +a9$"&jh0H,'Y-=g_9 ,;ꪫΪ6o\9f3gd\dɊ;`77m(ߦ߿q#hNʢ]#-7٘~)z?:2ٵݻ6+>v57~׼kb L_yCt51`L#(OS_AkI2&[n7ºgw,rۻ^~svj4gΜ7m$P1)[ӣ=,,*Y$zwc!4J`o"dh%@ P -R L`L@_F"ľag嗏1!}.gwnњ};8mƊ+ ?~BK rs1SƂ?cah!흆Z+ ̀:3|hY~j;J9,g}g ]h]v~,XM@^ cJ 1}Bj1o9`@)ISD)/% :J% @E ;-Vɦ$TBc(RX{͛/CfMt& %A 4(y_ J!,oXւֱVEx<لD _wN%LHk ` REK@紁Z%}IWu!5 OYD(٫}6tA^'T~`cv*^XgqfЭb,tt9oO%h(c;mݶz]r\W(B(H'|OYLB2dSHɵȷѺ+I2BB>$7LQ'.h+#'h~jP[-Yn,\ף1Fmsnkst_xI)eJ/1xi!VWT%.$g}bsNm`4G*DŽqTGsvuƑM=T{, g6D(HC& v˄Sg%(,5Du{1Bgpik%ah<ƏpډMsHf9G4cb-GW39`hk(RYj|Wk62 M\M3"JaSN1v=“&ZNzńЩdh}dIOBp'wGIZj0uƞ.s|ik3%}XK6JP]a#`TAM\J(zitNqS=ޣ\Xo_{ ڲ"]`"zʁơZܱq{K>eƤN)Vb11րT#4ݹm@²b|0c4T%b`wKD9{hٯ_\ o`@TӁ@},?.ޟAt" ]kٴ3BJӇow:nF!<\d*謮~429vASc4d9vGںb9D``O-$AJoknkR? A4]/`Bf8=!XOiý5D)iN|^(m\[iROMw`ֿP@ 樕f\~oIӎ7ʛLWM&H|K,]eάh |JnA뫩r/[Qwgixg0nl.h#Onn1S9TU3ݣ 1Xk݉=9*),H'$e{[dR6M}~㡀K9 yܜ}Χ2kKrjN=a3#wㆪϕȦ4U)6BXz_=UU)<[u g}?ܦ0W0tWgN}K:kR*q&ou['PK$lSϿ͛om}O>AdL&W.@t?,GʆG|"/y|+v::)vɄG]M@F%r]]H,$t O'~|'wH,A=>etq׎;kkGHfg V#XkaeͿ%&'6?3t{^s* άw/v4FݻIENDB`kover-4.orig/src/icons/kover_back_title_content.png0000644000175000017500000000263111107643076021430 0ustar renerenePNG  IHDRT@ NgAMA abKGD pHYs  ~tIME RAIDATx^=OAH `)Zjcb Fh4&6Z"`&6Q Zh>ٹ{~p̙=_3gj; ⽽={{{5pAc] |uŒ5Ⴧ_/H|^rJ}i̖+O[GGN}>3:rLgj`PqOM󓑷LM1ŵ˧p{דg;ܹ9p] #F)28'"o%m7.nzgg%r˭.%kkk YXZZڪWQ[\TαA5;;Y³Z#U a166688K!}45<6c_:\W6#V@ ACc1lUqY Z!'L˜ADfDՠ7c9-푛&Jo#r{4LA J mqYCwm$ɬdT r\q)GkB |qj(NuiKU+U>FjS RcYb PuPsϪ6UuavNKC,R9E#[ ;iz*i뫺\Jp{ 7++++ OͮIUJԙLT+ ؝0ӽS>#Y.B\$hZbQlzoJS.Dn]`)t(hxe$qx֓*6UU]]":.B}}6CFI͆ԭ<*}^ ccإtl\#U6[堒Z;tamv.R#\G(s*lӘQM@2Qn=֋[*,U &Q¦T)‡c MR.@L=:sj!W&2+J(OPwnIENDB`kover-4.orig/src/icons/kover_front_title_only.png0000644000175000017500000000152211107643076021165 0ustar renerenePNG  IHDR@](gAMA abKGD pHYs  ~tIME ;sIDATx^?OSQ) 2`̆nΆAvaO a"~\ԡqvİ0P}B.E}nn=Ͻ=4b&`F4r߿HpýslwwbX@1S, ]1 -)s<N]A]}חh8[w:/^Aaiݥg'Fp&D`"xGVo0y;Gb64F{ rtЅ x^4spp >cN+ }66A9֥Jy7^d0]'0[|*>}o>.% m|=\VnaKw}O% ǧǀ\t:){{ 랭w7akKີ(Uj{N@IENDB`kover-4.orig/src/icons/kover_back_content.png0000644000175000017500000000207711107643076020233 0ustar renerenePNG  IHDRT@ NgAMA abKGD pHYs  ~tIME 1 IDATx^u0 ˽n``؃~}.q'-u?x#)$HJ^^(qh4y6 ׯlR0Z,YF˂nkB}8n[W}]<}\$Zhy:>7E#b6&YʙCXj:2g%cX(.ъ"nA'1kҌ2Ujcs?:=\J =vˢ@Ɋɤ"YaxY4~ID+0#9 1ݺ讁lΨz9OǑre0X2?/6hL징 >xJM3lx!G&ۘE.u\.Y^hHrۊ^,pnA J/Ⱥl @ۤITMQ u <E|wQ<H<()- lS%͌VR IoUEd4>? k"W}l|$Q3#U+y(?_@&:< ͌V{9jrf1ɫG73i [IP*uZXWojJƒ< )=ʓ],Do-z^.e-JK-P&Dr! &View &Kover kover-4.orig/src/main.cpp0000644000175000017500000001027211107643076014176 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include #include #include kover_global globals; int verbose = 0; kover_config *config = NULL; static KoverTop *kovertop = NULL; void k_printf(const char *fn, int line, const char *format, ...) { char tmp[1024]; va_list arglist; va_start(arglist, format); vsnprintf(tmp, 1024, format, arglist); fprintf(stderr, " %s(%s):%s:%d: %s", PACKAGE, VERSION, fn, line, tmp); va_end(arglist); } void eject_cdrom() { CdIo_t *cdio; char *device = NULL; if (!globals.cdrom_device) { device = cdio_get_default_device(NULL); if (!device) { fprintf(stderr, "%s: Unable to get default CD device.", PACKAGE); return; } } else device = strdup(globals.cdrom_device); cdio = cdio_open(device, DRIVER_UNKNOWN); cdio_eject_media(&cdio); cdio_destroy(cdio); free(device); return; } void cleanup() { free(globals.cddb_server); free(globals.cgi_path); free(globals.proxy_server); free(globals.cdrom_device); free(globals.cddb_path); } static void the_end() { if (globals.eject_cdrom) { eject_cdrom(); } config->store_globals(); config->sync(); cleanup(); fprintf(stderr, "In Double Vision where drunk.\n"); } void sighandler(int i) { if (i == 2) { kprintf("SIGINT received...\n"); } else { kprintf("SIGTERM received...\n"); } kprintf("cleaning up...\n"); /* if the preview is currently running; stop it * so that not the values of the preview window * are stored */ kovertop->stopPreview(); if (globals.save_position) { globals.xpos = kovertop->x(); globals.ypos = kovertop->y(); } kovertop->close(); the_end(); exit(0); } int main(int argc, char **argv) { config = new kover_config(); signal(SIGTERM, sighandler); signal(SIGINT, sighandler); fprintf(stderr, "%s %s\n", PACKAGE, VERSION); fprintf(stderr, " Copyright (C) 1998, 2000 by Denis Oliver Kropp\n"); fprintf(stderr, " Copyright (C) 2000, 2008 by Adrian Reber\n"); fprintf( stderr, "%s comes with ABSOLUTELY NO WARRANTY " "- for details read the license.\n", PACKAGE); KAboutData about(PACKAGE, 0, ki18n(PACKAGE), VERSION, ki18n("Kover is an easy to use WYSIWYG CD cover" " printer with CDDB support."), KAboutData::License_GPL_V2, ki18n("(C) 1998, 2000 Denis Oliver Kropp\n(C)" " 2000, 2008 Adrian Reber"), KLocalizedString(), 0, "adrian@lisas.de"); about.addAuthor(ki18n("Adrian Reber"), KLocalizedString(), "adrian@lisas.de"); about.addAuthor(ki18n("Denis Oliver Kropp"), KLocalizedString(), "dok@fischlustig.de"); KCmdLineArgs::init(argc, argv, &about); KCmdLineOptions options; options.add("+[URL]", ki18n("Document to open")); options.add("advise", ki18n("Help me now!")); options.add("debug", ki18n("Enable debug output")); KCmdLineArgs::addCmdLineOptions(options); KApplication app; KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if (args->isSet("advise")) { fprintf(stderr, "Don't Panic!\n"); exit(42); } if (args->isSet("debug")) { verbose = 1; fprintf(stderr, "\n"); kprintf("debug output enabled\n"); } config->load_globals(); kovertop = new KoverTop(); if (args->count() > 0) kovertop->fileOpen(args->url(0)); args->clear(); kovertop->show(); int i = app.exec(); the_end(); return i; } kover-4.orig/src/kover.xml0000644000175000017500000000045011107643076014413 0ustar renerene Kover - CD Cover Printer kover-4.orig/src/no_qobject.h0000644000175000017500000000211511107643076015037 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2005 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * $Id: no_qobject.h,v 1.2 2005/06/25 19:01:41 adrian Exp $ */ #ifndef _NO_QOBJECT_H #define _NO_QOBJECT_H class no_qobject { public: virtual ~ no_qobject() {}; virtual void update_id(unsigned long) = 0; virtual void set_status_text(const char *) = 0; }; #endif kover-4.orig/src/kover_config.cc0000644000175000017500000002056011107643076015531 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include #include void kover_config::load_globals() { QString *string = new QString(); KConfigGroup config = KGlobal::config()->group("CDDB"); if ((config.readEntry("cddb_server")).isEmpty()) globals.cddb_server = strdup("freedb.freedb.org"); else globals.cddb_server = strdup((config.readEntry("cddb_server")).toUtf8()); if ((config.readEntry("cgi_path")).isEmpty()) globals.cgi_path = strdup("~cddb/cddb.cgi"); else globals.cgi_path = strdup((config.readEntry("cgi_path")).toUtf8()); if ((config.readEntry("proxy_server")).isEmpty()) globals.proxy_server = NULL; else globals.proxy_server = strdup((config.readEntry("proxy_server")).toUtf8()); *string = config.readEntry("proxy_port"); if (string->isEmpty()) globals.proxy_port = 3128; else globals.proxy_port = string->toInt(); kprintf("proxy port: %d\n", globals.proxy_port); *string = config.readEntry("use_proxy"); if (string->isNull()) globals.use_proxy = 0; else globals.use_proxy = string->toInt(); *string = config.readEntry("use_cddbp"); if (string->isNull()) globals.use_cddbp = 0; else globals.use_cddbp = string->toInt(); *string = config.readEntry("proxy_from_env"); if (string->isNull()) globals.proxy_from_env = 0; else globals.proxy_from_env = string->toInt(); config = KGlobal::config()->group("CDROM"); if ((config.readEntry("cdrom_device")).isEmpty()) globals.cdrom_device = strdup("/dev/cdrom"); else globals.cdrom_device = strdup((config.readEntry("cdrom_device")).toUtf8()); *string = config.readEntry("eject_cdrom"); if (string->isNull()) globals.eject_cdrom = 0; else globals.eject_cdrom = string->toInt(); config = KGlobal::config()->group("CDDB_files"); *string = config.readEntry("use_cache"); if (string->isNull()) globals.use_cache = 0; else globals.use_cache = string->toInt(); if ((config.readEntry("cddb_path")).isEmpty()) { globals.cddb_path = check_cddb_dir(); } else { globals.cddb_path = strdup((config.readEntry("cddb_path")).toUtf8()); } config = KGlobal::config()->group("misc"); *string = config.readEntry("trigger_actual_size"); if (string->isNull()) globals.trigger_actual_size = 1; else globals.trigger_actual_size = string->toInt(); *string = config.readEntry("xpos"); if (string->isNull()) globals.xpos = 0; else globals.xpos = string->toInt(); *string = config.readEntry("ypos"); if (string->isNull()) globals.ypos = 0; else globals.ypos = string->toInt(); *string = config.readEntry("save_position"); if (string->isNull()) globals.save_position = 1; else globals.save_position = string->toInt(); *string = config.readEntry("disable_animation"); if (string->isNull()) globals.disable_animation = 0; else globals.disable_animation = string->toInt(); *string = config.readEntry("display_track_duration"); if (string->isNull()) globals.display_track_duration = 1; else globals.display_track_duration = string->toInt(); config = KGlobal::config()->group("cover"); *string = config.readEntry("its_a_slim_case"); if (string->isNull()) globals.its_a_slim_case = 0; else globals.its_a_slim_case = string->toInt(); *string = config.readEntry("one_page"); if (string->isNull()) globals.one_page = 0; else globals.one_page = string->toInt(); *string = config.readEntry("inlet_only"); if (string->isNull()) globals.inlet_only = 0; else globals.inlet_only = string->toInt(); config = KGlobal::config()->group("fonts"); if ((config.readEntry("content_font_settings")).isEmpty()) globals.content_font = new QFont("helvetica", 16); else { QFont *bla = new QFont(); bla->fromString(config. readEntry("content_font_settings")); globals.content_font = new QFont(*bla); delete(bla); kprintf("font loaded: %s\n", ((globals.content_font)->family()).toUtf8().constData()); } if ((config.readEntry("title_font_settings")).isEmpty()) globals.title_font = new QFont("helvetica", 32); else { QFont *bla = new QFont(); bla->fromString(config.readEntry("title_font_settings")); globals.title_font = new QFont(*bla); delete(bla); kprintf("font loaded: %s\n", ((globals.title_font)->family()).toUtf8().constData()); } if ((config.readEntry("inlet_title_font_settings")).isEmpty()) globals.inlet_title_font = new QFont("helvetica", 10); else { QFont *bla = new QFont(); bla->fromString(config. readEntry("inlet_title_font_settings")); globals.inlet_title_font = new QFont(*bla); delete(bla); kprintf("font loaded: %s\n%s\n", ((globals.inlet_title_font)->family()).toUtf8().constData(), config.readEntry("inlet_title_font").toUtf8().constData()); } delete(string); globals.username = NULL; globals.password = NULL; } void kover_config::store_globals() { kprintf("entering kover_config::store_globals()\n"); KConfigGroup config = KGlobal::config()->group("CDDB"); QString *string = new QString(); #define writeEntryy(bla, blubber) writeEntry(QString(bla), QString(blubber)) config.writeEntryy("cddb_server", globals.cddb_server); config.writeEntryy("cgi_path", globals.cgi_path); config.writeEntryy("proxy_server", globals.proxy_server); string->sprintf("%d", globals.proxy_port); config.writeEntry("proxy_port", *string); string->sprintf("%d", globals.use_proxy); config.writeEntry("use_proxy", *string); string->sprintf("%d", globals.use_cddbp); config.writeEntry("use_cddbp", *string); string->sprintf("%d", globals.proxy_from_env); config.writeEntry("proxy_from_env", *string); config = KGlobal::config()->group("CDROM"); string->sprintf("%d", globals.eject_cdrom); config.writeEntry("eject_cdrom", *string); config.writeEntryy("cdrom_device", globals.cdrom_device); config = KGlobal::config()->group("CDDB_files"); string->sprintf("%d", globals.use_cache); config.writeEntry("use_cache", *string); config.writeEntryy("cddb_path", globals.cddb_path); config = KGlobal::config()->group("misc"); string->sprintf("%d", globals.trigger_actual_size); config.writeEntry("trigger_actual_size", *string); string->sprintf("%d", globals.display_track_duration); config.writeEntry("display_track_duration", *string); string->sprintf("%d", globals.xpos); config.writeEntry("xpos", *string); string->sprintf("%d", globals.ypos); config.writeEntry("ypos", *string); string->sprintf("%d", globals.save_position); config.writeEntry("save_position", *string); string->sprintf("%d", globals.disable_animation); config.writeEntry("disable_animation", *string); config = KGlobal::config()->group("cover"); string->sprintf("%d", globals.its_a_slim_case); config.writeEntry("its_a_slim_case", *string); string->sprintf("%d", globals.one_page); config.writeEntry("one_page", *string); string->sprintf("%d", globals.inlet_only); config.writeEntry("inlet_only", *string); config = KGlobal::config()->group("fonts"); config.writeEntry("content_font_settings", ((globals.content_font)->toString())); config.writeEntry("title_font_settings", ((globals.title_font)->toString())); config.writeEntry("inlet_title_font_settings", ((globals.inlet_title_font)->toString())); delete(string); kprintf("leaving kover_config::store_globals()\n"); } char *kover_config::check_cddb_dir() { char *cddb_path = NULL; #ifdef CDDB_PATH cddb_path = strdup(CDDB_PATH); #else cddb_conn_t *conn = cddb_new(); cddb_path = (char *)cddb_cache_get_dir(conn); cddb_path = strdup(cddb_path); cddb_destroy(conn); #endif return cddb_path; } void kover_config::sync() { KGlobal::config()->sync(); } kover-4.orig/src/filemode.h0000644000175000017500000000307111107643076014502 0ustar renerene/** -*- adrian-c -*- kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. Copyright (C) 2001 by Adrian Reber This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. File: filemode.h Description: inexact (inexact match) dialog Changes: 15 Jul 2001: Initial release */ /* $Id: filemode.h,v 1.1 2003/03/23 22:25:28 adrian Exp $ */ #ifndef FILEMODE_H #define FILEMODE_H #include #include "cddb_211_item.h" #include #include #include using namespace std; /** * The filemode class * A dialog used to choose one of the 211 matches. */ class filemode:public QDialog { Q_OBJECT public: filemode(); ~filemode(); int exec(); char *get(int index); private: Q3ListBox * box; QLineEdit *directory; private slots:void accept(); void quit(); public slots:void double_clicked(Q3ListBoxItem *); }; #endif /* FILEMODE_H */ kover-4.orig/src/cdview.h0000644000175000017500000000476311107643076014210 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _CDVIEW_H #define _CDVIEW_H #include #include #include #include #include #include "koverfile.h" /** * CDView draws the cover in mini form, print preview or direct to the printer. * @author Denis Oliver Kropp (dok@fischlustig.de) */ class CDView : public QFrame { Q_OBJECT public: /** * CDView constructor. * @param parent Optional pointer to the parent widget. * @param name Optional pointer to the name. */ CDView(KoverFile*_kover_file, QWidget*parent = NULL); /** * Opens a printer configuration dialog and prints or not. */ void printKover(); /** * Normally CDView draws the cover with a scale of 2/5.
* If you set the preview mode then there's no scale. * @param preview true=print preview; false=normal 2/5 scale */ void showPreview(bool preview = true); public slots: /** * Tells CDView that the data within KoverFile changed. */ void dataChanged(bool image); signals: /** * This signal is emitted when the user clicks into the CDView during preview. */ void stopPreview(); void actualSize(); protected: void paintEvent(QPaintEvent *); void mousePressEvent(QMouseEvent *); void drawBooklet(QPainter *p, int X, int Y); private: QPixmap images[3]; KoverFile*kover_file; bool previewMode; QPrinter*printer; QPainter *paint1; void print_information(QPainter *); void inlet_images(QPainter *, int, int, int); void inlet_center_back_inner(QPainter *, int, int, int); void inlet_center_back_full(QPainter *, int, int, int); void inlet(QPainter *, int, int); void booklet_images(QPainter *, int, int, int); }; #endif /* _CDVIEW_H */ kover-4.orig/src/categories.h0000644000175000017500000000214411107643076015043 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef CATEGORIES_H #define CATEGORIES_H #include #include #include using namespace std; class categories { public: categories(); ~categories(); int how_many(); string get_category(int id); private: list category; }; #endif /* CATEGORIES_H */ kover-4.orig/src/categories.cc0000644000175000017500000000304611107643076015203 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2002, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "categories.h" categories::categories() { category.push_back("Blues"); category.push_back("Classical"); category.push_back("Country"); category.push_back("Data"); category.push_back("Folk"); category.push_back("Jazz"); category.push_back("Misc"); category.push_back("Newage"); category.push_back("Reggae"); category.push_back("Rock"); category.push_back("Soundtrack"); } categories::~categories() { } int categories::how_many() { return (int)category.size(); } string categories::get_category(int id) { if (id < 0 || id >= how_many()) return string(); list :: iterator cat; int i = 0; for (cat = category.begin(); cat != category.end(); cat++) { if (i++ == id) return *cat; } return string(); } kover-4.orig/src/globals.h0000644000175000017500000000315111107643076014340 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _KOVER_GLOBAL_H #define _KOVER_GLOBAL_H #include #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ typedef struct { unsigned short use_cddbp; char *cddb_server; char *cgi_path; int use_proxy; int proxy_from_env; char *proxy_server; int proxy_port; char *cdrom_device; int eject_cdrom; unsigned short use_cache; char *cddb_path; int trigger_actual_size; int display_track_duration; int its_a_slim_case; int inlet_only; int one_page; char *username; char *password; QFont *content_font; QFont *title_font; QFont *inlet_title_font; int xpos; int ypos; int save_position; int disable_animation; } kover_global; extern kover_global globals; #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _KOVER_GLOBAL_H */ kover-4.orig/src/server.cpp0000644000175000017500000000332011107643076014554 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "server.h" #include #include server::server(string _site, string _proto, int _port, string _path, string _latitude, string _longitude, string _description) { site = _site; proto = _proto; port = _port; path = _path; latitude = _latitude; longitude = _longitude; description = _description; } server::~server() { kprintf("server::~server()\n"); } string server::get_site() { return site; } string server::get_proto() { return proto; } int server::get_port() { return port; } string server::get_path() { return path; } string server::get_latitude() { return latitude; } string server::get_longitude() { return longitude; } string server::get_description() { return description; } void server::dump() { kprintf(""); cerr << site << ":" << proto << ":" << port << ":" << path << ":" << latitude << ":" << longitude << ":" << description << endl; } kover-4.orig/src/cddb_fill.h0000644000175000017500000000367711107643076014634 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef CDDB_FILL_H #define CDDB_FILL_H #include "koverfile.h" #include "no_qobject.h" #include #include #include #include #include "server.h" using namespace std; class trackinfo { public: trackinfo() {}; string name; unsigned long length; unsigned long start; unsigned short track; }; class cdinfo { public: string artist; string cdname; string category; int ntracks; int length; vector tracks; unsigned long cddb_id; }; class cddb_fill { public: cddb_fill(KoverFile *, no_qobject *bla); cddb_fill() {}; bool execute(); bool execute_without_cd(const char *, int); void get_info(); void setTitleAndContents(); bool read_cdtext(); bool sites(list &); private: KoverFile *kover_file; cdinfo cd_info; no_qobject *blub; bool readTOC(); bool cddb_query(); bool cddb_read(unsigned long, string); bool set_connection_params(cddb_conn_t *); bool do_proxy_stuff(cddb_conn_t *); bool check_for_auth(cddb_conn_t *); bool reading_proxy_env_failed(); }; #endif /* CDDB_FILL_H */ kover-4.orig/src/cddb_211_item.h0000644000175000017500000000257011107643076015216 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef CDDB_211_ITEM_H #define CDDB_211_ITEM_H #include #include using namespace std; class cddb_211_item { public: cddb_211_item(); cddb_211_item(char *); cddb_211_item(string); ~cddb_211_item(); char *get(); void set_title(string); void set_artist(string); void set_category(string); void set_id(unsigned long); string get_title(); string get_artist(); string get_category(); unsigned long get_id(); private: char *cddb_data; string title; string artist; string category; unsigned long id; }; #endif /* CDDB_211_ITEM_H */ kover-4.orig/src/inexact_dialog.h0000644000175000017500000000301611107643076015667 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef INEXACT_DIALOG_H #define INEXACT_DIALOG_H #include #include #include "cddb_211_item.h" #include #include #include using namespace std; /** * The inexact_dialog class * A dialog used to choose one of the 211 matches. */ class inexact_dialog:public QDialog { Q_OBJECT public: inexact_dialog(list < cddb_211_item * >inexact_list); ~inexact_dialog(); int exec(); char *get(int index); cddb_211_item *get_object(int index); private: QListWidget *box; list < cddb_211_item * >local_list; private slots: void accept(); void quit(); public slots: void double_clicked(QListWidgetItem *); }; #endif /* INEXACT_DIALOG_H */ kover-4.orig/src/sd.h0000644000175000017500000000254011107643076013324 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef SD_H #define SD_H #include #include #include "server.h" #include #include using namespace std; /** * The server_dialog class * A dialog used to select one of the freedb servers. */ class sd:public QDialog { Q_OBJECT public: sd(); ~sd(); int exec(); string get(int index); private: QListWidget * box; list < server * >server_list; private slots: void accept(); void quit(); public slots: void double_clicked(QListWidgetItem *); }; #endif /* SD_H */ kover-4.orig/src/id.cc0000644000175000017500000001340711107643076013454 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1998, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * 14 Dec 1998: Initial release */ /* this is the image dialog (id) */ #include "id.moc" #include "id.h" #include #include id::id(KoverFile *_kover_file) : QDialog() { kover_file = _kover_file; init(); connect(browse1, SIGNAL(clicked()), SLOT(browse_1())); connect(browse2, SIGNAL(clicked()), SLOT(browse_2())); connect(browse3, SIGNAL(clicked()), SLOT(browse_3())); edit1->setText(kover_file->imageFile(0)); edit2->setText(kover_file->imageFile(1)); edit3->setText(kover_file->imageFile(2)); appear1->setCurrentIndex(kover_file->imageMode(0)); appear2->setCurrentIndex(kover_file->imageMode(1)); appear3->setCurrentIndex(kover_file->imageMode(2)); target1->setCurrentIndex(kover_file->imageTarget(0)); target2->setCurrentIndex(kover_file->imageTarget(1)); target3->setCurrentIndex(kover_file->imageTarget(2)); } id::~id() { } void id::ok() { kover_file->setImageFile(0, edit1->text()); kover_file->setImageFile(1, edit2->text()); kover_file->setImageFile(2, edit3->text()); kover_file->setImageMode(0, appear1->currentIndex()); kover_file->setImageMode(1, appear2->currentIndex()); kover_file->setImageMode(2, appear3->currentIndex()); kover_file->setImageTarget(0, target1->currentIndex()); kover_file->setImageTarget(1, target2->currentIndex()); kover_file->setImageTarget(2, target3->currentIndex()); accept(); } void id::cancel() { reject(); } void id::browse_1() { QString filename = KFileDialog::getOpenFileName(); if (!filename.isEmpty()) edit1->setText(filename); } void id::browse_2() { QString filename = KFileDialog::getOpenFileName(); if (!filename.isEmpty()) edit2->setText(filename); } void id::browse_3() { QString filename = KFileDialog::getOpenFileName(); if (!filename.isEmpty()) edit3->setText(filename); } void id::add_targets(QComboBox *box) { box->insertItem(IMG_FRONT_LEFT, tr("Front, left side")); box->insertItem(IMG_FRONT_RIGHT, tr("Front, right side")); box->insertItem(IMG_FRONT_FULL, tr("Front, both sides")); box->insertItem(IMG_BACK_INNER, tr("Back, without sides")); box->insertItem(IMG_BACK_FULL, tr("Back, with sides")); } void id::add_appear(QComboBox *box) { box->insertItem(IMG_CENTER, tr("Centered")); box->insertItem(IMG_TILE, tr("Tiled")); box->insertItem(IMG_STRETCH, tr("Stretched")); } void id::init() { QVBoxLayout *top_layout = new QVBoxLayout(this); top_layout->setMargin(12); top_layout->addSpacing(5); group1 = new QGroupBox(this); group1->setTitle(tr("First Image")); top_layout->addWidget(group1); QGridLayout *gbox = new QGridLayout(group1); add_labels(gbox); edit1 = new QLineEdit(group1); gbox->addWidget(edit1, 0, 1, 1, 3); browse1 = new QPushButton(group1); browse1->setText(tr("Browse")); gbox->addWidget(browse1, 0, 5, 1, 1); target1 = new QComboBox(group1); add_targets(target1); gbox->addWidget(target1, 1, 1, 1, 2); appear1 = new QComboBox(group1); add_appear(appear1); gbox->addWidget(appear1, 1, 4, 1, 2); top_layout->addSpacing(15); group2 = new QGroupBox(this); group2->setTitle(tr("Second Image")); top_layout->addWidget(group2); gbox = new QGridLayout(group2); add_labels(gbox); edit2 = new QLineEdit(group2); gbox->addWidget(edit2, 0, 1, 1, 3); browse2 = new QPushButton(group2); browse2->setText(tr("Browse")); gbox->addWidget(browse2, 0, 5, 1, 1); target2 = new QComboBox(group2); add_targets(target2); gbox->addWidget(target2, 1, 1, 1, 2); appear2 = new QComboBox(group2); add_appear(appear2); gbox->addWidget(appear2, 1, 4, 1, 2); top_layout->addSpacing(15); group3 = new QGroupBox(this); group3->setTitle(tr("Third Image")); top_layout->addWidget(group3); gbox = new QGridLayout(group3); add_labels(gbox); edit3 = new QLineEdit(group3); gbox->addWidget(edit3, 0, 1, 1, 3); browse3 = new QPushButton(group3); browse3->setText(tr("Browse")); gbox->addWidget(browse3, 0, 5, 1, 1); target3 = new QComboBox(group3); add_targets(target3); gbox->addWidget(target3, 1, 1, 1, 2); appear3 = new QComboBox(group3); add_appear(appear3); gbox->addWidget(appear3, 1, 4, 1, 2); top_layout->addSpacing(15); buttons(top_layout); } void id::buttons(QVBoxLayout *top) { QBoxLayout *button_layout = new QBoxLayout(QBoxLayout::RightToLeft); top->addLayout(button_layout); QPushButton *ok = new QPushButton(this); ok->setText(tr("OK")); ok->setDefault(true); button_layout->addWidget(ok, 0, Qt::AlignRight); QPushButton *cancel = new QPushButton(this); cancel->setText(tr("Cancel")); button_layout->addWidget(cancel, 0, Qt::AlignRight); connect(ok, SIGNAL(clicked()), SLOT(ok())); connect(cancel, SIGNAL(clicked()), SLOT(cancel())); } void id::add_labels(QGridLayout *gbox) { QLabel *label = new QLabel(this); label->setText(tr("File")); gbox->addWidget(label, 0, 0, 1, 1); label = new QLabel(this); label->setText(tr("Target")); gbox->addWidget(label, 1, 0, 1, 1); label = new QLabel(this); label->setText(tr("Appearance")); gbox->addWidget(label, 1, 3, 1, 1); } kover-4.orig/src/without_cd.cc0000644000175000017500000000576611107643076015242 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2001, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Description: dialog to execute a cddb query without a cd * * 11 Nov 2001: Initial release */ #include #include #include #include #include #include #include #include #include using namespace std; without_cd::without_cd() : QDialog() { QString greeting; QVBoxLayout *top_layout = new QVBoxLayout(this); top_layout->setMargin(7); top_layout->addSpacing(10); greeting = tr("Select a category:"); QLabel *label = new QLabel(greeting, this); category = new QComboBox(this); categories *cat = new categories(); for (int i = 0; i <= cat->how_many(); i++) { string insert = cat->get_category(i); if (!insert.empty()) category->insertItem(i, QString(insert.c_str())); } delete cat; top_layout->addWidget(label); top_layout->addSpacing(5); top_layout->addWidget(category); top_layout->addSpacing(10); cddb_id = new QLineEdit(this); cddb_id->setFocus(); top_layout->addWidget(new QLabel(tr("Enter CDDB Id:"), this)); top_layout->addSpacing(5); top_layout->addWidget(cddb_id); top_layout->addSpacing(10); QBoxLayout *button_layout = new QBoxLayout(QBoxLayout::RightToLeft); top_layout->addLayout(button_layout); QPushButton *ok = new QPushButton(tr("Search"), this); ok->setDefault(TRUE); ok->setMaximumWidth(70); connect(ok, SIGNAL(clicked()), SLOT(accept())); button_layout->addWidget(ok); button_layout->addSpacing(10); QPushButton *quit = new QPushButton(tr("Cancel"), this); connect(quit, SIGNAL(clicked()), SLOT(quit())); quit->setMaximumWidth(70); button_layout->addWidget(quit); button_layout->addStretch(20); adjustSize(); } without_cd::~without_cd() { } void without_cd::accept() { QString tmp; tmp = cddb_id->text(); kprintf("id: %s\n", tmp.toUtf8().constData()); tmp = category->currentText(); kprintf("category: %d %s\n", category->currentIndex(), tmp.toUtf8().constData()); QDialog::done(0); } void without_cd::quit() { QDialog::done(-1); } void without_cd::handle_input() { } int without_cd::get_category() { return category->currentIndex(); } char * without_cd::get_id() { return strdup((cddb_id->text()).toUtf8().constData()); } kover-4.orig/src/cddb_fill.cc0000644000175000017500000003774211107643076014772 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include #include #include #include #include #include #include #include #include using namespace std; cddb_fill::cddb_fill(KoverFile *_kover_file, no_qobject *bla) { kover_file = _kover_file; blub = bla; } bool cddb_fill::read_cdtext() { CdIo_t *cdio; char *device = NULL; const char *status = "Unable to get default CD device."; const char *unable = "unable to open CD device"; cd_info.artist = "Artist"; cd_info.cdname = "Title"; cd_info.length = 0; cd_info.ntracks = 0; cd_info.tracks.clear(); cd_info.cddb_id = 0; if (!globals.cdrom_device) { device = cdio_get_default_device(NULL); if (!device) { blub->set_status_text(i18n(status).toUtf8()); return false; } } else device = globals.cdrom_device; kprintf("CD-ROM device: %s\n", device); cdio = cdio_open(device, DRIVER_UNKNOWN); cd_info.ntracks = cdio_get_num_tracks(cdio); kprintf("CDIO_INVALID_TRACK %d\n", CDIO_INVALID_TRACK); if (!cdio) { blub->set_status_text(unable); kprintf("%s\n", unable); return false; } /* Get the track count for the CD. */ cd_info.ntracks = cdio_get_num_tracks(cdio); kprintf("cdio_get_num_tracks: %d\n", cd_info.ntracks); kprintf("CDIO_INVALID_TRACK %d\n", CDIO_INVALID_TRACK); if (cd_info.ntracks == CDIO_INVALID_TRACK) { blub->set_status_text(unable); kprintf("%s\n", unable); cdio_destroy(cdio); return false; } kprintf("device %p\n", cdio); /* get disc artist and title */ cdtext_t *cdtext = cdio_get_cdtext(cdio, 0); if (cdtext) { if (cdtext->field[CDTEXT_PERFORMER]) cd_info.artist = cdtext->field[CDTEXT_PERFORMER]; if (cdtext->field[CDTEXT_TITLE]) cd_info.cdname = cdtext->field[CDTEXT_TITLE]; if (cdtext->field[CDTEXT_DISCID]) cd_info.cddb_id = strtoul(cdtext->field[CDTEXT_DISCID], NULL, 16); } for (int i = 1; i <= cd_info.ntracks; i++) { cdtext_t *cdtext = cdio_get_cdtext(cdio, i); trackinfo *blub = new trackinfo(); blub->track = i; if (cdtext->field[CDTEXT_TITLE]) blub->name = cdtext->field[CDTEXT_TITLE]; cd_info.tracks.push_back(blub); } cdio_destroy(cdio); return true; } bool cddb_fill::execute() { if (!readTOC()) return false; if (!cddb_query()) return false; return true; } bool cddb_fill::execute_without_cd(const char *id, int cat) { bool without = true; categories *category = new categories(); cd_info.cddb_id = strtoul(id, NULL, 16); string d(category->get_category(cat)); transform(d.begin(), d.end(), d.begin(), (int(*) (int))tolower); cd_info.category = d; cd_info.artist = "Artist"; cd_info.cdname = "Title"; cd_info.length = 0; cd_info.ntracks = 0; cd_info.tracks.clear(); without = cddb_read(cd_info.cddb_id, cd_info.category); if (category) { delete (category); category = NULL; } return without; } void cddb_fill::setTitleAndContents() { QString tracks, contents, cddb_id; string artist = cd_info.artist + "\n" + cd_info.cdname; kover_file->setTitle(artist.c_str()); for (int i = 0; i < cd_info.ntracks; i++) { if (globals.display_track_duration) { int m = 0; int n = 0; m = FRAMES_TO_SECONDS(cd_info.tracks[i]->length) / 60; n = FRAMES_TO_SECONDS(cd_info.tracks[i]->length) % 60; tracks.sprintf("(%.2d:%.2d)-%.2d. ", m, n, i + 1); } else tracks.sprintf("%.2d. ", i + 1); tracks.append(cd_info.tracks[i]->name.c_str()); if (i != cd_info.ntracks - 1) tracks.append("\n"); contents.append(tracks); } kover_file->setContents(contents); cddb_id.sprintf("0x%lx", cd_info.cddb_id); kover_file->set_cddb_id(cddb_id); } void cddb_fill::get_info() { const char *contains = "CD contains %d tracks, " "total time is %d:%02d, " "the magic number is 0x%lx"; char str[256]; sprintf(str, contains, cd_info.ntracks, cd_info.length / 60, cd_info.length % 60, cd_info.cddb_id); kprintf("%s\n", str); blub->set_status_text(str); blub->update_id(cd_info.cddb_id); } bool cddb_fill::readTOC() { CdIo_t *cdio = NULL; track_t cnt, t; lsn_t lsn; int i, pos; char *device = NULL; const char *status = "Unable to get default CD device."; cd_info.artist = "Artist"; cd_info.cdname = "Title"; cd_info.length = 0; cd_info.ntracks = 0; cd_info.tracks.clear(); if (!globals.cdrom_device) { device = cdio_get_default_device(NULL); if (!device) { blub->set_status_text(i18n(status).toUtf8()); return false; } } device = globals.cdrom_device; kprintf("CD-ROM device: %s\n", device); cdio = cdio_open(device, DRIVER_DEVICE); if (!cdio) { blub->set_status_text("unable to open CD device"); kprintf("unable to open CD device\n"); return false; } /* Get the track count for the CD. */ cnt = cdio_get_num_tracks(cdio); kprintf("cdio_get_num_tracks: %d\n", cnt); kprintf("CDIO_INVALID_TRACK %d\n", CDIO_INVALID_TRACK); if (cnt == CDIO_INVALID_TRACK) { blub->set_status_text("unable to open CD device"); kprintf("unable to open CD device\n"); cdio_destroy(cdio); return false; } kprintf("device %p\n", cdio); if (cnt == 0) { blub->set_status_text("no audio tracks on CD"); } kprintf("CD contains %d track(s)\n", cnt); cd_info.ntracks = cnt; for (t = 1; t <= cnt; t++) { lsn = cdio_get_track_lsn(cdio, t); kprintf("lsn: %d\n", lsn); if (lsn == CDIO_INVALID_LSN) { blub-> set_status_text ("track has invalid Logical Sector Number"); } /* lsn +=150; */ trackinfo *blub = new trackinfo(); blub->track = t; blub->start = lsn + SECONDS_TO_FRAMES(2); cd_info.tracks.push_back(blub); } lsn = cdio_get_track_lsn(cdio, CDIO_CDROM_LEADOUT_TRACK); trackinfo *blub = new trackinfo(); blub->track = t; blub->start = lsn + SECONDS_TO_FRAMES(2); cd_info.tracks.push_back(blub); cd_info.length = FRAMES_TO_SECONDS(lsn); kprintf("cd_info.length %d\n", cd_info.length); pos = cd_info.tracks[0]->start; for (i = 0; i < cd_info.ntracks; i++) { kprintf("pos: %d\n", pos); cd_info.tracks[i]->length = cd_info.tracks[i + 1]->start - pos; kprintf("length: %ld\n", cd_info.tracks[i]->length); kprintf("3: min %ld sec %ld\n", FRAMES_TO_SECONDS(cd_info.tracks[i]->length - SECONDS_TO_FRAMES(2)) / 60, FRAMES_TO_SECONDS(cd_info.tracks[i]->length - SECONDS_TO_FRAMES(2)) % 60); pos = cd_info.tracks[i + 1]->start; } kprintf("Table of contents successfully read: %08lx\n", cd_info.cddb_id); kprintf("Disc length: %d\n", cd_info.length); cdio_destroy(cdio); return true; } bool cddb_fill::reading_proxy_env_failed() { const char *f = "Reading http_proxy environment variable failed!"; blub->set_status_text(i18n(f).toUtf8()); return false; } bool cddb_fill::do_proxy_stuff(cddb_conn_t *conn) { char *proxy_server = NULL; int proxy_port = 0; char *tmp = NULL; char *s, *ss; if (!globals.use_proxy) return true; if (globals.password && globals.username) { cddb_set_http_proxy_credentials(conn, globals.username, globals.password); } if (!globals.proxy_from_env) { kprintf("not using http_env %s %d\n", globals.proxy_server, globals.proxy_port); cddb_http_proxy_enable(conn); cddb_set_http_proxy_server_name(conn, globals.proxy_server); cddb_set_http_proxy_server_port(conn, globals.proxy_port); return true; } /* saving the proxy configuration to temporary variables */ /* reading from environment */ if (getenv("http_proxy")) tmp = strdup(getenv("http_proxy")); if (!tmp) return reading_proxy_env_failed(); if (strncmp(tmp, "http://", 7)) return reading_proxy_env_failed(); /* finding proxy server and port */ s = strchr(tmp + 7, 58); if (!s) return reading_proxy_env_failed(); *s = 0; ss = strchr(s + 1, 47); if (!ss) return reading_proxy_env_failed(); *ss = 0; /* now globals has the environment proxy information */ proxy_server = strdup(tmp + 7); proxy_port = atoi(s + 1); cddb_http_proxy_enable(conn); cddb_set_http_proxy_server_name(conn, proxy_server); cddb_set_http_proxy_server_port(conn, proxy_port); free(proxy_server); return true; } bool cddb_fill::set_connection_params(cddb_conn_t *conn) { char *logname = NULL; char *hostname = NULL; if (!conn) return false; logname = getenv("LOGNAME"); hostname = getenv("HOSTNAME"); if (!logname) logname = strdup("Kover_User"); if (!hostname) hostname = strdup("Kover_Host"); char email[64]; snprintf(email, 63, "%s@%s", logname, hostname); cddb_set_client(conn, PACKAGE, VERSION); cddb_set_email_address(conn, email); cddb_set_server_name(conn, globals.cddb_server); if (globals.use_cache) cddb_cache_enable(conn); else cddb_cache_disable(conn); cddb_cache_set_dir(conn, globals.cddb_path); if (!globals.use_cddbp) { cddb_http_enable(conn); /* REQ */ cddb_set_server_port(conn, 80); /* REQ */ return do_proxy_stuff(conn); } return true; } bool cddb_fill::check_for_auth(cddb_conn_t *conn) { int blubber = -2; if (!conn) return false; blub->set_status_text(cddb_error_str(cddb_errno(conn))); pa *pad = new pa(globals.proxy_server, globals.proxy_port); blubber = pad->exec(); if (blubber) { blub->set_status_text(i18n("Operation aborted.").toUtf8()); /* canceled */ return false; } if (globals.username) free(globals.username); if (globals.password) free(globals.password); globals.username = pad->get_username(); globals.password = pad->get_password(); if (!set_connection_params(conn)) return false; delete pad; return true; } /* Sends query to server -- this is the first thing to be done */ bool cddb_fill::cddb_query() { int i; list inexact_list; inexact_dialog *inexact; cddb_211_item *ref_211; int aber = -2; cddb_disc_t *disc = NULL; cddb_track_t *track = NULL; cddb_conn_t *conn = NULL; int matches; string inexact_string = ""; blub->set_status_text(i18n("Querying database...").toUtf8()); disc = cddb_disc_new(); if (disc == NULL) { fprintf(stderr, "out of memory, unable to create disc"); exit(-1); } conn = cddb_new(); if (conn == NULL) { kprintf("out of memory, unable to create connection structure"); } if (!set_connection_params(conn)) return false; cddb_disc_set_length(disc, cd_info.length); for (i = 0; i < cd_info.ntracks; i++) { track = cddb_track_new(); if (track == NULL) { fprintf(stderr, "out of memory, unable to create track"); exit(-1); } cddb_track_set_frame_offset(track, cd_info.tracks[i]->start); cddb_disc_add_track(disc, track); } while (aber) { matches = ::cddb_query(conn, disc); if (cddb_errno(conn) == CDDB_ERR_PROXY_AUTH) { if (check_for_auth(conn)) continue; else return false; } if (matches == -1) { blub->set_status_text(cddb_error_str(cddb_errno(conn))); return false; } else aber = 0; } i = matches; if (i == 0) { blub->set_status_text(i18n("No match found.").toUtf8()); return false; } if (i == 1) { matches = 0; ref_211 = new cddb_211_item(); ref_211->set_category(string(cddb_disc_get_category_str(disc))); ref_211->set_id(cddb_disc_get_discid(disc)); inexact_list.push_back(ref_211); } while (matches > 0) { ref_211 = new cddb_211_item(); ref_211->set_title(string(cddb_disc_get_title(disc))); ref_211->set_artist(string(cddb_disc_get_artist(disc))); ref_211->set_category(string(cddb_disc_get_category_str(disc))); ref_211->set_id(cddb_disc_get_discid(disc)); inexact_list.push_back(ref_211); matches--; if (matches > 0) { if (!cddb_query_next(conn, disc)) { fprintf(stderr, "query index out of bounds"); exit(-1); } } } cddb_destroy(conn); if (inexact_list.empty()) { blub->set_status_text(i18n("No match found.").toUtf8()); return false; } inexact = new inexact_dialog(inexact_list); if (inexact_list.size() > 1) { /* dialog to choose one of the matches */ aber = inexact->exec(); } if (aber == -1) { blub->set_status_text(i18n("Query aborted...").toUtf8()); return false; } ref_211 = inexact->get_object(aber); kprintf("Using disc: %08lX:%s:%s:%s\n", ref_211->get_id(), ref_211->get_artist().c_str(), ref_211->get_title().c_str(), ref_211->get_category().c_str()); return cddb_read(ref_211->get_id(), ref_211->get_category()); } bool cddb_fill::cddb_read(unsigned long disc_id, string category) { cddb_disc_t *disc = NULL; cddb_track_t *track = NULL; cddb_conn_t *conn = NULL; int i = -2; kprintf("id %lx\n", disc_id); kprintf("category %s\n", category.c_str()); conn = cddb_new(); if (conn == NULL) { kprintf("out of memory, unable to create connection structure"); } if (!set_connection_params(conn)) return false; disc = cddb_disc_new(); if (disc == NULL) { fprintf(stderr, "out of memory, unable to create disc"); exit(-1); } kprintf("cat %d\n", cddb_disc_get_category(disc)); kprintf("cat %s\n", cddb_disc_get_category_str(disc)); cddb_disc_set_category_str(disc, category.c_str()); cddb_disc_set_discid(disc, disc_id); kprintf("cat %s\n", cddb_disc_get_category_str(disc)); while (i) { int success = ::cddb_read(conn, disc); kprintf("success %d\n", success); if (cddb_errno(conn) == CDDB_ERR_PROXY_AUTH) { if (check_for_auth(conn)) continue; else return false; } if (!success) { blub->set_status_text(cddb_error_str(cddb_errno(conn))); return false; } else i = 0; } cd_info.length = cddb_disc_get_length(disc); kprintf("cd_info.length %d\n", cd_info.length); if (cd_info.length == 0) { blub-> set_status_text(i18n ( "Disc length == 0; this can't be right. Aborting.") .toUtf8()); return false; } cd_info.artist = cddb_disc_get_artist(disc); cd_info.category = cddb_disc_get_category_str(disc); cd_info.cddb_id = cddb_disc_get_discid(disc); cd_info.cdname = cddb_disc_get_title(disc); i = 0; cd_info.ntracks = cddb_disc_get_track_count(disc); while ((signed int)cd_info.tracks.size() < cd_info.ntracks) cd_info.tracks.push_back(new trackinfo()); track = cddb_disc_get_track_first(disc); i = 0; while (track) { cd_info.tracks[i++]->name = cddb_track_get_title(track); track = cddb_disc_get_track_next(disc); } cddb_destroy(conn); return true; } bool cddb_fill::sites(list &server_list) { cddb_conn_t *conn = NULL; conn = cddb_new(); if (conn == NULL) { kprintf("out of memory, unable to create connection structure"); return false; } if (!set_connection_params(conn)) return false; cddb_sites(conn); const cddb_site_t *site = cddb_first_site(conn); while (site) { const char *address; unsigned int port; cddb_site_get_address(site, &address, &port); cddb_protocol_t proto = cddb_site_get_protocol(site); string protocol = ""; switch (proto) { case PROTO_CDDBP: protocol = "cddbp"; break; case PROTO_HTTP: protocol = "http"; break; default: protocol = "unknown"; } const char *path; cddb_site_get_query_path(site, &path); float latitude; float longitude; cddb_site_get_location(site, &latitude, &longitude); char blubber[64]; snprintf(blubber, 63, "%f", latitude); string lat = blubber; snprintf(blubber, 63, "%f", longitude); string lon = blubber; const char *desc; cddb_site_get_description(site, &desc); cddb_site_print(site); server_list. push_back(new server(address, protocol, port, path, lat, lon, desc)); site = cddb_next_site(conn); } cddb_destroy(conn); return false; } kover-4.orig/src/CMakeLists.txt0000644000175000017500000000211411107643076015302 0ustar renereneinclude(FindPkgConfig) set(${PROJECT_NAME}_SRCS main.cpp kover_config.cc pd.cpp sd.cpp server.cpp cddb_fill.cc pa.cpp categories.cc cddb_211_item.cc inexact_dialog.cc koverfile.cpp cdview.cc kovertop.cc id.cc directory.cc without_cd.cc ) pkg_check_modules(CDIO REQUIRED libcdio) pkg_check_modules(CDDB REQUIRED libcddb) set(CMAKE_C_FLAGS "-g -Wall") include_directories(${CDIO_INCLUDE_DIRS}) include_directories(${CDDB_INCLUDE_DIRS}) kde4_add_executable(${PROJECT_NAME} ${kover_SRCS}) target_link_libraries(${PROJECT_NAME} ${KDE4_KDEUI_LIBS}) target_link_libraries(${PROJECT_NAME} ${KDE4_KIO_LIBS}) target_link_libraries(${PROJECT_NAME} ${KDE4_KFILE_LIBS}) target_link_libraries(${PROJECT_NAME} ${CDIO_LDFLAGS}) target_link_libraries(${PROJECT_NAME} ${CDDB_LDFLAGS}) install(TARGETS kover DESTINATION ${BIN_INSTALL_DIR} ) install(FILES kover.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) install(FILES kover.xml DESTINATION ${XDG_MIME_INSTALL_DIR} ) install(FILES koverui.rc DESTINATION ${DATA_INSTALL_DIR}/kover ) add_subdirectory(icons) kover-4.orig/src/kovertop.h0000644000175000017500000000637211107643076014576 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef KOVER_TOP_H #define KOVER_TOP_H #include #include "cdview.h" #include "koverfile.h" #include "cddb_fill.h" #include "no_qobject.h" #include "pd.h" #include #include #include #include #include #include /** KoverTop is the TopLevelWidget. */ class KoverTop : public KXmlGuiWindow, no_qobject { Q_OBJECT public: KoverTop(); ~KoverTop(); public slots: void contentsBoxChanged(); void titleBoxChanged(); void stopPreview(); void numberChecked(bool checked); void numberChanged(int number); void dataChanged(bool image); void set_status_text(const char *); void setStatusText(const char *_status_text); void actualSize(); void update_id(unsigned long = 0); void fileOpen(const KUrl &); private: void saveFile(const KUrl &); private slots: void fileNew(); void fileOpen(); void fileSave(); void fileSaveAs(); void filePrint(); void cut(); void copy(); void paste(); void cddbFill(); void preferences(); void imageEmbedding(); void titleFont(); void titleFontColor(); void contentsFont(); void contentsFontColor(); void backgroundColor(); void cdrom_eject(); void inlet_title_font(); void cddb_without_cd(); void more_or_less(); void display_title_signal(); void spine_text_method(); void spine_text_changed_method(const QString & s); void file_mode(); void config_keys(); void read_cd_text(); private: bool queryClose(); int how_about_saving(); void make_menu(); void make_main_frame(); void make_more_frame(); void make_option_frame(); void update_id(QString id); QGroupBox *option_frame; QFrame *dead_space; QCheckBox *display_title; QLineEdit *the_spine_text; QCheckBox *spine_text; KRecentFilesAction *recent; QCheckBox *slim_case; QWidget *centralWidget; QWidget *main_frame; QWidget *left_frame; QFont *font_dialog(QFont *f); KoverFile kover_file; cddb_fill *cddbfill; KUrl m_url; bool altered_data; QLabel *title_label; QTextEdit *title_edit; QLabel *contents_label; QTextEdit *contents_edit; QCheckBox *number_check; QSpinBox *number_spin; KToolBar *main_toolbar; KToolBar *cd_toolbar; KStatusBar *status_bar; QLabel *cddb_id; CDView *cdview; QBoxLayout *button_layout; QFrame *more_frame; QPushButton *more_button; bool more; int orig_width; int orig_height; bool actual; }; #endif /* KOVER_TOP_H */ kover-4.orig/src/pa.h0000644000175000017500000000231711107643076013320 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* PA proxy auth */ #ifndef PA_H #define PA_H #include #include #include class pa:public QDialog { Q_OBJECT public: pa(char *host, int port); ~pa(); char *get_username(); char *get_password(); private: QLineEdit *user; QLineEdit *pw; char *password; char *username; private slots: void accept(); void quit(); }; #endif /* PA_H */ kover-4.orig/src/pd.cpp0000644000175000017500000004550311107643076013662 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* This is the Preferences Dialog (pd) */ #include "pd.moc" #include "pd.h" #include "sd.h" #include #include #include #include #include #include pd::pd(QWidget *p, KConfigSkeleton *cs, bool changed): KConfigDialog(p, "configure", cs) { setButtons(Ok | Cancel); setup_cddb(); setup_cdrom(); setup_cddb_files(); setup_cover(); setup_font(); setup_misc(); this->changed = changed; content = *globals.content_font; title = *globals.title_font; inlet_title = *globals.inlet_title_font; } pd::~pd() { } void pd::setup_cdrom(void) { QWidget *page = new QWidget; QVBoxLayout *topLayout = new QVBoxLayout(page); QGroupBox *group = new QGroupBox(i18n("&CDROM"), page); topLayout->addWidget(group); QVBoxLayout *vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); gbox->setMargin(2); gbox->setSpacing(4); vlay->addLayout(gbox); QString text; QLabel *label = new QLabel(i18n("CDROM device:"), group); gbox->addWidget(label, 0, 0, 1, 1); cdrom_widgets.cdrom_device = new QLineEdit(group); cdrom_widgets.cdrom_device->setMinimumWidth(fontMetrics().maxWidth() * 10); gbox->addWidget(cdrom_widgets.cdrom_device, 0, 1, 1, 1); text = i18n("Eject CD on exit"); cdrom_widgets.eject_cdrom = new QCheckBox(text, group); gbox->addWidget(cdrom_widgets.eject_cdrom, 1, 0, 1, -1); set_cdrom(); topLayout->addStretch(10); addPage(page, i18n("CDROM"), "drive-optical"); } void pd::set_cdrom() { cdrom_widgets.cdrom_device->setText(globals.cdrom_device); if (globals.eject_cdrom) cdrom_widgets.eject_cdrom->setChecked(true); else cdrom_widgets.eject_cdrom->setChecked(false); } int pd::check() { if (((cdrom_widgets.cdrom_device)->text()).isEmpty()) { KMessageBox::sorry(this, i18n("Please enter a cdrom device.")); return -1; } if ((((cddb_widgets.proxy_server)->text()).isEmpty() || ((cddb_widgets.proxy_port)->text()).isEmpty()) && (cddb_widgets.use_proxy)->isChecked() && !(cddb_widgets.proxy_from_env)->isChecked()) { KMessageBox::sorry(this, i18n("Please enter a correct proxy setup.")); return -1; } return 0; } void pd::slotButtonClicked(int button) { if (button == KDialog::Ok) { if (check()) return; kprintf("OK\n"); apply_settings(); accept(); } else KDialog::slotButtonClicked(button); } void pd::apply_settings() { if (!((cddb_widgets.proxy_port)->text()).isEmpty()) { globals.proxy_port = ((cddb_widgets.proxy_port)->text()).toInt(); } if (!((cddb_widgets.cddb_server)->text()).isEmpty()) { kprintf("old value :%s\n", globals.cddb_server); kprintf("new value: %s\n", ((cddb_widgets.cddb_server)->text()).toUtf8().constData()); free(globals.cddb_server); globals.cddb_server = strdup(((cddb_widgets.cddb_server)->text()).toUtf8()); } if (!((cddb_widgets.cgi_path)->text()).isEmpty()) { kprintf("old value :%s\n", globals.cgi_path); kprintf("new value: %s\n", ((cddb_widgets.cgi_path)->text()).toUtf8().constData()); free(globals.cgi_path); globals.cgi_path = strdup(((cddb_widgets.cgi_path)->text()).toUtf8()); } if (!((cddb_widgets.proxy_server)->text()).isEmpty()) { if (globals.proxy_server) free(globals.proxy_server); globals.proxy_server = strdup(((cddb_widgets.proxy_server)->text()).toUtf8()); } else { if (globals.proxy_server) free(globals.proxy_server); globals.proxy_server = NULL; } globals.use_cddbp = cddb_widgets.cddb_protocol->currentIndex(); globals.use_proxy = ((cddb_widgets.use_proxy)->isChecked())? 1 : 0; globals.proxy_from_env = ((cddb_widgets.proxy_from_env)->isChecked())? 1 : 0; globals.eject_cdrom = ((cdrom_widgets.eject_cdrom)->isChecked())? 1 : 0; if (!((cdrom_widgets.cdrom_device)->text()).isEmpty()) { if (globals.cdrom_device) free(globals.cdrom_device); globals.cdrom_device = strdup(((cdrom_widgets.cdrom_device)->text()).toUtf8()); } else { if (globals.cdrom_device) free(globals.cdrom_device); globals.cdrom_device = NULL; } *globals.content_font = content; *globals.title_font = title; *globals.inlet_title_font = inlet_title; save_cddb_files(); save_cover(); save_misc(); } void pd::setup_cddb(void) { QWidget *page = new QWidget; QVBoxLayout *topLayout = new QVBoxLayout(page); QGroupBox *group = new QGroupBox(i18n("&CDDB server")); topLayout->addWidget(group); QVBoxLayout *vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); gbox->setMargin(2); gbox->setSpacing(4); vlay->addLayout(gbox); QString text; QLabel *label = new QLabel(i18n("CDDB server:"), group); gbox->addWidget(label, 0, 0); cddb_widgets.cddb_protocol = new QComboBox(group); cddb_widgets.cddb_protocol->insertItem(0, "CDDBP"); cddb_widgets.cddb_protocol->insertItem(0, "HTTP"); connect(cddb_widgets.cddb_protocol, SIGNAL(activated(int)), SLOT(protocol_changed(int))); gbox->addWidget(cddb_widgets.cddb_protocol, 0, 1); cddb_widgets.cddb_server = new QLineEdit(group); cddb_widgets.cddb_server->setMinimumWidth(fontMetrics().maxWidth() * 10); gbox->addWidget(cddb_widgets.cddb_server, 0, 2); QPushButton *browse = new QPushButton(i18n("Browse"), group); connect(browse, SIGNAL(clicked()), SLOT(browsing())); gbox->addWidget(browse, 0, 3); label = new QLabel(i18n("CGI path:"), group); gbox->addWidget(label, 1, 0); cddb_widgets.cgi_path = new QLineEdit(group); cddb_widgets.cgi_path->setMinimumWidth(fontMetrics().maxWidth() * 10); gbox->addWidget(cddb_widgets.cgi_path, 1, 2); group = new QGroupBox(i18n("&Proxy configuration")); topLayout->addWidget(group); vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); gbox = new QGridLayout(); vlay->addLayout(gbox); text = i18n("Use proxy for CDDB lookups"); cddb_widgets.use_proxy = new QCheckBox(text, group); connect(cddb_widgets.use_proxy, SIGNAL(toggled(bool)), this, SLOT(use_proxy(bool))); gbox->addWidget(cddb_widgets.use_proxy, 0, 0, 1, 2); text = i18n("Use 'http_proxy' environment variable"); cddb_widgets.proxy_from_env = new QCheckBox(text, group); connect(cddb_widgets.proxy_from_env, SIGNAL(toggled(bool)), this, SLOT(use_proxy_env(bool))); gbox->addWidget(cddb_widgets.proxy_from_env, 3, 0, 1, 2); label = new QLabel(i18n("Proxy server:"), group); gbox->addWidget(label, 1, 0); cddb_widgets.proxy_server = new QLineEdit(group); cddb_widgets.proxy_server->setMinimumWidth(fontMetrics().maxWidth() * 10); gbox->addWidget(cddb_widgets.proxy_server, 1, 1, 1, 1); label = new QLabel(i18n("Proxy server port:"), group); gbox->addWidget(label, 2, 0); cddb_widgets.proxy_port = new QLineEdit(group); cddb_widgets.proxy_port->setMaxLength(5); gbox->addWidget(cddb_widgets.proxy_port, 2, 1, 1, 1); set_cddb(); topLayout->addStretch(10); addPage(page, i18n("CDDB"), "network-wired"); } void pd::set_cddb() { QString text; cddb_widgets.cddb_server->setText(globals.cddb_server); cddb_widgets.cgi_path->setText(globals.cgi_path); if (globals.proxy_server) cddb_widgets.proxy_server->setText(globals.proxy_server); cddb_widgets.proxy_port->setText(text.sprintf("%d", globals.proxy_port)); cddb_widgets.cddb_protocol->setCurrentIndex(globals.use_cddbp ? 1 : 0); cddb_widgets.proxy_from_env->setChecked(globals.proxy_from_env); cddb_widgets.use_proxy->setChecked(globals.use_proxy); protocol_changed(globals.use_cddbp ? 1 : 0); } /** * enable/disable the use proxy and proxy information input fields * * @param status true if proxy input fields should be enabled */ void pd::use_proxy(bool status) { if ((cddb_widgets.proxy_from_env)->isChecked() && status) use_proxy_env(true); else use_proxy_env(!status); cddb_widgets.proxy_from_env->setEnabled(status); } /** * if status is true the proxy server and proxy port input * text area are disabled * * @param status true if proxy should be read from environment variable * this will disable the input text area for proxy information */ void pd::use_proxy_env(bool status) { cddb_widgets.proxy_server->setEnabled(!status); cddb_widgets.proxy_port->setEnabled(!status); } /** * protocol_changed is called everytime the user selects between the * protocols (HTTP/CDDBP) * * @param prot 0 = CDDBP * 1 = HTTP */ void pd::protocol_changed(int prot) { bool http = prot ? false : true; if (!cddb_widgets.use_proxy->isChecked() && http) { use_proxy_env(true); cddb_widgets.proxy_from_env->setEnabled(false); } else use_proxy(http); cddb_widgets.cgi_path->setEnabled(http); cddb_widgets.use_proxy->setEnabled(http); } void pd::setup_cddb_files(void) { QWidget *page = new QWidget; QVBoxLayout *topLayout = new QVBoxLayout(page); QGroupBox *group = new QGroupBox(i18n("&Local CDDB files"), page); topLayout->addWidget(group); QVBoxLayout *vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); vlay->addLayout(gbox); QString text; text = i18n("Enable caching of CDDB entries locally"); cddb_files_widgets.use_cache = new QCheckBox(text, group); gbox->addWidget(cddb_files_widgets.use_cache, 0, 0, 1, -1); QLabel *label = new QLabel(i18n("CDDB path:"), group); gbox->addWidget(label, 1, 0); cddb_files_widgets.cddb_path = new QLineEdit(group); cddb_files_widgets.cddb_path->setMinimumWidth(fontMetrics().maxWidth() * 10); gbox->addWidget(cddb_files_widgets.cddb_path, 1, 1, 1, 1); set_cddb_files(); topLayout->addStretch(10); addPage(page, i18n("CDDB files"), "preferences-desktop-filetype-association"); } void pd::set_cddb_files() { cddb_files_widgets.use_cache->setChecked(globals.use_cache); cddb_files_widgets.cddb_path->setText(globals.cddb_path); } void pd::save_cddb_files() { globals.use_cache = ((cddb_files_widgets.use_cache)->isChecked())? 1 : 0; if (globals.cddb_path) free(globals.cddb_path); if (!((cddb_files_widgets.cddb_path)->text()).isEmpty()) globals.cddb_path = strdup(((cddb_files_widgets.cddb_path)->text()).toUtf8()); else globals.cddb_path = NULL; } void pd::setup_cover() { QWidget *page = new QWidget; QVBoxLayout *topLayout = new QVBoxLayout(page); QGroupBox *group = new QGroupBox(i18n("Cover"), page); topLayout->addWidget(group); QVBoxLayout *vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); vlay->addLayout(gbox); QString text; text = i18n("Display track duration after a CDDB request"); cover_widgets.display_track_duration = new QCheckBox(text, group); gbox->addWidget(cover_widgets.display_track_duration, 0, 0, 1, -1); text = i18n("Print inlet and booklet"); cover_widgets.its_normal = new QRadioButton(text, group); gbox->addWidget(cover_widgets.its_normal, 1, 0); connect(cover_widgets.its_normal, SIGNAL(clicked(bool)), SLOT(output_changed_1())); text = i18n("Print inlet on left side of booklet.\n(slim case option)"); cover_widgets.its_a_slim_case = new QRadioButton(text, group); gbox->addWidget(cover_widgets.its_a_slim_case, 2, 0, 1, -1); connect(cover_widgets.its_a_slim_case, SIGNAL(clicked(bool)), SLOT(output_changed_2())); text = i18n("Don't print booklet.\n(inlet only option)"); cover_widgets.inlet_only = new QRadioButton(text, group); gbox->addWidget(cover_widgets.inlet_only, 3, 0, 1, -1); connect(cover_widgets.inlet_only, SIGNAL(clicked(bool)), SLOT(output_changed_3())); text = i18n("Print all on one page"); cover_widgets.one_page = new QRadioButton(text, group); gbox->addWidget(cover_widgets.one_page, 4, 0, 1, -1); connect(cover_widgets.one_page, SIGNAL(clicked(bool)), SLOT(output_changed_4())); cover_widgets.inlet = new QLabel(group); KIconLoader *pixmap = KIconLoader::global (); cover_widgets.inlet->setPixmap(pixmap->loadIcon("kover_back_content", KIconLoader::NoGroup)); gbox->addWidget(cover_widgets.inlet, 5, 0, 1, 1, Qt::AlignHCenter); cover_widgets.booklet = new QLabel(group); cover_widgets.booklet->setPixmap(pixmap->loadIcon("kover_front_title_only", KIconLoader::NoGroup)); gbox->addWidget(cover_widgets.booklet, 5, 1, 1, 1, Qt::AlignHCenter); set_cover(); addPage(page, i18n("Cover"), "kover"); } void pd::output_changed_1() { output_changed(1); } void pd::output_changed_2() { output_changed(2); } void pd::output_changed_3() { output_changed(3); } void pd::output_changed_4() { output_changed(4); } void pd::output_changed(int type) { KIconLoader *pixmap = KIconLoader::global (); if (type == 1) { cover_widgets.inlet->setPixmap(pixmap->loadIcon("kover_back_content", KIconLoader::NoGroup)); cover_widgets.booklet->setPixmap(pixmap->loadIcon("kover_front_title_only", KIconLoader::NoGroup)); } if (type == 2) { cover_widgets.inlet->setPixmap(NULL); cover_widgets.booklet->setPixmap(pixmap-> loadIcon("kover_front_title-right_content-left", KIconLoader::NoGroup)); } if (type == 3) { cover_widgets.inlet->setPixmap(pixmap->loadIcon("kover_back_title_content", KIconLoader::NoGroup)); cover_widgets.booklet->setPixmap(NULL); } if (type == 4) { cover_widgets.inlet->setPixmap(pixmap->loadIcon("kover_back_content", KIconLoader::NoGroup)); cover_widgets.booklet->setPixmap(pixmap->loadIcon("kover_one_page", KIconLoader::NoGroup)); } } void pd::set_cover() { cover_widgets.display_track_duration->setChecked(globals.display_track_duration); /* no comment */ if (!globals.inlet_only && !globals.its_a_slim_case && !globals.one_page) { cover_widgets.its_normal->setChecked(true); output_changed(1); } cover_widgets.its_a_slim_case->setChecked(globals.its_a_slim_case); cover_widgets.inlet_only->setChecked(globals.inlet_only); cover_widgets.one_page->setChecked(globals.one_page); if (globals.its_a_slim_case) output_changed(2); if (globals.inlet_only) output_changed(3); if (globals.one_page) output_changed(4); } void pd::save_cover() { globals.display_track_duration = (cover_widgets.display_track_duration)->isChecked()? 1 : 0; globals.its_a_slim_case = (cover_widgets.its_a_slim_case)->isChecked()? 1 : 0; globals.inlet_only = (cover_widgets.inlet_only)->isChecked()? 1 : 0; globals.one_page = (cover_widgets.one_page)->isChecked()? 1 : 0; } void pd::browsing() { sd *dialog; int aber = 0; dialog = new sd(); aber = dialog->exec(); kprintf("sd returns: %d %s\n", aber, (dialog->get(aber)).c_str()); if (aber >= 0) cddb_widgets.cddb_server->setText((dialog->get(aber)).c_str()); delete(dialog); } void pd::setup_font() { QWidget *page = new QWidget; QVBoxLayout *topLayout = new QVBoxLayout(page); QGroupBox *group = new QGroupBox(i18n("&Standard Fonts"), page); topLayout->addWidget(group); QVBoxLayout *vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); vlay->addLayout(gbox); QLabel *label = new QLabel(i18n ("Changes to any of these fonts are global. " "This means, that changes will only be available " "for the next new cover. " "Except that the current cover is empty. " "Then changes are applied to the current cover."), group); label->setWordWrap(true); gbox->addWidget(label, 0, 0, 1, -1); label = new QLabel(i18n("Content Font: "), group); gbox->addWidget(label, 1, 0); font_widgets.change_content_font = new QPushButton(i18n("Change"), group); gbox->addWidget(font_widgets.change_content_font, 1, 1); connect(font_widgets.change_content_font, SIGNAL(clicked()), SLOT(content_font_dialog())); label = new QLabel(i18n("Title Font: "), group); gbox->addWidget(label, 2, 0); font_widgets.change_title_font = new QPushButton(i18n("Change"), group); gbox->addWidget(font_widgets.change_title_font, 2, 1); connect(font_widgets.change_title_font, SIGNAL(clicked()), this, SLOT(title_font_dialog())); label = new QLabel(i18n("Spine Text Font: "), group); gbox->addWidget(label, 3, 0); font_widgets.change_inlet_title_font = new QPushButton(i18n("Change"), group); gbox->addWidget(font_widgets.change_inlet_title_font, 3, 1); connect(font_widgets.change_inlet_title_font, SIGNAL(clicked()), this, SLOT(inlet_title_font_dialog())); topLayout->addStretch(); addPage(page, i18n("Fonts"), "preferences-desktop-font"); } void pd::font_dialog(QFont *f) { KFontDialog kf; kprintf("font name before: %s\n", f->family().toUtf8().constData()); kf.setFont(*f); if (kf.getFont(*f) && changed) { KMessageBox::information(this, i18n("Changes to the fonts" " will not be applied to" " the current cover," " but for the next new cover.")); changed = false; } kprintf("font name after: %s\n", f->family().toUtf8().constData()); } void pd::content_font_dialog() { font_dialog(&content); } void pd::title_font_dialog() { font_dialog(&title); } void pd::inlet_title_font_dialog() { font_dialog(&inlet_title); } void pd::setup_misc(void) { QWidget *page = new QWidget; QVBoxLayout *topLayout = new QVBoxLayout(page); QGroupBox *group = new QGroupBox(i18n("&Stuff"), page); topLayout->addWidget(group); QVBoxLayout *vlay = new QVBoxLayout(group); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); vlay->addLayout(gbox); QString text; text = i18n("Save window position"); misc_widgets.save_position = new QCheckBox(text, group); gbox->addWidget(misc_widgets.save_position, 0, 0); text = i18n("Disable unnecessary animation"); misc_widgets.disable_animation = new QCheckBox(text, group); gbox->addWidget(misc_widgets.disable_animation, 1, 0); text = i18n("Mouse click on kover preview triggers actual size"); misc_widgets.trigger_actual_size = new QCheckBox(text, group); gbox->addWidget(misc_widgets.trigger_actual_size, 2, 0); set_misc(); topLayout->addStretch(10); addPage(page, i18n("Miscellaneous"), "preferences-desktop-icons"); } void pd::set_misc() { misc_widgets.save_position->setChecked(globals.save_position); misc_widgets.disable_animation->setChecked(globals.disable_animation); misc_widgets.trigger_actual_size->setChecked(globals.trigger_actual_size); } void pd::save_misc() { globals.save_position = (misc_widgets.save_position)->isChecked()? 1 : 0; globals.disable_animation = (misc_widgets.disable_animation)->isChecked()? 1 : 0; globals.trigger_actual_size = (misc_widgets.trigger_actual_size)->isChecked()? 1 : 0; } kover-4.orig/src/id.h0000644000175000017500000000343211107643076013313 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1998, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * 14 Dec 1998: Initial release */ #ifndef ID_H #define ID_H #include #include #include #include #include #include #include #include "koverfile.h" class id : public QDialog { Q_OBJECT public: id (KoverFile *_kover_file); ~id (); protected slots: void ok(); void cancel(); void browse_1(); void browse_2(); void browse_3(); private: void init(); void add_labels(QGridLayout *); void buttons(QVBoxLayout *); void add_targets(QComboBox *); void add_appear(QComboBox *); QGroupBox *group1; QLineEdit *edit1; QPushButton *browse1; QComboBox *target1; QComboBox *appear1; QGroupBox *group2; QLineEdit *edit2; QPushButton *browse2; QComboBox *target2; QComboBox *appear2; QGroupBox *group3; QLineEdit *edit3; QPushButton *browse3; QComboBox *target3; QComboBox *appear3; KoverFile *kover_file; }; #endif /* ID_H */ kover-4.orig/src/directory.cc0000644000175000017500000000716211107643076015065 0ustar renerene// // File: directory.h // Created by: adrian // Created on: Thu Jan 30 17:28:51 2003 // #include "directory.h" #include #include #include #include directory::directory(string current_dir) { struct stat stat_struct; struct dirent *dirent_struct; DIR *dir = NULL; string full_path; int start = 0; int stop = 0; current_dir = normalize_path(current_dir); if ((current_dir.find("/dev/")==0) || (current_dir.find("/proc/")==0)) return; stop = current_dir.rfind("/") - 1; start = current_dir.rfind("/",stop); short_name = current_dir.substr(start+1,stop-start); this->current_dir = current_dir; /* does the directory exist */ if (stat(current_dir.c_str(), &stat_struct) == -1) return; dir = opendir(current_dir.c_str()); if (!dir) return; dirent_struct = readdir(dir); while (dirent_struct) { full_path = current_dir; full_path += dirent_struct->d_name; if (is_dir(full_path) && !(!strcmp(dirent_struct->d_name, "."))) directories.push_back(dirent_struct->d_name); if (!is_dir(full_path)) files.push_back(dirent_struct->d_name); dirent_struct = readdir(dir); } directories.sort(); } bool directory::is_dir(string dir) { struct stat stat_struct; stat(dir.c_str(), &stat_struct); if (stat_struct.st_mode & S_IFDIR) return true; return false; } directory::~directory() { printf("deleted: %s\n",current_dir.c_str()); } bool directory::has_childs() { if (childs.size()) return true; return false; } int directory::how_many() { return (int) directories.size(); } int directory::how_many_files() { return (int) files.size(); } int directory::how_many_childs() { return (int) childs.size(); } string directory::get_directory(int id) { if (id < 0 || id >= how_many()) return string(); list :: iterator dir; int i = 0; for (dir = directories.begin(); dir != directories.end(); dir++) { if (i++ == id) return *dir; } return string(); } string directory::get_file(int id) { if (id < 0 || id >= how_many_files()) return string(); list :: iterator file; int i = 0; for (file = files.begin(); file != files.end(); file++) { if (i++ == id) return *file; } return string(); } directory* directory::get_childs(int id) { if (id < 0 || id >= how_many_childs()) return NULL; list :: iterator dir; int i = 0; for (dir = childs.begin(); dir != childs.end(); dir++) { if (i++ == id) return *dir; } return NULL; } string directory::get_current() { return current_dir; } string directory::get_short_name() { return short_name; } void directory::make_childs() { childs.clear(); list :: iterator dir; for (dir = directories.begin(); dir != directories.end(); dir++) { childs.push_back(new directory(current_dir + *dir)); } } string directory::normalize_path(string path) { if (path.substr(path.size()-1,path.size()).compare("/")) path += "/"; return path; } directory *directory::get_child_by_path(string path) { path = normalize_path(path); list :: iterator dir; for (dir = childs.begin(); dir != childs.end(); dir++) { printf("%s:%s:%d\n",(*dir)->get_current().c_str(), path.c_str(),path.size()); if (!(*dir)->get_current().compare(0,path.size(),path)) return (*dir); } return this; } kover-4.orig/src/kovertop.cc0000644000175000017500000005020211107643076014723 0ustar renerene/* * kover - Kover is an easy to use WYSIWYG CD cover printer with CDDB support. * Copyright (C) 1999, 2000 by Denis Oliver Kropp * Copyright (C) 2000, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "kovertop.moc" #include "without_cd.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PREV_WIDTH 695 #define PREV_HEIGHT 684 #define i18n(x) x #define CDVIEW_WIDTH 291 #define CDVIEW_HEIGHT 310 KoverTop::KoverTop() : KXmlGuiWindow() { centralWidget = new QWidget(this); QVBoxLayout *vlayout = new QVBoxLayout(); centralWidget->setLayout(vlayout); main_frame = new QWidget(centralWidget); vlayout->addWidget(main_frame); option_frame = new QGroupBox(centralWidget); vlayout->addWidget(option_frame); dead_space = new QFrame(centralWidget); vlayout->addWidget(dead_space); more_frame = new QFrame(centralWidget); vlayout->addWidget(more_frame); option_frame->setTitle(tr("All these options are not global")); setCaption(i18n("[New Document]"), false); status_bar = statusBar(); status_bar->insertItem("Kover " VERSION " - http://lisas.de/kover/", 1); make_menu(); make_main_frame(); make_option_frame(); make_more_frame(); connect(&kover_file, SIGNAL(dataChanged(bool)), SLOT(dataChanged(bool))); cddbfill = new cddb_fill(&kover_file, this); altered_data = false; more = false; actual = false; if (globals.save_position) move(globals.xpos, globals.ypos); recent->loadEntries(KGlobal::config()->group("RecentFiles")); setCentralWidget(centralWidget); orig_width = width(); orig_height = height(); createGUI(); setAutoSaveSettings(); /* fill with useful default values */ orig_width = width(); orig_height = height(); } KoverTop::~KoverTop() { stopPreview(); if (globals.save_position) { globals.xpos = x(); globals.ypos = y(); } recent->saveEntries(KGlobal::config()->group("RecentFiles")); delete status_bar; delete cddbfill; delete cdview; kprintf("~KoverTop()\n"); } void KoverTop::make_menu() { KActionCollection *ac = actionCollection(); KStandardAction::openNew(this, SLOT(fileNew()), ac); KStandardAction::open(this, SLOT(fileOpen()), ac); KStandardAction::save(this, SLOT(fileSave()), ac); KStandardAction::saveAs(this, SLOT(fileSaveAs()), ac); KStandardAction::print(this, SLOT(filePrint()), ac); KStandardAction::quit(this, SLOT(close()), ac); KStandardAction::cut(this, SLOT(cut()), ac); KStandardAction::copy(this, SLOT(copy()), ac); KStandardAction::paste(this, SLOT(paste()), ac); KStandardAction::preferences(this, SLOT(preferences()), ac); KStandardAction::keyBindings(this, SLOT(config_keys()), ac); recent = KStandardAction::openRecent(this, SLOT(fileOpen(KUrl)), ac); KAction *act = new KAction(KIcon("network-connect"), i18n( "&CDDB lookup"), ac); ac->addAction("cddb", act); connect(act, SIGNAL(triggered(bool)), SLOT(cddbFill())); act = new KAction(KIcon("media-eject"), i18n("Eject CD"), ac); ac->addAction("eject_cdrom", act); connect(act, SIGNAL(triggered(bool)), SLOT(cdrom_eject())); act = new KAction(KIcon("zoom-in"), i18n("&Actual size"), ac); ac->addAction("actual_size", act); act->setShortcut(KStandardShortcut::zoomIn()); connect(act, SIGNAL(triggered(bool)), SLOT(actualSize())); act = new KAction(KIcon("zoom-out"), i18n("Preview size"), ac); ac->addAction("stop_preview", act); act->setShortcut(KStandardShortcut::zoomOut()); act->setShortcut(QKeySequence(Qt::Key_Escape)); connect(act, SIGNAL(triggered(bool)), SLOT(stopPreview())); act = new KAction(KIcon("image-loading"), i18n("&Image Embedding..."), ac); ac->addAction("image_embedding", act); connect(act, SIGNAL(triggered(bool)), SLOT(imageEmbedding())); act = new KAction(KIcon("preferences-desktop-font"), i18n("Title Font..."), ac); ac->addAction("title_font", act); connect(act, SIGNAL(triggered(bool)), SLOT(titleFont())); act = new KAction(KIcon("preferences-desktop-font"), i18n("Contents Font..."), ac); ac->addAction("contents_font", act); connect(act, SIGNAL(triggered(bool)), SLOT(contentsFont())); act = new KAction(KIcon("preferences-desktop-font"), i18n("Spine Text Font..."), ac); ac->addAction("inlet_title_font", act); connect(act, SIGNAL(triggered(bool)), SLOT(inlet_title_font())); act = new KAction(KIcon("color-picker"), i18n("Title Fontcolor..."), ac); ac->addAction("title_font_color", act); connect(act, SIGNAL(triggered(bool)), SLOT(titleFontColor())); act = new KAction(KIcon("color-picker"), i18n( "Contents Fontcolor..."), ac); ac->addAction("contents_font_color", act); connect(act, SIGNAL(triggered(bool)), SLOT(contentsFontColor())); act = new KAction(KIcon("color-picker"), i18n( "Background Fontcolor..."), ac); ac->addAction("background_color", act); connect(act, SIGNAL(triggered(bool)), SLOT(backgroundColor())); act = new KAction(KIcon("network-connect"), i18n("CDDB without CD"), ac); ac->addAction("cddb_without_cd", act); connect(act, SIGNAL(triggered(bool)), SLOT(cddb_without_cd())); act = new KAction(KIcon("network-connect"), i18n("Read CD-TEXT"), ac); ac->addAction("read_cd_text", act); connect(act, SIGNAL(triggered(bool)), SLOT(read_cd_text())); } void KoverTop::config_keys() { KShortcutsDialog::configure(actionCollection()); } void KoverTop::make_main_frame() { QHBoxLayout *hlayout = new QHBoxLayout(); main_frame->setLayout(hlayout); left_frame = new QWidget(); hlayout->addWidget(left_frame); QVBoxLayout *layout = new QVBoxLayout(); left_frame->setLayout(layout); title_label = new QLabel(i18n("Title"), left_frame); layout->addWidget(title_label); title_edit = new QTextEdit(left_frame); layout->addWidget(title_edit); connect(title_edit, SIGNAL(textChanged()), SLOT(titleBoxChanged())); contents_label = new QLabel(i18n("Contents"), left_frame); layout->addWidget(contents_label); contents_edit = new QTextEdit(left_frame); layout->addWidget(contents_edit); connect(contents_edit, SIGNAL(textChanged()), SLOT(contentsBoxChanged())); cdview = new CDView(&kover_file, main_frame); hlayout->addWidget(cdview); cdview->setFixedSize(CDVIEW_WIDTH, CDVIEW_HEIGHT); connect(cdview, SIGNAL(stopPreview()), SLOT(stopPreview())); connect(cdview, SIGNAL(actualSize()), SLOT(actualSize())); title_edit->setFocus(); } void KoverTop::make_option_frame() { QVBoxLayout *vlay = new QVBoxLayout(option_frame); vlay->addSpacing(fontMetrics().lineSpacing()); QGridLayout *gbox = new QGridLayout(); vlay->addLayout(gbox); display_title = new QCheckBox(tr("No title on booklet"), option_frame); connect(display_title, SIGNAL(clicked()), SLOT(display_title_signal())); kprintf("before display_title\n"); gbox->addWidget(display_title, 0, 0, 1, 1); spine_text = new QCheckBox(i18n("Separate Spine Text"), option_frame); kprintf("spine_text display_title\n"); gbox->addWidget(spine_text, 1, 0, 1, 1); connect(spine_text, SIGNAL(clicked()), SLOT(spine_text_method())); the_spine_text = new QLineEdit(option_frame); kprintf("spine_text display_title\n"); gbox->addWidget(the_spine_text, 2, 0, 1, 4); the_spine_text->setEnabled(false); connect(the_spine_text, SIGNAL(textChanged(const QString &)), SLOT(spine_text_changed_method(const QString &))); number_check = new QCheckBox(i18n("CD Number"), option_frame); gbox->addWidget(number_check, 3, 0, 1, 1); connect(number_check, SIGNAL(toggled(bool)), SLOT(numberChecked(bool))); number_spin = new QSpinBox(option_frame); number_spin->setEnabled(false); gbox->addWidget(number_spin, 3, 1, 1, 1); connect(number_spin, SIGNAL(valueChanged(int)), SLOT(numberChanged(int))); option_frame->hide(); } void KoverTop::make_more_frame() { button_layout = new QBoxLayout(QBoxLayout::RightToLeft); button_layout->setAlignment(Qt::AlignTop); more_frame->setLayout(button_layout); more_button = new QPushButton(i18n("Options"), more_frame); button_layout->addWidget(more_button, 0); connect(more_button, SIGNAL(clicked()), SLOT(more_or_less())); button_layout->addStretch(1); cddb_id = new QLabel("", more_frame); button_layout->addWidget(cddb_id, 0); } void KoverTop::dataChanged(bool image) { bool bla = image; bla = true; setStatusText(i18n("Data changed")); if (m_url.isEmpty()) setCaption(i18n("[New Document]"), true); else setCaption(i18n(m_url.url()), true); altered_data = true; } void KoverTop::setStatusText(const char *_status_text) { set_status_text(_status_text); } void KoverTop::set_status_text(const char *_status_text) { status_bar->changeItem(_status_text, 1); kapp->processEvents(); } void KoverTop::update_id(unsigned long id) { QString string = ""; if (id != 0) string.sprintf("CDDB id: 0x%08lx", id); cddb_id->setText(string); } void KoverTop::update_id(QString id) { QString string = ""; if (!id.isEmpty()) string = "CDDB id: " + id; cddb_id->setText(string); } void KoverTop::titleBoxChanged() { kover_file.setTitle(title_edit->toPlainText()); if (!kover_file.spine_text()) the_spine_text->setText(title_edit->toPlainText()); } void KoverTop::contentsBoxChanged() { kover_file.setContents(contents_edit->toPlainText()); } void KoverTop::numberChanged(int value) { kover_file.setNumber(value); } void KoverTop::numberChecked(bool checked) { number_spin->setEnabled(checked); if (checked) kover_file.setNumber(number_spin->value()); else kover_file.setNumber(0); } void KoverTop::stopPreview() { kprintf("begin\n"); if (more || !actual) return; cdview->setFixedSize(CDVIEW_WIDTH, CDVIEW_HEIGHT); cdview->showPreview(false); more_frame->show(); left_frame->show(); menuBar()->show(); statusBar()->show(); dead_space->show(); toolBar("koverToolBar")->show(); toolBar("mainToolBar")->show(); adjustSize(); resize(orig_width, orig_height); actual = false; kprintf("end\n"); } bool KoverTop::queryClose() { kprintf("begin\n"); if (actual) { stopPreview(); return false; } if (altered_data) if (how_about_saving()) return false; kprintf("end\n"); return true; } void KoverTop::fileNew() { if (altered_data) { if (how_about_saving()) return; } title_edit->clear(); contents_edit->clear(); number_spin->setValue(1); number_spin->setEnabled(false); number_check->setChecked(false); title_edit->setFocus(); kover_file.reset(); display_title->setChecked(kover_file.display_title()); the_spine_text->setEnabled(kover_file.spine_text()); spine_text->setChecked(kover_file.spine_text()); setStatusText("Chop!"); altered_data = false; m_url = KUrl(); setCaption(i18n("[New Document]"), false); update_id(); } void KoverTop::fileOpen() { if (altered_data) { if (how_about_saving()) return; } KUrl url = KFileDialog::getOpenUrl(KUrl(), i18n( "*.kover|Kover files\n*|All files")); if (!url.isEmpty()) { fileOpen(url); } } void KoverTop::fileOpen(const KUrl & url) { if (!url.isEmpty()) { if (kover_file.openFile(url)) { m_url = url; setCaption(i18n(m_url.url()), false); disconnect(contents_edit, SIGNAL(textChanged()), this, SLOT(contentsBoxChanged())); title_edit->setText(kover_file.title()); contents_edit->setText(kover_file.contents()); connect(contents_edit, SIGNAL(textChanged()), SLOT(contentsBoxChanged())); update_id(kover_file.cddb_id()); display_title->setChecked(kover_file.display_title()); if (!kover_file.spine_text()) { the_spine_text->setText(title_edit->toPlainText()); the_spine_text->setEnabled(kover_file.spine_text()); spine_text->setChecked(kover_file.spine_text()); } else { the_spine_text->setText(kover_file.the_spine_text()); the_spine_text->setEnabled(kover_file.spine_text()); spine_text->setChecked(kover_file.spine_text()); } if (kover_file.number()) { number_spin->setValue(kover_file.number()); number_spin->setEnabled(true); number_check->setChecked(true); } else { number_spin->setEnabled(false); number_check->setChecked(false); } setStatusText(i18n("File loaded")); altered_data = false; recent->addUrl(url); } else KMessageBox::error(this, i18n( "Error while opening/reading file!")); } } int KoverTop::how_about_saving() { switch (KMessageBox::warningYesNoCancel(this, i18n ( "Data changed since last saving!\nDo you want to save the changes?"))) { case 3: /* YES */ fileSave(); if (altered_data) return -1; return 0; case 4: /* NO */ return 0; case 2: /* CANCEL */ return -1; } return -1; } void KoverTop::saveFile(const KUrl & url) { if (kover_file.saveFile(url)) { setCaption(i18n(url.url()), false); setStatusText(i18n("File saved")); altered_data = false; recent->addUrl(url); m_url = url; } else KMessageBox::error(this, i18n("Error while opening/reading file!")); } void KoverTop::fileSave() { if (m_url.isEmpty()) fileSaveAs(); else saveFile(m_url); } void KoverTop::fileSaveAs() { KUrl url = KFileDialog::getSaveUrl(KUrl(), i18n("*.kover|Kover files\n*|All files")); if (!url.isEmpty()) saveFile(url); } void KoverTop::filePrint() { cdview->printKover(); kprintf("Printing done\n"); } void KoverTop::cut() { if (title_edit->hasFocus()) title_edit->cut(); if (contents_edit->hasFocus()) contents_edit->cut(); } void KoverTop::copy() { if (title_edit->hasFocus()) title_edit->copy(); if (contents_edit->hasFocus()) contents_edit->copy(); } void KoverTop::paste() { if (title_edit->hasFocus()) title_edit->paste(); if (contents_edit->hasFocus()) contents_edit->paste(); } void KoverTop::actualSize() { if (more || actual) return; orig_width = width(); orig_height = height(); cdview->setFixedSize(PREV_WIDTH, PREV_HEIGHT); cdview->showPreview(); cdview->setFocus(); more_frame->hide(); left_frame->hide(); menuBar()->hide(); statusBar()->hide(); dead_space->hide(); toolBar("mainToolBar")->hide(); toolBar("koverToolBar")->hide(); actual = true; } void KoverTop::cddbFill() { setStatusText(i18n("Initiating CDDB lookup!")); if (altered_data) { if (how_about_saving()) return; } if (cddbfill->execute()) { cddbfill->setTitleAndContents(); disconnect(contents_edit, SIGNAL(textChanged()), this, SLOT(contentsBoxChanged())); title_edit->setText(kover_file.title()); contents_edit->setText(kover_file.contents()); connect(contents_edit, SIGNAL(textChanged()), SLOT(contentsBoxChanged())); altered_data = false; cddbfill->get_info(); } } void KoverTop::preferences() { KConfigSkeleton*cs = new KConfigSkeleton(); pd *dialog = NULL; if (kover_file.empty()) dialog = new pd(this, cs); else dialog = new pd(this, cs, true); if (dialog->exec()) cdview->dataChanged(true); delete dialog; if (!altered_data) { if (kover_file.empty()) { kover_file.reset(); altered_data = false; setCaption(i18n("[New Document]"), false); } } } QFont * KoverTop::font_dialog(QFont *f) { KFontDialog kf; kprintf("font name before: %s\n", f->family().toUtf8().constData()); kf.setFont(*f); if (kf.getFont(*f)) return f; return NULL; } void KoverTop::titleFont() { QFont *font2 = NULL; QFont font = kover_file.titleFont(); font2 = font_dialog(&font); if (font2) kover_file.setTitleFont(*font2); } void KoverTop::inlet_title_font() { QFont *font2 = NULL; QFont font = kover_file.inlet_title_font(); font2 = font_dialog(&font); if (font2) kover_file.set_inlet_title_font(*font2); } void KoverTop::imageEmbedding() { id *dialog = new id(&kover_file); if (dialog->exec()) cdview->dataChanged(true); delete dialog; } void KoverTop::titleFontColor() { QColor new_color; KColorDialog *kc = new KColorDialog(this, true); new_color = kover_file.titleColor(); if (kc->getColor(new_color)) kover_file.setTitleColor(new_color); delete kc; } void KoverTop::contentsFont() { QFont *font2 = NULL; QFont font = kover_file.contentsFont(); font2 = font_dialog(&font); if (font2) kover_file.setContentsFont(*font2); } void KoverTop::contentsFontColor() { QColor new_color; KColorDialog *kc = new KColorDialog(this, true); new_color = kover_file.contentsColor(); if (kc->getColor(new_color)) kover_file.setContentsColor(new_color); delete kc; } void KoverTop::backgroundColor() { QColor new_color; KColorDialog *kc = new KColorDialog(this, true); new_color = kover_file.backColor(); if (kc->getColor(new_color)) kover_file.setBackColor(new_color); delete kc; } void KoverTop::cdrom_eject() { eject_cdrom(); } void KoverTop::cddb_without_cd() { int display_track_duration = globals.display_track_duration; setStatusText(i18n("Initiating CDDB lookup!")); if (altered_data) { if (how_about_saving()) return; } globals.display_track_duration = 0; without_cd *without = new without_cd(); if (without->exec() == -1) { delete (without); return; } int category = without->get_category(); char *id = without->get_id(); if (cddbfill->execute_without_cd(id, category)) { cddbfill->setTitleAndContents(); disconnect(contents_edit, SIGNAL(textChanged()), this, SLOT(contentsBoxChanged())); title_edit->setText(kover_file.title()); contents_edit->setText(kover_file.contents()); connect(contents_edit, SIGNAL(textChanged()), SLOT(contentsBoxChanged())); altered_data = false; cddbfill->get_info(); } delete (without); free(id); globals.display_track_duration = display_track_duration; } void KoverTop::more_or_less() { more_frame->setMaximumHeight(more_frame->height()); if (more) { more = false; dead_space->resize(0, 0); option_frame->hide(); main_frame->show(); } else { more = true; main_frame->hide(); option_frame->show(); dead_space->resize(0, height()); } } void KoverTop::display_title_signal() { kover_file.set_display_title(display_title->isChecked()); } void KoverTop::spine_text_method() { the_spine_text->setEnabled(spine_text->isChecked()); kover_file.set_spine_text(spine_text->isChecked()); if (!kover_file.spine_text()) the_spine_text->setText(title_edit->toPlainText()); else { kover_file.set_the_spine_text(the_spine_text->text()); } } void KoverTop::spine_text_changed_method(const QString & s) { QString bla = s; bla = "kk"; if (kover_file.spine_text()) kover_file.set_the_spine_text(the_spine_text->text()); } void KoverTop::file_mode() { #if 0 filemode *file_mode = new filemode(); file_mode->exec(); fprintf(stderr, "%s:%s\n", PACKAGE, file_mode->get(0)); directory *tmp = new directory("/tmp"); tmp->make_childs(); delete file_mode; string add = ""; for (int i = 0; i <= tmp->how_many_files(); i++) { /* directory *child = tmp->get_childs(i); */ /* if (child == NULL) */ /* continue; */ if (!tmp->get_file(i).empty()) { add += tmp->get_file(i) + "\n"; } } delete tmp; contents_edit->setText(add.c_str()); #endif } void KoverTop::read_cd_text() { setStatusText(i18n("Trying to read CD-TEXT!")); if (altered_data) { if (how_about_saving()) return; } if (cddbfill->read_cdtext()) { int i = globals.display_track_duration; globals.display_track_duration = 0; cddbfill->setTitleAndContents(); disconnect(contents_edit, SIGNAL(textChanged()), this, SLOT(contentsBoxChanged())); title_edit->setText(kover_file.title()); contents_edit->setText(kover_file.contents()); connect(contents_edit, SIGNAL(textChanged()), SLOT(contentsBoxChanged())); altered_data = false; globals.display_track_duration = i; setStatusText(i18n("Trying to read CD-TEXT succeeded!")); update_id(""); } } kover-4.orig/COPYING0000644000175000017500000004311011107643076013007 0ustar renerene GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. kover-4.orig/THANKS0000644000175000017500000000317311107643076012674 0ustar renerene$Id: THANKS,v 1.10 2004/04/29 07:54:31 adrian Exp $ kover THANKS: Using code and ideas from: - terminatorX http://www.terminatorX.cx/ - grip http://www.nostatic.org/grip/ - kmail and kedit (see www.kde.org) - base64 encoding by unknown - k3b/kostore Alexander Koenig - gcc 3 patches - kde 3 patches Jean-Pierre VERRUE - french translation Håvard Dahle - norwegian translation - inlet only option Michael - moc files now as include in the C++ file: Header files declaring a QObject descendant have to be run through moc to produce a .moc file. This .moc file has to be compiled, for which two possibilities exists: compile it separately, or #include it in the C++ file implementing that above mentioned class. The latter is more efficient in term of compilation speed. - some typos fixed. --enable-final should work now - included a mime-type application/x-kover - now using the KURL object to open and save files. it is now possible to save and open files via ftp... Denis Oliver Kropp - for the original version of kover Marco Ciampa - italian translation Micha Rudolf - polish translation Rene Engelhard - debian package - man pages Nils Philippsen - php code for the webpages taken from RACE: http://lisas.de/race/ Quique - spanish translation Markus Brueffer - kover FreeBSD patches Laurent Montel - Patch to add config shortcut. kover-4.orig/ChangeLog0000644000175000017500000003504111107643076013532 0ustar renerene2008-11-13 Adrian Reber * released as 4 2007-07-03 Adrian Reber * dumped all the self written cd and cddb code and switched to libcdio and libcddb * released as 3 * droped kover.spec from tarball a better version is maintained in fedora 2004-09-17 Adrian Reber * applied patch to fix printing problems with protrait and landscape from Uwe Brinkhoff * added support to read CD-TEXT * added a new binary cd-text and manual page * the usual small fixes here and there * released as 2.9.6 "look-i-can-read" release 2004-04-25 Adrian Reber * copied new files from kapptemplate to admin * many kapptemplate related changes * released as 2.9.5 "now-with-release-names" release or "yes-i-am-still-alive" release 2004-04-20 Markus Brueffer * kover FreeBSD patches 2004-04-20 Laurent Montel * Patch to add config shortcut. * Fixe a mem leak. 2003-03-14 Adrian * *.png: somehow all the images were corrupted and are now replaced with non-corrupted versions * version updated to 2.9.3 2003-03-10 Adrian * es.po: spanish translation added from Quique * kostore: kostore added to be able to open the k3b-files as they (k3b) have switched to a zipped format to store their XML data * koverfile.cc: included the import for k3b-files with help of kostore * version bumped to 2.9.2 2003-02-19 Adrian * version updated to 2.9.1 * release 2003-02-09 Adrian * cddb_fill.cc: local cddb files are not longer loaded/written to the cddb directory but to the cddb-directory/category directory. This way it should be possible to use the cddb directory from kscd. * kover.pot: translation updated * de.po: german translation updated * pl.po: polish translation updated by Michal Rudolf * nb.po: norwegian translation updated by Håvard Dahle * it.po: italian translation updated by Marco Ciampa * fr.po: french translation updated by jean-pierre VERRUE * all files: code review, other stuff 2002-10-13 Adrian * kovertop.cc: little GUI redesign * When there is single front side (booklet and inlet of the same page), picture set for both front sides is ignored (I think it should be applied to single side available); reported by Michal Rudolf and fixed in cdview.cc * PreferencesDialog.cc: introduced some text to explain how and when the font changes are applied * As "Inlet Title" and "Spine Text" is the same, the use of the term is now project wide "Spine Text" * The "More >>" button is now named "Options" to be better translatable and to make more sense * kovertop.cc: Added accelerator for Actual Size and Preview Ctrl++ Ctrl+- 2002-09-18 Adrian * config.cc: now writing the inlet_only option to the configuration file (seems like nobody is using this option) * cdview.cc: bugfix to position the text correctly if the inlet_only option is selected 2002-09-17 Adrian * koverfile.cc: now reading .k3b files of type k3b_data_project and k3b_audio_project * *_dialog.cc: quit button works now how it is supposed to 2002-09-13 Adrian * seems like we are entering a time of heavy development activity??? * net.cc: introduced the readline method this should remove the bug reported by Jan Keirse : kover:cddb_fill.cc:702: this should not happen kover:cddb_fill.cc:810: this should not happen * cddb_fill.cc: using now readline() method instead of trying to read the http response by itself * koverfile.cc: cddb id is now also saved to the .kover files * koverfile.cc: first attempts to read .k3b files. It should be to hard as these files are also xml based. * bumped version to 2.8.8 * no release yet 2002-09-11 Adrian * PreferencesDialog.cc: option to disable unnecessary animations * PreferencesDialog.cc: divided one page (misc) into two pages (misc and cover) * config.cc: global fonts are now saved in a different format this should work better than using XLFD (X Logical Font Description) * koverfile.cc: prepared to switch to a different font save format if necessary in the future * kovertop.cc: on the "More >>" page is a option to change the spine text independently from the title * finally the http_proxy environment variable is honored (net.cc, cddb.cc, PrefrencesDialog.cc) * due to changes to the configuration routines , there can be issues on first startup. kover will use its builtin values. * bumped version to 2.8.7 * released as 2.8.7 2002-07-24 Adrian * mainly bugfixes * renamed no.po to nb.po (Øyvind Sæther) * koverfile.cc: now using utf8() to save the files; this sould fix the problem with utf8 characters... (Øyvind Sæther) * koverfile.cc: loading of old style .kover files now without errors (Claudio Ferrari) * koverfile.cc: empty lines now also saved (Claudio Ferrari) * koverfile.cc: removed last newline after file loading * server_dialog.cc: new dialog to choose from the available cddb servers * server.cc: entity for the servers * PreferencesDialog.cc: button to select one of the available cddb server * whenever you read cddb in this ChangeLog, then freedb is meant * now using anjuta for coding * bumped version to 2.8.6 * released as 2.8.6 * tomorrow I'm going on holiday; I'm going camping in Croatia. Yes! Finally! Holiday! Woohoo! * I'm now using debian. No more redhat. And apt-get is really great. My APT has even Super Cow Powers :) 2002-05-21 Adrian * pl.po: polish translation updated by: Micha Rudolf * admin: new kde3 admin directory this should fix the issue with having only the libqt-mt libs. * kover.1 cddb-id.1: finally manpages. thanks to: Rene Engelhard * kover.spec.in: updated to include the manpages * main.cc: connection to DCOP server now part of the code 2002-04-29 Adrian * PreferencesDialog.cc: added small preview pictures for the different cover layouts * PreferencesDialog.cc: added page for global font properties * PreferencesDialog.cc: added button to select one of the freedb mirror sites * net.cc: general network code * cddb.cc: general cddb code * sites.cc: this retrieves all available cddb sites as advertised by the freedb servers using the cddb command: "sites" * proxy_auth.cc: removed \n from the password before base64 encoding * cddb_fill.cc: removed some of the global cddb and network methods. they are now in cddb.cc and net.cc * cddb_fill.cc: also small bugfixes * kovertop.cc: added a unnecessary animation to display a second page with current cover related options * I love my ChangeLog 2002-04-22 Adrian * released as 2.8.3 the big jump in the version number is a hint that this version is to be used with kde3 * this is just a development version lots of things are started but not finished don't expect everything to work yet this is for the people waiting to use kover with kde3 * merged the qt3_version cvs branch back into the the HEAD branch. branches are evil! 2002-04-07 Adrian * kover_file.cc: changed .kover file format to use XML. * renamed some files from .cpp to .cc, so --enable-final can optimize better. More renaming will follow * created the qt3_version branch in the cvs * it.po: italian translation by Marco Ciampa * pl.po: polish translation by: Micha Rudolf 2002-03-07 Alexander * gcc3 and kde3 fixes 2001-11-19 Michael * bufixes for the network transparency stuff * Released as 0.8.3 2001-11-18 Adrian * KoverTop.cpp cddb_fill.cpp: included option to make cddb query without the CD * without_cd.cc: the without CD cddb query dialog. * KoverTop.cpp: OpenRecent menu available * categories.cc: a container for the cddb categories * CDView.cpp: switched from QPrinter to KPrinter maybe this helps some people who weren't able to print * Released as 0.8.2 2001-11-17 Michael * KoverTop.cpp: network transparency. now it is possible to open and save file via ftp * x-kover.desktop: application/x-kover mimetype * main.cpp: open file via command line * cdrom_cddb.h: fixed typo. --enable-final should work now 2001-10-28 Adrian * some files: patch from Håvard Dahle included for inlet only option. * PreferencesDialog.cpp: inlet only option to radio buttons * KoverTop.cpp: new font selection dialog for inlet inlet title font * koverfile.cpp CDView.cpp: changes to handle inlet title font * no.po: norwegian translation by Håvard Dahle * released as 0.8.1 2001-10-12 Adrian * all files: prepared for translation * fr.po: french translation by Jean-Pierre VERRUE * de.po: german translation all by myself * more code cleanups * cddb-id.cc: new file. using the new cdrom_cddb class to calculate the cddb-id and prints it to stdout. cddb id calculation will be removed from cddb_fill.cpp * cddb_211_item.cc: storage for the inexact matches * inexact_dialog.cc: dialog to display the the inexact matches * kover.spec.in: used to create a rpm specfile via configure rpm -ta kover-x.x.tar.gz gives you a nice rpm * CDView.cpp:48+341: removed compiler warnings 2001-10-01 Adrian * cddb_fill.cpp: proxy authentification implemented * proxy_auth.cc: the new proxy authentification dialog password is base64 encoded; this is "Basic Proxy-authorization" base64 encoding stuff is from unknown. I found two files on the web (base64encode.c and base64decode.c) but no copyright or author information. However not much is left from the original source. * PreferencesDialog.cpp: typo 2001-06-14 Adrian * CDView.cpp: booklet content on left side of inlet for slim case CDs * PreferencesDialog.cpp: added the slim case option * code cleanups * config.cc: new class for configuration. This used to be in KoverTop.cpp * KoverTop.cpp: fixed bug that [modified] disappears if you hit the save button * main.cpp: catching SIGTERM and SIGINT and saving configuration before exiting * cdrom.cc: introducing the cdrom class 2001-05-10 Adrian * ChangeLog: Do I really like this changelog style? If I do like it, why am I not using it? 2001-05-07 * configure.in: check for good CDs included 2001-01-22 Adrian * main.cpp: great new command line option * cddb_fill.cpp: have a look at the cddb code from grip... you will find similarities :) the threading (currently disabled) is mainly from terminatorX * PreferencesDialog.cpp: cdrom and cddb page added 2001-01-11 Adrian * ported to KDE 2.0 an qt 2.2 * KoverTop.cpp: rewritten - using KDE 2 style menus and XML file (koverui.rc) * cddb_fill.cpp: rewritten (partly) changed cddb lookup to use port 80 instead of 888 (or whatever) * cddb_fill.cpp: first looking for local cddb data before connecting to a cddb server * PreferencesDialog.cpp: new file creating a Preferences Dialog * changed ChangeLog to GNU style Kover ChangeLog ================ * Bugfix + New Feature 0.4 *inner lines are white if background is black *title on the side gets same color as front title +title can have several lines +you can have three images with lots of configuration 0.31 *use KTopLevelImage instead of KTMainWindow (comapatible with KDE 1.0) *include ucdrom.h and/or cdrom.h depending on configure script *clipped centered image +support jpeg, tiff, png 0.30 *corrected cd number load/save *cd number is now on both sides *found out why QPrinter prints only standard X fonts: Ghostscript has its own fontmap (/etc/gs.Fontmap) *fixed exit/autochange bug *replaces every %number in the filename +autofilling with CDDB data +image embedding (center/tile/stretch) +added a status bar for more feedback on actions (essential for CDDB) +added support for files of "Easy CD Pro 2.0" (autodetection!) 0.20 *corrected the lsm file *changed e-mail address to dok@fischlustig.de *don´t ask for filename every time (save/save as) *store applink in Utilities +"Choose Font" moved into second toolbar +color settings for text/background +optional cd number +use KSimpleConfig +change detection (load/new/exit) 0.10 +initial version +save/load +print +preview +font settings kover-4.orig/AUTHORS0000644000175000017500000000016611107643076013030 0ustar renereneYou will be added here, enhance Kover! ;-) Denis Oliver Kropp Adrian Reber kover-4.orig/NEWS0000644000175000017500000000043211107643076012453 0ustar renerenekover 0.6 * no news kover 0.5 * kde 2 and qt 2.2 * using local (~/.cddb) files if available * saving data retreived from cddb server locally * introduced menus * using standard kde icons where possible * using kde 2 XML gui creation features * introducing settings dialog kover-4.orig/README0000644000175000017500000000010411107643076012630 0ustar renereneKover is an easy to use WYSIWYG CD cover printer with CDDB support. kover-4.orig/kover.10000644000175000017500000000226111107643076013166 0ustar renerene.TH kover "1" "March 2003" "kover 4" "User Commands" .SH NAME kover \- CD Cover printer .SH SYNOPSIS .B kover [\fIQt-options\fR] [\fIKDE-options\fR] [\fIoptions\fR] \fIfile\fR .SH DESCRIPTION Kover is an easy to use WYSIWYG CD cover printer with CDDB support. .SS "Generic options:" .TP \fB\-\-help\fR Show help about options .TP \fB\-\-help\-qt\fR Show Qt specific options .TP \fB\-\-help\-kde\fR Show KDE specific options .TP \fB\-\-help\-all\fR Show all options .TP \fB\-\-author\fR Show author information .TP \fB\-v\fR, \fB\-\-version\fR Show version information .TP \fB\-\-license\fR Show license information .TP \fB\-\-\fR End of options .SH OPTIONS .TP \fB\-\-advise\fR Help me now! .TP \fB\-\-debug\fR Enable debug output. .SS "Arguments:" .TP file File to load .SH AVAILABILITY kover can be found at http://lisas.de/kover/. .SH REPORTING BUGS Report bugs to . .SH AUTHOR This manual page was created newly by Rene Engelhard for the Debian GNU/Linux Distribution, because the original package does not have one. .PP The software is written by Adrian Reber . The original kover was written by Denis Oliver Kropp . kover-4.orig/ABOUT-NLS0000644000175000017500000003744211107643076013216 0ustar renereneNotes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of May 2001. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files bg cs da de el en eo es et fi fr gl hr id it +----------------------------------------------+ a2ps | [] [] | bash | [] [] [] [] | bison | [] [] [] [] | clisp | [] [] [] [] | cpio | [] [] [] [] | diffutils | [] [] [] [] [] [] [] | enscript | [] [] | error | [] | fileutils | [] [] [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] | flex | [] [] [] | gawk | | gcal | | gcc | [] | gettext | [] [] [] [] [] [] [] [] [] | gnupg | [] [] [] [] [] | grep | [] [] [] | hello | [] [] [] [] [] [] [] [] [] | id-utils | [] [] | indent | [] [] [] [] [] | libc | [] [] [] [] [] [] [] [] | lilypond | | lynx | [] [] [] | m4 | [] [] [] [] [] [] [] | make | [] [] [] [] | parted | [] [] | ptx | [] [] [] [] [] [] [] | python | | recode | [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] | soundtracker | | sp | | tar | [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] [] [] [] | util-linux | [] | wdiff | [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] [] | +----------------------------------------------+ bg cs da de el en eo es et fi fr gl hr id it 0 14 21 27 10 1 8 20 13 1 28 17 0 9 11 ja ko lv nl no pl pt pt_BR ru sk sl sv tr zh +----------------------------------------------+ a2ps | [] [] [] | 5 bash | | 4 bison | [] [] [] | 7 clisp | [] | 5 cpio | [] [] [] [] [] | 9 diffutils | [] [] [] | 10 enscript | [] [] [] | 5 error | | 1 fileutils | [] [] [] [] [] [] [] [] [] | 16 findutils | [] [] [] [] [] [] | 14 flex | [] [] [] | 6 gawk | | 0 gcal | | 0 gcc | [] | 2 gettext | [] [] [] [] [] [] [] [] [] [] | 19 gnupg | [] [] [] | 8 grep | | 3 hello | [] [] [] [] [] [] [] [] | 17 id-utils | [] [] [] | 5 indent | [] [] [] [] [] [] [] | 12 libc | [] [] [] [] [] [] [] | 15 lilypond | [] | 1 lynx | [] [] [] [] [] | 8 m4 | [] [] [] [] [] | 12 make | [] [] [] [] [] | 9 parted | [] [] [] | 5 ptx | [] [] [] [] [] [] | 13 python | | 0 recode | [] [] [] | 11 sed | [] [] [] [] [] [] [] | 16 sh-utils | [] [] [] [] [] [] [] [] [] [] | 19 sharutils | [] [] [] [] | 11 soundtracker | | 0 sp | | 0 tar | [] [] [] [] [] [] [] [] | 16 texinfo | [] [] | 6 textutils | [] [] [] [] [] [] [] [] | 15 util-linux | [] | 2 wdiff | [] [] [] [] [] | 12 wget | [] [] [] [] [] [] [] [] | 17 +----------------------------------------------+ 29 teams ja ko lv nl no pl pt pt_BR ru sk sl sv tr zh 40 domains 18 8 0 23 6 16 1 15 26 9 9 20 2 3 336 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If May 2001 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course the GNU Public License applies to your sources from then if you include `gettext' directly in your distribution on but since you are writing free software anyway this is no restriction. Once the sources are change appropriately and the setup can handle to use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. kover-4.orig/config.h.cmake0000644000175000017500000000010411107643076014445 0ustar renerene#cmakedefine VERSION "${VERSION}" #cmakedefine PACKAGE "${PACKAGE}" kover-4.orig/po/0000755000175000017500000000000011145115715012367 5ustar renerenekover-4.orig/po/kover.pot0000644000175000017500000002215411107643076014251 0ustar renerene# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2001-10-09 00:41+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "" #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "" #: cddb_fill.cpp:169 msgid " is busy!" msgstr "" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "" #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "" #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "" #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "" #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "" #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "" #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "" #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "" #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "" #: cddb_fill.cpp:640 msgid "No match found." msgstr "" #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "" #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "" #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "" #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "" #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "" #: cddb_fill.cpp:747 msgid "Server error." msgstr "" #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "" #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "" #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "" #: KoverTop.cpp:72 msgid "Title Font..." msgstr "" #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "" #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "" #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "" #: KoverTop.cpp:76 msgid "Background Color..." msgstr "" #: KoverTop.cpp:77 msgid "Eject CD" msgstr "" #: KoverTop.cpp:87 msgid "CD Number" msgstr "" #: KoverTop.cpp:142 msgid "Data changed" msgstr "" #: KoverTop.cpp:254 msgid "File loaded" msgstr "" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "" #: KoverTop.cpp:365 msgid "config me" msgstr "" #: CDView.cpp:77 msgid "Click to close" msgstr "" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "" #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "" #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" #: inexact_dialog.cc:52 msgid "Choose wisely!" msgstr "" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "" #: proxy_auth.cc:63 msgid "User Name:" msgstr "" #: cddb_fill.cc:139 cddb_fill.cc:187 msgid "No http_proxy environment variable found... Giving up..." msgstr "" #: cddb_fill.cc:142 cddb_fill.cc:190 msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "" #: kovertop.cc:159 msgid "Spine Text Font..." msgstr "" #: kovertop.cc:163 msgid "CDDB without CD" msgstr "" #: kovertop.cc:204 msgid "All this options are not global" msgstr "" #: kovertop.cc:215 msgid "No title on booklet" msgstr "" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "" #: PreferencesDialog.cc:516 msgid "Display track duration after a CDDB request" msgstr "" #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "" #: PreferencesDialog.cc:635 msgid "Content Font: " msgstr "" #: PreferencesDialog.cc:645 msgid "Title Font: " msgstr "" #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "" #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "" #: PreferencesDialog.cc:765 msgid "Mouse click on kover preview triggers actual size" msgstr "" #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "" #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "" #: proxy_auth.cc:69 msgid "Password:" msgstr "" #: without_cd.cc:54 msgid "Select a category:" msgstr "" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "" #: without_cd.cc:79 msgid "Search" msgstr "" msgid "&Kover" msgstr "" kover-4.orig/po/de.po0000644000175000017500000003021111107643076013320 0ustar renerene# translation of de.po to # translation of de.po to # Copyright (C) 2003 Free Software Foundation, Inc. # Adrian Reber , 2003 # msgid "" msgstr "" "Project-Id-Version: de\n" "POT-Creation-Date: 2001-10-06 19:02+0200\n" "PO-Revision-Date: 2003-02-07 17:41+0100\n" "Last-Translator: Adrian Reber \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Erstes Bild" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Vorne, linke Seite" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Vorne, rechte Seite" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Vorne, beidseitig" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Hinten, ohne Seiten" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Hinten, mit Seiten" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Zentriert" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "Gekachelt" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Gestreckt" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Ziel" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Zweites Bild" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Drittes Bild" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Bild Einfügen" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Interner Fehler: Dateideskriptor ist nicht -1; schon geöffnet?" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "Verboten für dich das Lesen von " #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "Da ist kein Medium in " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " ist sehr sehr beschäftigt!" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Unaussprechlicher Fehler während des Öffnenes von " #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "" "Ups. Keine Informationen über die Disc. Aber ich werde es weiter " "versuchen..." #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "Keine Audio CD in " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (das wird konkret ignoriert)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "" "Interner Fehler: Dateideskriptor ist -1. Irgendjemand sollte irgendwas tun." #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Lese Tabelle der Inhalte..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "Fehler während des Lesens der Tabelle der Inhalte!" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "Fehler während des Lesens eines TOC (Inhaltstabelle) Eintrages!" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "Inhaltstabelle erfolgreich gelesen." #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Verbinden nach " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Verbinden zum CDDB Server..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Lokale Werte der Disc werden verwendet." #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Abfragen der Datenbank..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Einleiten der Authorisation." #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Vorgang abgebrochen." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "Ungenauer Treffer, Möglichkeiten folgen." #: cddb_fill.cpp:640 msgid "No match found." msgstr "Kein Treffer." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "Datenbankeintrag ist Schrott." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "Kein handshake." #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "CD Informationen werden heruntergeladen..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, CDDB Datenbankeintrag folgt." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "Angegebener CDDB Eintrag nicht gefunden!" #: cddb_fill.cpp:747 msgid "Server error." msgstr "Nicht mein Fehler. Der andere wars." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "FEHLER: Das sollte nicht passieren... Hmm?" #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Probleme beim Erstellen der CDDB Begrüßung... Ich geb auf." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Neues Dokument]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "T&atsächliche Größe" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "&CDDB Anfrage" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "B&ild Einfügen" #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Titel Font..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Titel Fontfarbe..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Inhalt Font..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Inhalt Fontfarbe..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Hintergrund Farbe..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "CD Auswerfen" #: KoverTop.cpp:87 msgid "CD Number" msgstr "CD Nummer" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Daten haben sich geändert" #: KoverTop.cpp:254 msgid "File loaded" msgstr "Datei geladen" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "Fehler beim lesen/schreiben der Datei!" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Daten haben sich geändert seit dem letzten Speichern!\n" "Sollen diese Änderungen gespeichert werden?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "Datei gespeichert" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "CDDB Anfrage wird initialisiert!" #: KoverTop.cpp:365 msgid "config me" msgstr "pass mich an" #: CDView.cpp:77 msgid "Click to close" msgstr "Zum Schließen klicken." #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "CDDB Optionen" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "&CDDB Server" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "CDDB Server:" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "CGI Pfad:" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "&Proxy Konfiguration" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Proxy verwenden" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Umgebungsvariable 'http_proxy' nutzen" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Proxy Server" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Proxy Server Port" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "CDROM Optionen" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "CDROM Gerät" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "CD auswerfen bei Programmende" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "CDDB Dateien" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "Lokale CDDB Dateien" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "&Lokale CDDB Dateien" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "CDDB Daten aus einer Datei lesen, falls vorhanden" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "CDDB Daten in einer Datei speichern" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "CDDB Pfad:" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Verschiedenes" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "Zeug&s" #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Inhalt auf der linke Seite des Booklets drucken.\n" "(Slim Case Option)" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Benutzername und Passwort eingeben für den Proxy " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Benuztername:" #: cddb_fill.cc:139 cddb_fill.cc:187 msgid "No http_proxy environment variable found... Giving up..." msgstr "Die Umgebungsvariable http_proxy wurde nicht gefunden... Pech... " #: cddb_fill.cc:142 cddb_fill.cc:190 msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "Ich verstehe die http_proxy Umgebungsvariable nicht... Pech..." #: kovertop.cc:159 msgid "Spine Text Font..." msgstr "Seiten Text Schriftart" #: kovertop.cc:163 msgid "CDDB without CD" msgstr "CDDB ohne CD" #: kovertop.cc:204 msgid "All this options are not global" msgstr "All diese Option sind nicht global" #: kovertop.cc:215 msgid "No title on booklet" msgstr "Kein Titel auf dem Booklet" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "Extra Seiten Text" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" "*.kover|Kover Dateien\n" "*|Alle Dateien\n" "*.k3b|k3b Dateien" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" "*.kover|Kover Dateien\n" "*|Alle Dateien" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "Cover" #: PreferencesDialog.cc:516 msgid "Display track duration after a CDDB request" msgstr "Liedlänge nach einer CDDB Anfrage anzeigen" #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "Inlet und Booklet drucken" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" "Booklet nicht drucken.\n" "(nur Inlet Option)" #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "Alles auf einer Seite drucken" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "Standard Schriften" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "&Standard Schriften" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "Änderungen an jeder dieser Schriften sind global.\n" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "Das heißt, dass sie nur für das nächste\n" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "neue Cover verfügbar sein werden.\n" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "Außer das aktuelle Cover ist unbearbeitet.\n" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "Dann werden die Änderungen sofort übernommen." #: PreferencesDialog.cc:635 msgid "Content Font: " msgstr "Inhaltsschriftart: " #: PreferencesDialog.cc:645 msgid "Title Font: " msgstr "Titelschriftart: " #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "Seiten Text Schriftart: " #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "Fensterposition speichern" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "Unnötige Animationen abschalten" #: PreferencesDialog.cc:765 msgid "Mouse click on kover preview triggers actual size" msgstr "Mausklick auf das Kover zeigt die aktuelle Größe an" #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "" "Änderungen an den Schriften werden nicht am aktuellen Cover durchgeführt, " "sondern erst beim nächsten neuen Cover." #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "" #: proxy_auth.cc:69 msgid "Password:" msgstr "Passwort:" #: without_cd.cc:54 msgid "Select a category:" msgstr "Kategorie auswählen:" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "CDDB Id eingeben:" #: without_cd.cc:79 msgid "Search" msgstr "Suchen" msgid "Choose wisely!" msgstr "Wähle weise!" msgid "&Kover" msgstr "" kover-4.orig/po/fr.po0000644000175000017500000003233011107643076013343 0ustar renerene# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2001-10-09 00:41+0200\n" "PO-Revision-Date: 2003-02-18 21:52+0100\n" "Last-Translator: Jean-Pierre Verrue \n" "Language-Team: Français \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.6\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Première image" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Face avant, coté gauche" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Face avant, coté droit" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Face avant, les deux cotés" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Face arrière, sans les bords" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Face arrière, avec les bords" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Centré" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "Mozaïque" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Ajusté" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Cible" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Deuxième image" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Troisième image" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Incorporation d'images" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Erreur interne: le 'file-desc' est diff. de 1, Déjà ouvert ?" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "Vous n'avez pas la permission de lire à partir de " #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "Il n'y a pas de medium dans " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " est occupé !" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Erreur indéterminée pendant l'ouverture de " #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "Oops! Pas d'information à propos du disque. Essayez à nouveau..." #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "Il n'y a pas de CD audio dans " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (ignorer)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "Erreur interne : le 'file-desc' est 1. Pas ouvert ?" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Lecture de la liste des pistes..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "Erreur pendant la lecture de la liste des pistes !" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "Erreur pendant la lecture d'un élément de la liste des pistes !" #: cddb_fill.cc:241 msgid "CD contains %d tracks, total time is %d:%02d, the magic number is 0x%lx" msgstr "Le CD contient %d piste(s), durée totale %d:%02d, le nombre magique est 0x%lx" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "Liste des pistes correctement lue" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Connection à " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Connexion au serveur CDDB..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Utliser les valeurs locales pour le disque" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Interrogation de la base de donnée..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Initialisation de l'authentification" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Opération avortée." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "" "Trouvé des correspondances imparfaites, la liste suit (jusqu'au marqueur de " "fin)" #: cddb_fill.cpp:640 msgid "No match found." msgstr "Pas de correspondance trouvée." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "Élément de la base de donnée corrompu." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "Pas d'acquitement." #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "Téléchargement des donnée du CD..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, les éléments de la Base de donnée CDDB suivent." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "L'élément CDDB spécifié n'a pas été trouvé." #: cddb_fill.cpp:747 msgid "Server error." msgstr "Erreur du serveur." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "ERREUR: Ceci ne doit pas arriver." #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Difficultés en créant le 'hello' CDDB... Abandon..." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Nouveau Document]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "Taille &Actuelle" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "Requête &CDDB" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "Incorporation d'&Image..." #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Police pour le titre..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Couleur du titre..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Police pour le contenu..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Couleur de la police du contenu..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Couleur d'arrière plan..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "Éjecter le CD" #: KoverTop.cpp:87 msgid "CD Number" msgstr "Numéro du CD" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Données changées" #: KoverTop.cpp:254 msgid "File loaded" msgstr "Fichier chargé" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "Erreur lors de l'ouverture/lecture du fichier !" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Données modifiées depuis le précédent enregistrement !\n" "Voulez vous enregistrer les modifications ?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "Fichier enregistré" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "Initialisation de la requête CDDB !" #: KoverTop.cpp:365 msgid "config me" msgstr "Configuration de Kover" #: CDView.cpp:77 msgid "Click to close" msgstr "Cliquez pour fermer" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "Options CDDB" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "Serveur &CDDB" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "Serveur CDDB :" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "Chemin du CGI :" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "Configuration du &Proxy" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Utiliser un proxy pour les requêtes CDDB" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Utiliser la variable d'environnement 'http_proxy'" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Serveur proxy :" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Port du serveur proxy :" #: PreferencesDialog.cpp:104 msgid "Browse" msgstr "Parcourir" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "Options du CDROM" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "périphérique CDROM :" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "Éjecter le CD en quittant" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "Fichiers CDDB" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "Fichiers CDDB locaux" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "Fichiers &CDDB locaux" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "Lire les données CDDB à partir d'un fichier (si disponible)" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "Écrire les données CDDB dans un fichier" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "Chemin CDDB :" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Paramétrages divers" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "&Divers" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "Cliquer sur l'aperçu affiche en taille réelle" #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "Afficher la durée des pistes après une requête CDDB" #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Imprimer la liste des pistes au dos de la plaquette\n" "(Option pour boites minces)" #: inexact_dialog.cc:52 msgid "Choose wisely!" msgstr "Choisissez judicieusement !" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Entrer le nom et le mot de passe pour le proxy " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Nom d'utilisateur :" #: cddb_fill.cc:139 cddb_fill.cc:187 msgid "No http_proxy environment variable found... Giving up..." msgstr "Variable d'environnement 'http_proxy' non trouvée... Abandon ..." #: cddb_fill.cc:142 cddb_fill.cc:190 msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "Variable d'environnement 'http_proxy' incorrecte ... Abandon ..." #: kovertop.cc:159 msgid "Spine Text Font..." msgstr "Police de la tranche ..." #: kovertop.cc:163 msgid "CDDB without CD" msgstr "CDDB sans CD" #: kovertop.cc:204 msgid "All this options are not global" msgstr "Ces options ne sont pas globales" #: kovertop.cc:215 msgid "No title on booklet" msgstr "Pas de titre sur la plaquette" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "Texte différent pour la tranche du boîtier" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" "*.kover|Fichiers Kover\n" "*|Tous les fichiers\n" "*.k3b|Fichiers k3b" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" "*.kover|Fichiers Kover\n" "*|Tous les fichiers" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "Cover" #: PreferencesDialog.cc:516 msgid "Display track duration after a CDDB request" msgstr "Afficher la durée des pistes après une requête CDDB" #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "Imprimer liste des pistes et plaquette" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" "Ne pas imprimer la plaquette.\n" "(Option liste des pistes seule)" #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "Tout imprimer sur une page" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "Polices par défaut" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "&Polices par défaut" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "Les changement apportés à ces polices sont globaux. cela\n" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "implique que ces changements ne seront effectifs que lors\n" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "de la création de la prochaine pochette.\n" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "Sauf si la pochette actuelle est vide de texte. Dans ce\n" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "cas les changements seront appliqués à la pochette actuelle." #: PreferencesDialog.cc:635 msgid "Content Font: " msgstr "Police pour le contenu :" #: PreferencesDialog.cc:645 msgid "Title Font: " msgstr "Police pour le titre :" #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "Police pour la tranche :" #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "Sauver la position de la fenêtre" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "Désactiver les animations superflues" #: PreferencesDialog.cc:765 msgid "Mouse click on kover preview triggers actual size" msgstr "Cliquer sur l'aperçu affiche en taille réelle" #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "Le changements de police ne seront pas appliqués à la pochette actuelle mais à la pochette suivante." #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "Ok" #: proxy_auth.cc:69 msgid "Password:" msgstr "Mot de passe :" #: without_cd.cc:54 msgid "Select a category:" msgstr "Choisissez une catégorie :" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "Entrez l'ID CDDB :" #: without_cd.cc:79 msgid "Search" msgstr "Recherche" msgid "&Kover" msgstr "&Kover" kover-4.orig/po/no.po0000644000175000017500000002120111107643076013343 0ustar renerene# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # FIRST TRANSLATOR , 2001 # msgid "" msgstr "" "Project-Id-Version: 1\n" "POT-Creation-Date: 2001-10-06 18:14+0200\n" "PO-Revision-Date: 2001-10-16 17:49GMT+1\n" "Last-Translator: Hvard Dahle \n" "Language-Team: Norwegian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Frste bilde" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Forside, venstre" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Forside, hyre" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Forside, begge sidene" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Bakside, uten sider" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Bakside, med sider" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Sentrert" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "Flislagt" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Strukket" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Ml" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Bilde nummer to" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Bilde nummer tre" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Sett inn bilde" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Intern feil: Fildeskriptoren er ikke -1; er filen allerede pnet?" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "Du har ikke tilgang til lese fra " #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "Det er ikke noe medium i " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " er opptatt!" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Ukjent feil ved pning av " #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "" "Oops. Fant ingen informasjon om cd-en. Fortsetter " "prve..." #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "Det er ingen lyd-cd i " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (overser)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "Intern feil: Fildeskriptoren er -1; er filen ikke pnet?" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Leser innholdsfortegnelse..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "En feil oppstod ved lesing av innholdsfortegnelse!" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "En feil oppsto ved lesing av TOC!" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "Innholdsfortegnelsen lest" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Kobler til " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Kobler til CDDB-server..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Bruker lokale verdier for cd" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Slr opp i databasen..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Autoriserer" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Handling avbrutt." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "Fant unyaktige treff, liste flger (fram til avsluttende tegn)" #: cddb_fill.cpp:640 msgid "No match found." msgstr "Fant ingen treff." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "Database-oppfringen er delagt." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "Ingen 'handshake'" #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "Laster ned cd-info..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, database-oppfring fra CDDB flger." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "Den forespurte CDDB-oppfringen ble ikke funnet." #: cddb_fill.cpp:747 msgid "Server error." msgstr "Server-feil." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "FEIL: Dette skulle ikke skje." #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Klarte ikke forme korrekt CDDB-hilsen... Gir opp..." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Nytt dokument]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "&Faktisk strrelse" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "&CDDB-sk" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "Sett inn &bilde..." #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Skrifttype for tittel..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Skriftfarge for tittel..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Skrifttype for innhold..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Skriftfarge for innhold..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Bakgrunnsfarge..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "Spytt ut cd" #: KoverTop.cpp:87 msgid "CD Number" msgstr "Cd-nummer" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Data endret" #: KoverTop.cpp:254 msgid "File loaded" msgstr "Fil lastet" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "Feil ved pning/lesing av fil!" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Data har blitt endret.\n" "nsker du lagre endingene?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "Fil lagret" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "Starter CDDB-oppslag" #: KoverTop.cpp:365 msgid "config me" msgstr "konfigurr meg" #: CDView.cpp:77 msgid "Click to close" msgstr "Klikk for lukke" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "CDDB-innstillinger" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "&CDDB-server" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "CDDB-server:" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "CGI-sti:" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "&Proxy-innstillinger" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Bruk proxy ved CDDB-oppslag" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Bruk miljvariabelen 'http_proxy'" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Proxy-server:" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Proxy-servers portnummer:" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "CDROM-innstillinger" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "CDROM-enhet" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "Spytt ut CD ved avslutning" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "CDDB-filer" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "Lokale CDDB-filer" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "&Lokale CDDB-filer" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "Les CDDB-data fra fil dersom mulig" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "Skriv CDDB-data til fil" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "CDDB-sti:" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Diverse egenskaper" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "&Ting" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "Museklikk p kovers forhndsvisning endrer til faktisk strrelse." #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "Vis cd-sporets lengde etter en CDDB-foresprsel." #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Skriv innlegget p venstre side av boken.\n" "(for tynne cd-etui)" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Skriv inn brukernavn og passord for proxy " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Brukernavn:" kover-4.orig/po/pl.po0000644000175000017500000003150411107643076013351 0ustar renerene# translation of pl.po to Polish # translation of kover.po to Polish # translation of kover.po to # Copyright (C) 2002,2003 Free Software Foundation, Inc. # Michał Rudolf , 2002. # Michal Rudolf , 2003. # msgid "" msgstr "" "Project-Id-Version: pl\n" "POT-Creation-Date: 2001-10-09 00:41+0200\n" "PO-Revision-Date: 2003-05-31 13:27+0200\n" "Last-Translator: Michal Rudolf \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.2beta2\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Pierwszy obrazek" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Przód, lewa strona" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Przód, prawa strona" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Przód, obie strony" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Tył, bez brzegów" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Tył, z brzegami" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Wyśrodkowane" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "Kafelkowe" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Rozciągnięte" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Miejsce" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Drugi obrazek" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Trzeci obrazek" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Wstawianie obrazków" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Błąd wewnętrzny: plik już otwarty?" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "Nie masz praw do czytania z " #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "Brak płyty w " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " zajęte!" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Błąd podczas odczytu pliku!" #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "Brak informacji o płycie. Próbuję dalej..." #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "Brak płyty audio w " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (zignorowane)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "Błąd wewnętrzny: plik nieotwarty?" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Odczyt zawartości..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "Błąd podczas odczytu zawartości!" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "Błąd podczas odczytu pozycji zawartości!" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "Odczytano zawartość" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Połączenie z " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Połączenie z serwerem CDDB..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Używam lokalnych wartości dla płyty" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Zapytanie do bazy..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Rozpoczęcie autoryzacji" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Operacja przerwana." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "Znaleziono częściowe dopasowania, oto lista" #: cddb_fill.cpp:640 msgid "No match found." msgstr "Brak dopasowań." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "Błędna pozycja bazy danych." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "Brak synchronizacji." #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "Wczytywanie danych o płycie..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, odczytano pozycję bazy CDDB." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "Nie znaleziono podanej pozycji CDDB." #: cddb_fill.cpp:747 msgid "Server error." msgstr "Błąd serwera." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "Nieprzewidziany błąd." #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Błąd przy połączeniu z CDDB. Rozłączanie..." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Nowy dokument]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "&Naturalna wielkość" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "&Opis CDDB" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "&Wstawianie obrazków..." #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Czcionka tytułu..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Kolor tytułu..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Czcionka zawartości..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Kolor zawartości..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Kolor tła..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "Wysuń płytę" #: KoverTop.cpp:87 msgid "CD Number" msgstr "Numer CD" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Dane zmienione" #: KoverTop.cpp:254 msgid "File loaded" msgstr "Plik wczytany" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "Błąd podczas odczytu/zapisu pliku!" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Dane zostały zmienione od ostatniego zapisu!\n" "Zapisać zmiany?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "Plik zapisany" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "Inicjalizacja CDDB" #: KoverTop.cpp:365 msgid "config me" msgstr "Konfiguracja" #: CDView.cpp:77 msgid "Click to close" msgstr "Kliknij by zamknąć" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "Opcje CDDB" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "&Serwer CDDB" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "Serwer CDDB:" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "Ścieżka CGI:" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "&Konfiguracja serwera pośredniczącego" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Użyj serwera pośredniczącego do zapytań CDDB" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Użyj zmiennej środowiskowej 'http_proxy'" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Serwer pośredniczący:" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Port serwera pośredniczącego:" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "Opcje CDROM" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "Napęd CDROM:" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "Wysuń CD przy wyjściu" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "Pliki CDDB" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "Lokalne pliki CDDB" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "&Lokalne pliki CDDB" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "Czytaj dane CDDB z pliku" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "Zapisz dane CDDB w pliku" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "Ścieżka CDDB:" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Inne właściwości" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "&Właściwości" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "Kliknięcie myszą na podglądzie przywraca zwykły widok." #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "Wyświetlaj długość utworu po zapytaniu CDDB." #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Drukuj okładkę razem z książeczką\n" "(wąskie pudełko)" #: inexact_dialog.cc:52 msgid "Choose wisely!" msgstr "Wybierz rozsądnie!" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Podaj nazwę użytkownika i hasła serwera pośredniczącego " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Użytkownik:" #: cddb_fill.cc:139 cddb_fill.cc:187 msgid "No http_proxy environment variable found... Giving up..." msgstr "Błąd: brak zmiennej środowiskowej 'http_proxy'." #: cddb_fill.cc:142 cddb_fill.cc:190 msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "Błąd: niepoprawny format zmiennej środowiskowej 'http_proxy'." #: kovertop.cc:159 msgid "Spine Text Font..." msgstr "Czcionka grzbietu..." #: kovertop.cc:163 msgid "CDDB without CD" msgstr "CDDB bez płyty CD" #: kovertop.cc:204 msgid "All this options are not global" msgstr "Te opcje nie są globalne" #: kovertop.cc:215 msgid "No title on booklet" msgstr "Nie drukuj tytułu" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "Oddzielny tekst grzbietu" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" "*.kover|Pliki Kover\n" "*|Wszystkie pliki\n" "*.k3b|Pliki K3b" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" "*.kover|Pliki Kover\n" "*|Wszystkie pliki" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "Okładka" #: PreferencesDialog.cc:516 msgid "Display track duration after a CDDB request" msgstr "Wyświetlaj długość utworu po zapytaniu CDDB" #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "Drukuj okładkę i książeczkę" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" "Nie drukuj książeczki\n" "(tylko okładka)." #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "Wszystko na jednej stronie" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "Standardowe czcionki" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "&Standardowe czcionki" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "Wszystkie zmiany tych czcionek są globalne.\n" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "Oznacza to, że zmiany będą uwzględnione\n" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "w następnej okładce.\n" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "Chyba, że aktualna okładka jest pusta.\n" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "Wtedy wszystkie zmiany zostaną zastosowane do niej." #: PreferencesDialog.cc:635 msgid "Content Font: " msgstr "Czcionka zawartości:" #: PreferencesDialog.cc:645 msgid "Title Font: " msgstr "Czcionka tytułu:" #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "Czcionka grzbietu: " #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "Zapisz pozycję okna" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "Wyłącz dodatkowe animacje" #: PreferencesDialog.cc:765 msgid "Mouse click on kover preview triggers actual size" msgstr "Kliknięcie myszą na podglądzie przywraca zwykły widok." #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "" "Zmiany czcionek nie zostaną zastosowane do aktualnej okładki, ale " "do następnych." #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "Ok" #: proxy_auth.cc:69 msgid "Password:" msgstr "Hasło:" #: without_cd.cc:54 msgid "Select a category:" msgstr "Wybierz kategorię:" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "Podaj identyfikator CDDB:" #: without_cd.cc:79 msgid "Search" msgstr "Szukaj" msgid "&Kover" msgstr "O&kładka" #~ msgid "&View" #~ msgstr "&Widok" #~ msgid "Browse" #~ msgstr "Przeglądaj" #~ msgid "Miscellaneous" #~ msgstr "Inne" #~ msgid "Fonts" #~ msgstr "Czcionki" #~ msgid "File" #~ msgstr "Plik" #~ msgid "Appearance" #~ msgstr "Wygląd" #~ msgid "OK" #~ msgstr "OK" #~ msgid "Cancel" #~ msgstr "Anuluj" #~ msgid "Quit" #~ msgstr "Zakończ" #~ msgid "Title" #~ msgstr "Tytuł" #~ msgid "Contents" #~ msgstr "Zawartość" #~ msgid "More >>" #~ msgstr "Więcej >>" kover-4.orig/po/nb.po0000644000175000017500000002700211107643076013333 0ustar renerene# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # FIRST TRANSLATOR , 2001 # msgid "" msgstr "" "Project-Id-Version: 1\n" "POT-Creation-Date: 2001-10-09 00:41+0200\n" "PO-Revision-Date: 2001-10-16 17:49GMT+1\n" "Last-Translator: Hvard Dahle \n" "Language-Team: Norwegian\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.5\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Frste bilde" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Forside, venstre" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Forside, hyre" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Forside, begge sidene" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Bakside, uten sider" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Bakside, med sider" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Sentrert" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "Flislagt" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Strukket" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Ml" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Bilde nummer to" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Bilde nummer tre" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Sett inn bilde" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Intern feil: Fildeskriptoren er ikke -1; er filen allerede pnet?" #: cddb_fill.cpp:160 #, fuzzy msgid "You dont have permission to read from " msgstr "Du har ikke tilgang til lese fra " #: cddb_fill.cpp:164 #, fuzzy msgid "Theres no medium in " msgstr "Det er ikke noe medium i " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " er opptatt!" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Ukjent feil ved pning av " #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "Oops. Fant ingen informasjon om cd-en. Fortsetter prve..." #: cddb_fill.cpp:188 #, fuzzy msgid "Theres no audio cd in " msgstr "Det er ingen lyd-cd i " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (overser)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "Intern feil: Fildeskriptoren er -1; er filen ikke pnet?" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Leser innholdsfortegnelse..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "En feil oppstod ved lesing av innholdsfortegnelse!" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "En feil oppsto ved lesing av TOC!" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "Innholdsfortegnelsen lest" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Kobler til " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Kobler til CDDB-server..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Bruker lokale verdier for cd" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Slr opp i databasen..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Autoriserer" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Handling avbrutt." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "Fant unyaktige treff, liste flger (fram til avsluttende tegn)" #: cddb_fill.cpp:640 msgid "No match found." msgstr "Fant ingen treff." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "Database-oppfringen er delagt." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "Ingen 'handshake'" #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "Laster ned cd-info..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, database-oppfring fra CDDB flger." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "Den forespurte CDDB-oppfringen ble ikke funnet." #: cddb_fill.cpp:747 msgid "Server error." msgstr "Server-feil." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "FEIL: Dette skulle ikke skje." #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Klarte ikke forme korrekt CDDB-hilsen... Gir opp..." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Nytt dokument]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "&Faktisk strrelse" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "&CDDB-sk" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "Sett inn &bilde..." #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Skrifttype for tittel..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Skriftfarge for tittel..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Skrifttype for innhold..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Skriftfarge for innhold..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Bakgrunnsfarge..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "Spytt ut cd" #: KoverTop.cpp:87 msgid "CD Number" msgstr "Cd-nummer" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Data endret" #: KoverTop.cpp:254 msgid "File loaded" msgstr "Fil lastet" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "Feil ved pning/lesing av fil!" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Data har blitt endret.\n" "nsker du lagre endingene?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "Fil lagret" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "Starter CDDB-oppslag" #: KoverTop.cpp:365 msgid "config me" msgstr "konfigurr meg" #: CDView.cpp:77 msgid "Click to close" msgstr "Klikk for lukke" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "CDDB-innstillinger" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "&CDDB-server" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "CDDB-server:" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "CGI-sti:" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "&Proxy-innstillinger" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Bruk proxy ved CDDB-oppslag" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Bruk miljvariabelen 'http_proxy'" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Proxy-server:" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Proxy-servers portnummer:" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "CDROM-innstillinger" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "CDROM-enhet" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "Spytt ut CD ved avslutning" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "CDDB-filer" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "Lokale CDDB-filer" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "&Lokale CDDB-filer" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "Les CDDB-data fra fil dersom mulig" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "Skriv CDDB-data til fil" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "CDDB-sti:" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Diverse egenskaper" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "&Ting" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "Museklikk p kovers forhndsvisning endrer til faktisk strrelse." #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "Vis cd-sporets lengde etter en CDDB-foresprsel." #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Skriv innlegget p venstre side av boken.\n" "(for tynne cd-etui)" #: inexact_dialog.cc:52 msgid "Choose wisely!" msgstr "" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Skriv inn brukernavn og passord for proxy " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Brukernavn:" #: cddb_fill.cc:139 cddb_fill.cc:187 #, fuzzy msgid "No http_proxy environment variable found... Giving up..." msgstr "Bruk miljvariabelen 'http_proxy'" #: cddb_fill.cc:142 cddb_fill.cc:190 #, fuzzy msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "Bruk miljvariabelen 'http_proxy'" #: kovertop.cc:159 #, fuzzy msgid "Spine Text Font..." msgstr "Skrifttype for innhold..." #: kovertop.cc:163 msgid "CDDB without CD" msgstr "" #: kovertop.cc:204 msgid "All this options are not global" msgstr "" #: kovertop.cc:215 msgid "No title on booklet" msgstr "" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "" #: PreferencesDialog.cc:516 #, fuzzy msgid "Display track duration after a CDDB request" msgstr "Vis cd-sporets lengde etter en CDDB-foresprsel." #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "" #: PreferencesDialog.cc:635 #, fuzzy msgid "Content Font: " msgstr "Skrifttype for innhold..." #: PreferencesDialog.cc:645 #, fuzzy msgid "Title Font: " msgstr "Skrifttype for tittel..." #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "" #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "" #: PreferencesDialog.cc:765 #, fuzzy msgid "Mouse click on kover preview triggers actual size" msgstr "Museklikk p kovers forhndsvisning endrer til faktisk strrelse." #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "" #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "" #: proxy_auth.cc:69 msgid "Password:" msgstr "" #: without_cd.cc:54 msgid "Select a category:" msgstr "" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "" #: without_cd.cc:79 msgid "Search" msgstr "" msgid "&Kover" msgstr "" kover-4.orig/po/es.po0000644000175000017500000003215411107643076013347 0ustar renerene# translation of Kover to Spanish # Copyright (C) 2003 Free Software Foundation, Inc. # Quique , 2003 # msgid "" msgstr "" "Project-Id-Version: Kover-2.9.1\n" "POT-Creation-Date: 2001-10-09 00:41+0200\n" "PO-Revision-Date: 2003-03-07 12:37CET\n" "Last-Translator: Quique \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.0\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Primera imagen" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Portada, lado izquierdo" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Portada, lado derecho" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Portada, ambos lados" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Contraportada, sin lomos" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Contraportada, incluyendo lomos" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Centrado" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "En mosaico" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Ajustado" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Objetivo" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Segunda imagen" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Tercera imagen" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Incorporación de imágenes" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Error interno: el descriptor de fichero no es -1. ¿Quizá está ya abierto?" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "No tiene permisos para leer de " #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "No hay ningún medio en " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " está ocupado!" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Error desconocido al abrir " #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "Oops. No hay información sobre este disco. Siga probando..." #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "No hay ningún CD de audio en " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (ignorando)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "Error interno: el descriptor de fichero es -1. ¿Quizá no está abierto?" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Leyendo el índice..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "¡Error al leer el índice!" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "¡Error al leer un elemento del índice!" #: cddb_fill.cc:241 msgid "CD contains %d tracks, total time is %d:%02d, the magic number is 0x%lx" msgstr "" "El CD contiene %d pista(s), la duración total es %d:%02d, el número " "mágico es 0x%lx" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "El índice se ha leído correctamente" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Conectándose a " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Conectándose al servidor CDDB..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Usando los valores locales para el disco" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Consultando a la base de datos..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Inicializando la autorización" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Operación interrumpida." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "" "Se han encontrado coincidencias no exactas, a continuación va la lista " "(hasta la marca de fin)" #: cddb_fill.cpp:640 msgid "No match found." msgstr "No se ha encontrado ninguna coincidencia." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "La entrada de la base de datos está corrupta." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "Sin negociación." #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "Descargando información del CD..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, a continuación las entradas de la base de datos CDDB." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "No se ha encontrado la entrada CDDB indicada." #: cddb_fill.cpp:747 msgid "Server error." msgstr "Error del servidor." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "ERROR: Esto no debería pasar." #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Problemas al crear el saludo cddb... Abandonando..." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Nuevo documento]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "T&amaño real" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "Consulta &CDDB" #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "&Incorporación de imágenes..." #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Tipo del título..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Color del título..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Tipo del contenido..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Color del contenido..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Color de fondo..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "Expulsar el CD" #: KoverTop.cpp:87 msgid "CD Number" msgstr "Número de CD" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Datos modificados" #: KoverTop.cpp:254 msgid "File loaded" msgstr "Fichero cargado" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "¡Error al abrir/leer el fichero!" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Los datos han sido modificados desde la última vez que guardó.\n" "¿Desea guardar los cambios?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "Fichero guardado" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "¡Iniciando consulta CDDB!" #: KoverTop.cpp:365 msgid "config me" msgstr "configuración de Kover" #: CDView.cpp:77 msgid "Click to close" msgstr "Haga clic para cerrar" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "Opciones CDDB" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "Servidor &CDDB" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "Servidor CDDB:" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "Ruta CGI:" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "Configuración del &proxy" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Utilizar un proxy para las consultas CDDB" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Utilizar la variable de entorno 'http_proxy'" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Servidor proxy:" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Puerto del servidor proxy:" #: PreferencesDialog.cpp:104 msgid "Browse" msgstr "Examinar" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "Opciones del CDROM" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "Dispositivo CDROM:" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "Expulsar el CD al salir" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "Ficheros CDDB" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "Ficheros CDDB locales" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "Ficheros CDDB &locales" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "Leer los datos CDDB de un fichero (caso de estar disponible)" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "Escribir los datos CDDB a un fichero" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "Ruta CDDB:" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Opciones varias" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "&Varios" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "Al hacer clic sobre la vista previa se muestra a tamaño real" #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "Mostrar la duración de las pistas después de una petición CDDB." #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Imprimir la lista de pistas al dorso de la portada.\n" "(opción para cajas delgadas)" #: inexact_dialog.cc:52 msgid "Choose wisely!" msgstr "¡Elija con cuidado!" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Introduzca el nombre y la contraseña para el proxy " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Nombre de usuario:" #: cddb_fill.cc:139 cddb_fill.cc:187 msgid "No http_proxy environment variable found... Giving up..." msgstr "No se ha encontrado la variable de entorno 'http_proxy'... Abandonando..." #: cddb_fill.cc:142 cddb_fill.cc:190 msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "Variable de entorno 'http_proxy' incorrecta... Abandonando..." #: kovertop.cc:159 msgid "Spine Text Font..." msgstr "Tipo del texto del lomo..." #: kovertop.cc:163 msgid "CDDB without CD" msgstr "CDDB sin CD" #: kovertop.cc:204 msgid "All this options are not global" msgstr "Todas estas opciones no son globales" #: kovertop.cc:215 msgid "No title on booklet" msgstr "Sin título en la portada" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "Diferente texto en el lomo" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" "*.kover|Ficheros Kover\n" "*|Todos los ficheros\n" "*.k3b|Ficheros k3b" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" "*.kover|Ficheros Kover\n" "*|Todos los ficheros" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "Carátula" #: PreferencesDialog.cc:516 msgid "Display track duration after a CDDB request" msgstr "Mostrar la duración de las pistas después de una petición CDDB" #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "Imprimir la lista de pistas y el libreto" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" "No imprimir el libreto.\n" "(Opción solamente el contenido)" #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "Imprimir todo en una página" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "Tipos estándar" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "Tipos e&stándar" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "Los cambios a cualquiera de estos tipos son globales.\n" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "Esto significa que estos cambios estarán disponibles solamente\n" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "para la próxima portada nueva.\n" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "Salvo si la portada actual carece de texto.\n" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "En tal caso los cambios se aplican a la carátula actual." #: PreferencesDialog.cc:635 msgid "Content Font: " msgstr "Tipo para el contenido: " #: PreferencesDialog.cc:645 msgid "Title Font: " msgstr "Tipo para el título:" #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "Tipo para el texto del lomo:" #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "Guardar la posición de la ventana" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "Desactivar las animaciones supérfluas" #: PreferencesDialog.cc:765 msgid "Mouse click on kover preview triggers actual size" msgstr "Al hacer clic sobre la vista previa se muestra a tamaño real" #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "" "Los cambios de tipo no tienen efecto sobre la carátula actual, " "sino sobre la siguiente carátula nueva." #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "Aceptar" #: proxy_auth.cc:69 msgid "Password:" msgstr "Contraseña:" #: without_cd.cc:54 msgid "Select a category:" msgstr "Seleccione una categoría:" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "Introduzca el identificativo CDDB:" #: without_cd.cc:79 msgid "Search" msgstr "Buscar" msgid "&Kover" msgstr "&Kover" kover-4.orig/po/it.po0000644000175000017500000003065511107643076013360 0ustar renerene# kover it.po # Italian translation for Kover # Copyright (C) 2002 Free Software Foundation, Inc. # Marco Ciampa , 2001,2002,2003. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2001-10-09 00:41+0200\n" "PO-Revision-Date: 2003-02-08 15:28GMT\n" "Last-Translator: Marco Ciampa \n" "Language-Team: italiano \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.6\n" #: imagedlgdata.cpp:16 msgid "First Image" msgstr "Prima immagine" #: imagedlgdata.cpp:31 imagedlgdata.cpp:72 imagedlgdata.cpp:109 msgid "Front, left side" msgstr "Fronte, lato sinistro" #: imagedlgdata.cpp:32 imagedlgdata.cpp:73 imagedlgdata.cpp:110 msgid "Front, right side" msgstr "Fronte, lato destro" #: imagedlgdata.cpp:33 imagedlgdata.cpp:74 imagedlgdata.cpp:111 msgid "Front, both sides" msgstr "Fronte, entrambi i lati" #: imagedlgdata.cpp:34 imagedlgdata.cpp:75 imagedlgdata.cpp:112 msgid "Back, without sides" msgstr "Retro, senza lati" #: imagedlgdata.cpp:35 imagedlgdata.cpp:76 imagedlgdata.cpp:113 msgid "Back, with sides" msgstr "Retro, lati compresi" #: imagedlgdata.cpp:39 imagedlgdata.cpp:80 imagedlgdata.cpp:117 msgid "Centered" msgstr "Centrato" #: imagedlgdata.cpp:40 imagedlgdata.cpp:81 imagedlgdata.cpp:118 msgid "Tiled" msgstr "Sovrapposto" #: imagedlgdata.cpp:41 imagedlgdata.cpp:82 imagedlgdata.cpp:119 msgid "Stretched" msgstr "Stirato" #: imagedlgdata.cpp:45 imagedlgdata.cpp:68 imagedlgdata.cpp:105 msgid "Target" msgstr "Obiettivo" #: imagedlgdata.cpp:53 msgid "Second Image" msgstr "Seconda immagine" #: imagedlgdata.cpp:90 msgid "Third Image" msgstr "Terza immagine" #: imagedlg.cpp:29 msgid "Image Embedding" msgstr "Incorporamento immagini" #: cddb_fill.cpp:150 msgid "Internal error: Filedescriptor is not -1, already opened?" msgstr "Errore interno: il descrittore file non è-1; già aperto?" #: cddb_fill.cpp:160 msgid "You dont have permission to read from " msgstr "Non hai il permesso di leggere da " #: cddb_fill.cpp:164 msgid "Theres no medium in " msgstr "Non c'è media in " #: cddb_fill.cpp:169 msgid " is busy!" msgstr " è occupato!" #: cddb_fill.cpp:172 msgid "Unknown error while opening " msgstr "Errore sconosciuto aprendo " #: cddb_fill.cpp:185 msgid "Oops. No information about disc. Will keep trying..." msgstr "Oops. Informazioni sul disco non presenti. Proverò ancora..." #: cddb_fill.cpp:188 msgid "Theres no audio cd in " msgstr "Non c'è un cd audio in " #: cddb_fill.cpp:189 msgid "! (ignoring)" msgstr "! (ignorato)" #: cddb_fill.cpp:209 msgid "Internal error: Filedescriptor is -1, not opened?" msgstr "Errore interno: il descrittore file è-1, forse non è aperto?" #: cddb_fill.cpp:213 msgid "Reading table of contents..." msgstr "Leggendo l'indice..." #: cddb_fill.cpp:216 msgid "Error while reading table of contents!" msgstr "Errore leggendo l'indice!" #: cddb_fill.cpp:234 msgid "Error while reading TOC entry!" msgstr "Errore leggendo una voce della TOC!" #: cddb_fill.cpp:252 msgid "Table of contents successfully read" msgstr "Indice letto con successo" #: cddb_fill.cpp:303 cddb_fill.cpp:306 msgid "Connecting to " msgstr "Mi sto collegando a " #: cddb_fill.cpp:329 msgid "Connecting to CDDB server..." msgstr "Mi sto collegando al CDDB server..." #: cddb_fill.cpp:417 msgid "Using local values for disc" msgstr "Uso dei valori locali per il disco" #: cddb_fill.cpp:436 msgid "Querying database..." msgstr "Interrogazione database..." #: cddb_fill.cpp:494 msgid "Initializing authorization" msgstr "Inizializzazione autorizzazione" #: cddb_fill.cpp:500 msgid "Operation aborted." msgstr "Operazione abortita." #: cddb_fill.cpp:581 msgid "Found inexact matches, list follows (until terminating marker)" msgstr "Trovate corrispondenze inseatte, segue elenco (fino al segno di termine)" #: cddb_fill.cpp:640 msgid "No match found." msgstr "Corrispondenze non trovate." #: cddb_fill.cpp:643 cddb_fill.cpp:750 msgid "Database entry is corrupt." msgstr "Voce del database corrotta." #: cddb_fill.cpp:646 cddb_fill.cpp:753 msgid "No handshake." msgstr "No handshake." #: cddb_fill.cpp:675 msgid "Downloading CD info..." msgstr "Recupero informazioni CD..." #: cddb_fill.cpp:741 msgid "OK, CDDB database entry follows." msgstr "OK, segue voce CDDB." #: cddb_fill.cpp:744 msgid "Specified CDDB entry not found." msgstr "Voce CDDB specificata non trovata." #: cddb_fill.cpp:747 msgid "Server error." msgstr "Errore del server." #: cddb_fill.cpp:756 msgid "ERROR: This should not happen." msgstr "ERRORE: questo non dovrebbe succedere." #: cddb_fill.cpp:911 msgid "Trouble creating cddb greeting... Giving up..." msgstr "Problema nel creare saluto cddb...abbandono..." #: KoverTop.cpp:52 KoverTop.cpp:144 KoverTop.cpp:221 msgid "[New Document]" msgstr "[Nuovo Documento]" #: KoverTop.cpp:68 msgid "&Actual size" msgstr "&Anteprima" #: KoverTop.cpp:69 msgid "&CDDB lookup" msgstr "Interrogazione &CDDB " #: KoverTop.cpp:71 msgid "&Image Embedding..." msgstr "&Impostazione immagini..." #: KoverTop.cpp:72 msgid "Title Font..." msgstr "Carattere titolo..." #: KoverTop.cpp:73 msgid "Title Fontcolor..." msgstr "Colore del titolo..." #: KoverTop.cpp:74 msgid "Contents Font..." msgstr "Carattere contenuti..." #: KoverTop.cpp:75 msgid "Contents Fontcolor..." msgstr "Colore dei contenuti..." #: KoverTop.cpp:76 msgid "Background Color..." msgstr "Colore sfondo..." #: KoverTop.cpp:77 msgid "Eject CD" msgstr "Espulsione CD" #: KoverTop.cpp:87 msgid "CD Number" msgstr "Numero CD" #: KoverTop.cpp:142 msgid "Data changed" msgstr "Dati modificati" #: KoverTop.cpp:254 msgid "File loaded" msgstr "File caricato" #: KoverTop.cpp:257 KoverTop.cpp:286 KoverTop.cpp:302 msgid "Error while opening/reading file!" msgstr "Errore durante l'apertura/lettura file!" #: KoverTop.cpp:263 msgid "" "Data changed since last saving!\n" "Do you want to save the changes?" msgstr "" "Dati modificati dall'ultimo salvataggio!\n" "Vuoi salvare i cambiamenti?" #: KoverTop.cpp:283 KoverTop.cpp:299 msgid "File saved" msgstr "File salvato" #: KoverTop.cpp:347 msgid "Initiating CDDB lookup!" msgstr "Inizio interrogazione CDDB!" #: KoverTop.cpp:365 msgid "config me" msgstr "configurami" #: CDView.cpp:77 msgid "Click to close" msgstr "Clicca per uscire" #: PreferencesDialog.cpp:48 msgid "CDDB" msgstr "CDDB" #: PreferencesDialog.cpp:48 msgid "CDDB options" msgstr "Opzioni CDDB" #: PreferencesDialog.cpp:52 msgid "&CDDB server" msgstr "server &CDDB" #: PreferencesDialog.cpp:62 msgid "CDDB server:" msgstr "server CDDB:" #: PreferencesDialog.cpp:69 msgid "CGI path:" msgstr "Percorso CGI:" #: PreferencesDialog.cpp:76 msgid "&Proxy configuration" msgstr "configurazione &Proxy" #: PreferencesDialog.cpp:83 msgid "Use proxy for CDDB lookups" msgstr "Usa proxy per interrogazioni CDDB" #: PreferencesDialog.cpp:87 msgid "Use 'http_proxy' environment variable" msgstr "Usa la variabile di ambiente 'http_proxy'" #: PreferencesDialog.cpp:90 msgid "Proxy server:" msgstr "Server proxy:" #: PreferencesDialog.cpp:96 msgid "Proxy server port:" msgstr "Porta server proxy:" #: PreferencesDialog.cpp:109 msgid "CDROM" msgstr "CDROM" #: PreferencesDialog.cpp:109 msgid "CDROM options" msgstr "Opzioni CDROM" #: PreferencesDialog.cpp:113 msgid "&CDROM" msgstr "&CDROM" #: PreferencesDialog.cpp:122 msgid "CDROM device:" msgstr "Dispositivo CDROM:" #: PreferencesDialog.cpp:128 msgid "Eject CD on exit" msgstr "Espellere CD all'uscita" #: PreferencesDialog.cpp:312 msgid "CDDB files" msgstr "File CDDB" #: PreferencesDialog.cpp:312 msgid "Local CDDB files" msgstr "File locali CDDB" #: PreferencesDialog.cpp:316 msgid "&Local CDDB files" msgstr "File &Locali CDDB" #: PreferencesDialog.cpp:325 msgid "Read CDDB data from file if available" msgstr "Leggi dati CDDB da file se esistente" #: PreferencesDialog.cpp:329 msgid "Write CDDB data to file" msgstr "Scrivi dati CDDB su file" #: PreferencesDialog.cpp:334 msgid "CDDB path:" msgstr "Percorso CDDB:" #: PreferencesDialog.cpp:390 msgid "Various properties" msgstr "Opzioni varie" #: PreferencesDialog.cpp:394 msgid "&Stuff" msgstr "&Varie" #: PreferencesDialog.cpp:403 msgid "Mouse click on kover preview triggers actual size." msgstr "Cliccando col mouse sull'anteprima mostra l'ampiezza reale." #: PreferencesDialog.cpp:407 msgid "Display track duration after a CDDB request." msgstr "Mostra la durata della traccia dopo una richiesta CDDB." #: PreferencesDialog.cpp:411 msgid "" "Print inlet on left side of booklet.\n" "(slim case option)" msgstr "" "Stampa contenuto sulla sinistra del retro.\n" "(opzione confezione stretta)" #: inexact_dialog.cc:52 msgid "Choose wisely!" msgstr "Scegli con cura!" #: proxy_auth.cc:49 msgid "Enter username and password for proxy at " msgstr "Immettere nome utente e password per proxy a " #: proxy_auth.cc:63 msgid "User Name:" msgstr "Nome utente:" #: cddb_fill.cc:139 cddb_fill.cc:187 msgid "No http_proxy environment variable found... Giving up..." msgstr "Non è stata trovata la variabile ambiente http_proxy...abbandono..." #: cddb_fill.cc:142 cddb_fill.cc:190 msgid "Don't understand http_proxy environment variable... Giving up..." msgstr "La variabile di ambiente 'http_proxy' non è comprensibile...abbandono..." #: kovertop.cc:159 msgid "Spine Text Font..." msgstr "Carattere profilo..." #: kovertop.cc:163 msgid "CDDB without CD" msgstr "CDDB senza CD" #: kovertop.cc:204 msgid "All this options are not global" msgstr "Tutte queste opzioni non sono globali" #: kovertop.cc:215 msgid "No title on booklet" msgstr "Senza titolo sul libretto" #: kovertop.cc:221 msgid "Separate Spine Text" msgstr "Testo separato sul profilo" #: kovertop.cc:404 msgid "" "*.kover|Kover files\n" "*|All files\n" "*.k3b|k3b files" msgstr "" "*.kover|File Kover\n" "*|Tutti i file\n" "*.k3b|File k3b" #: kovertop.cc:500 msgid "" "*.kover|Kover files\n" "*|All files" msgstr "" "*.kover|File Kover\n" "*|Tutti i file" #: PreferencesDialog.cc:499 PreferencesDialog.cc:503 msgid "Cover" msgstr "Copertina" #: PreferencesDialog.cc:516 msgid "Display track duration after a CDDB request" msgstr "Mostra la durata della traccia dopo una richiesta CDDB" #: PreferencesDialog.cc:522 msgid "Print inlet and booklet" msgstr "Stampa copertina e libretto" #: PreferencesDialog.cc:531 msgid "" "Don't print booklet.\n" "(inlet only option)" msgstr "" "Non stampare il libretto.\n" "(opzione solo retro)" #: PreferencesDialog.cc:535 msgid "Print all on one page" msgstr "Stampa tutto su una pagina" #: PreferencesDialog.cc:613 msgid "Standard Fonts" msgstr "Caratteri standard" #: PreferencesDialog.cc:617 msgid "&Standard Fonts" msgstr "Caratteri &standard" #: PreferencesDialog.cc:627 msgid "Changes to any of these fonts are global.\n" msgstr "I cambiamenti su uno qualsiasi di questi caratteri sono globali.\n" #: PreferencesDialog.cc:628 msgid "This means, that changes will only be available\n" msgstr "Ciò significa che questi cambiamenti saranno disponibili solo\n" #: PreferencesDialog.cc:629 msgid "for the next new cover.\n" msgstr "sulla prossima copertina.\n" #: PreferencesDialog.cc:630 msgid "Except that the current cover is empty.\n" msgstr "Solo se la copertina corrente è vuota.\n" #: PreferencesDialog.cc:631 msgid "Then changes are applied to the current cover." msgstr "Allora i cambiamenti saranno applicati alla copertina corrente." #: PreferencesDialog.cc:635 msgid "Content Font: " msgstr "Carattere contenuti:" #: PreferencesDialog.cc:645 msgid "Title Font: " msgstr "Carattere titolo:" #: PreferencesDialog.cc:654 msgid "Spine Text Font: " msgstr "Carattere profilo:" #: PreferencesDialog.cc:756 msgid "Save window position" msgstr "Salva la posizione della finestra" #: PreferencesDialog.cc:760 msgid "Disable unnecessary animation" msgstr "Disabilita le inutili animazioni" #: PreferencesDialog.cc:765 msgid "Mouse click on kover preview triggers actual size" msgstr "Cliccando col mouse sull'anteprima mostra l'ampiezza reale" #: PreferencesDialog.cc:815 msgid "" "Changes to the fonts will not be applied to the current cover, but for the " "next new cover." msgstr "" "I cambiamenti sui caratteri non verranno applicati alla copertina corrente " "ma alla prossima nuova copertina." #: inexact_dialog.cc:80 proxy_auth.cc:76 msgid "Ok" msgstr "Ok" #: proxy_auth.cc:69 msgid "Password:" msgstr "Password:" #: without_cd.cc:54 msgid "Select a category:" msgstr "Seleziona una categoria:" #: without_cd.cc:72 msgid "Enter CDDB Id:" msgstr "Inserire id CDDB:" #: without_cd.cc:79 msgid "Search" msgstr "Cerca" msgid "&Kover" msgstr "" kover-4.orig/po/Makefile.am0000644000175000017500000000005211107643076014424 0ustar renerenePOFILES = AUTO clean-local: rm -f *.gmo kover-4.orig/CMakeLists.txt0000644000175000017500000000116011107643076014513 0ustar renereneproject(kover) find_package(KDE4 REQUIRED) include (KDE4Defaults) include_directories( ${KDE4_INCLUDES} ${QT_INCLUDES} ) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) set(VERSION 4) set(PACKAGE ${PROJECT_NAME}) configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) add_subdirectory(src) install(FILES kover.1 DESTINATION ${MAN_INSTALL_DIR}/man1 ) SET(CPACK_BINARY_BUNDLE "OFF") SET(CPACK_SOURCE_GENERATOR "TBZ2") SET(CPACK_PACKAGE_VERSION ${VERSION}) SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${PROJECT_NAME}-${VERSION}) SET(CPACK_SOURCE_IGNORE_FILES ${CMAKE_CURRENT_BINARY_DIR} "/.git/") INCLUDE(CPack) kover-4.orig/getcover/0000755000175000017500000000000011145115715013567 5ustar renerenekover-4.orig/getcover/config.h.cmake0000644000175000017500000000010411107643076016263 0ustar renerene#cmakedefine VERSION "${VERSION}" #cmakedefine PACKAGE "${PACKAGE}" kover-4.orig/getcover/getcover.c0000644000175000017500000004035311107643076015562 0ustar renerene/* * getcover - getcover is command-line tool to download covers * Copyright (C) 2007 by Qball Cow * Copyright (C) 2007, 2008 by Adrian Reber * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * This code is largely based on the gmpc coveramazon plugin which * is written by Qball Cow . * * There are only minimal modifications from me (Adrian) to make it * run as standalone command-line tool. */ #include #include #include #include #include #include #include #include #define AMAZONKEY "14TC04B24356BPHXW1R2" #define ENDPOINTS 6 #define dprintf(format, ARGS...) \ { if (verbose) \ d_printf(__PRETTY_FUNCTION__, __LINE__, format, ##ARGS); } static const char *endpoints[ENDPOINTS][2] = { {"com", "United States"}, {"co.uk", "United Kingdom"}, {"jp", "Japan"}, {"fr", "France"}, {"ca", "Canada"}, {"de", "Germany"} }; typedef enum { META_ALBUM_ART = 1, /* Album Cover art */ META_ALBUM_TXT = 4 /* Album story */ } meta_data_type; static const char *host = "http://ecs.amazonaws.%s/onca/xml?Service=" "AWSECommerceService&Operation=ItemSearch&SearchIndex=" "Music&ResponseGroup=Images,EditorialReview&" "SubscriptionId=%s&Artist=%s&%s=%s"; typedef struct amazon_song_info { char *image_big; char *image_medium; char *image_small; char *album_info; } amazon_song_info; typedef struct download { char *data; int size; int max_size; } download; typedef struct extra_params { int ep; int port; char *proxy; char *dir; char *artist; char *album; char *stype; char *url; int type; } ep; static int verbose = 0; static void usage(int) __attribute__ ((noreturn)); static void d_printf(const char *fn, int line, const char *format, ...) { char *tmp; va_list arglist; va_start(arglist, format); tmp = g_strdup_vprintf(format, arglist); fprintf(stderr, " %s():%d: %s", fn, line, tmp); g_free(tmp); va_end(arglist); } static size_t write_data(void *buffer, size_t size, size_t nmemb, download *dld) { if (!size || !nmemb) return 0; if (dld->data == NULL) dld->size = 0; dld->data = g_realloc(dld->data, (gulong) (size * nmemb + dld->size) + 1); memset(&(dld->data)[dld->size], '\0', (size * nmemb) + 1); memcpy(&(dld->data)[dld->size], buffer, size * nmemb); dld->size += size * nmemb; if (dld->size >= dld->max_size && dld->max_size > 0) return 0; return size * nmemb; } static void download_clean(download *dld) { if (dld->data) g_free(dld->data); dld->data = NULL; dld->size = 0; } static int easy_download(const char *url, download *dld, ep *ep) { int running = 0; int msgs_left = 0; int success = FALSE; CURL *curl = NULL; CURLM *curlm = NULL; CURLMsg *msg = NULL; char *proxy = NULL; /*int res; */ if (!dld) return 0; if (url == NULL) return 0; if (url[0] == '\0') return 0; /** * Make sure it's clean */ download_clean(dld); /* initialize curl */ curl = curl_easy_init(); if (!curl) return 0; curlm = curl_multi_init(); if (!curlm) return 0; /* set uri */ curl_easy_setopt(curl, CURLOPT_URL, url); /* set callback data */ curl_easy_setopt(curl, CURLOPT_WRITEDATA, dld); /* set callback function */ curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); /* set timeout */ curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10); /* set redirect */ curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1); /* set NO SIGNAL */ curl_easy_setopt(curl, CURLOPT_NOSIGNAL, TRUE); if (ep->proxy) proxy = g_strdup_printf("http://%s:%i/", ep->proxy, ep->port); if (getenv("http_proxy") && !proxy) proxy = g_strdup(getenv("http_proxy")); if (proxy) { dprintf("setting proxy: %s\n", proxy); curl_easy_setopt(curl, CURLOPT_PROXY, proxy); g_free(proxy); proxy = NULL; } curl_multi_add_handle(curlm, curl); do { curl_multi_perform(curlm, &running); g_usleep(100000); while ((msg = curl_multi_info_read(curlm, &msgs_left))) { if (msg->msg == CURLMSG_DONE) { if ((!msg->data.result || msg->data.result == 23)) { success = TRUE; } else { /* don't print the can't resolve.. */ if (msg->data.result != 108) { printf("Error: %i '%s' url: %s", msg->data.result, curl_easy_strerror(msg->data.result), url); } } } } } while (running); /** * remove handler */ curl_multi_remove_handle(curlm, curl); /* cleanup */ curl_easy_cleanup(curl); curl_multi_cleanup(curlm); dprintf("downloaded: %i\n", dld->size); if (success) return 1; if (dld->data) g_free(dld->data); dld->data = NULL; return 0; } static int shrink_string(char *string, int start, int end) { int i; for (i = start; i < end; i++) string[i] = string[i + 1]; end--; return end; } /* Convert string to the wonderful % notation for url*/ static char * cover_art_process_string(const char *string) { #define ACCEPTABLE(a) (((a) >= 'a' && (a) <= 'z') || ((a) >= 'A' && (a) <= 'Z') || ((a) >= '0' && (a) <= '9')) const char hex[16] = "0123456789ABCDEF"; const char *p; char *q; char *result; int c; gint unacceptable = 0; const char *tmp_p; char *new_string; int depth = 0; int len; int i = 0; len = strlen(string); new_string = g_malloc(len + 1); /* Get count of chars that will need to be converted to % and remove ([{}]) and everything between */ for (p = string; *p != '\0'; p++) { c = (unsigned char) *p; if (c == '(' || c == '[' || c == '{') { depth++; } else if (c == ')' || c == ']' || c == '}') { depth--; if (depth < 0) depth = 0; } else if (depth == 0) { if (!ACCEPTABLE(c)) unacceptable++; new_string[i] = c; i++; } } new_string[i] = '\0'; len = strlen(new_string); /* remove double spaces from the string because removing ([{}]) tends to create those */ for (p = new_string + 1; *p != '\0'; p++) { c = (unsigned char) *p; if (c == ' ') { tmp_p = p - 1; if (*tmp_p == ' ') { len = shrink_string(new_string, p - new_string, len); p--; } } } /* make sure first char isn't a space */ if (new_string[0] == ' ') len = shrink_string(new_string, 0, len); /* make sure there isn't a trailing space */ if (new_string[len - 1] == ' ') len--; new_string[len] = '\0'; result = g_malloc(len + unacceptable * 2 + 1); /*time to create the escaped string */ for (q = result, p = new_string; *p != '\0'; p++) { c = (unsigned char) *p; if (!ACCEPTABLE(c)) { *q++ = '%'; /* means hex coming */ *q++ = hex[c >> 4]; *q++ = hex[c & 15]; } else *q++ = *p; } *q = '\0'; g_free(new_string); return result; } static amazon_song_info * amazon_song_info_new() { amazon_song_info *asi = g_malloc(sizeof(amazon_song_info)); asi->image_big = NULL; asi->image_medium = NULL; asi->image_small = NULL; asi->album_info = NULL; return asi; } static void amazon_song_info_free(amazon_song_info *asi) { if (asi->image_big != NULL) g_free(asi->image_big); if (asi->image_medium != NULL) g_free(asi->image_medium); if (asi->image_small != NULL) g_free(asi->image_small); if (asi->album_info != NULL) g_free(asi->album_info); g_free(asi); return; } static xmlNodePtr get_first_node_by_name(xmlNodePtr xml, char *name) { if (xml) { xmlNodePtr c = xml->xmlChildrenNode; for (; c; c = c->next) { if (xmlStrEqual(c->name, (xmlChar *) name)) return c; } } return NULL; } static amazon_song_info * cover_art_xml_get_image(char *data, int size) { amazon_song_info *asi = NULL; xmlDocPtr doc = xmlParseMemory(data, size); if (!doc) goto no_doc; xmlNodePtr root = xmlDocGetRootElement(doc); xmlNodePtr cur = get_first_node_by_name(root, "Items"); if (!cur) goto no_items; cur = get_first_node_by_name(cur, "Item"); if (!cur) goto no_items; xmlNodePtr child = NULL; asi = amazon_song_info_new(); if ((child = get_first_node_by_name(cur, "LargeImage"))) { xmlChar *temp = xmlNodeGetContent(get_first_node_by_name(child, "URL")); /* copy it, so we can free it, and don't need xmlFree */ asi->image_big = g_strdup((char *) temp); xmlFree(temp); } if ((child = get_first_node_by_name(cur, "MediumImage"))) { xmlChar *temp = xmlNodeGetContent(get_first_node_by_name(child, "URL")); asi->image_medium = g_strdup((char *) temp); xmlFree(temp); } if ((child = get_first_node_by_name(cur, "SmallImage"))) { xmlChar *temp = xmlNodeGetContent(get_first_node_by_name(child, "URL")); asi->image_small = g_strdup((char *) temp); xmlFree(temp); } if ((child = get_first_node_by_name(cur, "EditorialReviews"))) { child = get_first_node_by_name(child, "EditorialReview"); if (child) { /* ugy, lazy */ xmlChar *temp = xmlNodeGetContent(get_first_node_by_name(child, "Content")); asi->album_info = g_strdup((char *) temp); xmlFree(temp); } } no_items: xmlFreeDoc(doc); no_doc: xmlCleanupParser(); return asi; } static FILE * file_open(ep *ep) { char *tmp; char *mode; tmp = g_strdup_printf("%s/%s-%s.", ep->dir, ep->artist, ep->album); if (ep->type & META_ALBUM_TXT) { ep->url = g_strdup_printf("%s%s", tmp, "albuminfo"); mode = "w"; } else { ep->url = g_strdup_printf("%s%s", tmp, "jpg"); mode = "wb"; } g_free(tmp); dprintf("destination %s\n", ep->url); return fopen(ep->url, mode); } static int fetch_metadata_amazon(ep *ep) { download data = { NULL, 0, -1 }; char furl[1024]; const char *endp = endpoints[ep->ep][0]; char *artist; char *album; FILE *fp = NULL; dprintf("search-type: %s\n", ep->stype); dprintf("using endpoint %s (%s)\n", endp, endpoints[ep->ep][1]); dprintf("artist %s\n", ep->artist); dprintf("album %s\n", ep->album); artist = cover_art_process_string(ep->artist); album = cover_art_process_string(ep->album); snprintf(furl, 1024, host, endp, AMAZONKEY, artist, ep->stype, album); if (easy_download(furl, &data, ep)) { amazon_song_info *asi = cover_art_xml_get_image(data.data, data.size); download_clean(&data); if (asi) { if (ep->type & META_ALBUM_ART) { dprintf("trying to fetch album art\n"); easy_download(asi->image_big, &data, ep); if (data.size <= 900) { download_clean(&data); easy_download(asi->image_medium, &data, ep); if (data.size <= 900) { download_clean(&data); easy_download(asi->image_small, &data, ep); if (data.size <= 900) download_clean(&data); } } if (data.size) { fp = file_open(ep); if (fp) fwrite(data.data, sizeof(char), data.size, fp); } download_clean(&data); } else if (ep->type & META_ALBUM_TXT) { dprintf("trying to fetch album txt\n"); if (asi->album_info) { fp = file_open(ep); if (fp) { int j = 0, depth = 0;; /* Quick 'n Dirty html stripper */ for (j = 0; j < strlen(asi->album_info); j++) { if ((asi->album_info)[j] == '<') depth++; else if ((asi->album_info)[j] == '>' && depth) depth--; else if (depth == 0) fputc((asi->album_info)[j], fp); } } } } amazon_song_info_free(asi); } } g_free(artist); g_free(album); if (fp) { fclose(fp); return 0; } return -1; } static void dump_endpoints() { int i; fprintf(stderr, "\nSelect an endpoint by specifying the corresponding number:\n\n"); for (i = 0; i < ENDPOINTS; i++) { fprintf(stderr, " %d: %s (%s)\n", i, endpoints[i][1], endpoints[i][0]); } exit(0); } static void usage(int rc) { fprintf(stderr, "Usage: getcover [options]\n\n"); fprintf(stderr, "getcover is command-line tool to download covers\n\n"); fprintf(stderr, "Options:\n"); fprintf(stderr, " -h, --help print out this information\n"); fprintf(stderr, " -a, --artist specify the artist whose cover should be retrieved\n"); fprintf(stderr, " (required)\n"); fprintf(stderr, " -l, --album specify the album\n"); fprintf(stderr, " (required)\n"); fprintf(stderr, " -t, --title search type: Title (default)\n"); fprintf(stderr, " -k, --keyword search type: Keyword\n"); fprintf(stderr, " -c, --cover download cover (default)\n"); fprintf(stderr, " -i, --info download artist information\n"); fprintf(stderr, " -e, --endpoint select endpoint (specify \"list\" to see all options)\n"); fprintf(stderr, " -o, --host specify proxy host\n"); fprintf(stderr, " -p, --port specify proxy port\n"); fprintf(stderr, " if the environment variable http_proxy is set\n"); fprintf(stderr, " that value will be used. to disable the use of\n"); fprintf(stderr, " proxy in that case the environment variable has to be unset.\n"); fprintf(stderr, " -d, --directory destination directory (defaults to current directory)\n"); fprintf(stderr, " -v, --verbose verbose output\n"); exit(rc); } int main(int argc, char *argv[]) { int next_option; char *searchtype[] = { "Title", "Keyword" }; ep ep = { 0, -1, NULL, NULL, NULL, NULL, NULL, NULL, META_ALBUM_ART }; int proxy = 0; int result; const char *short_options = "hcitka:l:e:p:o:d:v"; const struct option long_options[] = { {"help", no_argument, NULL, 'h'}, {"artist", required_argument, NULL, 'a'}, {"album", required_argument, NULL, 'l'}, {"title", no_argument, NULL, 't'}, {"keyword", no_argument, NULL, 'k'}, {"cover", no_argument, NULL, 'c'}, {"info", no_argument, NULL, 'i'}, {"endpoint", required_argument, NULL, 'e'}, {"host", required_argument, NULL, 'o'}, {"port", required_argument, NULL, 'p'}, {"directory", required_argument, NULL, 'd'}, {"verbose", no_argument, NULL, 'v'}, {0, 0, 0, 0} }; fprintf(stderr, "%s %s, Copyright (C) 2008 by Adrian Reber \n", PACKAGE, VERSION); fprintf(stderr, "%s comes with ABSOLUTELY NO WARRANTY - for details read the license.\n\n", PACKAGE); if (argc < 3) usage(-2); /* default is "Title" search */ ep.stype = searchtype[0]; while (1) { next_option = getopt_long(argc, argv, short_options, long_options, NULL); if (next_option == -1) break; switch (next_option) { case 'a': ep.artist = g_strdup(optarg); break; case 'l': ep.album = g_strdup(optarg); break; case 't': ep.stype = searchtype[0]; break; case 'k': ep.stype = searchtype[1]; break; case 'i': ep.type = META_ALBUM_TXT; dprintf("trying to download album text\n"); break; case 'c': ep.type = META_ALBUM_ART; dprintf("trying to download album art\n"); break; case 'e': if (!strncmp("list", optarg, 4)) dump_endpoints(); ep.ep = atoi(optarg); if (ep.ep > ENDPOINTS || ep.ep < 0) dump_endpoints(); break; case 'p': proxy++; ep.port = atoi(optarg); break; case 'o': proxy++; ep.proxy = g_strdup(optarg); break; case 'd': ep.dir = g_strdup(optarg); break; case 'v': verbose++; break; case 'h': usage(0); default: usage(-3); } } /* let's do a few sanity checks to see if all parameters are used * like they are supposed to * * we need at least an artist and an album name */ if (!ep.artist || !ep.album) usage(-4); /* only if a hostname and a port a specfied * for the proxy it makes sense */ if ((ep.port < 1 || !ep.proxy) && (proxy >= 1)) usage(-5); if (!ep.dir) ep.dir = g_strdup("."); else if (!g_file_test(ep.dir, G_FILE_TEST_EXISTS)) g_mkdir(ep.dir, 0755); result = fetch_metadata_amazon(&ep); if (!result) printf("\nDownloaded %s\n", ep.url); else printf("\nDownload failed\n"); /* freeing the memory so close to the end of the application * makes not much sense; but hey... it should be done */ dprintf("freeing memory\n"); if (ep.url) g_free(ep.url); if (ep.proxy) g_free(ep.proxy); if (ep.dir) g_free(ep.dir); if (ep.artist) g_free(ep.artist); if (ep.album) g_free(ep.album); return result; } kover-4.orig/getcover/CMakeLists.txt0000644000175000017500000000130211107643076016327 0ustar renereneproject(getcover) include(FindPkgConfig) set(VERSION 1) set(PACKAGE ${PROJECT_NAME}) set(CMAKE_C_FLAGS "-g -Wall") configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) pkg_check_modules(BLA libcurl) pkg_check_modules(BLU libxml-2.0) pkg_check_modules(BLO glib-2.0) add_executable(${PROJECT_NAME} ${PROJECT_NAME}.c) include_directories(${CMAKE_CURRENT_BINARY_DIR} ${BLA_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_BINARY_DIR} ${BLU_INCLUDE_DIRS}) include_directories(${CMAKE_CURRENT_BINARY_DIR} ${BLO_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${BLA_LDFLAGS}) target_link_libraries(${PROJECT_NAME} ${BLU_LDFLAGS}) target_link_libraries(${PROJECT_NAME} ${BLO_LDFLAGS})