Пример #1
0
        public PreferencesDialog(MainWindow mainWindow)
        {
            this.engineSettings    = SettingsManager.EngineSettings;
            this.prefSettings      = SettingsManager.Preferences;
            this.labelController   = mainWindow.LabelController;
            this.trayIcon          = mainWindow.TrayIcon;
            this.interfaceSettings = mainWindow.InterfaceSettings;

            Build();
            buildFoldersPanel();
            buildImportPanel();
            buildLabelPage();
            buildConnectionPage();
            restorePreferences();
            BuildGeneralPage();
            SetNames();
            upnpCheckBox.Toggled   += OnUpnpCheckBoxToggled;
            spinMaxActive.Sensitive = false;
            spinMaxSeed.Sensitive   = false;
//			spinMaxActive.ValueChanged += delegate {
//				DownloadQueueService queue = ServiceManager.Get <DownloadQueueService> ();
//				queue.MaxActive = spinMaxActive.ValueAsInt;
//			};
            spinMaxDownload.ValueChanged += delegate {
                DownloadQueueService queue = ServiceManager.Get <DownloadQueueService> ();
                queue.MaxDownloads = spinMaxActive.ValueAsInt;
            };
//			spinMaxSeed.ValueChanged += delegate {
//				DownloadQueueService queue = ServiceManager.Get <DownloadQueueService> ();
//				queue.MaxSeeds = spinMaxActive.ValueAsInt;
//			};
        }
Пример #2
0
        public PreferencesDialog(MainWindow mainWindow)
        {
            this.engineSettings = SettingsManager.EngineSettings;
            this.prefSettings = SettingsManager.Preferences;
            this.labelController = mainWindow.LabelController;
            this.trayIcon = mainWindow.TrayIcon;
            this.interfaceSettings = mainWindow.InterfaceSettings;

            Build();
            buildFoldersPanel();
            buildImportPanel();
            buildLabelPage();
            buildConnectionPage();
            restorePreferences();
            BuildGeneralPage();
            SetNames ();
            upnpCheckBox.Toggled += OnUpnpCheckBoxToggled;
            spinMaxActive.Sensitive = false;
            spinMaxSeed.Sensitive = false;
            //			spinMaxActive.ValueChanged += delegate {
            //				DownloadQueueService queue = ServiceManager.Get <DownloadQueueService> ();
            //				queue.MaxActive = spinMaxActive.ValueAsInt;
            //			};
            spinMaxDownload.ValueChanged += delegate {
                DownloadQueueService queue = ServiceManager.Get <DownloadQueueService> ();
                queue.MaxDownloads = spinMaxActive.ValueAsInt;
            };
            //			spinMaxSeed.ValueChanged += delegate {
            //				DownloadQueueService queue = ServiceManager.Get <DownloadQueueService> ();
            //				queue.MaxSeeds = spinMaxActive.ValueAsInt;
            //			};
        }
Пример #3
0
        public MainWindow()
            : base(Gtk.WindowType.Toplevel)
        {
            this.portController = ServiceManager.Get <ListenPortController> ();
            this.torrentController = ServiceManager.Get <TorrentController> ();
            interfaceSettings = new InterfaceSettings ();

            Ticker.Tick ();
            LoadAllSettings ();
            Ticker.Tock ("Loaded all settings: {0}");

            Ticker.Tick ();
            Ticker.Tick ();

            Build ();

            AddInManagerAction.Activated += AddInManagerActionActivated;

            InitNatStatus ();

            Ticker.Tock ("Build");
            Ticker.Tick();
            BuildStatusBar();
            Ticker.Tock ("Status bar");
            Ticker.Tick ();
            BuildTray();
            Ticker.Tock ("Tray");
            Ticker.Tick ();
            BuildPiecesTreeView();
            Ticker.Tock ("PiecesTreeview");
            Ticker.Tick ();
            BuildTorrentTreeView();
            Ticker.Tock ("TorrentTreeview");
            Ticker.Tick ();
            BuildPeerTreeView();
            Ticker.Tock ("PeerTreeview");
            Ticker.Tick ();
            BuildFileTreeView();
            Ticker.Tock ("FileTreeview");
            Ticker.Tick ();
            BuildLabelTreeView();
            Ticker.Tock ("Label treeview");
            Ticker.Tick ();
            BuildOptionsPage();
            Ticker.Tock ("Options page");
            Ticker.Tick ();
            BuildSpeedsPopup();
            Ticker.Tock ("Speeds popup");
            Ticker.Tock ("Built all stuff");

            GLib.Timeout.Add (1000, new GLib.TimeoutHandler (updateView));

            Ticker.Tick ();
            RestoreInterfaceSettings ();
            Ticker.Tock ("Restored Interface");

            if (SettingsManager.Preferences.UpnpEnabled)
                portController.Start();

            Ticker.Tick ();
            try{
                torrentController.LoadStoredTorrents ();
            }catch (Exception ex) {
                Console.WriteLine (ex);
                Environment.Exit(414);
            }
            Ticker.Tock ("Loaded torrents");

            Ticker.Tick ();
            logger.Info ("Restoring labels");
            LabelController.Restore ();
            // Restore previously labeled torrents
            foreach (Download download in torrentController.Torrents){
                foreach (TorrentLabel l in LabelController.Labels) {
                    if (l.TruePaths == null)
                        continue;

                    if (Array.IndexOf <string> (l.TruePaths, download.Manager.Torrent.TorrentPath) < 0)
                        continue;

                    l.AddTorrent (download);
                }
            }
            Ticker.Tock ("Restored labels");

            torrentController.Initialise ();
            folderWatcher = new TorrentFolderWatcher (new DirectoryInfo (SettingsManager.Preferences.ImportLocation));
            folderWatcher.TorrentFound += delegate(object o, TorrentWatcherEventArgs e) {
                GLib.Idle.Add(Event.Wrap ((GLib.IdleHandler) delegate {
                    TorrentFound (o, e);
                    return false;
                }));
            };

            torrentController.SelectionChanged += delegate {
                updateToolBar ();
            };

            torrentController.ShouldRemove += HandleShouldRemove;

            if (SettingsManager.Preferences.ImportEnabled) {
                logger.Info ("Starting import folder watcher");
                folderWatcher.Start ();
            }

            logger.Info ("Starting RSS manager");
            rssManagerController = new RssManagerController(SettingsManager.EngineSettings);
            rssManagerController.TorrentFound += delegate(object sender, TorrentRssWatcherEventArgs e) {
                string savePath = e.Filter == null ? SettingsManager.EngineSettings.SavePath : e.Filter.SavePath;
                try {
                    LoadTorrent(e.Item.Link, true, false, false, null, savePath, true);
                } catch {
                    logger.Error("RSS Manager: Unable to add - " + e.Item.Title);
                }
            };
            logger.Info ("Started RSS manager");
            rssManagerController.StartWatchers();
            AddGConfListeners ();
            updateToolBar ();
            ShowAll();
        }