From e884546178976e5db16be63d1faaf0a127fe60d6 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Wed, 14 Jul 2010 14:17:48 +0530 Subject: [PATCH] Initial Commit. --- Makefile | 354 +++++++++++++++++++++++++++++++++ OfficeInterface.h | 59 ++++++ authenticationdialog.ui | 86 ++++++++ authenticator.cpp | 34 ++++ authenticator.h | 45 +++++ filelistdialog.o | Bin 0 -> 492960 bytes filelistdialog.ui | 106 ++++++++++ googlecontenthandler.cpp | 157 +++++++++++++++ googlecontenthandler.h | 57 ++++++ googlecontenthandler.o | Bin 0 -> 21456 bytes googledocument.cpp | 90 +++++++++ googledocument.h | 61 ++++++ googledocument.o | Bin 0 -> 9912 bytes googledocumentlist.cpp | 99 +++++++++ googledocumentlist.h | 68 +++++++ googledocumentlist.o | Bin 0 -> 12688 bytes googledocumentservice.cpp | 229 +++++++++++++++++++++ googledocumentservice.h | 84 ++++++++ googledocumentservice.o | Bin 0 -> 51752 bytes googlelistdialog.cpp | 186 +++++++++++++++++ googlelistdialog.h | 51 +++++ googlelistdialog.o | Bin 0 -> 35248 bytes googleuploaddialog.cpp | 102 ++++++++++ googleuploaddialog.h | 50 +++++ googleuploaddialog.o | Bin 0 -> 24600 bytes loginwindow.cpp | 139 +++++++++++++ loginwindow.h | 57 ++++++ loginwindow.o | Bin 0 -> 21280 bytes main.cpp | 11 + main.o | Bin 0 -> 2144 bytes mimetypes.cpp | 31 +++ mimetypes.h | 30 +++ mimetypes.o | Bin 0 -> 12528 bytes moc_googledocumentservice.cpp | 141 +++++++++++++ moc_googledocumentservice.o | Bin 0 -> 12440 bytes moc_googlelistdialog.cpp | 93 +++++++++ moc_googlelistdialog.o | Bin 0 -> 12032 bytes moc_googleuploaddialog.cpp | 88 ++++++++ moc_googleuploaddialog.o | Bin 0 -> 10184 bytes moc_loginwindow.cpp | 88 ++++++++ moc_loginwindow.o | Bin 0 -> 11336 bytes moc_slideshare.cpp | 141 +++++++++++++ moc_slideshare.o | Bin 0 -> 7192 bytes moc_slidesharelistdialog.cpp | 93 +++++++++ moc_slidesharelistdialog.o | Bin 0 -> 10744 bytes moc_slideshareuploaddialog.cpp | 88 ++++++++ moc_slideshareuploaddialog.o | Bin 0 -> 10264 bytes onlineServices.pro.user | 321 ++++++++++++++++++++++++++++++ onlineServices.pro.user.1.3 | 320 +++++++++++++++++++++++++++++ onlineServicesPlugin.pro | 44 ++++ onlineServicesPlugin.pro.user | 287 ++++++++++++++++++++++++++ onlineServicesStandAlone | Bin 0 -> 198740 bytes onlineServicesStandAlone.pro | 38 ++++ onlineServicesStandAlone.pro.save | 38 ++++ onlineServicesStandAlone.pro.user | 314 +++++++++++++++++++++++++++++ onlineServicesStandAlone.pro.user.1.3 | 305 ++++++++++++++++++++++++++++ onlineservicesplugin.cpp | 38 ++++ onlineservicesplugin.h | 26 +++ slideshare.cpp | 296 +++++++++++++++++++++++++++ slideshare.h | 102 ++++++++++ slideshare.o | Bin 0 -> 58960 bytes slideshareDocument.h | 35 ++++ slidesharelistdialog.cpp | 198 ++++++++++++++++++ slidesharelistdialog.h | 54 +++++ slidesharelistdialog.o | Bin 0 -> 42440 bytes slideshareuploaddialog.cpp | 98 +++++++++ slideshareuploaddialog.h | 49 +++++ slideshareuploaddialog.o | Bin 0 -> 25416 bytes ui_authenticationdialog.h | 123 ++++++++++++ ui_documentlist.h | 75 +++++++ ui_filelistdialog.h | 161 +++++++++++++++ ui_uploaddialog.h | 191 ++++++++++++++++++ uploaddialog.o | Bin 0 -> 422904 bytes uploaddialog.ui | 177 +++++++++++++++++ 74 files changed, 6208 insertions(+) create mode 100644 Makefile create mode 100644 OfficeInterface.h create mode 100644 authenticationdialog.ui create mode 100644 authenticator.cpp create mode 100644 authenticator.h create mode 100644 filelistdialog.o create mode 100644 filelistdialog.ui create mode 100644 googlecontenthandler.cpp create mode 100644 googlecontenthandler.h create mode 100644 googlecontenthandler.o create mode 100644 googledocument.cpp create mode 100644 googledocument.h create mode 100644 googledocument.o create mode 100644 googledocumentlist.cpp create mode 100644 googledocumentlist.h create mode 100644 googledocumentlist.o create mode 100644 googledocumentservice.cpp create mode 100644 googledocumentservice.h create mode 100644 googledocumentservice.o create mode 100644 googlelistdialog.cpp create mode 100644 googlelistdialog.h create mode 100644 googlelistdialog.o create mode 100644 googleuploaddialog.cpp create mode 100644 googleuploaddialog.h create mode 100644 googleuploaddialog.o create mode 100644 loginwindow.cpp create mode 100644 loginwindow.h create mode 100644 loginwindow.o create mode 100644 main.cpp create mode 100644 main.o create mode 100644 mimetypes.cpp create mode 100644 mimetypes.h create mode 100644 mimetypes.o create mode 100644 moc_googledocumentservice.cpp create mode 100644 moc_googledocumentservice.o create mode 100644 moc_googlelistdialog.cpp create mode 100644 moc_googlelistdialog.o create mode 100644 moc_googleuploaddialog.cpp create mode 100644 moc_googleuploaddialog.o create mode 100644 moc_loginwindow.cpp create mode 100644 moc_loginwindow.o create mode 100644 moc_slideshare.cpp create mode 100644 moc_slideshare.o create mode 100644 moc_slidesharelistdialog.cpp create mode 100644 moc_slidesharelistdialog.o create mode 100644 moc_slideshareuploaddialog.cpp create mode 100644 moc_slideshareuploaddialog.o create mode 100644 onlineServices.pro.user create mode 100644 onlineServices.pro.user.1.3 create mode 100644 onlineServicesPlugin.pro create mode 100644 onlineServicesPlugin.pro.user create mode 100755 onlineServicesStandAlone create mode 100644 onlineServicesStandAlone.pro create mode 100644 onlineServicesStandAlone.pro.save create mode 100644 onlineServicesStandAlone.pro.user create mode 100644 onlineServicesStandAlone.pro.user.1.3 create mode 100644 onlineservicesplugin.cpp create mode 100644 onlineservicesplugin.h create mode 100644 slideshare.cpp create mode 100644 slideshare.h create mode 100644 slideshare.o create mode 100644 slideshareDocument.h create mode 100644 slidesharelistdialog.cpp create mode 100644 slidesharelistdialog.h create mode 100644 slidesharelistdialog.o create mode 100644 slideshareuploaddialog.cpp create mode 100644 slideshareuploaddialog.h create mode 100644 slideshareuploaddialog.o create mode 100644 ui_authenticationdialog.h create mode 100644 ui_documentlist.h create mode 100644 ui_filelistdialog.h create mode 100644 ui_uploaddialog.h create mode 100644 uploaddialog.o create mode 100644 uploaddialog.ui diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6cc844b --- /dev/null +++ b/Makefile @@ -0,0 +1,354 @@ +############################################################################# +# Makefile for building: onlineServicesStandAlone +# Generated by qmake (2.01a) (Qt 4.6.3) on: Wed Jul 14 10:32:20 2010 +# Project: onlineServicesStandAlone.pro +# Template: app +# Command: /usr/bin/qmake -unix -o Makefile onlineServicesStandAlone.pro +############################################################################# + +####### Compiler, tools and options + +CC = gcc +CXX = g++ +DEFINES = -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED +CFLAGS = -m64 -pipe -march=x86-64 -mtune=generic -O2 -pipe -Wall -W -D_REENTRANT $(DEFINES) +CXXFLAGS = -m64 -pipe -march=x86-64 -mtune=generic -O2 -pipe -Wall -W -D_REENTRANT $(DEFINES) +INCPATH = -I/usr/share/qt/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include -I. -I. -I. +LINK = g++ +LFLAGS = -m64 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 +LIBS = $(SUBLIBS) -L/usr/lib -lQtXml -lQtGui -lQtNetwork -lQtCore -lpthread +AR = ar cqs +RANLIB = +QMAKE = /usr/bin/qmake +TAR = tar -cf +COMPRESS = gzip -9f +COPY = cp -f +SED = sed +COPY_FILE = $(COPY) +COPY_DIR = $(COPY) -r +STRIP = strip +INSTALL_FILE = install -m 644 -p +INSTALL_DIR = $(COPY_DIR) +INSTALL_PROGRAM = install -m 755 -p +DEL_FILE = rm -f +SYMLINK = ln -f -s +DEL_DIR = rmdir +MOVE = mv -f +CHK_DIR_EXISTS= test -d +MKDIR = mkdir -p + +####### Output directory + +OBJECTS_DIR = ./ + +####### Files + +SOURCES = googlecontenthandler.cpp \ + googledocument.cpp \ + googledocumentlist.cpp \ + googledocumentservice.cpp \ + loginwindow.cpp \ + main.cpp \ + slideshare.cpp \ + slidesharelistdialog.cpp \ + slideshareuploaddialog.cpp \ + googlelistdialog.cpp \ + mimetypes.cpp \ + googleuploaddialog.cpp moc_googledocumentservice.cpp \ + moc_loginwindow.cpp \ + moc_slideshare.cpp \ + moc_slidesharelistdialog.cpp \ + moc_slideshareuploaddialog.cpp \ + moc_googlelistdialog.cpp \ + moc_googleuploaddialog.cpp +OBJECTS = googlecontenthandler.o \ + googledocument.o \ + googledocumentlist.o \ + googledocumentservice.o \ + loginwindow.o \ + main.o \ + slideshare.o \ + slidesharelistdialog.o \ + slideshareuploaddialog.o \ + googlelistdialog.o \ + mimetypes.o \ + googleuploaddialog.o \ + moc_googledocumentservice.o \ + moc_loginwindow.o \ + moc_slideshare.o \ + moc_slidesharelistdialog.o \ + moc_slideshareuploaddialog.o \ + moc_googlelistdialog.o \ + moc_googleuploaddialog.o +DIST = /usr/share/qt/mkspecs/common/g++.conf \ + /usr/share/qt/mkspecs/common/unix.conf \ + /usr/share/qt/mkspecs/common/linux.conf \ + /usr/share/qt/mkspecs/qconfig.pri \ + /usr/share/qt/mkspecs/features/qt_functions.prf \ + /usr/share/qt/mkspecs/features/qt_config.prf \ + /usr/share/qt/mkspecs/features/exclusive_builds.prf \ + /usr/share/qt/mkspecs/features/default_pre.prf \ + /usr/share/qt/mkspecs/features/release.prf \ + /usr/share/qt/mkspecs/features/default_post.prf \ + /usr/share/qt/mkspecs/features/warn_on.prf \ + /usr/share/qt/mkspecs/features/qt.prf \ + /usr/share/qt/mkspecs/features/unix/thread.prf \ + /usr/share/qt/mkspecs/features/moc.prf \ + /usr/share/qt/mkspecs/features/resources.prf \ + /usr/share/qt/mkspecs/features/uic.prf \ + /usr/share/qt/mkspecs/features/yacc.prf \ + /usr/share/qt/mkspecs/features/lex.prf \ + /usr/share/qt/mkspecs/features/include_source_dir.prf \ + onlineServicesStandAlone.pro +QMAKE_TARGET = onlineServicesStandAlone +DESTDIR = +TARGET = onlineServicesStandAlone + +first: all +####### Implicit rules + +.SUFFIXES: .o .c .cpp .cc .cxx .C + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cc.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.cxx.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.C.o: + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<" + +.c.o: + $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<" + +####### Build rules + +all: Makefile $(TARGET) + +$(TARGET): ui_authenticationdialog.h ui_filelistdialog.h ui_uploaddialog.h $(OBJECTS) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) + +Makefile: onlineServicesStandAlone.pro /usr/share/qt/mkspecs/linux-g++-64/qmake.conf /usr/share/qt/mkspecs/common/g++.conf \ + /usr/share/qt/mkspecs/common/unix.conf \ + /usr/share/qt/mkspecs/common/linux.conf \ + /usr/share/qt/mkspecs/qconfig.pri \ + /usr/share/qt/mkspecs/features/qt_functions.prf \ + /usr/share/qt/mkspecs/features/qt_config.prf \ + /usr/share/qt/mkspecs/features/exclusive_builds.prf \ + /usr/share/qt/mkspecs/features/default_pre.prf \ + /usr/share/qt/mkspecs/features/release.prf \ + /usr/share/qt/mkspecs/features/default_post.prf \ + /usr/share/qt/mkspecs/features/warn_on.prf \ + /usr/share/qt/mkspecs/features/qt.prf \ + /usr/share/qt/mkspecs/features/unix/thread.prf \ + /usr/share/qt/mkspecs/features/moc.prf \ + /usr/share/qt/mkspecs/features/resources.prf \ + /usr/share/qt/mkspecs/features/uic.prf \ + /usr/share/qt/mkspecs/features/yacc.prf \ + /usr/share/qt/mkspecs/features/lex.prf \ + /usr/share/qt/mkspecs/features/include_source_dir.prf \ + /usr/lib/libQtXml.prl \ + /usr/lib/libQtGui.prl \ + /usr/lib/libQtNetwork.prl \ + /usr/lib/libQtCore.prl + $(QMAKE) -unix -o Makefile onlineServicesStandAlone.pro +/usr/share/qt/mkspecs/common/g++.conf: +/usr/share/qt/mkspecs/common/unix.conf: +/usr/share/qt/mkspecs/common/linux.conf: +/usr/share/qt/mkspecs/qconfig.pri: +/usr/share/qt/mkspecs/features/qt_functions.prf: +/usr/share/qt/mkspecs/features/qt_config.prf: +/usr/share/qt/mkspecs/features/exclusive_builds.prf: +/usr/share/qt/mkspecs/features/default_pre.prf: +/usr/share/qt/mkspecs/features/release.prf: +/usr/share/qt/mkspecs/features/default_post.prf: +/usr/share/qt/mkspecs/features/warn_on.prf: +/usr/share/qt/mkspecs/features/qt.prf: +/usr/share/qt/mkspecs/features/unix/thread.prf: +/usr/share/qt/mkspecs/features/moc.prf: +/usr/share/qt/mkspecs/features/resources.prf: +/usr/share/qt/mkspecs/features/uic.prf: +/usr/share/qt/mkspecs/features/yacc.prf: +/usr/share/qt/mkspecs/features/lex.prf: +/usr/share/qt/mkspecs/features/include_source_dir.prf: +/usr/lib/libQtXml.prl: +/usr/lib/libQtGui.prl: +/usr/lib/libQtNetwork.prl: +/usr/lib/libQtCore.prl: +qmake: FORCE + @$(QMAKE) -unix -o Makefile onlineServicesStandAlone.pro + +dist: + @$(CHK_DIR_EXISTS) .tmp/onlineServicesStandAlone1.0.0 || $(MKDIR) .tmp/onlineServicesStandAlone1.0.0 + $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/onlineServicesStandAlone1.0.0/ && $(COPY_FILE) --parents googlecontenthandler.h googledocument.h googledocumentlist.h googledocumentservice.h loginwindow.h slideshare.h slidesharelistdialog.h slideshareuploaddialog.h slideshareDocument.h mimetypes.h googlelistdialog.h googleuploaddialog.h .tmp/onlineServicesStandAlone1.0.0/ && $(COPY_FILE) --parents googlecontenthandler.cpp googledocument.cpp googledocumentlist.cpp googledocumentservice.cpp loginwindow.cpp main.cpp slideshare.cpp slidesharelistdialog.cpp slideshareuploaddialog.cpp googlelistdialog.cpp mimetypes.cpp googleuploaddialog.cpp .tmp/onlineServicesStandAlone1.0.0/ && $(COPY_FILE) --parents authenticationdialog.ui filelistdialog.ui uploaddialog.ui .tmp/onlineServicesStandAlone1.0.0/ && (cd `dirname .tmp/onlineServicesStandAlone1.0.0` && $(TAR) onlineServicesStandAlone1.0.0.tar onlineServicesStandAlone1.0.0 && $(COMPRESS) onlineServicesStandAlone1.0.0.tar) && $(MOVE) `dirname .tmp/onlineServicesStandAlone1.0.0`/onlineServicesStandAlone1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/onlineServicesStandAlone1.0.0 + + +clean:compiler_clean + -$(DEL_FILE) $(OBJECTS) + -$(DEL_FILE) *~ core *.core + + +####### Sub-libraries + +distclean: clean + -$(DEL_FILE) $(TARGET) + -$(DEL_FILE) Makefile + + +check: first + +mocclean: compiler_moc_header_clean compiler_moc_source_clean + +mocables: compiler_moc_header_make_all compiler_moc_source_make_all + +compiler_moc_header_make_all: moc_googledocumentservice.cpp moc_loginwindow.cpp moc_slideshare.cpp moc_slidesharelistdialog.cpp moc_slideshareuploaddialog.cpp moc_googlelistdialog.cpp moc_googleuploaddialog.cpp +compiler_moc_header_clean: + -$(DEL_FILE) moc_googledocumentservice.cpp moc_loginwindow.cpp moc_slideshare.cpp moc_slidesharelistdialog.cpp moc_slideshareuploaddialog.cpp moc_googlelistdialog.cpp moc_googleuploaddialog.cpp +moc_googledocumentservice.cpp: googledocumentservice.h + /usr/bin/moc $(DEFINES) $(INCPATH) googledocumentservice.h -o moc_googledocumentservice.cpp + +moc_loginwindow.cpp: ui_authenticationdialog.h \ + loginwindow.h + /usr/bin/moc $(DEFINES) $(INCPATH) loginwindow.h -o moc_loginwindow.cpp + +moc_slideshare.cpp: slideshare.h + /usr/bin/moc $(DEFINES) $(INCPATH) slideshare.h -o moc_slideshare.cpp + +moc_slidesharelistdialog.cpp: slideshare.h \ + slidesharelistdialog.h + /usr/bin/moc $(DEFINES) $(INCPATH) slidesharelistdialog.h -o moc_slidesharelistdialog.cpp + +moc_slideshareuploaddialog.cpp: slideshareuploaddialog.h + /usr/bin/moc $(DEFINES) $(INCPATH) slideshareuploaddialog.h -o moc_slideshareuploaddialog.cpp + +moc_googlelistdialog.cpp: googledocumentservice.h \ + googlelistdialog.h + /usr/bin/moc $(DEFINES) $(INCPATH) googlelistdialog.h -o moc_googlelistdialog.cpp + +moc_googleuploaddialog.cpp: googleuploaddialog.h + /usr/bin/moc $(DEFINES) $(INCPATH) googleuploaddialog.h -o moc_googleuploaddialog.cpp + +compiler_rcc_make_all: +compiler_rcc_clean: +compiler_image_collection_make_all: qmake_image_collection.cpp +compiler_image_collection_clean: + -$(DEL_FILE) qmake_image_collection.cpp +compiler_moc_source_make_all: +compiler_moc_source_clean: +compiler_uic_make_all: ui_authenticationdialog.h ui_filelistdialog.h ui_uploaddialog.h +compiler_uic_clean: + -$(DEL_FILE) ui_authenticationdialog.h ui_filelistdialog.h ui_uploaddialog.h +ui_authenticationdialog.h: authenticationdialog.ui + /usr/bin/uic authenticationdialog.ui -o ui_authenticationdialog.h + +ui_filelistdialog.h: filelistdialog.ui + /usr/bin/uic filelistdialog.ui -o ui_filelistdialog.h + +ui_uploaddialog.h: uploaddialog.ui + /usr/bin/uic uploaddialog.ui -o ui_uploaddialog.h + +compiler_yacc_decl_make_all: +compiler_yacc_decl_clean: +compiler_yacc_impl_make_all: +compiler_yacc_impl_clean: +compiler_lex_make_all: +compiler_lex_clean: +compiler_clean: compiler_moc_header_clean compiler_uic_clean + +####### Compile + +googlecontenthandler.o: googlecontenthandler.cpp googledocumentlist.h \ + googledocument.h \ + googlecontenthandler.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o googlecontenthandler.o googlecontenthandler.cpp + +googledocument.o: googledocument.cpp googledocument.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o googledocument.o googledocument.cpp + +googledocumentlist.o: googledocumentlist.cpp googledocumentlist.h \ + googledocument.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o googledocumentlist.o googledocumentlist.cpp + +googledocumentservice.o: googledocumentservice.cpp googledocumentservice.h \ + googledocumentlist.h \ + googledocument.h \ + googlecontenthandler.h \ + mimetypes.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o googledocumentservice.o googledocumentservice.cpp + +loginwindow.o: loginwindow.cpp loginwindow.h \ + ui_authenticationdialog.h \ + googledocumentservice.h \ + googlelistdialog.h \ + slideshare.h \ + slidesharelistdialog.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o loginwindow.o loginwindow.cpp + +main.o: main.cpp loginwindow.h \ + ui_authenticationdialog.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp + +slideshare.o: slideshare.cpp slideshare.h \ + slideshareDocument.h \ + mimetypes.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o slideshare.o slideshare.cpp + +slidesharelistdialog.o: slidesharelistdialog.cpp slidesharelistdialog.h \ + slideshare.h \ + ui_filelistdialog.h \ + slideshareuploaddialog.h \ + slideshareDocument.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o slidesharelistdialog.o slidesharelistdialog.cpp + +slideshareuploaddialog.o: slideshareuploaddialog.cpp slideshareuploaddialog.h \ + ui_uploaddialog.h \ + slideshare.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o slideshareuploaddialog.o slideshareuploaddialog.cpp + +googlelistdialog.o: googlelistdialog.cpp googlelistdialog.h \ + googledocumentservice.h \ + ui_filelistdialog.h \ + googledocument.h \ + googleuploaddialog.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o googlelistdialog.o googlelistdialog.cpp + +mimetypes.o: mimetypes.cpp mimetypes.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mimetypes.o mimetypes.cpp + +googleuploaddialog.o: googleuploaddialog.cpp googleuploaddialog.h \ + ui_uploaddialog.h \ + googledocumentservice.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o googleuploaddialog.o googleuploaddialog.cpp + +moc_googledocumentservice.o: moc_googledocumentservice.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_googledocumentservice.o moc_googledocumentservice.cpp + +moc_loginwindow.o: moc_loginwindow.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_loginwindow.o moc_loginwindow.cpp + +moc_slideshare.o: moc_slideshare.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_slideshare.o moc_slideshare.cpp + +moc_slidesharelistdialog.o: moc_slidesharelistdialog.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_slidesharelistdialog.o moc_slidesharelistdialog.cpp + +moc_slideshareuploaddialog.o: moc_slideshareuploaddialog.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_slideshareuploaddialog.o moc_slideshareuploaddialog.cpp + +moc_googlelistdialog.o: moc_googlelistdialog.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_googlelistdialog.o moc_googlelistdialog.cpp + +moc_googleuploaddialog.o: moc_googleuploaddialog.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_googleuploaddialog.o moc_googleuploaddialog.cpp + +####### Install + +install: FORCE + +uninstall: FORCE + +FORCE: + diff --git a/OfficeInterface.h b/OfficeInterface.h new file mode 100644 index 0000000..cd4bb06 --- /dev/null +++ b/OfficeInterface.h @@ -0,0 +1,59 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). + * + * Contact: Lassi Nieminen + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef OFFICEINTERFACE_H +#define OFFICEINTERFACE_H + +#include +#include +#include + +class OfficeInterface +{ +public: + + virtual ~OfficeInterface() {} + + // This is used to give information about the currently active doc to the plugin + // 0 if there is no document open + virtual void setDocument(void *doc) = 0; + + // Asks the plugin to create it's view for the main program to use + virtual QWidget *view() = 0; + + // Should return the name of the plugin + virtual QString pluginName() = 0; + + // Should return list of document types in presence of which this plugin + // should be shown in the menubar. + // Possible values : All, presentation, document, spreadsheet + // + // NOTE: this is not actually used yet in the main program and may be extented + // in the future. + virtual QStringList pluginSupportTypes() = 0; +}; + +Q_DECLARE_INTERFACE(OfficeInterface, "com.office.Freoffice.OfficeInterface/1.0") + +#endif diff --git a/authenticationdialog.ui b/authenticationdialog.ui new file mode 100644 index 0000000..f5fc7d0 --- /dev/null +++ b/authenticationdialog.ui @@ -0,0 +1,86 @@ + + + Dialog + + + + 0 + 0 + 449 + 135 + + + + Account Signin + + + + + + You need to supply Username and Password to access documents + + + false + + + + + + + + + Site: + + + + + + + + + + Username: + + + + + + + @gmail.com + + + + + + + Password: + + + + + + + + + + + + + QLineEdit::Password + + + + + + + + + Sign In + + + + + + + + diff --git a/authenticator.cpp b/authenticator.cpp new file mode 100644 index 0000000..3dd244d --- /dev/null +++ b/authenticator.cpp @@ -0,0 +1,34 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2010 Manikandaprasad N 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include +#include +#include "authenticator.h" + +NetworkHandler::NetworkHandler(QObject * parent) + : QObject(parent), + loggedin(false) +{ + //QNetworkProxy proxy(QNetworkProxy::HttpProxy, "nokes.nokia.com", 8080); + //networkManager.setProxy(proxy); +} diff --git a/authenticator.h b/authenticator.h new file mode 100644 index 0000000..4bae24b --- /dev/null +++ b/authenticator.h @@ -0,0 +1,45 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2010 Manikandaprasad N 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef AUTHENTICATOR_H +#define AUTHENTICATOR_H + +#include +#include + +class NetworkHandler : public QObject +{ + Q_OBJECT + +public: + NetworkHandler(QObject * parent = 0); + +signals: + void receivedFeed(); + +protected: + QNetworkAccessManager networkManager;; + bool loggedin; +}; + +#endif // AUTHENTICATOR_H diff --git a/filelistdialog.o b/filelistdialog.o new file mode 100644 index 0000000000000000000000000000000000000000..9bcfc46cbaf5cb5eebcf1d7fd872dd07d064ee19 GIT binary patch literal 492960 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 z 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 + + fileListDialog + + + + 0 + 0 + 640 + 480 + + + + FileList + + + + + + QTabWidget::Rounded + + + 1 + + + + Documents + + + + + + + + + + Presentations + + + + + + + + + + Spreadsheets + + + + + + + + + + Others + + + + + + + + + + + + + 0 + + + false + + + + + + + + + &Upload + + + + + + + &Refresh List + + + + + + + &Download + + + + + + + + + + diff --git a/googlecontenthandler.cpp b/googlecontenthandler.cpp new file mode 100644 index 0000000..4a73953 --- /dev/null +++ b/googlecontenthandler.cpp @@ -0,0 +1,157 @@ +/* + * Copyright (c) 2010 Mani Chandrasekar + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include + +#include "googledocumentlist.h" +#include "googledocument.h" +#include "googlecontenthandler.h" + +GoogleContentHandler::GoogleContentHandler() + : m_docList(0), + m_docEntry(0) +{ + m_docList = new GoogleDocumentList(); +} + +bool GoogleContentHandler::characters ( const QString & ch ) +{ + if (!insideEntry) { + if (QString::compare(m_nodeStack.top(), "title", Qt::CaseInsensitive) == 0) { + if (m_nodeStack.count() == 2) + m_docList->setTitle(ch); + } + else if (QString::compare(m_nodeStack.top(), "name", Qt::CaseInsensitive) == 0) { + if (m_nodeStack.count() == 3) + m_docList->setAuthor(ch); + } + else if (QString::compare(m_nodeStack.top(), "email", Qt::CaseInsensitive) == 0) { + if (m_nodeStack.count() == 3) + m_docList->setEmail(ch); + } + } + else + { + if (m_docEntry == 0) + return true; + + if (QString::compare(m_nodeStack.top(), "title", Qt::CaseInsensitive) == 0) { + m_docEntry->setTitle(ch); + } + else if (QString::compare(m_nodeStack.top(), "name", Qt::CaseInsensitive) == 0) { + m_docEntry->setAuthor(ch); + } + else if (QString::compare(m_nodeStack.top(), "resourceId", Qt::CaseInsensitive) == 0) { + m_docEntry->setId(ch); + } + } + return true; +} + +bool GoogleContentHandler::endDocument () +{ + //qDebug() << "GoogleContentHandler::endDocument()"; + return true; +} + +bool GoogleContentHandler::endElement ( const QString & namespaceURI, const QString & localName, const QString & qName ) +{ + //printName(localName); + QString element = m_nodeStack.pop(); + if (QString::compare(element, "entry") == 0) { + insideEntry = false; + m_docList->append(m_docEntry); + m_docEntry = 0; + } + return true; +} + +bool GoogleContentHandler::endPrefixMapping ( const QString & prefix ) +{ + return true; +} + +QString GoogleContentHandler::errorString () const +{ + return QString(); +} + +bool GoogleContentHandler::ignorableWhitespace ( const QString & ch ) +{ + return true; +} + +bool GoogleContentHandler::processingInstruction ( const QString & target, const QString & data ) +{ + return true; +} + +void GoogleContentHandler::setDocumentLocator ( QXmlLocator * locator ) +{ +} + +bool GoogleContentHandler::skippedEntity ( const QString & name ) +{ + return true; +} + +bool GoogleContentHandler::startDocument () +{ + return true; +} + +bool GoogleContentHandler::startElement ( const QString & namespaceURI, const QString & localName, + const QString & qName, const QXmlAttributes & atts ) +{ + m_nodeStack.push(localName); + + if ((m_nodeStack.count() == 1) && (m_docList != 0)) { //Feed element + m_docList->setEtag(atts.value("gd:etag")); + } + + if (QString::compare(localName, "entry", Qt::CaseInsensitive) == 0 ) { + m_docEntry = new GoogleDocument(); + m_docEntry->setEtag(atts.value("gd:etag")); + insideEntry = true; + } + if ( insideEntry && (QString::compare(localName, "content", Qt::CaseInsensitive) == 0 ) && (m_docEntry != 0)) { + m_docEntry->setDocumentUrl(atts.value("src")); + } + + //printName(localName); + + return true; +} + +bool GoogleContentHandler::startPrefixMapping ( const QString & prefix, const QString & uri ) +{ + //qDebug() << "GoogleContentHandler::startPrefixMapping() " << prefix << uri; + return true; +} + +void GoogleContentHandler::printName(const QString & name) +{ + int count = m_nodeStack.count(); + QString indent; + for (int i=0; i < count; i++) + indent.append("\t"); + indent.append(name); + + if (insideEntry); +// qDebug() << indent; +} diff --git a/googlecontenthandler.h b/googlecontenthandler.h new file mode 100644 index 0000000..90973b6 --- /dev/null +++ b/googlecontenthandler.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2010 Mani Chandrasekar + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef GOOGLECONTENTHANDLER_H +#define GOOGLECONTENTHANDLER_H + +#include +#include + +class GoogleDocumentList; +class GoogleDocument; + +class GoogleContentHandler : public QXmlContentHandler +{ +public: + GoogleContentHandler(); + + virtual bool characters ( const QString & ch ); + virtual bool endDocument (); + virtual bool endElement ( const QString & namespaceURI, const QString & localName, const QString & qName ); + virtual bool endPrefixMapping ( const QString & prefix ); + virtual QString errorString () const; + virtual bool ignorableWhitespace ( const QString & ch ); + virtual bool processingInstruction ( const QString & target, const QString & data ); + virtual void setDocumentLocator ( QXmlLocator * locator ); + virtual bool skippedEntity ( const QString & name ); + virtual bool startDocument (); + virtual bool startElement ( const QString & namespaceURI, const QString & localName, const QString & qName, const QXmlAttributes & atts ); + virtual bool startPrefixMapping ( const QString & prefix, const QString & uri ); + + GoogleDocumentList *documentList() { return m_docList; } + +private: + QStack m_nodeStack; + bool insideEntry; + GoogleDocumentList *m_docList; + GoogleDocument *m_docEntry; + + void printName(const QString & name); +}; + +#endif // GOOGLECONTENTHANDLER_H diff --git a/googlecontenthandler.o b/googlecontenthandler.o new file mode 100644 index 0000000000000000000000000000000000000000..c7f3e6a08e10715c8f2b16c592766c6bef3a8739 GIT binary patch literal 21456 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. + * + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include "googledocument.h" + +GoogleDocument::GoogleDocument() +{ +} + +void GoogleDocument::setEtag(const QString & etag) +{ + m_etag = etag; +} + +QString GoogleDocument::etag () +{ + return m_etag; +} + +void GoogleDocument::setId (const QString & id) +{ + m_id = id; + + setDocumentType(id.left(id.indexOf(":"))); +} + +QString GoogleDocument::id () +{ + return m_id; +} + +void GoogleDocument::setTitle (const QString & title) +{ + m_title = title; +} + +QString GoogleDocument::title () +{ + return m_title; +} + +void GoogleDocument::setAuthor (const QString & author) +{ + m_author = author; +} + +QString GoogleDocument::author () +{ + return m_author; +} + +void GoogleDocument::setDocumentType (const QString & docType) +{ + m_docType = docType; +} + +QString GoogleDocument::documentType () +{ + return m_docType; +} + +void GoogleDocument::setDocumentUrl (const QString & url) +{ + m_documetUrl = url; +} + +QString GoogleDocument::documentUrl () +{ + return m_documetUrl; +} diff --git a/googledocument.h b/googledocument.h new file mode 100644 index 0000000..1ac1077 --- /dev/null +++ b/googledocument.h @@ -0,0 +1,61 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2010 Manikandaprasad N 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef GOOGLEDOCUMENT_H +#define GOOGLEDOCUMENT_H + +#include + +class GoogleDocument : public QObject +{ +public: + GoogleDocument(); + + void setEtag(const QString & etag); + QString etag (); + + void setId (const QString & id); + QString id (); + + void setTitle (const QString & title); + QString title (); + + void setAuthor (const QString & author); + QString author (); + + void setDocumentType (const QString & docType); + QString documentType (); + + void setDocumentUrl (const QString & url); + QString documentUrl (); + +private: + QString m_etag; + QString m_id; + QString m_title; + QString m_author; + QString m_docType; + QString m_documetUrl; +}; + +#endif // GOOGLEDOCUMENT_H diff --git a/googledocument.o b/googledocument.o new file mode 100644 index 0000000000000000000000000000000000000000..412b31e7a9e6bc1f94e2ee7f418acea75bea3e62 GIT binary patch literal 9912 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. + * + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include "googledocumentlist.h" +#include "googledocument.h" + +#include +#include + +GoogleDocumentList::GoogleDocumentList() +{ + docModel = new QStandardItemModel(0, 2); +} + +void GoogleDocumentList::setEtag(const QString &etag) +{ + m_etag = etag; +} + +QString GoogleDocumentList::etag () +{ + return m_etag; +} + +void GoogleDocumentList::setEmail (const QString &email) +{ + m_email = email; +} + +QString GoogleDocumentList::email () +{ + return m_email; +} + +void GoogleDocumentList::setTitle (const QString &title) +{ + m_title = title; +} + +QString GoogleDocumentList::title () +{ + return m_title; +} + +void GoogleDocumentList::setAuthor (const QString &author) +{ + m_author = author; +} + +QString GoogleDocumentList::author () +{ + return m_author; +} + +void GoogleDocumentList::append(GoogleDocument *entry) +{ + if (entry != 0 ) { + m_entries.append(entry); + + //count = docModel->rowCount(); + docModel->insertRow(0); + docModel->setData(docModel->index(0, 0), entry->title()); + docModel->setData(docModel->index(0, 1), entry->documentUrl()); +// qDebug() << "Resource ID : " << entry->id(); +// qDebug() << "Title : " << entry->title(); +// qDebug() << "Author : " << entry->author(); +// qDebug() << "Url : " << entry->documentUrl(); + } +} + +QList GoogleDocumentList::entries() +{ + return m_entries; +} + +int GoogleDocumentList::documentsCount() +{ + return m_entries.count(); +} diff --git a/googledocumentlist.h b/googledocumentlist.h new file mode 100644 index 0000000..927c092 --- /dev/null +++ b/googledocumentlist.h @@ -0,0 +1,68 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2010 Manikandaprasad N 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef GOOGLEDOCUMENTLIST_H +#define GOOGLEDOCUMENTLIST_H + +#include +#include +#include + +class GoogleDocument; + +class GoogleDocumentList : public QObject +{ +public: + GoogleDocumentList(); + + void setEtag(const QString &etag); + QString etag (); + + void setEmail (const QString &email); + QString email (); + + void setTitle (const QString &title); + QString title (); + + void setAuthor (const QString &author); + QString author (); + + void append(GoogleDocument *entry); + int documentsCount(); + + QList entries (); + + QStandardItemModel * documentModel() { return docModel; } + +private: + QString m_author; + QString m_email; + QString m_title; + QString m_etag; + + QList m_entries; + + QStandardItemModel *docModel; +}; + +#endif // GOOGLEDOCUMENTLIST_H diff --git a/googledocumentlist.o b/googledocumentlist.o new file mode 100644 index 0000000000000000000000000000000000000000..e8b3fdad3b8138fafa9f0d43df04a61f0db470d6 GIT binary patch literal 12688 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 + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include +#include +#include + +#include "googledocumentservice.h" +#include "googledocumentlist.h" +#include "googledocument.h" +#include "googlecontenthandler.h" +#include "mimetypes.h" +const QString GoogleDocumentService::GOOGLE_DOCUMENT_URL = "docs.google.com"; +const QString GoogleDocumentService::GOOGLE_SPREADSHEET_URL = "spreadsheets.google.com"; + +GoogleDocumentService::GoogleDocumentService() + : newInformation(true) + ,waitingForDoc(false) + , uploadingDoc(false) + , loggedin(false) + , haveDocAuthToken(false) +{ + saveFileName = 0; + connect(&networkManager, SIGNAL(finished(QNetworkReply*)), + this, SLOT(handleNetworkData(QNetworkReply*))); + gHandler = new GoogleContentHandler(); + xmlReader.setContentHandler(gHandler); +} + +void GoogleDocumentService::clientLogin(const QString & username, const QString & password) +{ + QByteArray data; + data.append(QString("Email="+username+"&Passwd="+password).toUtf8()); + + if(!haveDocAuthToken) { + data.append(QString("&service=writely&source=KOfficev2").toUtf8()); + this->username = username; + this->password = password; + } + else { + data.append(QString("&service=wise&source=KOfficev2").toUtf8()); + } + QNetworkRequest req(QUrl("https://www.google.com/accounts/ClientLogin")); + req.setRawHeader("Host", "www.google.com"); + req.setRawHeader("GData-Version", "3.0"); + req.setRawHeader("Content-Type", "application/x-www-form-urlencoded"); + req.setHeader(QNetworkRequest::ContentLengthHeader, data.length()); + + networkManager.post(req, data); +} + +void GoogleDocumentService::listDocuments() +{ + qDebug() << ">>>>>>>>>>>>>> List Documents" ; + authToken = docAuthToken; + QNetworkRequest requestHeader(QUrl("https://docs.google.com/feeds/default/private/full")); + requestHeader.setRawHeader("Host", "docs.google.com"); + requestHeader.setRawHeader("User-Agent", "KOffice"); + requestHeader.setRawHeader("GData-Version", "3.0"); + requestHeader.setRawHeader("Content-Type", "application/atom+xml"); + requestHeader.setRawHeader("Authorization", authToken.toUtf8()); + + networkManager.get(requestHeader); +} + +void GoogleDocumentService::handleNetworkData(QNetworkReply *networkReply) +{ + QUrl url = networkReply->url(); + bool ok = false; + if (!networkReply->error()) { + if (!loggedin) { + QByteArray m_data = networkReply->readAll(); + QString text(m_data.data()); + text = text.right(text.length()-text.indexOf("Auth=")-5); + authToken = QString("GoogleLogin auth=")+text.left(text.indexOf("\n")); + if (authToken.length() > 20) { + if(!haveDocAuthToken) { + docAuthToken = authToken; + haveDocAuthToken = true; + clientLogin(this->username, this->password); + return; + } + spreadAuthToken = authToken; + authToken = ""; + loggedin = true; + qDebug() << ">>>>>>>>>>>>>> Login success" ; + emit userAuthenticated(loggedin); + } + else { + qDebug() << ">>>>>>>>>>>>>> Login failed" ; + emit userAuthenticated(false); + } + } + else if (waitingForDoc) { + QByteArray data = networkReply->readAll(); + QFile file(*saveFileName); + file.open(QIODevice::WriteOnly); + file.write(data); + file.close(); + qDebug() << ">>>>>>>>>>>>>> Received Document!!!!! " << file.fileName(); + waitingForDoc = false; + emit downloadDone(true); + } + else if (uploadingDoc) { + uploadingDoc = false; + qDebug() << ">>>>>>>>>>>>>> Upload done" ; + emit uploadDone(true); + } + else { + qDebug() << ">>>>>>>>>>>>>> Revieved List" ; + gHandler = new GoogleContentHandler(); + xmlReader.setContentHandler(gHandler); + QByteArray data = networkReply->readAll(); + xmlInput.setData(data); + ok = xmlReader.parse(&xmlInput, true); + prepareLists(); + } + } + else { + qDebug() << networkReply->readAll(); + if(!loggedin) + emit userAuthenticated(false); + else if (waitingForDoc) { + emit downloadDone(false); + waitingForDoc = false; + } + else if (uploadingDoc) { + emit uploadDone(false); + uploadingDoc = false; + } + else + emit listDone(false); + } + networkReply->deleteLater(); +} + +void GoogleDocumentService::prepareLists() +{ + presentationList.clear(); + documentList.clear(); + spreadsheetList.clear(); + othersList.clear(); + QList gList = gHandler->documentList()->entries(); + foreach(GoogleDocument *i, gList) { + if("presentation" == i->documentType()) + presentationList.append(i); + else if("spreadsheet" == i->documentType()) + spreadsheetList.append(i); + else if("document" == i->documentType()) + documentList.append(i); + else + othersList.append(i); + } + qDebug() << ">>>>>>>>>>>>>> Lists Done" ; + emit listDone(true); +} + + +void GoogleDocumentService::downloadDocument(GoogleDocument *doc, QString *saveFileName) +{ + this->saveFileName = saveFileName; + authToken = docAuthToken; + QString url = doc->documentUrl(); + QString type = doc->documentType(); + qDebug() << type << "=" << url; + url.replace("docId", "docID", Qt::CaseInsensitive); + QString exportFormat = ""; + + if (QString::compare(type, "spreadsheet") == 0 ) { + exportFormat = "&exportFormat=ods&format=ods"; + authToken = spreadAuthToken; + } + else if (QString::compare(type, "presentation") == 0 ) + exportFormat = "&exportFormat=ppt&format=ppt"; + else if (QString::compare(type, "document") == 0) + exportFormat = "&exportFormat=odt&format=odt"; + + QUrl documentUrl(url + exportFormat); + + QNetworkRequest requestHeader(documentUrl); + requestHeader.setRawHeader("User-Agent", "KOffice"); + requestHeader.setRawHeader("GData-Version", "3.0"); + requestHeader.setRawHeader("Authorization", authToken.toUtf8()); + + QNetworkReply *reply = networkManager.get(requestHeader); + connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SIGNAL(downloadProgress(qint64,qint64))); + waitingForDoc = true; + qDebug() << ">>>>>>>>>>>>>> Downloading file" ; +} + +void GoogleDocumentService::uploadDocument(QString *filename, QString *title) +{ + authToken = docAuthToken; + QFile file(*filename); + file.open(QFile::ReadOnly); + QByteArray data = file.readAll(); + file.close(); + QUrl url; + url.setUrl("https://docs.google.com/feeds/default/private/full"); + + QNetworkRequest requestHeader(url); + requestHeader.setRawHeader("User-Agent", "KOffice"); + requestHeader.setRawHeader("GData-Version", "3.0"); + requestHeader.setRawHeader("Authorization", authToken.toUtf8()); + requestHeader.setRawHeader("Content-Type", MimeTypes::getMimeType(QFileInfo(*filename).suffix()).toUtf8()); + requestHeader.setRawHeader("Content-Length", QString::number(data.length()).toUtf8()); + requestHeader.setRawHeader("Slug", QUrl::toPercentEncoding(*title)); + + QNetworkReply *reply = networkManager.post(requestHeader, data); + connect(reply, SIGNAL(uploadProgress(qint64, qint64)), this, SIGNAL(uploadProgress(qint64,qint64))); + uploadingDoc = true; + qDebug() << ">>>>>>>>>>>>>> Uploading file" ; +} + diff --git a/googledocumentservice.h b/googledocumentservice.h new file mode 100644 index 0000000..83939d9 --- /dev/null +++ b/googledocumentservice.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2010 Mani Chandrasekar + * Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef GOOGLEDOCUMENTSERVICE_H +#define GOOGLEDOCUMENTSERVICE_H + +#include +#include +#include +#include +//#include "documentlistwindow.h" + +class GoogleDocumentList; +class GoogleDocument; +class GoogleContentHandler; +//class DocumentListWindow; + +class GoogleDocumentService : public QObject +{ + Q_OBJECT + +public: + GoogleDocumentService(); + void clientLogin(const QString & username, const QString & password); + void listDocuments(); + void prepareLists(); + void uploadDocument(QString *filename, QString *title); + void downloadDocument (GoogleDocument *, QString *saveFileName); + bool alreadyAuthenticated() { return loggedin; } + + QList documentList; + QList presentationList; + QList spreadsheetList; + QList othersList; + +signals: + void userAuthenticated(bool success); + void listDone(bool); + void downloadDone(bool); + void uploadDone(bool); + void downloadProgress(qint64 bytesSent, qint64 bytesTotal); + void uploadProgress(qint64 bytesSent, qint64 bytesTotal); + +private slots: + void handleNetworkData(QNetworkReply *networkReply); + +private: + QXmlSimpleReader xmlReader; + QXmlInputSource xmlInput; + bool newInformation; + bool waitingForDoc; + bool uploadingDoc; + bool loggedin; + bool haveDocAuthToken; + GoogleContentHandler *gHandler; + QString authToken; + QString docAuthToken; + QString spreadAuthToken; + QString *saveFileName; + QString username; + QString password; + QNetworkAccessManager networkManager; + + static const QString GOOGLE_DOCUMENT_URL; + static const QString GOOGLE_SPREADSHEET_URL; +}; + +#endif // GOOGLEDOCUMENTSERVICE_H diff --git a/googledocumentservice.o b/googledocumentservice.o new file mode 100644 index 0000000000000000000000000000000000000000..842f1f0b1e07b1cff11ad129e12fc60b473a3324 GIT binary patch literal 51752 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 Y{(bF?kj`iQ?=}6r(s0QpAKTvk53u1W1^@s6 literal 0 HcmV?d00001 diff --git a/googlelistdialog.cpp b/googlelistdialog.cpp new file mode 100644 index 0000000..bbfbf4b --- /dev/null +++ b/googlelistdialog.cpp @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "googlelistdialog.h" +#include "ui_filelistdialog.h" + +#include "googledocument.h" +#include "googleuploaddialog.h" + +#include +#include +#include + +googleListDialog::googleListDialog(GoogleDocumentService *service, QWidget *parent): + QDialog(parent), + ui(new Ui::fileListDialog) +{ + ui->setupUi(this); + this->setWindowTitle("Google Docs"); + this->service = service; + ui->listTab->setCurrentIndex(0); + ui->downloadProgressBar->setVisible(false); + + connect(ui->downloadButton, SIGNAL(clicked()), this, SLOT(downloadButtonClickedSlot())); + connect(ui->uploadButton, SIGNAL(clicked()), this, SLOT(uploadButtonClickedSlot())); + connect(ui->refreshButton, SIGNAL(clicked()), this, SLOT(refreshList())); + connect(service, SIGNAL(listDone(bool)), this, SLOT(fillList(bool))); + connect(service, SIGNAL(downloadDone(bool)), this, SLOT(downloadDoneSlot(bool))); + connect(service, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateProgressBar(qint64,qint64))); + refreshList(); +} + +void googleListDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void googleListDialog::refreshList() +{ + ui->listTab->setEnabled(false); + ui->downloadButton->setEnabled(false); + ui->uploadButton->setEnabled(false); + ui->refreshButton->setEnabled(false); + ui->downloadProgressBar->setMinimum(0); + ui->downloadProgressBar->setMaximum(0); + ui->downloadProgressBar->setVisible(true); + service->listDocuments(); +} + +void googleListDialog::fillList(bool status) +{ + if(status) { + ui->documentList->clear(); + ui->presentationList->clear(); + ui->spreadsheetList->clear(); + ui->othersList->clear(); + + QList list; + + list = service->documentList; + foreach(GoogleDocument *i, list) { + ui->documentList->addItem(i->title()); + } + + list = service->presentationList; + foreach(GoogleDocument *i, list) { + ui->presentationList->addItem(i->title()); + } + + list = service->spreadsheetList; + foreach(GoogleDocument *i, list) { + ui->spreadsheetList->addItem(i->title()); + } + + list = service->othersList; + foreach(GoogleDocument *i, list) { + ui->othersList->addItem(i->title()); + } + } + else { + QMessageBox::information(this, tr("Error"), tr("An error occured while fetching document list")); + } + ui->downloadProgressBar->setMaximum(100); + ui->downloadProgressBar->setVisible(false); + ui->listTab->setEnabled(true); + ui->downloadButton->setEnabled(true); + ui->uploadButton->setEnabled(true); + ui->refreshButton->setEnabled(true); +} + +void googleListDialog::downloadButtonClickedSlot() +{ + QList list; + QListWidget *tmp = 0; + switch(ui->listTab->currentIndex()) { + case 0: + tmp = ui->documentList; + list = service->documentList; + break; + case 1: + tmp = ui->presentationList; + list = service->presentationList; + break; + case 2: + tmp = ui->spreadsheetList; + list = service->spreadsheetList; + break; + case 3: + tmp = ui->othersList; + list = service->othersList; + } + + if(-1 == tmp->currentRow()) { + QMessageBox::information(this, QString("No selection"), QString("Please select a file from the list")); + return; + } + GoogleDocument *doc = list[tmp->currentRow()]; + QString format = ""; + if("presentation" == doc->documentType()) { + format = ".ppt"; + } + else if("document" == doc->documentType()) { + format = ".odt"; + } + else if("spreadsheet" == doc->documentType()) { + format = ".ods"; + } + QString filename = QFileDialog::getSaveFileName(this,"Save File",QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + "/" + doc->title() + format, "(*" + format + ")"); + if("" == filename) + return; + service->downloadDocument(doc, new QString(filename)); + ui->listTab->setEnabled(false); + ui->uploadButton->setEnabled(false); + ui->downloadButton->setEnabled(false); + ui->refreshButton->setEnabled(false); + ui->downloadProgressBar->setVisible(true); +} + +void googleListDialog::uploadButtonClickedSlot() +{ + googleUploadDialog *ud = new googleUploadDialog(service, this); + ud->show(); + connect(ud, SIGNAL(accepted()), this, SLOT(refreshList())); +} + +void googleListDialog::downloadDoneSlot(bool status) +{ + ui->downloadProgressBar->setVisible(false); + ui->downloadProgressBar->setValue(0); + ui->listTab->setEnabled(true); + ui->downloadButton->setEnabled(true); + ui->refreshButton->setEnabled(true); + ui->uploadButton->setEnabled(true); + if(status) + QMessageBox::information(this, "Download done", "The file has finished downloading"); + else + QMessageBox::information(this, tr("Error"), tr("An error occured while downloading the document")); +} + +void googleListDialog::updateProgressBar(qint64 bytesDone, qint64 bytesTotal) +{ + int value = (bytesDone * 100) / bytesTotal; + ui->downloadProgressBar->setValue(value); +} diff --git a/googlelistdialog.h b/googlelistdialog.h new file mode 100644 index 0000000..b2e9630 --- /dev/null +++ b/googlelistdialog.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef GOOGLELISTDIALOG_H +#define GOOGLELISTDIALOG_H + +#include +#include + +namespace Ui { + class fileListDialog; +} + +class googleListDialog : public QDialog +{ + Q_OBJECT +public: + googleListDialog(GoogleDocumentService *service, QWidget *parent = 0); + +protected: + void changeEvent(QEvent *e); + +private slots: + void downloadButtonClickedSlot(); + void uploadButtonClickedSlot(); + void fillList(bool); + void downloadDoneSlot(bool); + void updateProgressBar(qint64, qint64); + void refreshList(); + +private: + Ui::fileListDialog *ui; + GoogleDocumentService *service; +}; + +#endif // GOOGLELISTDIALOG_H diff --git a/googlelistdialog.o b/googlelistdialog.o new file mode 100644 index 0000000000000000000000000000000000000000..aadc0a3184eb784ccb57a7881462cf8d501a5505 GIT binary patch literal 35248 zcmeHwdwdnu)%H$K2Er{TT+~3g9O+Tx4Rg3-)h2|%p#%&Dlv*{3$$>;d5|a}|QQu$^ z$}ynPSFG0-FSPa2w`jdqgeZ8y))pyRFKt1sN*YmGL=d(4p0zJCYbIyt`}Ozz`R$)4 zGyBu8;Y?d&|7iQQ;Y?d)=$I;V zj-fK-RvEHY<{ndJ-Z50>x>e@dD)Wx1a?vqV=DAho*(!^VrSiFE^iDMKnUZdw5iWMC zDYn&=9aGI3kD4;Knlf8W{V~;ac+}JzHNm#qzwPOv9<5iZOw2_S+w90l>``R|=@8RU z_uC!aZ+8E&`wb_ayI<?BR%0HUh3{%+!0M&5j6W^jgvbIij8q<`ESqSb%H0tIB zU|IGvbug9fiMC^2i((>7H;qtUYuTP9J0JFKwz{>Rct{+Ie5s?MOhzjUAr+TNg3JkJ z9d_<$HlXc!>U;y*-Idq6KiGOB+UtZ8BC%Mc>F#vkXktbfp;{9TDM!#*(YnfTZggEy zxEL)bPe6toR+RWydkcAcq_^G=J5fwU_PiTx{V72$+sjNB;yOb%GWF#}IWqAHIOW-# z+-15iK_X9*_yCih?QR&$H1^~3qHI7kCG0ry+Q(d^=IyTY5kMU@H|aJTqVjs^T!p%S zhAW>PA-aog4vEj5BKPD4yn848`IyH;bY0q0vlBaUXpX+HH#M4gG5W&M@6A4ZB-(xv zu4dQNCtj9eW#T>m!u*ApQ)K+C`jnOdd97atTd%Xo*_ip-S7`P$_}f=Z)jcCK`YNDG zs#M7L}s6-ozsphSq^`p#(k(%fjfDk)m`gp`Q3FU*Wi+ZjLmKu@X^QN_mJ!Pc@q zM4>R#u8>d?U*=_|1Y4gWf(RH~QDEUk3XHNM^nIBsE|L5fgv-$PRm7rb-GkwsI7Ta` zr$;NkKQOv(#*0~)J73EJ2~t!aO)Lnn2)5ms3d&jmqb1tDAe;xPQA4%!SX7IN>Y`v<38?z;3>}l_L20ru zw6G$2J>l)c!r+-MO`_{J;KaAq{)bcOQzieCdyE71&tyjpEPOh^|rZHHBK2&p9 zQR0Kd%O*pEjiTKdO_kI(43c`xM^(|5&h$21+>i~n4T0Y7yUEC+VCyfF8kuVJ_A=7x zGID}8QrsR7N2QT3$w+aqZJ}*sYOwW4QX`0JpO#RNIW2h&IciC6dr>$?8reZca)WIf zY$I90)(QWjg`wA7xaj&A*}#m%Pb34G7?kPKz%DY78Eo4_27apN@6BPVBKx*`CtE*k zmY$b**Nq^7q8Y?^bGXyUcm2tQQ~Q*B7?%tsPxDnX@aVcn!xTgOvV}SJ03f=gnP}j} zrisyYYo#16Z0I-Fg{@WUG(L@&QoJ-nqd|ggX|j(tOH^_D=Qlk)X13|taFk`v`WnQloVzASZDzn}a7Qxm5^2gKd6-PX#9lHn=N~;iU4P)n zG(uv~X3LyH$kz-p*O+~SsATn5)P!xOu{K?^Xmqa0#{JIa+P=r=ewD7xe`VM9?!WQO zecks2$K;9b?(W-2@UGyPX3!Vi@8N3B?mzM`a$lj-F_%UW06Q_%DDjKztQ>ijlY>xC zMJ-2gt<3F*OWI8%`U}x=BsJLjEaIl+NFdmni3?L?zgK~Vt>I|Jezwx9C{D+9^|;ic_V`Y<$}FN7M)jfuri0e-1|kTEj>gB)mUCru zf~`YAlS(_0{|$yik6y*;m0IF6QzakkY7ihfJ8WCeB;G*DoP+l5D@0){nzfpS43yJ| zW6Hf`>^#1cKo`0jnI z;WB#p>v1nZ(#~9`B;_3U|2(DNnST+l zJJB+w|9;dot?F8j4BcN~j5o_J{L+6eES1ArEdZP-u;-*+b72R%z-jbX+QnqXL02Lm zX)bKLM#k5p;rf5aVwGfpTdRLhLEevU!dn5d41o0mI57lfd;7I zVFqVg1+8i@DTZinD?@n{cN-znDFrbgyRL%>_J?4P#=fGGPMEzOq?tnD?=l{n zM_qWHEq}cW57~IJ3(vIiu`av=xbeTTv*!rswZX1e@8V1CRPxhpJn^#JL8K)qO6^@1 zXa1&nev>vxN2!3UQ-(%Cr!2%$6-ToXgv&aiv=?OdpcUlA(F78pt1^x@+O`!9C70Wl zx_$`+!9Kz z$3N`;##!Rn!LFAacHXrLX+|Zdz1M&+wUvU)j)l44e} z4$Dbf>AO@fgi;%Mm5@w^7zxR~`yp+MBowlT1oooIwu(Jn1MU0du4#1YJg?~rBTqGm zzNyi582!*S5+zu}+F(%TZ3j@LGGn#tCDedqcb9?fYL{sPBx{4Wleku3gHI&`?@R{% zBpLWXGH`V=@L2*A+hjO)uNglIYqRd473aT@94fP&e1r#&T5Nwn&&X zq~#0~COf{oq9Rrwk5xjip&zP5JyF=uP}d;l)rA^kHL(inb>Zq_F|NKoZik2%S63P5 zJxV~M$T>}%D$Wum<;!Cs@-*U=-Z%KdJgzu^`vV$vw85+AN&V3P{PF1$hB>Eve0G2)I*+kkJ!teFN`D(B+~TG%%ZD$wOz&kijXf7WbOj zV`~UGNeIufX%~c&`e6o&2-xh0QZLUaMLtyX(n0U>C?KE*k*UEla$*! zA*y*H+fF-P>Tp@WBOA41Oxiv?cyTOr_Od{T$AQsa7D8lU6C{&b2yqJ}w`%L00d0BQ9}82-LOmpt zTEO!P#{x;Y+dzoXJC$CupkCT!dWlXbDG4~W4C0jBy+kN_3D02My+pX%93f7FsM}o@ z&`Sh(dnu1vSd6MkTbRdNNK$T-gea3C5I1c_CEiO>vXJLzA<8X~l-mL!PNRG*6qAKq zKMTd&0!g_o5MuNe!^@z%Hr!!)iB2df2{<(baZ2u9A{4!p=j|oJ-R1~!8U%&SE(_=- z0=&Jnh+3G5s!4lk5pN+$xlIzHOol+*v=xFuvTWQ(Fr9faEyy&J=xp|!K4kY=M5$)Hv>X6gO&CAB8hf8r;T_nEO`|hUUWi9 z@d}wUcR#NnQk^JEN@@isMN)23g#4RUKhg{tvat!rWHz3Y0&LJk+q?0Be$O?y5an zddn+Mdd}rGdl|3i676p9%fNYd?@5(;N{qIkkEPNxKG-(2Vy3pBiCNh()vQ4rIHQ^E zm@749Hk<$Oomi!&-fp||{LkJ3TDAQE0#d#;M>j_T87ba1>Y&^#u>EM>lkLVnhV zuqmeY-@BGk&MEJ@)RUj<$)D@V&+z0&dGfSh#PtvJ`1IlON^Dhdudku|LGyo8~G1i>Lf=p8WHkJiSrG^*w=n zPfyC0wBdz9R9c5dhz%)0A)ZOGz8WFkOu@2XZ;EwzguvrTA%2`{y);rhnF{oURO`u+ zVsGk6LaYy18%K&?2Y_x3SnEfMzXl+CIAFarN~}) zT0ctMZ=E85!~Ich zTYu}L(c=C7K==2z-W)B~4gk7wfc4U7v26g*KMb&*94$T@0A*VSS{p};zYK)39}TkB zj}{y0QSM`dthUi&=O9$;8e|ARJOk)&Gpsj9i7rA9Wms=zi`#-w z_P3z5J6p75<_fVn)7q6S-lbPQKF+jW&K7NhXA1GgU~7A}_tRb&l2ppj z=PmJc3Qj*v8M@UHH>TqBsnnq_TH-Hsng|TtZi!6+oc=Xny=)<1aJn(g+GU9?X*m5f z&HAw=5*D;?q(9HlAJ`c&8pkQ$NdyqCpQVaK%H9;5w^I0_bl~wg=2+!oD!#Bme)@^{vGAV3TPfD|fOwR`w=>o10g!6#35ah9KoCP>BWZa)KxOaJ=^?GPJ>@%R2yu7n zw}IB6xVz5^__42bM~2wmcSs^A?o79C2qFZBe3K#mm2Mr)5I6N3vOhz7*w6ZXhB(-7 z$leUm*`Lne?oYK2^e6c>14!~k3b?lhSnp+s&j(n)&JYg{1n}6vGhk@{K!Ohsye9>j z|Dj;oL4VMy*1*{}reG+3kV50)##C$L2(doZT0cU3o=V6K0qd?2;x_?0e=T4=iSZk- zUK=59O|$+mLOhvfb!UlJ(yX@O;wyN0xVXu(9vd!xXIY)YX)x{@E>`ui{xO_JW6KE9 zk#2p1c_H1}GeYc0zYgbzXh{7QBW5Iq2^qP4p!L*9ao<4exsl?FfrQ*S$a*JBJUGbu zS(Z35h>-RS>#tej7Z@5N#q$|N=j{w@RkqllK@`>mt=qH3V?i?YYLEhYZ_w(@7Ds~C zo7tix)B1b1_(i7GlPx+kt=lm5WRjjEnZ%)EFr7a>n9ebV9)bggSdU@C7(&SFLrCYo zA>^b(LrHSYFzZhv#UsP$ymJ^ae;eZlI*%I#Att^kn*!FeKmDRQJ$rH~|hf}4L5aZ2mt&vPFCKgo1LbTT(sw!{9No_SY z+$*t#t9Hq&YnNz!`L&@KZRv*UDk_>9AaYd|)nbAnY;Gg39tQ{?`Ngq#MHRH#f+5;{ zhK=HySb1Yi?-qy36{p1wb<3n$Ed)6{uZZG{v@ClGmtjA#kn4?u+caT)pzkyG(f1h# ziV~IhNCRJJKn1>8i^})ZYIbJn70tHU?P*~G+oO0n{Mwy(;`?oUaI|6vUS@kWD|+hD zXv@*Q|AnRF0Nk{;cE*p7wvP-)+iSw-vE^aj2`-G1#_TGFX0-HMrYGA zG7HwG=4WK(XM_q`(pCp%WpwljoIR+2Mo5C0(=*cZ2Z$&{%Saw+H`bEL>(0p7kW$QR z&KwZ9B9#MBg)b5@5lc-%w9+v@BXd?uYU))P>4G@Es>^Od+l?J?DOep?n>s_XoRN_i z$WP&VzYo13)JsDhN)&Ih?%dU>EdkU@ozp)fy>P%H;5k|*jkN>%r<48yt-m=X^-HdQ z)_~L|cm6V-oeA@@pSEk=ImlC@etKJDVc;8TtLgs_r~(9E@|s{<`*sU=`JW57cE zoil)ZzFW)P+Sl>Lba18K$;r>iEokYp+FF~oE^t%otc*>mfi;2t8M(43B*k?1iDKw7 zcc_Bv6T#UQCu~Ce((Q&00&zmy8B;J5|V#fHw*tr_mQ+-f##Ye7s#37Qqa>HosUD@1 z=99MB#gU2XS)6&gSE%`z1`t(W*~o;-SiHQVsNg>(lqi-uiy_X>3#C_2(k*tseqL!wN6-xl)S(85nW#m={mx0z{gsmT@YBzlOH~ z?$emJ{Rbu~iLZ^IJ{tQ*&y%`-ul7^NB8^oC`>(hCn^2Oh{fmC2s__1!y2if2-v>rq zy!Jy=RDF3(Q>XH;*Z!Y@CbM6!?MHQ8@;`Nj*Zy%ZPWE%PoH=aK_HzuNk0eXU97pT= z3U&T|tm`|7Iy3bQPOl{r=I#G|y8b3lf#GlJk3;2T?SDqM|A;n7?LQtrQ{VWX=5FuU zC*60PO@D=G()Cr&X*bV%D9WOp)0IS&1}zfyC*+#cYoCgf+0UYZjdU)p4OsHfVI}TU zl1mf+knb$HOURyQP-%gHz``g=3fNwA3dxtLOpjShlSDwyRF14U3kXkRbU{GQ3`WX1 z1_TyYNm4*~CM7KskXP8=6#_Eyli{4TQy!3!;^fU)z`m<6h&l%B(cs0CMF#mNS&tLm zJCf%>rFYDel?(A3%lvHOd9jcD4LN}Oh9mCStq9J0ym?)1UCeQ*nbm`u;oaoZ^Gm z`rzw*@MnDRy*_w4LOdCt(|z!Zeeh}@oW3<0f_W)~c%(%4*Ocz@k>8@_&5&$W;^IRe z`EPyjQJ7Mbwd-6Tyc#(1q;Hrg(fv842Ylq;^ua&%!Gl2_~`jo%Wu%~v@byE6kJ-8@wwIq-{^zC0GxPk!jY0$pX^6|EVD3H6$@;GB*o8? zxL%w>)~vHG1)hv&lMj9^aN@I9^P#;3O85H6Kjnk(^1(mz!PBvDNX9b)ocJ{BOC;@2 zP^$EiZ}Y)7`rtc!@O?gb0H3EO<9UJ)ewq(H-3M>>!FT)MBe4WY#z!oXFA>wmX{CIH zdt62Rv3C$A;x*@3Ve!0aa_?gXHe4pspF(UqOuBL=%8Hk}HYR9ihHX@s>LsOiHD?zm zqGbPfdo`t{OIEBX#g0j1U2STiimAFYvr5)pi z@x@aMi|15SD|))l1Z)baQ(5f-Xj5BEO6sEO$|bS*WW2jweNC+Jf;p4sm*50twO1`8 ziAZGrh12U+sQ2FsBDA%ns>s6J`FQVK<&RYsiGTzoORCE2V}5=5766CUfW87055DH;KMFQ>G`+FQ{vX z<=5Ba<$C$O!nAlpd2M429=lLjl|)MMA9Y?~ZAD!rHYufFOgu=gy0@z1;Oh3toCx#Z z6m)8A#rcaJ2YRC^lB*(y8edrLRu!2vKmT&{aTaGPRKezhDg@R2GNr3-7X0`JlbVvYFn1B5GU)XWf> ztmYhNBQ_GLs4A~rfY*j|SJoVfLp< z-nhgyHofD1!G*p3qWq~Qv&dwc0rMLxs;kYmvv($(qI(yyTvDpzc|xh2WhNG=j;C*Q zXr@t`)fT$k`KF1dcVjVK{cjrEyXN=_K3}b9zfM&Fr9PKYG-ycwXT~Cv&BIFbVT(PD z%*BU5;Axui5Qu_RtzTUp+qKNc!1ESX$NUhCb~ z$YgBw;~OexoJsf2!Gz^N*8jnPzE1lK=$X@3p!ahO*mG71 zQ`A$A3FxzBv1JwYS0|@F)qHkjd)>KyO{&0iPI^G%Qk>-4<9Qr2DK2MNS&tmaHP$s@ z$}yJ&ry!DBUE7F{*=EOMmo4kP1WFzD#dtEVH?fMDbqxh-v^VMzs&dopp>MB#>_txON?eCZWM~>~ zsI+vD!)-k4&CFBi6VyURSTDzeZd?;&lxeD@Aqc+DNOI$Ye7LY*e~4GM_%$ zQsXu<3Ck<`kc%L5MNyNt(+L<{_^-HRJRf6|&#$M?$JDySXXx{>t-M#*>)9P9Smh_; z=5|bE0u})A>e`4F!2QKp@-9Q|hGK6saDw#Km>ckM3zz=NNn?|&;aPPdI`;%D^W zb2ym@ABUg8+Y~JKk7-ZR;PhO9lGpA%3byfFZTCTqd+k2PaB8E`zm?&+41b&9oX-au z_wxDNgP*PW9Ar08(e()Dd}yDI65*WBB#nFdO!weXo&P@5!}(mqaLy;j zaL(s?hI2k^H16fI-h(gH`Foij&gWrk2_ww22!7tJI156L+ z)5CCj)@R};i#i0!+b?4^?zMZC2d96Zj?xsShufXWaBjDh;k>=o9{ozY5X(JygSLA; z)5GnqV>q|_FvGdsEet;aMvZ@7X81&gzrk=W{|>{sd{FPNQSmgU=R_ZTf)8HkgD+q> zJu))#jnfm7@8Oq;AEhlG+{E9jOb6u#qe27&ofL9* z9zUxY&h^~ngWt|@t|u*BHdnTHK2D9F2m9coeelzL@F^On>&peol>B=hlPBER{f6Q6 zDuTfu#6CYI>KBeLpkPAs;$QgS-}vAeL{RJD*Uemp^YJC$oz(Iizt~5<&Ie!5@Dk`V z?cK=m1q^?j;R_jll;K=YfBlG^{KNH}z;Ldol;K=Y9mBbvYZ=bB$QV)w!=nn4e;;6a_`LKmlc%AUM}(1n#c;0Y zX&*g189od3O*~lod79S`Ll{1n$&c~D&+x&g`QY;y&ga8L4Ci*2`QSJB;6L`kdl+8C z+C`stQ6fKZJjn2gC^LQ=!EioLj`hJ$V>s6{iQ(MtEQWLa3w-cRpS$K>;nH~y?(_zxI<1;Z}}j(@XF zrWTL>1zLYQlm8*pb34N?VfbE;o^q|{0F&o>0)tT*iNr3&&+tE8Nz^&UNIw4P=r&-MH_!?~WP7|!R(R~cT)?C#gN;eVsHdz8s@yTKu-j6`DG?pz#-|lBP_uCKKMI6_-8(NKbqW;h#uFU$#CwUGc`{0JfBy`Gx^I=W_ZqKIM-k9gJ11~ z-{ONmCf8~P@rcECtuYbOyaf%cAy-h+$6PSD+^2QJ6GI{cw*-yN{N4|yO ze7&@p;oP6U_rbe-@WsPH0?EXAosQ4t8mBCe&jiDHd_Kx>&gTUm{2d>>e1xRa%g#G$$VZea2}4qsq6=lPZoe$b=e%s)q%JlDTITk$u1%)D`z#>t;t{+A4=&@*xJ zybu185B@sC`8}^ z^}(<6!Eg4#U+}@-^1(m$!4LZ2gY@@X)GyqhV}0-`K6sH2Uhac0_rcqJ@C`n=UXICe zN=pC}x6N#S`y7T}$M*N~8NQn)K_v1+4t_?DURLy)2lTL$IGr1LvPFsX@NrFR4@zc! zQ#rLZqjQp{&^CHv1R@bmU1#w72t*>BTw?G?2t*>Bug9L1sKUqK+{o|HxZ$I3XT)1f zp7VL1;hc~8G=l8%_V!Ov6})`17#@O%;d83S4Ie6_G?~eBKISF0dPnLOuH!|)SP z$JkxPaPGI;89tWD|6JpSC&db-Czw3v*~xIua}UEg&n|{@KIS_oYA^4{egq&HJ~X#d zI$q;+;C#&UN5VOud?wHN%wag^b1}oe16{_SOEqrz6rhaK3MS9_v@)FYd4S=Z&r1vs zL$9%Go*UBj?j$m()7wm*a3g<^;U_bkzNer>#oX>G4Cj70hv8#U$LOD{apQ+#Qi^mj zljnX|%y909HimOPH#3~``3b{$oS5g5hEJJfgMSBy$#XvZ`6K7^36tl1{=sn0$9(cc z{`?Mp#y^Agb11{-O3i09dp^baoW^j@XEwt*pQQ{BGrL!5+#4t6xgqi7adIcq!{g)` zhI6~GGo1V31BUZBq5t(DCF6%1R91ZqjdS9|{XqXX4JE?4A5LdD=QD}noX-q~^Eg?k zal_{pX$@;dCeQiQGMw{S$8gRE|Dupg#Gmu|8N+#;JgsrV=YGux|8$Y9hx6IVaL$K6 z*W-K!v*%M`Xf*LTO5@%*2{ZYVnEdw`elo)^V>q|l$Z+n5H4Goi^xUa&!Eny!J%)2We`h$4ldm;y_-s~mL^@kXaX!Ns&iPDWIOlUN!#STKhVwYN zRO5!v>zdCMOrG;u&T!6WJ;OPlry0)UWShplaq=3I=W+58!%qfB6L0+aAh%2Z<2gz+ zUbtQQzKN1|9G%PXQ&4X7&(pZ^&)c##?x~qP_s z6d+N*aGnzw&Uv28aL#iM!#U4VjnjdKj=6uRVe*{kN``ZucQKsv+{$py^L2)w0lTJu zcWImsdMM)z|1h8jH}AWC!t|U8Iiu&F3?Ikvel(FFdHp$5<6gTV4{qLf&0%`D-AN2T z3w8{j0*2=@{1S$9zb)3dmrtVyH}AWyWO_KCH4Nu`Zf7{>^DBmPKF@00%jabe9@Y0( zzh` + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "googleuploaddialog.h" +#include "ui_uploaddialog.h" + +#include "googledocumentservice.h" + +#include +#include + +googleUploadDialog::googleUploadDialog(GoogleDocumentService *service, QWidget *parent): + QDialog(parent), + ui(new Ui::uploadDialog) +{ + this->service = service; + ui->setupUi(this); + ui->descriptionBox->setVisible(false); + ui->tagsEdit->setVisible(false); + ui->label_3->setVisible(false); + ui->label_4->setVisible(false); + + connect(service, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgressSlot(qint64,qint64))); + connect(ui->fileSelectButton, SIGNAL(clicked()), this, SLOT(showFileDialog())); + connect(ui->uploadButton, SIGNAL(clicked()), this, SLOT(uploadButtonClickedSlot())); +} + +googleUploadDialog::~googleUploadDialog() +{ + disconnect(service, SIGNAL(uploadDone(bool)), this, SLOT(uploadDoneSlot(bool))); + delete ui; +} + +void googleUploadDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch(e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void googleUploadDialog::uploadProgressSlot(qint64 bytesSent, qint64 bytesTotal) +{ + int value = (bytesSent * 100) / bytesTotal; + ui->uploadProgress->setValue(value); +} + +void googleUploadDialog::showFileDialog() +{ + QString filter = "Supported Files (odt doc ppt xls)(*.odt *.doc *.ppt *.xls);; Documents (odt doc)(*.odt *.doc);; Presentations (ppt)(*.ppt) ;; Spreadsheets(xls)(*.xls)"; + QString filename = QFileDialog::getOpenFileName(this,QString("Select File"),tr(""),filter); + ui->fileSelectEdit->setText(filename); +} + +void googleUploadDialog::uploadButtonClickedSlot() +{ + if(ui->fileSelectEdit->text() == "" || ui->titleEdit->text() == "") + { + QMessageBox::information(this,"Incomplete parameters","Please enter both filename and title"); + return; + } + else + { + ui->fileSelectButton->setEnabled(false); + ui->titleEdit->setEnabled(false); + ui->uploadButton->setEnabled(false); + ui->uploadLabel->setText(tr("Uploading file..")); + service->uploadDocument(&ui->fileSelectEdit->text(), &ui->titleEdit->text()); + connect(service, SIGNAL(uploadDone(bool)), this, SLOT(uploadDoneSlot(bool))); + } +} + +void googleUploadDialog::uploadDoneSlot(bool status) +{ + if(!status) { + ui->uploadLabel->setText(tr("Upload failed")); + ui->uploadProgress->setValue(0); + } + else { + ui->uploadLabel->setText(tr("Upload completed")); + } + ui->doneButton->setEnabled(true); +} diff --git a/googleuploaddialog.h b/googleuploaddialog.h new file mode 100644 index 0000000..86093ce --- /dev/null +++ b/googleuploaddialog.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef GOOGLEUPLOADDIALOG_H +#define GOOGLEUPLOADDIALOG_H + +#include + +class GoogleDocumentService; +namespace Ui { + class uploadDialog; +} + +class googleUploadDialog : public QDialog +{ + Q_OBJECT +public: + googleUploadDialog(GoogleDocumentService *service, QWidget *parent = 0); + ~googleUploadDialog(); + +protected: + void changeEvent(QEvent *); + +private: + Ui::uploadDialog *ui; + GoogleDocumentService *service; + +private slots: + void uploadProgressSlot(qint64 bytesSent, qint64 bytesTotal); + void showFileDialog(); + void uploadButtonClickedSlot(); + void uploadDoneSlot(bool); +}; + +#endif // GOOGLEUPLOADDIALOG_H diff --git a/googleuploaddialog.o b/googleuploaddialog.o new file mode 100644 index 0000000000000000000000000000000000000000..985db3d65cf50703294d8795da5aae87607ba3a4 GIT binary patch literal 24600 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 Hx%z(qc2)m+ literal 0 HcmV?d00001 diff --git a/loginwindow.cpp b/loginwindow.cpp new file mode 100644 index 0000000..bc8db14 --- /dev/null +++ b/loginwindow.cpp @@ -0,0 +1,139 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2010 Manikandaprasad N 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#include "loginwindow.h" +#include "googledocumentservice.h" +#include "googlelistdialog.h" +#include "slideshare.h" +#include "slidesharelistdialog.h" + +#include +#include + +#include +#include + +LoginWindow::LoginWindow(QWidget *parent) + : QDialog(parent), + m_authDialog(new Ui_Dialog) +{ + m_authDialog->setupUi(this); + + QStringList onlineServices; + onlineServices << "Google Documents"; + // Add services here + onlineServices << "Slide Share"; + m_authDialog->comboBox->addItems(onlineServices); + + connect(m_authDialog->loginButton, SIGNAL(clicked()), this, SLOT(loginService())); + connect(m_authDialog->comboBox, SIGNAL(activated(int)), this, SLOT(serviceSelected(int))); + + m_authDialog->userEdit->setFocus(); + show(); +} + +void LoginWindow::loginService() +{ + disableWidgets(); + if (0 == m_authDialog->comboBox->currentIndex()) { + gdoc = new GoogleDocumentService(); + setShowProgressIndicator(true); + gdoc->clientLogin(m_authDialog->userEdit->text(), m_authDialog->passwordEdit->text()); + connect(gdoc, SIGNAL(userAuthenticated(bool)), this, SLOT(authenticated(bool))); + } + if (1 == m_authDialog->comboBox->currentIndex()) + { + service = new SlideShare(this); + service->setApikey(new QString("KhSMYyiF")); + service->setsecretKey(new QString("HDXhAC5g")); + service->setUsername(new QString(m_authDialog->userEdit->text())); + service->setPassword(new QString(m_authDialog->passwordEdit->text())); + service->login(); + connect(service,SIGNAL(loginDone(bool)), this, SLOT(slideShareLoginDoneSlot(bool))); + } +} + +void LoginWindow::serviceSelected(int index) +{ + if (index == 0) { + m_authDialog->userEdit->setText("@gmail.com"); + m_authDialog->passwordEdit->clear(); + } else if (index == 1) { + m_authDialog->userEdit->clear(); + m_authDialog->passwordEdit->clear(); + } + m_authDialog->userEdit->setFocus(); +} + +void LoginWindow::authenticated(bool success) +{ + if (success) { + googleListDialog *ld = new googleListDialog(gdoc, this); + this->accept();; + ld->show(); + } + else { + QMessageBox::information(this, tr("Login Failed"), tr("Check your username & password")); + enableWidgets(); + } +} + +void LoginWindow::setShowProgressIndicator(bool visible) +{ + unsigned long val = visible ? 1 : 0; + Atom atom = XInternAtom(QX11Info::display(), + "_HILDON_WM_WINDOW_PROGRESS_INDICATOR", False); + XChangeProperty(QX11Info::display(), winId(), atom, XA_INTEGER, + 32, PropModeReplace, + (unsigned char *) &val, 1); +} + +void LoginWindow::slideShareLoginDoneSlot(bool loginStatus) +{if(loginStatus == false) + { + QMessageBox::information(this, tr("Login Failed"), tr("Check your username & password")); + enableWidgets(); + } + else + { + slideshareListDialog * fi = new slideshareListDialog(service, this); + this->accept(); + fi->show(); + } +} + +void LoginWindow::enableWidgets() +{ + m_authDialog->loginButton->setEnabled(true); + m_authDialog->userEdit->setEnabled(true); + m_authDialog->passwordEdit->setEnabled(true); + m_authDialog->comboBox->setEnabled(true); +} + +void LoginWindow::disableWidgets() +{ + m_authDialog->loginButton->setEnabled(false); + m_authDialog->userEdit->setEnabled(false); + m_authDialog->passwordEdit->setEnabled(false); + m_authDialog->comboBox->setEnabled(false); +} diff --git a/loginwindow.h b/loginwindow.h new file mode 100644 index 0000000..ae98d53 --- /dev/null +++ b/loginwindow.h @@ -0,0 +1,57 @@ +/* + * This file is part of Maemo 5 Office UI for KOffice + * + * Copyright (C) 2010 Manikandaprasad N 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., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA + * + */ + +#ifndef LOGINWINDOW_H +#define LOGINWINDOW_H + +#include + +#include "ui_authenticationdialog.h" + +class SlideShare; +class GoogleDocumentService; + +class LoginWindow : public QDialog +{ + Q_OBJECT + +public: + LoginWindow(QWidget *parent = 0); + GoogleDocumentService * googleService() { return gdoc; } + void setShowProgressIndicator(bool visible); + +private slots: + void loginService(); + void serviceSelected(int index); + void authenticated(bool success); + void slideShareLoginDoneSlot(bool loginStatus); + +private: + Ui_Dialog *m_authDialog; + GoogleDocumentService *gdoc; + SlideShare *service; + void enableWidgets(); + void disableWidgets(); +}; + +#endif // LOGINWINDOW_H diff --git a/loginwindow.o b/loginwindow.o new file mode 100644 index 0000000000000000000000000000000000000000..d3637a078553fd12883e2c839ff9c54aa0a5abf5 GIT binary patch literal 21280 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 s`c + +#include "loginwindow.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + LoginWindow *login = new LoginWindow(); + + return app.exec(); +} diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..a5334097aab3008f33541da6f8c08e8b89dc15ce GIT binary patch literal 2144 zcmbu9&1(};5Wpu*`e99D)Jvd(IRr^Xmu#smsAxi(c7;&VmQtyeWwUurmnNH#tZixq z4+UY7g8m2Iy!I*x7F7Hf1P@*d3Plf|ggCQ#4_`OQMF(cz%x~t+``)Ly{MX~?$0;Dp%5%<``?q=!FnR99XN@w`y>(8+^@%!`i?qymikL` zKWXkq&+$H(!(DCvL()Bd@bEpxMNiE=;aMk|8%lKS=b;3qeES0Jb|7|n5MW|(8Kws} z;1;$y^bJ&)&t`ANlk*EJ6Y(kKhLVa;rqonwT1~~1^#*IO3NxB)0xn@HN#JoIzXX9+ zbT~+Ea6CLb@&ea<4V?rLls(iC8JS4*UL-afN$2*1&j$8JBe85Gnu&~L&H^aS-Kt|0 zv2_}qc2ih5sG&Hl<$zK$90QbMvk6MsG4ewzrsKg|b--yiOPBhGPWym3ajALH#6 z&b?jdjGDKSEt~$a=zOT=zxG$LFRgz7RTeS6xE~@WJp&JA@k=Zv5_tQWw@Dut{Y9I{ zxUf&9_JrNJ2Ji2mzbINbRkX8LGFnH+zo!(B@q^NMGMyhGjzOH?d1U^*r!ECP|1EMP z@h^+~uDMe_y>(x51t> zq51XNVd8v|U3K{5>EdGbrvt&R*9-V(2Dl*2Q@rDI$o+4aswMjHyM1`B4=?uNG=8sf zU-sdz`f#WkmaUlex@Ul{ms>5p&Kk{{ZB#60SKm&7zP6xFE@tZWie(y(RkO2dZpkVX zObbKyPSs0L^R=>NuUdAgwuAA)%;Kt5Dl@0M_Y`X}Gq>Fxm{p0c*gIH6Ut-Ni_*2%` zN|nMkKpf{!LU)_q&hK_dt`bBcPIp@H8GmgUGifPH$Q8i=5LvA{CP42Gu7OLjO?`%9U^RAI9VNr2qf` literal 0 HcmV?d00001 diff --git a/mimetypes.cpp b/mimetypes.cpp new file mode 100644 index 0000000..9124f7b --- /dev/null +++ b/mimetypes.cpp @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "mimetypes.h" + +QString MimeTypes::getMimeType(const QString & extension) +{ + QHash mimelist; + mimelist["odt"] = "application/vnd.oasis.opendocument.text"; + mimelist["doc"] = "application/msword"; + mimelist["odp"] = "application/vnd.oasis.opendocument.presentation"; + mimelist["ppt"] = "application/vnd.ms-powerpoint"; + mimelist["ods"] = "application/x-vnd.oasis.opendocument.spreadsheet"; + mimelist["xls"] = "application/ms-excel"; + return mimelist[extension]; +} diff --git a/mimetypes.h b/mimetypes.h new file mode 100644 index 0000000..8c93a08 --- /dev/null +++ b/mimetypes.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef MIMETYPES_H +#define MIMETYPES_H + +#include +#include +class MimeTypes +{ +public: + static QString getMimeType(const QString &); +}; + +#endif // MIMETYPES_H diff --git a/mimetypes.o b/mimetypes.o new file mode 100644 index 0000000000000000000000000000000000000000..381403a0e6ade5c84170af19849c734367c487a4 GIT binary patch literal 12528 zcmbtZ4RBP|6~4)4VIjC#A;<<%7F;zTth@Xbq+_!offra}B%lB z63@Z#4BlO#b_eeY&I`_+SFJpJc0L#?YSQaa-dN`?5s|yP?LcJ(TlT-+4QU@{l(wgN z`KLUiuJiiQGNl>G!c>W?^liE(yBS{vZ@P->b1R5jU-*)y*5oX2GY@60X1oBW~~~F(yBS{vZ^bgi?tCF z@h z2px?9YNGd)wO%Yr>*c)5>V1yr_4KIMqbqw&NWc&}`h-ABK(}Z}2h1ccNJ-%$#MOxW zWMyi*z8DF#9+U+dr!fWGdsetz$_^kUWWJsUXKP&&_JD^?(~j_{zLgC8h@?^ z>iqPe?)dq4l)qTxCpA##r>AbmzHfDYyLW9`=cWwY1GUp!y?=@Fx2O3pW#Ila|NJ+U zzdy}ClE#Cn>7L+}>4gPtzs2SBjWTZ)u%J)n4v}te2f$^iU3`7#YLxZ+lOvSWX0J9c zs$5;&xdmGeD5<&LDn+ewYuSoap|?zpJ3?)7x1zc#)I2ZR;1E$#5UsVeFeg2N)*ph3 zW7kw^_1%?jhhVA_bXJ1S(|MXs{}t;z1r{KT==Aqmr$1BYn?k2w)7hTZnVR95G6Pf= z3YD(Qs?>H%+L|GlB&n-2Rl-J<*_w3@rLE4aHC>r1cM6p*P312jtG8n*F6q$U@yjYS z>u((InF`}Zg_ivt&s2B=3`FejxTdhsWLz%8g#ivP$5AJw-VRMZ%y24Dshhc*UaHk% zW(uylfP&k(8%^`=fGqLJ^+s>sA7g0Hy;GBYWx8?7XX-{bz1EH7Ox=}2Hhu4X7y$HcgeRseYG+*1GWDXHUh742rrx?9>_p72F;jI=@zYwh_HfNa!-cH_e8n5#mv^-9c!%7=WSLvwpRm@hUv(LfF zJ)L<9%V6;mzMjOaUuHX6pr0Vq5r=2zF*$!a&vv$VehPTO@U;+@b^H*EU+6q3@|}O~ ze7f_P-kzNskfkSO{nyE1N@@m#oem4Vc8Hh(YvpvyTlG1wC1unsXAP!Yh)4;jN4O3bVyY4w8&lL~3dDC`&AkG;-a`AHRRcV8q zTIO|Vtq=Pj9EslGneOhK0Tb+%tO7RP2z(&FH#cZMTEte*J6yz0X2-5V+YL_p(?zVyi9UA~*xQQORu?kgaoJD1 z+3u^+=feZ-$KCAgK(yU6$o{&U?I=W_9fkI-ZgyhuXo&UGYX$-G<~4(WbLpBvVD;-E zDE#dqgTV8pA%h^+9ydR`XuZh$R~#Obx#tf-|MHWg>|{k<=zUL78@#8WqeE)M`)LR= zU5a`k1h?jk(DlU?>c1=06BX)*qSNx#BdO&c7-zQx-n#I0P<^N3z!_V}w%k#Xnxstm zOR^B>@6;woa_a2VB*dnUU(q#t{U^!1pgP7IQoEGYFxZ?LypB*R;&p}K%^iZJzysr? z7!Iy$QMuB3)Fo%>y8X#lJGp9HQWv7S29U-FCY+al5Zvtmi#;Cr+6x~>j>hT{C1ul3 z&sQm_skHPKCAAO_91So{TMxSr#Ue=-iPf^2c)X#$wkBC0Yr3^Du`1RaVX;V@#pB70 zqLob%Ut?lyJhm#@9FNsEC4rS-Ee(kb7BHeMwb2HYmQjG_v6@7E!WWB2n;`Cr#%NR0 zmyEV#hcV&Bo1+QfbCnr>TgF;=PJl^GBvBWQCK;PCZQ5;~;u)3mMtLUqCi?uIasGhc zKPlk%6a%d}+7PWtL`QMa@Fjnq$yqap<+QkRt{u?Vu@N>s7nBVXq#MK&F~4|si>Kt| ztf>ld4}IbI#h6X{83P%w;MT(vj*swTj?*=*HMh*^S=`_03OXG#^5<(W<@p$6GjbqZ zr#-m+^WyzQe9nHv-rDCbr+?ap+&0_edAZB_I~__s*Lz&>7HPcPRvU!L4LNZnRl#Sc zDE|_EbmCe{LCX`lrA~LL(^Kj!4m$lo=j0jAjkdwLe@Q7#~@o4bW(1ED|lRs+__}Wneu)Lsl|h+AVsK=4Io`jYVbw0uku{ zB=Fa}>wqr+9!PdF^VP;0ai%d}Q!E+v!4w#q0Q>tzq-b4uNpnpjRB35* zY(<>W)|&{<&HJPbi~j$#3+5F5u4zmq0>JT!>3aAKfe#;>vRI^?)W9 z&A>Zt6I$fPV34-;*Phsaec>b9Q?8RY0fzDU>IhGnB3H?`%%^NWiQ+nnKL1zy0NC>S z!>yC1xQH*;cv)tw|0*ajv)?Z4Wj(Fzo1ws1C*v>< zO-B7~P-qtan25hv7-M|=AHo>_uYh5EL-VmwNQQI=7LsJhvNKR-rhjdLW+eAI>B6Z0 zV<<4wUwo@(;TMLeAJ-Y9{s9o&EdF*8pYN-}2R@AP`+~7q{P`yF@qZg*{1S`!RU*(L z65A~PREzkJiuf(U9_x?)7a8L>iTL9LPd;9;h!1q0xUiS~ zB$h<$x$f)|jE6fxcCs;4lbvi#Y$Apt8^eD}vy+XllxDbClnh0-tXZuQY^Em@ z)Gs}2CDZ-&cJkXdG9Lo)%9v+)s>U1VcL*&rY`K030CY+0+d#<7`>1oUG% z!T~22ZxY6qb((j+)_{xF3C7$^BrD1^*o2 z1Ihf7=eHp+kInp#x4`eRz?WO#>n!k}S>Wv!IBTqLj3!sdqX}PaoZm%E?o7S957KK4 zUIIye!jk4F-Xg2R6YvUIPRq&ymRFuYPq)Nycxg*Z7_MZASW`_yeR6eprJsf8HLZdx zUU*J40l#-x-KK;>{azagph$VetD3%&%jFkEuGgelr1aihGs6oeF2|epoLTa&jM~zf z=<;&7kcKVvW?wxLgS*3J&gk5<{p| z;K)Z?__KkhH3at(d>g@0gXA9+IQkb?1&;hl;OKu8d?f!Q!ABE3AJ!X8Qm5Q0@DCzP zMxB!hPIXoid<59ZxGe&g{^j{)E#Xt0DS}g-2Mm7jEQaYQ;nVi~oZwVv9##kvK1RSt z>huX5bz*zUew{@4RA-RjROc$<2m2k*ZI~V)e5!K?!Ku!@1gAPbHu#tOa0lU2onH~0 z>bzMT8nM2pGl(J~jS)DSQJr%MPIWFLIMum{_{a8~kIo@IMfg~Dlmb>`)11k_J;4kb9%85Fo|hYI1pg7B%%xdf*=w-DS5KIFK1mf$q*X9CB#ax7!$ zF9;vUj`UL`j%rvhJS|GxXMyA2QkabVMHcvK3w(nG{(=R5zyg2Y0zYSg_Y*&88TF5_ zz^4fu*XLV!&9$$Ygpasvx1|IhL-0QmoVIhPh5s)JpZYHlS0vO={Vyjt^}k8rM*Z6e zpZb55;MD&RhgNT6yNwsP(f@6PPyOFbaO!^#!KwZaE&Tt3@TvdYe!5QTzmee7|5kw; z^*=-S)c;Y$1DgQBoQ~vV=r~KUnr~DHHr~K0dr~GdTPWk-@@Mg%`uSXIb zZ`-mxM_b_I2<{>L+X#+#Kj~*C!Kwd+7Wn-Z_!ft3;bCNT>j5#9MAInX~g9| zj5w`V6!Mr5&u9mZX3rNH7l$w1zi`ZBLO*o>!al`>_(=H3cHR!}m=M1KJ`(r9J0_$5 z8#S2Y_Ii literal 0 HcmV?d00001 diff --git a/moc_googledocumentservice.cpp b/moc_googledocumentservice.cpp new file mode 100644 index 0000000..3c32780 --- /dev/null +++ b/moc_googledocumentservice.cpp @@ -0,0 +1,141 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'googledocumentservice.h' +** +** Created: Wed Jul 14 10:32:38 2010 +** by: The Qt Meta Object Compiler version 62 (Qt 4.6.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "googledocumentservice.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'googledocumentservice.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_GoogleDocumentService[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 7, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 6, // signalCount + + // signals: signature, parameters, type, tag, flags + 31, 23, 22, 22, 0x05, + 55, 22, 22, 22, 0x05, + 70, 22, 22, 22, 0x05, + 89, 22, 22, 22, 0x05, + 127, 106, 22, 22, 0x05, + 159, 106, 22, 22, 0x05, + + // slots: signature, parameters, type, tag, flags + 202, 189, 22, 22, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_GoogleDocumentService[] = { + "GoogleDocumentService\0\0success\0" + "userAuthenticated(bool)\0listDone(bool)\0" + "downloadDone(bool)\0uploadDone(bool)\0" + "bytesSent,bytesTotal\0" + "downloadProgress(qint64,qint64)\0" + "uploadProgress(qint64,qint64)\0" + "networkReply\0handleNetworkData(QNetworkReply*)\0" +}; + +const QMetaObject GoogleDocumentService::staticMetaObject = { + { &QObject::staticMetaObject, qt_meta_stringdata_GoogleDocumentService, + qt_meta_data_GoogleDocumentService, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &GoogleDocumentService::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *GoogleDocumentService::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *GoogleDocumentService::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_GoogleDocumentService)) + return static_cast(const_cast< GoogleDocumentService*>(this)); + return QObject::qt_metacast(_clname); +} + +int GoogleDocumentService::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: userAuthenticated((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 1: listDone((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 2: downloadDone((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 3: uploadDone((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: downloadProgress((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 5: uploadProgress((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 6: handleNetworkData((*reinterpret_cast< QNetworkReply*(*)>(_a[1]))); break; + default: ; + } + _id -= 7; + } + return _id; +} + +// SIGNAL 0 +void GoogleDocumentService::userAuthenticated(bool _t1) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void GoogleDocumentService::listDone(bool _t1) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void GoogleDocumentService::downloadDone(bool _t1) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void GoogleDocumentService::uploadDone(bool _t1) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)) }; + QMetaObject::activate(this, &staticMetaObject, 3, _a); +} + +// SIGNAL 4 +void GoogleDocumentService::downloadProgress(qint64 _t1, qint64 _t2) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; + QMetaObject::activate(this, &staticMetaObject, 4, _a); +} + +// SIGNAL 5 +void GoogleDocumentService::uploadProgress(qint64 _t1, qint64 _t2) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; + QMetaObject::activate(this, &staticMetaObject, 5, _a); +} +QT_END_MOC_NAMESPACE diff --git a/moc_googledocumentservice.o b/moc_googledocumentservice.o new file mode 100644 index 0000000000000000000000000000000000000000..db1b5861725b76dd83e2e81a34b2ad2d6fd1a7d1 GIT binary patch literal 12440 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 T+Hgq-e7^RgE+_H(n8AMlGc6R( literal 0 HcmV?d00001 diff --git a/moc_googlelistdialog.cpp b/moc_googlelistdialog.cpp new file mode 100644 index 0000000..361d71b --- /dev/null +++ b/moc_googlelistdialog.cpp @@ -0,0 +1,93 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'googlelistdialog.h' +** +** Created: Wed Jul 14 10:32:42 2010 +** by: The Qt Meta Object Compiler version 62 (Qt 4.6.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "googlelistdialog.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'googlelistdialog.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_googleListDialog[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 6, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 18, 17, 17, 17, 0x08, + 46, 17, 17, 17, 0x08, + 72, 17, 17, 17, 0x08, + 87, 17, 17, 17, 0x08, + 112, 110, 17, 17, 0x08, + 145, 17, 17, 17, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_googleListDialog[] = { + "googleListDialog\0\0downloadButtonClickedSlot()\0" + "uploadButtonClickedSlot()\0fillList(bool)\0" + "downloadDoneSlot(bool)\0,\0" + "updateProgressBar(qint64,qint64)\0" + "refreshList()\0" +}; + +const QMetaObject googleListDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_googleListDialog, + qt_meta_data_googleListDialog, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &googleListDialog::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *googleListDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *googleListDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_googleListDialog)) + return static_cast(const_cast< googleListDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int googleListDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: downloadButtonClickedSlot(); break; + case 1: uploadButtonClickedSlot(); break; + case 2: fillList((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 3: downloadDoneSlot((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 4: updateProgressBar((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 5: refreshList(); break; + default: ; + } + _id -= 6; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/moc_googlelistdialog.o b/moc_googlelistdialog.o new file mode 100644 index 0000000000000000000000000000000000000000..34050705eeeb70e97b877b3ec7d2c2e6f6969edf GIT binary patch literal 12032 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 Xlp4f!nSPRS%!|nMnE=k2y literal 0 HcmV?d00001 diff --git a/moc_googleuploaddialog.cpp b/moc_googleuploaddialog.cpp new file mode 100644 index 0000000..68a6f0a --- /dev/null +++ b/moc_googleuploaddialog.cpp @@ -0,0 +1,88 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'googleuploaddialog.h' +** +** Created: Wed Jul 14 10:32:42 2010 +** by: The Qt Meta Object Compiler version 62 (Qt 4.6.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "googleuploaddialog.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'googleuploaddialog.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_googleUploadDialog[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 4, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 41, 20, 19, 19, 0x08, + 75, 19, 19, 19, 0x08, + 92, 19, 19, 19, 0x08, + 118, 19, 19, 19, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_googleUploadDialog[] = { + "googleUploadDialog\0\0bytesSent,bytesTotal\0" + "uploadProgressSlot(qint64,qint64)\0" + "showFileDialog()\0uploadButtonClickedSlot()\0" + "uploadDoneSlot(bool)\0" +}; + +const QMetaObject googleUploadDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_googleUploadDialog, + qt_meta_data_googleUploadDialog, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &googleUploadDialog::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *googleUploadDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *googleUploadDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_googleUploadDialog)) + return static_cast(const_cast< googleUploadDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int googleUploadDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: uploadProgressSlot((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 1: showFileDialog(); break; + case 2: uploadButtonClickedSlot(); break; + case 3: uploadDoneSlot((*reinterpret_cast< bool(*)>(_a[1]))); break; + default: ; + } + _id -= 4; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/moc_googleuploaddialog.o b/moc_googleuploaddialog.o new file mode 100644 index 0000000000000000000000000000000000000000..878be8af75a4618d35ea14505da457ba0f39f45e GIT binary patch literal 10184 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 HpXYxAKWoHU literal 0 HcmV?d00001 diff --git a/moc_loginwindow.cpp b/moc_loginwindow.cpp new file mode 100644 index 0000000..ad01a4b --- /dev/null +++ b/moc_loginwindow.cpp @@ -0,0 +1,88 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'loginwindow.h' +** +** Created: Wed Jul 14 11:34:00 2010 +** by: The Qt Meta Object Compiler version 62 (Qt 4.6.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "loginwindow.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'loginwindow.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_LoginWindow[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 4, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 13, 12, 12, 12, 0x08, + 34, 28, 12, 12, 0x08, + 63, 55, 12, 12, 0x08, + 95, 83, 12, 12, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_LoginWindow[] = { + "LoginWindow\0\0loginService()\0index\0" + "serviceSelected(int)\0success\0" + "authenticated(bool)\0loginStatus\0" + "slideShareLoginDoneSlot(bool)\0" +}; + +const QMetaObject LoginWindow::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_LoginWindow, + qt_meta_data_LoginWindow, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &LoginWindow::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *LoginWindow::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *LoginWindow::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_LoginWindow)) + return static_cast(const_cast< LoginWindow*>(this)); + return QDialog::qt_metacast(_clname); +} + +int LoginWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: loginService(); break; + case 1: serviceSelected((*reinterpret_cast< int(*)>(_a[1]))); break; + case 2: authenticated((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 3: slideShareLoginDoneSlot((*reinterpret_cast< bool(*)>(_a[1]))); break; + default: ; + } + _id -= 4; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/moc_loginwindow.o b/moc_loginwindow.o new file mode 100644 index 0000000000000000000000000000000000000000..cbd533b4eee212090ac60e249408d1e1cd511c61 GIT binary patch literal 11336 zcmeI2Z){sv6~JHOj)iSBX*Jl`M&q{Gn(UA9a}p;Ru%%1fIwZ~FCTqi5<~sIE{Fv?M z+0SXR4_l>BG%Nd1Hi=b$rU=T^4+ttDO#=xnTTwTmF^zoyB#<^CAqt(ez@!lY)i~$= zc|Py@-Ic*dIMVYy_jk{^=l*;5z1)|_6BGMdTUrb$Eyg`YBPXe0tY6*GhnYHT>@aR- zw%0&@D_rPzok+Kf^m>tg5>k}p>i)K$aAmkVd2&73KKk^L$45&l~+F1bBMwU*6V)vA%Hxp}MP+Sv>i%{fk?N7UkG+*;MB7VMlgozGM(7HHHdSXNL3>w}eN3cb zNS_e;1xzQt7FyXdwl%u%$=25CYqqxCcP)$eePJ^qQkF!j%SAUcXGE%Qg{OI`K_@d2 z*IIIoNG{`MjL0197!i*~(hpAhhI2HQSp3j(^9torue{>$h%6Y-K)9JhzIYIenPJJa zT7qqF6ptyzS*KWpeb0!L9M_7#EZ#clxzLF_gMpF;_v4sm2r&gw8_+RKd zV6AKm@E;Zo_eT_5OK2zeTbcH1{3p-}1ou@G^v6s3$yDb*gH9mS|I?6{elpehA7$Qt z|IA15&jtAR1o(%6!4MeoUI3MeoF8l-6}*3_+zc7n7s^lV=DBqNaqKXL91pxlQEr0^ zLxeCxw{ia5(|pEA@{+v@=! zQ>Mv~{_E&OM7Cd|c5n{r|C;FkSz(Cthx@nmm*ct(n7a3%%L%ce-mNrP$p*F^{fFD} z*D#KW4d64Ne+n)&J{AYXUlR>{2R9ueYJ5`UQ_*gV@fVz)CJD(!t(1hk*7*xUhPsRK z@{pl4PPm2GPUWuybD^fYfxjEJz^V=l^T$MrNvLVH8^#cDv|mF5kSBS#SI};jS((q?A{3Q+ly@rS2#tCZA?HWF*;m0-nSq=ZC zhW}l|cf&DbP&*H5_~RP>0}X#u!{68No8ZA6)Se*?KceAJYxo5XzpUY%u#pC}XRn4o zq~Rwu{5cJOO~e1J;g>ahJG?pswSSL>k81e5hMxhxlRWq3d-(Gj`?oaQC_33RJ6Ar= z4w)m_av6?ACVHcfxap$hX3}t4WS183xF$`H*1#s#Cv5^sC&zt9GG-JjyMOL0a7Ybj zEb76F8He*3IHo?(Flw@4$4||NL{Qa0YShj^CxnG^YK5m#;Fd3$@pNF30`Zh8{a~&z zrFG*LemBz;gOSY?3JEAnHTu#wg3O*`HF~Z6_dR?g8SB*?+9&3khRp2seE?^=rCBy_7jg}=5ijdAGqbg->lB5Z zuW6#9-mFt9!P1{}Tzh`GF+`#`p0lfg7UKgc-tU2&wK%g}w)p6KV;ikn?jgHs&lM~_ zx!}O>g~6)*sFj3|LEOXRW`EHx*~MCMS}o^+%)Y#3FXY{QP6dFQ=j*|1hiR5GSZN8q zM0t%7p8Z9qR<))o@ZqU3WCxJ3EFUsqJHTuY@?-WZS;tIfJ?hk;pCbi3`|y=K%s%FE zz**$66H|CY1~(;oJa1WrMvaHPtZ#MoK5Q-1z73_ut>xy9^@EweTN=aIyaUT-tkej+ z4?%N{z0C0b8q6eH`p^@NWfaQ2Rqb1bV$`GXRl^&RKm$IzUZ5#9*^N7m*E3Wk;~Ir= z6?OW?%Y=0ROH4L8mO9wT`wXMmf+Lm)o2C&j>obeP4T2vl4p^m{taKnXqCoBFOGeY2H9OU2@4Ev@Y!1)Ub zwg>){Fv4)5>=7L8_rN9X;kbawweX9lb@Fcv%%eztQTWSptmh`UWIb{mkfSa+{CUVk z)+7DJac@)o@;ptgAJ2nPkney?){hJYo7c@W{sVsoGC@wqLB^MSjhlHVxyXA2!-U%7 zd9)OHzJ&I-NeF3J=*XpxNVW|*enXTJ6$*0MM?`~!-!61ahJ}vycL*Jmq|lMyDRfMx zgpT|!p<^;DbmS4CV{%OB$UiG|O!7iUF58T#Ot>j@OqK|b5q^U3Uc#RsypQlxg!dDE zn(#Q`YlIIFewJ`KwusIVj%VdkUJwfQ_ihOxT^Bm?&j}rqSA~vT-usB&Ap8qL$K*GJ z-$VG@gx^c}MZ$*(-ynQ1;hTitM>xAtAdl@FA-oL%2qvRU<3AmQCkVfh@O^}b3Exk6 zH{nUbqlAwUK1lc%2_GhWobV*!6NFC@et_^`N=Lw%8yi9nC@Fl_z5`Kbk z{GT)_PY^yMA*81We}M4QgdZY&jd1+7A>}OLvl2pjj_@xL{sQ3-624CO5yD?3{3zjX z5dLMt-zJ>yw-*V&h1hQp-bwf-;SUkc9u$zr;xyrH_y7Sxehd{wkk7%@A$Xfek!OUC zi7ZE+B|I#23?o7@BKI_8@>z)m@?Jm=N4uWLF+?t(p;)*iEF_PL{F8)ZSy<%HDSSiZ F{{^3a1NQ&` literal 0 HcmV?d00001 diff --git a/moc_slideshare.cpp b/moc_slideshare.cpp new file mode 100644 index 0000000..aa260ee --- /dev/null +++ b/moc_slideshare.cpp @@ -0,0 +1,141 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'slideshare.h' +** +** Created: Wed Jul 14 10:32:39 2010 +** by: The Qt Meta Object Compiler version 62 (Qt 4.6.3) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include "slideshare.h" +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'slideshare.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_SlideShare[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 9, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 6, // signalCount + + // signals: signature, parameters, type, tag, flags + 33, 12, 11, 11, 0x05, + 65, 12, 11, 11, 0x05, + 95, 11, 11, 11, 0x05, + 111, 11, 11, 11, 0x05, + 124, 11, 11, 11, 0x05, + 135, 11, 11, 11, 0x05, + + // slots: signature, parameters, type, tag, flags + 150, 11, 11, 11, 0x08, + 163, 11, 11, 11, 0x08, + 175, 11, 11, 11, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_SlideShare[] = { + "SlideShare\0\0bytesSent,bytesTotal\0" + "downloadProgress(qint64,qint64)\0" + "uploadProgress(qint64,qint64)\0" + "loginDone(bool)\0uploadDone()\0listDone()\0" + "downloadDone()\0afterLogin()\0parseList()\0" + "saveFile()\0" +}; + +const QMetaObject SlideShare::staticMetaObject = { + { &QObject::staticMetaObject, qt_meta_stringdata_SlideShare, + qt_meta_data_SlideShare, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &SlideShare::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *SlideShare::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *SlideShare::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_SlideShare)) + return static_cast(const_cast< SlideShare*>(this)); + return QObject::qt_metacast(_clname); +} + +int SlideShare::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QObject::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: downloadProgress((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 1: uploadProgress((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 2: loginDone((*reinterpret_cast< bool(*)>(_a[1]))); break; + case 3: uploadDone(); break; + case 4: listDone(); break; + case 5: downloadDone(); break; + case 6: afterLogin(); break; + case 7: parseList(); break; + case 8: saveFile(); break; + default: ; + } + _id -= 9; + } + return _id; +} + +// SIGNAL 0 +void SlideShare::downloadProgress(qint64 _t1, qint64 _t2) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; + QMetaObject::activate(this, &staticMetaObject, 0, _a); +} + +// SIGNAL 1 +void SlideShare::uploadProgress(qint64 _t1, qint64 _t2) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)), const_cast(reinterpret_cast(&_t2)) }; + QMetaObject::activate(this, &staticMetaObject, 1, _a); +} + +// SIGNAL 2 +void SlideShare::loginDone(bool _t1) +{ + void *_a[] = { 0, const_cast(reinterpret_cast(&_t1)) }; + QMetaObject::activate(this, &staticMetaObject, 2, _a); +} + +// SIGNAL 3 +void SlideShare::uploadDone() +{ + QMetaObject::activate(this, &staticMetaObject, 3, 0); +} + +// SIGNAL 4 +void SlideShare::listDone() +{ + QMetaObject::activate(this, &staticMetaObject, 4, 0); +} + +// SIGNAL 5 +void SlideShare::downloadDone() +{ + QMetaObject::activate(this, &staticMetaObject, 5, 0); +} +QT_END_MOC_NAMESPACE diff --git a/moc_slideshare.o b/moc_slideshare.o new file mode 100644 index 0000000000000000000000000000000000000000..2b8aa60f422bbf23dc51b63c57269bc8f1cea0a2 GIT binary patch literal 7192 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." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_slideshareListDialog[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 6, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 22, 21, 21, 21, 0x08, + 50, 21, 21, 21, 0x08, + 76, 21, 21, 21, 0x08, + 87, 21, 21, 21, 0x08, + 108, 106, 21, 21, 0x08, + 141, 21, 21, 21, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_slideshareListDialog[] = { + "slideshareListDialog\0\0downloadButtonClickedSlot()\0" + "uploadButtonClickedSlot()\0fillList()\0" + "downloadDoneSlot()\0,\0" + "updateProgressBar(qint64,qint64)\0" + "refreshList()\0" +}; + +const QMetaObject slideshareListDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_slideshareListDialog, + qt_meta_data_slideshareListDialog, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &slideshareListDialog::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *slideshareListDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *slideshareListDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_slideshareListDialog)) + return static_cast(const_cast< slideshareListDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int slideshareListDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: downloadButtonClickedSlot(); break; + case 1: uploadButtonClickedSlot(); break; + case 2: fillList(); break; + case 3: downloadDoneSlot(); break; + case 4: updateProgressBar((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 5: refreshList(); break; + default: ; + } + _id -= 6; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/moc_slidesharelistdialog.o b/moc_slidesharelistdialog.o new file mode 100644 index 0000000000000000000000000000000000000000..fb2526b2079c312710b4c4128ad87420d2cfa45a GIT binary patch literal 10744 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." +#elif Q_MOC_OUTPUT_REVISION != 62 +#error "This file was generated using the moc from 4.6.3. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +static const uint qt_meta_data_slideshareUploadDialog[] = { + + // content: + 4, // revision + 0, // classname + 0, 0, // classinfo + 4, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: signature, parameters, type, tag, flags + 45, 24, 23, 23, 0x08, + 79, 23, 23, 23, 0x08, + 96, 23, 23, 23, 0x08, + 122, 23, 23, 23, 0x08, + + 0 // eod +}; + +static const char qt_meta_stringdata_slideshareUploadDialog[] = { + "slideshareUploadDialog\0\0bytesSent,bytesTotal\0" + "uploadProgressSlot(qint64,qint64)\0" + "showFileDialog()\0uploadButtonClickedSlot()\0" + "uploadDoneSlot()\0" +}; + +const QMetaObject slideshareUploadDialog::staticMetaObject = { + { &QDialog::staticMetaObject, qt_meta_stringdata_slideshareUploadDialog, + qt_meta_data_slideshareUploadDialog, 0 } +}; + +#ifdef Q_NO_DATA_RELOCATION +const QMetaObject &slideshareUploadDialog::getStaticMetaObject() { return staticMetaObject; } +#endif //Q_NO_DATA_RELOCATION + +const QMetaObject *slideshareUploadDialog::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject; +} + +void *slideshareUploadDialog::qt_metacast(const char *_clname) +{ + if (!_clname) return 0; + if (!strcmp(_clname, qt_meta_stringdata_slideshareUploadDialog)) + return static_cast(const_cast< slideshareUploadDialog*>(this)); + return QDialog::qt_metacast(_clname); +} + +int slideshareUploadDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + switch (_id) { + case 0: uploadProgressSlot((*reinterpret_cast< qint64(*)>(_a[1])),(*reinterpret_cast< qint64(*)>(_a[2]))); break; + case 1: showFileDialog(); break; + case 2: uploadButtonClickedSlot(); break; + case 3: uploadDoneSlot(); break; + default: ; + } + _id -= 4; + } + return _id; +} +QT_END_MOC_NAMESPACE diff --git a/moc_slideshareuploaddialog.o b/moc_slideshareuploaddialog.o new file mode 100644 index 0000000000000000000000000000000000000000..18e8473993f18eb4602620cff15f113e3d35120b GIT binary patch literal 10264 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 TMpVU!yvHS%deR5U<^B9$3A5{Y literal 0 HcmV?d00001 diff --git a/onlineServices.pro.user b/onlineServices.pro.user new file mode 100644 index 0000000..bca3cd2 --- /dev/null +++ b/onlineServices.pro.user @@ -0,0 +1,321 @@ + + + + RunConfiguration0-BaseEnvironmentBase + 2 + + + RunConfiguration0-CommandLineArguments + + + + RunConfiguration0-ProFile + onlineServices.pro + + + RunConfiguration0-RunConfiguration.name + onlineServices + + + RunConfiguration0-UseDyldImageSuffix + false + + + RunConfiguration0-UseTerminal + false + + + RunConfiguration0-UserEnvironmentChanges + + + + RunConfiguration0-UserSetName + false + + + RunConfiguration0-UserSetWorkingDirectory + false + + + RunConfiguration0-UserWorkingDirectory + + + + RunConfiguration0-type + Qt4ProjectManager.Qt4RunConfiguration + + + activeRunConfiguration + 0 + + + activebuildconfiguration + Debug + + + buildConfiguration-Debug + + Debug + 2 + 0 + + 2 + + + + buildconfiguration-Debug-buildstep0 + + Debug + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-BoNqUNmSMH,guid=2d32e0a9a4d5f390c69468730000002f + DESKTOP_SESSION=kde + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-f3PyjE/S.gpg-agent:3130:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0::/home/maemo/.kde4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kde4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MALLOC_CHECK_=3 + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/3171,unix/arch:/tmp/.ICE-unix/3171 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=3133 + SSH_AUTH_SOCK=/tmp/ssh-xujlLF3132/agent.3132 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278743272.464893-215627025 + XDM_MANAGED=method=classic + + + /home/maemo/Project/onlineServices/onlineServices.pro + -spec + linux-g++-64 + -r + CONFIG+=debug + + /usr/bin/qmake + false + /home/maemo/Project/onlineServices + + + + buildconfiguration-Debug-buildstep1 + + Debug + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-BoNqUNmSMH,guid=2d32e0a9a4d5f390c69468730000002f + DESKTOP_SESSION=kde + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-f3PyjE/S.gpg-agent:3130:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0::/home/maemo/.kde4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kde4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MALLOC_CHECK_=3 + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/3171,unix/arch:/tmp/.ICE-unix/3171 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=3133 + SSH_AUTH_SOCK=/tmp/ssh-xujlLF3132/agent.3132 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278743272.464893-215627025 + XDM_MANAGED=method=classic + + false + + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + + + + buildconfiguration-Debug-cleanstep0 + + Debug + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-GxNPxgLbpy,guid=2232915ea0e53881df5d3ea100000648 + DESKTOP_SESSION=kde + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-Bom7EH/S.gpg-agent:6352:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0::/home/maemo/.kde4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kde4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MALLOC_CHECK_=3 + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/6413,unix/arch:/tmp/.ICE-unix/6413 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=6355 + SSH_AUTH_SOCK=/tmp/ssh-VApZNi6354/agent.6354 + USER=maemo + WINDOWPATH=8 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278578918.559616-1566298267 + XDM_MANAGED=method=classic + + true + + clean + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + true + + clean + + + + + buildconfigurations + + Debug + + + + buildstep0 + + + + + + + buildstep1 + + + + + + buildsteps + + trolltech.qt4projectmanager.qmake + trolltech.qt4projectmanager.make + + + + cleanstep0 + + + true + + + + cleansteps + + trolltech.qt4projectmanager.make + + + + defaultFileEncoding + UTF-8 + + + project + + + diff --git a/onlineServices.pro.user.1.3 b/onlineServices.pro.user.1.3 new file mode 100644 index 0000000..70b85f6 --- /dev/null +++ b/onlineServices.pro.user.1.3 @@ -0,0 +1,320 @@ + + + + RunConfiguration0-BaseEnvironmentBase + 2 + + + RunConfiguration0-CommandLineArguments + + + + RunConfiguration0-ProFile + onlineServices.pro + + + RunConfiguration0-RunConfiguration.name + onlineServices + + + RunConfiguration0-UseDyldImageSuffix + false + + + RunConfiguration0-UseTerminal + false + + + RunConfiguration0-UserEnvironmentChanges + + + + RunConfiguration0-UserSetName + false + + + RunConfiguration0-UserSetWorkingDirectory + false + + + RunConfiguration0-UserWorkingDirectory + + + + RunConfiguration0-type + Qt4ProjectManager.Qt4RunConfiguration + + + activeRunConfiguration + 0 + + + activebuildconfiguration + Debug + + + buildConfiguration-Debug + + Debug + 2 + 0 + 2 + + + + buildconfiguration-Debug-buildstep0 + + Debug + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ZOdel41nVI,guid=6d7798108c63ef2016727e40000000b5 + DESKTOP_SESSION=default + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-C3HOkx/S.gpg-agent:3356:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0:/home/maemo/.gtkrc-2.0-kde4:/home/maemo/.kdemod4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kdemod4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LANGUAGE= + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kdemod4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/3454,unix/arch:/tmp/.ICE-unix/3454 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=3359 + SSH_AUTH_SOCK=/tmp/ssh-ntNFdL3358/agent.3358 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278471612.809573-1127632378 + XDM_MANAGED=method=classic + + + /home/maemo/Project/onlineServices/onlineServices.pro + -spec + linux-g++-64 + -r + CONFIG+=debug + + /usr/bin/qmake + false + /home/maemo/Project/onlineServices + + + + buildconfiguration-Debug-buildstep1 + + Debug + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ZOdel41nVI,guid=6d7798108c63ef2016727e40000000b5 + DESKTOP_SESSION=default + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-C3HOkx/S.gpg-agent:3356:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0:/home/maemo/.gtkrc-2.0-kde4:/home/maemo/.kdemod4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kdemod4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LANGUAGE= + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kdemod4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/3454,unix/arch:/tmp/.ICE-unix/3454 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=3359 + SSH_AUTH_SOCK=/tmp/ssh-ntNFdL3358/agent.3358 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278471612.809573-1127632378 + XDM_MANAGED=method=classic + + false + + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + + + + buildconfiguration-Debug-cleanstep0 + + Debug + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ZOdel41nVI,guid=6d7798108c63ef2016727e40000000b5 + DESKTOP_SESSION=default + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-C3HOkx/S.gpg-agent:3356:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0:/home/maemo/.gtkrc-2.0-kde4:/home/maemo/.kdemod4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kdemod4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LANGUAGE= + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kdemod4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/3454,unix/arch:/tmp/.ICE-unix/3454 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=3359 + SSH_AUTH_SOCK=/tmp/ssh-ntNFdL3358/agent.3358 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278471612.809573-1127632378 + XDM_MANAGED=method=classic + + true + + clean + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + true + + clean + + + + + buildconfigurations + + Debug + + + + buildstep0 + + + + + + + buildstep1 + + + + + + buildsteps + + trolltech.qt4projectmanager.qmake + trolltech.qt4projectmanager.make + + + + cleanstep0 + + + true + + + + cleansteps + + trolltech.qt4projectmanager.make + + + + defaultFileEncoding + System + + + project + + + diff --git a/onlineServicesPlugin.pro b/onlineServicesPlugin.pro new file mode 100644 index 0000000..6e2e1a8 --- /dev/null +++ b/onlineServicesPlugin.pro @@ -0,0 +1,44 @@ +# ##################################################################### +# Automatically generated by qmake (2.01a) Sat Jul 10 12:41:16 2010 +# ##################################################################### +QT += network +QT += xml +TEMPLATE = lib +CONFIG += plugin +TARGET = OnlineServicesPlugin +target.path = /usr/lib/freoffice/ +INSTALLS += target +DEPENDPATH += . +INCLUDEPATH += . /usr/local/include/office /usr/include/office + +# Input +HEADERS += authenticator.h \ + googlecontenthandler.h \ + googledocument.h \ + googledocumentlist.h \ + googledocumentservice.h \ + googlelistdialog.h \ + googleuploaddialog.h \ + loginwindow.h \ + mimetypes.h \ + onlineservicesplugin.h \ + slideshare.h \ + slideshareDocument.h \ + slidesharelistdialog.h \ + slideshareuploaddialog.h +FORMS += authenticationdialog.ui \ + filelistdialog.ui \ + uploaddialog.ui +SOURCES += authenticator.cpp \ + googlecontenthandler.cpp \ + googledocument.cpp \ + googledocumentlist.cpp \ + googledocumentservice.cpp \ + googlelistdialog.cpp \ + googleuploaddialog.cpp \ + loginwindow.cpp \ + mimetypes.cpp \ + onlineservicesplugin.cpp \ + slideshare.cpp \ + slidesharelistdialog.cpp \ + slideshareuploaddialog.cpp diff --git a/onlineServicesPlugin.pro.user b/onlineServicesPlugin.pro.user new file mode 100644 index 0000000..b8bcdf5 --- /dev/null +++ b/onlineServicesPlugin.pro.user @@ -0,0 +1,287 @@ + + + + ProjectExplorer.Project.ActiveTarget + 1 + + + ProjectExplorer.Project.EditorSettings + + UTF-8 + + + + ProjectExplorer.Project.Target.0 + + Desktop + Qt4ProjectManager.Target.DesktopTarget + 0 + 0 + + + qmake + QtProjectManager.QMakeBuildStep + + + + Make + Qt4ProjectManager.MakeStep + false + + + + 2 + + Make + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Qt in PATH Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + /home/maemo/Project/onlineServices-pluginBuild + 2 + 0 + true + + + + qmake + QtProjectManager.QMakeBuildStep + + + + Make + Qt4ProjectManager.MakeStep + false + + + + 2 + + Make + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Qt in PATH Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + /home/maemo/Project/onlineServices-pluginBuild + 2 + 0 + true + + + + qmake + QtProjectManager.QMakeBuildStep + + + + Make + Qt4ProjectManager.MakeStep + false + + + + 2 + + Make + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Qt 4.7.0 Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + /home/maemo/Project/onlineServicesPlugin-build-desktop + 6 + 0 + true + + + + qmake + QtProjectManager.QMakeBuildStep + + + + Make + Qt4ProjectManager.MakeStep + false + + + + 2 + + Make + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Qt 4.7.0 Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + /home/maemo/Project/onlineServicesPlugin-build-desktop + 6 + 0 + true + + 4 + + + 2 + + false + + + false + $BUILDDIR + Custom Executable + ProjectExplorer.CustomExecutableRunConfiguration + + 1 + + + + ProjectExplorer.Project.Target.1 + + Maemo + Qt4ProjectManager.Target.MaemoDeviceTarget + 1 + 0 + + + qmake + QtProjectManager.QMakeBuildStep + + + + Make + Qt4ProjectManager.MakeStep + false + + + + + + Qt4ProjectManager.MaemoPackageCreationStep + + true + + + + 3 + + Make + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + /home/maemo/Project/onlineServicesPlugin-build-maemo + 9 + 9 + true + + + + qmake + QtProjectManager.QMakeBuildStep + + + + Make + Qt4ProjectManager.MakeStep + false + + + + + + Qt4ProjectManager.MaemoPackageCreationStep + + true + /usr/local/bin/OnlineServicesPlugin + + + 3 + + Make + Qt4ProjectManager.MakeStep + true + + clean + + + + 1 + false + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + /home/maemo/Project/onlineServicesPlugin-build-maemo + 9 + 9 + true + + 2 + + + 2 + + false + + + false + $BUILDDIR + Custom Executable + ProjectExplorer.CustomExecutableRunConfiguration + + 1 + + + + ProjectExplorer.Project.TargetCount + 2 + + + ProjectExplorer.Project.Updater.FileVersion + 4 + + diff --git a/onlineServicesStandAlone b/onlineServicesStandAlone new file mode 100755 index 0000000000000000000000000000000000000000..c0bf80ae2e8fad26b01283b5bef49b1f1d9c58d8 GIT binary patch literal 198740 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

