diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2009-09-16 20:46:06 +0000 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2010-09-30 07:13:59 +0000 |
commit | 8cc8eb1ca0ee78a62a14187f1a45ee676d20ece8 (patch) | |
tree | 02f8a26f0a0f55fdc93c8b0c206adc437da06900 | |
parent | 4eb59b62e96fcb850bd0f291a5e8f2f7c6bdcf3c (diff) |
I hate you Apple, and your tiny little iframes, too.
-rw-r--r-- | Cydia.app/package.html | 14 | ||||
-rw-r--r-- | Cydia.app/package.js | 26 | ||||
-rw-r--r-- | Cydia.mm | 69 | ||||
-rw-r--r-- | control | 2 |
4 files changed, 53 insertions, 58 deletions
diff --git a/Cydia.app/package.html b/Cydia.app/package.html index 317f41b..5bd2f4c 100644 --- a/Cydia.app/package.html +++ b/Cydia.app/package.html @@ -9,6 +9,20 @@ <script type="text/javascript" src="localize.js"></script> <base target="_blank"/> +<script type="text/javascript"> + var onframe = function(id, name) { + var node = document.getElementById(id); + var frame = window.frames[name]; + + try { + node.height = frame.document.body.scrollHeight; + } catch (e) { + node.height = 370; + node.width = 320; + } + }; +</script> + <!--script type="text/javascript"> var count = -1; var loaded = function() { diff --git a/Cydia.app/package.js b/Cydia.app/package.js index 104bd8c..6ec06cf 100644 --- a/Cydia.app/package.js +++ b/Cydia.app/package.js @@ -78,7 +78,16 @@ var special_ = function () { if (typeof value.notice == "undefined") $(".notice").addClass("deleted"); else - $("#notice-src").src(value.notice); + $("#notice-src")[0].outerHTML = '<iframe' + + ' class="notice"' + + ' id="notice-src"' + + ' frameborder="0"' + + ' width="320"' + + ' height="0"' + + ' target="_top"' + + ' src="' + $.xml(value.notice) + '"' + + ' onload="onframe(' + "'notice-src', 'notice'" + ')"' + + '></iframe>'; if (typeof value.rating == "undefined") $(".rating").addClass("deleted"); @@ -201,7 +210,17 @@ var special_ = function () { $(".depiction").addClass("deleted"); else { $(".description").addClass("deleted"); - $("#depiction-src").src(depiction); + + $("#depiction-src")[0].outerHTML = '<iframe' + + ' class="depiction"' + + ' id="depiction-src"' + + ' frameborder="0"' + + ' width="320"' + + ' height="0"' + + ' target="_top"' + + ' src="' + $.xml(depiction) + '"' + + ' onload="onframe(' + "'depiction-src', 'depiction'" + ')"' + + '></iframe>'; } var description = package.longDescription; @@ -308,6 +327,7 @@ var special = function () { ' width="320"' + ' height="0"' + ' target="_top"' + + ' onload="onframe(' + "'notice-src', 'notice'" + ')"' + '></iframe>'; var depiction = $("#depiction-src"); @@ -319,7 +339,7 @@ var special = function () { ' width="320"' + ' height="0"' + ' target="_top"' + - ' onload_="loaded()"' + + ' onload="onframe(' + "'depiction-src', 'depiction'" + ')"' + '></iframe>'; special_(); @@ -189,56 +189,6 @@ void PrintTimes() { #define _end } /* }}} */ -/* Objective-C Handle<> {{{ */ -template <typename Type_> -class _H { - typedef _H<Type_> This_; - - private: - Type_ *value_; - - _finline void Retain_() { - if (value_ != nil) - [value_ retain]; - } - - _finline void Clear_() { - if (value_ != nil) - [value_ release]; - } - - public: - _finline _H(const This_ &rhs) : - value_(rhs.value_ == nil ? nil : [rhs.value_ retain]) - { - } - - _finline _H(Type_ *value = NULL, bool mended = false) : - value_(value) - { - if (!mended) - Retain_(); - } - - _finline ~_H() { - Clear_(); - } - - _finline operator Type_ *() const { - return value_; - } - - _finline This_ &operator =(Type_ *value) { - if (value_ != value) { - Type_ *old(value_); - value_ = value; - Retain_(); - if (old != nil) - [old release]; - } return *this; - } -}; -/* }}} */ #define _pooled _H<NSAutoreleasePool> _pool([[NSAutoreleasePool alloc] init], true); @@ -426,15 +376,15 @@ static const CFStringCompareFlags LaxCompareFlags_ = kCFCompareCaseInsensitive | #define TraceLogging (1 && !ForRelease) #define HistogramInsertionSort (0 && !ForRelease) #define ProfileTimes (0 && !ForRelease) -#define ForSaurik (0 && !ForRelease) +#define ForSaurik (1 && !ForRelease) #define LogBrowser (0 && !ForRelease) #define TrackResize (0 && !ForRelease) -#define ManualRefresh (0 && !ForRelease) +#define ManualRefresh (1 && !ForRelease) #define ShowInternals (0 && !ForRelease) #define IgnoreInstall (0 && !ForRelease) #define RecycleWebViews 0 -#define RecyclePackageViews 1 -#define AlwaysReload (0 && !ForRelease) +#define RecyclePackageViews (1 && ForRelease) +#define AlwaysReload (1 && !ForRelease) #if !TraceLogging #undef _trace @@ -3680,6 +3630,8 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { + (NSString *) webScriptNameForSelector:(SEL)selector { if (selector == @selector(close)) return @"close"; + else if (selector == @selector(getInstalledPackages)) + return @"getInstalledPackages"; else if (selector == @selector(getPackageById:)) return @"getPackageById"; else if (selector == @selector(setAutoPopup:)) @@ -3718,6 +3670,15 @@ bool DepSubstrate(const pkgCache::VerIterator &iterator) { return [feature isEqualToString:@"window.open"]; } +- (NSArray *) getInstalledPackages { + NSArray *packages([[Database sharedInstance] packages]); + NSMutableArray *installed([NSMutableArray arrayWithCapacity:[packages count]]); + for (Package *package in installed) + if ([package installed] != nil) + [installed addObject:package]; + return installed; +} + - (Package *) getPackageById:(NSString *)id { Package *package([[Database sharedInstance] packageWithName:id]); [package parse]; @@ -3,7 +3,7 @@ Priority: required Section: Packaging Maintainer: Jay Freeman (saurik) <saurik@saurik.com> Architecture: iphoneos-arm -Version: 1.0.3032-1 +Version: 1.0.3044-2 Replaces: com.sosiphone.addcydia Depends: apr-lib, apt7-lib, apt7-key, darwintools, pcre, shell-cmds, system-cmds, essential Pre-Depends: dpkg (>= 1.14.25-8) |