diff options
Diffstat (limited to 'kioslave/mac')
-rw-r--r-- | kioslave/mac/AUTHORS | 1 | ||||
-rw-r--r-- | kioslave/mac/CMakeLists.txt | 38 | ||||
-rw-r--r-- | kioslave/mac/ChangeLog | 39 | ||||
-rw-r--r-- | kioslave/mac/Makefile.am | 23 | ||||
-rw-r--r-- | kioslave/mac/README | 65 | ||||
-rw-r--r-- | kioslave/mac/TODO | 14 | ||||
-rw-r--r-- | kioslave/mac/cr16-app-mac.png | bin | 679 -> 0 bytes | |||
-rw-r--r-- | kioslave/mac/cr32-app-mac.png | bin | 1342 -> 0 bytes | |||
-rw-r--r-- | kioslave/mac/kio_mac.cpp | 561 | ||||
-rw-r--r-- | kioslave/mac/kio_mac.h | 55 | ||||
-rw-r--r-- | kioslave/mac/mac.protocol | 73 |
11 files changed, 0 insertions, 869 deletions
diff --git a/kioslave/mac/AUTHORS b/kioslave/mac/AUTHORS deleted file mode 100644 index 78b940be4..000000000 --- a/kioslave/mac/AUTHORS +++ /dev/null @@ -1 +0,0 @@ -Jonathan Riddell, [email protected] diff --git a/kioslave/mac/CMakeLists.txt b/kioslave/mac/CMakeLists.txt deleted file mode 100644 index fbe700838..000000000 --- a/kioslave/mac/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -################################################# -# -# (C) 2010-2011 Serghei Amelian -# serghei (DOT) amelian (AT) gmail.com -# -# Improvements and feedback are welcome -# -# This file is released under GPL >= 2 -# -################################################# - -include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${TDE_INCLUDE_DIR} - ${TQT_INCLUDE_DIRS} -) - -link_directories( - ${TQT_LIBRARY_DIRS} -) - - -##### other data ################################ - -install( FILES mac.protocol DESTINATION ${SERVICES_INSTALL_DIR} ) -tde_install_icons( ) - - -##### kio_mac (module) ########################## - -set( target kio_mac ) - -tde_add_kpart( ${target} AUTOMOC - SOURCES kio_mac.cpp - LINK kio-shared - DESTINATION ${PLUGIN_INSTALL_DIR} -) - diff --git a/kioslave/mac/ChangeLog b/kioslave/mac/ChangeLog deleted file mode 100644 index 6c8f647ce..000000000 --- a/kioslave/mac/ChangeLog +++ /dev/null @@ -1,39 +0,0 @@ -10 Feb 2002 - Jonathan Riddell <[email protected]> - - v1.0 - - Nicer icon (thanks to ikons project) - - moved into KDE CVS kdenonbeta - - Everything seems to be stable, lets up the version number to prove me wrong - -1 Feb 2002 - Jonathan Riddell <[email protected]> - - v0.8 - - Now displays hidden files - - Locked files are copied as read only - - Nice icon - - sources now use autoconf/automake - - Fixed regular expression which matches some files as directories - - Aliases now display as links - -26 Jan 2002 - Jonathan Riddell <[email protected]> - - v0.7 - - Converts some HFS+ file types and application labels into mimetypes - - Added a SuSE Makefile - - Hopefully managed to get the SuSE RPMs working - - When copying files kio-mac now reports the amount progressed so - you can see how much has been copied - - Text files are now copies over in text mode by default - -24 Jan2002 - Jonathan Riddell <[email protected]> - - v0.6 - - It can now read empty directories without complaining - - Fixed the way data was being passed back to KDE which corrupted some files - - Fixed Makefile a bit - - Now reports the modified date to as good an acuracy as hpls -l gives it - - Found a truly bizarre bug while doing the above which broke - things a lot less than it should have - -21 Jan 2002 - Jonathan Riddell <[email protected]> - - v0.5 - - Initial release - - talks to hfs+ partitions using hptools - - surprisingly successful - diff --git a/kioslave/mac/Makefile.am b/kioslave/mac/Makefile.am deleted file mode 100644 index 37c94589e..000000000 --- a/kioslave/mac/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -## Makfile.am for kio_mac - -INCLUDES= $(all_includes) -AM_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor - -####### Files - -kde_module_LTLIBRARIES = kio_mac.la - -kio_mac_la_SOURCES = kio_mac.cpp -kio_mac_la_LIBADD = -lkio -kio_mac_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) - -noinst_HEADERS = kio_mac.h - -kdelnk_DATA = mac.protocol -kdelnkdir = $(kde_servicesdir) - -METASOURCES = AUTO -KDE_ICON = AUTO - -messages: - $(XGETTEXT) *.cpp -o $(podir)/kio_mac.pot diff --git a/kioslave/mac/README b/kioslave/mac/README deleted file mode 100644 index bb907dd9c..000000000 --- a/kioslave/mac/README +++ /dev/null @@ -1,65 +0,0 @@ -From the hfsplus man page: - - "HFS+, also known as the Macintosh Extended Format, was - introduced by Apple Computer in 1998 with the release of - MacOS 8.1. It contains many improvements over the old HFS - file system, most notably the ability to allocate up to - 2^64 blocks, resulting in much more efficient storage of - many small files on large disks." - -This kio slave lets you read an HFS+ partition from konqueror -or any other KDE file dialogue. It uses hfsplus tools so you will -need these installed for it to work. - -TO INSTALL - -Read the INSTALL file. - - -NOTES - -Just enter mac:/ into Konqueror and you should see the contents of -your MacOS partition. Actually you'll probably get an error message -saying you havn't specified the right partition. Enter something -like mac:/?dev=/dev/hda2 to specify the partition (if you don't know -which partition MacOS is on you can probably guess by changing hda2 to -hda3 and so on or use the print command from mac-fdisk. The partition -will be used the next time so you don't have to specify it each time. - -Hfsplus tools let you see the file and copy data from the HFS+ -partition but not to copy data to it or change the filenames or such like. - -HFS+ actually keeps two files for every one you see (called forks), a -resource fork and a data fork. The default copy mode when you're -copying files across to you native drive is raw data which means it -just copies the data. Text files are copied in text mode (same as raw -format but changes the line endings to be Unix friendly and gets rid -of some funny extra characters - strongly advised for text files) -unless you specify otherwise. You can also copy the files across in -Mac Binary II format or specify text or raw format with another query: -mac:/myfile?mode=b or mac:/myfile?mode=t See man hpcopy for more. - -Note that you need permissions to read your HFS+ partition. How you -get this depends on your distribution, do a ls -l /dev/hdaX on it to -see. Under Debian you have to be in the disk group (just add your -username to the end of the entry in /etc/group). - -File types are done with matching the HFS+ type and application label -and then by extentions. See the source for the exact matching that -happens and feel free to suggest improvements. - -For some reason some directories in MacOS end in a funny tall f -character. This seems to confuse hfstools. - -You can't easiily use the command line tools while you are browsing -using kio-mac in Konqueror. Konqueror continuously refreshes it's -view which mean hpmount is being called every few seconds. Click on -Konqueror's home button before using the tools yourself on the command -line. - -Hidden files are now shown all the time. Apparantly Konqueror only -considers files with a dot at the front of the name to be hidden which -is a bit system dependant. - -Please e-mail me with any comments, problems and success stories: -Jonathan Riddell, [email protected] diff --git a/kioslave/mac/TODO b/kioslave/mac/TODO deleted file mode 100644 index e94d88254..000000000 --- a/kioslave/mac/TODO +++ /dev/null @@ -1,14 +0,0 @@ -FIXMEs: - Amazingly, none that I can think of - -grep TODO kio_mac.cpp - //TODO this means dev=foo must be the last argument in the query - //TODO this error interrupts the user when typing ?dev=foo on each letter of foo - //TODO are there any more characters to escape? - QString theSize(fileRE.group(4)); //TODO: this is data size, what about resource size? - -Future things: - - maybe make it work with plain old hfs partitions - - possibly use libhfsp directly - - A Friend suggested reading the resource data for the icon to display - advanced I think. - - Follow symlinks/aliases (requires reading the resource fork as well) diff --git a/kioslave/mac/cr16-app-mac.png b/kioslave/mac/cr16-app-mac.png Binary files differdeleted file mode 100644 index 930694eab..000000000 --- a/kioslave/mac/cr16-app-mac.png +++ /dev/null diff --git a/kioslave/mac/cr32-app-mac.png b/kioslave/mac/cr32-app-mac.png Binary files differdeleted file mode 100644 index 87df6fb85..000000000 --- a/kioslave/mac/cr32-app-mac.png +++ /dev/null diff --git a/kioslave/mac/kio_mac.cpp b/kioslave/mac/kio_mac.cpp deleted file mode 100644 index a7fc4da0f..000000000 --- a/kioslave/mac/kio_mac.cpp +++ /dev/null @@ -1,561 +0,0 @@ -/*************************************************************************** - kio_mac.cpp - ------------------- - copyright : (C) 2002 Jonathan Riddell - email : [email protected] - version : 1.0.1 - release date : 19 July 2002 - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#define PARTITION "/dev/hda11" - -#include <kinstance.h> -#include <kdebug.h> -#include <klocale.h> -#include <kconfig.h> -#include <tqstring.h> -#include <tqregexp.h> - -#include <sys/stat.h> -#include <stdlib.h> -#include <iostream> -#include <time.h> - -#include "kio_mac.moc" - -using namespace TDEIO; - -extern "C" { - int KDE_EXPORT kdemain(int, char **argv) { - TDEInstance instance("kio_mac"); - MacProtocol slave(argv[2], argv[3]); - slave.dispatchLoop(); - return 0; - } -} - -MacProtocol::MacProtocol(const TQCString &pool, const TQCString &app) - : TQObject(), SlaveBase("mac", pool, app) { -/* logFile = new TQFile("/home/jr/logfile"); - logFile->open(IO_ReadWrite | IO_Append); - logStream = new TQTextStream(logFile); - *logStream << "Start Macprotocol()" << endl; - */ -} - -MacProtocol::~MacProtocol() { -/* *logStream << "destructor ~MacProtocol()" << endl; - logFile->close(); - delete logFile; - logFile = 0; - delete logStream; - logStream = 0; -*/ - delete myTDEProcess; - myTDEProcess = 0L; -} - -//get() called when a file is to be read -void MacProtocol::get(const KURL& url) { - TQString path = prepareHP(url); //mount and change to correct directory - return the filename - TQString query = url.query(); - TQString mode("-"); - TQString mime; - processedBytes = 0; - - //Find out the size and if it's a text file - UDSEntry entry = doStat(url); - UDSEntry::Iterator it; - for(it = entry.begin(); it != entry.end(); ++it) { - if ((*it).m_uds == TDEIO::UDS_MIME_TYPE) { - mime = (*it).m_str; - } - if ((*it).m_uds == TDEIO::UDS_SIZE) { - totalSize((*it).m_long); - } - } - - //find out if a mode has been specified in the query e.g. ?mode=t - //or if it's a text file then set the mode to text - int modepos = query.find("mode="); - int textpos = mime.find("text"); - if (modepos != -1) { - mode += query.mid(modepos + 5, 1); - if (mode != "-r" && mode != "-b" && mode != "-m" && mode != "-t" && mode != "-a") { - error(ERR_SLAVE_DEFINED, i18n("Unknown mode")); - } - } else if (textpos != -1) { - mode += "t"; - } else { - mode += "r"; - } - - //now we can read the file - myTDEProcess = new TDEProcess(); - - *myTDEProcess << "hpcopy" << mode << path << "-"; - - //data is now sent directly from the slot - connect(myTDEProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(slotSetDataStdOutput(TDEProcess *, char *, int))); - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - if (!myTDEProcess->normalExit() || !(myTDEProcess->exitStatus() == 0)) { - error(ERR_SLAVE_DEFINED, - i18n("There was an error with hpcopy - please ensure it is installed")); - return; - } - - //clean up - delete myTDEProcess; myTDEProcess = 0; - //finish - data(TQByteArray()); - finished(); -} - -//listDir() called when the user is looking at a directory -void MacProtocol::listDir(const KURL& url) { - TQString filename = prepareHP(url); - - if (filename.isNull()) { - error(ERR_CANNOT_LAUNCH_PROCESS, i18n("No filename was found")); - } else { - myTDEProcess = new TDEProcess(); - *myTDEProcess << "hpls" << "-la" << filename; - - standardOutputStream = TQString::null; - connect(myTDEProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - if ((!myTDEProcess->normalExit()) || (!myTDEProcess->exitStatus() == 0)) { - error(ERR_SLAVE_DEFINED, - i18n("There was an error with hpls - please ensure it is installed")); - } - - //clean up - delete myTDEProcess; myTDEProcess = 0; - disconnect(myTDEProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - UDSEntry entry; - if (!standardOutputStream.isEmpty()) { - TQTextStream in(&standardOutputStream, IO_ReadOnly); - TQString line = in.readLine(); //throw away top file which shows current directory - line = in.readLine(); - - while (line != NULL) { - //1.0.4 puts this funny line in sometimes, we don't want it - if (line.contains("Thread ") == 0) { - entry = makeUDS(line); - listEntry(entry, false); - } - line = in.readLine(); - } - }//if standardOutputStream != null - - listEntry(entry, true); - finished(); - - }//if filename == null -} - -//stat() called to see if it's a file or directory, called before listDir() or get() -void MacProtocol::stat(const KURL& url) { - statEntry(doStat(url)); - finished(); -} - -//doStat(), does all the work that stat() needs -//it's been separated out so it can be called from get() which -//also need information -TQValueList<TDEIO::UDSAtom> MacProtocol::doStat(const KURL& url) { - TQString filename = prepareHP(url); - - if (filename.isNull()) { - error(ERR_SLAVE_DEFINED, i18n("No filename was found in the URL")); - } else if (! filename.isEmpty()) { - myTDEProcess = new KShellProcess(); - - *myTDEProcess << "hpls" << "-ld" << filename; - - standardOutputStream = TQString::null; - connect(myTDEProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - if ((!myTDEProcess->normalExit()) || (!myTDEProcess->exitStatus() == 0)) { - error(ERR_SLAVE_DEFINED, - i18n("hpls did not exit normally - please ensure you have installed the hfsplus tools")); - } - - //clean up - delete myTDEProcess; myTDEProcess = 0; - disconnect(myTDEProcess, TQT_SIGNAL(receivedStdout(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - if (standardOutputStream.isEmpty()) { - filename.replace("\\ ", " "); //get rid of escapes - filename.replace("\\&", "&"); //mm, slashes... - filename.replace("\\!", "!"); - filename.replace("\\(", "("); - filename.replace("\\)", ")"); - error(ERR_DOES_NOT_EXIST, filename); - } else { - //remove trailing \n - TQString line = standardOutputStream.left(standardOutputStream.length()-1); - UDSEntry entry = makeUDS(line); - return entry; - } - } else { //filename is empty means we're looking at root dir - //we don't have a listing for the root directory so here's a dummy one - UDSEntry entry = makeUDS("d 0 item Jan 01 2000 /"); - return entry; - }//if filename == null - - return TQValueList<TDEIO::UDSAtom>(); -} - -//prepareHP() called from get() listDir() and stat() -//(re)mounts the partition and changes to the appropriate directory -TQString MacProtocol::prepareHP(const KURL& url) { - TQString path = url.path(-1); - if (path.left(1) == "/") { - path = path.mid(1); // strip leading slash - } - - //find out if a device has been specified in the query e.g. ?dev=/dev/fd0 - //or in the config file (query device entries are saved to config file) - TQString device; - TDEConfig* config = new TDEConfig("macrc"); - - TQString query = url.query(); - int modepos = query.find("dev="); - if (modepos == -1) { - //no device specified, read from config or go with #define PARTITION - device = config->readEntry("device",PARTITION); - } else { - //TODO this means dev=foo must be the last argument in the query - device = query.mid(modepos + 4); - config->writeEntry("device",device); - } - delete config; config = 0; - - //first we run just hpmount and check the output to see if it's version 1.0.2 or 1.0.4 - myTDEProcess = new TDEProcess(); - *myTDEProcess << "hpmount"; - standardOutputStream = TQString::null; - connect(myTDEProcess, TQT_SIGNAL(receivedStderr(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - bool version102 = true; - - if (standardOutputStream.contains("options") != 0) { - version102 = false; - } - - delete myTDEProcess; myTDEProcess = 0; - disconnect(myTDEProcess, TQT_SIGNAL(receivedStderr(TDEProcess *, char *, int)), - this, TQT_SLOT(slotGetStdOutput(TDEProcess *, char *, int))); - - //now mount the drive - myTDEProcess = new TDEProcess(); - if (version102) { - *myTDEProcess << "hpmount" << device; - } else { - *myTDEProcess << "hpmount" << "-r" << device; - } - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - if ((!myTDEProcess->normalExit()) || (!myTDEProcess->exitStatus() == 0)) { - //TODO this error interrupts the user when typing ?dev=foo on each letter of foo - error(ERR_SLAVE_DEFINED, - i18n("hpmount did not exit normally - please ensure that hfsplus utils are installed,\n" - "that you have permission to read the partition (ls -l /dev/hdaX)\n" - "and that you have specified the correct partition.\n" - "You can specify partitions by adding ?dev=/dev/hda2 to the URL.")); - return NULL; - } - - //clean up - delete myTDEProcess; myTDEProcess = 0; - - //escape any funny characters - //TODO are there any more characters to escape? - path.replace(" ", "\\ "); - path.replace("&", "\\&"); - path.replace("!", "\\!"); - path.replace("(", "\\("); - path.replace(")", "\\)"); - - //then change to the right directory - int s; TQString dir; - s = path.find('/'); - while (s != -1) { - dir = path.left(s); - path = path.mid(s+1); - - myTDEProcess = new TDEProcess(); - *myTDEProcess << "hpcd" << dir; - - myTDEProcess->start(TDEProcess::Block, TDEProcess::All); - - if ((!myTDEProcess->normalExit()) || (!myTDEProcess->exitStatus() == 0)) { - error(ERR_SLAVE_DEFINED, - i18n("hpcd did not exit normally - please ensure it is installed")); - return NULL; - } - - //clean up - delete myTDEProcess; myTDEProcess = 0; - - s = path.find('/'); - } - - return path; -} - -//makeUDS() takes a line of output from hpls -l and converts it into -// one of these UDSEntrys to return -//called from listDir() and stat() -TQValueList<TDEIO::UDSAtom> MacProtocol::makeUDS(const TQString& _line) { - TQString line(_line); - UDSEntry entry; - - //is it a file or a directory - TQRegExp dirRE("^d. +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +(.*)"); - TQRegExp fileRE("^([f|F]). +(....)/(....) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +(.*)"); - if (dirRE.exactMatch(line)) { - UDSAtom atom; - atom.m_uds = TDEIO::UDS_NAME; - atom.m_str = dirRE.cap(6); - entry.append(atom); - - atom.m_uds = TDEIO::UDS_MODIFICATION_TIME; - atom.m_long = makeTime(dirRE.cap(4), dirRE.cap(3), dirRE.cap(5)); - entry.append(atom); - - atom.m_uds = TDEIO::UDS_FILE_TYPE; - atom.m_long = S_IFDIR; - entry.append(atom); - - atom.m_uds = TDEIO::UDS_ACCESS; - atom.m_long = 0755; - entry.append(atom); - - } else if (fileRE.exactMatch(line)) { - UDSAtom atom; - atom.m_uds = TDEIO::UDS_NAME; - atom.m_str = fileRE.cap(9); - entry.append(atom); - - atom.m_uds = TDEIO::UDS_SIZE; - TQString theSize(fileRE.cap(4)); //TODO: this is data size, what about resource size? - atom.m_long = theSize.toLong(); - entry.append(atom); - - atom.m_uds = TDEIO::UDS_MODIFICATION_TIME; - atom.m_long = makeTime(fileRE.cap(7), fileRE.cap(6), fileRE.cap(8)); - entry.append(atom); - - atom.m_uds = TDEIO::UDS_ACCESS; - if (TQString(fileRE.cap(1)) == TQString("F")) { //if locked then read only - atom.m_long = 0444; - } else { - atom.m_long = 0644; - } - entry.append(atom); - - atom.m_uds = TDEIO::UDS_MIME_TYPE; - TQString mimetype = getMimetype(fileRE.cap(2),fileRE.cap(3)); - atom.m_str = mimetype.local8Bit(); - entry.append(atom); - - // Is it a file or a link/alias, just make aliases link to themselves - if (TQString(fileRE.cap(2)) == TQString("adrp") || - TQString(fileRE.cap(2)) == TQString("fdrp")) { - atom.m_uds = TDEIO::UDS_FILE_TYPE; - atom.m_long = S_IFREG; - entry.append(atom); - - atom.m_uds = TDEIO::UDS_LINK_DEST; - atom.m_str = fileRE.cap(9); //I have a file called "Mozilla alias" the name - // of which displays funny because of this. - // No idea why. Same for other kioslaves. A font thing? - entry.append(atom); - } else { - atom.m_uds = TDEIO::UDS_FILE_TYPE; - atom.m_long = S_IFREG; - entry.append(atom); - } - } else { - error(ERR_INTERNAL, i18n("hpls output was not matched")); - } //if match dirRE or fileRE - - return entry; -} - -//slotGetStdOutput() grabs output from the hp commands -// and adds it to the buffer -void MacProtocol::slotGetStdOutput(TDEProcess*, char *s, int len) { - standardOutputStream += TQString::fromLocal8Bit(s, len); -} - -//slotSetDataStdOutput() is used during hpcopy to give -//standard output to KDE -void MacProtocol::slotSetDataStdOutput(TDEProcess*, char *s, int len) { - processedBytes += len; - processedSize(processedBytes); - TQByteArray array; - array.setRawData(s, len); - data(array); - array.resetRawData(s, len); -} - -//makeTime() takes in the date output from hpls -l -//and returns as good a timestamp as we're going to get -int MacProtocol::makeTime(TQString mday, TQString mon, TQString third) { - int year; int month; int day; - int hour; int minute; - - //find the month - if (mon == "Jan") { month = 1; } - else if (mon == "Feb") { month = 2; } - else if (mon == "Mar") { month = 3; } - else if (mon == "Apr") { month = 4; } - else if (mon == "May") { month = 5; } - else if (mon == "Jun") { month = 6; } - else if (mon == "Jul") { month = 7; } - else if (mon == "Aug") { month = 8; } - else if (mon == "Sep") { month = 9; } - else if (mon == "Oct") { month = 10; } - else if (mon == "Nov") { month = 11; } - else if (mon == "Dec") { month = 12; } - else { - error(ERR_INTERNAL, i18n("Month output from hpls -l not matched")); - month = 13; - } - - //if the file is recent (last 12 months) hpls gives us the time, - // otherwise it only prints the year - TQRegExp hourMin("(..):(..)"); - if (hourMin.exactMatch(third)) { - TQDate currentDate(TQDate::currentDate()); - - if (month > currentDate.month()) { - year = currentDate.year() - 1; - } else { - year = currentDate.year(); - } - TQString h(hourMin.cap(1)); - TQString m(hourMin.cap(2)); - hour = h.toInt(); - minute = m.toInt(); - } else { - year = third.toInt(); - hour = 0; - minute = 0; - }// if hour:min or year - - day = mday.toInt(); - - //check it's valid - if ( (!TQDate::isValid(year, month, day)) || (!TQTime::isValid(hour, minute, 0) ) ) { - error(ERR_INTERNAL, i18n("Could not parse a valid date from hpls")); - } - - //put it together and work it out - TQDate fileDate(year, month, day); - TQTime fileTime(hour, minute); - TQDateTime fileDateTime(fileDate, fileTime); - - return fileDateTime.toTime_t(); -} - -TQString MacProtocol::getMimetype(TQString type, TQString app) { - if (type == TQString("TEXT") && app == TQString("ttxt")) { - return TQString("text/plain"); - } else if (type == TQString("TEXT") && app == TQString("udog")) { - return TQString("text/html"); - } else if (type == TQString("svgs")) { - return TQString("text/xml"); - } else if (type == TQString("ZIP ")) { - return TQString("application/zip"); - } else if (type == TQString("pZip")) { - return TQString("application/zip"); - } else if (type == TQString("APPL")) { - return TQString("application/x-executable"); - } else if (type == TQString("MooV")) { - return TQString("video/quicktime"); - } else if (type == TQString("TEXT") && app == TQString("MSWD")) { - return TQString("application/vnd.ms-word"); - } else if (type == TQString("PDF ")) { - return TQString("application/pdf"); - } else if (app == TQString("CARO")) { - return TQString("application/pdf"); - } else if (type == TQString("SIT5")) { - return TQString("application/x-stuffit"); - } else if (type == TQString("SITD")) { - return TQString("application/x-stuffit"); - } else if (type == TQString("SIT!")) { - return TQString("application/x-stuffit"); - } else if (app == TQString("SIT!")) { - return TQString("application/x-stuffit"); - } else if (type == TQString("RTFf")) { - return TQString("text/rtf"); - } else if (type == TQString("GIFf")) { - return TQString("image/gif"); - } else if (type == TQString("JPEG")) { - return TQString("image/jpeg"); - } else if (type == TQString("PNGf")) { - return TQString("image/png"); - } else if (type == TQString("XBMm")) { - return TQString("image/x-xbm"); - } else if (type == TQString("EPSF")) { - return TQString("image/x-epsf"); - } else if (type == TQString("TIFF")) { - return TQString("image/tiff"); - } else if (type == TQString("PICT")) { - return TQString("image/pict"); - } else if (type == TQString("TPIC")) { - return TQString("image/x-targa"); - } else if (type == TQString("ULAW")) { - return TQString("audio/basic"); - } else if (type == TQString("AIFF")) { - return TQString("audio/x-aiff"); - } else if (type == TQString("WAVE")) { - return TQString("audio/x-wav"); - } else if (type == TQString("FFIL") && app == TQString("DMOV")) { - return TQString("application/x-font"); - } else if (type == TQString("XLS3")) { - return TQString("application/vnd.ms-excel"); - } else if (type == TQString("XLS4")) { - return TQString("application/vnd.ms-excel"); - } else if (type == TQString("XLS5")) { - return TQString("application/vnd.ms-excel"); - } else if (app == TQString("MSWD")) { - return TQString("application/vnd.ms-word"); - } else if (type == TQString("TEXT")) { - return TQString("text/plain"); - } else if (app == TQString("ttxt")) { - return TQString("text/plain"); - } - return TQString("application/octet-stream"); -} - - diff --git a/kioslave/mac/kio_mac.h b/kioslave/mac/kio_mac.h deleted file mode 100644 index 2501791b2..000000000 --- a/kioslave/mac/kio_mac.h +++ /dev/null @@ -1,55 +0,0 @@ -/*************************************************************************** - mac.cpp - ------------------- - copyright : (C) 2002 Jonathan Riddell - email : [email protected] - version : 1.0 - release date : 10 Feburary 2002 - ***************************************************************************/ - -/*************************************************************************** - * * - * 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. * - * * - ***************************************************************************/ - -#include <kio/slavebase.h> -#include <kio/global.h> -#include <kurl.h> -#include <kprocess.h> - -#include <tqstring.h> -#include <tqcstring.h> -#include <tqfile.h> -#include <tqtextstream.h> - -class MacProtocol : public TQObject, public TDEIO::SlaveBase -{ - Q_OBJECT -public: - MacProtocol(const TQCString &pool, const TQCString &app); - ~MacProtocol(); - virtual void get(const KURL& url ); - virtual void listDir(const KURL& url); - virtual void stat(const KURL& url); -protected slots: - void slotGetStdOutput(TDEProcess*, char*, int); - void slotSetDataStdOutput(TDEProcess*, char *s, int len); -protected: - TQString prepareHP(const KURL& _url); - TQValueList<TDEIO::UDSAtom> makeUDS(const TQString& _line); - int makeTime(TQString mday, TQString mon, TQString third); - TQString getMimetype(TQString type, TQString app); - TQValueList<TDEIO::UDSAtom> doStat(const KURL& url); - - TDEIO::filesize_t processedBytes; - TQString standardOutputStream; - TDEProcess* myTDEProcess; - - //for debugging - //TQFile* logFile; - //TQTextStream* logStream; -}; diff --git a/kioslave/mac/mac.protocol b/kioslave/mac/mac.protocol deleted file mode 100644 index cef77621d..000000000 --- a/kioslave/mac/mac.protocol +++ /dev/null @@ -1,73 +0,0 @@ -[Protocol] -exec=kio_mac -protocol=mac -input=none -output=filesystem -reading=true -listing=Name,Type,Size,Date -defaultMimetype=application/octet-stream -Description=A kioslave for MacOS HFS+ partitions -Description[af]='n Kioslave vir MacOS HFS+ partisies -Description[be]=Kioslave для раздзелаў MacOS HFS+ -Description[bn]=ম্যাক-ও-এস HFS+ পার্টিশন-এর জন্য একটি kioslave -Description[br]=Ur c'hioslave evit ar parzhadurioù MacOS HFS+ -Description[bs]=kioslave za MacOS HFS+ particije -Description[ca]=Un kioslave per a particions MacOS HFS+ -Description[cs]=Pomocný protokol pro diskové oddíly MacOS HFS+ -Description[csb]=Plugins protokòłu dlô particëji HFS+ systemë MacOS -Description[da]=En kioslave for MacOS HFS+ partitioner -Description[de]=Ein-/Ausgabemodul für MacOS HFS+ Partitionen -Description[el]=Ένας kioslave για κατατμήσεις MacOS HFS+ -Description[eo]=K-enel-sklavo por MacOS HFS+ subdiskoj -Description[es]=Un kioslave para particiones MacOS HFS+ -Description[et]=MacOS-i HFS+-partitsioonide IO-moodul -Description[eu]=MacOS HFS+ zatiketetarako kioslavea -Description[fa]=یک kioslave برای افرازهای HFS+ سیستم عامل مکینتاش -Description[fi]=Liitäntä MacOS HFS+ osioinneille -Description[fr]=Un module d'entrées / sorties pour les partitions MacOS HFS+ -Description[fy]=In kioslave foar MacOS HFS+-partities -Description[ga]=kioslave le haghaidh deighiltí MacOS HFS+ -Description[gl]=Un kioslave para particións MacOS HFS+ -Description[he]=ממשק kioslave עבור מחיצות MacOS HFS+ -Description[hi]=मॅक-ओएस एचएफ़एस+ पार्टीशनों के लिए के-आई-ओ-स्लेव -Description[hr]=Kioslave za MacOS HFS+ particije -Description[hu]=KDE-protokoll MacOS HFS+ partíciók kezeléséhez -Description[is]=kioslave fyrir MacOS HFS+ disksneiðar -Description[it]=Un kioslave per partizioni MacOS HFS+ -Description[ja]=MacOS HFS+ パーティションのための kioslave -Description[ka]=kioslave MacOS HFS+ პარტიციებისთვის -Description[kk]=MacOS HFS+ файл жүйесінің енгізу-шығару модулі -Description[km]=kioslave សម្រាប់ភាគ MacOS HFS+ -Description[lt]=Kiovergas MacOS HFS+ dalmenims -Description[lv]=KIO vergs MacOS HFS+ partīcijām -Description[mk]=kio-служител за HFS+ партиции од MacOS -Description[ms]=Hamba kio untuk MacOS HFS+ petak -Description[nb]=En kioskslave for MacOS HFS+-partisjoner -Description[nds]=En In-/Utgaavdeenst för MacOS-HFS+-Partitschonen -Description[ne]=MacOS HFS+ विभाजनका लागि किओस्लेभ -Description[nl]=Een kioslave voor MacOS HFS+-partities -Description[nn]=Ein IU-slave for MacOS HFS+-partisjonar -Description[pa]=MacOS HFS+ ਭਾਗਾਂ ਲਈ kioslave -Description[pl]=Wtyczka protokołu dla partycji HFS+ systemu MacOS -Description[pt]=Um 'kioslave' para partições MacOS HFS+ -Description[pt_BR]=Um protocolo para as partições HFS+ do MacOS -Description[ro]=Un dispozitiv de I/E pentru partiții HFS+ MacOS -Description[ru]=Модуль ввода-вывода для файловой системы MacOS HFS+ -Description[rw]=Kio-umugaragu ya MacOS HFS+ibicedisiki -Description[se]=SO-šláva MacOS HFS+-partišuvnnaid várás -Description[sk]=kioslave pre MacOS HFS+ -Description[sl]=kioslave za razdelke MacOS HFS+ -Description[sr]=Kioslave за MacOS-ове HFS+ партиције -Description[sr@Latn]=Kioslave za MacOS-ove HFS+ particije -Description[sv]=En I/O-slav för MacOS HFS+ partitioner -Description[ta]=MacOS HFS+ partitionsக்கு ஒரு க்யோஸ்லேவ் -Description[th]=ตัวนำข้อมูลเข้า-ออกสำหรับพาร์ติชั่นที่ใช้ระบบไฟล์ HFS+ ของ MacOS -Description[tr]=MacOS HFS+ bölümleri için kioslave -Description[tt]=MacOS HFS+ bülemnäre öçen birem sistemeneñ modulı -Description[uk]=Підлеглий B/В для розділів MacOS HFS+ -Description[vi]=A kioslave (đày tớ vào ra KDE) cho MacOS HFS và các phân vùng -Description[wa]=On kioslave po MacOS HFS + pårticions -Description[zh_CN]=MacOS HFS+ 分区的 KIO 仆人 -Description[zh_TW]=用於 MacOS HFS+ 分割區的 kioslave -Icon=mac -DocPath=kioslave/mac.html |