From d171d1e5bb9381f3d403ec7d1660315367a6a6b4 Mon Sep 17 00:00:00 2001
From: Jettcodey <163922510+Jettcodey@users.noreply.github.com>
Date: Fri, 21 Jun 2024 02:38:18 +0200
Subject: [PATCH] Update 1.2.7: Profile pictures and animated avatars can now
be downloaded. The standard download log is now disabled by default. Code
rewritten/cleaned up, and some preparations made for upcoming features.
---
MainForm.Designer.cs | 58 ++++++++++++++++++++++++++++++++------------
MainForm.cs | 14 +++++++++++
SettingsDialog.cs | 20 ++++++++++++++-
3 files changed, 75 insertions(+), 17 deletions(-)
diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs
index c1ba2ed..7e456ea 100644
--- a/MainForm.Designer.cs
+++ b/MainForm.Designer.cs
@@ -4,18 +4,6 @@ namespace TikTok_Downloader
{
partial class MainForm
{
- private System.ComponentModel.IContainer components = null;
-
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
@@ -93,18 +81,20 @@ private void InitializeComponent()
//
// menuStrip1
//
- menuStrip1.BackColor = SystemColors.Menu;
+ menuStrip1.BackColor = Color.FromArgb(32, 32, 32);
menuStrip1.Items.AddRange(new ToolStripItem[] { fileToolStripMenuItem });
menuStrip1.Location = new Point(0, 0);
menuStrip1.Name = "menuStrip1";
menuStrip1.Size = new Size(534, 24);
menuStrip1.TabIndex = 6;
menuStrip1.Text = "menuStrip1";
+ menuStrip1.Renderer = new RendererEx();
//
// fileToolStripMenuItem
//
+ fileToolStripMenuItem.BackColor = Color.FromArgb(32, 32, 32);
fileToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { ChangeDownloadFolderToolStripMenuItem, aboutToolStripMenuItem, settingsToolStripMenuItem });
- fileToolStripMenuItem.ForeColor = SystemColors.MenuText;
+ fileToolStripMenuItem.ForeColor = SystemColors.ButtonFace;
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
fileToolStripMenuItem.Size = new Size(61, 20);
fileToolStripMenuItem.Text = "Options";
@@ -112,7 +102,8 @@ private void InitializeComponent()
//
// ChangeDownloadFolderToolStripMenuItem
//
- ChangeDownloadFolderToolStripMenuItem.BackColor = Color.Transparent;
+ ChangeDownloadFolderToolStripMenuItem.BackColor = Color.FromArgb(32, 32, 32);
+ ChangeDownloadFolderToolStripMenuItem.ForeColor = SystemColors.ButtonFace;
ChangeDownloadFolderToolStripMenuItem.Name = "ChangeDownloadFolderToolStripMenuItem";
ChangeDownloadFolderToolStripMenuItem.Size = new Size(208, 22);
ChangeDownloadFolderToolStripMenuItem.Text = "Change Download Folder";
@@ -120,7 +111,8 @@ private void InitializeComponent()
//
// aboutToolStripMenuItem
//
- aboutToolStripMenuItem.BackColor = Color.Transparent;
+ aboutToolStripMenuItem.BackColor = Color.FromArgb(32, 32, 32);
+ aboutToolStripMenuItem.ForeColor = SystemColors.ButtonFace;
aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
aboutToolStripMenuItem.Size = new Size(208, 22);
aboutToolStripMenuItem.Text = "About";
@@ -128,6 +120,8 @@ private void InitializeComponent()
//
// settingsToolStripMenuItem
//
+ settingsToolStripMenuItem.BackColor = Color.FromArgb(32, 32, 32);
+ settingsToolStripMenuItem.ForeColor = SystemColors.ButtonFace;
settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
settingsToolStripMenuItem.Size = new Size(208, 22);
settingsToolStripMenuItem.Text = "Settings";
@@ -273,6 +267,38 @@ private void InitializeComponent()
private CheckBox downloadAvatarsCheckBox;
private ToolStripMenuItem settingsToolStripMenuItem;
+ public class RendererEx : ToolStripProfessionalRenderer
+ {
+ protected override void OnRenderMenuItemBackground(ToolStripItemRenderEventArgs e)
+ {
+ Rectangle rc = new Rectangle(Point.Empty, e.Item.Size);
+
+ if (e.Item.Selected || e.Item.Pressed)
+ {
+ // Highlight color
+ using (SolidBrush highlightBrush = new SolidBrush(Color.FromArgb(64, 64, 64)))
+ {
+ e.Graphics.FillRectangle(highlightBrush, rc);
+ }
+ }
+ else
+ {
+ // Normal background color
+ using (SolidBrush backBrush = new SolidBrush(Color.FromArgb(32, 32, 32)))
+ {
+ e.Graphics.FillRectangle(backBrush, rc);
+ }
+ }
+ }
+
+ protected override void OnRenderItemText(ToolStripItemTextRenderEventArgs e)
+ {
+ // Text color
+ e.Item.ForeColor = Color.White;
+ base.OnRenderItemText(e);
+ }
+ }
+
private void cmbChoice_SelectedIndexChanged(object sender, EventArgs e)
{
switch (cmbChoice.SelectedIndex)
diff --git a/MainForm.cs b/MainForm.cs
index c4b4d30..9057d5a 100644
--- a/MainForm.cs
+++ b/MainForm.cs
@@ -6,6 +6,8 @@
using System.Net;
using System.Reflection;
using System.Text.Json;
+using System.Drawing;
+using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace TikTok_Downloader
@@ -21,6 +23,8 @@ public partial class MainForm : Form
private string jsonLogFilePath;
private object jsonLock = new object();
private bool useOldFileStructure;
+ private bool DownloadVideosOnly;
+ private bool DownloadImagesOnly;
private readonly AppSettings settings;
private SettingsDialog settingsDialog;
private List cachedVideoUrls = new List();
@@ -1111,6 +1115,16 @@ public void EnableDownloadLogsCheckBox(bool value)
InitializeLoggingFolder();
}
+ public void DownloadVideosOnlyCheckBox(bool value)
+ {
+ DownloadVideosOnly = value;
+ }
+
+ public void DownloadImagesOnlyCheckBox(bool value)
+ {
+ DownloadImagesOnly = value;
+ }
+
private void outputTextBox_TextChanged(object sender, EventArgs e)
{
diff --git a/SettingsDialog.cs b/SettingsDialog.cs
index 156b002..03a9c56 100644
--- a/SettingsDialog.cs
+++ b/SettingsDialog.cs
@@ -57,6 +57,22 @@ private void Setting5CheckBox_CheckedChanged(object sender, EventArgs e)
}
}
+ private void Setting1CheckBox_CheckedChanged(object sender, EventArgs e)
+ {
+ if (sender is CheckBox checkBox)
+ {
+ mainForm.DownloadVideosOnlyCheckBox(checkBox.Checked);
+ }
+ }
+
+ private void Setting4CheckBox_CheckedChanged(object sender, EventArgs e)
+ {
+ if (sender is CheckBox checkBox)
+ {
+ mainForm.DownloadImagesOnlyCheckBox(checkBox.Checked);
+ }
+ }
+
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsDialog));
@@ -141,13 +157,14 @@ private void InitializeComponent()
setting1CheckBox.Text = "Download Videos Only";
setting1CheckBox.UseVisualStyleBackColor = false;
setting1CheckBox.Visible = false;
+ setting1CheckBox.CheckedChanged += Setting1CheckBox_CheckedChanged;
//
// setting2CheckBox
//
setting2CheckBox.AutoSize = true;
setting2CheckBox.BackColor = Color.Transparent;
setting2CheckBox.ForeColor = SystemColors.Control;
- setting2CheckBox.Location = new Point(162, 70);
+ setting2CheckBox.Location = new Point(167, 70);
setting2CheckBox.Name = "setting2CheckBox";
setting2CheckBox.Size = new Size(115, 19);
setting2CheckBox.TabIndex = 6;
@@ -180,6 +197,7 @@ private void InitializeComponent()
setting4CheckBox.Text = "Download Images Only";
setting4CheckBox.UseVisualStyleBackColor = false;
setting4CheckBox.Visible = false;
+ setting4CheckBox.CheckedChanged += Setting4CheckBox_CheckedChanged;
//
// setting5CheckBox
//