void KPImagePage::setOptions(const TQMap<TQString,TQString>& opts) { TQString value; if (!(value=opts["brightness"]).isEmpty()) m_brightness->setValue(value.toInt()); if (!(value=opts["hue"]).isEmpty()) m_hue->setValue(value.toInt()); if (!(value=opts["saturation"]).isEmpty()) m_saturation->setValue(value.toInt()); if (!(value=opts["gamma"]).isEmpty()) m_gamma->setValue(value.toInt()); int type = 0; int ival(0); if ((ival = opts["ppi"].toInt()) != 0) type = 1; else if ((ival = opts["scaling"].toInt()) != 0) type = 2; else if (!opts["natural-scaling"].isEmpty() && (ival = opts["natural-scaling"].toInt()) != 1) type = 3; m_sizetype->setCurrentItem(type); slotSizeTypeChanged(type); if (type != 0) m_size->setValue(ival); if (!(value=opts["position"]).isEmpty()) { m_position->setPosition(value.latin1()); int pos = m_position->position(); m_vertgrp->setButton(pos/3); m_horizgrp->setButton(pos%3); } }
static int get_date( const char *str ) { KProcIO prc; prc << "/bin/date" << "+%s" << "-d" << str; prc.start( TDEProcess::Block, false ); TQString dstr; if (prc.readln( dstr, false, 0 ) < 0) return -1; return dstr.toInt(); }
TQString ArkUtils::getTimeStamp(const TQString &_month, const TQString &_day, const TQString &_yearOrTime) { // Make the date format sortable. // Month is in _month, day is in _day. // In _yearOrTime is either a year or a time. // If it's March, we'll see the year for all dates up to October 1999. // (five months' difference - e.g., if it's Apr, then get years up to Nov) char month[4]; strncpy(month, _month.ascii(), 3); month[3] = '\0'; int nMonth = getMonth(month); int nDay = _day.toInt(); kdDebug(1601) << "Month is " << nMonth << ", Day is " << nDay << endl; time_t t = time(0); if (t == -1) exit(1); struct tm *now = localtime(&t); int thisYear = now->tm_year + 1900; int thisMonth = now->tm_mon + 1; TQString year, timestamp; if (_yearOrTime.contains(":")) // it has a timestamp so we have to figure out the year { year.sprintf("%d", ArkUtils::getYear(nMonth, thisYear, thisMonth)); timestamp = _yearOrTime; } else { year = _yearOrTime; if (year.right(1) == " ") year = year.left(4); if (year.left(1) == " ") year = year.right(4); timestamp = "??:??"; } TQString retval; retval.sprintf("%s-%.2d-%.2d %s", year.utf8().data(), nMonth, nDay, timestamp.utf8().data()); return retval; }
void kSpaceSaver::readSettings() { KConfig *config = klock_config(); config->setGroup( "Settings" ); TQString str; str = config->readEntry( "Speed" ); if ( !str.isNull() ) speed = MAXSPEED - str.toInt(); else speed = DEFSPEED; warpinterval = config->readNumEntry( "WarpInterval", 15 ); delete config; }
void OptionNumericView::slotEditChanged(const TQString& txt) { if (blockSS) return; bool ok(false); int val(0); if (m_integer) val = txt.toInt(&ok); else val = (int)rint(txt.toFloat(&ok)*1000); if (ok) { blockSS = true; m_slider->setValue(val); blockSS = false; emit valueChanged(txt); } else { m_edit->selectAll(); TQApplication::beep(); } }
TQString ArkUtils::fixYear(const TQString& strYear) { // returns 4-digit year by guessing from two-char year string. // Remember: this is used for file timestamps. There probably aren't any // files that were created before 1970, so that's our cutoff. Of course, // in 2070 we'll have some problems.... if ( strYear.length() != 2 ) return strYear; bool ok; int y = strYear.toInt( &ok ); if ( ok ) { if ( y > 70 ) y += 1900; else y += 2000; return TQString::number( y ); } else return TQString(); }
void KPMarginPage::initPageSize(const TQString& ps, bool landscape) { // first retrieve the Qt values for page size and margins TQPrinter prt(TQPrinter::PrinterResolution); prt.setFullPage(true); prt.setPageSize((TQPrinter::PageSize)(ps.isEmpty() ? TDEGlobal::locale()->pageSize() : ps.toInt())); TQPaintDeviceMetrics metrics(&prt); float w = metrics.width(); float h = metrics.height(); unsigned int it, il, ib, ir; prt.margins( &it, &il, &ib, &ir ); float mt = it; float ml = il; float mb = ib; float mr = ir; if (driver() && m_usedriver ) { QString pageSize(ps); if (pageSize.isEmpty()) { DrListOption *o = (DrListOption*)driver()->findOption("PageSize"); if (o) pageSize = o->get("default"); } if (!pageSize.isEmpty()) { DrPageSize *dps = driver()->findPageSize(pageSize); if (dps) { w = dps->pageWidth(); h = dps->pageHeight(); mt = TQMAX( mt, dps->topMargin() ); ml = TQMAX( ml, dps->leftMargin() ); mb = TQMAX( mb, dps->bottomMargin() ); mr = TQMAX( mr, dps->rightMargin() ); } } } m_margin->setPageSize(w, h); m_margin->setOrientation(landscape ? KPrinter::Landscape : KPrinter::Portrait); m_margin->setDefaultMargins( mt, mb, ml, mr ); m_margin->setCustomEnabled(false); }
void ThumbnailProtocol::get(const KURL &url) { m_mimeType = metaData("mimeType"); kdDebug(7115) << "Wanting MIME Type:" << m_mimeType << endl; #ifdef THUMBNAIL_HACK // ### HACK bool direct=false; if (m_mimeType.isEmpty()) { kdDebug(7115) << "PATH: " << url.path() << endl; TQFileInfo info(url.path()); if (info.isDir()) { // We cannot process a directory error(TDEIO::ERR_IS_DIRECTORY,url.path()); return; } else if (!info.exists()) { // The file does not exist error(TDEIO::ERR_DOES_NOT_EXIST,url.path()); return; } else if (!info.isReadable()) { // The file is not readable! error(TDEIO::ERR_COULD_NOT_READ,url.path()); return; } m_mimeType = KMimeType::findByURL(url)->name(); kdDebug(7115) << "Guessing MIME Type:" << m_mimeType << endl; direct=true; // thumbnail: was probably called from Konqueror } #endif if (m_mimeType.isEmpty()) { error(TDEIO::ERR_INTERNAL, i18n("No MIME Type specified.")); return; } m_width = metaData("width").toInt(); m_height = metaData("height").toInt(); int iconSize = metaData("iconSize").toInt(); if (m_width < 0 || m_height < 0) { error(TDEIO::ERR_INTERNAL, i18n("No or invalid size specified.")); return; } #ifdef THUMBNAIL_HACK else if (!m_width || !m_height) { kdDebug(7115) << "Guessing height, width, icon size!" << endl; m_width=128; m_height=128; iconSize=128; } #endif if (!iconSize) iconSize = TDEGlobal::iconLoader()->currentSize(TDEIcon::Desktop); if (iconSize != m_iconSize) m_iconDict.clear(); m_iconSize = iconSize; m_iconAlpha = metaData("iconAlpha").toInt(); if (m_iconAlpha) m_iconAlpha = (m_iconAlpha << 24) | 0xffffff; TQImage img; TDEConfigGroup group( TDEGlobal::config(), "PreviewSettings" ); // ### KFMI bool kfmiThumb = false; if (group.readBoolEntry( "UseFileThumbnails", true )) { KService::Ptr service = KServiceTypeProfile::preferredService( m_mimeType, "KFilePlugin"); if ( service && service->isValid() && /*url.isLocalFile() && */ service->property("SupportsThumbnail").toBool()) { KFileMetaInfo info(url.path(), m_mimeType, KFileMetaInfo::Thumbnail); if (info.isValid()) { KFileMetaInfoItem item = info.item(KFileMimeTypeInfo::Thumbnail); if (item.isValid() && item.value().type() == TQVariant::Image) { img = item.value().toImage(); kdDebug(7115) << "using KFMI for the thumbnail\n"; kfmiThumb = true; } } } } ThumbCreator::Flags flags = ThumbCreator::None; if (!kfmiThumb) { kdDebug(7115) << "using thumb creator for the thumbnail\n"; TQString plugin = metaData("plugin"); #ifdef THUMBNAIL_HACK if (plugin.isEmpty()) { TDETrader::OfferList plugins = TDETrader::self()->query("ThumbCreator"); TQMap<TQString, KService::Ptr> mimeMap; for (TDETrader::OfferList::ConstIterator it = plugins.begin(); it != plugins.end(); ++it) { TQStringList mimeTypes = (*it)->property("MimeTypes").toStringList(); for (TQStringList::ConstIterator mt = mimeTypes.begin(); mt != mimeTypes.end(); ++mt) { if ((*mt)==m_mimeType) { plugin=(*it)->library(); break; } } if (!plugin.isEmpty()) break; } } kdDebug(7115) << "Guess plugin: " << plugin << endl; #endif if (plugin.isEmpty()) { error(TDEIO::ERR_INTERNAL, i18n("No plugin specified.")); return; } ThumbCreator *creator = m_creators[plugin]; if (!creator) { // Don't use KLibFactory here, this is not a TQObject and // neither is ThumbCreator KLibrary *library = KLibLoader::self()->library(TQFile::encodeName(plugin)); if (library) { newCreator create = (newCreator)library->symbol("new_creator"); if (create) creator = create(); } if (!creator) { error(TDEIO::ERR_INTERNAL, i18n("Cannot load ThumbCreator %1").arg(plugin)); return; } m_creators.insert(plugin, creator); } if (!creator->create(url.path(), m_width, m_height, img)) { error(TDEIO::ERR_INTERNAL, i18n("Cannot create thumbnail for %1").arg(url.path())); return; } flags = creator->flags(); } if (img.width() > m_width || img.height() > m_height) { double imgRatio = (double)img.height() / (double)img.width(); if (imgRatio > (double)m_height / (double)m_width) img = img.smoothScale( int(TQMAX((double)m_height / imgRatio, 1)), m_height); else img = img.smoothScale(m_width, int(TQMAX((double)m_width * imgRatio, 1))); } // ### FIXME #ifndef USE_KINSTANCE if (flags & ThumbCreator::DrawFrame) { TQPixmap pix; pix.convertFromImage(img); int x2 = pix.width() - 1; int y2 = pix.height() - 1; // paint a black rectangle around the "page" TQPainter p; p.begin( &pix ); p.setPen( TQColor( 48, 48, 48 )); p.drawLine( x2, 0, x2, y2 ); p.drawLine( 0, y2, x2, y2 ); p.setPen( TQColor( 215, 215, 215 )); p.drawLine( 0, 0, x2, 0 ); p.drawLine( 0, 0, 0, y2 ); p.end(); const TQBitmap *mask = pix.mask(); if ( mask ) // need to update it so we can see the frame { TQBitmap bitmap( *mask ); TQPainter painter; painter.begin( &bitmap ); painter.drawLine( x2, 0, x2, y2 ); painter.drawLine( 0, y2, x2, y2 ); painter.drawLine( 0, 0, x2, 0 ); painter.drawLine( 0, 0, 0, y2 ); painter.end(); pix.setMask( bitmap ); } img = pix.convertToImage(); } #endif if ((flags & ThumbCreator::BlendIcon) && TDEGlobal::iconLoader()->alphaBlending(TDEIcon::Desktop)) { // blending the mimetype icon in TQImage icon = getIcon(); int x = img.width() - icon.width() - 4; x = TQMAX( x, 0 ); int y = img.height() - icon.height() - 6; y = TQMAX( y, 0 ); KImageEffect::blendOnLower( x, y, icon, img ); } if (img.isNull()) { error(TDEIO::ERR_INTERNAL, i18n("Failed to create a thumbnail.")); return; } const TQString shmid = metaData("shmid"); if (shmid.isEmpty()) { #ifdef THUMBNAIL_HACK if (direct) { // If thumbnail was called directly from Konqueror, then the image needs to be raw //kdDebug(7115) << "RAW IMAGE TO STREAM" << endl; TQBuffer buf; if (!buf.open(IO_WriteOnly)) { error(TDEIO::ERR_INTERNAL, i18n("Could not write image.")); return; } img.save(&buf,"PNG"); buf.close(); data(buf.buffer()); } else #endif { TQByteArray imgData; TQDataStream stream( imgData, IO_WriteOnly ); //kdDebug(7115) << "IMAGE TO STREAM" << endl; stream << img; data(imgData); } } else { TQByteArray imgData; TQDataStream stream( imgData, IO_WriteOnly ); //kdDebug(7115) << "IMAGE TO SHMID" << endl; void *shmaddr = shmat(shmid.toInt(), 0, 0); if (shmaddr == (void *)-1) { error(TDEIO::ERR_INTERNAL, i18n("Failed to attach to shared memory segment %1").arg(shmid)); return; } if (img.width() * img.height() > m_width * m_height) { error(TDEIO::ERR_INTERNAL, i18n("Image is too big for the shared memory segment")); shmdt((char*)shmaddr); return; } if( img.depth() != 32 ) // TDEIO::PreviewJob and this code below completely img = img.convertDepth( 32 ); // ignores colortable :-/, so make sure there is none stream << img.width() << img.height() << img.depth() << img.hasAlphaBuffer(); memcpy(shmaddr, img.bits(), img.numBytes()); shmdt((char*)shmaddr); data(imgData); } finished(); }