/* ============================================================ * * This file is a part of digiKam project * http://www.digikam.org * * Date : 2006-12-20 * Description : a widget to display a welcome page * on root album. * * Copyright (C) 2006-2008 by Gilles Caulier * * 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, 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. * * ============================================================ */ // TQt includes. #include #include #include // KDE includes. #include #include #include #include #include #include #include // Local includes. #include "daboutdata.h" #include "welcomepageview.h" #include "welcomepageview.moc" namespace Digikam { WelcomePageView::WelcomePageView(TQWidget* parent) : TDEHTMLPart(parent) { widget()->setFocusPolicy(TQWidget::WheelFocus); // Let's better be paranoid and disable plugins (it defaults to enabled): setPluginsEnabled(false); setJScriptEnabled(false); // just make this explicit. setJavaEnabled(false); // just make this explicit. setMetaRefreshEnabled(false); setURLCursor(KCursor::handCursor()); TQString fontSize = TQString::number(12); TQString appTitle = i18n("digiKam"); TQString catchPhrase = TQString(); // Not enough space for a catch phrase at default window size. TQString quickDescription = TQString(digiKamDescription()); TQString locationHtml = locate("data", "digikam/about/main.html"); TQString locationCss = locate("data", "digikam/about/kde_infopage.css"); TQString locationRtl = locate("data", "digikam/about/kde_infopage_rtl.css" ); TQString rtl = kapp->reverseLayout() ? TQString("@import \"%1\";" ).arg(locationRtl) : TQString(); begin(KURL(locationHtml)); TQString content = fileToString(locationHtml); content = content.arg(locationCss) // %1 .arg(rtl) // %2 .arg(fontSize) // %3 .arg(appTitle) // %4 .arg(catchPhrase) // %5 .arg(quickDescription) // %6 .arg(infoPage()); // %7 write(content); end(); show(); connect(browserExtension(), TQ_SIGNAL(openURLRequest(const KURL &, const KParts::URLArgs &)), this, TQ_SLOT(slotUrlOpen(const KURL &))); } WelcomePageView::~WelcomePageView() { } void WelcomePageView::slotUrlOpen(const KURL &url) { TDEApplication::kApplication()->invokeBrowser(url.url()); } TQString WelcomePageView::infoPage() { TQString info = i18n( "%1: digiKam version; " "%2: help:// URL; " "%3: homepage URL; " "%4: prior digiKam version; " "%5: prior KDE version; " "%6: generated list of new features; " "%7: First-time user text (only shown on first start); " "%8: generated list of important changes; " "--- end of comment ---", "

Welcome to digiKam

" "digiKam is a photo management program for the Trinity Desktop Environment. " "It is designed to import, organize, and export your digital photographs on your computer." "

You are currently in the Album view mode of digiKam. The Albums are the real " "containers where your files are stored, they are identical with the folders " "on disk.

\n" "digiKam has many powerful features\n" "%8\n

" // important changes "Some of the features of digiKam include

\n" "
    \n%5
\n" "%6\n" "

We hope you will enjoy digiKam.

\n" "

Thank you,

\n" "

    The digiKam Team

"); TQStringList newFeatures; newFeatures << i18n("16-bit/color/pixel image support"); newFeatures << i18n("Full color management support"); newFeatures << i18n("Native JPEG-2000 support"); newFeatures << i18n("Makernote and IPTC metadata support"); newFeatures << i18n("Photograph geolocation"); newFeatures << i18n("Extensive Sidebars"); newFeatures << i18n("Advanced RAW image decoding settings"); newFeatures << i18n("Fast RAW preview"); newFeatures << i18n("RAW Metadata support"); newFeatures << i18n("Camera Interface used as generic import tool"); newFeatures << i18n("New advanced camera download options"); newFeatures << i18n("New advanced tag management"); newFeatures << i18n("New zooming/panning support in preview mode"); newFeatures << i18n("New Light Table provides easy comparison for similar images"); newFeatures << i18n("New text, mime-type, and rating filters to search contents on icon view"); newFeatures << i18n("New options to easy navigate between albums, tags and collections"); newFeatures << i18n("New options to recursively show the contents of sub-folders"); newFeatures << i18n("New text filter to search contents on folder views"); newFeatures << i18n("New options to count of items on all folder views"); newFeatures << i18n("New tool to perform dates search around whole albums collection: Time-Line"); newFeatures << i18n("New tool to import RAW files in editor with customized decoding settings"); TQString featureItems; for ( uint i = 0 ; i < newFeatures.count() ; i++ ) featureItems += i18n("
  • %1
  • \n").arg( newFeatures[i] ); info = info.arg( featureItems ); // Add first-time user text (only shown on first start). info = info.arg( TQString() ); // Generated list of important changes info = info.arg( TQString() ); return info; } TQCString WelcomePageView::fileToString(const TQString &aFileName) { TQCString result; TQFileInfo info(aFileName); unsigned int readLen; unsigned int len = info.size(); TQFile file(aFileName); if (aFileName.isEmpty() || len <= 0 || !info.exists() || info.isDir() || !info.isReadable() || !file.open(IO_Raw|IO_ReadOnly)) return TQCString(); result.resize(len + 2); readLen = file.readBlock(result.data(), len); if (1 && result[len-1]!='\n') { result[len++] = '\n'; readLen++; } result[len] = '\0'; if (readLen < len) return TQCString(); return result; } } // namespace Digikam