DCU`FKW@3-v3yHT7_kSwwPuxe`C-`jQ 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 Gdn^k!b9;W!r=pE(zQ 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 TY;R7id*j?lk5qwu16=$+!aCb_ literal 0 HcmV?d00001 diff --git a/onlineServicesStandAlone.pro b/onlineServicesStandAlone.pro new file mode 100644 index 0000000..d234dc8 --- /dev/null +++ b/onlineServicesStandAlone.pro @@ -0,0 +1,38 @@ +# ##################################################################### +# Automatically generated by qmake (2.01a) Wed Jul 7 10:30:16 2010 +# ##################################################################### +TEMPLATE = app +TARGET = +DEPENDPATH += . +INCLUDEPATH += . +QT += network +QT += xml + +# Input +HEADERS += googlecontenthandler.h \ + googledocument.h \ + googledocumentlist.h \ + googledocumentservice.h \ + loginwindow.h \ # onlineservicesplugin.h \ + slideshare.h \ + slidesharelistdialog.h \ + slideshareuploaddialog.h \ + slideshareDocument.h \ + mimetypes.h \ + googlelistdialog.h \ + googleuploaddialog.h +FORMS += authenticationdialog.ui \ + filelistdialog.ui \ + uploaddialog.ui +SOURCES += googlecontenthandler.cpp \ + googledocument.cpp \ + googledocumentlist.cpp \ + googledocumentservice.cpp \ + loginwindow.cpp \ + main.cpp \ # onlineservicesplugin.cpp \ + slideshare.cpp \ + slidesharelistdialog.cpp \ + slideshareuploaddialog.cpp \ + googlelistdialog.cpp \ + mimetypes.cpp \ + googleuploaddialog.cpp diff --git a/onlineServicesStandAlone.pro.save b/onlineServicesStandAlone.pro.save new file mode 100644 index 0000000..44393d6 --- /dev/null +++ b/onlineServicesStandAlone.pro.save @@ -0,0 +1,38 @@ +# ##################################################################### +# Automatically generated by qmake (2.01a) Wed Jul 7 10:30:16 2010 +# ##################################################################### +TEMPLATE = app +TARGET = OnlineServices +DEPENDPATH += . +INCLUDEPATH += . +QT += network +QT += xml + +# Input +HEADERS += googlecontenthandler.h \ + googledocument.h \ + googledocumentlist.h \ + googledocumentservice.h \ + loginwindow.h \ # onlineservicesplugin.h \ + slideshare.h \ + slidesharelistdialog.h \ + slideshareuploaddialog.h \ + slideshareDocument.h \ + mimetypes.h \ + googlelistdialog.h \ + googleuploaddialog.h +FORMS += authenticationdialog.ui \ + filelistdialog.ui \ + uploaddialog.ui +SOURCES += googlecontenthandler.cpp \ + googledocument.cpp \ + googledocumentlist.cpp \ + googledocumentservice.cpp \ + loginwindow.cpp \ + main.cpp \ # onlineservicesplugin.cpp \ + slideshare.cpp \ + slidesharelistdialog.cpp \ + slideshareuploaddialog.cpp \ + googlelistdialog.cpp \ + mimetypes.cpp \ + googleuploaddialog.cpp diff --git a/onlineServicesStandAlone.pro.user b/onlineServicesStandAlone.pro.user new file mode 100644 index 0000000..1984fa1 --- /dev/null +++ b/onlineServicesStandAlone.pro.user @@ -0,0 +1,314 @@ + + + + RunConfiguration0-BaseEnvironmentBase + 2 + + + RunConfiguration0-CommandLineArguments + + + + RunConfiguration0-ProFile + onlineServicesStandAlone.pro + + + RunConfiguration0-RunConfiguration.name + onlineServicesStandAlone + + + RunConfiguration0-UseDyldImageSuffix + false + + + RunConfiguration0-UseTerminal + false + + + RunConfiguration0-UserEnvironmentChanges + + + + RunConfiguration0-UserSetName + false + + + RunConfiguration0-UserSetWorkingDirectory + false + + + RunConfiguration0-UserWorkingDirectory + + + + RunConfiguration0-type + Qt4ProjectManager.Qt4RunConfiguration + + + activeRunConfiguration + 0 + + + activebuildconfiguration + Release + + + buildConfiguration-Release + + Release + 2 + 0 + + 0 + + + + buildconfiguration-Release-buildstep0 + + Release + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-FfenDiZGv7,guid=72dbc6d7283e26da69f7ce3500001f25 + DESKTOP_SESSION=kde + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-59sFX6/S.gpg-agent:31687:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0:/home/maemo/.gtkrc-2.0-kde4:/home/maemo/.kde4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kde4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LANGUAGE= + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MALLOC_CHECK_=3 + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/31736,unix/arch:/tmp/.ICE-unix/31736 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=31690 + SSH_AUTH_SOCK=/tmp/ssh-fzmdW31689/agent.31689 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1279084273.67966-555969312 + XDM_MANAGED=method=classic + + + /home/maemo/Project/onlineServices/onlineServicesStandAlone.pro + -spec + linux-g++-64 + -r + + /usr/bin/qmake + false + /home/maemo/Project/onlineServices + + + + buildconfiguration-Release-buildstep1 + + Release + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-FfenDiZGv7,guid=72dbc6d7283e26da69f7ce3500001f25 + DESKTOP_SESSION=kde + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-59sFX6/S.gpg-agent:31687:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0:/home/maemo/.gtkrc-2.0-kde4:/home/maemo/.kde4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kde4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LANGUAGE= + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MALLOC_CHECK_=3 + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/31736,unix/arch:/tmp/.ICE-unix/31736 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=31690 + SSH_AUTH_SOCK=/tmp/ssh-fzmdW31689/agent.31689 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1279084273.67966-555969312 + XDM_MANAGED=method=classic + + false + + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + + + + buildconfiguration-Release-cleanstep0 + + Release + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-FUPWNjaJHQ,guid=1a8d0ffabc19c956cdc9ec2e00000037 + DESKTOP_SESSION=gnome + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GNOME_DESKTOP_SESSION_ID=this-is-deprecated + GNOME_KEYRING_CONTROL=/tmp/keyring-eRfcWA + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc-1.2-gnome2 + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + LANG=en_US.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + ORBIT_SOCKETDIR=/tmp/orbit-maemo + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo + QTDIR=/usr/share/qt + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/2824,unix/arch:/tmp/.ICE-unix/2824 + SHELL=/bin/bash + SHLVL=0 + SSH_AUTH_SOCK=/tmp/keyring-eRfcWA/ssh + USER=maemo + WINDOWPATH=7 + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1279076353.685608-349349716 + XDM_MANAGED=method=classic + + true + + clean + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + true + + clean + + + + + buildconfigurations + + Release + + + + buildstep0 + + + + + + + buildstep1 + + + + + + buildsteps + + trolltech.qt4projectmanager.qmake + trolltech.qt4projectmanager.make + + + + cleanstep0 + + + true + + + + cleansteps + + trolltech.qt4projectmanager.make + + + + defaultFileEncoding + System + + + project + + + diff --git a/onlineServicesStandAlone.pro.user.1.3 b/onlineServicesStandAlone.pro.user.1.3 new file mode 100644 index 0000000..655d954 --- /dev/null +++ b/onlineServicesStandAlone.pro.user.1.3 @@ -0,0 +1,305 @@ + + + + RunConfiguration0-BaseEnvironmentBase + 2 + + + RunConfiguration0-CommandLineArguments + + + + RunConfiguration0-ProFile + onlineServicesStandAlone.pro + + + RunConfiguration0-RunConfiguration.name + onlineServicesStandAlone + + + RunConfiguration0-UseDyldImageSuffix + false + + + RunConfiguration0-UseTerminal + false + + + RunConfiguration0-UserEnvironmentChanges + + + + RunConfiguration0-UserSetName + false + + + RunConfiguration0-UserSetWorkingDirectory + false + + + RunConfiguration0-UserWorkingDirectory + + + + RunConfiguration0-type + Qt4ProjectManager.Qt4RunConfiguration + + + activeRunConfiguration + 0 + + + activebuildconfiguration + Release + + + buildConfiguration-Release + + Release + 2 + 0 + + 0 + + + + buildconfiguration-Release-buildstep0 + + Release + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-FUPWNjaJHQ,guid=1a8d0ffabc19c956cdc9ec2e00000037 + DESKTOP_SESSION=gnome + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GNOME_DESKTOP_SESSION_ID=this-is-deprecated + GNOME_KEYRING_CONTROL=/tmp/keyring-eRfcWA + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc-1.2-gnome2 + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + LANG=en_US.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + ORBIT_SOCKETDIR=/tmp/orbit-maemo + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo + QTDIR=/usr/share/qt + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/2824,unix/arch:/tmp/.ICE-unix/2824 + SHELL=/bin/bash + SHLVL=0 + SSH_AUTH_SOCK=/tmp/keyring-eRfcWA/ssh + USER=maemo + WINDOWPATH=7 + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1279076353.685608-349349716 + XDM_MANAGED=method=classic + + + /home/maemo/Project/onlineServices/onlineServicesStandAlone.pro + -spec + linux-g++-64 + -r + + /usr/bin/qmake + false + /home/maemo/Project/onlineServices + + + + buildconfiguration-Release-buildstep1 + + Release + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-FUPWNjaJHQ,guid=1a8d0ffabc19c956cdc9ec2e00000037 + DESKTOP_SESSION=gnome + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GNOME_DESKTOP_SESSION_ID=this-is-deprecated + GNOME_KEYRING_CONTROL=/tmp/keyring-eRfcWA + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc-1.2-gnome2 + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + LANG=en_US.UTF-8 + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + ORBIT_SOCKETDIR=/tmp/orbit-maemo + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo + QTDIR=/usr/share/qt + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/2824,unix/arch:/tmp/.ICE-unix/2824 + SHELL=/bin/bash + SHLVL=0 + SSH_AUTH_SOCK=/tmp/keyring-eRfcWA/ssh + USER=maemo + WINDOWPATH=7 + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1279076353.685608-349349716 + XDM_MANAGED=method=classic + + false + + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + + + + buildconfiguration-Release-cleanstep0 + + Release + + ALSA_PLUGINS_DIR=/usr/lib/alsa-lib + DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-LgNIjFmiKh,guid=b88c02ef2966f610aac9fee6000006b8 + DESKTOP_SESSION=kde + DISPLAY=:0.0 + DM_CONTROL=/var/run/xdmctl + GOARCH=amd64 + GOBIN=/usr/bin + GOOS=linux + GOROOT=/usr/lib/go + GPG_AGENT_INFO=/tmp/gpg-dhq5SY/S.gpg-agent:22081:1 + GS_LIB=/home/maemo/.fonts + GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/maemo/.gtkrc-2.0:/home/maemo/.gtkrc-2.0-kde4:/home/maemo/.kde4/share/config/gtkrc-2.0 + GTK_RC_FILES=/etc/gtk/gtkrc:/home/maemo/.gtkrc::/home/maemo/.kde4/share/config/gtkrc + G_BROKEN_FILENAMES=1 + HG=/usr/bin/hg + HISTCONTROL=erasedups + HISTSIZE=1000 + HOME=/home/maemo + INPUTRC=/etc/inputrc + KDEDIRS=:/home/maemo/koffice-inst + KDE_FULL_SESSION=true + KDE_MULTIHEAD=false + KDE_SESSION_UID=1000 + KDE_SESSION_VERSION=4 + LANG=en_US.UTF-8 + LANGUAGE= + LD_LIBRARY_PATH=/usr/lib/qtcreator: + LESS=-R + LOGNAME=maemo + MALLOC_CHECK_=3 + MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins + PATH=/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/home/maemo/koffice-inst/bin + PKG_CONFIG_PATH=/usr/lib/pkgconfig + PS3=> + PS4=+ + PWD=/home/maemo/Documents + QTDIR=/usr/share/qt + QT_PLUGIN_PATH=/home/maemo/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/ + SESSION_MANAGER=local/arch:@/tmp/.ICE-unix/22122,unix/arch:/tmp/.ICE-unix/22122 + SHELL=/bin/bash + SHLVL=1 + SSH_AGENT_PID=22084 + SSH_AUTH_SOCK=/tmp/ssh-VdnYT22083/agent.22083 + USER=maemo + WINDOWPATH=7 + XCURSOR_THEME=Oxygen_Black + XDG_CACHE_HOME=/home/maemo/.cache + XDG_CONFIG_DIRS=/etc/xdg + XDG_CONFIG_HOME=/home/maemo/.config + XDG_DATA_DIRS=/usr/share:/usr/local/share + XDG_DATA_HOME=/home/maemo/.local/share + XDG_SESSION_COOKIE=34c09630a6ae9ad92365c03300000216-1278905758.735187-578586685 + XDM_MANAGED=method=classic + + true + + clean + -w + + /usr/bin/make + true + /home/maemo/Project/onlineServices + true + + clean + + + + + buildconfigurations + + Release + + + + buildstep0 + + + + + + + buildstep1 + + + + + + buildsteps + + trolltech.qt4projectmanager.qmake + trolltech.qt4projectmanager.make + + + + cleanstep0 + + + true + + + + cleansteps + + trolltech.qt4projectmanager.make + + + + defaultFileEncoding + UTF-8 + + + project + + + diff --git a/onlineservicesplugin.cpp b/onlineservicesplugin.cpp new file mode 100644 index 0000000..b1d4641 --- /dev/null +++ b/onlineservicesplugin.cpp @@ -0,0 +1,38 @@ +#include "onlineservicesplugin.h" +#include "loginwindow.h" + +onlineServicesPlugin::onlineServicesPlugin() +{ + name = "Online Services"; + window = 0; +} +onlineServicesPlugin::~onlineServicesPlugin() +{ + delete window; + window = 0; +} + +void onlineServicesPlugin::setDocument(void *doc) +{ + Q_UNUSED(doc); +} + +QWidget *onlineServicesPlugin::view() +{ + window = new LoginWindow(); + return window; +} + +QString onlineServicesPlugin::pluginName() +{ + return name; +} + +QStringList onlineServicesPlugin::pluginSupportTypes() +{ + QStringList types; + types << "All"; + return types; +} + +Q_EXPORT_PLUGIN2(OnlineServicesPlugin, onlineServicesPlugin) \ No newline at end of file diff --git a/onlineservicesplugin.h b/onlineservicesplugin.h new file mode 100644 index 0000000..280a9d9 --- /dev/null +++ b/onlineservicesplugin.h @@ -0,0 +1,26 @@ +#ifndef ONLINESERVICESPLUGIN_H +#define ONLINESERVICESPLUGIN_H + +#include "OfficeInterface.h" +#include + +class LoginWindow; + +class onlineServicesPlugin: public QObject, public OfficeInterface +{ + Q_OBJECT + Q_INTERFACES(OfficeInterface) +public: + onlineServicesPlugin(); + ~onlineServicesPlugin(); + void setDocument(void *doc); + QWidget * view(); + QString pluginName(); + QStringList pluginSupportTypes(); + +private: + QString name; + LoginWindow *window; +}; + +#endif // ONLINESERVICESPLUGIN_H diff --git a/slideshare.cpp b/slideshare.cpp new file mode 100644 index 0000000..bd17d63 --- /dev/null +++ b/slideshare.cpp @@ -0,0 +1,296 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "slideshare.h" +#include "slideshareDocument.h" +#include "mimetypes.h" + +SlideShare::SlideShare(QObject *parent):QObject(parent) +{ + manager.setCookieJar(&this->cookieJar); + doc = new SlideShareDocument; +} + +SlideShare::SlideShare(QString *username, QString *password, QObject *parent):QObject(parent) +{ + this->username = username; + this->password = password; + SlideShare(); +} +SlideShare::SlideShare(QString *username, QString *password, QString *apiKey, QString *secretKey, QObject *parent):QObject(parent) +{ + this->apiKey = apiKey; + this->secretKey = secretKey; + SlideShare(username, password); +} + +SlideShare::~SlideShare() +{ +} + +void SlideShare::setUsername(QString *username) +{ + this->username = username; +} + +void SlideShare::setPassword(QString *password) +{ + this->password = password; +} + +void SlideShare::setApikey(QString *apiKey) +{ + this->apiKey = apiKey; +} + +void SlideShare::setsecretKey(QString *secretKey) +{ + this->secretKey = secretKey; +} + +void SlideShare::setSlideTitle(QString *title) +{ + doc->title = *title; +} + +void SlideShare::setDescription(QString *description) +{ + doc->description = *description; +} + +void SlideShare::setTags(QString *tags) +{ + doc->tags = *tags; +} + +void SlideShare::setFormat(QString *format) +{ + doc->format = *format; +} + +void SlideShare::setSourceFile(QString *filename) +{ + this->sourceFilename = filename; +} + +void SlideShare::setSaveFileName(QString *saveFileName) +{ + this->saveFileName = saveFileName; +} + + +void SlideShare::login() +{ + QUrl *login = new QUrl(QString("http://www.slideshare.net/login")); + QByteArray data; + data.append(QString("user_login=").append(username).toUtf8()); + data.append(QString("&user_password=").append(password).toUtf8()); + + QNetworkRequest request; + request.setUrl(*login); + + reply = manager.post(request, data); + connect(reply,SIGNAL(finished()), this, SLOT(afterLogin())); +} + + +void SlideShare::afterLogin() +{ + if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 302) + { + if(QString("http://www.slideshare.net/").append(username) == reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toString()) + emit loginDone(true); + } + else + emit loginDone(false); +} + +void SlideShare::download(QString *durl) +{ + QUrl *dload = new QUrl(*durl) ; + QNetworkRequest request; + request.setUrl(*dload); + + QList list = cookieJar.cookiesForUrl(QUrl("http://www.slideshare.net/")); + + foreach(QNetworkCookie c, list) + { + if(c.name() == "_cookie_id") + { + request.setHeader(QNetworkRequest::CookieHeader, QVariant::fromValue(list)); + } + } + + reply = manager.get(request); + connect(reply,SIGNAL(finished()),this,SLOT(saveFile())); + +} +void SlideShare::saveFile() +{ + if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 302) + { + reply = manager.get(QNetworkRequest(reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl())); + connect(reply,SIGNAL(downloadProgress(qint64,qint64)), this, SIGNAL(downloadProgress(qint64,qint64))); + connect(reply,SIGNAL(finished()), this, SLOT(saveFile())); + return; + } + + QFile file(*saveFileName); + file.open(QFile::WriteOnly); + + file.write(reply->readAll()); + file.close(); + + + emit downloadDone(); +} + +void SlideShare::upload() +{ + QDateTime *time = new QDateTime(); + QString ts; + ts.setNum(time->toTime_t()); + + QByteArray data = this->secretKey->toAscii(); + data += ts; + + QFile *file = new QFile(*this->sourceFilename,this); + file->open(QFile::ReadOnly); + + QByteArray fileData ; + fileData = file->readAll(); + + QByteArray postData; + postData.append("--BOUNDARY\r\n"); + postData.append("Content-Disposition: form-data; name=\"slideshow_srcfile\"; filename=\""); + postData.append(file->fileName().toUtf8()); + postData.append("\"\r\n"); + postData.append("Content-Type: " + MimeTypes::getMimeType(doc->format)); + postData.append("\r\n\r\n"); + postData.append(fileData); + postData.append("\r\n--BOUNDARY\r\n"); + + + QList > params; + params.append(qMakePair(QString("api_key"),*this->apiKey)); + params.append(qMakePair(QString("ts"),ts)); + params.append(qMakePair(QString("hash"),QString(QCryptographicHash::hash(data, QCryptographicHash::Sha1).toHex()))); + params.append(qMakePair(QString("username"),*this->username)); + params.append(qMakePair(QString("password"),*this->password)); + params.append(qMakePair(QString("slideshow_title"),doc->title)); + if (doc->description != "") + params.append(qMakePair(QString("slideshow_description"), doc->description )); + if(doc->tags != "") + params.append(qMakePair(QString("slideshow_tags"), doc->tags)); + + QUrl url("http://www.slideshare.net/api/2/upload_slideshow", QUrl::TolerantMode); + url.setQueryItems(params); + QNetworkRequest request; + request.setUrl(url); + request.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary=BOUNDARY"); + request.setHeader(QNetworkRequest::ContentLengthHeader, postData.length()); + + + QNetworkReply *reply = manager.post(request, postData); + connect(reply, SIGNAL(uploadProgress(qint64,qint64)), this, SIGNAL(uploadProgress(qint64,qint64))); + connect(reply, SIGNAL(finished()), this, SIGNAL(uploadDone())); +} + +void SlideShare::listDocuments() +{ + QDateTime *time = new QDateTime(QDateTime::currentDateTime()); + QString ts; + ts.setNum(time->toTime_t()); + + QByteArray data = this->secretKey->toAscii(); + data += ts; + + QList > params; + params.append(qMakePair(QString("api_key"),*this->apiKey)); + params.append(qMakePair(QString("ts"),ts)); + params.append(qMakePair(QString("hash"),QString(QCryptographicHash::hash(data, QCryptographicHash::Sha1).toHex()))); + params.append(qMakePair(QString("username"),*this->username)); + params.append(qMakePair(QString("password"),*this->password)); + params.append(qMakePair(QString("username_for"),*this->username)); + + + QUrl url("http://www.slideshare.net/api/2/get_slideshows_by_user"); + url.setQueryItems(params); + + + QNetworkRequest request; + request.setUrl(url); + + reply = manager.get(request); + connect(reply,SIGNAL(finished()), this, SLOT(parseList())); +} +void SlideShare::parseList() +{ + QDomDocument doc; + QByteArray data = reply->readAll(); + doc.setContent(data); + + QDomElement root = doc.documentElement(); + QDomElement child = root.firstChildElement("Slideshow"); + + textDocList.clear(); + presentationList.clear(); + spreadsheetList.clear(); + + while(!child.isNull()) + { + SlideShareDocument *p = new SlideShareDocument; + p->title = child.firstChildElement("Title").text(); + p->url = child.firstChildElement("URL").text(); + p->format = child.firstChildElement("Format").text(); + p->slideID = child.firstChildElement("ID").text(); + p->thumbnailBig = child.firstChildElement("ThumbnailUrl").text(); + p->thumbnailSmall = child.firstChildElement("ThumbnailSmallURL").text(); + p->downloadUrl = p->url.append("/download"); + QString download = child.firstChildElement("Download").text(); + + if(download == "1") + { + if (p->format == "odt" || p->format == "doc") + this->textDocList.append(*p); + if (p->format == "odp" || p->format == "ppt") + this->presentationList.append(*p); + if (p->format == "ods" || p->format == "xls") + this->spreadsheetList.append(*p); + } + + child = child.nextSiblingElement("Slideshow"); + } + emit listDone(); +} + diff --git a/slideshare.h b/slideshare.h new file mode 100644 index 0000000..6c0b998 --- /dev/null +++ b/slideshare.h @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef SLIDESHARE_H +#define SLIDESHARE_H + +#include +#include +#include +#include +#include +#include + + +struct SlideShareDocument; + +class SlideShare : public QObject +{ + Q_OBJECT + +public: + SlideShare(QObject *parent = 0); + SlideShare(QString *username, QString *password, QObject *parent = 0 ); + SlideShare(QString *username, QString *password, QString *apiKey, QString *secretKey, QObject *parent); + ~SlideShare(); + + void login(); + void upload(); + void download(QString *durl); + void listDocuments(); + void searchByTags(QString *tag); + + void setApikey(QString *apiKey); + void setsecretKey(QString *secretKey); + + void setUsername(QString *username); + void setPassword(QString *password); + + void setSlideTitle(QString *title); + void setDescription(QString *description); + void setTags(QString *tags); + void setFormat(QString *format); + + void setSourceFile(QString *filename); + void setSaveFileName(QString *saveFileName); + + QList textDocList; + QList presentationList; + QList spreadsheetList; + +private: + QString *apiKey; + QString *secretKey; + QString *username; + QString *password; + + QString *sourceFilename; + QString *saveFileName; + + SlideShareDocument *doc; + + bool loginStatus; + + QNetworkAccessManager manager; + QNetworkCookieJar cookieJar; + QNetworkReply *reply; + + void getThumbnailSmall(); + void getThumbnailBig(); + + +private slots: + void afterLogin(); + void parseList(); + void saveFile(); + +signals: + void downloadProgress(qint64 bytesSent, qint64 bytesTotal); + void uploadProgress(qint64 bytesSent, qint64 bytesTotal); + void loginDone(bool); + void uploadDone(); + void listDone(); + void downloadDone(); + +}; + +#endif // SLIDESHARE_H diff --git a/slideshare.o b/slideshare.o new file mode 100644 index 0000000000000000000000000000000000000000..8008157fbfb5ffb9a2377f6574ccad98ca906941 GIT binary patch literal 58960 zcmc(|34B!5`Tu_=lM7)>0-~(KKu3*MF<}jEO(cPd1RMk`RcjJLkjRpl3|r+}g9+#~ zM5EQJwN+fOXkBneiW)=#Ypsa;R&k?@^FGgc z&U2o#-eo2il$KA-2n2#chk!Uq1Wbe-_nqxUisWe#B#)P}2O~~-`sw3feH@~XA$=UK zk70d0Tp#oF@hE*fS|3N~W4=C))W^~KI2Om^8IiV0{mbIt&YT{p{&~+x+u)rzW<}bL z-WeI6jP;H*C$l2)H}^tRM8?0d_~YW%%tauo#o@-%UN{`q!Y!cb9x6ud^n?&do=4tSG9i!bP^7;{NI!DrdZa~>EJI?aM_Pj>vN$W!dc3Nlu4>u%4{}=8 zQl91yk@!myS@l}%eW)xld2&`2@87>a(t3W8%$OL3Sk6$CdVZD!$?J25mXHc?=jW>UA`|bg;^ihDQt_iqJWs{5Ogvx3_k2(Kid#zsnj<&T{CE~MN%1eYs&Wx8 zkAJL?Y@JB_iAdY|N*PX6DL7HZ<3!no6IB7X)#D$_0+Bzto&G#Uf1aT~&*2Z`l|jiH z2tA2-Ax>nLHzD&fjSC{W$-aj;^cR zj`oT#E!^5ZcZAW0c#$uj=Zoj3#9J?zCEedXSNDetW<{E}=V^xiAmjPIc*u>%mqt?b z#g|5Ty!iA-&@c8E&%}6(#J_u#d^kO_@`JTF$~Jg33ulpdOSs*TNZTJ|Bog0V7T*?$ z|3fuzs}eE&dvUKw>t>c|drPAyiDz*tyvb6HH1>yQgTP&PQIdG=Z&|`J-oN#3X#<~2T%1Af9$L*f2 zCE-eAbWY0xIbT4fhsq=>Es}<2!2)GyW;m^#Jze{vkvK{z2}ikAMX(Apo)V&TJvG7# zZ)#}SMuh-HJu9vSqFRTzw*2z=N1ira_xKkEMcV#nUL^i%d3=wmeSFo$&{A5^@emGZ z)b}4z$L-o2?Ig5h6B10>swIgiEh`^ii*q$I6ra7-^vf0Ds7z0sP7{sW-&Nb((;GX4QclPURZ@`L0i#7z0gjmb}v zuaw8Xl&nZs!Fb)9noOrozB88s8?R@DcSqt2!h0j}Z_49y!u!e*`3fu3vIw3v*T+f80G?`RxewqS%p?YFhlP@T^Gdf^cPd>zwesa-7v;5?|ScEg$Bz6rx2RLA}tGRHYJ!gXno`MOe-2DLJ|zJ^44e&Y6CZ{G)8Yt;#~J-efY0 zBk`@tB>njZ{ur;C!~a%vzOhtEhHrRc&Sj z$#W2lR7bG|sLz!ZOm%0mtJL%gH}6^DWs%m~!%Zl?y!Gbr#qxN&ns`?}PL;tzT?EUF zpOg1eoSHZ{q76akiOQbiwX{23kSovw(DHhDZaW`y#Yf7>cr%q}l1zUyS|Y7~p=3FU zU^2lB6N&#_WmGBN4D+g-VPsk&4{eXubG5it22!r2@ru zI)*6*XKrMBSD1(fzhIfN4AnCyA#>v2y2Rha2+TcGuASJ2z#k=Hy_rECp(X>C#AnSIT3N?L}FgNU9|ylWGZ(P^VmZ zod{irq?T3Ki4^%rd;+#hXj8h{z!E@Bs4VZiadrEn*{`B2rnZ0l3FCs~15lRyg!Xr5 zgVwCu`;L_V9Xnyf3@~$H>aZ$251b_Zvzz>b#q??N4;IrEaMH>TUZ&y!aLw`eviM6=;*bA-?yS5>E6Ss3 zFc)siFL<&%{WkcgW-B@J<}zL8{6BnFn!w_VeP? z<>nj{!Kb<_Mc}k7xi42viepivD=QVl7Pp;DYTGOu*({RSrkN7eLPJ_1Z>z19 z$nEu6w9wJ^I{uNXMmcSBxCv#@%-_6CPq1eAV5Vf7=f7Zk5YZb-(v`b!KQ{i4(K47@ zPW$&SigE)vEjLLqF!x#j?GmL`wTM=b6TkBR=u|Pq*i%(vZ^De3nF%= z%Hvqa(fPl}wVht4T4#i_%tC7R>5=$_7o$ksMye5H#2BH6u-Tj!S74JsX3Kp-krYh~ zK(X%rd=n)~_3}bXO2lRT6G2+9z3uu~xjk3bCZdSQwOm_|&ejA)skZ1Ik+Nnh-zCv( zTa%webT+f(n_-vSTt<6m)l19c?H)0zP&XuSNhl6P^`rD zI3G{n$T5ULwG6#an$E`&E?6tUDX=v&{xJFvxk@&Vv-67~ULu+F`RW54eXqu^{ z=5=>lD$(6>p`%oKJ+Vs{v=|I1>STa7P|I7Z^CE4xOBro^OE@1HXhh(`k%n1WYi5|D zvs9GEQ`F?)dq0#85px%98QPzQ29y{yMIxo&qeDSGgIps*+6W9SHP)3U$&iR=ND+MD zUYVjaB$?74#JKW}%{3CWgh{t2cs6Kx+s$D?CAQrs{jE2=Y6&a{+$S3bS50Q5wMc|@ zvUOQ5ZZkwy?T=-x+Lg1a5-YQ;gjXlJ@v$5E-MZ!Ky5)Oyqjahp?n6>_)qF*D)0=73 z4N0bMJ+yP7z@WXlZlv3zn=~c$9yNZTN_mw0K(j3Q!K3-0URBUv3f*eR#R@iul+C7} zDF%2R*dPta45yZ#rK0lAjb1%aQBYIP?bQCQl+BReNYWzr z2Od2O)GJw5n>uPcN-f8rT`Nmhcg!#d+_eKWAQ4Z`w^9%bm|k?SWY(LWObVNjUhduT zag)5=I<~y?+;OHZ?98%)_1mm0%0j(iG^M$-70jZk%ron0G7GelQFWh)h-&4PkJG%G zvJ@4Grk{zNmaD$S>d`hSQ1C@EGlG?|d0Sxozj9VL0XG#QeJM_od-Qz-b`vr2ukYp3 zRYHYtmL8WyB`#Jlzd3V`@#*+-Pj?(euhs-oh<)Do%73Aw!e8&BTc zzev<5*aDZ3T`R&7rQ|qpSzf-I|Cz6O{-~0>SwS!VEX9|DOZzKTJo#@OS9cN;y|CKM(rO1@LivC=WKV}3c{(?@=OlwcvmI{(Dz#L?d-cIhI z+f_P}XoMspi5b3<|Cp*Fai^4Xw^?Ryn26~7Q`FIIO5JLzU#8uUZN#*#o8P;x!FH$} zoC4dAwJ8eaw3?`q9>;xuh2^G9Zt6@L?&QgxS(94?W@GB`>S~Z}&q%`Cp840-1wDm$ zG#9ogJ6jtg@-~=fE}pB=j%2OW@^PfKXdWs+F_b0t@1)&bJz^BR>d=f{NjYFYrK+1Q zk$9$>(+rkdHxy+sO~jD)rsoHGATLUYrY(V}ocGZ&r1>ckTAqqb*?J8G$_K)h#%o3Q zqKei5O7)5#O2vbc8jpU09db%ZXp332K?_OMU*h^Gq`ZmZa=|vCtyNZa9U@PlLhip@S5=vGF)CymAB59 zn{<-VJsP`D>TcLru9cb8J{`RUWW7t=O#-S(nYrsx3ngf_Amd;!)lDfhw40_>oL9Hk zvN~-{fd1VKq@2N{6Q z(1apW?^$E++<-(B=T7`EjZn%Kz87ubU%>8K?i==^Xtn{9?nVxYDYBD_!?6isde27= z)bwJPQvW0wS>G>Ib_gl~Q?nf0Yo_{=py%ng=pqi3it^~ano?07U8O12%A-HmlzijS zBSBMom|8!nHti6kd9dE>YN=b5gqNu(U76rs4r@4>WNNVmzKgWV%m)2VBBj?eU><0S z0Y$D`o3sIysRqpR45;)OfFx6z&;}s0K`&%#&!%|bPoOCV%yJE=*9JsW4VdK_5cL^= zBvabYWN9fEzJ0X;q}LPNgA0&y%wA>9+wvmKC!*QW?OGz}2Go^zBIeCqW+|5aS6zb2 zr)>Uo$gN!-wQt0$U6HSLNHVn>AbV5F9j_s}gOOfOus^7- zUA|YllZm2s8xF8`BIwL?6m_ae#E?tI;OklCOniTsx? zU#D~)*>R{^`6!$Qdl8QGG*{j0V2wsYnS?z3JEXmsl~k+JjiFr9qVK7a){u;U@AUz7 zyH#GXnJc;#;gDVyP2$(yU45gBN{`Yy(6)l^SMP7FS9=}Yw3bg`{UxZYzPHUBo%*Z} zJEAiE0Lp(UXv*{S>ANOoXQb`$yl@-ZnXIdabsk-zDNW}d{hmAqSz1>N)h~*Gs6mW} z5I9e{Y%CG#y736QLg;+mm#?~G!i_hVm!xoNT_u0`_guc- ztjodgU)u`SVTw4mbZ3xP&zM)vBsQuS(%-UHRG+zSHH$r|>4!Tj}YQ!Y_9D zn_uyAsZS{ReJR)9yIuXsFS$JJH%vdD9-3*DAAZmJ2fskQ zIi+2quAa}BynEl`WhLzOry`~NIdIt@E8YArGQI9~{1ShE%vbr(ll>7>YzOS6t4{2l z>6C($z_OU2!sT;A$n8dgmZMV&uG}v4D9lmjVwEniU9+%ANIA1(kF@H0LL}vOJ{qZN z4mFPxeEOP9HIsLu7|QDo#N;2CZ1P>5?2ZqTU2AgtXVk(mcwaES>hC*+yu>!*T*7tG!31m z0TbmAVO~z0sk2t9qp>&f5~d(lp~R!U_>D5|)+2EcypzP5PnE#)Mp-#yM`DLko}|lU zQ}e{VfXP2d@gk9UjbfMZ^z%~NGSLST%pz*rsN1$7m;+VG1d~X<4wCpctxf#-7M`kO zB8kLL2$PBqGpR&c@k|I{10}X@xY&#;y7-bz3u9+c@MOU*RY4lHB#*SUM$sd%TV3U9 z8C)4knLo%u=H2~hQSmrl6H=Xowg5B^%@zQ!UCKKKFs!*F*LS~0LOe3X{SG`XP(@J{ znma-o_LoqvYr2S*j+|9HaB<)1T@|>>yHLk#GFddOq>$WBq<<$8>O}H7k^D}iuoEdt zC7oP)g}My{w^x#D>Hdq_X(>OTStLh#)HDnEog!vXn4P2N>@2!m)hd;qPTRMqvDr^! zOcCit&V0`pLas5ABRynbIbI7Vg9w<3kPM=@XV4_N4AE*`gGjL_(lfn5xe%h9f{w~N zgj|CpN4h(6mbW#A$RGk{h9iS0?v=Kht{k*l*C0~tiA;uw&qK7~r%9Z0?xdqKh){X_ zeW{0T@O4O$`=p4wMB%M@_aP0;AsMf%?U|lZ*BnyoiO_SwPUhUKZfM}ug$-1uGKWr0 zv1D<(jC+ru+RiUBR}JJCO7@EBgPxsRPGdwpgyj1ZbW}z(;ne6MBPwN_ z8-aJ3%=6RK$4ogbv*_yEeYXiy2{L;|45w7MS%7Y$DJtcjqkPz=uCwSJ15|6s&#Vf1=DYrN#!=cjpndE2a#!{km z%lm}B_NCXrbE)Ovtq}Q8byqqqkK@sidAS5{T z?A+(d&r9L7LMT7Jo$5!I|0#vnyL?y*kGgzM%5~~)geXpWTJ^Kbr`>+r}#eX)jMamf~W9LeR zajtOH?+~N+{LuN^p;MZORSKsR+|GZ86f2T)JCUH}=#+vh_Y)(BdaN}G$&1+d!|gfM z$-t#^I-Y?Wg<{%|Asl-apVUY>*%8Q__E})787T+P)1Wg5cWsHKf#g z{^lCiOgvbD)|!q>bIk@sT+bEI9;Cxf#%rlKXZO@-T4^%Li3@R?fe5LPCDRMM?pyho zUnF#=yp)m=akHfsYGy{fb?u%elk|W-xtadZb#Hs}spJ*O%jNgT-lTfUlFH+sCRZkw zW9@EFG~zFNKR!{7I2Kdn^`7%2egT*$!yn)TeG!sf9hq%s;siIRs-t?TQ0bB+G0>k= zJszcMd2{9GXc01>UIU=_2~vvkGI*2a<17Q-FJJ|d;++^Es`M+gTp}@+YJxPH_)v;W zrnoTeLy=q)NmT2MbQy@75l9Omjc3d^vXoe4B8j6qWsLeVRvKB#SZ^YUPiWdhVY);( z{Y?<+xRKVbZYKa}6AGTrB=Pq$9f*IPNy=6^4wT*DAhD?n{!o>U#&N83Sx^*5 zg}5rL0?wMCcr%cTSJr-;F-VAqGYCJC0ns-yC=I0xalNim<*|s2cm5U>B}0U0 z81QvaTpJ)K+!N@9^T())p9dVAUPBt-tm~z-?g@$x)F>#P$#8J~lH_k@952Kjr1@3) z^SLgg=V)h&hycvS2WAgD$SD(po%;jgFz4O?Ja>0MjC1Y^zT+Jq5HFAkP%x0{z0`R=AXWvOt1?jYUKeJF?{v;VVm?9 zM+S!W!)b+cOCWFqmAEO;b6X(zY9M=WfO?mF1LJ?B?EXNnL5NRxFuH5-ZFgAyt04eK zJL{;c2yv=&c^C2Xp=-K`R zM}gpl8QJX_;#%?#W&~w>@X$b?pY#%<(5Vaj+G!4mOLWz!X0j?$^)m-N~N!y2HqgJqYjYLHOMs&hpiO0HO+O{626s`zp?RdHW7RdH30vj;Lc&egreGdVD7)j{}!F7Z&N^5dqE zICbPbA#qv2xh*8nwSFHGTjcq30q0*s#TS7L@bwwa0C8b+?VORG)!#Ibao9ByE2^zhlv}UAxKR+&P7ATon4%-hmeX{S#-W3%ei!@csa}Y*AVe>mh)jq+}X`}BP5>aPN`pZcb*Q3Z9VAxs~*mM zL&f%HP0G&ga8Kb1t3VpX*#TTr~Bj z^L4$QRl~%#-Ula!i9~PbjiKU`-ou|5Dz5G0+&@g*)aOu~Kh?)sH%vU&rRzy^?%)u=DZ|apfV- znnT6_5b?4k`}#Y#3=tO(a4s4y)(#*8Hx8f%**SokVy`4k1F6xj9!S=1 z7)X}y7&r#n+6FnB2a9!soNdF!#zCb2=|Rpz!^L}poco50iv}M9a?zov?v4=tq>SlX zG6FZy5PmG9?~571_cOA;$`H*oYq?{3f8gMWh@a{FO0H3jI9^PnTIxA8(6=wf`;nND z16u>mj(|Y7lbL1u{=i#7DtC-?`v5U*;GYJF#mF(QiM){MAQh|F1B1nH9Ov%A;yTBgq1ecZ0;WU7W85 ziMzTuPYx2hB>A!nrT)IF^Y|cfPgm#BLDXAs93_E>Q zDE3IwidkYX_21+`v89`{XP|hxo3mx0NJ?^TcS^mbyL0zI@l^M|IB)9V+&)nJ78Ark zaV`4zK=DcsXa4}2GQJ)l?(9kD5A}538zA=fJO=02_HterApY9xD4c)Y%XwyixFvf4 z&Ua@!e;pu_+0Fw4#HaFneGZk?kuwRYSLYsz^BuWl&+c5}Utu&1679X|e0^`KV~0F{ zxi@)ZpFF>~5BY6vAClSFhdjKqPXyYoJIJ|jfOz?!Q8>S>uXE1;@k-yBIKS^;XGedr z|KO(sh`ip9vc21nTI`d44jK=ASBSg%6W-FFnzW53AtC0)V)e%zd+gGsOGh*=sGU>O zIIpUqX2hbJ*s%-h&Z%7_M$V~Qx@bXN)tqQU-8l_4jg5Kd)h>#S9euPq97#GT*!5J^ z*B(3a*mG)P6}o`BrHvJ{msc!qtZ5KpLfxWR&7#;bCAE$9b&a*L+PX!@h33{ZEIejT zRjlgx(4wk^H75>tb5=AqRL`wlP&54a5FJ$Nft0_vo+{y)AdSYKg^L%&YU`^SV#l&V zXV)!WG^eUz`H3f=I&*4C@oB#hVx&@F^8!_-LVD~(akz}sS2Z>+t!tQbq9~}E8>?w3 zCwJx@DMrq%T~ymRuVxO;?M@Q~ja5r(CZdWEtEjH4n_pW~Q9DOWE3a*goiJ@`O$@r{ zPmug10T)-yuURf)jbdI^<2*qIkZXi7!X*``r6@ps8*4}tlpk}9sbsJ2VmLmgMP@9o zuQ@IxdUXfu)jdVbYmQiLY(b3>9zYMOZm6xNc4RbGbxxykVM*O0s?>DV+v=8z8B)j0 z)5^s}w0l)dl$D4X^A<0hy{M{o!OVsQUS#^hss#&3@L1C;MTzd7qCnKmiHSLN)i~CR z`uZ4-jbhn?M$^*j=zgEObyAjlVKI>X%1i7}`Tbt+du|t~hq}qv)P0QB43T z3&r(G1iy#V-;}jD+g!n@`%#~6bw%aLkCtDxpQ;q=r!MN;FLj&yeP{lc`kB9qOdWDs zR>M~O)D3%G>N7>y+fus}$@6m2%?RXTH>xgC#Pv?B9_hIzN9;8Ib2_onyp{T?R>Jk* z1x4y|cL6SP>H8V1edxZ9`};>*bo=Sw6-wS@;_7isVGFxBU2G>E&CDfWcv|rpQj>guT;Md zkX*;^ex-tT9%4sD&U%*0)mGI}i?U!lcaO8H${{G`^3 zo&Beb|28%%QvD&mrI^H%k8hH_T>X*eC-4Qi*J3^7op62oyLoF?+4$ENzq7A+e>Q%_ zrv>8$&8vSus`zYt>y+iE-;w&#yY(dR2H?T1Y=pA$Z^p9uPlP2ul-#{{p>G_Owf>K~ zNirqASe^JKO#SJr=3mj5^7r9aAo}C0efUwM*eQ=@A>C-kj}GDH2!19?eK|2m-$0J_ zi^N~1Ut`IQw4Q|)Z+^VLy1!&@T_xXC<3Cl?c3G_V^f>ttzJ_hGnEPeMGY3OcIOr04ySK`)NFrwRTyVrJoeQl@4725NM+ii$! zx7MFVR(%-5%MPjc2$OFZZ|kG#IsdsGspIDzu8`uL3bA zMWd`cp5!UmIuk8Rb*IX<&SX_D!7BTfhy42JrYNQ1yuW;f=WbK6cb7WH8iQ1aw3?HO%#(-1oO3t z<{^p+-9$05Me@C9A);6kbn0nE=qOk-Qaeh{sxvU%c%3E3*I6j~|3^PDgUVg+wr7Tk zd1EosiWVQ=H3oO6f$rUyJWi&?)yO~C{ke>0{7#6wk8p2U>sz`qk=Co9$*v}EVY@lC zFv?dyqc&Z3*iTbCtQsM*vAqs^5bLkgS$~bRPDe{e-M%~>4IM>8tDZd_?HonLbPUZL zMKkLdS~-eV)-g146pgH7tc__z(6r3PK&h|~f=Lr592d%)G`P5>Krqbc4*V)wE=#8G z2n!K3<>U6NkR1fa9Nfpwq*St@E#qWqLveOqNj6@0cUEVv2?nbJ-Lvyx84Q6CY?|1k z1f+zK(jKI98RTu zqJ1gsPm!ILy;jR^hHNSH9u1j7Eqe~mrCxNw3C$U3=!)*yxy9L8ksd!+C#5~eZ@abp zaGX;J+r5Tq5+cMWU8IMY7)$ev{`QgY*fyNo0!^j|6iS*ZGWSNR#n?*j#ltu_)^5lc9 z)p z)m>oxyzbeB66T?wx!vd#8om&t?!`HE0};ZfNZb5doXgXx*`bNe!POZ{P_v0WL==3E zmYD*(QtfdK(N-w)CS~sn1c#$jr!j~sNp;+)b%u;z4y2APX;sQ8%2vlP$_ncN>(+6~ z>R@wbS$1g3nv4u;LG&o9XStU94JM2Osb_iihG1}(lh!D5FzH;Ybx!SlpgQ+C!TsIR z>O^x$-+iWaUi@Qx_eoln#XryXa}(@6dTxWLy0-DZ9N(x$5nzp9S~#uv7{Kk7!)JFjh4i$5?|p z&NF9Nw5vwMYL>;s2)cPEM$B$(6eC1(xIu^p zSX>?ZPgRO8iBA48mHH1ROx3f_4PH2=9Hc`dHP6;8`Jrx^Z<)Yn|Dk#_NWbh zM;R;AW?^RL!%U113<`{jf@!9+l+Cesk%H0Z#VQt}m15{sxEox$q_m)b#l?u~x`otr z#fU|9v6>OsTp!bjHl45gRn5GLxeat%*gp`*pb}tatd!`u-_bOL+$7mG(^k?iO`P?H;(%Cew#>k-b*Tn$xrGI#>Zd(nPBP4 z-*Ffu$?IU6)U51`q!7w;(ZH`Cp}JKU#nN<$n&AuKbPzEPtP+{M?t3fMDuL^$+3W zFF%CB)0MyP0LveQ%<1Z%r_0YrnG~pe@}`SQGd%d)e~qR5dR_hoouBGYbEUuhjkfa3RjFU`!g1~|AFrdP^?&G9 zm66()0+pYKkH36+rJ6+i<1ab|5P|NE@Zc{$X(_+xHI-|<&P?SWg^#~{y5E?t{C&E7 zW4~6@ss5voKVARZtIIDW=MwVmpJ zo2C2>x_r8q!-L=d>n!E((B<>`=cg%ukEQ&gX{uDZzr%yS{I@LSi#JuS4xO3&Piu_7 z{Rd#-PuKoCb@_T2X)T@me_!NJ*Zv*4eC~gG=Hf5E9Qla_Q4b#0pQd7d-TwF=wf*E< z9!&l`4smXp(;RQn`F&zyr!L>mO+Lf_qVxOAck{P*HInLR>Tl=+$nUQcrOn%|B=+ii ziqwAN@iF<$_@O-^RCEfJXDD=uPr2WIiu-M+ob`)T{vs*>fwnX0#!ol!bmecjfO6qk zgwC&Gp8rkUb|kwp#V7mIr3ceqv63AJr4t7?PXWDT8b=vSkDl(OKv3>9Jy~-Wl>gDr z#MH3_2htPOn4aaC5EKKI@|xZsB1IrM9jBG2a|p^6Aswfl);R>_UF>w+zk60PLHU$7ojhH& zbPhrJ`dQ$LZ3U;~*RRTfbn}l?} zpgWtSDhdi3)ty67bngs7f`XnfbPhq$voiz!24i63F$6m zdIs%_iRb$`?N^Bx`S?qkM}3^0S(ALF=B8)lp)04W@A2RyU$5nRX+PCy-sIyKY2NPR zf7X1h=B8fHYret9_iNsvIX&a2KwsrgXXkMiUS#2?TX@XEe`n#hTR8oOeL6ewt+KTI zGYb!3y-%m-FbhA&!mqP%`d0|lzPr09|I+&p6zGRB)0NvB4VRARS@?JhpK0NXEc`-n zva?-pn5Z99_@hPsJ`4Y+h10)`Ojj@Zt;%%#C<~`w*-R%t%fc5~_zmF0*?z#>x7lpr zFG)^!L{u2AkKb7MP%I(RpLz*+Ov{e~PiKFLg;!YkuPyu%@O0(gsClJcdirR49?-l= zb9#S;!Y+&ccP*Tj#&q>M!op9n@QW?{MsTW^-_A!gH%lbFLqlPYg=b?zCOsj&bkch? z6i%@4bHRs;kd&c6rrqh?igf%o$&HjJ|F-1ePI?^lkKyi{ZJvCd+}nqn`tG*q`4XJ`ut5(*>Q5B< zV*`-R&hZvL-NI`vyvf2hS@?4n-VNi2>@OOu?56jEC=3TrXa8smpJCziEqt|w|G~l^ zv+y@8{BsNMi~gFfUdLPbR12@L@Fwu#?0U`IN4r~c?|Q9Gxmmm-Io%;r;bnd70wbwi z+K*9y-b11=96X)}@-J+@mwXx+D zOY)&$&H^fb=Axywi{@0ER?~=gxkzn6zW0V#K|y0pY^MH>WNFlBO)D1FU*oikjfb-0 z`dWPd(k@dl5<-nN)eSYV$v-GJ3Ubm=`K8EIg~raR>GYaYMJIDdBX5cK^~==Ey#C`L zI0N6vv`bK()R!^sG6mAsy2TCE@_VX3AUK99rN7QP74IL}MaRgm(57~Tg0XWO>J}C^ zR@c^=chjPit7}pHMN1cw6Gl(NmqaHNz$wN<$~E4bhG=klvu{qtqQwgq$njz%y%)03 zU)8&Zr`61*{I0UGvAUVDxrNFo-mAU5sxgcms{4;IuLz!2bKc^b#+WovinuoGQ8Tr` zFFO_vL!D3~H^ayRqp!HS8ehYnQnje+oSKHw_|kL?a-CEFu~#jr$Z^w7oqcXib!=R9 z-J(S}mPXNu;K}I)71KvmOdUBbRxlc`_E8ePyh|@GN>6pt>{`u7RKE8eXXU8L1*43? zr`6OiSU$cghBrHBFOJoecCPREVmDE`zHr*au6Bl4Km0@Bo zJGG={No{pa!N^mQGNo=#4JDOIM|!E_8fvQM6r(4~p5pN_OB-t8AGFCbs;?>oZyDA# z)+kXvhzs0r=F3V;RVs&ZkLLook-C$Vv2>(S_=0}AexwXZeF4?HN-J&boTMjq^QNoy z)moYT2VNu8dU&Pf`>Yjb%s8DxGO=Ks>22ye@uyTZ7&lldY?95e(5h1w3M0cyE6MNN z786F&l%|FkS!2$LtGU5jvkN-SMHU0m=TelWsiI%RqDihku3t){X*4OT)i~*FA+Nu` z%#<|g2c-qmN~-y6x==a}KrU4u%~S`jHI20ClK!2QX?ttB>Wcrnce=f9o^F@rD>|)+ z83<`clF6QK<7axWtyZ1ieTJ!CM;)i$2Op)oyU%B6LbVC0s9si8F}nsoZc$NP6|0^n zDkQ;9XI=w-+(E_gYPLx|G)>G#at1@vW?r{hQg* z^wSx#*5l4=j5Sm*tWRA`F+XFt{NKH`jas>j72H}IoxJ2+Ij8xz1+*)RVCkr7D4jaJ zqG06YMfmXx1sc&Bt`f>T-hHFIU}OVYrx8CvBG+_SADy@)x}-EZ5wFUlEV(%8K9a8c zrR^p^AkVf%cojdTOPM6KLt-siFlqrTG~c{vR9$ZTG+f@)%&1*hQ!u7_aYF-MY&Sp& zO!g$O$dh12Or@ALo;Ffb7cVSbPTNIqOE)f7C-;*|xS(*_gofqyG5o$wRsFo$>Ii;9 zWi&^I|LI$T}-iLxH%v1?$l`$BYkd?OljuI#qff$)z~FfV^~g5>p`P*h1pAc z(#TUuTft6fx}N+avd{Fr8XP4oSb|B%7` zQpkUhWB$N5K_JX0w(;%{^ynTsa#~5{K|rVBFl=23*6;t6easREu~`L*{$3V{03y(q)!X zfv>heht4yaz8t0!T-9a;^Ar>mE`r$f+Sv=x)agr0(VEh~y{r5}HKpK!Kw6SoW4Sic zO&xQGIs@k;@WGD}%g{sLhbKOY@q-wryShf+e8<`^Ka#KMPI_~DGxTN=imiH!4de_`P_FwXsdE91N! zcQMZ8d+X-{l+4Se_wOhW=XUPY9FHAR-mZ9q$(JC_)azr$OBr|c0|U}Ok?}C&+)nx* z?G*6XK}?co>d!bPPu!F{TXV7#j{w}z$mB~vjr`?|M;O12@iN9AX8aV!=~p@_m~u_o z^c$HJsJ^^hdfrTdI4`%5abE5O#(B9*7@rJXre5?PIw+9-a(oQGgz+hiU&HuR#@91` zD&r4oZtANaQwaR#uMCDCrJ`ax(-UQSo?(0%;~z18EaTaD9!!Di#rw(OjC1+1jC1*k zjC1+Z881K?#&2gc&d1AK#<@H_7pFjW@^Q4BabDk6#(BHk%{U*|4>8W|*}^z4w-=r( zQy_b$<74X8kMS9d4`-ad(_-YuFn&7Y3mND7moffxCcjp5(@&^w6mDhme7tlp&d1AB zjL$-TW9Mg#bNjnz$zr4*xcx&I=l$ex#<`x880Yen8RzXX-NMggoa?VbC~S7$QbkMXk@KbrAhGCqOvvl*Yvcm?Cr z8Lwn~HRF6-(|ZFH{Qdua#;cHS>h%QUeExiv@!3p%H{*OwS!KKYyz^jSE`y zLikYVP5^=I=kw~&dKQ)XmVDf7iuVehTn$v;%linAh zK!xdvrds4@TI4G&^5x}bx@;wXx z$ily1oVVlmjPrJ+_pvBY|KaV}n{nQbXE4s&u}X7)JJvGJ+p(VM;q7?7MgBsIe49o7 z3XA+Y#(6v5%Q$bxU5qb!uTD22rmrY8z! z>}+P7m)pwtG$wy1>9+sP^LZ&9U%)j88*8W6w~=`FKBy@d744l5yVdWsGxsrZLX1>(6GK zkC){ZzLIfn=NiUoOq+UL!8n)y6XU!;|CMn*U%kNi6-@tIn$vp3_py7KJm1HD!}yg< zPoIMjL7;K>JA91&KVkeT#z$HB1jbKc^0PH3JL~Z=p_a)LH{~wT+>FOx>kJn$c|K2W zVf-?tr)yu8(db#N_4L%7>dW<<%sAI`E#p@+{dY2c4dc%;&h@{hxv_`lZVG!X@0~Fj=N8S49-1pD+{NU1xo+jB`EfeR|ePEkfMQ zFwXT1@24`7J=9ksTF()h`|UY}alSszXZ-ijVfxiF#wRo0%6K{Bzh#`y57#k1mC4`6 z_-w`>(%ks@4x~}o;^RjtES_X~`1h%ia+|IWcr!i#Y59zN8B7crzyw<{3 zTKJU~ev5@aWZ};;&ey>N}o$)Ifzn$^lG5#>)S24cJ!rx~66egc> zC?W{tA6~D%jQ@xQ@tkPW5OgRPu$4YGJY20O^jd1_>C6*w=#LI{~^uI`nyRR zw1vrE&-8C&@>GW=E&q3m{9BB#g{-O9XN;FIzMpaK=lmh6AY6)!f+ssxJ3!CeQ8vh;gpxQ=gtUwVrR7 zJlE58s1l&I;@211nv>u7^~E5~jh(;N`j2Mve7{=9_+^ka?fVy>9&>%s!Q{D~{fu)x zXNQylWargP|9OmG!}v9fbNx4IZt7*OFE&`@KW3cU^FPCc3`UQ+zF4g}*~!b@$T-*Y zy-yGIAqriGtD|4fc*eP&3p6+Oe5A6AimY0NcRfsHBs+i4ct6G` zGkz4~{CaI9<9wfRBIEpeZIb53e)CgHr!x6lSh;60PGiE@KZo&|jIUt)PmHf&oa?!Q zajxek#!qE>)@yF;&(rO=naT6($H$pG-6srd`M>%2QAnfkyhYFJj8B7{@x!}}bN_$9 zIL)<2e#+rgit4xgy6FbS`E|`h7XB>bTu;Knzqjy1j!19MkrsZEg`aNWwHE$s3;&&k z-^w`m&lU@Rg>mkmPb|D!UV1+av+(hZb9<&S&daT}@Rb&RjfLNB;ZIulTNeIr3-5iT z=LcS|BN^xQDrTI^|H8u0v+y|MT>lLg{*ZkIfKVabmOp_hcnLoFv7x5Vw~%bT6m>}H(2L^L4N<<9rw{U0#S_c?)MJb&`~c4M5EJH*0IVw~%l$~f0^HsjpR`HXY< zCJVol@jFlz(+{^X&hKx$&G?;6{!7O1VmvTH`KLP$J@FZ-_itS^r}18bk14l+@ePch z#rSQEpJ(B#E&K|`?`C>#VZ4;_J2dYB7Q@Gc2bnx^WB+3o`6n&%&s*eQv&iqU$bV>& z|H>l2-y+|gHUS9!`u5hG+KbnButokS7Wokt`7svxB8&Vai~J1DO@BK<_qSg#dEVca zGtT?lC5+#LI-B;rj`0&2-@^F4jK8J1vFBuM&mJbv?dg(_%n0OXZqFdbxjn}+&h0sk zac)n8=Ek0h+McCMp4)R3;~QX;@x$$mb9*`%=k~nAIJYNAlO2MwXNtBbOLPDH@KeUQ zJrfw`_MFN%x2J(|ZqMbK8+)SKo~xKV_s=HAxjj!a&h2@Hac<9-jB|VXjZF2=FSR{` zHTV1HXN+@uPGkHYs5I?(Hsjo$6^wIxZr0rRr%u~*JCnbW>3@*%n;3tcabE5opZ?`q zf0D^_|MwoH{No=lVaD%aoDg=lcK6_@7yQEdLJ(F=> z?rg?+xyv*+<(mIV+{EO0xvh-zavx-zm%GiU-|RP@V)7-Zo9X|bFn%B7-!gtb3tzt%cV!&i!_Y=Cm%;KFajN-!gfAeR?b7+@38K{)&ZvV&UCr zvyMQ1;QEJI_;?GSX5qCKzS6?4vGBVs{7DOc%fi2~@Gf+5fC{gKFwXUl)ZEx_emCEZSD>p6=G zL0G2_o$B?3g}-3o?^*cg7VfbA!~I~MtCM-0A7+s^|KE+|x&J3KdCuwoB~tLqpJ(A_ zz4gmqWs$$l!Z%y^lZ^9z@{lsKQ@iwM{6d_YcCTc-nep2gZ(;l|jMJ?+qvtWkS26xq z##b}Gi*c_1HOBe;@Gj$A{|Ah7{hu+;{c|JZ)HcR`{W_lXTPfo+nEXn{=Q7Ua>ouq8 z!<-XZsyUTO+?0C}<9ys*$~d>*){bW|d2SDH7n`5wFniu%dbmCBGtT}0FUGn5zh<15 z8)W^Kw{K6zx&FS4bN%N3Ymh&=e>SmlDb37RVaD5WZv1~VB32COje17BYdm5AH_MgExw|_R{yxjSW^Y)D~&h@Wg zoa^WFCvV^3OrGj&*1MiKr{EuVd|l(?Zjut0ew&MP;~#ovM1geQijU!Q2qF;Y@-ayj z=k}~*oXf`<=k+?6abE7BjPw3^6yv2hH+DYAIB%E78R!208{^#n&oj>L3^7jiHDQ)M zA=bq}92YR&mGM@6-W^A?MB^4;W_`orgWlCPvc2;ZrLD?dTU zBfkC<3aW&&d^}(CdLO6%Ge&{;Pid#-=6aWyv`6#XeR}FO@9^;^&7b%2cFp(t_*%`s z_3;gw=W2f#dpa~9ptRhOe5KBnb&GkHRlx^fAh{3O@n)+Zm;`UmStjb!O#{@>7Hnj3qr*7d1p^8Fxh zg85xLBmc6Nd!5OfJs#zG&!<0APolZ{NVW_x%IRElqd%nM^ncwb82iot<(cA>FVgY< E2MtC2TmS$7 literal 0 HcmV?d00001 diff --git a/slideshareDocument.h b/slideshareDocument.h new file mode 100644 index 0000000..84a1839 --- /dev/null +++ b/slideshareDocument.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef SLIDESHAREDOCUMENT_H +#define SLIDESHAREDOCUMENT_H +class QString; + +struct SlideShareDocument +{ + QString title; + QString slideID; + QString url; + QString downloadUrl; + QString format; + QString description; + QString tags; + QString thumbnailSmall; + QString thumbnailBig; +}; +#endif // SLIDESHAREDOCUMENT_H diff --git a/slidesharelistdialog.cpp b/slidesharelistdialog.cpp new file mode 100644 index 0000000..1db7c0f --- /dev/null +++ b/slidesharelistdialog.cpp @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "slidesharelistdialog.h" +#include "ui_filelistdialog.h" + +#include "slideshareuploaddialog.h" +#include "slideshareDocument.h" + +#include +#include +#include +#include +#include +#include + +slideshareListDialog::slideshareListDialog(SlideShare *s, QWidget *parent): + QDialog(parent), + ui(new Ui::fileListDialog) +{ + ui->setupUi(this); + this->setWindowTitle("SlideShare"); + ui->downloadProgressBar->setVisible(false); + this->service = s; + ui->listTab->setCurrentIndex(1); + ui->listTab->removeTab(3); + connect(ui->uploadButton, SIGNAL(clicked()), this, SLOT(uploadButtonClickedSlot())); + connect(ui->downloadButton, SIGNAL(clicked()), this, SLOT(downloadButtonClickedSlot())); + connect(ui->refreshButton, SIGNAL(clicked()), this, SLOT(refreshList())); + connect(service, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateProgressBar(qint64,qint64))); + connect(service, SIGNAL(downloadDone()), this, SLOT(downloadDoneSlot())); + connect(service, SIGNAL(listDone()), this, SLOT(fillList())); + + refreshList(); +} + +slideshareListDialog::~slideshareListDialog() +{ + delete ui; +} + +void slideshareListDialog::refreshList() +{ + ui->listTab->setEnabled(false); + ui->downloadButton->setEnabled(false); + ui->uploadButton->setEnabled(false); + ui->refreshButton->setEnabled(false); + service->listDocuments(); +} + +void slideshareListDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +void slideshareListDialog::downloadButtonClickedSlot() +{ + QListWidget *tmp; + QList list; + if(0 == ui->listTab->currentIndex()) + { + tmp = ui->documentList; + list = service->textDocList; + } + if(1 == ui->listTab->currentIndex()) + { + tmp = ui->presentationList; + list = service->presentationList; + } + if(2 == ui->listTab->currentIndex()) + { + tmp = ui->spreadsheetList; + list = service->spreadsheetList; + } + + if(tmp->currentRow() == -1) + { + QMessageBox::information(this, QString("No selection"), QString("Please select a file from the list")); + return; + } + + SlideShareDocument p = list[tmp->currentRow()]; + QString durl = p.downloadUrl; + + QString saveFileName = QFileDialog::getSaveFileName(this, "Save file", QDesktopServices::storageLocation(QDesktopServices::HomeLocation).append("/").append(p.title).append(p.format), QString("(*.").append(p.format).append(")")); + qDebug() << saveFileName << endl; + if("" == saveFileName) + { + return; + } + service->setSaveFileName(new QString(saveFileName)); + + service->download(&durl); + ui->listTab->setEnabled(false); + ui->downloadButton->setEnabled(false); + ui->uploadButton->setEnabled(false); + ui->refreshButton->setEnabled(false); + ui->downloadProgressBar->setVisible(true); +} + +void slideshareListDialog::uploadButtonClickedSlot() +{ + slideshareUploadDialog *ud = new slideshareUploadDialog(service, this); + ud->show(); + connect(ud, SIGNAL(accepted()), this, SLOT(refreshList())); +} + +void slideshareListDialog::fillList() +{ + ui->documentList->clear(); + ui->presentationList->clear(); + ui->spreadsheetList->clear(); + + QList list; + QList::iterator i; + + list = service->textDocList; + for(i = list.begin(); i != list.end(); ++i) + { + SlideShareDocument j = *i; + QListWidgetItem *k = new QListWidgetItem(j.title); + ui->documentList->addItem(k); + } + + list = service->presentationList; + for(i = list.begin(); i != list.end(); ++i) + { + SlideShareDocument j = *i; + QListWidgetItem *k = new QListWidgetItem(j.title); + ui->presentationList->addItem(k); + } + + list = service->spreadsheetList; + for(i = list.begin(); i != list.end(); ++i) + { + SlideShareDocument j = *i; + QListWidgetItem *k = new QListWidgetItem(j.title); + ui->spreadsheetList->addItem(k); + } + + ui->listTab->setEnabled(true); + ui->downloadButton->setEnabled(true); + ui->uploadButton->setEnabled(true); + ui->refreshButton->setEnabled(true); +} + +void slideshareListDialog::updateProgressBar(qint64 done, qint64 total) +{ + int value = (done * 100/total); + ui->downloadProgressBar->setValue((int)value); +} + +void slideshareListDialog::downloadDoneSlot() +{ + ui->downloadProgressBar->setVisible(false); + ui->downloadProgressBar->setValue(0); + ui->listTab->setEnabled(true); + ui->downloadButton->setEnabled(true); + ui->refreshButton->setEnabled(true); + ui->uploadButton->setEnabled(true); + QMessageBox::information(this, "Download done", "The file has finished downloading"); +} + +bool slideshareListDialog::eventFilter(QObject *obj, QEvent *event) +{ + if(event->type() == QEvent::ContextMenu) + { + QMouseEvent *mouseEvent = static_cast (event); + QMenu *menu = new QMenu(this); + menu->addAction(new QAction("CLICK", this)); + menu->exec(mouseEvent->globalPos()); + return false; + } + return true; +} + diff --git a/slidesharelistdialog.h b/slidesharelistdialog.h new file mode 100644 index 0000000..3bc147e --- /dev/null +++ b/slidesharelistdialog.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef SLIDESHARELISTDIALOG_H +#define SLIDESHARELISTDIALOG_H + +#include +#include "slideshare.h" + +namespace Ui { + class fileListDialog; +} + +class slideshareListDialog : public QDialog +{ + Q_OBJECT +public: + slideshareListDialog(SlideShare *s, QWidget *parent = 0); + ~slideshareListDialog(); + +protected: + void changeEvent(QEvent *e); + +private slots: + void downloadButtonClickedSlot(); + void uploadButtonClickedSlot(); + void fillList(); + void downloadDoneSlot(); + void updateProgressBar(qint64, qint64); + void refreshList(); + +private: + Ui::fileListDialog *ui; + SlideShare *service; + bool eventFilter(QObject *, QEvent *); + +}; + +#endif // FILELISTDIALOG_H diff --git a/slidesharelistdialog.o b/slidesharelistdialog.o new file mode 100644 index 0000000000000000000000000000000000000000..b01c58ccda505d6e8d72fa381ae0e9e19efe6a85 GIT binary patch literal 42440 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 + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "slideshareuploaddialog.h" +#include "ui_uploaddialog.h" + +#include "slideshare.h" + +#include +#include + +slideshareUploadDialog::slideshareUploadDialog(SlideShare *service, QWidget *parent) : + QDialog(parent), + ui(new Ui::uploadDialog) +{ + this->service = service; + ui->setupUi(this); + connect(service, SIGNAL(uploadProgress(qint64,qint64)), this, SLOT(uploadProgressSlot(qint64,qint64))); + connect(ui->fileSelectButton, SIGNAL(clicked()), this, SLOT(showFileDialog())); + connect(ui->uploadButton, SIGNAL(clicked()), this, SLOT(uploadButtonClickedSlot())); + connect(service, SIGNAL(uploadDone()), this, SLOT(uploadDoneSlot())); +} + +slideshareUploadDialog::~slideshareUploadDialog() +{ + delete ui; +} + +void slideshareUploadDialog::changeEvent(QEvent *e) +{ + QDialog::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + + +void slideshareUploadDialog::uploadProgressSlot(qint64 sent, qint64 total) +{ + qint64 value = (sent * 100 / total) ; + ui->uploadProgress->setValue(value); +} + +void slideshareUploadDialog::showFileDialog() +{ + QString filter = "Supported Files (odt doc odp ppt ods xls)(*.odt *.doc *.odp *.ppt *.ods *.xls);; Documents (odt doc)(*.odt *.doc);; Presentations (odp ppt)(*.odp *.ppt) ;; Spreadsheets(ods xls)(*.ods *.xls)"; + QString filename = QFileDialog::getOpenFileName(this,QString("Select File"),tr(""),filter); + ui->fileSelectEdit->setText(filename); +} + +void slideshareUploadDialog::uploadButtonClickedSlot() +{ + if(ui->fileSelectEdit->text() == "" || ui->titleEdit->text() == "") + { + QMessageBox::information(this,"Incomplete parameters","Please enter atleast filename and title"); + return; + } + else + { + ui->fileSelectButton->setEnabled(false); + ui->titleEdit->setEnabled(false); + ui->descriptionBox->setEnabled(false); + ui->tagsEdit->setEnabled(false); + ui->uploadButton->setEnabled(false); + ui->uploadLabel->setText(tr("Uploading file...")); + service->setSourceFile(&ui->fileSelectEdit->text()); + service->setSlideTitle(&ui->titleEdit->text()); + service->setDescription(&ui->descriptionBox->toPlainText()); + service->setTags(&ui->tagsEdit->text()); + service->setFormat(new QString(QFileInfo(ui->fileSelectEdit->text()).suffix())); + service->upload(); + } +} + +void slideshareUploadDialog::uploadDoneSlot() +{ + ui->uploadLabel->setText(tr("Upload done")); + ui->doneButton->setEnabled(true); +} diff --git a/slideshareuploaddialog.h b/slideshareuploaddialog.h new file mode 100644 index 0000000..e04b12f --- /dev/null +++ b/slideshareuploaddialog.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2010 Kaushal M + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef SLIDESHAREUPLOADDIALOG_H +#define SLIDESHAREUPLOADDIALOG_H + +#include + +class SlideShare; +namespace Ui { + class uploadDialog; +} + +class slideshareUploadDialog : public QDialog { + Q_OBJECT +public: + slideshareUploadDialog(SlideShare *service,QWidget *parent = 0); + ~slideshareUploadDialog(); + +protected: + void changeEvent(QEvent *e); + +private: + Ui::uploadDialog *ui; + SlideShare *service; + +private slots: + void uploadProgressSlot(qint64 bytesSent, qint64 bytesTotal); + void showFileDialog(); + void uploadButtonClickedSlot(); + void uploadDoneSlot(); +}; + +#endif // UPLOADDIALOG_H diff --git a/slideshareuploaddialog.o b/slideshareuploaddialog.o new file mode 100644 index 0000000000000000000000000000000000000000..c14ed2b2c59d3cec2947d3c989aa9d586c24eccf GIT binary patch literal 25416 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 f(3_Gu|1oyW@9}fAeWPFK@qMbsjXeLo4X6JFj +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_Dialog +{ +public: + QVBoxLayout *verticalLayout; + QLabel *label; + QGridLayout *gridLayout; + QLabel *label_4; + QComboBox *comboBox; + QLabel *label_2; + QLineEdit *userEdit; + QLabel *label_3; + QLineEdit *passwordEdit; + QPushButton *loginButton; + + void setupUi(QDialog *Dialog) + { + if (Dialog->objectName().isEmpty()) + Dialog->setObjectName(QString::fromUtf8("Dialog")); + Dialog->resize(449, 135); + verticalLayout = new QVBoxLayout(Dialog); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + label = new QLabel(Dialog); + label->setObjectName(QString::fromUtf8("label")); + label->setWordWrap(false); + + verticalLayout->addWidget(label); + + gridLayout = new QGridLayout(); + gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + label_4 = new QLabel(Dialog); + label_4->setObjectName(QString::fromUtf8("label_4")); + + gridLayout->addWidget(label_4, 0, 0, 1, 1); + + comboBox = new QComboBox(Dialog); + comboBox->setObjectName(QString::fromUtf8("comboBox")); + + gridLayout->addWidget(comboBox, 0, 1, 1, 1); + + label_2 = new QLabel(Dialog); + label_2->setObjectName(QString::fromUtf8("label_2")); + + gridLayout->addWidget(label_2, 1, 0, 1, 1); + + userEdit = new QLineEdit(Dialog); + userEdit->setObjectName(QString::fromUtf8("userEdit")); + + gridLayout->addWidget(userEdit, 1, 1, 1, 1); + + label_3 = new QLabel(Dialog); + label_3->setObjectName(QString::fromUtf8("label_3")); + + gridLayout->addWidget(label_3, 2, 0, 1, 1); + + passwordEdit = new QLineEdit(Dialog); + passwordEdit->setObjectName(QString::fromUtf8("passwordEdit")); + passwordEdit->setEchoMode(QLineEdit::Password); + + gridLayout->addWidget(passwordEdit, 2, 1, 1, 1); + + + verticalLayout->addLayout(gridLayout); + + loginButton = new QPushButton(Dialog); + loginButton->setObjectName(QString::fromUtf8("loginButton")); + + verticalLayout->addWidget(loginButton); + + + retranslateUi(Dialog); + + QMetaObject::connectSlotsByName(Dialog); + } // setupUi + + void retranslateUi(QDialog *Dialog) + { + Dialog->setWindowTitle(QApplication::translate("Dialog", "Account Signin", 0, QApplication::UnicodeUTF8)); + label->setText(QApplication::translate("Dialog", "You need to supply Username and Password to access documents", 0, QApplication::UnicodeUTF8)); + label_4->setText(QApplication::translate("Dialog", "Site:", 0, QApplication::UnicodeUTF8)); + label_2->setText(QApplication::translate("Dialog", "Username:", 0, QApplication::UnicodeUTF8)); + userEdit->setText(QApplication::translate("Dialog", "@gmail.com", 0, QApplication::UnicodeUTF8)); + label_3->setText(QApplication::translate("Dialog", "Password:", 0, QApplication::UnicodeUTF8)); + passwordEdit->setInputMask(QString()); + passwordEdit->setText(QString()); + loginButton->setText(QApplication::translate("Dialog", "Sign In", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class Dialog: public Ui_Dialog {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_AUTHENTICATIONDIALOG_H diff --git a/ui_documentlist.h b/ui_documentlist.h new file mode 100644 index 0000000..3c879f2 --- /dev/null +++ b/ui_documentlist.h @@ -0,0 +1,75 @@ +/******************************************************************************** +** Form generated from reading UI file 'documentlist.ui' +** +** Created: Thu Jul 8 16:56:09 2010 +** by: Qt User Interface Compiler version 4.6.3 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_DOCUMENTLIST_H +#define UI_DOCUMENTLIST_H + +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_ListDialog +{ +public: + QListWidget *listWidget; + QPushButton *okButton; + + void setupUi(QDialog *ListDialog) + { + if (ListDialog->objectName().isEmpty()) + ListDialog->setObjectName(QString::fromUtf8("ListDialog")); + ListDialog->resize(765, 311); + QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + sizePolicy.setHeightForWidth(ListDialog->sizePolicy().hasHeightForWidth()); + ListDialog->setSizePolicy(sizePolicy); + listWidget = new QListWidget(ListDialog); + listWidget->setObjectName(QString::fromUtf8("listWidget")); + listWidget->setGeometry(QRect(-2, 4, 771, 261)); + QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Fixed); + sizePolicy1.setHorizontalStretch(0); + sizePolicy1.setVerticalStretch(0); + sizePolicy1.setHeightForWidth(listWidget->sizePolicy().hasHeightForWidth()); + listWidget->setSizePolicy(sizePolicy1); + listWidget->setLayoutMode(QListView::Batched); + okButton = new QPushButton(ListDialog); + okButton->setObjectName(QString::fromUtf8("okButton")); + okButton->setGeometry(QRect(610, 270, 81, 41)); + sizePolicy1.setHeightForWidth(okButton->sizePolicy().hasHeightForWidth()); + okButton->setSizePolicy(sizePolicy1); + okButton->setLayoutDirection(Qt::RightToLeft); + + retranslateUi(ListDialog); + + QMetaObject::connectSlotsByName(ListDialog); + } // setupUi + + void retranslateUi(QDialog *ListDialog) + { + ListDialog->setWindowTitle(QApplication::translate("ListDialog", "Google Document List", 0, QApplication::UnicodeUTF8)); + okButton->setText(QApplication::translate("ListDialog", "Ok", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class ListDialog: public Ui_ListDialog {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_DOCUMENTLIST_H diff --git a/ui_filelistdialog.h b/ui_filelistdialog.h new file mode 100644 index 0000000..311ef0f --- /dev/null +++ b/ui_filelistdialog.h @@ -0,0 +1,161 @@ +/******************************************************************************** +** Form generated from reading UI file 'filelistdialog.ui' +** +** Created: Wed Jul 14 11:23:20 2010 +** by: Qt User Interface Compiler version 4.6.3 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_FILELISTDIALOG_H +#define UI_FILELISTDIALOG_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_fileListDialog +{ +public: + QVBoxLayout *verticalLayout_4; + QTabWidget *listTab; + QWidget *documentTab; + QVBoxLayout *verticalLayout; + QListWidget *documentList; + QWidget *presentationTab; + QVBoxLayout *verticalLayout_2; + QListWidget *presentationList; + QWidget *spreadsheetTab; + QVBoxLayout *verticalLayout_3; + QListWidget *spreadsheetList; + QWidget *othersTab; + QVBoxLayout *verticalLayout_5; + QListWidget *othersList; + QProgressBar *downloadProgressBar; + QHBoxLayout *horizontalLayout; + QPushButton *uploadButton; + QPushButton *refreshButton; + QPushButton *downloadButton; + + void setupUi(QDialog *fileListDialog) + { + if (fileListDialog->objectName().isEmpty()) + fileListDialog->setObjectName(QString::fromUtf8("fileListDialog")); + fileListDialog->resize(640, 480); + verticalLayout_4 = new QVBoxLayout(fileListDialog); + verticalLayout_4->setObjectName(QString::fromUtf8("verticalLayout_4")); + listTab = new QTabWidget(fileListDialog); + listTab->setObjectName(QString::fromUtf8("listTab")); + listTab->setTabShape(QTabWidget::Rounded); + documentTab = new QWidget(); + documentTab->setObjectName(QString::fromUtf8("documentTab")); + verticalLayout = new QVBoxLayout(documentTab); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + documentList = new QListWidget(documentTab); + documentList->setObjectName(QString::fromUtf8("documentList")); + + verticalLayout->addWidget(documentList); + + listTab->addTab(documentTab, QString()); + presentationTab = new QWidget(); + presentationTab->setObjectName(QString::fromUtf8("presentationTab")); + verticalLayout_2 = new QVBoxLayout(presentationTab); + verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2")); + presentationList = new QListWidget(presentationTab); + presentationList->setObjectName(QString::fromUtf8("presentationList")); + + verticalLayout_2->addWidget(presentationList); + + listTab->addTab(presentationTab, QString()); + spreadsheetTab = new QWidget(); + spreadsheetTab->setObjectName(QString::fromUtf8("spreadsheetTab")); + verticalLayout_3 = new QVBoxLayout(spreadsheetTab); + verticalLayout_3->setObjectName(QString::fromUtf8("verticalLayout_3")); + spreadsheetList = new QListWidget(spreadsheetTab); + spreadsheetList->setObjectName(QString::fromUtf8("spreadsheetList")); + + verticalLayout_3->addWidget(spreadsheetList); + + listTab->addTab(spreadsheetTab, QString()); + othersTab = new QWidget(); + othersTab->setObjectName(QString::fromUtf8("othersTab")); + verticalLayout_5 = new QVBoxLayout(othersTab); + verticalLayout_5->setObjectName(QString::fromUtf8("verticalLayout_5")); + othersList = new QListWidget(othersTab); + othersList->setObjectName(QString::fromUtf8("othersList")); + + verticalLayout_5->addWidget(othersList); + + listTab->addTab(othersTab, QString()); + + verticalLayout_4->addWidget(listTab); + + downloadProgressBar = new QProgressBar(fileListDialog); + downloadProgressBar->setObjectName(QString::fromUtf8("downloadProgressBar")); + downloadProgressBar->setValue(0); + downloadProgressBar->setTextVisible(false); + + verticalLayout_4->addWidget(downloadProgressBar); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + uploadButton = new QPushButton(fileListDialog); + uploadButton->setObjectName(QString::fromUtf8("uploadButton")); + + horizontalLayout->addWidget(uploadButton); + + refreshButton = new QPushButton(fileListDialog); + refreshButton->setObjectName(QString::fromUtf8("refreshButton")); + + horizontalLayout->addWidget(refreshButton); + + downloadButton = new QPushButton(fileListDialog); + downloadButton->setObjectName(QString::fromUtf8("downloadButton")); + + horizontalLayout->addWidget(downloadButton); + + + verticalLayout_4->addLayout(horizontalLayout); + + + retranslateUi(fileListDialog); + + listTab->setCurrentIndex(1); + + + QMetaObject::connectSlotsByName(fileListDialog); + } // setupUi + + void retranslateUi(QDialog *fileListDialog) + { + fileListDialog->setWindowTitle(QApplication::translate("fileListDialog", "FileList", 0, QApplication::UnicodeUTF8)); + listTab->setTabText(listTab->indexOf(documentTab), QApplication::translate("fileListDialog", "Documents", 0, QApplication::UnicodeUTF8)); + listTab->setTabText(listTab->indexOf(presentationTab), QApplication::translate("fileListDialog", "Presentations", 0, QApplication::UnicodeUTF8)); + listTab->setTabText(listTab->indexOf(spreadsheetTab), QApplication::translate("fileListDialog", "Spreadsheets", 0, QApplication::UnicodeUTF8)); + listTab->setTabText(listTab->indexOf(othersTab), QApplication::translate("fileListDialog", "Others", 0, QApplication::UnicodeUTF8)); + uploadButton->setText(QApplication::translate("fileListDialog", "&Upload", 0, QApplication::UnicodeUTF8)); + refreshButton->setText(QApplication::translate("fileListDialog", "&Refresh List", 0, QApplication::UnicodeUTF8)); + downloadButton->setText(QApplication::translate("fileListDialog", "&Download", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class fileListDialog: public Ui_fileListDialog {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_FILELISTDIALOG_H diff --git a/ui_uploaddialog.h b/ui_uploaddialog.h new file mode 100644 index 0000000..9c5ad6a --- /dev/null +++ b/ui_uploaddialog.h @@ -0,0 +1,191 @@ +/******************************************************************************** +** Form generated from reading UI file 'uploaddialog.ui' +** +** Created: Wed Jul 14 11:40:10 2010 +** by: Qt User Interface Compiler version 4.6.3 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef UI_UPLOADDIALOG_H +#define UI_UPLOADDIALOG_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class Ui_uploadDialog +{ +public: + QVBoxLayout *verticalLayout; + QFormLayout *formLayout; + QLabel *label; + QHBoxLayout *horizontalLayout_2; + QLineEdit *fileSelectEdit; + QPushButton *fileSelectButton; + QLabel *label_2; + QLineEdit *titleEdit; + QPlainTextEdit *descriptionBox; + QLabel *label_3; + QLineEdit *tagsEdit; + QLabel *label_4; + QHBoxLayout *horizontalLayout_3; + QSpacerItem *horizontalSpacer; + QLabel *uploadLabel; + QSpacerItem *horizontalSpacer_2; + QHBoxLayout *horizontalLayout; + QPushButton *uploadButton; + QProgressBar *uploadProgress; + QPushButton *doneButton; + + void setupUi(QDialog *uploadDialog) + { + if (uploadDialog->objectName().isEmpty()) + uploadDialog->setObjectName(QString::fromUtf8("uploadDialog")); + uploadDialog->resize(640, 227); + verticalLayout = new QVBoxLayout(uploadDialog); + verticalLayout->setObjectName(QString::fromUtf8("verticalLayout")); + formLayout = new QFormLayout(); + formLayout->setObjectName(QString::fromUtf8("formLayout")); + formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); + label = new QLabel(uploadDialog); + label->setObjectName(QString::fromUtf8("label")); + + formLayout->setWidget(0, QFormLayout::LabelRole, label); + + horizontalLayout_2 = new QHBoxLayout(); + horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2")); + fileSelectEdit = new QLineEdit(uploadDialog); + fileSelectEdit->setObjectName(QString::fromUtf8("fileSelectEdit")); + fileSelectEdit->setEnabled(true); + fileSelectEdit->setReadOnly(true); + + horizontalLayout_2->addWidget(fileSelectEdit); + + fileSelectButton = new QPushButton(uploadDialog); + fileSelectButton->setObjectName(QString::fromUtf8("fileSelectButton")); + + horizontalLayout_2->addWidget(fileSelectButton); + + + formLayout->setLayout(0, QFormLayout::FieldRole, horizontalLayout_2); + + label_2 = new QLabel(uploadDialog); + label_2->setObjectName(QString::fromUtf8("label_2")); + + formLayout->setWidget(1, QFormLayout::LabelRole, label_2); + + titleEdit = new QLineEdit(uploadDialog); + titleEdit->setObjectName(QString::fromUtf8("titleEdit")); + + formLayout->setWidget(1, QFormLayout::FieldRole, titleEdit); + + descriptionBox = new QPlainTextEdit(uploadDialog); + descriptionBox->setObjectName(QString::fromUtf8("descriptionBox")); + + formLayout->setWidget(2, QFormLayout::FieldRole, descriptionBox); + + label_3 = new QLabel(uploadDialog); + label_3->setObjectName(QString::fromUtf8("label_3")); + + formLayout->setWidget(2, QFormLayout::LabelRole, label_3); + + tagsEdit = new QLineEdit(uploadDialog); + tagsEdit->setObjectName(QString::fromUtf8("tagsEdit")); + + formLayout->setWidget(3, QFormLayout::FieldRole, tagsEdit); + + label_4 = new QLabel(uploadDialog); + label_4->setObjectName(QString::fromUtf8("label_4")); + + formLayout->setWidget(3, QFormLayout::LabelRole, label_4); + + + verticalLayout->addLayout(formLayout); + + horizontalLayout_3 = new QHBoxLayout(); + horizontalLayout_3->setObjectName(QString::fromUtf8("horizontalLayout_3")); + horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_3->addItem(horizontalSpacer); + + uploadLabel = new QLabel(uploadDialog); + uploadLabel->setObjectName(QString::fromUtf8("uploadLabel")); + + horizontalLayout_3->addWidget(uploadLabel); + + horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); + + horizontalLayout_3->addItem(horizontalSpacer_2); + + + verticalLayout->addLayout(horizontalLayout_3); + + horizontalLayout = new QHBoxLayout(); + horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout")); + uploadButton = new QPushButton(uploadDialog); + uploadButton->setObjectName(QString::fromUtf8("uploadButton")); + uploadButton->setEnabled(true); + + horizontalLayout->addWidget(uploadButton); + + uploadProgress = new QProgressBar(uploadDialog); + uploadProgress->setObjectName(QString::fromUtf8("uploadProgress")); + uploadProgress->setValue(0); + uploadProgress->setTextVisible(false); + uploadProgress->setInvertedAppearance(false); + + horizontalLayout->addWidget(uploadProgress); + + doneButton = new QPushButton(uploadDialog); + doneButton->setObjectName(QString::fromUtf8("doneButton")); + doneButton->setEnabled(false); + + horizontalLayout->addWidget(doneButton); + + + verticalLayout->addLayout(horizontalLayout); + + + retranslateUi(uploadDialog); + QObject::connect(doneButton, SIGNAL(clicked()), uploadDialog, SLOT(accept())); + + QMetaObject::connectSlotsByName(uploadDialog); + } // setupUi + + void retranslateUi(QDialog *uploadDialog) + { + uploadDialog->setWindowTitle(QApplication::translate("uploadDialog", "Upload", 0, QApplication::UnicodeUTF8)); + label->setText(QApplication::translate("uploadDialog", "Select a file", 0, QApplication::UnicodeUTF8)); + fileSelectButton->setText(QApplication::translate("uploadDialog", "Select", 0, QApplication::UnicodeUTF8)); + label_2->setText(QApplication::translate("uploadDialog", "Title", 0, QApplication::UnicodeUTF8)); + label_3->setText(QApplication::translate("uploadDialog", "Description", 0, QApplication::UnicodeUTF8)); + label_4->setText(QApplication::translate("uploadDialog", "Tags", 0, QApplication::UnicodeUTF8)); + uploadLabel->setText(QString()); + uploadButton->setText(QApplication::translate("uploadDialog", "Upload", 0, QApplication::UnicodeUTF8)); + doneButton->setText(QApplication::translate("uploadDialog", "Done", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class uploadDialog: public Ui_uploadDialog {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // UI_UPLOADDIALOG_H diff --git a/uploaddialog.o b/uploaddialog.o new file mode 100644 index 0000000000000000000000000000000000000000..709180b8cd1c60d352cf24a0d5b893f9db631dd5 GIT binary patch literal 422904 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 HQTd3-3{vm&#F!J42471Ev%z+JT!Wt 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 literal 0 HcmV?d00001 diff --git a/uploaddialog.ui b/uploaddialog.ui new file mode 100644 index 0000000..d2c100f --- /dev/null +++ b/uploaddialog.ui @@ -0,0 +1,177 @@ + + + uploadDialog + + + + 0 + 0 + 640 + 227 + + + + Upload + + + + + + QFormLayout::ExpandingFieldsGrow + + + + + Select a file + + + + + + + + + true + + + true + + + + + + + Select + + + + + + + + + Title + + + + + + + + + + + + + Description + + + + + + + + + + Tags + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + true + + + Upload + + + + + + + 0 + + + false + + + false + + + + + + + false + + + Done + + + + + + + + + + + doneButton + clicked() + uploadDialog + accept() + + + 607 + 179 + + + 591 + 107 + + + + + -- 1.7.9.5