chore: extract move gifs module (#14315)
This commit is contained in:
parent
e2eddc525c
commit
795b999ad8
|
@ -342,7 +342,6 @@ proc delete*(self: AppController) =
|
||||||
self.generalService.delete
|
self.generalService.delete
|
||||||
self.ensService.delete
|
self.ensService.delete
|
||||||
self.tokensService.delete
|
self.tokensService.delete
|
||||||
self.gifService.delete
|
|
||||||
self.keycardService.delete
|
self.keycardService.delete
|
||||||
self.networkConnectionService.delete
|
self.networkConnectionService.delete
|
||||||
|
|
||||||
|
@ -467,7 +466,6 @@ proc load(self: AppController) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,6 @@ import ../../../../../../app_service/service/message/service as message_service
|
||||||
import ../../../../../../app_service/service/contacts/service as contact_service
|
import ../../../../../../app_service/service/contacts/service as contact_service
|
||||||
import ../../../../../../app_service/service/community/service as community_service
|
import ../../../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../../../app_service/service/chat/service as chat_service
|
import ../../../../../../app_service/service/chat/service as chat_service
|
||||||
import ../../../../../../app_service/service/gif/service as gif_service
|
|
||||||
import ../../../../../../app_service/service/gif/dto
|
|
||||||
import ../../../../../../app_service/service/message/dto/link_preview
|
import ../../../../../../app_service/service/message/dto/link_preview
|
||||||
import ../../../../../../app_service/service/message/dto/urls_unfurling_plan
|
import ../../../../../../app_service/service/message/dto/urls_unfurling_plan
|
||||||
import ../../../../../../app_service/service/settings/dto/settings
|
import ../../../../../../app_service/service/settings/dto/settings
|
||||||
|
@ -25,7 +23,6 @@ type
|
||||||
communityService: community_service.Service
|
communityService: community_service.Service
|
||||||
contactService: contact_service.Service
|
contactService: contact_service.Service
|
||||||
chatService: chat_service.Service
|
chatService: chat_service.Service
|
||||||
gifService: gif_service.Service
|
|
||||||
messageService: message_service.Service
|
messageService: message_service.Service
|
||||||
settingsService: settings_service.Service
|
settingsService: settings_service.Service
|
||||||
linkPreviewCache: LinkPreviewCache
|
linkPreviewCache: LinkPreviewCache
|
||||||
|
@ -45,7 +42,6 @@ proc newController*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
contactService: contact_service.Service,
|
contactService: contact_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
settingsService: settings_service.Service
|
settingsService: settings_service.Service
|
||||||
): Controller =
|
): Controller =
|
||||||
|
@ -58,7 +54,6 @@ proc newController*(
|
||||||
result.chatService = chatService
|
result.chatService = chatService
|
||||||
result.communityService = communityService
|
result.communityService = communityService
|
||||||
result.contactService = contactService
|
result.contactService = contactService
|
||||||
result.gifService = gifService
|
|
||||||
result.messageService = messageService
|
result.messageService = messageService
|
||||||
result.settingsService = settingsService
|
result.settingsService = settingsService
|
||||||
result.linkPreviewCache = newLinkPreiewCache()
|
result.linkPreviewCache = newLinkPreiewCache()
|
||||||
|
@ -79,34 +74,6 @@ proc delete*(self: Controller) =
|
||||||
self.events.disconnect()
|
self.events.disconnect()
|
||||||
|
|
||||||
proc init*(self: Controller) =
|
proc init*(self: Controller) =
|
||||||
self.events.on(SIGNAL_LOAD_RECENT_GIFS_DONE) do(e:Args):
|
|
||||||
let args = GifsArgs(e)
|
|
||||||
self.delegate.loadRecentGifsDone(args.gifs)
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_LOAD_FAVORITE_GIFS_DONE) do(e:Args):
|
|
||||||
let args = GifsArgs(e)
|
|
||||||
self.delegate.loadFavoriteGifsDone(args.gifs)
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_LOAD_TRENDING_GIFS_STARTED) do(e:Args):
|
|
||||||
self.delegate.loadTrendingGifsStarted()
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_LOAD_TRENDING_GIFS_DONE) do(e:Args):
|
|
||||||
let args = GifsArgs(e)
|
|
||||||
self.delegate.loadTrendingGifsDone(args.gifs)
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_LOAD_TRENDING_GIFS_ERROR) do(e:Args):
|
|
||||||
self.delegate.loadTrendingGifsError()
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_SEARCH_GIFS_STARTED) do(e:Args):
|
|
||||||
self.delegate.searchGifsStarted()
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_SEARCH_GIFS_DONE) do(e:Args):
|
|
||||||
let args = GifsArgs(e)
|
|
||||||
self.delegate.serachGifsDone(args.gifs)
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_SEARCH_GIFS_ERROR) do(e:Args):
|
|
||||||
self.delegate.searchGifsError()
|
|
||||||
|
|
||||||
self.events.on(SIGNAL_URLS_UNFURLED) do(e:Args):
|
self.events.on(SIGNAL_URLS_UNFURLED) do(e:Args):
|
||||||
let args = LinkPreviewDataArgs(e)
|
let args = LinkPreviewDataArgs(e)
|
||||||
if not self.unfurlRequests.contains(args.requestUuid):
|
if not self.unfurlRequests.contains(args.requestUuid):
|
||||||
|
@ -191,33 +158,6 @@ proc acceptRequestAddressForTransaction*(self: Controller, messageId: string, ad
|
||||||
proc acceptRequestTransaction*(self: Controller, transactionHash: string, messageId: string, signature: string) =
|
proc acceptRequestTransaction*(self: Controller, transactionHash: string, messageId: string, signature: string) =
|
||||||
self.chatService.acceptRequestTransaction(transactionHash, messageId, signature)
|
self.chatService.acceptRequestTransaction(transactionHash, messageId, signature)
|
||||||
|
|
||||||
proc searchGifs*(self: Controller, query: string) =
|
|
||||||
self.gifService.search(query)
|
|
||||||
|
|
||||||
proc getTrendingsGifs*(self: Controller) =
|
|
||||||
self.gifService.getTrending()
|
|
||||||
|
|
||||||
proc getRecentsGifs*(self: Controller): seq[GifDto] =
|
|
||||||
return self.gifService.getRecents()
|
|
||||||
|
|
||||||
proc loadRecentGifs*(self: Controller) =
|
|
||||||
self.gifService.asyncLoadRecentGifs()
|
|
||||||
|
|
||||||
proc loadFavoriteGifs*(self: Controller) =
|
|
||||||
self.gifService.asyncLoadFavoriteGifs()
|
|
||||||
|
|
||||||
proc getFavoritesGifs*(self: Controller): seq[GifDto] =
|
|
||||||
return self.gifService.getFavorites()
|
|
||||||
|
|
||||||
proc toggleFavoriteGif*(self: Controller, item: GifDto) =
|
|
||||||
self.gifService.toggleFavorite(item)
|
|
||||||
|
|
||||||
proc addToRecentsGif*(self: Controller, item: GifDto) =
|
|
||||||
self.gifService.addToRecents(item)
|
|
||||||
|
|
||||||
proc isFavorite*(self: Controller, item: GifDto): bool =
|
|
||||||
return self.gifService.isFavorite(item)
|
|
||||||
|
|
||||||
proc getLinkPreviewEnabled*(self: Controller): bool =
|
proc getLinkPreviewEnabled*(self: Controller): bool =
|
||||||
return self.linkPreviewPersistentSetting == UrlUnfurlingMode.Enabled or self.linkPreviewCurrentMessageSetting == UrlUnfurlingMode.Enabled
|
return self.linkPreviewPersistentSetting == UrlUnfurlingMode.Enabled or self.linkPreviewCurrentMessageSetting == UrlUnfurlingMode.Enabled
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,6 @@ import ../../../../../../app_service/service/message/dto/link_preview
|
||||||
import ../../../../../../app_service/service/chat/service as chat_service
|
import ../../../../../../app_service/service/chat/service as chat_service
|
||||||
import ../../../../../../app_service/service/community/service as community_service
|
import ../../../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../../../app_service/service/contacts/service as contact_service
|
import ../../../../../../app_service/service/contacts/service as contact_service
|
||||||
import ../../../../../../app_service/service/gif/service as gif_service
|
|
||||||
import ../../../../../../app_service/service/gif/dto
|
|
||||||
|
|
||||||
export io_interface
|
export io_interface
|
||||||
|
|
||||||
type
|
type
|
||||||
|
@ -33,7 +30,6 @@ proc newModule*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
contactService: contact_service.Service,
|
contactService: contact_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
settingsService: settings_service.Service
|
settingsService: settings_service.Service
|
||||||
):
|
):
|
||||||
|
@ -42,7 +38,7 @@ proc newModule*(
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.view = view.newView(result)
|
result.view = view.newView(result)
|
||||||
result.viewVariant = newQVariant(result.view)
|
result.viewVariant = newQVariant(result.view)
|
||||||
result.controller = controller.newController(result, events, sectionId, chatId, belongsToCommunity, chatService, communityService, contactService, gifService, messageService, settingsService)
|
result.controller = controller.newController(result, events, sectionId, chatId, belongsToCommunity, chatService, communityService, contactService, messageService, settingsService)
|
||||||
result.moduleLoaded = false
|
result.moduleLoaded = false
|
||||||
|
|
||||||
method delete*(self: Module) =
|
method delete*(self: Module) =
|
||||||
|
@ -99,63 +95,6 @@ method acceptRequestAddressForTransaction*(self: Module, messageId: string, addr
|
||||||
method acceptRequestTransaction*(self: Module, transactionHash: string, messageId: string, signature: string) =
|
method acceptRequestTransaction*(self: Module, transactionHash: string, messageId: string, signature: string) =
|
||||||
self.controller.acceptRequestTransaction(transactionHash, messageId, signature)
|
self.controller.acceptRequestTransaction(transactionHash, messageId, signature)
|
||||||
|
|
||||||
method searchGifs*(self: Module, query: string) =
|
|
||||||
self.controller.searchGifs(query)
|
|
||||||
|
|
||||||
method getTrendingsGifs*(self: Module) =
|
|
||||||
self.controller.getTrendingsGifs()
|
|
||||||
|
|
||||||
method getRecentsGifs*(self: Module): seq[GifDto] =
|
|
||||||
return self.controller.getRecentsGifs()
|
|
||||||
|
|
||||||
method loadRecentGifs*(self: Module) =
|
|
||||||
self.controller.loadRecentGifs()
|
|
||||||
|
|
||||||
method loadRecentGifsDone*(self: Module, gifs: seq[GifDto]) =
|
|
||||||
self.view.updateGifColumns(gifs)
|
|
||||||
|
|
||||||
method loadTrendingGifsStarted*(self: Module) =
|
|
||||||
self.view.updateGifColumns(@[])
|
|
||||||
self.view.setGifLoading(true)
|
|
||||||
|
|
||||||
method loadTrendingGifsError*(self: Module) =
|
|
||||||
# Just setting loading to false works because the UI shows an error when there are no gifs
|
|
||||||
self.view.setGifLoading(false)
|
|
||||||
|
|
||||||
method loadTrendingGifsDone*(self: Module, gifs: seq[GifDto]) =
|
|
||||||
self.view.setGifLoading(false)
|
|
||||||
self.view.updateGifColumns(gifs)
|
|
||||||
|
|
||||||
method searchGifsStarted*(self: Module) =
|
|
||||||
self.view.updateGifColumns(@[])
|
|
||||||
self.view.setGifLoading(true)
|
|
||||||
|
|
||||||
method searchGifsError*(self: Module) =
|
|
||||||
# Just setting loading to false works because the UI shows an error when there are no gifs
|
|
||||||
self.view.setGifLoading(false)
|
|
||||||
|
|
||||||
method serachGifsDone*(self: Module, gifs: seq[GifDto]) =
|
|
||||||
self.view.setGifLoading(false)
|
|
||||||
self.view.updateGifColumns(gifs)
|
|
||||||
|
|
||||||
method getFavoritesGifs*(self: Module): seq[GifDto] =
|
|
||||||
return self.controller.getFavoritesGifs()
|
|
||||||
|
|
||||||
method loadFavoriteGifs*(self: Module) =
|
|
||||||
self.controller.loadFavoriteGifs()
|
|
||||||
|
|
||||||
method loadFavoriteGifsDone*(self: Module, gifs: seq[GifDto]) =
|
|
||||||
self.view.updateGifColumns(gifs)
|
|
||||||
|
|
||||||
method toggleFavoriteGif*(self: Module, item: GifDto) =
|
|
||||||
self.controller.toggleFavoriteGif(item)
|
|
||||||
|
|
||||||
method addToRecentsGif*(self: Module, item: GifDto) =
|
|
||||||
self.controller.addToRecentsGif(item)
|
|
||||||
|
|
||||||
method isFavorite*(self: Module, item: GifDto): bool =
|
|
||||||
return self.controller.isFavorite(item)
|
|
||||||
|
|
||||||
method setText*(self: Module, text: string, unfurlNewUrls: bool) =
|
method setText*(self: Module, text: string, unfurlNewUrls: bool) =
|
||||||
self.controller.setText(text, unfurlNewUrls)
|
self.controller.setText(text, unfurlNewUrls)
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,14 @@
|
||||||
import NimQml, sets
|
import NimQml, sets
|
||||||
import ./io_interface
|
import ./io_interface
|
||||||
import ./gif_column_model
|
|
||||||
import ./preserved_properties
|
import ./preserved_properties
|
||||||
import ./urls_model
|
import ./urls_model
|
||||||
import ../../../../../../app/modules/shared_models/link_preview_model as link_preview_model
|
import ../../../../../../app/modules/shared_models/link_preview_model as link_preview_model
|
||||||
import ../../../../../../app/modules/shared_models/emoji_reactions_model as emoji_reactions_model
|
import ../../../../../../app/modules/shared_models/emoji_reactions_model as emoji_reactions_model
|
||||||
import ../../../../../../app_service/service/gif/dto
|
|
||||||
|
|
||||||
QtObject:
|
QtObject:
|
||||||
type
|
type
|
||||||
View* = ref object of QObject
|
View* = ref object of QObject
|
||||||
delegate: io_interface.AccessInterface
|
delegate: io_interface.AccessInterface
|
||||||
gifColumnAModel: GifColumnModel
|
|
||||||
gifColumnBModel: GifColumnModel
|
|
||||||
gifColumnCModel: GifColumnModel
|
|
||||||
gifLoading: bool
|
|
||||||
preservedProperties: PreservedProperties
|
preservedProperties: PreservedProperties
|
||||||
preservedPropertiesVariant: QVariant
|
preservedPropertiesVariant: QVariant
|
||||||
linkPreviewModel: link_preview_model.Model
|
linkPreviewModel: link_preview_model.Model
|
||||||
|
@ -27,9 +21,6 @@ QtObject:
|
||||||
|
|
||||||
proc delete*(self: View) =
|
proc delete*(self: View) =
|
||||||
self.QObject.delete
|
self.QObject.delete
|
||||||
self.gifColumnAModel.delete
|
|
||||||
self.gifColumnBModel.delete
|
|
||||||
self.gifColumnCModel.delete
|
|
||||||
self.preservedPropertiesVariant.delete
|
self.preservedPropertiesVariant.delete
|
||||||
self.preservedProperties.delete
|
self.preservedProperties.delete
|
||||||
self.linkPreviewModelVariant.delete
|
self.linkPreviewModelVariant.delete
|
||||||
|
@ -43,10 +34,6 @@ QtObject:
|
||||||
new(result, delete)
|
new(result, delete)
|
||||||
result.QObject.setup
|
result.QObject.setup
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.gifColumnAModel = newGifColumnModel()
|
|
||||||
result.gifColumnBModel = newGifColumnModel()
|
|
||||||
result.gifColumnCModel = newGifColumnModel()
|
|
||||||
result.gifLoading = false
|
|
||||||
result.preservedProperties = newPreservedProperties()
|
result.preservedProperties = newPreservedProperties()
|
||||||
result.preservedPropertiesVariant = newQVariant(result.preservedProperties)
|
result.preservedPropertiesVariant = newQVariant(result.preservedProperties)
|
||||||
result.linkPreviewModel = newLinkPreviewModel()
|
result.linkPreviewModel = newLinkPreviewModel()
|
||||||
|
@ -92,119 +79,6 @@ QtObject:
|
||||||
proc acceptRequestTransaction*(self: View, transactionHash: string, messageId: string, signature: string) {.slot.} =
|
proc acceptRequestTransaction*(self: View, transactionHash: string, messageId: string, signature: string) {.slot.} =
|
||||||
self.delegate.acceptRequestTransaction(transactionHash, messageId, signature)
|
self.delegate.acceptRequestTransaction(transactionHash, messageId, signature)
|
||||||
|
|
||||||
proc gifLoaded*(self: View) {.signal.}
|
|
||||||
|
|
||||||
proc getGifColumnA*(self: View): QVariant {.slot.} =
|
|
||||||
result = newQVariant(self.gifColumnAModel)
|
|
||||||
|
|
||||||
QtProperty[QVariant] gifColumnA:
|
|
||||||
read = getGifColumnA
|
|
||||||
notify = gifLoaded
|
|
||||||
|
|
||||||
proc getGifColumnB*(self: View): QVariant {.slot.} =
|
|
||||||
result = newQVariant(self.gifColumnBModel)
|
|
||||||
|
|
||||||
QtProperty[QVariant] gifColumnB:
|
|
||||||
read = getGifColumnB
|
|
||||||
notify = gifLoaded
|
|
||||||
|
|
||||||
proc getGifColumnC*(self: View): QVariant {.slot.} =
|
|
||||||
result = newQVariant(self.gifColumnCModel)
|
|
||||||
|
|
||||||
QtProperty[QVariant] gifColumnC:
|
|
||||||
read = getGifColumnC
|
|
||||||
notify = gifLoaded
|
|
||||||
|
|
||||||
proc updateGifColumns*(self: View, data: seq[GifDto]) =
|
|
||||||
var columnAData: seq[GifDto] = @[]
|
|
||||||
var columnAHeight = 0
|
|
||||||
var columnBData: seq[GifDto] = @[]
|
|
||||||
var columnBHeight = 0
|
|
||||||
var columnCData: seq[GifDto] = @[]
|
|
||||||
var columnCHeight = 0
|
|
||||||
|
|
||||||
for item in data:
|
|
||||||
if columnAHeight <= columnBHeight:
|
|
||||||
columnAData.add(item)
|
|
||||||
columnAHeight += item.height
|
|
||||||
elif columnBHeight <= columnCHeight:
|
|
||||||
columnBData.add(item)
|
|
||||||
columnBHeight += item.height
|
|
||||||
else:
|
|
||||||
columnCData.add(item)
|
|
||||||
columnCHeight += item.height
|
|
||||||
|
|
||||||
|
|
||||||
self.gifColumnAModel.setNewData(columnAData)
|
|
||||||
self.gifColumnBModel.setNewData(columnBData)
|
|
||||||
self.gifColumnCModel.setNewData(columnCData)
|
|
||||||
self.gifLoaded()
|
|
||||||
|
|
||||||
proc gifLoadingChanged*(self: View) {.signal.}
|
|
||||||
proc setGifLoading*(self: View, value: bool) =
|
|
||||||
self.gifLoading = value
|
|
||||||
self.gifLoadingChanged()
|
|
||||||
proc getGifLoading*(self: View): bool {.slot.} =
|
|
||||||
result = self.gifLoading
|
|
||||||
|
|
||||||
QtProperty[bool] gifLoading:
|
|
||||||
read = getGifLoading
|
|
||||||
notify = gifLoadingChanged
|
|
||||||
|
|
||||||
proc searchGifs*(self: View, query: string) {.slot.} =
|
|
||||||
self.delegate.searchGifs(query)
|
|
||||||
|
|
||||||
proc getTrendingsGifs*(self: View) {.slot.} =
|
|
||||||
self.delegate.getTrendingsGifs()
|
|
||||||
|
|
||||||
proc getRecentsGifs*(self: View) {.slot.} =
|
|
||||||
let data = self.delegate.getRecentsGifs()
|
|
||||||
if data.len > 0:
|
|
||||||
self.updateGifColumns(data)
|
|
||||||
return
|
|
||||||
|
|
||||||
# recent gifs were not loaded yet, so we do it now
|
|
||||||
self.delegate.loadRecentGifs()
|
|
||||||
|
|
||||||
proc getFavoritesGifs*(self: View) {.slot.} =
|
|
||||||
let data = self.delegate.getFavoritesGifs()
|
|
||||||
if data.len > 0:
|
|
||||||
self.updateGifColumns(data)
|
|
||||||
return
|
|
||||||
|
|
||||||
# favorite gifs were not loaded yet, so we do it now
|
|
||||||
self.delegate.loadFavoriteGifs()
|
|
||||||
|
|
||||||
proc findGifDto(self: View, id: string): GifDto =
|
|
||||||
for item in self.gifColumnAModel.gifs:
|
|
||||||
if item.id == id:
|
|
||||||
return item
|
|
||||||
|
|
||||||
for item in self.gifColumnBModel.gifs:
|
|
||||||
if item.id == id:
|
|
||||||
return item
|
|
||||||
|
|
||||||
for item in self.gifColumnCModel.gifs:
|
|
||||||
if item.id == id:
|
|
||||||
return item
|
|
||||||
|
|
||||||
raise newException(ValueError, "Invalid id " & $id)
|
|
||||||
|
|
||||||
proc toggleFavoriteGif*(self: View, id: string, reload: bool = false) {.slot.} =
|
|
||||||
let gifItem = self.findGifDto(id)
|
|
||||||
self.delegate.toggleFavoriteGif(gifItem)
|
|
||||||
|
|
||||||
if reload:
|
|
||||||
self.getFavoritesGifs()
|
|
||||||
|
|
||||||
proc addToRecentsGif*(self: View, id: string) {.slot.} =
|
|
||||||
let gifItem = self.findGifDto(id)
|
|
||||||
self.delegate.addToRecentsGif(gifItem)
|
|
||||||
|
|
||||||
proc isFavorite*(self: View, id: string): bool {.slot.} =
|
|
||||||
let gifItem = self.findGifDto(id)
|
|
||||||
return self.delegate.isFavorite(gifItem)
|
|
||||||
|
|
||||||
proc getPreservedProperties(self: View): QVariant {.slot.} =
|
proc getPreservedProperties(self: View): QVariant {.slot.} =
|
||||||
return self.preservedPropertiesVariant
|
return self.preservedPropertiesVariant
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ import ../../../../../app_service/service/node_configuration/service as node_con
|
||||||
import ../../../../../app_service/service/contacts/service as contact_service
|
import ../../../../../app_service/service/contacts/service as contact_service
|
||||||
import ../../../../../app_service/service/chat/service as chat_service
|
import ../../../../../app_service/service/chat/service as chat_service
|
||||||
import ../../../../../app_service/service/community/service as community_service
|
import ../../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../../app_service/service/gif/service as gif_service
|
|
||||||
import ../../../../../app_service/service/message/service as message_service
|
import ../../../../../app_service/service/message/service as message_service
|
||||||
import ../../../../../app_service/service/mailservers/service as mailservers_service
|
import ../../../../../app_service/service/mailservers/service as mailservers_service
|
||||||
import ../../../../../app_service/service/shared_urls/service as shared_urls_service
|
import ../../../../../app_service/service/shared_urls/service as shared_urls_service
|
||||||
|
@ -46,7 +45,7 @@ proc newModule*(delegate: delegate_interface.AccessInterface, events: EventEmitt
|
||||||
belongsToCommunity: bool, isUsersListAvailable: bool, settingsService: settings_service.Service,
|
belongsToCommunity: bool, isUsersListAvailable: bool, settingsService: settings_service.Service,
|
||||||
nodeConfigurationService: node_configuration_service.Service, contactService: contact_service.Service,
|
nodeConfigurationService: node_configuration_service.Service, contactService: contact_service.Service,
|
||||||
chatService: chat_service.Service, communityService: community_service.Service,
|
chatService: chat_service.Service, communityService: community_service.Service,
|
||||||
messageService: message_service.Service, gifService: gif_service.Service,
|
messageService: message_service.Service,
|
||||||
mailserversService: mailservers_service.Service, sharedUrlsService: shared_urls_service.Service):
|
mailserversService: mailservers_service.Service, sharedUrlsService: shared_urls_service.Service):
|
||||||
Module =
|
Module =
|
||||||
result = Module()
|
result = Module()
|
||||||
|
@ -59,7 +58,7 @@ proc newModule*(delegate: delegate_interface.AccessInterface, events: EventEmitt
|
||||||
result.moduleLoaded = false
|
result.moduleLoaded = false
|
||||||
|
|
||||||
result.inputAreaModule = input_area_module.newModule(result, events, sectionId, chatId, belongsToCommunity,
|
result.inputAreaModule = input_area_module.newModule(result, events, sectionId, chatId, belongsToCommunity,
|
||||||
chatService, communityService, contactService, gifService, messageService, settingsService)
|
chatService, communityService, contactService, messageService, settingsService)
|
||||||
result.messagesModule = messages_module.newModule(result, events, sectionId, chatId, belongsToCommunity,
|
result.messagesModule = messages_module.newModule(result, events, sectionId, chatId, belongsToCommunity,
|
||||||
contactService, communityService, chatService, messageService, mailserversService, sharedUrlsService)
|
contactService, communityService, chatService, messageService, mailserversService, sharedUrlsService)
|
||||||
result.usersModule = users_module.newModule(events, sectionId, chatId, belongsToCommunity,
|
result.usersModule = users_module.newModule(events, sectionId, chatId, belongsToCommunity,
|
||||||
|
@ -428,4 +427,4 @@ method getPermissionsCheckOngoing*(self: Module): bool =
|
||||||
self.view.getPermissionsCheckOngoing()
|
self.view.getPermissionsCheckOngoing()
|
||||||
|
|
||||||
method scrollToMessage*(self: Module, messageId: string) =
|
method scrollToMessage*(self: Module, messageId: string) =
|
||||||
self.messagesModule.scrollToMessage(messageId)
|
self.messagesModule.scrollToMessage(messageId)
|
||||||
|
|
|
@ -9,7 +9,6 @@ import ../../../../app_service/service/chat/service as chat_service
|
||||||
import ../../../../app_service/service/network/service as network_service
|
import ../../../../app_service/service/network/service as network_service
|
||||||
import ../../../../app_service/service/community/service as community_service
|
import ../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../app_service/service/message/service as message_service
|
import ../../../../app_service/service/message/service as message_service
|
||||||
import ../../../../app_service/service/gif/service as gif_service
|
|
||||||
import ../../../../app_service/service/mailservers/service as mailservers_service
|
import ../../../../app_service/service/mailservers/service as mailservers_service
|
||||||
import ../../../../app_service/service/wallet_account/service as wallet_account_service
|
import ../../../../app_service/service/wallet_account/service as wallet_account_service
|
||||||
import ../../../../app_service/service/token/service as token_service
|
import ../../../../app_service/service/token/service as token_service
|
||||||
|
@ -38,7 +37,6 @@ type
|
||||||
chatService: chat_service.Service
|
chatService: chat_service.Service
|
||||||
communityService: community_service.Service
|
communityService: community_service.Service
|
||||||
messageService: message_service.Service
|
messageService: message_service.Service
|
||||||
gifService: gif_service.Service
|
|
||||||
mailserversService: mailservers_service.Service
|
mailserversService: mailservers_service.Service
|
||||||
walletAccountService: wallet_account_service.Service
|
walletAccountService: wallet_account_service.Service
|
||||||
tokenService: token_service.Service
|
tokenService: token_service.Service
|
||||||
|
@ -53,7 +51,7 @@ proc newController*(delegate: io_interface.AccessInterface, sectionId: string, i
|
||||||
settingsService: settings_service.Service, nodeConfigurationService: node_configuration_service.Service,
|
settingsService: settings_service.Service, nodeConfigurationService: node_configuration_service.Service,
|
||||||
contactService: contact_service.Service, chatService: chat_service.Service,
|
contactService: contact_service.Service, chatService: chat_service.Service,
|
||||||
communityService: community_service.Service, messageService: message_service.Service,
|
communityService: community_service.Service, messageService: message_service.Service,
|
||||||
gifService: gif_service.Service, mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service, tokenService: token_service.Service,
|
walletAccountService: wallet_account_service.Service, tokenService: token_service.Service,
|
||||||
communityTokensService: community_tokens_service.Service,
|
communityTokensService: community_tokens_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service, networkService: network_service.Service): Controller =
|
sharedUrlsService: shared_urls_service.Service, networkService: network_service.Service): Controller =
|
||||||
|
@ -69,7 +67,6 @@ proc newController*(delegate: io_interface.AccessInterface, sectionId: string, i
|
||||||
result.chatService = chatService
|
result.chatService = chatService
|
||||||
result.communityService = communityService
|
result.communityService = communityService
|
||||||
result.messageService = messageService
|
result.messageService = messageService
|
||||||
result.gifService = gifService
|
|
||||||
result.mailserversService = mailserversService
|
result.mailserversService = mailserversService
|
||||||
result.walletAccountService = walletAccountService
|
result.walletAccountService = walletAccountService
|
||||||
result.tokenService = tokenService
|
result.tokenService = tokenService
|
||||||
|
@ -176,14 +173,14 @@ proc init*(self: Controller) =
|
||||||
for chat in args.chats:
|
for chat in args.chats:
|
||||||
let belongsToCommunity = chat.communityId.len > 0
|
let belongsToCommunity = chat.communityId.len > 0
|
||||||
discard self.delegate.addOrUpdateChat(chat, belongsToCommunity, self.events, self.settingsService, self.nodeConfigurationService,
|
discard self.delegate.addOrUpdateChat(chat, belongsToCommunity, self.events, self.settingsService, self.nodeConfigurationService,
|
||||||
self.contactService, self.chatService, self.communityService, self.messageService, self.gifService,
|
self.contactService, self.chatService, self.communityService, self.messageService,
|
||||||
self.mailserversService, self.sharedUrlsService, setChatAsActive = false)
|
self.mailserversService, self.sharedUrlsService, setChatAsActive = false)
|
||||||
|
|
||||||
self.events.on(SIGNAL_CHAT_CREATED) do(e: Args):
|
self.events.on(SIGNAL_CHAT_CREATED) do(e: Args):
|
||||||
var args = CreatedChatArgs(e)
|
var args = CreatedChatArgs(e)
|
||||||
let belongsToCommunity = args.chat.communityId.len > 0
|
let belongsToCommunity = args.chat.communityId.len > 0
|
||||||
discard self.delegate.addOrUpdateChat(args.chat, belongsToCommunity, self.events, self.settingsService, self.nodeConfigurationService,
|
discard self.delegate.addOrUpdateChat(args.chat, belongsToCommunity, self.events, self.settingsService, self.nodeConfigurationService,
|
||||||
self.contactService, self.chatService, self.communityService, self.messageService, self.gifService,
|
self.contactService, self.chatService, self.communityService, self.messageService,
|
||||||
self.mailserversService, self.sharedUrlsService, setChatAsActive = true)
|
self.mailserversService, self.sharedUrlsService, setChatAsActive = true)
|
||||||
|
|
||||||
if (self.isCommunitySection):
|
if (self.isCommunitySection):
|
||||||
|
@ -192,7 +189,7 @@ proc init*(self: Controller) =
|
||||||
let belongsToCommunity = args.chat.communityId.len > 0
|
let belongsToCommunity = args.chat.communityId.len > 0
|
||||||
discard self.delegate.addOrUpdateChat(args.chat, belongsToCommunity, self.events, self.settingsService,
|
discard self.delegate.addOrUpdateChat(args.chat, belongsToCommunity, self.events, self.settingsService,
|
||||||
self.nodeConfigurationService, self.contactService, self.chatService, self.communityService,
|
self.nodeConfigurationService, self.contactService, self.chatService, self.communityService,
|
||||||
self.messageService, self.gifService, self.mailserversService, self.sharedUrlsService, setChatAsActive = true)
|
self.messageService, self.mailserversService, self.sharedUrlsService, setChatAsActive = true)
|
||||||
|
|
||||||
self.events.on(SIGNAL_COMMUNITY_METRICS_UPDATED) do(e: Args):
|
self.events.on(SIGNAL_COMMUNITY_METRICS_UPDATED) do(e: Args):
|
||||||
let args = CommunityMetricsArgs(e)
|
let args = CommunityMetricsArgs(e)
|
||||||
|
@ -457,7 +454,6 @@ proc getChatsAndBuildUI*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.sharedUrlsService,
|
self.sharedUrlsService,
|
||||||
)
|
)
|
||||||
|
@ -504,7 +500,7 @@ proc createOneToOneChat*(self: Controller, communityID: string, chatId: string,
|
||||||
if(response.success):
|
if(response.success):
|
||||||
discard self.delegate.addOrUpdateChat(response.chatDto, false, self.events, self.settingsService, self.nodeConfigurationService,
|
discard self.delegate.addOrUpdateChat(response.chatDto, false, self.events, self.settingsService, self.nodeConfigurationService,
|
||||||
self.contactService, self.chatService, self.communityService, self.messageService,
|
self.contactService, self.chatService, self.communityService, self.messageService,
|
||||||
self.gifService, self.mailserversService, self.sharedUrlsService)
|
self.mailserversService, self.sharedUrlsService)
|
||||||
|
|
||||||
proc switchToOrCreateOneToOneChat*(self: Controller, chatId: string, ensName: string) =
|
proc switchToOrCreateOneToOneChat*(self: Controller, chatId: string, ensName: string) =
|
||||||
self.chatService.switchToOrCreateOneToOneChat(chatId, ensName)
|
self.chatService.switchToOrCreateOneToOneChat(chatId, ensName)
|
||||||
|
@ -577,14 +573,14 @@ proc createGroupChat*(self: Controller, communityID: string, groupName: string,
|
||||||
if(response.success):
|
if(response.success):
|
||||||
discard self.delegate.addOrUpdateChat(response.chatDto, false, self.events, self.settingsService, self.nodeConfigurationService,
|
discard self.delegate.addOrUpdateChat(response.chatDto, false, self.events, self.settingsService, self.nodeConfigurationService,
|
||||||
self.contactService, self.chatService, self.communityService, self.messageService,
|
self.contactService, self.chatService, self.communityService, self.messageService,
|
||||||
self.gifService, self.mailserversService, self.sharedUrlsService)
|
self.mailserversService, self.sharedUrlsService)
|
||||||
|
|
||||||
proc joinGroupChatFromInvitation*(self: Controller, groupName: string, chatId: string, adminPK: string) =
|
proc joinGroupChatFromInvitation*(self: Controller, groupName: string, chatId: string, adminPK: string) =
|
||||||
let response = self.chatService.createGroupChatFromInvitation(groupName, chatId, adminPK)
|
let response = self.chatService.createGroupChatFromInvitation(groupName, chatId, adminPK)
|
||||||
if(response.success):
|
if(response.success):
|
||||||
discard self.delegate.addOrUpdateChat(response.chatDto, false, self.events, self.settingsService, self.nodeConfigurationService,
|
discard self.delegate.addOrUpdateChat(response.chatDto, false, self.events, self.settingsService, self.nodeConfigurationService,
|
||||||
self.contactService, self.chatService, self.communityService, self.messageService,
|
self.contactService, self.chatService, self.communityService, self.messageService,
|
||||||
self.gifService, self.mailserversService, self.sharedUrlsService)
|
self.mailserversService, self.sharedUrlsService)
|
||||||
|
|
||||||
proc acceptRequestToJoinCommunity*(self: Controller, requestId: string, communityId: string) =
|
proc acceptRequestToJoinCommunity*(self: Controller, requestId: string, communityId: string) =
|
||||||
self.communityService.asyncAcceptRequestToJoinCommunity(communityId, requestId)
|
self.communityService.asyncAcceptRequestToJoinCommunity(communityId, requestId)
|
||||||
|
|
|
@ -6,7 +6,6 @@ import ../../../../app_service/service/contacts/service as contact_service
|
||||||
import ../../../../app_service/service/chat/service as chat_service
|
import ../../../../app_service/service/chat/service as chat_service
|
||||||
import ../../../../app_service/service/community/service as community_service
|
import ../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../app_service/service/message/service as message_service
|
import ../../../../app_service/service/message/service as message_service
|
||||||
import ../../../../app_service/service/gif/service as gif_service
|
|
||||||
import ../../../../app_service/service/mailservers/service as mailservers_service
|
import ../../../../app_service/service/mailservers/service as mailservers_service
|
||||||
import ../../../../app_service/service/shared_urls/service as shared_urls_service
|
import ../../../../app_service/service/shared_urls/service as shared_urls_service
|
||||||
import ../../../../app_service/common/types
|
import ../../../../app_service/common/types
|
||||||
|
@ -34,7 +33,6 @@ method onChatsLoaded*(self: AccessInterface,
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
) {.base.} =
|
) {.base.} =
|
||||||
|
@ -77,7 +75,6 @@ method addOrUpdateChat*(self: AccessInterface,
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
setChatAsActive: bool = true,
|
setChatAsActive: bool = true,
|
||||||
|
|
|
@ -31,7 +31,6 @@ import ../../../../app_service/service/network/service as network_service
|
||||||
import ../../../../app_service/service/community/service as community_service
|
import ../../../../app_service/service/community/service as community_service
|
||||||
import ../../../../app_service/service/message/service as message_service
|
import ../../../../app_service/service/message/service as message_service
|
||||||
import ../../../../app_service/service/mailservers/service as mailservers_service
|
import ../../../../app_service/service/mailservers/service as mailservers_service
|
||||||
import ../../../../app_service/service/gif/service as gif_service
|
|
||||||
import ../../../../app_service/service/wallet_account/service as wallet_account_service
|
import ../../../../app_service/service/wallet_account/service as wallet_account_service
|
||||||
import ../../../../app_service/service/token/service as token_service
|
import ../../../../app_service/service/token/service as token_service
|
||||||
import ../../../../app_service/service/community_tokens/service as community_tokens_service
|
import ../../../../app_service/service/community_tokens/service as community_tokens_service
|
||||||
|
@ -65,7 +64,6 @@ proc buildChatSectionUI(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
)
|
)
|
||||||
|
@ -85,7 +83,6 @@ proc addOrUpdateChat(self: Module,
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
setChatAsActive: bool = true,
|
setChatAsActive: bool = true,
|
||||||
|
@ -103,7 +100,6 @@ proc newModule*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
@ -114,7 +110,7 @@ proc newModule*(
|
||||||
result = Module()
|
result = Module()
|
||||||
result.delegate = delegate
|
result.delegate = delegate
|
||||||
result.controller = controller.newController(result, sectionId, isCommunity, events, settingsService,
|
result.controller = controller.newController(result, sectionId, isCommunity, events, settingsService,
|
||||||
nodeConfigurationService, contactService, chatService, communityService, messageService, gifService,
|
nodeConfigurationService, contactService, chatService, communityService, messageService,
|
||||||
mailserversService, walletAccountService, tokenService, communityTokensService, sharedUrlsService, networkService)
|
mailserversService, walletAccountService, tokenService, communityTokensService, sharedUrlsService, networkService)
|
||||||
result.view = view.newView(result)
|
result.view = view.newView(result)
|
||||||
result.viewVariant = newQVariant(result.view)
|
result.viewVariant = newQVariant(result.view)
|
||||||
|
@ -244,13 +240,12 @@ proc addSubmodule(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
) =
|
) =
|
||||||
self.chatContentModules[chatId] = chat_content_module.newModule(self, events, self.controller.getMySectionId(), chatId,
|
self.chatContentModules[chatId] = chat_content_module.newModule(self, events, self.controller.getMySectionId(), chatId,
|
||||||
belongToCommunity, isUsersListAvailable, settingsService, nodeConfigurationService, contactService, chatService, communityService,
|
belongToCommunity, isUsersListAvailable, settingsService, nodeConfigurationService, contactService, chatService, communityService,
|
||||||
messageService, gifService, mailserversService, sharedUrlsService)
|
messageService, mailserversService, sharedUrlsService)
|
||||||
|
|
||||||
proc removeSubmodule(self: Module, chatId: string) =
|
proc removeSubmodule(self: Module, chatId: string) =
|
||||||
if(not self.chatContentModules.contains(chatId)):
|
if(not self.chatContentModules.contains(chatId)):
|
||||||
|
@ -295,7 +290,6 @@ proc buildChatSectionUI(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
) =
|
) =
|
||||||
|
@ -335,7 +329,6 @@ proc buildChatSectionUI(
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
sharedUrlsService,
|
sharedUrlsService,
|
||||||
setChatAsActive = false,
|
setChatAsActive = false,
|
||||||
|
@ -429,13 +422,12 @@ method onChatsLoaded*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
) =
|
) =
|
||||||
self.chatsLoaded = true
|
self.chatsLoaded = true
|
||||||
self.buildChatSectionUI(channelGroup, events, settingsService, nodeConfigurationService,
|
self.buildChatSectionUI(channelGroup, events, settingsService, nodeConfigurationService,
|
||||||
contactService, chatService, communityService, messageService, gifService, mailserversService, sharedUrlsService)
|
contactService, chatService, communityService, messageService, mailserversService, sharedUrlsService)
|
||||||
|
|
||||||
if(not self.controller.isCommunity()):
|
if(not self.controller.isCommunity()):
|
||||||
# we do this only in case of chat section (not in case of communities)
|
# we do this only in case of chat section (not in case of communities)
|
||||||
|
@ -641,7 +633,6 @@ proc addNewChat(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
setChatAsActive: bool = true,
|
setChatAsActive: bool = true,
|
||||||
|
@ -750,7 +741,6 @@ proc addNewChat(
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
sharedUrlsService,
|
sharedUrlsService,
|
||||||
)
|
)
|
||||||
|
@ -1387,7 +1377,6 @@ proc addOrUpdateChat(self: Module,
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
setChatAsActive: bool = true,
|
setChatAsActive: bool = true,
|
||||||
|
@ -1434,7 +1423,6 @@ proc addOrUpdateChat(self: Module,
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
sharedUrlsService,
|
sharedUrlsService,
|
||||||
setChatAsActive,
|
setChatAsActive,
|
||||||
|
@ -1451,7 +1439,6 @@ method addOrUpdateChat*(self: Module,
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
sharedUrlsService: shared_urls_service.Service,
|
sharedUrlsService: shared_urls_service.Service,
|
||||||
setChatAsActive: bool = true,
|
setChatAsActive: bool = true,
|
||||||
|
@ -1468,7 +1455,6 @@ method addOrUpdateChat*(self: Module,
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
sharedUrlsService,
|
sharedUrlsService,
|
||||||
setChatAsActive,
|
setChatAsActive,
|
||||||
|
|
|
@ -120,7 +120,6 @@ proc init*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.walletAccountService,
|
self.walletAccountService,
|
||||||
self.tokenService,
|
self.tokenService,
|
||||||
|
@ -138,7 +137,6 @@ proc init*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.walletAccountService,
|
self.walletAccountService,
|
||||||
self.tokenService,
|
self.tokenService,
|
||||||
|
@ -175,7 +173,6 @@ proc init*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.walletAccountService,
|
self.walletAccountService,
|
||||||
self.tokenService,
|
self.tokenService,
|
||||||
|
@ -196,7 +193,6 @@ proc init*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.walletAccountService,
|
self.walletAccountService,
|
||||||
self.tokenService,
|
self.tokenService,
|
||||||
|
@ -223,7 +219,6 @@ proc init*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.walletAccountService,
|
self.walletAccountService,
|
||||||
self.tokenService,
|
self.tokenService,
|
||||||
|
@ -246,7 +241,6 @@ proc init*(self: Controller) =
|
||||||
self.chatService,
|
self.chatService,
|
||||||
self.communityService,
|
self.communityService,
|
||||||
self.messageService,
|
self.messageService,
|
||||||
self.gifService,
|
|
||||||
self.mailserversService,
|
self.mailserversService,
|
||||||
self.walletAccountService,
|
self.walletAccountService,
|
||||||
self.tokenService,
|
self.tokenService,
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
import io_interface
|
||||||
|
|
||||||
|
import ../../../../app_service/service/gif/service as gif_service
|
||||||
|
import ../../../../app_service/service/gif/dto
|
||||||
|
import ../../../core/eventemitter
|
||||||
|
import ../../../core/unique_event_emitter
|
||||||
|
|
||||||
|
type
|
||||||
|
Controller* = ref object of RootObj
|
||||||
|
delegate: io_interface.AccessInterface
|
||||||
|
events: UniqueUUIDEventEmitter
|
||||||
|
gifService: gif_service.Service
|
||||||
|
|
||||||
|
proc newController*(
|
||||||
|
delegate: io_interface.AccessInterface,
|
||||||
|
events: EventEmitter,
|
||||||
|
gifService: gif_service.Service,
|
||||||
|
): Controller =
|
||||||
|
result = Controller()
|
||||||
|
result.delegate = delegate
|
||||||
|
result.events = initUniqueUUIDEventEmitter(events)
|
||||||
|
result.gifService = gifService
|
||||||
|
|
||||||
|
proc delete*(self: Controller) =
|
||||||
|
self.events.disconnect()
|
||||||
|
|
||||||
|
proc init*(self: Controller) =
|
||||||
|
self.events.on(SIGNAL_LOAD_RECENT_GIFS_DONE) do(e:Args):
|
||||||
|
let args = GifsArgs(e)
|
||||||
|
self.delegate.loadRecentGifsDone(args.gifs)
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_LOAD_FAVORITE_GIFS_DONE) do(e:Args):
|
||||||
|
let args = GifsArgs(e)
|
||||||
|
self.delegate.loadFavoriteGifsDone(args.gifs)
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_LOAD_TRENDING_GIFS_STARTED) do(e:Args):
|
||||||
|
self.delegate.loadTrendingGifsStarted()
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_LOAD_TRENDING_GIFS_DONE) do(e:Args):
|
||||||
|
let args = GifsArgs(e)
|
||||||
|
self.delegate.loadTrendingGifsDone(args.gifs)
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_LOAD_TRENDING_GIFS_ERROR) do(e:Args):
|
||||||
|
self.delegate.loadTrendingGifsError()
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_SEARCH_GIFS_STARTED) do(e:Args):
|
||||||
|
self.delegate.searchGifsStarted()
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_SEARCH_GIFS_DONE) do(e:Args):
|
||||||
|
let args = GifsArgs(e)
|
||||||
|
self.delegate.serachGifsDone(args.gifs)
|
||||||
|
|
||||||
|
self.events.on(SIGNAL_SEARCH_GIFS_ERROR) do(e:Args):
|
||||||
|
self.delegate.searchGifsError()
|
||||||
|
|
||||||
|
proc searchGifs*(self: Controller, query: string) =
|
||||||
|
self.gifService.search(query)
|
||||||
|
|
||||||
|
proc getTrendingsGifs*(self: Controller) =
|
||||||
|
self.gifService.getTrending()
|
||||||
|
|
||||||
|
proc getRecentsGifs*(self: Controller): seq[GifDto] =
|
||||||
|
return self.gifService.getRecents()
|
||||||
|
|
||||||
|
proc loadRecentGifs*(self: Controller) =
|
||||||
|
self.gifService.asyncLoadRecentGifs()
|
||||||
|
|
||||||
|
proc loadFavoriteGifs*(self: Controller) =
|
||||||
|
self.gifService.asyncLoadFavoriteGifs()
|
||||||
|
|
||||||
|
proc getFavoritesGifs*(self: Controller): seq[GifDto] =
|
||||||
|
return self.gifService.getFavorites()
|
||||||
|
|
||||||
|
proc toggleFavoriteGif*(self: Controller, item: GifDto) =
|
||||||
|
self.gifService.toggleFavorite(item)
|
||||||
|
|
||||||
|
proc addToRecentsGif*(self: Controller, item: GifDto) =
|
||||||
|
self.gifService.addToRecents(item)
|
||||||
|
|
||||||
|
proc isFavorite*(self: Controller, item: GifDto): bool =
|
||||||
|
return self.gifService.isFavorite(item)
|
|
@ -1,6 +1,6 @@
|
||||||
import NimQml, Tables, sequtils
|
import NimQml, Tables, sequtils
|
||||||
|
|
||||||
import ../../../../../../app_service/service/gif/dto
|
import ../../../../app_service/service/gif/dto
|
||||||
|
|
||||||
type
|
type
|
||||||
GifRoles {.pure.} = enum
|
GifRoles {.pure.} = enum
|
|
@ -0,0 +1,67 @@
|
||||||
|
import ../../../../app_service/service/gif/dto
|
||||||
|
|
||||||
|
type
|
||||||
|
AccessInterface* {.pure inheritable.} = ref object of RootObj
|
||||||
|
|
||||||
|
method delete*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method load*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method isLoaded*(self: AccessInterface): bool {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method viewDidLoad*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method searchGifs*(self: AccessInterface, query: string) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method getTrendingsGifs*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method getRecentsGifs*(self: AccessInterface): seq[GifDto] {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadRecentGifs*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadRecentGifsDone*(self: AccessInterface, gifs: seq[GifDto]) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadTrendingGifsStarted*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadTrendingGifsError*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadTrendingGifsDone*(self: AccessInterface, gifs: seq[GifDto]) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method searchGifsStarted*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method searchGifsError*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method serachGifsDone*(self: AccessInterface, gifs: seq[GifDto]) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method getFavoritesGifs*(self: AccessInterface): seq[GifDto] {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadFavoriteGifs*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method loadFavoriteGifsDone*(self: AccessInterface, gifs: seq[GifDto]) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method toggleFavoriteGif*(self: AccessInterface, item: GifDto) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method addToRecentsGif*(self: AccessInterface, item: GifDto) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method isFavorite*(self: AccessInterface, item: GifDto): bool {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
|
@ -0,0 +1,107 @@
|
||||||
|
import NimQml
|
||||||
|
import io_interface
|
||||||
|
import ../io_interface as delegate_interface
|
||||||
|
import view, controller
|
||||||
|
import ../../../global/global_singleton
|
||||||
|
import ../../../core/eventemitter
|
||||||
|
|
||||||
|
import ../../../../app_service/service/gif/service as gif_service
|
||||||
|
import ../../../../app_service/service/gif/dto
|
||||||
|
|
||||||
|
export io_interface
|
||||||
|
|
||||||
|
type
|
||||||
|
Module* = ref object of io_interface.AccessInterface
|
||||||
|
delegate: delegate_interface.AccessInterface
|
||||||
|
view: View
|
||||||
|
viewVariant: QVariant
|
||||||
|
controller: Controller
|
||||||
|
moduleLoaded: bool
|
||||||
|
|
||||||
|
proc newModule*(
|
||||||
|
delegate: delegate_interface.AccessInterface,
|
||||||
|
events: EventEmitter,
|
||||||
|
gifService: gif_service.Service,
|
||||||
|
):
|
||||||
|
Module =
|
||||||
|
result = Module()
|
||||||
|
result.delegate = delegate
|
||||||
|
result.view = view.newView(result)
|
||||||
|
result.viewVariant = newQVariant(result.view)
|
||||||
|
result.controller = controller.newController(result, events, gifService)
|
||||||
|
result.moduleLoaded = false
|
||||||
|
|
||||||
|
method delete*(self: Module) =
|
||||||
|
self.view.delete
|
||||||
|
self.viewVariant.delete
|
||||||
|
self.controller.delete
|
||||||
|
|
||||||
|
method load*(self: Module) =
|
||||||
|
singletonInstance.engine.setRootContextProperty("gifsModule", self.viewVariant)
|
||||||
|
|
||||||
|
self.controller.init()
|
||||||
|
self.view.load()
|
||||||
|
|
||||||
|
method isLoaded*(self: Module): bool =
|
||||||
|
return self.moduleLoaded
|
||||||
|
|
||||||
|
method viewDidLoad*(self: Module) =
|
||||||
|
self.moduleLoaded = true
|
||||||
|
self.delegate.gifsDidLoad()
|
||||||
|
|
||||||
|
method searchGifs*(self: Module, query: string) =
|
||||||
|
self.controller.searchGifs(query)
|
||||||
|
|
||||||
|
method getTrendingsGifs*(self: Module) =
|
||||||
|
self.controller.getTrendingsGifs()
|
||||||
|
|
||||||
|
method getRecentsGifs*(self: Module): seq[GifDto] =
|
||||||
|
return self.controller.getRecentsGifs()
|
||||||
|
|
||||||
|
method loadRecentGifs*(self: Module) =
|
||||||
|
self.controller.loadRecentGifs()
|
||||||
|
|
||||||
|
method loadRecentGifsDone*(self: Module, gifs: seq[GifDto]) =
|
||||||
|
self.view.updateGifColumns(gifs)
|
||||||
|
|
||||||
|
method loadTrendingGifsStarted*(self: Module) =
|
||||||
|
self.view.updateGifColumns(@[])
|
||||||
|
self.view.setGifLoading(true)
|
||||||
|
|
||||||
|
method loadTrendingGifsError*(self: Module) =
|
||||||
|
# Just setting loading to false works because the UI shows an error when there are no gifs
|
||||||
|
self.view.setGifLoading(false)
|
||||||
|
|
||||||
|
method loadTrendingGifsDone*(self: Module, gifs: seq[GifDto]) =
|
||||||
|
self.view.setGifLoading(false)
|
||||||
|
self.view.updateGifColumns(gifs)
|
||||||
|
|
||||||
|
method searchGifsStarted*(self: Module) =
|
||||||
|
self.view.updateGifColumns(@[])
|
||||||
|
self.view.setGifLoading(true)
|
||||||
|
|
||||||
|
method searchGifsError*(self: Module) =
|
||||||
|
# Just setting loading to false works because the UI shows an error when there are no gifs
|
||||||
|
self.view.setGifLoading(false)
|
||||||
|
|
||||||
|
method serachGifsDone*(self: Module, gifs: seq[GifDto]) =
|
||||||
|
self.view.setGifLoading(false)
|
||||||
|
self.view.updateGifColumns(gifs)
|
||||||
|
|
||||||
|
method getFavoritesGifs*(self: Module): seq[GifDto] =
|
||||||
|
return self.controller.getFavoritesGifs()
|
||||||
|
|
||||||
|
method loadFavoriteGifs*(self: Module) =
|
||||||
|
self.controller.loadFavoriteGifs()
|
||||||
|
|
||||||
|
method loadFavoriteGifsDone*(self: Module, gifs: seq[GifDto]) =
|
||||||
|
self.view.updateGifColumns(gifs)
|
||||||
|
|
||||||
|
method toggleFavoriteGif*(self: Module, item: GifDto) =
|
||||||
|
self.controller.toggleFavoriteGif(item)
|
||||||
|
|
||||||
|
method addToRecentsGif*(self: Module, item: GifDto) =
|
||||||
|
self.controller.addToRecentsGif(item)
|
||||||
|
|
||||||
|
method isFavorite*(self: Module, item: GifDto): bool =
|
||||||
|
return self.controller.isFavorite(item)
|
|
@ -0,0 +1,143 @@
|
||||||
|
import NimQml
|
||||||
|
import ./io_interface
|
||||||
|
import ./gif_column_model
|
||||||
|
import ../../../../app_service/service/gif/dto
|
||||||
|
|
||||||
|
QtObject:
|
||||||
|
type
|
||||||
|
View* = ref object of QObject
|
||||||
|
delegate: io_interface.AccessInterface
|
||||||
|
gifColumnAModel: GifColumnModel
|
||||||
|
gifColumnBModel: GifColumnModel
|
||||||
|
gifColumnCModel: GifColumnModel
|
||||||
|
gifLoading: bool
|
||||||
|
|
||||||
|
proc delete*(self: View) =
|
||||||
|
self.QObject.delete
|
||||||
|
self.gifColumnAModel.delete
|
||||||
|
self.gifColumnBModel.delete
|
||||||
|
self.gifColumnCModel.delete
|
||||||
|
|
||||||
|
proc newView*(delegate: io_interface.AccessInterface): View =
|
||||||
|
new(result, delete)
|
||||||
|
result.QObject.setup
|
||||||
|
result.delegate = delegate
|
||||||
|
result.gifColumnAModel = newGifColumnModel()
|
||||||
|
result.gifColumnBModel = newGifColumnModel()
|
||||||
|
result.gifColumnCModel = newGifColumnModel()
|
||||||
|
result.gifLoading = false
|
||||||
|
|
||||||
|
proc load*(self: View) =
|
||||||
|
self.delegate.viewDidLoad()
|
||||||
|
|
||||||
|
proc gifLoaded*(self: View) {.signal.}
|
||||||
|
|
||||||
|
proc getGifColumnA*(self: View): QVariant {.slot.} =
|
||||||
|
result = newQVariant(self.gifColumnAModel)
|
||||||
|
|
||||||
|
QtProperty[QVariant] gifColumnA:
|
||||||
|
read = getGifColumnA
|
||||||
|
notify = gifLoaded
|
||||||
|
|
||||||
|
proc getGifColumnB*(self: View): QVariant {.slot.} =
|
||||||
|
result = newQVariant(self.gifColumnBModel)
|
||||||
|
|
||||||
|
QtProperty[QVariant] gifColumnB:
|
||||||
|
read = getGifColumnB
|
||||||
|
notify = gifLoaded
|
||||||
|
|
||||||
|
proc getGifColumnC*(self: View): QVariant {.slot.} =
|
||||||
|
result = newQVariant(self.gifColumnCModel)
|
||||||
|
|
||||||
|
QtProperty[QVariant] gifColumnC:
|
||||||
|
read = getGifColumnC
|
||||||
|
notify = gifLoaded
|
||||||
|
|
||||||
|
proc updateGifColumns*(self: View, data: seq[GifDto]) =
|
||||||
|
var columnAData: seq[GifDto] = @[]
|
||||||
|
var columnAHeight = 0
|
||||||
|
var columnBData: seq[GifDto] = @[]
|
||||||
|
var columnBHeight = 0
|
||||||
|
var columnCData: seq[GifDto] = @[]
|
||||||
|
var columnCHeight = 0
|
||||||
|
|
||||||
|
for item in data:
|
||||||
|
if columnAHeight <= columnBHeight:
|
||||||
|
columnAData.add(item)
|
||||||
|
columnAHeight += item.height
|
||||||
|
elif columnBHeight <= columnCHeight:
|
||||||
|
columnBData.add(item)
|
||||||
|
columnBHeight += item.height
|
||||||
|
else:
|
||||||
|
columnCData.add(item)
|
||||||
|
columnCHeight += item.height
|
||||||
|
|
||||||
|
self.gifColumnAModel.setNewData(columnAData)
|
||||||
|
self.gifColumnBModel.setNewData(columnBData)
|
||||||
|
self.gifColumnCModel.setNewData(columnCData)
|
||||||
|
self.gifLoaded()
|
||||||
|
|
||||||
|
proc gifLoadingChanged*(self: View) {.signal.}
|
||||||
|
proc setGifLoading*(self: View, value: bool) =
|
||||||
|
self.gifLoading = value
|
||||||
|
self.gifLoadingChanged()
|
||||||
|
proc getGifLoading*(self: View): bool {.slot.} =
|
||||||
|
result = self.gifLoading
|
||||||
|
|
||||||
|
QtProperty[bool] gifLoading:
|
||||||
|
read = getGifLoading
|
||||||
|
notify = gifLoadingChanged
|
||||||
|
|
||||||
|
proc searchGifs*(self: View, query: string) {.slot.} =
|
||||||
|
self.delegate.searchGifs(query)
|
||||||
|
|
||||||
|
proc getTrendingsGifs*(self: View) {.slot.} =
|
||||||
|
self.delegate.getTrendingsGifs()
|
||||||
|
|
||||||
|
proc getRecentsGifs*(self: View) {.slot.} =
|
||||||
|
let data = self.delegate.getRecentsGifs()
|
||||||
|
if data.len > 0:
|
||||||
|
self.updateGifColumns(data)
|
||||||
|
return
|
||||||
|
|
||||||
|
# recent gifs were not loaded yet, so we do it now
|
||||||
|
self.delegate.loadRecentGifs()
|
||||||
|
|
||||||
|
proc getFavoritesGifs*(self: View) {.slot.} =
|
||||||
|
let data = self.delegate.getFavoritesGifs()
|
||||||
|
if data.len > 0:
|
||||||
|
self.updateGifColumns(data)
|
||||||
|
return
|
||||||
|
|
||||||
|
# favorite gifs were not loaded yet, so we do it now
|
||||||
|
self.delegate.loadFavoriteGifs()
|
||||||
|
|
||||||
|
proc findGifDto(self: View, id: string): GifDto =
|
||||||
|
for item in self.gifColumnAModel.gifs:
|
||||||
|
if item.id == id:
|
||||||
|
return item
|
||||||
|
|
||||||
|
for item in self.gifColumnBModel.gifs:
|
||||||
|
if item.id == id:
|
||||||
|
return item
|
||||||
|
|
||||||
|
for item in self.gifColumnCModel.gifs:
|
||||||
|
if item.id == id:
|
||||||
|
return item
|
||||||
|
|
||||||
|
raise newException(ValueError, "Invalid id " & $id)
|
||||||
|
|
||||||
|
proc toggleFavoriteGif*(self: View, id: string, reload: bool = false) {.slot.} =
|
||||||
|
let gifItem = self.findGifDto(id)
|
||||||
|
self.delegate.toggleFavoriteGif(gifItem)
|
||||||
|
|
||||||
|
if reload:
|
||||||
|
self.getFavoritesGifs()
|
||||||
|
|
||||||
|
proc addToRecentsGif*(self: View, id: string) {.slot.} =
|
||||||
|
let gifItem = self.findGifDto(id)
|
||||||
|
self.delegate.addToRecentsGif(gifItem)
|
||||||
|
|
||||||
|
proc isFavorite*(self: View, id: string): bool {.slot.} =
|
||||||
|
let gifItem = self.findGifDto(id)
|
||||||
|
return self.delegate.isFavorite(gifItem)
|
|
@ -6,7 +6,6 @@ import app_service/service/contacts/service as contacts_service
|
||||||
import app_service/service/chat/service as chat_service
|
import app_service/service/chat/service as chat_service
|
||||||
import app_service/service/community/service as community_service
|
import app_service/service/community/service as community_service
|
||||||
import app_service/service/message/service as message_service
|
import app_service/service/message/service as message_service
|
||||||
import app_service/service/gif/service as gif_service
|
|
||||||
import app_service/service/mailservers/service as mailservers_service
|
import app_service/service/mailservers/service as mailservers_service
|
||||||
import app_service/service/community_tokens/service as community_token_service
|
import app_service/service/community_tokens/service as community_token_service
|
||||||
import app_service/service/wallet_account/service as wallet_account_service
|
import app_service/service/wallet_account/service as wallet_account_service
|
||||||
|
@ -39,7 +38,6 @@ method load*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service)
|
mailserversService: mailservers_service.Service)
|
||||||
{.base.} =
|
{.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
@ -59,6 +57,9 @@ method appSearchDidLoad*(self: AccessInterface) {.base.} =
|
||||||
method stickersDidLoad*(self: AccessInterface) {.base.} =
|
method stickersDidLoad*(self: AccessInterface) {.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
method gifsDidLoad*(self: AccessInterface) {.base.} =
|
||||||
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
method activityCenterDidLoad*(self: AccessInterface) {.base.} =
|
method activityCenterDidLoad*(self: AccessInterface) {.base.} =
|
||||||
raise newException(ValueError, "No implementation available")
|
raise newException(ValueError, "No implementation available")
|
||||||
|
|
||||||
|
@ -93,7 +94,6 @@ method onChannelGroupsLoaded*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
@ -112,7 +112,6 @@ method onCommunityDataLoaded*(
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
@ -164,7 +163,6 @@ method communityJoined*(self: AccessInterface, community: CommunityDto, events:
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
|
|
@ -20,6 +20,7 @@ import browser_section/module as browser_section_module
|
||||||
import profile_section/module as profile_section_module
|
import profile_section/module as profile_section_module
|
||||||
import app_search/module as app_search_module
|
import app_search/module as app_search_module
|
||||||
import stickers/module as stickers_module
|
import stickers/module as stickers_module
|
||||||
|
import gifs/module as gifs_module
|
||||||
import activity_center/module as activity_center_module
|
import activity_center/module as activity_center_module
|
||||||
import communities/module as communities_module
|
import communities/module as communities_module
|
||||||
import node_section/module as node_section_module
|
import node_section/module as node_section_module
|
||||||
|
@ -105,6 +106,7 @@ type
|
||||||
browserSectionModule: browser_section_module.AccessInterface
|
browserSectionModule: browser_section_module.AccessInterface
|
||||||
profileSectionModule: profile_section_module.AccessInterface
|
profileSectionModule: profile_section_module.AccessInterface
|
||||||
stickersModule: stickers_module.AccessInterface
|
stickersModule: stickers_module.AccessInterface
|
||||||
|
gifsModule: gifs_module.AccessInterface
|
||||||
activityCenterModule: activity_center_module.AccessInterface
|
activityCenterModule: activity_center_module.AccessInterface
|
||||||
communitiesModule: communities_module.AccessInterface
|
communitiesModule: communities_module.AccessInterface
|
||||||
appSearchModule: app_search_module.AccessInterface
|
appSearchModule: app_search_module.AccessInterface
|
||||||
|
@ -226,6 +228,7 @@ proc newModule*[T](
|
||||||
)
|
)
|
||||||
result.stickersModule = stickers_module.newModule(result, events, stickersService, settingsService, walletAccountService,
|
result.stickersModule = stickers_module.newModule(result, events, stickersService, settingsService, walletAccountService,
|
||||||
networkService, tokenService, keycardService)
|
networkService, tokenService, keycardService)
|
||||||
|
result.gifsModule = gifs_module.newModule(result, events, gifService)
|
||||||
result.activityCenterModule = activity_center_module.newModule(result, events, activityCenterService, contactsService,
|
result.activityCenterModule = activity_center_module.newModule(result, events, activityCenterService, contactsService,
|
||||||
messageService, chatService, communityService)
|
messageService, chatService, communityService)
|
||||||
result.communitiesModule = communities_module.newModule(result, events, communityService, contactsService, communityTokensService,
|
result.communitiesModule = communities_module.newModule(result, events, communityService, contactsService, communityTokensService,
|
||||||
|
@ -240,6 +243,7 @@ method delete*[T](self: Module[T]) =
|
||||||
self.controller.delete
|
self.controller.delete
|
||||||
self.profileSectionModule.delete
|
self.profileSectionModule.delete
|
||||||
self.stickersModule.delete
|
self.stickersModule.delete
|
||||||
|
self.gifsModule.delete
|
||||||
self.activityCenterModule.delete
|
self.activityCenterModule.delete
|
||||||
self.communitiesModule.delete
|
self.communitiesModule.delete
|
||||||
for cModule in self.channelGroupModules.values:
|
for cModule in self.channelGroupModules.values:
|
||||||
|
@ -468,7 +472,6 @@ method load*[T](
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
) =
|
) =
|
||||||
singletonInstance.engine.setRootContextProperty("mainModule", self.viewVariant)
|
singletonInstance.engine.setRootContextProperty("mainModule", self.viewVariant)
|
||||||
|
@ -587,6 +590,7 @@ method load*[T](
|
||||||
self.browserSectionModule.load()
|
self.browserSectionModule.load()
|
||||||
self.profileSectionModule.load()
|
self.profileSectionModule.load()
|
||||||
self.stickersModule.load()
|
self.stickersModule.load()
|
||||||
|
self.gifsModule.load()
|
||||||
self.activityCenterModule.load()
|
self.activityCenterModule.load()
|
||||||
self.communitiesModule.load()
|
self.communitiesModule.load()
|
||||||
self.appSearchModule.load()
|
self.appSearchModule.load()
|
||||||
|
@ -629,7 +633,6 @@ method onChannelGroupsLoaded*[T](
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
@ -657,7 +660,6 @@ method onChannelGroupsLoaded*[T](
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
walletAccountService,
|
walletAccountService,
|
||||||
tokenService,
|
tokenService,
|
||||||
|
@ -692,7 +694,6 @@ method onCommunityDataLoaded*[T](
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
@ -713,7 +714,6 @@ method onCommunityDataLoaded*[T](
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
walletAccountService,
|
walletAccountService,
|
||||||
tokenService,
|
tokenService,
|
||||||
|
@ -751,6 +751,9 @@ proc checkIfModuleDidLoad [T](self: Module[T]) =
|
||||||
if(not self.stickersModule.isLoaded()):
|
if(not self.stickersModule.isLoaded()):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if not self.gifsModule.isLoaded():
|
||||||
|
return
|
||||||
|
|
||||||
if(not self.activityCenterModule.isLoaded()):
|
if(not self.activityCenterModule.isLoaded()):
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -778,6 +781,9 @@ method appSearchDidLoad*[T](self: Module[T]) =
|
||||||
method stickersDidLoad*[T](self: Module[T]) =
|
method stickersDidLoad*[T](self: Module[T]) =
|
||||||
self.checkIfModuleDidLoad()
|
self.checkIfModuleDidLoad()
|
||||||
|
|
||||||
|
method gifsDidLoad*[T](self: Module[T]) =
|
||||||
|
self.checkIfModuleDidLoad()
|
||||||
|
|
||||||
method activityCenterDidLoad*[T](self: Module[T]) =
|
method activityCenterDidLoad*[T](self: Module[T]) =
|
||||||
self.checkIfModuleDidLoad()
|
self.checkIfModuleDidLoad()
|
||||||
|
|
||||||
|
@ -971,7 +977,6 @@ method communityJoined*[T](
|
||||||
chatService: chat_service.Service,
|
chatService: chat_service.Service,
|
||||||
communityService: community_service.Service,
|
communityService: community_service.Service,
|
||||||
messageService: message_service.Service,
|
messageService: message_service.Service,
|
||||||
gifService: gif_service.Service,
|
|
||||||
mailserversService: mailservers_service.Service,
|
mailserversService: mailservers_service.Service,
|
||||||
walletAccountService: wallet_account_service.Service,
|
walletAccountService: wallet_account_service.Service,
|
||||||
tokenService: token_service.Service,
|
tokenService: token_service.Service,
|
||||||
|
@ -997,7 +1002,6 @@ method communityJoined*[T](
|
||||||
chatService,
|
chatService,
|
||||||
communityService,
|
communityService,
|
||||||
messageService,
|
messageService,
|
||||||
gifService,
|
|
||||||
mailserversService,
|
mailserversService,
|
||||||
walletAccountService,
|
walletAccountService,
|
||||||
tokenService,
|
tokenService,
|
||||||
|
|
|
@ -14,7 +14,7 @@ Pane {
|
||||||
}
|
}
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
id: chatSectionChatContentInputArea
|
id: gifsModule
|
||||||
}
|
}
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
|
|
|
@ -73,50 +73,49 @@ QtObject {
|
||||||
globalUtils.copyToClipboard(text)
|
globalUtils.copyToClipboard(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
property var chatSectionChatContentInputAreaInst: typeof chatSectionChatContentInputArea !== "undefined" ? chatSectionChatContentInputArea
|
property var gifsModuleInst: typeof gifsModule !== "undefined" ? gifsModule : null
|
||||||
: null
|
property var gifColumnA: gifsModuleInst ? gifsModuleInst.gifColumnA
|
||||||
property var gifColumnA: chatSectionChatContentInputAreaInst ? chatSectionChatContentInputArea.gifColumnA
|
|
||||||
: null
|
: null
|
||||||
property var gifColumnB: chatSectionChatContentInputAreaInst ? chatSectionChatContentInputArea.gifColumnB
|
property var gifColumnB: gifsModuleInst ? gifsModuleInst.gifColumnB
|
||||||
: null
|
: null
|
||||||
property var gifColumnC: chatSectionChatContentInputAreaInst ? chatSectionChatContentInputArea.gifColumnC
|
property var gifColumnC: gifsModuleInst ? gifsModuleInst.gifColumnC
|
||||||
: null
|
: null
|
||||||
property bool gifLoading: chatSectionChatContentInputAreaInst ? chatSectionChatContentInputArea.gifLoading
|
property bool gifLoading: gifsModuleInst ? gifsModuleInst.gifLoading
|
||||||
: false
|
: false
|
||||||
|
|
||||||
function searchGifs(query) {
|
function searchGifs(query) {
|
||||||
if (chatSectionChatContentInputAreaInst)
|
if (gifsModuleInst)
|
||||||
chatSectionChatContentInputAreaInst.searchGifs(query)
|
gifsModuleInst.searchGifs(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTrendingsGifs() {
|
function getTrendingsGifs() {
|
||||||
if (chatSectionChatContentInputAreaInst)
|
if (gifsModuleInst)
|
||||||
chatSectionChatContentInputAreaInst.getTrendingsGifs()
|
gifsModuleInst.getTrendingsGifs()
|
||||||
}
|
}
|
||||||
|
|
||||||
function getRecentsGifs() {
|
function getRecentsGifs() {
|
||||||
if (chatSectionChatContentInputAreaInst)
|
if (gifsModuleInst)
|
||||||
chatSectionChatContentInputAreaInst.getRecentsGifs()
|
gifsModuleInst.getRecentsGifs()
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFavoritesGifs() {
|
function getFavoritesGifs() {
|
||||||
return chatSectionChatContentInputAreaInst ? chatSectionChatContentInputAreaInst.getFavoritesGifs()
|
return gifsModuleInst ? gifsModuleInst.getFavoritesGifs()
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
|
|
||||||
function isFavorite(id) {
|
function isFavorite(id) {
|
||||||
return chatSectionChatContentInputAreaInst ? chatSectionChatContentInputAreaInst.isFavorite(id)
|
return gifsModuleInst ? gifsModuleInst.isFavorite(id)
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleFavoriteGif(id, reload) {
|
function toggleFavoriteGif(id, reload) {
|
||||||
if (chatSectionChatContentInputAreaInst)
|
if (gifsModuleInst)
|
||||||
chatSectionChatContentInputAreaInst.toggleFavoriteGif(id, reload)
|
gifsModuleInst.toggleFavoriteGif(id, reload)
|
||||||
}
|
}
|
||||||
|
|
||||||
function addToRecentsGif(id) {
|
function addToRecentsGif(id) {
|
||||||
if (chatSectionChatContentInputAreaInst)
|
if (gifsModuleInst)
|
||||||
chatSectionChatContentInputAreaInst.addToRecentsGif(id)
|
gifsModuleInst.addToRecentsGif(id)
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPasswordStrengthScore(password) {
|
function getPasswordStrengthScore(password) {
|
||||||
|
|
Loading…
Reference in New Issue